{
"tiddlers": {
"$:/Acknowledgements": {
"title": "$:/Acknowledgements",
"text": "TiddlyWiki incorporates code from these fine OpenSource projects:\n\n* [[The Stanford Javascript Crypto Library|http://bitwiseshiftleft.github.io/sjcl/]]\n* [[The Jasmine JavaScript Test Framework|http://pivotal.github.io/jasmine/]]\n* [[Normalize.css by Nicolas Gallagher|http://necolas.github.io/normalize.css/]]\n\nAnd media from these projects:\n\n* World flag icons from [[Wikipedia|http://commons.wikimedia.org/wiki/Category:SVG_flags_by_country]]\n"
},
"$:/core/copyright.txt": {
"title": "$:/core/copyright.txt",
"type": "text/plain",
"text": "TiddlyWiki created by Jeremy Ruston, (jeremy [at] jermolene [dot] com)\n\nCopyright (c) 2004-2007, Jeremy Ruston\nCopyright (c) 2007-2020, UnaMesa Association\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n* Redistributions of source code must retain the above copyright notice, this\n list of conditions and the following disclaimer.\n\n* Redistributions in binary form must reproduce the above copyright notice,\n this list of conditions and the following disclaimer in the documentation\n and/or other materials provided with the distribution.\n\n* Neither the name of the copyright holder nor the names of its\n contributors may be used to endorse or promote products derived from\n this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS'\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
},
"$:/core/icon": {
"title": "$:/core/icon",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\"><path d=\"M64 0l54.56 32v64L64 128 9.44 96V32L64 0zm21.127 95.408c-3.578-.103-5.15-.094-6.974-3.152l-1.42.042c-1.653-.075-.964-.04-2.067-.097-1.844-.07-1.548-1.86-1.873-2.8-.52-3.202.687-6.43.65-9.632-.014-1.14-1.593-5.17-2.157-6.61-1.768.34-3.546.406-5.34.497-4.134-.01-8.24-.527-12.317-1.183-.8 3.35-3.16 8.036-1.21 11.44 2.37 3.52 4.03 4.495 6.61 4.707 2.572.212 3.16 3.18 2.53 4.242-.55.73-1.52.864-2.346 1.04l-1.65.08c-1.296-.046-2.455-.404-3.61-.955-1.93-1.097-3.925-3.383-5.406-5.024.345.658.55 1.938.24 2.53-.878 1.27-4.665 1.26-6.4.47-1.97-.89-6.73-7.162-7.468-11.86 1.96-3.78 4.812-7.07 6.255-11.186-3.146-2.05-4.83-5.384-4.61-9.16l.08-.44c-3.097.59-1.49.37-4.82.628-10.608-.032-19.935-7.37-14.68-18.774.34-.673.664-1.287 1.243-.994.466.237.4 1.18.166 2.227-3.005 13.627 11.67 13.732 20.69 11.21.89-.25 2.67-1.936 3.905-2.495 2.016-.91 4.205-1.282 6.376-1.55 5.4-.63 11.893 2.276 15.19 2.37 3.3.096 7.99-.805 10.87-.615 2.09.098 4.143.483 6.16 1.03 1.306-6.49 1.4-11.27 4.492-12.38 1.814.293 3.213 2.818 4.25 4.167 2.112-.086 4.12.46 6.115 1.066 3.61-.522 6.642-2.593 9.833-4.203-3.234 2.69-3.673 7.075-3.303 11.127.138 2.103-.444 4.386-1.164 6.54-1.348 3.507-3.95 7.204-6.97 7.014-1.14-.036-1.805-.695-2.653-1.4-.164 1.427-.81 2.7-1.434 3.96-1.44 2.797-5.203 4.03-8.687 7.016-3.484 2.985 1.114 13.65 2.23 15.594 1.114 1.94 4.226 2.652 3.02 4.406-.37.58-.936.785-1.54 1.01l-.82.11zm-40.097-8.85l.553.14c.694-.27 2.09.15 2.83.353-1.363-1.31-3.417-3.24-4.897-4.46-.485-1.47-.278-2.96-.174-4.46l.02-.123c-.582 1.205-1.322 2.376-1.72 3.645-.465 1.71 2.07 3.557 3.052 4.615l.336.3z\" fill-rule=\"evenodd\"/></svg>"
},
"$:/core/images/add-comment": {
"title": "$:/core/images/add-comment",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-add-comment tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M56 56H36a8 8 0 100 16h20v20a8 8 0 1016 0V72h20a8 8 0 100-16H72V36a8 8 0 10-16 0v20zm-12.595 58.362c-6.683 7.659-20.297 12.903-36.006 12.903-2.196 0-4.35-.102-6.451-.3 9.652-3.836 17.356-12.24 21.01-22.874C8.516 94.28 0 79.734 0 63.5 0 33.953 28.206 10 63 10s63 23.953 63 53.5S97.794 117 63 117c-6.841 0-13.428-.926-19.595-2.638z\"/></svg>"
},
"$:/core/images/advanced-search-button": {
"title": "$:/core/images/advanced-search-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-advanced-search-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M74.565 87.985A47.776 47.776 0 0148 96C21.49 96 0 74.51 0 48S21.49 0 48 0s48 21.49 48 48c0 9.854-2.97 19.015-8.062 26.636l34.347 34.347a9.443 9.443 0 010 13.36 9.446 9.446 0 01-13.36 0l-34.36-34.358zM48 80c17.673 0 32-14.327 32-32 0-17.673-14.327-32-32-32-17.673 0-32 14.327-32 32 0 17.673 14.327 32 32 32z\"/><circle cx=\"48\" cy=\"48\" r=\"8\"/><circle cx=\"28\" cy=\"48\" r=\"8\"/><circle cx=\"68\" cy=\"48\" r=\"8\"/></g></svg>"
},
"$:/core/images/auto-height": {
"title": "$:/core/images/auto-height",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-auto-height tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M67.987 114.356l-.029-14.477a4 4 0 00-2.067-3.494l-15.966-8.813-1.933 7.502H79.9c4.222 0 5.564-5.693 1.786-7.58L49.797 71.572 48.01 79.15h31.982c4.217 0 5.564-5.682 1.795-7.575L49.805 55.517l-1.795 7.575h31.982c4.212 0 5.563-5.67 1.805-7.57l-16.034-8.105 2.195 3.57V35.614l9.214 9.213a4 4 0 105.656-5.656l-16-16a4 4 0 00-5.656 0l-16 16a4 4 0 105.656 5.656l9.13-9.13v15.288a4 4 0 002.195 3.57l16.035 8.106 1.804-7.57H48.01c-4.217 0-5.564 5.682-1.795 7.574l31.982 16.059 1.795-7.575H48.01c-4.222 0-5.564 5.693-1.787 7.579l31.89 15.923 1.787-7.578H47.992c-4.133 0-5.552 5.504-1.933 7.501l15.966 8.813-2.067-3.494.029 14.436-9.159-9.158a4 4 0 00-5.656 5.656l16 16a4 4 0 005.656 0l16-16a4 4 0 10-5.656-5.656l-9.185 9.184zM16 20h96a4 4 0 100-8H16a4 4 0 100 8z\"/></svg>"
},
"$:/core/images/blank": {
"title": "$:/core/images/blank",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-blank tc-image-button\" viewBox=\"0 0 128 128\"/>"
},
"$:/core/images/bold": {
"title": "$:/core/images/bold",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-bold tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M41.146 51.81V21.87h26.353c2.51 0 4.93.21 7.26.628 2.33.418 4.392 1.165 6.185 2.24 1.793 1.076 3.227 2.57 4.302 4.482 1.076 1.913 1.614 4.363 1.614 7.35 0 5.379-1.613 9.263-4.84 11.653-3.227 2.39-7.35 3.586-12.37 3.586H41.146zM13 0v128h62.028a65.45 65.45 0 0016.762-2.151c5.438-1.434 10.278-3.645 14.52-6.633 4.244-2.988 7.62-6.842 10.13-11.563 2.51-4.721 3.764-10.308 3.764-16.762 0-8.008-1.942-14.85-5.826-20.527-3.884-5.677-9.77-9.65-17.658-11.921 5.737-2.75 10.069-6.275 12.997-10.577 2.928-4.303 4.392-9.681 4.392-16.135 0-5.976-.986-10.995-2.958-15.059-1.972-4.063-4.75-7.32-8.336-9.77-3.585-2.45-7.888-4.213-12.907-5.289C84.888.538 79.33 0 73.235 0H13zm28.146 106.129V70.992H71.8c6.095 0 10.995 1.404 14.7 4.212 3.705 2.81 5.558 7.5 5.558 14.073 0 3.347-.568 6.096-1.703 8.247-1.136 2.151-2.66 3.854-4.572 5.11-1.912 1.254-4.123 2.15-6.633 2.688-2.51.538-5.139.807-7.888.807H41.146z\"/></svg>"
},
"$:/core/images/cancel-button": {
"title": "$:/core/images/cancel-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-cancel-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M64 76.314l-16.97 16.97a7.999 7.999 0 01-11.314 0c-3.118-3.118-3.124-8.19 0-11.313L52.686 65l-16.97-16.97a7.999 7.999 0 010-11.314c3.118-3.118 8.19-3.124 11.313 0L64 53.686l16.97-16.97a7.999 7.999 0 0111.314 0c3.118 3.118 3.124 8.19 0 11.313L75.314 65l16.97 16.97a7.999 7.999 0 010 11.314c-3.118 3.118-8.19 3.124-11.313 0L64 76.314zM64 129c35.346 0 64-28.654 64-64 0-35.346-28.654-64-64-64C28.654 1 0 29.654 0 65c0 35.346 28.654 64 64 64zm0-16c26.51 0 48-21.49 48-48S90.51 17 64 17 16 38.49 16 65s21.49 48 48 48z\"/></svg>"
},
"$:/core/images/chevron-down": {
"title": "$:/core/images/chevron-down",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-chevron-down tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M64.053 85.456a7.889 7.889 0 01-5.6-2.316L2.473 27.16a7.92 7.92 0 010-11.196c3.086-3.085 8.105-3.092 11.196 0L64.05 66.344l50.382-50.382a7.92 7.92 0 0111.195 0c3.085 3.086 3.092 8.105 0 11.196l-55.98 55.98a7.892 7.892 0 01-5.595 2.317z\"/><path d=\"M64.053 124.069a7.889 7.889 0 01-5.6-2.316l-55.98-55.98a7.92 7.92 0 010-11.196c3.086-3.085 8.105-3.092 11.196 0l50.382 50.382 50.382-50.382a7.92 7.92 0 0111.195 0c3.085 3.086 3.092 8.104 0 11.196l-55.98 55.98a7.892 7.892 0 01-5.595 2.316z\"/></g></svg>"
},
"$:/core/images/chevron-left": {
"title": "$:/core/images/chevron-left",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-chevron-left tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M47.544 64.053c0-2.027.77-4.054 2.316-5.6l55.98-55.98a7.92 7.92 0 0111.196 0c3.085 3.086 3.092 8.105 0 11.196L66.656 64.05l50.382 50.382a7.92 7.92 0 010 11.195c-3.086 3.085-8.105 3.092-11.196 0l-55.98-55.98a7.892 7.892 0 01-2.317-5.595z\"/><path d=\"M8.931 64.053c0-2.027.77-4.054 2.316-5.6l55.98-55.98a7.92 7.92 0 0111.196 0c3.085 3.086 3.092 8.105 0 11.196L28.041 64.05l50.382 50.382a7.92 7.92 0 010 11.195c-3.086 3.085-8.104 3.092-11.196 0l-55.98-55.98a7.892 7.892 0 01-2.316-5.595z\"/></g></svg>"
},
"$:/core/images/chevron-right": {
"title": "$:/core/images/chevron-right",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-chevron-right tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M83.456 63.947c0 2.027-.77 4.054-2.316 5.6l-55.98 55.98a7.92 7.92 0 01-11.196 0c-3.085-3.086-3.092-8.105 0-11.196L64.344 63.95 13.963 13.567a7.92 7.92 0 010-11.195c3.086-3.085 8.105-3.092 11.196 0l55.98 55.98a7.892 7.892 0 012.317 5.595z\"/><path d=\"M122.069 63.947c0 2.027-.77 4.054-2.316 5.6l-55.98 55.98a7.92 7.92 0 01-11.196 0c-3.085-3.086-3.092-8.105 0-11.196l50.382-50.382-50.382-50.382a7.92 7.92 0 010-11.195c3.086-3.085 8.104-3.092 11.196 0l55.98 55.98a7.892 7.892 0 012.316 5.595z\"/></g></svg>"
},
"$:/core/images/chevron-up": {
"title": "$:/core/images/chevron-up",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-chevron-up tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M63.947 44.544c2.027 0 4.054.77 5.6 2.316l55.98 55.98a7.92 7.92 0 010 11.196c-3.086 3.085-8.105 3.092-11.196 0L63.95 63.656l-50.382 50.382a7.92 7.92 0 01-11.195 0c-3.085-3.086-3.092-8.105 0-11.196l55.98-55.98a7.892 7.892 0 015.595-2.317z\"/><path d=\"M63.947 5.931c2.027 0 4.054.77 5.6 2.316l55.98 55.98a7.92 7.92 0 010 11.196c-3.086 3.085-8.105 3.092-11.196 0L63.95 25.041 13.567 75.423a7.92 7.92 0 01-11.195 0c-3.085-3.086-3.092-8.104 0-11.196l55.98-55.98a7.892 7.892 0 015.595-2.316z\"/></g></svg>"
},
"$:/core/images/clone-button": {
"title": "$:/core/images/clone-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-clone-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M32.265 96v24.002A7.996 7.996 0 0040.263 128h79.74a7.996 7.996 0 007.997-7.998v-79.74a7.996 7.996 0 00-7.998-7.997H96V48h12.859a2.99 2.99 0 012.994 2.994v57.865a2.99 2.99 0 01-2.994 2.994H50.994A2.99 2.99 0 0148 108.859V96H32.265z\"/><path d=\"M40 56h-7.993C27.588 56 24 52.418 24 48c0-4.41 3.585-8 8.007-8H40v-7.993C40 27.588 43.582 24 48 24c4.41 0 8 3.585 8 8.007V40h7.993C68.412 40 72 43.582 72 48c0 4.41-3.585 8-8.007 8H56v7.993C56 68.412 52.418 72 48 72c-4.41 0-8-3.585-8-8.007V56zM8 0C3.58 0 0 3.588 0 8v80c0 4.419 3.588 8 8 8h80c4.419 0 8-3.588 8-8V8c0-4.419-3.588-8-8-8H8zM19 16A2.997 2.997 0 0016 19.001v57.998A2.997 2.997 0 0019.001 80h57.998A2.997 2.997 0 0080 76.999V19.001A2.997 2.997 0 0076.999 16H19.001z\"/></g></svg>"
},
"$:/core/images/close-all-button": {
"title": "$:/core/images/close-all-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-close-all-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M28 111.314l-14.144 14.143a8 8 0 01-11.313-11.313L16.686 100 2.543 85.856a8 8 0 0111.313-11.313L28 88.686l14.144-14.143a8 8 0 0111.313 11.313L39.314 100l14.143 14.144a8 8 0 01-11.313 11.313L28 111.314zM28 39.314L13.856 53.457A8 8 0 012.543 42.144L16.686 28 2.543 13.856A8 8 0 0113.856 2.543L28 16.686 42.144 2.543a8 8 0 0111.313 11.313L39.314 28l14.143 14.144a8 8 0 01-11.313 11.313L28 39.314zM100 39.314L85.856 53.457a8 8 0 01-11.313-11.313L88.686 28 74.543 13.856A8 8 0 0185.856 2.543L100 16.686l14.144-14.143a8 8 0 0111.313 11.313L111.314 28l14.143 14.144a8 8 0 01-11.313 11.313L100 39.314zM100 111.314l-14.144 14.143a8 8 0 01-11.313-11.313L88.686 100 74.543 85.856a8 8 0 0111.313-11.313L100 88.686l14.144-14.143a8 8 0 0111.313 11.313L111.314 100l14.143 14.144a8 8 0 01-11.313 11.313L100 111.314z\"/></g></svg>"
},
"$:/core/images/close-button": {
"title": "$:/core/images/close-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-close-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M65.086 75.41l-50.113 50.113c-3.121 3.121-8.192 3.126-11.316.002-3.118-3.118-3.123-8.19.002-11.316l50.114-50.114L3.659 13.982C.538 10.86.533 5.79 3.657 2.666c3.118-3.118 8.19-3.123 11.316.002l50.113 50.114L115.2 2.668c3.121-3.121 8.192-3.126 11.316-.002 3.118 3.118 3.123 8.19-.002 11.316L76.4 64.095l50.114 50.114c3.121 3.121 3.126 8.192.002 11.316-3.118 3.118-8.19 3.123-11.316-.002L65.086 75.409z\"/></svg>"
},
"$:/core/images/close-others-button": {
"title": "$:/core/images/close-others-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-close-others-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M64 128c35.346 0 64-28.654 64-64 0-35.346-28.654-64-64-64C28.654 0 0 28.654 0 64c0 35.346 28.654 64 64 64zm0-16c26.51 0 48-21.49 48-48S90.51 16 64 16 16 37.49 16 64s21.49 48 48 48zm0-16c17.673 0 32-14.327 32-32 0-17.673-14.327-32-32-32-17.673 0-32 14.327-32 32 0 17.673 14.327 32 32 32zm0-16c8.837 0 16-7.163 16-16s-7.163-16-16-16-16 7.163-16 16 7.163 16 16 16z\"/></svg>"
},
"$:/core/images/copy-clipboard": {
"title": "$:/core/images/copy-clipboard",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-copy-clipboard tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"33\" height=\"8\" x=\"40\" y=\"40\" rx=\"4\"/><rect width=\"17\" height=\"8\" x=\"40\" y=\"82\" rx=\"4\"/><rect width=\"17\" height=\"8\" x=\"40\" y=\"54\" rx=\"4\"/><rect width=\"33\" height=\"8\" x=\"40\" y=\"96\" rx=\"4\"/><rect width=\"12\" height=\"8\" x=\"40\" y=\"68\" rx=\"4\"/><path d=\"M40 16H24c-4.419 0-8 3.59-8 8a8.031 8.031 0 000 .01v95.98a8.03 8.03 0 000 .01c0 4.41 3.581 8 8 8h80a7.975 7.975 0 005.652-2.34 7.958 7.958 0 002.348-5.652v-16.016c0-4.414-3.582-7.992-8-7.992-4.41 0-8 3.578-8 7.992V112H32V32h64v8.008C96 44.422 99.582 48 104 48c4.41 0 8-3.578 8-7.992V23.992a7.963 7.963 0 00-2.343-5.651A7.995 7.995 0 00104.001 16H88c0-4.41-3.585-8-8.007-8H48.007C43.588 8 40 11.582 40 16zm4-1.004A4.001 4.001 0 0148 11h32c2.21 0 4 1.797 4 3.996v4.008A4.001 4.001 0 0180 23H48c-2.21 0-4-1.797-4-3.996v-4.008z\"/><rect width=\"66\" height=\"16\" x=\"62\" y=\"64\" rx=\"8\"/><path d=\"M84.657 82.343l-16-16v11.314l16-16a8 8 0 10-11.314-11.314l-16 16a8 8 0 000 11.314l16 16a8 8 0 1011.314-11.314z\"/></g></svg>"
},
"$:/core/images/delete-button": {
"title": "$:/core/images/delete-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-delete-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\" transform=\"translate(12)\"><rect width=\"105\" height=\"16\" y=\"11\" rx=\"8\"/><rect width=\"48\" height=\"16\" x=\"28\" rx=\"8\"/><rect width=\"16\" height=\"112\" x=\"8\" y=\"16\" rx=\"8\"/><rect width=\"88\" height=\"16\" x=\"8\" y=\"112\" rx=\"8\"/><rect width=\"16\" height=\"112\" x=\"80\" y=\"16\" rx=\"8\"/><rect width=\"16\" height=\"112\" x=\"56\" y=\"16\" rx=\"8\"/><rect width=\"16\" height=\"112\" x=\"32\" y=\"16\" rx=\"8\"/></g></svg>"
},
"$:/core/images/done-button": {
"title": "$:/core/images/done-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-done-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M42.26 111.032c-2.051.001-4.103-.78-5.668-2.345L2.662 74.758a8 8 0 01-.005-11.32c3.118-3.117 8.192-3.12 11.32.007l28.278 28.278 72.124-72.124a8.002 8.002 0 0111.314-.001c3.118 3.118 3.124 8.19 0 11.315l-77.78 77.78a7.978 7.978 0 01-5.658 2.343z\"/></svg>"
},
"$:/core/images/down-arrow": {
"title": "$:/core/images/down-arrow",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-down-arrow tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M64.177 100.069a7.889 7.889 0 01-5.6-2.316l-55.98-55.98a7.92 7.92 0 010-11.196c3.086-3.085 8.105-3.092 11.196 0l50.382 50.382 50.382-50.382a7.92 7.92 0 0111.195 0c3.086 3.086 3.092 8.104 0 11.196l-55.98 55.98a7.892 7.892 0 01-5.595 2.316z\"/></svg>"
},
"$:/core/images/download-button": {
"title": "$:/core/images/download-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-download-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M64 128c35.346 0 64-28.654 64-64 0-35.346-28.654-64-64-64C28.654 0 0 28.654 0 64c0 35.346 28.654 64 64 64zm0-16c26.51 0 48-21.49 48-48S90.51 16 64 16 16 37.49 16 64s21.49 48 48 48z\" class=\"tc-image-download-button-ring\"/><path d=\"M34.35 66.43l26.892 27.205a4.57 4.57 0 006.516 0L94.65 66.43a4.7 4.7 0 000-6.593 4.581 4.581 0 00-3.258-1.365h-8.46c-2.545 0-4.608-2.087-4.608-4.661v-15.15c0-2.575-2.063-4.662-4.608-4.662H55.284c-2.545 0-4.608 2.087-4.608 4.662v15.15c0 2.574-2.063 4.661-4.608 4.661h-8.46c-2.545 0-4.608 2.087-4.608 4.662a4.69 4.69 0 001.35 3.296z\"/></g></svg>"
},
"$:/core/images/edit-button": {
"title": "$:/core/images/edit-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-edit-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M95.627 10.059l-5.656 5.657 11.313 11.313 5.657-5.656-11.314-11.314zm5.657-5.657l1.966-1.966c3.123-3.122 8.194-3.129 11.319-.005 3.117 3.118 3.122 8.192-.005 11.32l-1.966 1.965-11.314-11.314zm-16.97 16.97l-60.25 60.25a8.12 8.12 0 00-.322.342c-.1.087-.198.179-.295.275-5.735 5.735-10.702 22.016-10.702 22.016s16.405-5.09 22.016-10.702c.095-.096.186-.193.272-.292a8.12 8.12 0 00.345-.325l60.25-60.25-11.314-11.313zM35.171 124.19c6.788-.577 13.898-2.272 23.689-5.348 1.825-.573 3.57-1.136 6.336-2.04 16-5.226 21.877-6.807 28.745-7.146 8.358-.413 13.854 2.13 17.58 8.699a4 4 0 006.959-3.946c-5.334-9.406-13.745-13.296-24.933-12.744-7.875.39-14.057 2.052-30.835 7.533-2.739.894-4.46 1.45-6.25 2.012-19.46 6.112-30.77 7.072-39.597 1.747a4 4 0 10-4.132 6.85c6.333 3.82 13.754 5.12 22.438 4.383z\"/></g></svg>"
},
"$:/core/images/erase": {
"title": "$:/core/images/erase",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-erase tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M60.087 127.996l63.015-63.015c6.535-6.535 6.528-17.115-.003-23.646L99.466 17.702c-6.539-6.538-17.117-6.532-23.646-.003L4.898 88.62c-6.535 6.534-6.528 17.115.003 23.646l15.73 15.73h39.456zm-34.95-7.313l-14.324-14.325c-3.267-3.268-3.268-8.564-.008-11.824L46.269 59.07l35.462 35.462-26.15 26.15H25.137z\"/></svg>"
},
"$:/core/images/excise": {
"title": "$:/core/images/excise",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-excise tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M56 107.314l-2.343 2.343a8 8 0 11-11.314-11.314l16-16a8 8 0 0111.314 0l16 16a8 8 0 11-11.314 11.314L72 107.314v14.284c0 3.536-3.582 6.402-8 6.402s-8-2.866-8-6.402v-14.284zM0 40.007C0 35.585 3.59 32 8 32c4.418 0 8 3.588 8 8.007v31.986C16 76.415 12.41 80 8 80c-4.418 0-8-3.588-8-8.007V40.007zm32 0C32 35.585 35.59 32 40 32c4.418 0 8 3.588 8 8.007v31.986C48 76.415 44.41 80 40 80c-4.418 0-8-3.588-8-8.007V40.007zm48 0C80 35.585 83.59 32 88 32c4.418 0 8 3.588 8 8.007v31.986C96 76.415 92.41 80 88 80c-4.418 0-8-3.588-8-8.007V40.007zm-24-32C56 3.585 59.59 0 64 0c4.418 0 8 3.588 8 8.007v31.986C72 44.415 68.41 48 64 48c-4.418 0-8-3.588-8-8.007V8.007zm56 32c0-4.422 3.59-8.007 8-8.007 4.418 0 8 3.588 8 8.007v31.986c0 4.422-3.59 8.007-8 8.007-4.418 0-8-3.588-8-8.007V40.007z\"/></svg>"
},
"$:/core/images/export-button": {
"title": "$:/core/images/export-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-export-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M8.003 128H119.993a7.984 7.984 0 005.664-2.349v.007A7.975 7.975 0 00128 120V56c0-4.418-3.59-8-8-8-4.418 0-8 3.58-8 8v56H16V56c0-4.418-3.59-8-8-8-4.418 0-8 3.58-8 8v64c0 4.418 3.59 8 8 8h.003zm48.62-100.689l-8.965 8.966c-3.125 3.125-8.195 3.13-11.319.005-3.118-3.118-3.122-8.192.005-11.319L58.962 2.346A7.986 7.986 0 0164.625 0l-.006.002c2.05-.001 4.102.78 5.666 2.344l22.618 22.617c3.124 3.125 3.129 8.195.005 11.319-3.118 3.118-8.192 3.122-11.319-.005l-8.965-8.966v61.256c0 4.411-3.582 8-8 8-4.41 0-8-3.582-8-8V27.311z\"/></svg>"
},
"$:/core/images/file": {
"title": "$:/core/images/file",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-file tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M111.968 30.5H112V120a8 8 0 01-8 8H24a8 8 0 01-8-8V8a8 8 0 018-8h57v.02a7.978 7.978 0 015.998 2.337l22.627 22.627a7.975 7.975 0 012.343 5.516zM81 8H24v112h80V30.5H89c-4.418 0-8-3.578-8-8V8z\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"36\" rx=\"4\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"52\" rx=\"4\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"68\" rx=\"4\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"84\" rx=\"4\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"100\" rx=\"4\"/><rect width=\"40\" height=\"8\" x=\"32\" y=\"20\" rx=\"4\"/></svg>"
},
"$:/core/images/fixed-height": {
"title": "$:/core/images/fixed-height",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-fixed-height tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M60 35.657l-9.172 9.171a4 4 0 11-5.656-5.656l16-16a4 4 0 015.656 0l16 16a4 4 0 01-5.656 5.656L68 35.657v57.686l9.172-9.171a4 4 0 115.656 5.656l-16 16a4 4 0 01-5.656 0l-16-16a4 4 0 115.656-5.656L60 93.343V35.657zM16 116h96a4 4 0 100-8H16a4 4 0 100 8zm0-96h96a4 4 0 100-8H16a4 4 0 100 8z\"/></svg>"
},
"$:/core/images/fold-all-button": {
"title": "$:/core/images/fold-all-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-fold-all tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"128\" height=\"16\" rx=\"8\"/><rect width=\"128\" height=\"16\" y=\"64\" rx=\"8\"/><path d=\"M64.03 20.004c-2.05 0-4.102.78-5.667 2.344L35.746 44.966c-3.125 3.124-3.13 8.194-.005 11.318 3.118 3.118 8.192 3.122 11.319-.005l16.965-16.965 16.966 16.965c3.124 3.125 8.194 3.13 11.318.005 3.118-3.118 3.122-8.191-.005-11.318L69.687 22.348a7.986 7.986 0 00-5.663-2.346zM64.03 85.002c-2.05-.001-4.102.78-5.667 2.344l-22.617 22.617c-3.125 3.125-3.13 8.195-.005 11.319 3.118 3.118 8.192 3.122 11.319-.005l16.965-16.966 16.966 16.966c3.124 3.125 8.194 3.13 11.318.005 3.118-3.118 3.122-8.192-.005-11.319L69.687 87.346A7.986 7.986 0 0064.024 85z\"/></g></svg>"
},
"$:/core/images/fold-button": {
"title": "$:/core/images/fold-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-fold tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"128\" height=\"16\" rx=\"8\"/><path d=\"M64.03 25.004c-2.05 0-4.102.78-5.667 2.344L35.746 49.966c-3.125 3.124-3.13 8.194-.005 11.318 3.118 3.118 8.192 3.122 11.319-.005l16.965-16.965 16.966 16.965c3.124 3.125 8.194 3.13 11.318.005 3.118-3.118 3.122-8.191-.005-11.318L69.687 27.348a7.986 7.986 0 00-5.663-2.346zM64.005 67.379c-2.05 0-4.102.78-5.666 2.344L35.722 92.34c-3.125 3.125-3.13 8.195-.006 11.32 3.118 3.117 8.192 3.121 11.32-.006L64 86.69l16.965 16.965c3.125 3.125 8.195 3.13 11.319.005 3.118-3.118 3.122-8.192-.005-11.319L69.663 69.723A7.986 7.986 0 0064 67.377z\"/></g></svg>"
},
"$:/core/images/fold-others-button": {
"title": "$:/core/images/fold-others-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-fold-others tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"128\" height=\"16\" y=\"56.031\" rx=\"8\"/><path d=\"M86.632 79.976c-2.05 0-4.102.78-5.666 2.345L64 99.286 47.034 82.321a7.986 7.986 0 00-5.662-2.346l.005.001c-2.05 0-4.102.78-5.666 2.345l-22.618 22.617c-3.124 3.125-3.129 8.195-.005 11.319 3.118 3.118 8.192 3.122 11.319-.005l16.966-16.966 16.965 16.966a7.986 7.986 0 005.663 2.346l-.005-.002c2.05 0 4.102-.78 5.666-2.344l16.965-16.966 16.966 16.966c3.125 3.124 8.194 3.129 11.319.005 3.118-3.118 3.122-8.192-.005-11.319L92.289 82.321a7.986 7.986 0 00-5.663-2.346zM86.7 48.024c-2.05 0-4.102-.78-5.666-2.345L64.07 28.714 47.103 45.679a7.986 7.986 0 01-5.663 2.346l.005-.001c-2.05 0-4.101-.78-5.666-2.345L13.162 23.062c-3.125-3.125-3.13-8.195-.005-11.319 3.118-3.118 8.192-3.122 11.319.005L41.44 28.714l16.966-16.966a7.986 7.986 0 015.662-2.346l-.005.002c2.05 0 4.102.78 5.666 2.344l16.966 16.966 16.966-16.966c3.124-3.124 8.194-3.129 11.318-.005 3.118 3.118 3.122 8.192-.005 11.319L92.358 45.679a7.986 7.986 0 01-5.663 2.346z\"/></g></svg>"
},
"$:/core/images/folder": {
"title": "$:/core/images/folder",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-folder tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M55.694 128H8C3.58 128 0 124.414 0 119.996V48.004C0 43.584 3.584 40 7.999 40H16v-8c0-4.418 3.578-8 8-8h32a8 8 0 018 8v8h40.001c4.418 0 7.999 3.586 7.999 8.004V59.83l-8-.082v-7.749A4 4 0 0099.997 48H56V36c0-2.21-1.793-4-4.004-4H28.004A4 4 0 0024 36v12H12.003A4 4 0 008 52v64a4 4 0 004.003 4h46.76l-3.069 8z\"/><path d=\"M23.873 55.5h96.003c4.417 0 7.004 4.053 5.774 9.063l-13.344 54.374c-1.228 5.005-5.808 9.063-10.223 9.063H6.08c-4.417 0-7.003-4.053-5.774-9.063L13.65 64.563c1.228-5.005 5.808-9.063 10.223-9.063zm1.78 8.5h87.994c2.211 0 3.504 2.093 2.891 4.666l-11.12 46.668c-.614 2.577-2.902 4.666-5.115 4.666H12.31c-2.211 0-3.504-2.093-2.891-4.666l11.12-46.668C21.152 66.09 23.44 64 25.653 64z\"/></g></svg>"
},
"$:/core/images/full-screen-button": {
"title": "$:/core/images/full-screen-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-full-screen-button tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M0 8a8 8 0 018-8h32a8 8 0 110 16H16v24a8 8 0 11-16 0V8zM128 120a8 8 0 01-8 8H88a8 8 0 110-16h24V88a8 8 0 1116 0v32zM8 128a8 8 0 01-8-8V88a8 8 0 1116 0v24h24a8 8 0 110 16H8zM120 0a8 8 0 018 8v32a8 8 0 11-16 0V16H88a8 8 0 110-16h32z\"/></svg>"
},
"$:/core/images/github": {
"title": "$:/core/images/github",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-github tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M63.938 1.607c-35.336 0-63.994 28.69-63.994 64.084 0 28.312 18.336 52.329 43.768 60.802 3.202.59 4.37-1.388 4.37-3.088 0-1.518-.056-5.55-.087-10.897-17.802 3.871-21.558-8.591-21.558-8.591-2.911-7.404-7.108-9.375-7.108-9.375-5.81-3.973.44-3.895.44-3.895 6.424.453 9.803 6.606 9.803 6.606 5.709 9.791 14.981 6.963 18.627 5.322.582-4.138 2.236-6.963 4.063-8.564-14.211-1.617-29.153-7.117-29.153-31.672 0-6.995 2.495-12.718 6.589-17.195-.66-1.621-2.856-8.14.629-16.96 0 0 5.37-1.722 17.597 6.57 5.104-1.424 10.58-2.132 16.022-2.16 5.438.028 10.91.736 16.022 2.16 12.22-8.292 17.582-6.57 17.582-6.57 3.493 8.82 1.297 15.339.64 16.96 4.102 4.477 6.578 10.2 6.578 17.195 0 24.618-14.966 30.035-29.22 31.62 2.295 1.98 4.342 5.89 4.342 11.87 0 8.564-.079 15.476-.079 17.576 0 1.715 1.155 3.71 4.4 3.084 25.413-8.493 43.733-32.494 43.733-60.798 0-35.394-28.657-64.084-64.006-64.084\"/></svg>"
},
"$:/core/images/gitter": {
"title": "$:/core/images/gitter",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-gitter tc-image-button\" viewBox=\"0 0 18 25\"><path d=\"M15 5h2v10h-2zM10 5h2v20h-2zM5 5h2v20H5zM0 0h2v15H0z\"/></svg>"
},
"$:/core/images/globe": {
"title": "$:/core/images/globe",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-globe tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M72.811 37.128v2.554c0 2.196.978 6.881 0 8.832-1.466 2.928-4.65 3.54-6.394 5.867-1.182 1.577-4.618 10.601-3.69 12.92 3.969 9.922 11.534 3.187 17.962 9.293.864.821 2.887 2.273 3.296 3.296 3.29 8.223-7.576 15.009 3.757 26.3 1.245 1.24 3.813-3.817 4.079-4.614.852-2.563 6.725-5.45 9.088-7.053 2.02-1.37 4.873-2.667 6.328-4.745 2.27-3.244 1.48-7.514 3.098-10.745 2.139-4.274 3.828-9.635 5.998-13.966 3.898-7.781 4.721 2.093 5.067 2.439.358.357 1.011 0 1.517 0 .094 0 1.447.099 1.516 0 .65-.935-1.043-17.92-1.318-19.297-1.404-7.01-6.944-15.781-11.865-20.5-6.274-6.015-7.09-16.197-18.259-14.954-.204.022-5.084 10.148-7.777 13.512-3.728 4.657-2.47-4.153-6.526-4.153-.081 0-1.183-.103-1.253 0-.586.88-1.44 3.896-2.306 4.417-.265.16-1.722-.239-1.846 0-2.243 4.3 8.256 2.212 5.792 7.952-2.352 5.481-6.328-1.997-6.328 8.56M44.467 7.01c9.685 6.13.682 12.198 2.694 16.215 1.655 3.303 4.241 5.395 1.714 9.814-2.063 3.608-6.87 3.966-9.623 6.723-3.04 3.044-5.464 8.94-6.79 12.911-1.617 4.843 14.547 6.866 12.063 11.008-1.386 2.311-6.746 1.466-8.437.198-1.165-.873-3.593-.546-4.417-1.78-2.613-3.915-2.26-8.023-3.625-12.128-.938-2.822-6.313-2.12-7.844-.593-.523.522-.33 1.792-.33 2.505 0 5.285 7.12 3.316 7.12 6.46 0 14.636 3.927 6.534 11.14 11.336 10.036 6.683 7.844 7.303 14.946 14.404 3.673 3.673 7.741 3.686 9.425 9.294 1.602 5.331-9.327 5.339-11.716 7.448-1.123.991-2.813 4.146-4.219 4.615-1.792.598-3.234.496-4.944 1.78-2.427 1.82-3.9 4.932-4.02 4.81-2.148-2.147-3.52-15.479-3.89-18.257-.588-4.42-5.59-5.54-6.986-9.03-1.57-3.927 1.524-9.52-1.129-13.761-6.52-10.424-11.821-14.5-15.35-26.292-.942-3.148 3.342-6.529 4.877-8.833 1.877-2.816 2.662-5.854 4.746-8.635C22.147 24.19 40.855 9.461 43.857 8.635l.61-1.625z\"/><path d=\"M64 126c34.242 0 62-27.758 62-62 0-34.242-27.758-62-62-62C29.758 2 2 29.758 2 64c0 34.242 27.758 62 62 62zm0-6c30.928 0 56-25.072 56-56S94.928 8 64 8 8 33.072 8 64s25.072 56 56 56z\"/></g></svg>"
},
"$:/core/images/heading-1": {
"title": "$:/core/images/heading-1",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-heading-1 tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M14 30h13.25v30.104H61.7V30h13.25v75.684H61.7V71.552H27.25v34.132H14V30zm70.335 13.78c2.544 0 5.017-.212 7.42-.636 2.403-.424 4.576-1.13 6.52-2.12 1.942-.99 3.603-2.261 4.981-3.816 1.378-1.555 2.28-3.463 2.703-5.724h9.858v74.2h-13.25V53.32H84.335v-9.54z\"/></svg>"
},
"$:/core/images/heading-2": {
"title": "$:/core/images/heading-2",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-heading-2 tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M6 30h13.25v30.104H53.7V30h13.25v75.684H53.7V71.552H19.25v34.132H6V30zm119.52 75.684H74.85c.07-6.148 1.555-11.519 4.452-16.112 2.897-4.593 6.855-8.586 11.872-11.978a133.725 133.725 0 017.526-5.141 59.6 59.6 0 007.208-5.353c2.19-1.908 3.993-3.975 5.406-6.201 1.413-2.226 2.155-4.788 2.226-7.685 0-1.343-.159-2.774-.477-4.293a11.357 11.357 0 00-1.855-4.24c-.919-1.307-2.19-2.403-3.816-3.286-1.625-.883-3.745-1.325-6.36-1.325-2.403 0-4.399.477-5.989 1.431-1.59.954-2.862 2.261-3.816 3.922-.954 1.66-1.66 3.622-2.12 5.883-.46 2.261-.724 4.7-.795 7.314H76.23c0-4.099.548-7.897 1.643-11.395 1.095-3.498 2.738-6.519 4.93-9.063 2.19-2.544 4.857-4.54 8.002-5.989C93.95 30.724 97.606 30 101.775 30c4.523 0 8.303.742 11.342 2.226 3.039 1.484 5.494 3.357 7.367 5.618 1.873 2.261 3.198 4.717 3.975 7.367.777 2.65 1.166 5.176 1.166 7.579 0 2.968-.46 5.653-1.378 8.056a25.942 25.942 0 01-3.71 6.625 37.5 37.5 0 01-5.3 5.565 79.468 79.468 0 01-6.148 4.77 165.627 165.627 0 01-6.36 4.24 94.28 94.28 0 00-5.883 4.028c-1.802 1.343-3.374 2.738-4.717 4.187-1.343 1.449-2.261 2.986-2.756 4.611h36.146v10.812z\"/></svg>"
},
"$:/core/images/heading-3": {
"title": "$:/core/images/heading-3",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-heading-3 tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M6 30h13.25v30.104H53.7V30h13.25v75.684H53.7V71.552H19.25v34.132H6V30zm88.885 32.224c1.979.07 3.957-.07 5.936-.424 1.979-.353 3.745-.972 5.3-1.855a10.365 10.365 0 003.763-3.657c.954-1.555 1.431-3.463 1.431-5.724 0-3.18-1.078-5.724-3.233-7.632-2.155-1.908-4.929-2.862-8.32-2.862-2.12 0-3.958.424-5.513 1.272a11.318 11.318 0 00-3.869 3.445c-1.025 1.449-1.784 3.074-2.279 4.876a18.335 18.335 0 00-.636 5.565H75.381c.141-3.604.813-6.943 2.014-10.017 1.201-3.074 2.844-5.742 4.93-8.003 2.084-2.261 4.61-4.028 7.578-5.3C92.871 30.636 96.228 30 99.973 30a29.2 29.2 0 018.533 1.272c2.791.848 5.3 2.085 7.526 3.71s4.01 3.692 5.353 6.201c1.343 2.509 2.014 5.388 2.014 8.639 0 3.745-.848 7.014-2.544 9.805-1.696 2.791-4.346 4.823-7.95 6.095v.212c4.24.848 7.544 2.95 9.911 6.307s3.551 7.438 3.551 12.243c0 3.533-.707 6.696-2.12 9.487a21.538 21.538 0 01-5.724 7.102c-2.403 1.943-5.194 3.445-8.374 4.505-3.18 1.06-6.537 1.59-10.07 1.59-4.31 0-8.074-.618-11.289-1.855s-5.9-2.986-8.056-5.247c-2.155-2.261-3.798-4.982-4.929-8.162-1.13-3.18-1.731-6.713-1.802-10.6h12.084c-.141 4.523.972 8.286 3.34 11.289 2.366 3.003 5.917 4.505 10.652 4.505 4.028 0 7.402-1.148 10.123-3.445 2.72-2.297 4.081-5.565 4.081-9.805 0-2.897-.565-5.194-1.696-6.89a10.97 10.97 0 00-4.452-3.869c-1.837-.883-3.904-1.431-6.2-1.643a58.067 58.067 0 00-7.05-.212v-9.01z\"/></svg>"
},
"$:/core/images/heading-4": {
"title": "$:/core/images/heading-4",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-heading-4 tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M8 30h13.25v30.104H55.7V30h13.25v75.684H55.7V71.552H21.25v34.132H8V30zm76.59 48.548h22.471V45.9h-.212L84.59 78.548zm43.46 9.54h-9.54v17.596H107.06V88.088h-31.8V76.11l31.8-44.626h11.448v47.064h9.54v9.54z\"/></svg>"
},
"$:/core/images/heading-5": {
"title": "$:/core/images/heading-5",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-heading-5 tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M6 30h13.25v30.104H53.7V30h13.25v75.684H53.7V71.552H19.25v34.132H6V30zm77.755 1.484h38.372v10.812H92.765L88.95 61.164l.212.212c1.625-1.837 3.692-3.233 6.201-4.187 2.509-.954 5-1.431 7.473-1.431 3.675 0 6.96.618 9.858 1.855 2.897 1.237 5.335 2.968 7.314 5.194s3.48 4.858 4.505 7.897c1.025 3.039 1.537 6.325 1.537 9.858 0 2.968-.477 6.024-1.43 9.169a25.161 25.161 0 01-4.559 8.586c-2.085 2.58-4.752 4.7-8.003 6.36-3.25 1.66-7.137 2.491-11.66 2.491-3.604 0-6.943-.477-10.017-1.431-3.074-.954-5.777-2.385-8.109-4.293-2.332-1.908-4.187-4.258-5.565-7.049-1.378-2.791-2.138-6.06-2.279-9.805h12.084c.353 4.028 1.731 7.12 4.134 9.275 2.403 2.155 5.583 3.233 9.54 3.233 2.544 0 4.7-.424 6.466-1.272 1.767-.848 3.198-2.014 4.293-3.498 1.095-1.484 1.873-3.215 2.332-5.194.46-1.979.69-4.099.69-6.36 0-2.05-.284-4.01-.849-5.883-.565-1.873-1.413-3.516-2.544-4.929-1.13-1.413-2.597-2.544-4.399-3.392-1.802-.848-3.904-1.272-6.307-1.272-2.544 0-4.929.477-7.155 1.431-2.226.954-3.834 2.738-4.823 5.353H75.805l7.95-40.598z\"/></svg>"
},
"$:/core/images/heading-6": {
"title": "$:/core/images/heading-6",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-heading-6 tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M6 30h13.25v30.104H53.7V30h13.25v75.684H53.7V71.552H19.25v34.132H6V30zm106.587 20.246c-.283-3.039-1.36-5.494-3.233-7.367-1.873-1.873-4.399-2.809-7.579-2.809-2.19 0-4.08.406-5.67 1.219a12.435 12.435 0 00-4.029 3.233c-1.095 1.343-1.979 2.88-2.65 4.611a37.696 37.696 0 00-1.643 5.459 46.08 46.08 0 00-.9 5.671 722.213 722.213 0 00-.478 5.247l.212.212c1.625-2.968 3.87-5.176 6.731-6.625 2.862-1.449 5.954-2.173 9.275-2.173 3.675 0 6.96.636 9.858 1.908 2.897 1.272 5.353 3.021 7.367 5.247 2.014 2.226 3.551 4.858 4.611 7.897 1.06 3.039 1.59 6.325 1.59 9.858 0 3.604-.583 6.943-1.749 10.017-1.166 3.074-2.844 5.76-5.035 8.056-2.19 2.297-4.805 4.081-7.844 5.353-3.039 1.272-6.395 1.908-10.07 1.908-5.441 0-9.91-1.007-13.409-3.021-3.498-2.014-6.254-4.77-8.268-8.268-2.014-3.498-3.41-7.597-4.187-12.296-.777-4.7-1.166-9.77-1.166-15.211 0-4.452.477-8.94 1.431-13.462.954-4.523 2.526-8.639 4.717-12.349 2.19-3.71 5.07-6.731 8.64-9.063C92.676 31.166 97.075 30 102.304 30c2.968 0 5.76.495 8.374 1.484 2.615.99 4.93 2.367 6.943 4.134 2.014 1.767 3.657 3.887 4.93 6.36 1.271 2.473 1.978 5.23 2.12 8.268h-12.085zm-11.66 46.852c2.19 0 4.099-.442 5.724-1.325a12.869 12.869 0 004.081-3.445c1.095-1.413 1.908-3.056 2.438-4.929.53-1.873.795-3.798.795-5.777s-.265-3.887-.795-5.724c-.53-1.837-1.343-3.445-2.438-4.823-1.095-1.378-2.456-2.491-4.08-3.339-1.626-.848-3.534-1.272-5.725-1.272-2.19 0-4.116.406-5.777 1.219-1.66.813-3.056 1.908-4.187 3.286-1.13 1.378-1.979 2.986-2.544 4.823-.565 1.837-.848 3.78-.848 5.83 0 2.05.283 3.993.848 5.83.565 1.837 1.413 3.48 2.544 4.929a12.39 12.39 0 004.187 3.445c1.66.848 3.586 1.272 5.777 1.272z\"/></svg>"
},
"$:/core/images/help": {
"title": "$:/core/images/help",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-help tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M36.055 111.441c-5.24 4.396-15.168 7.362-26.555 7.362-1.635 0-3.24-.06-4.806-.179 7.919-2.64 14.062-8.6 16.367-16.014C8.747 92.845 1.05 78.936 1.05 63.5c0-29.547 28.206-53.5 63-53.5s63 23.953 63 53.5-28.206 53.5-63 53.5c-10.055 0-19.56-2-27.994-5.559zm35.35-33.843a536.471 536.471 0 00.018-4.682 199.02 199.02 0 00-.023-3.042c.008-1.357.595-2.087 3.727-4.235.112-.077 1.085-.74 1.386-.948 3.093-2.133 5.022-3.786 6.762-6.187 2.34-3.228 3.558-7.077 3.558-11.649 0-13.292-9.86-21.952-21.455-21.952-11.103 0-22.499 9.609-24.066 22.295a6.023 6.023 0 1011.956 1.477c.806-6.527 6.972-11.726 12.11-11.726 5.265 0 9.408 3.64 9.408 9.906 0 3.634-1.1 5.153-5.111 7.919l-1.362.93c-2.682 1.84-4.227 3.1-5.7 4.931-2.109 2.62-3.242 5.717-3.258 9.314.013.892.02 1.86.022 2.981a470.766 470.766 0 01-.022 4.943 6.023 6.023 0 1012.046.12l.003-.395zm-6.027 24.499a7.529 7.529 0 100-15.058 7.529 7.529 0 000 15.058z\"/></svg>"
},
"$:/core/images/home-button": {
"title": "$:/core/images/home-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-home-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M112.985 119.502c.01-.165.015-.331.015-.499V67.568c3.137 2.948 8.076 2.884 11.134-.174a7.999 7.999 0 00-.002-11.316L70.396 2.343A7.978 7.978 0 0064.734 0a7.957 7.957 0 00-5.656 2.343L33 28.42V8.007C33 3.585 29.41 0 25 0c-4.418 0-8 3.59-8 8.007V44.42L5.342 56.078c-3.125 3.125-3.12 8.198-.002 11.316a7.999 7.999 0 0011.316-.003l.344-.343v52.945a8.11 8.11 0 000 .007c0 4.418 3.588 8 8 8h80c4.419 0 8-3.59 8-8a8.11 8.11 0 00-.015-.498zM97 112V51.574L64.737 19.31 33 51.048V112h64z\"/></svg>"
},
"$:/core/images/import-button": {
"title": "$:/core/images/import-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-import-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M114.832 60.436s3.235-3.27 6.921.417c3.686 3.686.231 7.14.231 7.14l-42.153 42.92s-30.765 32.367-58.798 4.333C-7 87.213 24.59 55.623 24.59 55.623L67.363 12.85s22.725-24.6 43.587-3.738c20.862 20.862-3.96 43.09-3.96 43.09l-35.04 35.04S49.903 112.546 36.426 99.07c-13.476-13.477 11.83-35.523 11.83-35.523l35.04-35.04s3.902-3.902 7.78-.023c3.879 3.878.118 7.921.118 7.921l-35.04 35.04s-13.212 13.212-8.872 17.551c4.34 4.34 16.77-9.653 16.77-9.653l35.04-35.04s16.668-14.598 3.966-27.3c-13.893-13.892-27.565 3.702-27.565 3.702l-42.91 42.91s-23.698 23.698-3.658 43.738 43.012-4.385 43.012-4.385l42.895-42.533z\"/></svg>"
},
"$:/core/images/info-button": {
"title": "$:/core/images/info-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-info-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\" transform=\"translate(.05)\"><path d=\"M64 128c35.346 0 64-28.654 64-64 0-35.346-28.654-64-64-64C28.654 0 0 28.654 0 64c0 35.346 28.654 64 64 64zm0-16c26.51 0 48-21.49 48-48S90.51 16 64 16 16 37.49 16 64s21.49 48 48 48z\"/><circle cx=\"64\" cy=\"32\" r=\"8\"/><rect width=\"16\" height=\"56\" x=\"56\" y=\"48\" rx=\"8\"/></g></svg>"
},
"$:/core/images/italic": {
"title": "$:/core/images/italic",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-italic tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M66.711 0h22.41L62.408 128H40z\"/></svg>"
},
"$:/core/images/left-arrow": {
"title": "$:/core/images/left-arrow",
"created": "20150315234410875",
"modified": "20150315235324760",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-left-arrow tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M0 64.177c0-2.026.771-4.054 2.317-5.6l55.98-55.98a7.92 7.92 0 0111.195.001c3.086 3.085 3.092 8.104.001 11.195L19.111 64.175l50.382 50.382a7.92 7.92 0 010 11.195c-3.086 3.086-8.105 3.092-11.196.001l-55.98-55.98A7.892 7.892 0 010 64.177z\"/></svg>"
},
"$:/core/images/line-width": {
"title": "$:/core/images/line-width",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-line-width tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M16 18h96a2 2 0 000-4H16a2 2 0 100 4zm0 17h96a4 4 0 100-8H16a4 4 0 100 8zm0 21h96a6 6 0 000-12H16a6 6 0 100 12zm0 29h96c5.523 0 10-4.477 10-10s-4.477-10-10-10H16c-5.523 0-10 4.477-10 10s4.477 10 10 10zm0 43h96c8.837 0 16-7.163 16-16s-7.163-16-16-16H16c-8.837 0-16 7.163-16 16s7.163 16 16 16z\"/></svg>"
},
"$:/core/images/link": {
"title": "$:/core/images/link",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-link tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M42.263 69.38a31.919 31.919 0 006.841 10.13c12.5 12.5 32.758 12.496 45.255 0l22.627-22.628c12.502-12.501 12.497-32.758 0-45.255-12.5-12.5-32.758-12.496-45.254 0L49.104 34.255a32.333 32.333 0 00-2.666 3.019 36.156 36.156 0 0121.94.334l14.663-14.663c6.25-6.25 16.382-6.254 22.632-.004 6.248 6.249 6.254 16.373-.004 22.631l-22.62 22.62c-6.25 6.25-16.381 6.254-22.631.004a15.93 15.93 0 01-4.428-8.433 11.948 11.948 0 00-7.59 3.48l-6.137 6.137z\"/><path d=\"M86.35 59.234a31.919 31.919 0 00-6.84-10.13c-12.5-12.5-32.758-12.497-45.255 0L11.627 71.732c-12.501 12.5-12.496 32.758 0 45.254 12.5 12.5 32.758 12.497 45.255 0L79.51 94.36a32.333 32.333 0 002.665-3.02 36.156 36.156 0 01-21.94-.333l-14.663 14.663c-6.25 6.25-16.381 6.253-22.63.004-6.25-6.249-6.255-16.374.003-22.632l22.62-22.62c6.25-6.25 16.381-6.253 22.631-.003a15.93 15.93 0 014.428 8.432 11.948 11.948 0 007.59-3.48l6.137-6.136z\"/></g></svg>"
},
"$:/core/images/linkify": {
"title": "$:/core/images/linkify",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-linkify-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M17.031 31.919H9.048V96.85h7.983v6.92H0V25h17.031v6.919zm24.66 0h-7.983V96.85h7.983v6.92H24.66V25h17.03v6.919zM67.77 56.422l11.975-3.903 2.306 7.096-12.063 3.903 7.628 10.379-6.12 4.435-7.63-10.467-7.45 10.2-5.943-4.523L58.1 63.518 45.95 59.35l2.306-7.096 12.064 4.17V43.825h7.45v12.596zM86.31 96.85h7.982V31.92H86.31V25h17.031v78.77H86.31v-6.92zm24.659 0h7.983V31.92h-7.983V25H128v78.77h-17.031v-6.92z\"/></svg>"
},
"$:/core/images/list-bullet": {
"title": "$:/core/images/list-bullet",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-list-bullet tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M11.636 40.273c6.427 0 11.637-5.21 11.637-11.637C23.273 22.21 18.063 17 11.636 17 5.21 17 0 22.21 0 28.636c0 6.427 5.21 11.637 11.636 11.637zm0 34.909c6.427 0 11.637-5.21 11.637-11.637 0-6.426-5.21-11.636-11.637-11.636C5.21 51.91 0 57.12 0 63.545c0 6.427 5.21 11.637 11.636 11.637zm0 34.909c6.427 0 11.637-5.21 11.637-11.636 0-6.427-5.21-11.637-11.637-11.637C5.21 86.818 0 92.028 0 98.455c0 6.426 5.21 11.636 11.636 11.636zM34.91 22.818H128v11.637H34.91V22.818zm0 34.91H128v11.636H34.91V57.727zm0 34.908H128v11.637H34.91V92.636z\"/></svg>"
},
"$:/core/images/list-number": {
"title": "$:/core/images/list-number",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-list-number tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M33.84 22.356H128v11.77H33.84v-11.77zm0 35.31H128v11.77H33.84v-11.77zm0 35.311H128v11.77H33.84v-11.77zM.38 42.631v-2.223h.998c.826 0 1.445-.14 1.858-.42.413-.28.619-.948.619-2.002V22.769c0-1.442-.193-2.336-.58-2.683-.385-.347-1.477-.52-3.275-.52v-2.143c3.502-.147 6.252-.955 8.25-2.423h2.117v22.865c0 .921.15 1.575.449 1.963.3.387.949.58 1.948.58h.998v2.223H.38zm-.3 35.356v-1.902c7.19-6.554 10.786-12.58 10.786-18.08 0-1.562-.326-2.81-.979-3.744-.652-.934-1.524-1.402-2.616-1.402-.893 0-1.655.317-2.287.952-.633.634-.95 1.364-.95 2.192 0 .974.247 1.829.74 2.563.106.16.16.28.16.36 0 .147-.16.28-.48.4-.213.08-.752.308-1.618.681-.839.374-1.358.561-1.558.561-.24 0-.512-.37-.819-1.111A6.2 6.2 0 010 57.064c0-1.949.849-3.544 2.547-4.785 1.698-1.242 3.798-1.862 6.302-1.862 2.463 0 4.53.67 6.202 2.012 1.67 1.341 2.506 3.093 2.506 5.256a8.644 8.644 0 01-.849 3.724c-.566 1.201-1.92 3.053-4.064 5.556a165.471 165.471 0 01-6.272 6.938h11.445l-1.019 5.726h-2.117c.08-.28.12-.534.12-.76 0-.388-.1-.631-.3-.731-.2-.1-.599-.15-1.198-.15H.08zm12.124 19.207c1.745.04 3.236.637 4.474 1.792 1.239 1.154 1.858 2.773 1.858 4.855 0 2.99-1.132 5.393-3.396 7.208-2.263 1.815-5 2.723-8.209 2.723-2.01 0-3.669-.384-4.974-1.151C.652 111.853 0 110.849 0 109.607c0-.774.27-1.398.809-1.872.54-.474 1.128-.71 1.768-.71.639 0 1.162.2 1.568.6.406.4.782 1.055 1.128 1.962.466 1.268 1.239 1.902 2.317 1.902 1.265 0 2.287-.477 3.066-1.431.78-.955 1.169-2.686 1.169-5.196 0-1.709-.12-3.023-.36-3.944-.24-.921-.792-1.382-1.658-1.382-.586 0-1.185.307-1.797.921-.493.494-.932.741-1.319.741-.333 0-.602-.147-.809-.44-.206-.294-.31-.574-.31-.841 0-.32.104-.594.31-.821.207-.227.69-.594 1.449-1.102 2.876-1.922 4.314-4.017 4.314-6.287 0-1.188-.306-2.092-.919-2.713a3.001 3.001 0 00-2.217-.93c-.799 0-1.525.263-2.177.79-.653.528-.979 1.158-.979 1.892 0 .641.253 1.235.76 1.782.172.2.259.367.259.5 0 .121-.57.428-1.708.922-1.139.494-1.854.74-2.147.74-.413 0-.75-.333-1.009-1-.26-.668-.39-1.282-.39-1.842 0-1.749.93-3.224 2.787-4.425 1.858-1.202 3.965-1.802 6.322-1.802 2.064 0 3.851.447 5.363 1.341 1.511.895 2.267 2.116 2.267 3.664 0 1.362-.57 2.623-1.708 3.784a13.387 13.387 0 01-3.945 2.784z\"/></svg>"
},
"$:/core/images/list": {
"title": "$:/core/images/list",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-list tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M87.748 128H23.999c-4.418 0-7.999-3.59-7.999-8.007V8.007C16 3.585 19.588 0 24 0h80c4.419 0 8 3.59 8 8.007V104H91.25c-.965 0-1.84.392-2.473 1.025a3.476 3.476 0 00-1.029 2.476V128zm8-.12l15.88-15.88h-15.88v15.88zM40 15.508A3.502 3.502 0 0143.5 12h55c1.933 0 3.5 1.561 3.5 3.509v.982A3.502 3.502 0 0198.5 20h-55a3.498 3.498 0 01-3.5-3.509v-.982zM32 22a6 6 0 100-12 6 6 0 000 12zm8 9.509A3.502 3.502 0 0143.5 28h55c1.933 0 3.5 1.561 3.5 3.509v.982A3.502 3.502 0 0198.5 36h-55a3.498 3.498 0 01-3.5-3.509v-.982zm0 16A3.502 3.502 0 0143.5 44h55c1.933 0 3.5 1.561 3.5 3.509v.982A3.502 3.502 0 0198.5 52h-55a3.498 3.498 0 01-3.5-3.509v-.982zm0 16A3.502 3.502 0 0143.5 60h55c1.933 0 3.5 1.561 3.5 3.509v.982A3.502 3.502 0 0198.5 68h-55a3.498 3.498 0 01-3.5-3.509v-.982zm0 16A3.502 3.502 0 0143.5 76h55c1.933 0 3.5 1.561 3.5 3.509v.982A3.502 3.502 0 0198.5 84h-55a3.498 3.498 0 01-3.5-3.509v-.982zm0 16A3.502 3.502 0 0143.5 92h55c1.933 0 3.5 1.561 3.5 3.509v.982A3.502 3.502 0 0198.5 100h-55a3.498 3.498 0 01-3.5-3.509v-.982zm0 16A3.505 3.505 0 0143.497 108h33.006A3.497 3.497 0 0180 111.509v.982A3.505 3.505 0 0176.503 116H43.497A3.497 3.497 0 0140 112.491v-.982zM32 38a6 6 0 100-12 6 6 0 000 12zm0 16a6 6 0 100-12 6 6 0 000 12zm0 16a6 6 0 100-12 6 6 0 000 12zm0 16a6 6 0 100-12 6 6 0 000 12zm0 16a6 6 0 100-12 6 6 0 000 12zm0 16a6 6 0 100-12 6 6 0 000 12z\"/></svg>"
},
"$:/core/images/locked-padlock": {
"title": "$:/core/images/locked-padlock",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-locked-padlock tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M96.472 64H105v32.01C105 113.674 90.674 128 73.001 128H56C38.318 128 24 113.677 24 96.01V64h8c.003-15.723.303-47.731 32.16-47.731 31.794 0 32.305 32.057 32.312 47.731zm-15.897 0H48.44c.002-16.287.142-32 15.719-32 15.684 0 16.977 16.136 16.415 32zM67.732 92.364A8.503 8.503 0 0064.5 76a8.5 8.5 0 00-3.498 16.25l-5.095 22.77H72.8l-5.07-22.656z\"/></svg>"
},
"$:/core/images/mail": {
"title": "$:/core/images/mail",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-mail tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M122.827 104.894a7.986 7.986 0 01-2.834.516H8.007c-.812 0-1.597-.12-2.335-.345l34.163-34.163 20.842 20.842a3.998 3.998 0 003.418 1.134 4.003 4.003 0 003.395-1.134L88.594 70.64c.075.09.155.176.24.26l33.993 33.994zm5.076-6.237c.064-.406.097-.823.097-1.247v-64c0-.669-.082-1.318-.237-1.94L94.23 65.006c.09.075.177.154.261.239l33.413 33.413zm-127.698.56A8.023 8.023 0 010 97.41v-64c0-.716.094-1.41.271-2.071l33.907 33.906L.205 99.218zM5.93 25.684a8.012 8.012 0 012.078-.273h111.986c.766 0 1.507.108 2.209.308L64.083 83.837 5.93 25.683z\"/></svg>"
},
"$:/core/images/menu-button": {
"title": "$:/core/images/menu-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-menu-button tc-image-button\" viewBox=\"0 0 128 128\"><rect width=\"128\" height=\"16\" y=\"16\" rx=\"8\"/><rect width=\"128\" height=\"16\" y=\"56\" rx=\"8\"/><rect width=\"128\" height=\"16\" y=\"96\" rx=\"8\"/></svg>"
},
"$:/core/images/mono-block": {
"title": "$:/core/images/mono-block",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-mono-block tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M23.965 32.967h.357c.755 0 1.328.192 1.72.577.39.384.586.947.586 1.688 0 .824-.206 1.418-.618 1.782-.413.363-1.094.545-2.045.545h-6.31c-.965 0-1.65-.178-2.056-.535-.405-.356-.608-.954-.608-1.792 0-.811.203-1.391.608-1.74.406-.35 1.09-.525 2.055-.525h.734l-.86-2.453H8.471l-.902 2.453h.734c.95 0 1.632.178 2.044.535.413.356.619.933.619 1.73 0 .824-.206 1.418-.619 1.782-.412.363-1.094.545-2.044.545h-5.41c-.964 0-1.649-.182-2.054-.545-.406-.364-.608-.958-.608-1.782 0-.741.195-1.304.587-1.688.391-.385.964-.577 1.719-.577h.356l5.62-15.641H6.835c-.95 0-1.632-.182-2.044-.546-.412-.363-.619-.95-.619-1.76 0-.825.207-1.42.619-1.783.412-.363 1.094-.545 2.044-.545h7.863c1.244 0 2.118.67 2.62 2.013v.063l6.647 18.2zM12.98 17.326l-3.04 8.848h6.08l-3.04-8.848zm22.402 9.372v6.395h3.145c2.223 0 3.788-.245 4.697-.734.908-.49 1.362-1.307 1.362-2.453 0-1.16-.433-1.985-1.3-2.474-.866-.49-2.383-.734-4.55-.734h-3.354zm10.693-2.327c1.524.559 2.642 1.324 3.355 2.295.713.972 1.07 2.212 1.07 3.722 0 1.272-.308 2.432-.923 3.48-.615 1.049-1.496 1.909-2.642 2.58a7.499 7.499 0 01-2.254.849c-.832.174-2.01.262-3.533.262H30.202c-.922 0-1.583-.182-1.981-.545-.399-.364-.598-.958-.598-1.782 0-.741.189-1.304.566-1.688.378-.385.93-.577 1.657-.577h.356V17.326h-.356c-.727 0-1.28-.196-1.657-.587-.377-.392-.566-.965-.566-1.72 0-.81.203-1.401.608-1.771.406-.37 1.062-.556 1.971-.556h9.645c2.95 0 5.19.573 6.72 1.72 1.53 1.145 2.296 2.823 2.296 5.031 0 1.09-.234 2.052-.703 2.883-.468.832-1.163 1.513-2.086 2.045zM35.381 17.2v5.284h2.83c1.72 0 2.932-.203 3.638-.609.706-.405 1.06-1.09 1.06-2.054 0-.909-.319-1.573-.955-1.992-.636-.42-1.667-.63-3.093-.63h-3.48zm35.863-3.816c.28-.503.566-.86.86-1.07.293-.21.664-.314 1.111-.314.685 0 1.17.182 1.457.545.287.364.43.986.43 1.866l.042 5.452c0 .964-.157 1.614-.472 1.95-.314.335-.884.503-1.709.503-.587 0-1.037-.14-1.352-.42-.314-.28-.584-.796-.807-1.551-.364-1.328-.944-2.282-1.74-2.862-.797-.58-1.901-.87-3.313-.87-2.153 0-3.802.727-4.948 2.18-1.147 1.454-1.72 3.558-1.72 6.311 0 2.74.58 4.844 1.74 6.311 1.16 1.468 2.817 2.202 4.97 2.202 1.467 0 3.085-.49 4.854-1.468 1.768-.978 2.883-1.467 3.344-1.467.545 0 1.003.23 1.373.692.37.46.556 1.034.556 1.719 0 1.23-1.084 2.39-3.25 3.48-2.167 1.09-4.606 1.636-7.318 1.636-3.662 0-6.625-1.21-8.89-3.627-2.264-2.419-3.396-5.578-3.396-9.478 0-3.76 1.146-6.884 3.438-9.372 2.293-2.488 5.2-3.732 8.723-3.732.992 0 1.97.112 2.935.335.964.224 1.992.574 3.082 1.049zm10.22 19.583V17.326h-.356c-.755 0-1.328-.196-1.72-.587-.39-.392-.586-.965-.586-1.72 0-.81.21-1.401.629-1.771.42-.37 1.097-.556 2.034-.556h5.178c2.922 0 5.06.126 6.416.377 1.356.252 2.51.671 3.46 1.258 1.691 1.007 2.988 2.443 3.89 4.31.9 1.865 1.352 4.021 1.352 6.467 0 2.586-.514 4.847-1.541 6.783-1.028 1.936-2.485 3.4-4.372 4.393-.853.447-1.852.772-2.998.975-1.147.203-2.852.304-5.116.304h-6.269c-.965 0-1.65-.178-2.055-.535-.406-.356-.608-.954-.608-1.792 0-.741.195-1.304.587-1.688.391-.385.964-.577 1.72-.577h.356zm5.41-15.725v15.725h1.195c2.642 0 4.592-.646 5.85-1.94 1.258-1.292 1.887-3.28 1.887-5.965 0-2.641-.64-4.612-1.918-5.912-1.28-1.3-3.205-1.95-5.777-1.95-.335 0-.59.003-.765.01a7.992 7.992 0 00-.472.032zm35.067-.126h-9.75v5.368h3.69v-.252c0-.797.175-1.39.524-1.782.35-.392.88-.587 1.594-.587.629 0 1.142.178 1.54.534.4.357.598.808.598 1.353 0 .028.007.118.021.272.014.154.021.308.021.462v4.34c0 .936-.167 1.607-.503 2.013-.335.405-.88.608-1.635.608-.713 0-1.251-.19-1.615-.567-.363-.377-.545-.936-.545-1.677v-.377h-3.69v6.269h9.75v-2.495c0-.937.178-1.608.534-2.013.357-.405.94-.608 1.75-.608.798 0 1.367.2 1.71.597.342.399.513 1.073.513 2.024v5.074c0 .755-.146 1.258-.44 1.51-.293.251-.873.377-1.74.377h-17.172c-.923 0-1.583-.182-1.982-.545-.398-.364-.597-.958-.597-1.782 0-.741.189-1.304.566-1.688.377-.385.93-.577 1.656-.577h.357V17.326h-.357c-.712 0-1.261-.2-1.646-.598-.384-.398-.576-.968-.576-1.709 0-.81.203-1.401.608-1.771.405-.37 1.062-.556 1.97-.556h17.173c.853 0 1.43.13 1.73.388.3.258.45.772.45 1.54v4.698c0 .95-.174 1.631-.524 2.044-.35.412-.915.618-1.698.618-.81 0-1.394-.21-1.75-.629-.357-.419-.535-1.097-.535-2.033v-2.202zM19.77 47.641c.267-.504.55-.86.85-1.07.3-.21.675-.314 1.122-.314.685 0 1.17.181 1.457.545.287.363.43.985.43 1.866l.042 5.451c0 .965-.157 1.615-.472 1.95-.314.336-.891.504-1.73.504-.587 0-1.045-.144-1.373-.43-.329-.287-.598-.8-.807-1.541-.378-1.342-.958-2.3-1.74-2.873-.783-.573-1.88-.86-3.292-.86-2.153 0-3.799.727-4.938 2.181-1.14 1.454-1.709 3.557-1.709 6.311s.598 4.882 1.793 6.385C10.599 67.248 12.294 68 14.488 68c.503 0 1.077-.06 1.72-.179a23.809 23.809 0 002.264-.555v-3.313h-2.37c-.95 0-1.624-.175-2.023-.524-.398-.35-.597-.93-.597-1.74 0-.84.199-1.437.597-1.793.399-.357 1.073-.535 2.024-.535h7.569c.978 0 1.667.175 2.065.524.398.35.598.937.598 1.762 0 .74-.2 1.31-.598 1.708-.398.399-.975.598-1.73.598h-.335v5.242c0 .447-.05.758-.147.933-.098.174-.293.353-.587.534-.797.476-2.062.895-3.795 1.258a25.576 25.576 0 01-5.263.546c-3.662 0-6.625-1.21-8.89-3.628-2.264-2.418-3.397-5.577-3.397-9.477 0-3.76 1.147-6.884 3.44-9.372 2.292-2.488 5.199-3.732 8.721-3.732.979 0 1.954.112 2.925.335.972.224 2.003.573 3.093 1.049zm15.84 3.941v4.823h6.857v-4.823h-.336c-.754 0-1.331-.195-1.73-.587-.398-.391-.597-.964-.597-1.719 0-.825.206-1.419.619-1.782.412-.364 1.093-.545 2.044-.545h5.41c.95 0 1.624.181 2.023.545.398.363.597.957.597 1.782 0 .755-.192 1.328-.576 1.72-.385.39-.947.586-1.688.586h-.357v15.642h.357c.755 0 1.328.192 1.719.576.391.385.587.947.587 1.688 0 .825-.203 1.419-.608 1.782-.405.364-1.09.546-2.055.546h-5.41c-.964 0-1.649-.179-2.054-.535-.405-.357-.608-.954-.608-1.793 0-.74.2-1.303.598-1.688.398-.384.975-.576 1.73-.576h.335v-6.186h-6.856v6.186h.335c.755 0 1.331.192 1.73.576.398.385.597.947.597 1.688 0 .825-.206 1.419-.618 1.782-.412.364-1.094.546-2.044.546h-5.41c-.964 0-1.65-.179-2.055-.535-.405-.357-.608-.954-.608-1.793 0-.74.196-1.303.587-1.688.392-.384.965-.576 1.72-.576h.356V51.582h-.356c-.741 0-1.304-.195-1.688-.587-.385-.391-.577-.964-.577-1.719 0-.825.2-1.419.598-1.782.398-.364 1.073-.545 2.023-.545h5.41c.936 0 1.614.181 2.033.545.42.363.63.957.63 1.782 0 .755-.2 1.328-.598 1.72-.399.39-.975.586-1.73.586h-.335zm31.754 0v15.642h3.523c.95 0 1.632.178 2.044.534.412.357.618.933.618 1.73 0 .811-.21 1.402-.629 1.772-.419.37-1.097.556-2.033.556H58.433c-.95 0-1.632-.182-2.044-.546-.412-.363-.619-.957-.619-1.782 0-.81.203-1.39.608-1.74.406-.35 1.09-.524 2.055-.524h3.523V51.582h-3.523c-.95 0-1.632-.181-2.044-.545-.412-.363-.619-.95-.619-1.761 0-.825.203-1.412.608-1.761.406-.35 1.09-.524 2.055-.524h12.455c.992 0 1.684.174 2.075.524.392.35.587.936.587 1.761 0 .81-.202 1.398-.608 1.761-.405.364-1.09.545-2.054.545h-3.523zm30.496 0v11.994c0 1.873-.122 3.228-.367 4.067a5.876 5.876 0 01-1.227 2.244c-.74.852-1.768 1.495-3.082 1.929-1.314.433-2.893.65-4.738.65-1.3 0-2.555-.126-3.764-.378a16.843 16.843 0 01-3.491-1.132c-.615-.28-1.017-.643-1.206-1.09-.188-.448-.283-1.175-.283-2.18v-4.32c0-1.202.175-2.04.525-2.516.349-.475.957-.713 1.824-.713 1.244 0 1.929.915 2.054 2.747.014.321.035.566.063.733.168 1.622.545 2.73 1.133 3.324.587.594 1.523.89 2.81.89 1.593 0 2.714-.422 3.364-1.268.65-.845.975-2.386.975-4.623V51.582H88.93c-.95 0-1.632-.181-2.044-.545-.413-.363-.619-.95-.619-1.761 0-.825.2-1.412.598-1.761.398-.35 1.086-.524 2.065-.524h10.693c.979 0 1.667.174 2.065.524.399.35.598.936.598 1.761 0 .81-.206 1.398-.619 1.761-.412.364-1.093.545-2.044.545h-1.761zm14.644 0v6.353l6.48-6.478c-.728-.084-1.238-.29-1.531-.619-.294-.328-.44-.85-.44-1.562 0-.825.198-1.419.597-1.782.398-.364 1.073-.545 2.023-.545h5.137c.95 0 1.625.181 2.023.545.399.363.598.957.598 1.782 0 .769-.2 1.345-.598 1.73-.398.384-.982.576-1.75.576h-.483l-6.101 6.06c1.132.839 2.167 1.94 3.103 3.302.937 1.363 2.034 3.456 3.292 6.28h.692c.825 0 1.44.188 1.845.566.405.377.608.943.608 1.698 0 .825-.206 1.419-.619 1.782-.412.364-1.093.546-2.044.546h-2.579c-1.132 0-2.048-.762-2.746-2.286-.126-.28-.224-.503-.294-.67-.923-1.958-1.768-3.467-2.537-4.53a16.616 16.616 0 00-2.705-2.914l-1.97 1.887v3.92h.335c.755 0 1.331.193 1.73.577.398.385.597.947.597 1.688 0 .825-.206 1.419-.618 1.782-.413.364-1.094.546-2.045.546h-5.41c-.964 0-1.649-.179-2.054-.535-.405-.357-.608-.954-.608-1.793 0-.74.196-1.303.587-1.688.391-.384.965-.576 1.72-.576h.356V51.582h-.357c-.74 0-1.303-.195-1.687-.587-.385-.391-.577-.964-.577-1.719 0-.825.2-1.419.598-1.782.398-.364 1.072-.545 2.023-.545h5.41c.936 0 1.614.181 2.033.545.42.363.63.957.63 1.782 0 .755-.2 1.328-.598 1.72-.399.39-.975.586-1.73.586h-.336zM13.44 96.326l4.005-11.889c.251-.782.6-1.352 1.048-1.709.447-.356 1.041-.534 1.782-.534h3.271c.95 0 1.632.182 2.044.545.413.363.619.957.619 1.782 0 .755-.2 1.328-.598 1.72-.398.39-.975.587-1.73.587h-.335l.587 15.641h.357c.754 0 1.32.192 1.698.577.377.384.566.947.566 1.687 0 .825-.2 1.42-.598 1.783-.398.363-1.072.545-2.023.545h-4.718c-.95 0-1.624-.178-2.023-.535-.398-.356-.597-.954-.597-1.793 0-.74.192-1.303.576-1.687.385-.385.954-.577 1.709-.577h.335l-.293-12.79-3.061 9.52c-.224.712-.542 1.226-.954 1.54-.413.315-.982.472-1.709.472-.727 0-1.303-.157-1.73-.472-.426-.314-.751-.828-.975-1.54l-3.04-9.52-.294 12.79h.336c.755 0 1.324.192 1.709.577.384.384.576.947.576 1.687 0 .825-.202 1.42-.608 1.783-.405.363-1.076.545-2.013.545H2.621c-.937 0-1.608-.182-2.013-.545-.405-.364-.608-.958-.608-1.783 0-.74.192-1.303.577-1.687.384-.385.954-.577 1.708-.577h.336l.608-15.641h-.336c-.754 0-1.331-.196-1.73-.588-.398-.39-.597-.964-.597-1.719 0-.825.206-1.419.619-1.782.412-.363 1.093-.545 2.044-.545h3.27c.728 0 1.311.175 1.752.524.44.35.8.923 1.08 1.72l4.109 11.888zm30.454 2.054V86.828H42.74c-.922 0-1.583-.182-1.981-.546-.398-.363-.598-.95-.598-1.76 0-.812.2-1.402.598-1.773.398-.37 1.059-.555 1.981-.555h5.955c.909 0 1.566.185 1.97.555.406.37.609.961.609 1.772 0 .741-.192 1.31-.577 1.709-.384.398-.933.598-1.646.598h-.356v19.038c0 .657-.07 1.069-.21 1.237-.14.167-.454.251-.943.251h-2.097c-.67 0-1.143-.07-1.415-.21-.273-.14-.507-.384-.703-.733l-8.722-15.327v11.385h1.216c.909 0 1.559.175 1.95.524.392.35.587.93.587 1.74 0 .825-.199 1.42-.597 1.783-.399.363-1.045.545-1.94.545h-6.017c-.909 0-1.566-.182-1.971-.545-.406-.364-.608-.958-.608-1.783 0-.74.188-1.303.566-1.687.377-.385.936-.577 1.677-.577h.336V86.828h-.336c-.713 0-1.265-.2-1.656-.598-.392-.398-.587-.968-.587-1.709 0-.81.206-1.401.618-1.772.413-.37 1.066-.555 1.96-.555h3.44c.824 0 1.383.108 1.677.325.293.216.622.653.985 1.31l7.989 14.551zM64.66 86.366c-1.803 0-3.218.727-4.245 2.18-1.028 1.455-1.541 3.474-1.541 6.06 0 2.586.517 4.613 1.551 6.08 1.034 1.468 2.446 2.202 4.235 2.202 1.804 0 3.222-.73 4.257-2.19 1.034-1.461 1.551-3.492 1.551-6.092 0-2.586-.513-4.605-1.54-6.06-1.028-1.453-2.45-2.18-4.268-2.18zm0-4.864c3.44 0 6.27 1.23 8.492 3.69 2.223 2.46 3.334 5.598 3.334 9.414 0 3.844-1.104 6.99-3.313 9.436-2.208 2.446-5.046 3.669-8.513 3.669-3.424 0-6.255-1.234-8.491-3.701-2.237-2.467-3.355-5.602-3.355-9.404 0-3.83 1.108-6.971 3.323-9.424 2.216-2.454 5.057-3.68 8.523-3.68zM87.461 98.17v4.298h2.16c.908 0 1.555.175 1.94.524.384.35.576.93.576 1.74 0 .825-.196 1.42-.587 1.783-.392.363-1.035.545-1.93.545h-7.254c-.922 0-1.583-.182-1.981-.545-.399-.364-.598-.958-.598-1.783 0-.74.189-1.303.566-1.687.378-.385.93-.577 1.657-.577h.356V86.828h-.356c-.713 0-1.262-.2-1.646-.598-.385-.398-.577-.968-.577-1.709 0-.81.203-1.401.608-1.772.406-.37 1.063-.555 1.971-.555h8.66c3.424 0 6.014.657 7.768 1.97 1.754 1.315 2.631 3.25 2.631 5.809 0 2.697-.873 4.738-2.62 6.122-1.748 1.384-4.34 2.076-7.78 2.076h-3.564zm0-11.343v6.625h2.977c1.65 0 2.89-.28 3.722-.839.832-.559 1.248-1.397 1.248-2.516 0-1.048-.43-1.855-1.29-2.421-.86-.566-2.086-.85-3.68-.85h-2.977zm27.267 20.568l-1.636 1.636a12.37 12.37 0 011.772-.44c.58-.098 1.15-.147 1.709-.147 1.104 0 2.268.164 3.491.492 1.223.329 1.967.493 2.233.493.447 0 1.03-.15 1.75-.45.72-.301 1.206-.452 1.458-.452.517 0 .947.2 1.29.598.342.398.513.898.513 1.5 0 .796-.472 1.474-1.415 2.033-.944.56-2.1.839-3.47.839-.937 0-2.139-.22-3.607-.66-1.467-.441-2.53-.661-3.187-.661-.992 0-2.11.272-3.354.817-1.244.546-2.013.818-2.307.818a2.14 2.14 0 01-1.53-.597c-.42-.399-.63-.878-.63-1.437 0-.391.134-.807.4-1.247.265-.44.733-1.01 1.404-1.709l2.118-2.139c-2.335-.852-4.194-2.386-5.578-4.602-1.384-2.215-2.075-4.763-2.075-7.642 0-3.802 1.104-6.909 3.312-9.32 2.209-2.411 5.053-3.617 8.534-3.617 3.467 0 6.304 1.209 8.513 3.627 2.208 2.418 3.312 5.522 3.312 9.31 0 3.774-1.097 6.884-3.291 9.33-2.195 2.446-4.977 3.67-8.345 3.67a22.5 22.5 0 01-1.384-.043zm1.195-21.03c-1.803 0-3.218.727-4.246 2.18-1.027 1.455-1.54 3.474-1.54 6.06 0 2.586.516 4.613 1.55 6.08 1.035 1.468 2.447 2.202 4.236 2.202 1.803 0 3.222-.73 4.256-2.19 1.035-1.461 1.552-3.492 1.552-6.092 0-2.586-.514-4.605-1.541-6.06-1.028-1.453-2.45-2.18-4.267-2.18z\"/></svg>"
},
"$:/core/images/mono-line": {
"title": "$:/core/images/mono-line",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-mono-line tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M60.437 84.523h.908c1.922 0 3.381.489 4.378 1.468.997.979 1.495 2.411 1.495 4.298 0 2.1-.525 3.612-1.575 4.538-1.05.925-2.785 1.388-5.206 1.388h-16.07c-2.456 0-4.2-.454-5.232-1.361-1.032-.908-1.548-2.43-1.548-4.565 0-2.065.516-3.542 1.548-4.432 1.032-.89 2.776-1.334 5.232-1.334h1.869l-2.19-6.247H20.983l-2.296 6.247h1.87c2.42 0 4.155.453 5.205 1.361 1.05.908 1.575 2.376 1.575 4.405 0 2.1-.525 3.612-1.575 4.538-1.05.925-2.785 1.388-5.206 1.388H6.781c-2.456 0-4.2-.463-5.233-1.388C.516 93.9 0 92.389 0 90.289c0-1.887.498-3.32 1.495-4.298.997-.979 2.456-1.468 4.378-1.468h.908l14.308-39.83h-4.271c-2.42 0-4.156-.462-5.206-1.387-1.05-.926-1.575-2.42-1.575-4.485 0-2.1.525-3.613 1.575-4.538 1.05-.926 2.785-1.388 5.206-1.388h20.021c3.168 0 5.392 1.708 6.674 5.125v.16l16.924 46.343zm-27.976-39.83L24.72 67.225h15.483l-7.742-22.53zM89.506 68.56v16.284h8.008c5.66 0 9.646-.623 11.96-1.869 2.313-1.245 3.47-3.328 3.47-6.246 0-2.955-1.103-5.055-3.31-6.3-2.207-1.246-6.069-1.869-11.586-1.869h-8.542zm27.229-5.926c3.88 1.423 6.727 3.372 8.542 5.846 1.815 2.474 2.723 5.633 2.723 9.477 0 3.239-.783 6.193-2.35 8.862-1.565 2.67-3.808 4.859-6.726 6.567-1.709.997-3.622 1.718-5.74 2.163-2.118.445-5.116.667-8.996.667h-27.87c-2.349 0-4.03-.463-5.045-1.388-1.014-.926-1.521-2.438-1.521-4.538 0-1.887.48-3.32 1.441-4.298.961-.979 2.367-1.468 4.218-1.468h.907v-39.83h-.907c-1.851 0-3.257-.498-4.218-1.494-.961-.997-1.441-2.456-1.441-4.378 0-2.065.516-3.568 1.548-4.512 1.032-.943 2.705-1.414 5.018-1.414h24.56c7.51 0 13.214 1.459 17.111 4.377 3.898 2.92 5.847 7.19 5.847 12.814 0 2.776-.597 5.223-1.789 7.341-1.192 2.118-2.963 3.853-5.312 5.206zm-27.23-18.26v13.455h7.208c4.378 0 7.466-.516 9.264-1.549 1.797-1.032 2.696-2.776 2.696-5.232 0-2.313-.81-4.004-2.43-5.072-1.619-1.068-4.244-1.602-7.874-1.602h-8.863z\"/></svg>"
},
"$:/core/images/new-button": {
"title": "$:/core/images/new-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-new-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M56 72H8.007C3.591 72 0 68.418 0 64c0-4.41 3.585-8 8.007-8H56V8.007C56 3.591 59.582 0 64 0c4.41 0 8 3.585 8 8.007V56h47.993c4.416 0 8.007 3.582 8.007 8 0 4.41-3.585 8-8.007 8H72v47.993c0 4.416-3.582 8.007-8 8.007-4.41 0-8-3.585-8-8.007V72z\"/></svg>"
},
"$:/core/images/new-here-button": {
"title": "$:/core/images/new-here-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-new-here-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M55.838 20.935l-3.572.938c-3.688.968-8.23 4.43-10.136 7.731L3.37 96.738c-1.905 3.3-.771 7.524 2.534 9.432l33.717 19.466c3.297 1.904 7.53.78 9.435-2.521l38.76-67.134c1.905-3.3 2.632-8.963 1.623-12.646L83.285 20.88c-1.009-3.68-4.821-5.884-8.513-4.915l-7.603 1.995.043.287c.524 3.394 2.053 7.498 4.18 11.55.418.163.829.36 1.23.59a8.864 8.864 0 014.438 8.169c.104.132.21.264.316.395l-.386.318a8.663 8.663 0 01-1.082 3.137c-2.42 4.192-7.816 5.608-12.051 3.163-4.12-2.379-5.624-7.534-3.476-11.671-2.177-4.394-3.788-8.874-4.543-12.964z\"/><path d=\"M69.554 44.76c-5.944-7.476-10.74-17.196-11.955-25.059-1.68-10.875 3.503-18.216 15.082-18.04 10.407.158 19.975 5.851 24.728 13.785 5.208 8.695 2.95 17.868-6.855 20.496l-2.037-7.601c4.232-1.134 4.999-4.248 2.24-8.853-3.37-5.626-10.465-9.848-18.146-9.965-6.392-.097-8.31 2.62-7.323 9.01.999 6.465 5.318 15.138 10.582 21.65l-.072.06c.559 1.553-4.17 6.44-5.938 4.888l-.005.004-.028-.034a1.323 1.323 0 01-.124-.135 2.618 2.618 0 01-.149-.205z\"/><rect width=\"16\" height=\"48\" x=\"96\" y=\"80\" rx=\"8\"/><rect width=\"48\" height=\"16\" x=\"80\" y=\"96\" rx=\"8\"/></g></svg>"
},
"$:/core/images/new-image-button": {
"title": "$:/core/images/new-image-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-new-image-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M81.362 73.627l15.826-27.41a2.626 2.626 0 00-.962-3.59l-50.01-28.872a2.626 2.626 0 00-3.588.961L30.058 36.49l10.04-5.261c3.042-1.595 6.771.114 7.55 3.46l3.607 17.702 9.88.85a5.25 5.25 0 014.571 3.77c.034.115.1.344.199.671.165.553.353 1.172.562 1.843.595 1.914 1.23 3.85 1.872 5.678.207.588.412 1.156.614 1.701.625 1.685 1.209 3.114 1.725 4.207.255.54.485.977.726 1.427.214.212.547.425 1.011.622 1.141.482 2.784.74 4.657.758.864.008 1.71-.034 2.492-.11.448-.043.753-.085.871-.104.315-.053.625-.077.927-.076zM37.47 2.649A5.257 5.257 0 0144.649.725l63.645 36.746a5.257 5.257 0 011.923 7.178L73.47 108.294a5.257 5.257 0 01-7.177 1.923L2.649 73.47a5.257 5.257 0 01-1.924-7.177L37.471 2.649zm42.837 50.49a5.25 5.25 0 105.25-9.092 5.25 5.25 0 00-5.25 9.093zM96 112h-7.993c-4.419 0-8.007-3.582-8.007-8 0-4.41 3.585-8 8.007-8H96v-7.993C96 83.588 99.582 80 104 80c4.41 0 8 3.585 8 8.007V96h7.993c4.419 0 8.007 3.582 8.007 8 0 4.41-3.585 8-8.007 8H112v7.993c0 4.419-3.582 8.007-8 8.007-4.41 0-8-3.585-8-8.007V112zM33.347 51.791c7.428 7.948 9.01 10.69 7.449 13.394-1.56 2.703-13.838-2.328-16.094 1.58-2.256 3.908-.907 3.258-2.437 5.908l19.73 11.39s-5.605-8.255-4.235-10.628c2.515-4.356 8.77-1.256 10.365-4.019 2.414-4.181-5.103-9.639-14.778-17.625z\"/></svg>"
},
"$:/core/images/new-journal-button": {
"title": "$:/core/images/new-journal-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-new-journal-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M102.545 112.818v11.818c0 1.306 1.086 2.364 2.425 2.364h6.06c1.34 0 2.425-1.058 2.425-2.364v-11.818h12.12c1.34 0 2.425-1.058 2.425-2.363v-5.91c0-1.305-1.085-2.363-2.424-2.363h-12.121V90.364c0-1.306-1.086-2.364-2.425-2.364h-6.06c-1.34 0-2.425 1.058-2.425 2.364v11.818h-12.12c-1.34 0-2.425 1.058-2.425 2.363v5.91c0 1.305 1.085 2.363 2.424 2.363h12.121zM60.016 4.965c-4.781-2.76-10.897-1.118-13.656 3.66L5.553 79.305A9.993 9.993 0 009.21 92.963l51.04 29.468c4.78 2.76 10.897 1.118 13.655-3.66l40.808-70.681a9.993 9.993 0 00-3.658-13.656L60.016 4.965zm-3.567 27.963a6 6 0 106-10.393 6 6 0 00-6 10.393zm31.697 17.928a6 6 0 106-10.392 6 6 0 00-6 10.392z\"/><text class=\"tc-fill-background\" font-family=\"Helvetica\" font-size=\"47.172\" font-weight=\"bold\" transform=\"rotate(30 25.742 95.82)\"><tspan x=\"42\" y=\"77.485\" text-anchor=\"middle\"><<now \"DD\">></tspan></text></g></svg>"
},
"$:/core/images/opacity": {
"title": "$:/core/images/opacity",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-opacity tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M102.362 65a51.595 51.595 0 01-1.942 6H82.584a35.867 35.867 0 002.997-6h16.78zm.472-2c.423-1.961.734-3.963.929-6H87.656a35.78 35.78 0 01-1.368 6h16.546zm-3.249 10a51.847 51.847 0 01-3.135 6H75.812a36.205 36.205 0 005.432-6h18.341zm-4.416 8c-1.424 2.116-3 4.12-4.71 6H60.46a35.843 35.843 0 0012.874-6h21.834zm-7.513-34h16.107C101.247 20.627 79.033 0 52 0 23.281 0 0 23.281 0 52c0 25.228 17.965 46.26 41.8 51h20.4a51.66 51.66 0 0015.875-6H39v-2h42.25a52.257 52.257 0 007.288-6H39v-2h4.539C27.739 83.194 16 68.968 16 52c0-19.882 16.118-36 36-36 18.186 0 33.222 13.484 35.656 31zm.22 2h16.039a52.823 52.823 0 010 6H87.877a36.483 36.483 0 000-6z\"/><path d=\"M76 128c28.719 0 52-23.281 52-52s-23.281-52-52-52-52 23.281-52 52 23.281 52 52 52zm0-16c19.882 0 36-16.118 36-36S95.882 40 76 40 40 56.118 40 76s16.118 36 36 36z\"/><path d=\"M37 58h53v4H37v-4zm3-8h53v4H40v-4zm0-8h53v4H40v-4zm-8 24h53v4H32v-4zm-2 8h53v4H30v-4zm-3 8h53v4H27v-4z\"/></g></svg>"
},
"$:/core/images/open-window": {
"title": "$:/core/images/open-window",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-open-window tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M16 112h88.994c3.87 0 7.006 3.59 7.006 8 0 4.418-3.142 8-7.006 8H7.006C3.136 128 0 124.41 0 120a9.321 9.321 0 010-.01V24.01C0 19.586 3.59 16 8 16c4.418 0 8 3.584 8 8.01V112z\"/><path d=\"M96 43.196V56a8 8 0 1016 0V24c0-4.41-3.585-8-8.007-8H72.007C67.588 16 64 19.582 64 24c0 4.41 3.585 8 8.007 8H84.57l-36.3 36.299a8 8 0 00-.001 11.316c3.117 3.117 8.19 3.123 11.316-.003L96 43.196zM32 7.999C32 3.581 35.588 0 40 0h80c4.419 0 8 3.588 8 8v80c0 4.419-3.588 8-8 8H40c-4.419 0-8-3.588-8-8V8z\"/></g></svg>"
},
"$:/core/images/options-button": {
"title": "$:/core/images/options-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-options-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M110.488 76a47.712 47.712 0 01-5.134 12.384l6.724 6.724c3.123 3.123 3.132 8.192.011 11.313l-5.668 5.668c-3.12 3.12-8.186 3.117-11.313-.01l-6.724-6.725c-3.82 2.258-7.98 4-12.384 5.134v9.505c0 4.417-3.578 8.007-7.992 8.007h-8.016C55.58 128 52 124.415 52 119.993v-9.505a47.712 47.712 0 01-12.384-5.134l-6.724 6.725c-3.123 3.122-8.192 3.131-11.313.01l-5.668-5.668c-3.12-3.12-3.116-8.186.01-11.313l6.725-6.724c-2.257-3.82-4-7.98-5.134-12.384H8.007C3.591 76 0 72.422 0 68.01v-8.017C0 55.58 3.585 52 8.007 52h9.505a47.712 47.712 0 015.134-12.383l-6.724-6.725c-3.123-3.122-3.132-8.191-.011-11.312l5.668-5.669c3.12-3.12 8.186-3.116 11.313.01l6.724 6.725c3.82-2.257 7.98-4 12.384-5.134V8.007C52 3.591 55.578 0 59.992 0h8.016C72.42 0 76 3.585 76 8.007v9.505a47.712 47.712 0 0112.384 5.134l6.724-6.724c3.123-3.123 8.192-3.132 11.313-.01l5.668 5.668c3.12 3.12 3.116 8.186-.01 11.312l-6.725 6.725c2.257 3.82 4 7.979 5.134 12.383h9.505c4.416 0 8.007 3.578 8.007 7.992v8.017c0 4.411-3.585 7.991-8.007 7.991h-9.505zM64 96c17.673 0 32-14.327 32-32 0-17.673-14.327-32-32-32-17.673 0-32 14.327-32 32 0 17.673 14.327 32 32 32z\"/></svg>"
},
"$:/core/images/paint": {
"title": "$:/core/images/paint",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-paint tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M83.527 76.19C90.43 69.287 91.892 59 87.91 50.665l37.903-37.902c2.919-2.92 2.913-7.659 0-10.572a7.474 7.474 0 00-10.572 0L77.338 40.093c-8.335-3.982-18.622-2.521-25.526 4.383l31.715 31.715zm-2.643 2.644L49.169 47.119S8.506 81.243 0 80.282c0 0 3.782 5.592 6.827 8.039 14.024-5.69 37.326-24.6 37.326-24.6l.661.66S19.45 90.222 9.18 92.047c1.222 1.44 4.354 4.053 6.247 5.776 5.417-1.488 34.733-28.57 34.733-28.57l.661.66-32.407 31.022 5.285 5.286L56.106 75.2l.662.66s-27.864 30.536-28.684 32.432c0 0 6.032 6.853 7.569 7.824.702-2.836 27.884-33.485 27.884-33.485l.661.66s-20.597 23.755-24.964 36.732c3.21 3.549 7.5 5.137 10.926 6.298-2.19-11.817 30.724-47.487 30.724-47.487z\"/></svg>"
},
"$:/core/images/palette": {
"title": "$:/core/images/palette",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-palette tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M80.247 39.182a93.52 93.52 0 00-16.228-1.4C28.662 37.781 0 57.131 0 81.002c0 9.642 4.676 18.546 12.58 25.735C23.504 91.19 26.34 72.395 36.89 63.562c15.183-12.713 26.538-7.828 26.538-7.828l16.82-16.552zm26.535 9.655c13.049 7.913 21.257 19.392 21.257 32.166 0 9.35.519 17.411-11.874 25.08-10.797 6.681-3.824-6.536-11.844-10.898s-19.946 1.308-18.213 7.906c3.2 12.181 19.422 11.455 6.314 16.658-13.107 5.202-18.202 4.476-28.403 4.476-7.821 0-15.315-.947-22.243-2.68 9.844-4.197 27.88-12.539 33.354-19.456C82.788 92.409 87.37 80 83.324 72.484c-.194-.359 11.215-11.668 23.458-23.647zM1.134 123.867l-.66.002c33.479-14.94 22.161-64.226 58.818-64.226.317 1.418.644 2.944 1.062 4.494-25.907-4.166-23.567 48.031-59.22 59.73zm.713-.007c38.872-.506 78.152-22.347 78.152-44.813-9.27 0-14.073-3.48-16.816-7.942-16.597-7.003-30.365 45.715-61.336 52.755zm65.351-64.008c-4.45 4.115 4.886 16.433 11.318 11.318l45.27-45.27c11.317-11.318 0-22.635-11.318-11.318-11.317 11.318-33.518 34.405-45.27 45.27z\"/></svg>"
},
"$:/core/images/permalink-button": {
"title": "$:/core/images/permalink-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-permalink-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M80.483 48l-7.387 32h-25.58l7.388-32h25.58zm3.694-16l5.624-24.358c.993-4.303 5.29-6.996 9.596-6.002 4.296.992 6.988 5.293 5.994 9.602L100.598 32h3.403c4.41 0 7.999 3.582 7.999 8 0 4.41-3.581 8-8 8h-7.096l-7.387 32H104c4.41 0 7.999 3.582 7.999 8 0 4.41-3.581 8-8 8H85.824l-5.624 24.358c-.993 4.303-5.29 6.996-9.596 6.002-4.296-.992-6.988-5.293-5.994-9.602L69.402 96h-25.58L38.2 120.358c-.993 4.303-5.29 6.996-9.596 6.002-4.296-.992-6.988-5.293-5.994-9.602L27.402 96h-3.403C19.59 96 16 92.418 16 88c0-4.41 3.581-8 8-8h7.096l7.387-32H24C19.59 48 16 44.418 16 40c0-4.41 3.581-8 8-8h18.177l5.624-24.358c.993-4.303 5.29-6.996 9.596-6.002 4.296.992 6.988 5.293 5.994 9.602L58.598 32h25.58z\"/></svg>"
},
"$:/core/images/permaview-button": {
"title": "$:/core/images/permaview-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-permaview-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M81.483 48l-1.846 8h-5.58l1.847-8h5.58zm3.694-16l5.624-24.358c.993-4.303 5.29-6.996 9.596-6.002 4.296.992 6.988 5.293 5.994 9.602L101.598 32h2.403c4.41 0 7.999 3.582 7.999 8 0 4.41-3.581 8-8 8h-6.096l-1.847 8h7.944c4.41 0 7.999 3.582 7.999 8 0 4.41-3.581 8-8 8H92.364l-1.846 8H104c4.41 0 7.999 3.582 7.999 8 0 4.41-3.581 8-8 8H86.824l-5.624 24.358c-.993 4.303-5.29 6.996-9.596 6.002-4.296-.992-6.988-5.293-5.994-9.602L70.402 96h-5.58L59.2 120.358c-.993 4.303-5.29 6.996-9.596 6.002-4.296-.992-6.988-5.293-5.994-9.602L48.402 96h-5.58L37.2 120.358c-.993 4.303-5.29 6.996-9.596 6.002-4.296-.992-6.988-5.293-5.994-9.602L26.402 96h-2.403C19.59 96 16 92.418 16 88c0-4.41 3.581-8 8-8h6.096l1.847-8h-7.944C19.59 72 16 68.418 16 64c0-4.41 3.581-8 8-8h11.637l1.846-8H24C19.59 48 16 44.418 16 40c0-4.41 3.581-8 8-8h17.177l5.624-24.358c.993-4.303 5.29-6.996 9.596-6.002 4.296.992 6.988 5.293 5.994 9.602L57.598 32h5.58L68.8 7.642c.993-4.303 5.29-6.996 9.596-6.002 4.296.992 6.988 5.293 5.994 9.602L79.598 32h5.58zM53.904 48l-1.847 8h5.58l1.846-8h-5.579zm22.039 24l-1.847 8h-5.58l1.847-8h5.58zm-27.58 0l-1.846 8h5.579l1.847-8h-5.58z\"/></svg>"
},
"$:/core/images/picture": {
"title": "$:/core/images/picture",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-picture tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M112 68.233v-48.23A4.001 4.001 0 00107.997 16H20.003A4.001 4.001 0 0016 20.003v38.31l9.241-14.593c2.8-4.422 9.023-5.008 12.6-1.186l18.247 20.613 13.687-6.407a8 8 0 018.903 1.492 264.97 264.97 0 002.92 2.739 249.44 249.44 0 006.798 6.066 166.5 166.5 0 002.106 1.778c2.108 1.747 3.967 3.188 5.482 4.237.748.518 1.383.92 2.044 1.33.444.117 1.046.144 1.809.05 1.873-.233 4.238-1.144 6.723-2.547a36.016 36.016 0 003.205-2.044c.558-.4.93-.686 1.07-.802.376-.31.765-.577 1.165-.806zM0 8.007A8.01 8.01 0 018.007 0h111.986A8.01 8.01 0 01128 8.007v111.986a8.01 8.01 0 01-8.007 8.007H8.007A8.01 8.01 0 010 119.993V8.007zM95 42a8 8 0 100-16 8 8 0 000 16zM32 76c15.859 4.83 20.035 7.244 20.035 12S32 95.471 32 102.347c0 6.876 1.285 4.99 1.285 9.653H68s-13.685-6.625-13.685-10.8c0-7.665 10.615-8.34 10.615-13.2 0-7.357-14.078-8.833-32.93-12z\"/></svg>"
},
"$:/core/images/plugin-generic-language": {
"title": "$:/core/images/plugin-generic-language",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M61.207 68.137c-4.324 2.795-6.999 6.656-6.999 10.921 0 7.906 9.19 14.424 21.042 15.336 2.162 3.902 8.598 6.785 16.318 7.01-5.126-1.125-9.117-3.742-10.62-7.01C92.805 93.487 102 86.967 102 79.059c0-8.53-10.699-15.445-23.896-15.445-6.599 0-12.572 1.729-16.897 4.524zm12.794-14.158c-4.324 2.795-10.298 4.524-16.897 4.524-2.619 0-5.14-.272-7.497-.775-3.312 2.25-8.383 3.69-14.067 3.69l-.255-.002c4.119-.892 7.511-2.747 9.478-5.13-6.925-2.704-11.555-7.617-11.555-13.228 0-8.53 10.699-15.445 23.896-15.445C70.301 27.613 81 34.528 81 43.058c0 4.265-2.675 8.126-6.999 10.921zM64 0l54.56 32v64L64 128 9.44 96V32L64 0z\"/></svg>"
},
"$:/core/images/plugin-generic-plugin": {
"title": "$:/core/images/plugin-generic-plugin",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M40.397 76.446V95.34h14.12l-.001-.005a6.912 6.912 0 005.364-11.593l.046-.023a6.912 6.912 0 119.979.526l.086.055a6.914 6.914 0 004.408 10.948l-.023.092h21.32V75.568l-.15.038a6.912 6.912 0 00-11.593-5.364l-.022-.046a6.912 6.912 0 11.526-9.979l.055-.086a6.914 6.914 0 0010.948-4.408c.079.018.158.038.236.059v-15.74h-21.32l.023-.094a6.914 6.914 0 01-4.408-10.947 10.23 10.23 0 00-.086-.055 6.912 6.912 0 10-9.979-.526l-.046.023a6.912 6.912 0 01-5.364 11.593l.001.005h-14.12v12.847A6.912 6.912 0 0129.5 59.843l-.054.086a6.912 6.912 0 10-.526 9.979l.023.046a6.912 6.912 0 0111.455 6.492zM64 0l54.56 32v64L64 128 9.44 96V32L64 0z\"/></svg>"
},
"$:/core/images/plugin-generic-theme": {
"title": "$:/core/images/plugin-generic-theme",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M29.408 91.472L51.469 69.41l-.004-.005a2.22 2.22 0 01.004-3.146c.87-.87 2.281-.872 3.147-.005l9.465 9.464a2.22 2.22 0 01-.005 3.147c-.87.87-2.28.871-3.147.005l-.005-.005-22.061 22.062a6.686 6.686 0 11-9.455-9.455zM60.802 66.38c-2.436-2.704-4.465-5.091-5.817-6.869-6.855-9.014-10.313-4.268-14.226 0-3.913 4.268 1.03 7.726-2.683 10.741-3.713 3.015-3.484 4.06-9.752-1.455-6.267-5.516-6.7-7.034-3.823-10.181 2.877-3.147 5.281 1.808 11.159-3.785 5.877-5.593.94-10.55.94-10.55s12.237-25.014 28.588-23.167c16.351 1.848-6.186-2.392-11.792 17.226-2.4 8.4.447 6.42 4.998 9.968 1.394 1.086 6.03 4.401 11.794 8.685l20.677-20.676 1.615-4.766 7.84-4.689 3.151 3.152-4.688 7.84-4.766 1.615-20.224 20.223c12.663 9.547 28.312 22.146 28.312 26.709 0 7.217-3.071 11.526-9.535 9.164-4.693-1.715-18.768-15.192-28.753-25.897l-2.893 2.893-3.151-3.152 3.029-3.029zM63.953 0l54.56 32v64l-54.56 32-54.56-32V32l54.56-32z\"/></svg>"
},
"$:/core/images/preview-closed": {
"title": "$:/core/images/preview-closed",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-preview-closed tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M.088 64a7.144 7.144 0 001.378 5.458C16.246 88.818 39.17 100.414 64 100.414c24.83 0 47.753-11.596 62.534-30.956A7.144 7.144 0 00127.912 64C110.582 78.416 88.304 87.086 64 87.086 39.696 87.086 17.418 78.416.088 64z\"/><rect width=\"4\" height=\"16\" x=\"62\" y=\"96\" rx=\"4\"/><rect width=\"4\" height=\"16\" x=\"78\" y=\"93\" rx=\"4\" transform=\"rotate(-5 80 101)\"/><rect width=\"4\" height=\"16\" x=\"46\" y=\"93\" rx=\"4\" transform=\"rotate(5 48 101)\"/><rect width=\"4\" height=\"16\" x=\"30\" y=\"88\" rx=\"4\" transform=\"rotate(10 32 96)\"/><rect width=\"4\" height=\"16\" x=\"94\" y=\"88\" rx=\"4\" transform=\"rotate(-10 96 96)\"/><rect width=\"4\" height=\"16\" x=\"110\" y=\"80\" rx=\"4\" transform=\"rotate(-20 112 88)\"/><rect width=\"4\" height=\"16\" x=\"14\" y=\"80\" rx=\"4\" transform=\"rotate(20 16 88)\"/></g></svg>"
},
"$:/core/images/preview-open": {
"title": "$:/core/images/preview-open",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-preview-open tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M64.11 99.588c-24.83 0-47.754-11.596-62.534-30.957a7.148 7.148 0 010-8.675C16.356 40.596 39.28 29 64.11 29c24.83 0 47.753 11.596 62.534 30.956a7.148 7.148 0 010 8.675c-14.78 19.36-37.703 30.957-62.534 30.957zm46.104-32.007c1.44-1.524 1.44-3.638 0-5.162C99.326 50.9 82.439 44 64.147 44S28.968 50.9 18.08 62.42c-1.44 1.523-1.44 3.637 0 5.16C28.968 79.1 45.855 86 64.147 86s35.179-6.9 46.067-18.42z\"/><path d=\"M63.5 88C76.479 88 87 77.479 87 64.5S76.479 41 63.5 41 40 51.521 40 64.5 50.521 88 63.5 88z\"/></g></svg>"
},
"$:/core/images/print-button": {
"title": "$:/core/images/print-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-print-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M112 71V30.5h-.032c-.035-2-.816-3.99-2.343-5.516L86.998 2.357A7.978 7.978 0 0081 .02V0H24a8 8 0 00-8 8v63h8V8h57v14.5c0 4.422 3.582 8 8 8h15V71h8z\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"36\" rx=\"4\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"52\" rx=\"4\"/><rect width=\"40\" height=\"8\" x=\"32\" y=\"20\" rx=\"4\"/><path d=\"M0 80.005C0 71.165 7.156 64 16 64h96c8.836 0 16 7.155 16 16.005v31.99c0 8.84-7.156 16.005-16 16.005H16c-8.836 0-16-7.155-16-16.005v-31.99zM104 96a8 8 0 100-16 8 8 0 000 16z\"/></g></svg>"
},
"$:/core/images/quote": {
"title": "$:/core/images/quote",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-quote tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M51.219 117.713V62.199H27.427c0-8.891 1.683-16.401 5.047-22.53 3.365-6.127 9.613-10.754 18.745-13.878V2c-7.45.961-14.36 3.184-20.728 6.669-6.368 3.484-11.835 7.87-16.401 13.157C9.524 27.113 5.98 33.241 3.456 40.21.933 47.18-.21 54.63.03 62.56v55.153H51.22zm76.781 0V62.199h-23.791c0-8.891 1.682-16.401 5.046-22.53 3.365-6.127 9.613-10.754 18.745-13.878V2c-7.45.961-14.359 3.184-20.727 6.669-6.369 3.484-11.836 7.87-16.402 13.157-4.566 5.287-8.11 11.415-10.634 18.384-2.523 6.97-3.665 14.42-3.424 22.35v55.153H128z\"/></svg>"
},
"$:/core/images/refresh-button": {
"title": "$:/core/images/refresh-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-refresh-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M106.369 39.433c10.16 20.879 6.57 46.764-10.771 64.106-21.87 21.87-57.327 21.87-79.196 0-21.87-21.87-21.87-57.326 0-79.196a8 8 0 1111.314 11.314c-15.621 15.62-15.621 40.947 0 56.568 15.62 15.621 40.947 15.621 56.568 0C97.72 78.79 99.6 58.175 89.924 42.73l-6.44 12.264a8 8 0 11-14.166-7.437L84.435 18.76a8 8 0 0110.838-3.345l28.873 15.345a8 8 0 11-7.51 14.129l-10.267-5.457zm-8.222-12.368c-.167-.19-.336-.38-.506-.57l.96-.296-.454.866z\"/></svg>"
},
"$:/core/images/right-arrow": {
"title": "$:/core/images/right-arrow",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-right-arrow tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M99.069 64.173c0 2.027-.77 4.054-2.316 5.6l-55.98 55.98a7.92 7.92 0 01-11.196 0c-3.085-3.086-3.092-8.105 0-11.196l50.382-50.382-50.382-50.382a7.92 7.92 0 010-11.195c3.086-3.085 8.104-3.092 11.196 0l55.98 55.98a7.892 7.892 0 012.316 5.595z\"/></svg>"
},
"$:/core/images/rotate-left": {
"title": "$:/core/images/rotate-left",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-rotate-left tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"32\" height=\"80\" rx=\"8\"/><rect width=\"80\" height=\"32\" x=\"48\" y=\"96\" rx=\"8\"/><path d=\"M61.32 36.65c19.743 2.45 35.023 19.287 35.023 39.693a4 4 0 01-8 0c0-15.663-11.254-28.698-26.117-31.46l3.916 3.916a4 4 0 11-5.657 5.657L49.172 43.142a4 4 0 010-5.657l11.313-11.313a4 4 0 115.657 5.656l-4.821 4.822z\"/></g></svg>"
},
"$:/core/images/save-button": {
"title": "$:/core/images/save-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-save-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M120.783 34.33c4.641 8.862 7.266 18.948 7.266 29.646 0 35.347-28.653 64-64 64-35.346 0-64-28.653-64-64 0-35.346 28.654-64 64-64 18.808 0 35.72 8.113 47.43 21.03l2.68-2.68c3.13-3.13 8.197-3.132 11.321-.008 3.118 3.118 3.121 8.193-.007 11.32l-4.69 4.691zm-12.058 12.058a47.876 47.876 0 013.324 17.588c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48c14.39 0 27.3 6.332 36.098 16.362L58.941 73.544 41.976 56.578c-3.127-3.127-8.201-3.123-11.32-.005-3.123 3.124-3.119 8.194.006 11.319l22.617 22.617a7.992 7.992 0 005.659 2.347c2.05 0 4.101-.783 5.667-2.349l44.12-44.12z\"/></svg>"
},
"$:/core/images/size": {
"title": "$:/core/images/size",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-size tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M92.343 26l-9.171 9.172a4 4 0 105.656 5.656l16-16a4 4 0 000-5.656l-16-16a4 4 0 10-5.656 5.656L92.343 18H22a4 4 0 00-4 4v70.343l-9.172-9.171a4 4 0 10-5.656 5.656l16 16a4 4 0 005.656 0l16-16a4 4 0 10-5.656-5.656L26 92.343V22l-4 4h70.343zM112 52v64l4-4H52a4 4 0 100 8h64a4 4 0 004-4V52a4 4 0 10-8 0z\"/></svg>"
},
"$:/core/images/spiral": {
"title": "$:/core/images/spiral",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-spiral tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M64.534 68.348c3.39 0 6.097-2.62 6.476-5.968l-4.755-.538 4.75.583c.377-3.07-1.194-6.054-3.89-7.78-2.757-1.773-6.34-2.01-9.566-.7-3.46 1.403-6.14 4.392-7.35 8.148l-.01.026c-1.3 4.08-.72 8.64 1.58 12.52 2.5 4.2 6.77 7.2 11.76 8.27 5.37 1.15 11.11-.05 15.83-3.31 5.04-3.51 8.46-9.02 9.45-15.3 1.05-6.7-.72-13.63-4.92-19.19l.02.02c-4.42-5.93-11.2-9.82-18.78-10.78-7.96-1.01-16.13 1.31-22.59 6.43-6.81 5.39-11.18 13.41-12.11 22.26-.98 9.27 1.87 18.65 7.93 26.02 6.32 7.69 15.6 12.56 25.74 13.48 10.54.96 21.15-2.42 29.45-9.4l.01-.01c8.58-7.25 13.94-17.78 14.86-29.21.94-11.84-2.96-23.69-10.86-32.9-8.19-9.5-19.95-15.36-32.69-16.27-13.16-.94-26.24 3.49-36.34 12.34l.01-.01c-10.41 9.08-16.78 22.1-17.68 36.15-.93 14.44 4.03 28.77 13.79 39.78 10.03 11.32 24.28 18.2 39.6 19.09 15.73.92 31.31-4.56 43.24-15.234 12.23-10.954 19.61-26.44 20.5-43.074a4.785 4.785 0 00-4.52-5.03 4.778 4.778 0 00-5.03 4.52c-.75 14.1-7 27.2-17.33 36.45-10.03 8.98-23.11 13.58-36.3 12.81-12.79-.75-24.67-6.48-33-15.89-8.07-9.11-12.17-20.94-11.41-32.827.74-11.52 5.942-22.15 14.43-29.54l.01-.01c8.18-7.17 18.74-10.75 29.35-9.998 10.21.726 19.6 5.41 26.11 12.96 6.24 7.273 9.32 16.61 8.573 25.894-.718 8.9-4.88 17.064-11.504 22.66l.01-.007c-6.36 5.342-14.44 7.92-22.425 7.19-7.604-.68-14.52-4.314-19.21-10.027-4.44-5.4-6.517-12.23-5.806-18.94.67-6.3 3.76-11.977 8.54-15.766 4.46-3.54 10.05-5.128 15.44-4.44 5.03.63 9.46 3.18 12.32 7.01l.02.024c2.65 3.5 3.75 7.814 3.1 11.92-.59 3.71-2.58 6.925-5.45 8.924-2.56 1.767-5.61 2.403-8.38 1.81-2.42-.516-4.42-1.92-5.53-3.79-.93-1.56-1.15-3.3-.69-4.75l-4.56-1.446L59.325 65c.36-1.12 1.068-1.905 1.84-2.22.25-.103.48-.14.668-.13.06.006.11.015.14.025.01 0 .01 0-.01-.01a1.047 1.047 0 01-.264-.332c-.15-.29-.23-.678-.18-1.11l-.005.04c.15-1.332 1.38-2.523 3.035-2.523-2.65 0-4.79 2.144-4.79 4.787s2.14 4.785 4.78 4.785z\"/></svg>"
},
"$:/core/images/stamp": {
"title": "$:/core/images/stamp",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-stamp tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M49.733 64H16.01C11.584 64 8 67.583 8 72.003V97h112V72.003A8 8 0 00111.99 64H78.267A22.813 22.813 0 0175.5 53.077c0-6.475 2.687-12.324 7.009-16.497A22.818 22.818 0 0087 22.952C87 10.276 76.703 0 64 0S41 10.276 41 22.952c0 5.103 1.669 9.817 4.491 13.628 4.322 4.173 7.009 10.022 7.009 16.497 0 3.954-1.002 7.675-2.767 10.923zM8 104h112v8H8v-8z\"/></svg>"
},
"$:/core/images/star-filled": {
"title": "$:/core/images/star-filled",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-star-filled tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M61.836 96.823l37.327 27.287c2.72 1.99 6.379-.69 5.343-3.912L90.29 75.988l-1.26 3.91 37.285-27.345c2.718-1.993 1.32-6.327-2.041-6.33l-46.113-.036 3.3 2.416L67.176 4.416c-1.04-3.221-5.563-3.221-6.604 0L46.29 48.603l3.3-2.416-46.113.036c-3.362.003-4.759 4.337-2.04 6.33L38.72 79.898l-1.26-3.91-14.216 44.21c-1.036 3.223 2.622 5.901 5.343 3.912l37.326-27.287h-4.078z\"/></svg>"
},
"$:/core/images/storyview-classic": {
"title": "$:/core/images/storyview-classic",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-storyview-classic tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M8.007 0A8.01 8.01 0 000 8.007v111.986A8.01 8.01 0 008.007 128h111.986a8.01 8.01 0 008.007-8.007V8.007A8.01 8.01 0 00119.993 0H8.007zm15.992 16C19.581 16 16 19.578 16 23.992v16.016C16 44.422 19.588 48 24 48h80c4.419 0 8-3.578 8-7.992V23.992c0-4.414-3.588-7.992-8-7.992H24zm0 48C19.581 64 16 67.59 16 72c0 4.418 3.588 8 8 8h80c4.419 0 8-3.59 8-8 0-4.418-3.588-8-8-8H24zm0 32C19.581 96 16 99.59 16 104c0 4.418 3.588 8 8 8h80c4.419 0 8-3.59 8-8 0-4.418-3.588-8-8-8H24z\"/></svg>"
},
"$:/core/images/storyview-pop": {
"title": "$:/core/images/storyview-pop",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-storyview-pop tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M8.007 0A8.01 8.01 0 000 8.007v111.986A8.01 8.01 0 008.007 128h111.986a8.01 8.01 0 008.007-8.007V8.007A8.01 8.01 0 00119.993 0H8.007zm15.992 16C19.581 16 16 19.578 16 23.992v16.016C16 44.422 19.588 48 24 48h80c4.419 0 8-3.578 8-7.992V23.992c0-4.414-3.588-7.992-8-7.992H24zm-7.99 40C11.587 56 8 59.578 8 63.992v16.016C8 84.422 11.584 88 16.01 88h95.98c4.424 0 8.01-3.578 8.01-7.992V63.992c0-4.414-3.584-7.992-8.01-7.992H16.01zM24 96C19.581 96 16 99.59 16 104c0 4.418 3.588 8 8 8h80c4.419 0 8-3.59 8-8 0-4.418-3.588-8-8-8H24zm0-32C19.581 64 16 67.59 16 72c0 4.418 3.588 8 8 8h80c4.419 0 8-3.59 8-8 0-4.418-3.588-8-8-8H24z\"/></svg>"
},
"$:/core/images/storyview-zoomin": {
"title": "$:/core/images/storyview-zoomin",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-storyview-zoomin tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M8.007 0A8.01 8.01 0 000 8.007v111.986A8.01 8.01 0 008.007 128h111.986a8.01 8.01 0 008.007-8.007V8.007A8.01 8.01 0 00119.993 0H8.007zm15.992 16A8 8 0 0016 24.009V71.99C16 76.414 19.588 80 24 80h80a8 8 0 008-8.009V24.01c0-4.423-3.588-8.009-8-8.009H24z\"/></svg>"
},
"$:/core/images/strikethrough": {
"title": "$:/core/images/strikethrough",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-strikethrough tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M92.794 38.726h15.422c-.229-6.74-1.514-12.538-3.856-17.393-2.342-4.855-5.54-8.881-9.596-12.08-4.055-3.199-8.767-5.54-14.136-7.025C75.258.743 69.433 0 63.15 0a62.76 62.76 0 00-16.364 2.142C41.474 3.57 36.733 5.74 32.564 8.653c-4.17 2.913-7.511 6.626-10.025 11.138-2.513 4.512-3.77 9.853-3.77 16.022 0 5.597 1.115 10.252 3.342 13.965 2.228 3.712 5.198 6.74 8.91 9.081 3.713 2.342 7.911 4.227 12.595 5.655a194.641 194.641 0 0014.308 3.77c4.855 1.085 9.624 2.142 14.308 3.17 4.683 1.028 8.881 2.37 12.594 4.027 3.713 1.656 6.683 3.798 8.91 6.425 2.228 2.628 3.342 6.055 3.342 10.281 0 4.456-.914 8.111-2.742 10.967a19.953 19.953 0 01-7.197 6.768c-2.97 1.657-6.311 2.828-10.024 3.513a60.771 60.771 0 01-11.052 1.028c-4.57 0-9.025-.571-13.366-1.713-4.34-1.143-8.139-2.913-11.394-5.312-3.256-2.4-5.884-5.455-7.883-9.168-1.999-3.712-2.998-8.139-2.998-13.28H15c0 7.426 1.342 13.852 4.027 19.278 2.684 5.426 6.34 9.881 10.966 13.365 4.627 3.484 9.996 6.083 16.107 7.797 6.112 1.713 12.595 2.57 19.449 2.57 5.597 0 11.223-.657 16.878-1.97 5.655-1.314 10.767-3.428 15.336-6.34 4.57-2.914 8.31-6.683 11.224-11.31 2.913-4.626 4.37-10.195 4.37-16.707 0-6.054-1.115-11.08-3.342-15.079-2.228-3.998-5.198-7.31-8.91-9.938-3.713-2.627-7.911-4.712-12.595-6.254a170.83 170.83 0 00-14.308-4.027 549.669 549.669 0 00-14.308-3.17c-4.683-.971-8.881-2.2-12.594-3.684-3.713-1.485-6.683-3.399-8.91-5.74-2.228-2.342-3.342-5.398-3.342-9.168 0-3.998.771-7.34 2.313-10.024 1.543-2.685 3.599-4.826 6.17-6.426 2.57-1.599 5.51-2.741 8.824-3.427a49.767 49.767 0 0110.11-1.028c8.453 0 15.393 1.97 20.819 5.912 5.426 3.94 8.596 10.31 9.51 19.106z\"/><path d=\"M5 54h118v16H5z\"/></g></svg>"
},
"$:/core/images/subscript": {
"title": "$:/core/images/subscript",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-subscript tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M2.272 16h19.91l21.649 33.675L66.414 16h18.708L53.585 61.969l33.809 49.443H67.082L43.296 74.93l-24.187 36.48H0L33.808 61.97 2.272 16zM127.91 128.412H85.328c.059-5.168 1.306-9.681 3.741-13.542 2.435-3.86 5.761-7.216 9.978-10.066a112.388 112.388 0 016.325-4.321 50.09 50.09 0 006.058-4.499c1.841-1.603 3.356-3.34 4.543-5.211 1.188-1.871 1.812-4.024 1.871-6.46 0-1.128-.133-2.33-.4-3.607a9.545 9.545 0 00-1.56-3.564c-.772-1.098-1.84-2.019-3.207-2.761-1.366-.743-3.148-1.114-5.345-1.114-2.02 0-3.697.4-5.033 1.203-1.337.801-2.406 1.9-3.208 3.296-.801 1.396-1.395 3.044-1.781 4.944-.386 1.9-.609 3.95-.668 6.147H86.486c0-3.445.46-6.637 1.38-9.577.921-2.94 2.302-5.478 4.143-7.617 1.841-2.138 4.083-3.815 6.726-5.033 2.643-1.217 5.716-1.826 9.22-1.826 3.802 0 6.979.623 9.533 1.87 2.554 1.248 4.617 2.822 6.191 4.722 1.574 1.9 2.688 3.965 3.341 6.192.653 2.227.98 4.35.98 6.37 0 2.494-.386 4.75-1.158 6.77a21.803 21.803 0 01-3.118 5.568 31.516 31.516 0 01-4.454 4.677 66.788 66.788 0 01-5.167 4.009 139.198 139.198 0 01-5.346 3.563 79.237 79.237 0 00-4.944 3.386c-1.514 1.128-2.836 2.3-3.964 3.518-1.129 1.218-1.9 2.51-2.317 3.876h30.379v9.087z\"/></svg>"
},
"$:/core/images/superscript": {
"title": "$:/core/images/superscript",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-superscript tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M2.272 16h19.91l21.649 33.675L66.414 16h18.708L53.585 61.969l33.809 49.443H67.082L43.296 74.93l-24.187 36.48H0L33.808 61.97 2.272 16zM127.91 63.412H85.328c.059-5.168 1.306-9.681 3.741-13.542 2.435-3.86 5.761-7.216 9.978-10.066a112.388 112.388 0 016.325-4.321 50.09 50.09 0 006.058-4.499c1.841-1.603 3.356-3.34 4.543-5.211 1.188-1.871 1.812-4.024 1.871-6.46 0-1.128-.133-2.33-.4-3.607a9.545 9.545 0 00-1.56-3.564c-.772-1.098-1.84-2.019-3.207-2.761-1.366-.743-3.148-1.114-5.345-1.114-2.02 0-3.697.4-5.033 1.203-1.337.801-2.406 1.9-3.208 3.296-.801 1.396-1.395 3.044-1.781 4.944-.386 1.9-.609 3.95-.668 6.147H86.486c0-3.445.46-6.637 1.38-9.577.921-2.94 2.302-5.478 4.143-7.617 1.841-2.138 4.083-3.815 6.726-5.033 2.643-1.217 5.716-1.826 9.22-1.826 3.802 0 6.979.623 9.533 1.87 2.554 1.248 4.617 2.822 6.191 4.722 1.574 1.9 2.688 3.965 3.341 6.192.653 2.227.98 4.35.98 6.37 0 2.494-.386 4.75-1.158 6.77a21.803 21.803 0 01-3.118 5.568 31.516 31.516 0 01-4.454 4.677 66.788 66.788 0 01-5.167 4.009 139.198 139.198 0 01-5.346 3.563 79.237 79.237 0 00-4.944 3.386c-1.514 1.128-2.836 2.3-3.964 3.518-1.129 1.218-1.9 2.51-2.317 3.876h30.379v9.087z\"/></svg>"
},
"$:/core/images/tag-button": {
"title": "$:/core/images/tag-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-tag-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M18.164 47.66l.004 4.105c.003 3.823 2.19 9.097 4.885 11.792l61.85 61.85c2.697 2.697 7.068 2.69 9.769-.01L125.767 94.3a6.903 6.903 0 00.01-9.77L63.928 22.683c-2.697-2.697-7.976-4.88-11.796-4.881l-27.076-.007a6.902 6.902 0 00-6.91 6.91l.008 9.96.287.033c3.73.411 8.489-.044 13.365-1.153a9.702 9.702 0 0111.14-3.662l.291-.13.128.285a9.7 9.7 0 013.3 2.17c3.796 3.796 3.801 9.945.012 13.734-3.618 3.618-9.386 3.777-13.204.482-5.365 1.122-10.674 1.596-15.309 1.237z\"/><path d=\"M47.633 39.532l.023.051c-9.689 4.356-21.584 6.799-30.396 5.828C5.273 44.089-1.028 36.43 2.443 24.078 5.562 12.976 14.3 4.361 24.047 1.548c10.68-3.083 19.749 1.968 19.749 13.225h-8.623c0-4.859-3.078-6.573-8.735-4.94-6.91 1.995-13.392 8.383-15.694 16.577-1.915 6.818.417 9.653 7.46 10.43 7.126.785 17.531-1.352 25.917-5.121l.027.06.036-.017c1.76-.758 6.266 6.549 3.524 7.74a2.8 2.8 0 01-.075.03z\"/></g></svg>"
},
"$:/core/images/theme-button": {
"title": "$:/core/images/theme-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-theme-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M55.854 66.945a122.626 122.626 0 01-3.9-4.819c-11.064-14.548-16.645-6.888-22.96 0-6.315 6.888 1.664 12.47-4.33 17.335-5.993 4.866-5.623 6.552-15.737-2.35-10.115-8.9-10.815-11.351-6.172-16.43 4.644-5.08 8.524 2.918 18.01-6.108 9.485-9.026 1.517-17.026 1.517-17.026S42.03-2.824 68.42.157c26.39 2.982-9.984-3.86-19.031 27.801-3.874 13.556.72 10.362 8.066 16.087 1.707 1.33 6.428 4.732 12.671 9.318-6.129 5.879-11.157 10.669-14.273 13.582zm11.641 12.947c16.013 17.036 37.742 37.726 45.117 40.42 10.432 3.813 15.388-3.141 15.388-14.79 0-7.151-23.83-26.542-43.924-41.769-7.408 7.156-13.376 12.953-16.58 16.139z\"/><path d=\"M11.069 109.828L46.31 74.587a3.56 3.56 0 115.037-5.032l15.098 15.098a3.56 3.56 0 11-5.032 5.037l-35.24 35.241c-4.171 4.17-10.933 4.17-15.104 0-4.17-4.17-4.17-10.933 0-15.103zM124.344 6.622l5.034 5.034-7.49 12.524-7.613 2.58L61.413 79.62l-5.034-5.034 52.861-52.862 2.58-7.614 12.524-7.49z\"/></g></svg>"
},
"$:/core/images/timestamp-off": {
"title": "$:/core/images/timestamp-off",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-timestamp-off tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M58.25 11C26.08 11 0 37.082 0 69.25s26.08 58.25 58.25 58.25c32.175 0 58.25-26.082 58.25-58.25S90.425 11 58.25 11zm0 100.5C34.914 111.5 16 92.586 16 69.25 16 45.92 34.914 27 58.25 27s42.25 18.92 42.25 42.25c0 23.336-18.914 42.25-42.25 42.25zM49.704 10a5 5 0 010-10H66.69a5 5 0 015 5c.006 2.757-2.238 5-5 5H49.705z\"/><path d=\"M58.25 35.88c-18.777 0-33.998 15.224-33.998 33.998 0 18.773 15.22 34.002 33.998 34.002 18.784 0 34.002-15.23 34.002-34.002 0-18.774-15.218-33.998-34.002-33.998zm-3.03 50.123H44.196v-34H55.22v34zm16.976 0H61.17v-34h11.025v34z\"/></g></svg>"
},
"$:/core/images/timestamp-on": {
"title": "$:/core/images/timestamp-on",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-timestamp-on tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M58.25 11C26.08 11 0 37.082 0 69.25s26.08 58.25 58.25 58.25c32.175 0 58.25-26.082 58.25-58.25S90.425 11 58.25 11zm0 100.5C34.914 111.5 16 92.586 16 69.25 16 45.92 34.914 27 58.25 27s42.25 18.92 42.25 42.25c0 23.336-18.914 42.25-42.25 42.25zM49.704 10a5 5 0 010-10H66.69a5 5 0 015 5c.006 2.757-2.238 5-5 5H49.705z\"/><path d=\"M13.41 27.178a5.005 5.005 0 01-7.045-.613 5.008 5.008 0 01.616-7.047l9.95-8.348a5 5 0 016.429 7.661l-9.95 8.348zm89.573 0a5.005 5.005 0 007.045-.613 5.008 5.008 0 00-.616-7.047l-9.95-8.348a5 5 0 00-6.428 7.661l9.95 8.348zM65.097 71.072c0 3.826-3.09 6.928-6.897 6.928-3.804.006-6.9-3.102-6.903-6.928 0 0 4.76-39.072 6.903-39.072s6.897 39.072 6.897 39.072z\"/></g></svg>"
},
"$:/core/images/tip": {
"title": "$:/core/images/tip",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-tip tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M64 128.242c35.346 0 64-28.654 64-64 0-35.346-28.654-64-64-64-35.346 0-64 28.654-64 64 0 35.346 28.654 64 64 64zm11.936-36.789c-.624 4.129-5.73 7.349-11.936 7.349-6.206 0-11.312-3.22-11.936-7.349C54.33 94.05 58.824 95.82 64 95.82c5.175 0 9.67-1.769 11.936-4.366zm0 4.492c-.624 4.13-5.73 7.349-11.936 7.349-6.206 0-11.312-3.22-11.936-7.349 2.266 2.597 6.76 4.366 11.936 4.366 5.175 0 9.67-1.769 11.936-4.366zm0 4.456c-.624 4.129-5.73 7.349-11.936 7.349-6.206 0-11.312-3.22-11.936-7.349 2.266 2.597 6.76 4.366 11.936 4.366 5.175 0 9.67-1.769 11.936-4.366zm0 4.492c-.624 4.13-5.73 7.349-11.936 7.349-6.206 0-11.312-3.22-11.936-7.349 2.266 2.597 6.76 4.366 11.936 4.366 5.175 0 9.67-1.769 11.936-4.366zM64.3 24.242c11.618 0 23.699 7.82 23.699 24.2S75.92 71.754 75.92 83.576c0 5.873-5.868 9.26-11.92 9.26s-12.027-3.006-12.027-9.26C51.973 71.147 40 65.47 40 48.442s12.683-24.2 24.301-24.2z\"/></svg>"
},
"$:/core/images/transcludify": {
"title": "$:/core/images/transcludify",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-transcludify-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M0 59.482c.591 0 1.36-.089 2.306-.266a10.417 10.417 0 002.75-.932 6.762 6.762 0 002.306-1.907c.651-.828.976-1.863.976-3.104V35.709c0-2.01.414-3.74 1.242-5.19.828-1.448 1.833-2.66 3.016-3.636s2.425-1.7 3.726-2.173c1.3-.473 2.424-.71 3.37-.71h8.073v7.451h-4.88c-1.241 0-2.232.207-2.97.621-.74.414-1.302.932-1.686 1.552a4.909 4.909 0 00-.71 1.996c-.089.71-.133 1.39-.133 2.04v16.677c0 1.715-.325 3.134-.976 4.258-.65 1.123-1.434 2.025-2.35 2.705-.917.68-1.863 1.168-2.839 1.464-.976.296-1.818.473-2.528.532v.178c.71.059 1.552.207 2.528.443.976.237 1.922.68 2.839 1.33.916.651 1.7 1.583 2.35 2.795.65 1.212.976 2.853.976 4.923v16.144c0 .65.044 1.33.133 2.04.089.71.325 1.375.71 1.996.384.621.946 1.139 1.685 1.553.74.414 1.73.62 2.972.62h4.879v7.452h-8.073c-.946 0-2.07-.237-3.37-.71-1.301-.473-2.543-1.197-3.726-2.173-1.183-.976-2.188-2.188-3.016-3.637-.828-1.449-1.242-3.179-1.242-5.19V74.119c0-1.42-.325-2.572-.976-3.46-.65-.886-1.419-1.581-2.306-2.084a8.868 8.868 0 00-2.75-1.02C1.36 67.377.591 67.288 0 67.288v-7.806zm24.66 0c.591 0 1.36-.089 2.306-.266a10.417 10.417 0 002.75-.932 6.762 6.762 0 002.306-1.907c.65-.828.976-1.863.976-3.104V35.709c0-2.01.414-3.74 1.242-5.19.828-1.448 1.833-2.66 3.016-3.636s2.425-1.7 3.726-2.173c1.3-.473 2.424-.71 3.37-.71h8.073v7.451h-4.88c-1.241 0-2.232.207-2.97.621-.74.414-1.302.932-1.686 1.552a4.909 4.909 0 00-.71 1.996c-.089.71-.133 1.39-.133 2.04v16.677c0 1.715-.325 3.134-.976 4.258-.65 1.123-1.434 2.025-2.35 2.705-.917.68-1.863 1.168-2.839 1.464-.976.296-1.818.473-2.528.532v.178c.71.059 1.552.207 2.528.443.976.237 1.922.68 2.839 1.33.916.651 1.7 1.583 2.35 2.795.65 1.212.976 2.853.976 4.923v16.144c0 .65.044 1.33.133 2.04.089.71.325 1.375.71 1.996.384.621.946 1.139 1.685 1.553.74.414 1.73.62 2.972.62h4.879v7.452h-8.073c-.946 0-2.07-.237-3.37-.71-1.301-.473-2.543-1.197-3.726-2.173-1.183-.976-2.188-2.188-3.016-3.637-.828-1.449-1.242-3.179-1.242-5.19V74.119c0-1.42-.325-2.572-.976-3.46-.65-.886-1.419-1.581-2.306-2.084a8.868 8.868 0 00-2.75-1.02c-.946-.177-1.715-.266-2.306-.266v-7.806zm43.965-3.538L80.6 52.041l2.306 7.097-12.063 3.903 7.628 10.378-6.12 4.435-7.63-10.467-7.45 10.201-5.943-4.524 7.628-10.023-12.152-4.17 2.306-7.096 12.064 4.17V43.347h7.451v12.596zm34.425 11.344c-.65 0-1.449.089-2.395.266-.946.177-1.863.488-2.75.931a6.356 6.356 0 00-2.262 1.908c-.62.828-.931 1.862-.931 3.104v17.564c0 2.01-.414 3.74-1.242 5.189-.828 1.449-1.833 2.661-3.016 3.637s-2.425 1.7-3.726 2.173c-1.3.473-2.424.71-3.37.71h-8.073v-7.451h4.88c1.241 0 2.232-.207 2.97-.621.74-.414 1.302-.932 1.686-1.553a4.9 4.9 0 00.71-1.995c.089-.71.133-1.39.133-2.04V72.432c0-1.715.325-3.134.976-4.258.65-1.124 1.434-2.01 2.35-2.661.917-.65 1.863-1.124 2.839-1.42.976-.295 1.818-.502 2.528-.62v-.178c-.71-.059-1.552-.207-2.528-.443-.976-.237-1.922-.68-2.839-1.33-.916-.651-1.7-1.583-2.35-2.795-.65-1.212-.976-2.853-.976-4.923V37.66c0-.651-.044-1.331-.133-2.04a4.909 4.909 0 00-.71-1.997c-.384-.62-.946-1.138-1.685-1.552-.74-.414-1.73-.62-2.972-.62h-4.879V24h8.073c.946 0 2.07.237 3.37.71 1.301.473 2.543 1.197 3.726 2.173 1.183.976 2.188 2.188 3.016 3.637.828 1.449 1.242 3.178 1.242 5.189v16.943c0 1.419.31 2.572.931 3.46a6.897 6.897 0 002.262 2.084 8.868 8.868 0 002.75 1.02c.946.177 1.745.266 2.395.266v7.806zm24.66 0c-.65 0-1.449.089-2.395.266-.946.177-1.863.488-2.75.931a6.356 6.356 0 00-2.262 1.908c-.62.828-.931 1.862-.931 3.104v17.564c0 2.01-.414 3.74-1.242 5.189-.828 1.449-1.833 2.661-3.016 3.637s-2.425 1.7-3.726 2.173c-1.3.473-2.424.71-3.37.71h-8.073v-7.451h4.88c1.241 0 2.232-.207 2.97-.621.74-.414 1.302-.932 1.686-1.553a4.9 4.9 0 00.71-1.995c.089-.71.133-1.39.133-2.04V72.432c0-1.715.325-3.134.976-4.258.65-1.124 1.434-2.01 2.35-2.661.917-.65 1.863-1.124 2.839-1.42.976-.295 1.818-.502 2.528-.62v-.178c-.71-.059-1.552-.207-2.528-.443-.976-.237-1.922-.68-2.839-1.33-.916-.651-1.7-1.583-2.35-2.795-.65-1.212-.976-2.853-.976-4.923V37.66c0-.651-.044-1.331-.133-2.04a4.909 4.909 0 00-.71-1.997c-.384-.62-.946-1.138-1.685-1.552-.74-.414-1.73-.62-2.972-.62h-4.879V24h8.073c.946 0 2.07.237 3.37.71 1.301.473 2.543 1.197 3.726 2.173 1.183.976 2.188 2.188 3.016 3.637.828 1.449 1.242 3.178 1.242 5.189v16.943c0 1.419.31 2.572.931 3.46a6.897 6.897 0 002.262 2.084 8.868 8.868 0 002.75 1.02c.946.177 1.745.266 2.395.266v7.806z\"/></svg>"
},
"$:/core/images/twitter": {
"title": "$:/core/images/twitter",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-twitter tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M41.626 115.803A73.376 73.376 0 012 104.235c2.022.238 4.08.36 6.166.36 12.111 0 23.258-4.117 32.105-11.023-11.312-.208-20.859-7.653-24.148-17.883a25.98 25.98 0 0011.674-.441C15.971 72.881 7.061 62.474 7.061 49.997c0-.108 0-.216.002-.323a25.824 25.824 0 0011.709 3.22c-6.936-4.617-11.5-12.5-11.5-21.433 0-4.719 1.274-9.142 3.5-12.945 12.75 15.579 31.797 25.83 53.281 26.904-.44-1.884-.67-3.85-.67-5.868 0-14.22 11.575-25.75 25.852-25.75a25.865 25.865 0 0118.869 8.132 51.892 51.892 0 0016.415-6.248c-1.93 6.012-6.029 11.059-11.366 14.246A51.844 51.844 0 00128 25.878a52.428 52.428 0 01-12.9 13.33c.05 1.104.075 2.214.075 3.33 0 34.028-26 73.265-73.549 73.265\"/></svg>"
},
"$:/core/images/underline": {
"title": "$:/core/images/underline",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-underline tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M7 117.421h114.248V128H7v-10.579zm97.871-18.525V0h-16.26v55.856c0 4.463-.605 8.576-1.816 12.338-1.212 3.762-3.03 7.046-5.452 9.851-2.423 2.806-5.452 4.974-9.086 6.504-3.635 1.53-7.939 2.296-12.912 2.296-6.25 0-11.159-1.786-14.73-5.356-3.57-3.571-5.356-8.417-5.356-14.538V0H23v65.038c0 5.356.542 10.234 1.626 14.633 1.084 4.4 2.965 8.194 5.643 11.382 2.678 3.188 6.185 5.643 10.52 7.365 4.337 1.721 9.756 2.582 16.26 2.582 7.27 0 13.582-1.435 18.938-4.304 5.356-2.87 9.755-7.365 13.199-13.486h.382v15.686h15.303z\"/></svg>"
},
"$:/core/images/unfold-all-button": {
"title": "$:/core/images/unfold-all-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-unfold-all tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"128\" height=\"16\" rx=\"8\"/><rect width=\"128\" height=\"16\" y=\"64\" rx=\"8\"/><path d=\"M63.945 60.624c-2.05 0-4.101-.78-5.666-2.345L35.662 35.662c-3.125-3.125-3.13-8.195-.005-11.319 3.118-3.118 8.192-3.122 11.319.005L63.94 41.314l16.966-16.966c3.124-3.124 8.194-3.129 11.318-.005 3.118 3.118 3.122 8.192-.005 11.319L69.603 58.279a7.986 7.986 0 01-5.663 2.346zM64.004 124.565c-2.05 0-4.102-.78-5.666-2.345L35.721 99.603c-3.125-3.125-3.13-8.195-.005-11.319 3.118-3.118 8.191-3.122 11.318.005L64 105.255l16.966-16.966c3.124-3.124 8.194-3.129 11.318-.005 3.118 3.118 3.122 8.192-.005 11.319L69.662 122.22a7.986 7.986 0 01-5.663 2.346z\"/></g></svg>"
},
"$:/core/images/unfold-button": {
"title": "$:/core/images/unfold-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-unfold tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"128\" height=\"16\" rx=\"8\"/><path d=\"M63.945 63.624c-2.05 0-4.101-.78-5.666-2.345L35.662 38.662c-3.125-3.125-3.13-8.195-.005-11.319 3.118-3.118 8.192-3.122 11.319.005L63.94 44.314l16.966-16.966c3.124-3.124 8.194-3.129 11.318-.005 3.118 3.118 3.122 8.192-.005 11.319L69.603 61.279a7.986 7.986 0 01-5.663 2.346zM64.004 105.682c-2.05.001-4.102-.78-5.666-2.344L35.721 80.721c-3.125-3.125-3.13-8.195-.005-11.319 3.118-3.118 8.191-3.122 11.318.005L64 86.373l16.966-16.966c3.124-3.125 8.194-3.13 11.318-.005 3.118 3.118 3.122 8.192-.005 11.319l-22.617 22.617a7.986 7.986 0 01-5.663 2.346z\"/></g></svg>"
},
"$:/core/images/unlocked-padlock": {
"title": "$:/core/images/unlocked-padlock",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-unlocked-padlock tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M48.627 64H105v32.01C105 113.674 90.674 128 73.001 128H56C38.318 128 24 113.677 24 96.01V64h6.136c-10.455-12.651-27.364-35.788-4.3-55.142 24.636-20.672 45.835 4.353 55.777 16.201 9.943 11.85-2.676 22.437-12.457 9.892-9.78-12.545-21.167-24.146-33.207-14.043-12.041 10.104-1.757 22.36 8.813 34.958 2.467 2.94 3.641 5.732 3.865 8.134zm19.105 28.364A8.503 8.503 0 0064.5 76a8.5 8.5 0 00-3.498 16.25l-5.095 22.77H72.8l-5.07-22.656z\"/></svg>"
},
"$:/core/images/up-arrow": {
"title": "$:/core/images/up-arrow",
"created": "20150316000544368",
"modified": "20150316000831867",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-up-arrow tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M63.892.281c2.027 0 4.054.77 5.6 2.316l55.98 55.98a7.92 7.92 0 010 11.196c-3.086 3.085-8.104 3.092-11.196 0L63.894 19.393 13.513 69.774a7.92 7.92 0 01-11.196 0c-3.085-3.086-3.092-8.105 0-11.196l55.98-55.98A7.892 7.892 0 0163.893.28z\"/></svg>"
},
"$:/core/images/video": {
"title": "$:/core/images/video",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-video tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M64 12c-34.91 0-55.273 2.917-58.182 5.833C2.91 20.75 0 41.167 0 64.5c0 23.333 2.91 43.75 5.818 46.667C8.728 114.083 29.091 117 64 117c34.91 0 55.273-2.917 58.182-5.833C125.09 108.25 128 87.833 128 64.5c0-23.333-2.91-43.75-5.818-46.667C119.272 14.917 98.909 12 64 12zm-9.084 32.618c-3.813-2.542-6.905-.879-6.905 3.698v31.368c0 4.585 3.099 6.235 6.905 3.698l22.168-14.779c3.813-2.542 3.806-6.669 0-9.206L54.916 44.618z\"/></svg>"
},
"$:/core/images/warning": {
"title": "$:/core/images/warning",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-warning tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M57.072 11c3.079-5.333 10.777-5.333 13.856 0l55.426 96c3.079 5.333-.77 12-6.928 12H8.574c-6.158 0-10.007-6.667-6.928-12l55.426-96zM64 37c-4.418 0-8 3.582-8 7.994v28.012C56 77.421 59.59 81 64 81c4.418 0 8-3.582 8-7.994V44.994C72 40.579 68.41 37 64 37zm0 67a8 8 0 100-16 8 8 0 000 16z\"/></svg>"
},
"$:/language/Buttons/AdvancedSearch/Caption": {
"title": "$:/language/Buttons/AdvancedSearch/Caption",
"text": "advanced search"
},
"$:/language/Buttons/AdvancedSearch/Hint": {
"title": "$:/language/Buttons/AdvancedSearch/Hint",
"text": "Advanced search"
},
"$:/language/Buttons/Cancel/Caption": {
"title": "$:/language/Buttons/Cancel/Caption",
"text": "cancel"
},
"$:/language/Buttons/Cancel/Hint": {
"title": "$:/language/Buttons/Cancel/Hint",
"text": "Discard changes to this tiddler"
},
"$:/language/Buttons/Clone/Caption": {
"title": "$:/language/Buttons/Clone/Caption",
"text": "clone"
},
"$:/language/Buttons/Clone/Hint": {
"title": "$:/language/Buttons/Clone/Hint",
"text": "Clone this tiddler"
},
"$:/language/Buttons/Close/Caption": {
"title": "$:/language/Buttons/Close/Caption",
"text": "close"
},
"$:/language/Buttons/Close/Hint": {
"title": "$:/language/Buttons/Close/Hint",
"text": "Close this tiddler"
},
"$:/language/Buttons/CloseAll/Caption": {
"title": "$:/language/Buttons/CloseAll/Caption",
"text": "close all"
},
"$:/language/Buttons/CloseAll/Hint": {
"title": "$:/language/Buttons/CloseAll/Hint",
"text": "Close all tiddlers"
},
"$:/language/Buttons/CloseOthers/Caption": {
"title": "$:/language/Buttons/CloseOthers/Caption",
"text": "close others"
},
"$:/language/Buttons/CloseOthers/Hint": {
"title": "$:/language/Buttons/CloseOthers/Hint",
"text": "Close other tiddlers"
},
"$:/language/Buttons/ControlPanel/Caption": {
"title": "$:/language/Buttons/ControlPanel/Caption",
"text": "control panel"
},
"$:/language/Buttons/ControlPanel/Hint": {
"title": "$:/language/Buttons/ControlPanel/Hint",
"text": "Open control panel"
},
"$:/language/Buttons/CopyToClipboard/Caption": {
"title": "$:/language/Buttons/CopyToClipboard/Caption",
"text": "copy to clipboard"
},
"$:/language/Buttons/CopyToClipboard/Hint": {
"title": "$:/language/Buttons/CopyToClipboard/Hint",
"text": "Copy this text to the clipboard"
},
"$:/language/Buttons/Delete/Caption": {
"title": "$:/language/Buttons/Delete/Caption",
"text": "delete"
},
"$:/language/Buttons/Delete/Hint": {
"title": "$:/language/Buttons/Delete/Hint",
"text": "Delete this tiddler"
},
"$:/language/Buttons/Edit/Caption": {
"title": "$:/language/Buttons/Edit/Caption",
"text": "edit"
},
"$:/language/Buttons/Edit/Hint": {
"title": "$:/language/Buttons/Edit/Hint",
"text": "Edit this tiddler"
},
"$:/language/Buttons/Encryption/Caption": {
"title": "$:/language/Buttons/Encryption/Caption",
"text": "encryption"
},
"$:/language/Buttons/Encryption/Hint": {
"title": "$:/language/Buttons/Encryption/Hint",
"text": "Set or clear a password for saving this wiki"
},
"$:/language/Buttons/Encryption/ClearPassword/Caption": {
"title": "$:/language/Buttons/Encryption/ClearPassword/Caption",
"text": "clear password"
},
"$:/language/Buttons/Encryption/ClearPassword/Hint": {
"title": "$:/language/Buttons/Encryption/ClearPassword/Hint",
"text": "Clear the password and save this wiki without encryption"
},
"$:/language/Buttons/Encryption/SetPassword/Caption": {
"title": "$:/language/Buttons/Encryption/SetPassword/Caption",
"text": "set password"
},
"$:/language/Buttons/Encryption/SetPassword/Hint": {
"title": "$:/language/Buttons/Encryption/SetPassword/Hint",
"text": "Set a password for saving this wiki with encryption"
},
"$:/language/Buttons/ExportPage/Caption": {
"title": "$:/language/Buttons/ExportPage/Caption",
"text": "export all"
},
"$:/language/Buttons/ExportPage/Hint": {
"title": "$:/language/Buttons/ExportPage/Hint",
"text": "Export all tiddlers"
},
"$:/language/Buttons/ExportTiddler/Caption": {
"title": "$:/language/Buttons/ExportTiddler/Caption",
"text": "export tiddler"
},
"$:/language/Buttons/ExportTiddler/Hint": {
"title": "$:/language/Buttons/ExportTiddler/Hint",
"text": "Export tiddler"
},
"$:/language/Buttons/ExportTiddlers/Caption": {
"title": "$:/language/Buttons/ExportTiddlers/Caption",
"text": "export tiddlers"
},
"$:/language/Buttons/ExportTiddlers/Hint": {
"title": "$:/language/Buttons/ExportTiddlers/Hint",
"text": "Export tiddlers"
},
"$:/language/Buttons/SidebarSearch/Hint": {
"title": "$:/language/Buttons/SidebarSearch/Hint",
"text": "Select the sidebar search field"
},
"$:/language/Buttons/Fold/Caption": {
"title": "$:/language/Buttons/Fold/Caption",
"text": "fold tiddler"
},
"$:/language/Buttons/Fold/Hint": {
"title": "$:/language/Buttons/Fold/Hint",
"text": "Fold the body of this tiddler"
},
"$:/language/Buttons/Fold/FoldBar/Caption": {
"title": "$:/language/Buttons/Fold/FoldBar/Caption",
"text": "fold-bar"
},
"$:/language/Buttons/Fold/FoldBar/Hint": {
"title": "$:/language/Buttons/Fold/FoldBar/Hint",
"text": "Optional bars to fold and unfold tiddlers"
},
"$:/language/Buttons/Unfold/Caption": {
"title": "$:/language/Buttons/Unfold/Caption",
"text": "unfold tiddler"
},
"$:/language/Buttons/Unfold/Hint": {
"title": "$:/language/Buttons/Unfold/Hint",
"text": "Unfold the body of this tiddler"
},
"$:/language/Buttons/FoldOthers/Caption": {
"title": "$:/language/Buttons/FoldOthers/Caption",
"text": "fold other tiddlers"
},
"$:/language/Buttons/FoldOthers/Hint": {
"title": "$:/language/Buttons/FoldOthers/Hint",
"text": "Fold the bodies of other opened tiddlers"
},
"$:/language/Buttons/FoldAll/Caption": {
"title": "$:/language/Buttons/FoldAll/Caption",
"text": "fold all tiddlers"
},
"$:/language/Buttons/FoldAll/Hint": {
"title": "$:/language/Buttons/FoldAll/Hint",
"text": "Fold the bodies of all opened tiddlers"
},
"$:/language/Buttons/UnfoldAll/Caption": {
"title": "$:/language/Buttons/UnfoldAll/Caption",
"text": "unfold all tiddlers"
},
"$:/language/Buttons/UnfoldAll/Hint": {
"title": "$:/language/Buttons/UnfoldAll/Hint",
"text": "Unfold the bodies of all opened tiddlers"
},
"$:/language/Buttons/FullScreen/Caption": {
"title": "$:/language/Buttons/FullScreen/Caption",
"text": "full-screen"
},
"$:/language/Buttons/FullScreen/Hint": {
"title": "$:/language/Buttons/FullScreen/Hint",
"text": "Enter or leave full-screen mode"
},
"$:/language/Buttons/Help/Caption": {
"title": "$:/language/Buttons/Help/Caption",
"text": "help"
},
"$:/language/Buttons/Help/Hint": {
"title": "$:/language/Buttons/Help/Hint",
"text": "Show help panel"
},
"$:/language/Buttons/Import/Caption": {
"title": "$:/language/Buttons/Import/Caption",
"text": "import"
},
"$:/language/Buttons/Import/Hint": {
"title": "$:/language/Buttons/Import/Hint",
"text": "Import many types of file including text, image, TiddlyWiki or JSON"
},
"$:/language/Buttons/Info/Caption": {
"title": "$:/language/Buttons/Info/Caption",
"text": "info"
},
"$:/language/Buttons/Info/Hint": {
"title": "$:/language/Buttons/Info/Hint",
"text": "Show information for this tiddler"
},
"$:/language/Buttons/Home/Caption": {
"title": "$:/language/Buttons/Home/Caption",
"text": "home"
},
"$:/language/Buttons/Home/Hint": {
"title": "$:/language/Buttons/Home/Hint",
"text": "Open the default tiddlers"
},
"$:/language/Buttons/Language/Caption": {
"title": "$:/language/Buttons/Language/Caption",
"text": "language"
},
"$:/language/Buttons/Language/Hint": {
"title": "$:/language/Buttons/Language/Hint",
"text": "Choose the user interface language"
},
"$:/language/Buttons/Manager/Caption": {
"title": "$:/language/Buttons/Manager/Caption",
"text": "tiddler manager"
},
"$:/language/Buttons/Manager/Hint": {
"title": "$:/language/Buttons/Manager/Hint",
"text": "Open tiddler manager"
},
"$:/language/Buttons/More/Caption": {
"title": "$:/language/Buttons/More/Caption",
"text": "more"
},
"$:/language/Buttons/More/Hint": {
"title": "$:/language/Buttons/More/Hint",
"text": "More actions"
},
"$:/language/Buttons/NewHere/Caption": {
"title": "$:/language/Buttons/NewHere/Caption",
"text": "new here"
},
"$:/language/Buttons/NewHere/Hint": {
"title": "$:/language/Buttons/NewHere/Hint",
"text": "Create a new tiddler tagged with this one"
},
"$:/language/Buttons/NewJournal/Caption": {
"title": "$:/language/Buttons/NewJournal/Caption",
"text": "new journal"
},
"$:/language/Buttons/NewJournal/Hint": {
"title": "$:/language/Buttons/NewJournal/Hint",
"text": "Create a new journal tiddler"
},
"$:/language/Buttons/NewJournalHere/Caption": {
"title": "$:/language/Buttons/NewJournalHere/Caption",
"text": "new journal here"
},
"$:/language/Buttons/NewJournalHere/Hint": {
"title": "$:/language/Buttons/NewJournalHere/Hint",
"text": "Create a new journal tiddler tagged with this one"
},
"$:/language/Buttons/NewImage/Caption": {
"title": "$:/language/Buttons/NewImage/Caption",
"text": "new image"
},
"$:/language/Buttons/NewImage/Hint": {
"title": "$:/language/Buttons/NewImage/Hint",
"text": "Create a new image tiddler"
},
"$:/language/Buttons/NewMarkdown/Caption": {
"title": "$:/language/Buttons/NewMarkdown/Caption",
"text": "new Markdown tiddler"
},
"$:/language/Buttons/NewMarkdown/Hint": {
"title": "$:/language/Buttons/NewMarkdown/Hint",
"text": "Create a new Markdown tiddler"
},
"$:/language/Buttons/NewTiddler/Caption": {
"title": "$:/language/Buttons/NewTiddler/Caption",
"text": "new tiddler"
},
"$:/language/Buttons/NewTiddler/Hint": {
"title": "$:/language/Buttons/NewTiddler/Hint",
"text": "Create a new tiddler"
},
"$:/language/Buttons/OpenWindow/Caption": {
"title": "$:/language/Buttons/OpenWindow/Caption",
"text": "open in new window"
},
"$:/language/Buttons/OpenWindow/Hint": {
"title": "$:/language/Buttons/OpenWindow/Hint",
"text": "Open tiddler in new window"
},
"$:/language/Buttons/Palette/Caption": {
"title": "$:/language/Buttons/Palette/Caption",
"text": "palette"
},
"$:/language/Buttons/Palette/Hint": {
"title": "$:/language/Buttons/Palette/Hint",
"text": "Choose the colour palette"
},
"$:/language/Buttons/Permalink/Caption": {
"title": "$:/language/Buttons/Permalink/Caption",
"text": "permalink"
},
"$:/language/Buttons/Permalink/Hint": {
"title": "$:/language/Buttons/Permalink/Hint",
"text": "Set browser address bar to a direct link to this tiddler"
},
"$:/language/Buttons/Permaview/Caption": {
"title": "$:/language/Buttons/Permaview/Caption",
"text": "permaview"
},
"$:/language/Buttons/Permaview/Hint": {
"title": "$:/language/Buttons/Permaview/Hint",
"text": "Set browser address bar to a direct link to all the tiddlers in this story"
},
"$:/language/Buttons/Print/Caption": {
"title": "$:/language/Buttons/Print/Caption",
"text": "print page"
},
"$:/language/Buttons/Print/Hint": {
"title": "$:/language/Buttons/Print/Hint",
"text": "Print the current page"
},
"$:/language/Buttons/Refresh/Caption": {
"title": "$:/language/Buttons/Refresh/Caption",
"text": "refresh"
},
"$:/language/Buttons/Refresh/Hint": {
"title": "$:/language/Buttons/Refresh/Hint",
"text": "Perform a full refresh of the wiki"
},
"$:/language/Buttons/Save/Caption": {
"title": "$:/language/Buttons/Save/Caption",
"text": "ok"
},
"$:/language/Buttons/Save/Hint": {
"title": "$:/language/Buttons/Save/Hint",
"text": "Confirm changes to this tiddler"
},
"$:/language/Buttons/SaveWiki/Caption": {
"title": "$:/language/Buttons/SaveWiki/Caption",
"text": "save changes"
},
"$:/language/Buttons/SaveWiki/Hint": {
"title": "$:/language/Buttons/SaveWiki/Hint",
"text": "Save changes"
},
"$:/language/Buttons/StoryView/Caption": {
"title": "$:/language/Buttons/StoryView/Caption",
"text": "storyview"
},
"$:/language/Buttons/StoryView/Hint": {
"title": "$:/language/Buttons/StoryView/Hint",
"text": "Choose the story visualisation"
},
"$:/language/Buttons/HideSideBar/Caption": {
"title": "$:/language/Buttons/HideSideBar/Caption",
"text": "hide sidebar"
},
"$:/language/Buttons/HideSideBar/Hint": {
"title": "$:/language/Buttons/HideSideBar/Hint",
"text": "Hide sidebar"
},
"$:/language/Buttons/ShowSideBar/Caption": {
"title": "$:/language/Buttons/ShowSideBar/Caption",
"text": "show sidebar"
},
"$:/language/Buttons/ShowSideBar/Hint": {
"title": "$:/language/Buttons/ShowSideBar/Hint",
"text": "Show sidebar"
},
"$:/language/Buttons/TagManager/Caption": {
"title": "$:/language/Buttons/TagManager/Caption",
"text": "tag manager"
},
"$:/language/Buttons/TagManager/Hint": {
"title": "$:/language/Buttons/TagManager/Hint",
"text": "Open tag manager"
},
"$:/language/Buttons/Timestamp/Caption": {
"title": "$:/language/Buttons/Timestamp/Caption",
"text": "timestamps"
},
"$:/language/Buttons/Timestamp/Hint": {
"title": "$:/language/Buttons/Timestamp/Hint",
"text": "Choose whether modifications update timestamps"
},
"$:/language/Buttons/Timestamp/On/Caption": {
"title": "$:/language/Buttons/Timestamp/On/Caption",
"text": "timestamps are on"
},
"$:/language/Buttons/Timestamp/On/Hint": {
"title": "$:/language/Buttons/Timestamp/On/Hint",
"text": "Update timestamps when tiddlers are modified"
},
"$:/language/Buttons/Timestamp/Off/Caption": {
"title": "$:/language/Buttons/Timestamp/Off/Caption",
"text": "timestamps are off"
},
"$:/language/Buttons/Timestamp/Off/Hint": {
"title": "$:/language/Buttons/Timestamp/Off/Hint",
"text": "Don't update timestamps when tiddlers are modified"
},
"$:/language/Buttons/Theme/Caption": {
"title": "$:/language/Buttons/Theme/Caption",
"text": "theme"
},
"$:/language/Buttons/Theme/Hint": {
"title": "$:/language/Buttons/Theme/Hint",
"text": "Choose the display theme"
},
"$:/language/Buttons/Bold/Caption": {
"title": "$:/language/Buttons/Bold/Caption",
"text": "bold"
},
"$:/language/Buttons/Bold/Hint": {
"title": "$:/language/Buttons/Bold/Hint",
"text": "Apply bold formatting to selection"
},
"$:/language/Buttons/Clear/Caption": {
"title": "$:/language/Buttons/Clear/Caption",
"text": "clear"
},
"$:/language/Buttons/Clear/Hint": {
"title": "$:/language/Buttons/Clear/Hint",
"text": "Clear image to solid colour"
},
"$:/language/Buttons/EditorHeight/Caption": {
"title": "$:/language/Buttons/EditorHeight/Caption",
"text": "editor height"
},
"$:/language/Buttons/EditorHeight/Caption/Auto": {
"title": "$:/language/Buttons/EditorHeight/Caption/Auto",
"text": "Automatically adjust height to fit content"
},
"$:/language/Buttons/EditorHeight/Caption/Fixed": {
"title": "$:/language/Buttons/EditorHeight/Caption/Fixed",
"text": "Fixed height:"
},
"$:/language/Buttons/EditorHeight/Hint": {
"title": "$:/language/Buttons/EditorHeight/Hint",
"text": "Choose the height of the text editor"
},
"$:/language/Buttons/Excise/Caption": {
"title": "$:/language/Buttons/Excise/Caption",
"text": "excise"
},
"$:/language/Buttons/Excise/Caption/Excise": {
"title": "$:/language/Buttons/Excise/Caption/Excise",
"text": "Perform excision"
},
"$:/language/Buttons/Excise/Caption/MacroName": {
"title": "$:/language/Buttons/Excise/Caption/MacroName",
"text": "Macro name:"
},
"$:/language/Buttons/Excise/Caption/NewTitle": {
"title": "$:/language/Buttons/Excise/Caption/NewTitle",
"text": "Title of new tiddler:"
},
"$:/language/Buttons/Excise/Caption/Replace": {
"title": "$:/language/Buttons/Excise/Caption/Replace",
"text": "Replace excised text with:"
},
"$:/language/Buttons/Excise/Caption/Replace/Macro": {
"title": "$:/language/Buttons/Excise/Caption/Replace/Macro",
"text": "macro"
},
"$:/language/Buttons/Excise/Caption/Replace/Link": {
"title": "$:/language/Buttons/Excise/Caption/Replace/Link",
"text": "link"
},
"$:/language/Buttons/Excise/Caption/Replace/Transclusion": {
"title": "$:/language/Buttons/Excise/Caption/Replace/Transclusion",
"text": "transclusion"
},
"$:/language/Buttons/Excise/Caption/Tag": {
"title": "$:/language/Buttons/Excise/Caption/Tag",
"text": "Tag new tiddler with the title of this tiddler"
},
"$:/language/Buttons/Excise/Caption/TiddlerExists": {
"title": "$:/language/Buttons/Excise/Caption/TiddlerExists",
"text": "Warning: tiddler already exists"
},
"$:/language/Buttons/Excise/Hint": {
"title": "$:/language/Buttons/Excise/Hint",
"text": "Excise the selected text into a new tiddler"
},
"$:/language/Buttons/Heading1/Caption": {
"title": "$:/language/Buttons/Heading1/Caption",
"text": "heading 1"
},
"$:/language/Buttons/Heading1/Hint": {
"title": "$:/language/Buttons/Heading1/Hint",
"text": "Apply heading level 1 formatting to lines containing selection"
},
"$:/language/Buttons/Heading2/Caption": {
"title": "$:/language/Buttons/Heading2/Caption",
"text": "heading 2"
},
"$:/language/Buttons/Heading2/Hint": {
"title": "$:/language/Buttons/Heading2/Hint",
"text": "Apply heading level 2 formatting to lines containing selection"
},
"$:/language/Buttons/Heading3/Caption": {
"title": "$:/language/Buttons/Heading3/Caption",
"text": "heading 3"
},
"$:/language/Buttons/Heading3/Hint": {
"title": "$:/language/Buttons/Heading3/Hint",
"text": "Apply heading level 3 formatting to lines containing selection"
},
"$:/language/Buttons/Heading4/Caption": {
"title": "$:/language/Buttons/Heading4/Caption",
"text": "heading 4"
},
"$:/language/Buttons/Heading4/Hint": {
"title": "$:/language/Buttons/Heading4/Hint",
"text": "Apply heading level 4 formatting to lines containing selection"
},
"$:/language/Buttons/Heading5/Caption": {
"title": "$:/language/Buttons/Heading5/Caption",
"text": "heading 5"
},
"$:/language/Buttons/Heading5/Hint": {
"title": "$:/language/Buttons/Heading5/Hint",
"text": "Apply heading level 5 formatting to lines containing selection"
},
"$:/language/Buttons/Heading6/Caption": {
"title": "$:/language/Buttons/Heading6/Caption",
"text": "heading 6"
},
"$:/language/Buttons/Heading6/Hint": {
"title": "$:/language/Buttons/Heading6/Hint",
"text": "Apply heading level 6 formatting to lines containing selection"
},
"$:/language/Buttons/Italic/Caption": {
"title": "$:/language/Buttons/Italic/Caption",
"text": "italic"
},
"$:/language/Buttons/Italic/Hint": {
"title": "$:/language/Buttons/Italic/Hint",
"text": "Apply italic formatting to selection"
},
"$:/language/Buttons/LineWidth/Caption": {
"title": "$:/language/Buttons/LineWidth/Caption",
"text": "line width"
},
"$:/language/Buttons/LineWidth/Hint": {
"title": "$:/language/Buttons/LineWidth/Hint",
"text": "Set line width for painting"
},
"$:/language/Buttons/Link/Caption": {
"title": "$:/language/Buttons/Link/Caption",
"text": "link"
},
"$:/language/Buttons/Link/Hint": {
"title": "$:/language/Buttons/Link/Hint",
"text": "Create wikitext link"
},
"$:/language/Buttons/Linkify/Caption": {
"title": "$:/language/Buttons/Linkify/Caption",
"text": "wikilink"
},
"$:/language/Buttons/Linkify/Hint": {
"title": "$:/language/Buttons/Linkify/Hint",
"text": "Wrap selection in square brackets"
},
"$:/language/Buttons/ListBullet/Caption": {
"title": "$:/language/Buttons/ListBullet/Caption",
"text": "bulleted list"
},
"$:/language/Buttons/ListBullet/Hint": {
"title": "$:/language/Buttons/ListBullet/Hint",
"text": "Apply bulleted list formatting to lines containing selection"
},
"$:/language/Buttons/ListNumber/Caption": {
"title": "$:/language/Buttons/ListNumber/Caption",
"text": "numbered list"
},
"$:/language/Buttons/ListNumber/Hint": {
"title": "$:/language/Buttons/ListNumber/Hint",
"text": "Apply numbered list formatting to lines containing selection"
},
"$:/language/Buttons/MonoBlock/Caption": {
"title": "$:/language/Buttons/MonoBlock/Caption",
"text": "monospaced block"
},
"$:/language/Buttons/MonoBlock/Hint": {
"title": "$:/language/Buttons/MonoBlock/Hint",
"text": "Apply monospaced block formatting to lines containing selection"
},
"$:/language/Buttons/MonoLine/Caption": {
"title": "$:/language/Buttons/MonoLine/Caption",
"text": "monospaced"
},
"$:/language/Buttons/MonoLine/Hint": {
"title": "$:/language/Buttons/MonoLine/Hint",
"text": "Apply monospaced character formatting to selection"
},
"$:/language/Buttons/Opacity/Caption": {
"title": "$:/language/Buttons/Opacity/Caption",
"text": "opacity"
},
"$:/language/Buttons/Opacity/Hint": {
"title": "$:/language/Buttons/Opacity/Hint",
"text": "Set painting opacity"
},
"$:/language/Buttons/Paint/Caption": {
"title": "$:/language/Buttons/Paint/Caption",
"text": "paint colour"
},
"$:/language/Buttons/Paint/Hint": {
"title": "$:/language/Buttons/Paint/Hint",
"text": "Set painting colour"
},
"$:/language/Buttons/Picture/Caption": {
"title": "$:/language/Buttons/Picture/Caption",
"text": "picture"
},
"$:/language/Buttons/Picture/Hint": {
"title": "$:/language/Buttons/Picture/Hint",
"text": "Insert picture"
},
"$:/language/Buttons/Preview/Caption": {
"title": "$:/language/Buttons/Preview/Caption",
"text": "preview"
},
"$:/language/Buttons/Preview/Hint": {
"title": "$:/language/Buttons/Preview/Hint",
"text": "Show preview pane"
},
"$:/language/Buttons/PreviewType/Caption": {
"title": "$:/language/Buttons/PreviewType/Caption",
"text": "preview type"
},
"$:/language/Buttons/PreviewType/Hint": {
"title": "$:/language/Buttons/PreviewType/Hint",
"text": "Choose preview type"
},
"$:/language/Buttons/Quote/Caption": {
"title": "$:/language/Buttons/Quote/Caption",
"text": "quote"
},
"$:/language/Buttons/Quote/Hint": {
"title": "$:/language/Buttons/Quote/Hint",
"text": "Apply quoted text formatting to lines containing selection"
},
"$:/language/Buttons/RotateLeft/Caption": {
"title": "$:/language/Buttons/RotateLeft/Caption",
"text": "rotate left"
},
"$:/language/Buttons/RotateLeft/Hint": {
"title": "$:/language/Buttons/RotateLeft/Hint",
"text": "Rotate image left by 90 degrees"
},
"$:/language/Buttons/Size/Caption": {
"title": "$:/language/Buttons/Size/Caption",
"text": "image size"
},
"$:/language/Buttons/Size/Caption/Height": {
"title": "$:/language/Buttons/Size/Caption/Height",
"text": "Height:"
},
"$:/language/Buttons/Size/Caption/Resize": {
"title": "$:/language/Buttons/Size/Caption/Resize",
"text": "Resize image"
},
"$:/language/Buttons/Size/Caption/Width": {
"title": "$:/language/Buttons/Size/Caption/Width",
"text": "Width:"
},
"$:/language/Buttons/Size/Hint": {
"title": "$:/language/Buttons/Size/Hint",
"text": "Set image size"
},
"$:/language/Buttons/Stamp/Caption": {
"title": "$:/language/Buttons/Stamp/Caption",
"text": "stamp"
},
"$:/language/Buttons/Stamp/Caption/New": {
"title": "$:/language/Buttons/Stamp/Caption/New",
"text": "Add your own"
},
"$:/language/Buttons/Stamp/Hint": {
"title": "$:/language/Buttons/Stamp/Hint",
"text": "Insert a preconfigured snippet of text"
},
"$:/language/Buttons/Stamp/New/Title": {
"title": "$:/language/Buttons/Stamp/New/Title",
"text": "Name as shown in menu"
},
"$:/language/Buttons/Stamp/New/Text": {
"title": "$:/language/Buttons/Stamp/New/Text",
"text": "Text of snippet. (Remember to add a descriptive title in the caption field)."
},
"$:/language/Buttons/Strikethrough/Caption": {
"title": "$:/language/Buttons/Strikethrough/Caption",
"text": "strikethrough"
},
"$:/language/Buttons/Strikethrough/Hint": {
"title": "$:/language/Buttons/Strikethrough/Hint",
"text": "Apply strikethrough formatting to selection"
},
"$:/language/Buttons/Subscript/Caption": {
"title": "$:/language/Buttons/Subscript/Caption",
"text": "subscript"
},
"$:/language/Buttons/Subscript/Hint": {
"title": "$:/language/Buttons/Subscript/Hint",
"text": "Apply subscript formatting to selection"
},
"$:/language/Buttons/Superscript/Caption": {
"title": "$:/language/Buttons/Superscript/Caption",
"text": "superscript"
},
"$:/language/Buttons/Superscript/Hint": {
"title": "$:/language/Buttons/Superscript/Hint",
"text": "Apply superscript formatting to selection"
},
"$:/language/Buttons/ToggleSidebar/Hint": {
"title": "$:/language/Buttons/ToggleSidebar/Hint",
"text": "Toggle the sidebar visibility"
},
"$:/language/Buttons/Transcludify/Caption": {
"title": "$:/language/Buttons/Transcludify/Caption",
"text": "transclusion"
},
"$:/language/Buttons/Transcludify/Hint": {
"title": "$:/language/Buttons/Transcludify/Hint",
"text": "Wrap selection in curly brackets"
},
"$:/language/Buttons/Underline/Caption": {
"title": "$:/language/Buttons/Underline/Caption",
"text": "underline"
},
"$:/language/Buttons/Underline/Hint": {
"title": "$:/language/Buttons/Underline/Hint",
"text": "Apply underline formatting to selection"
},
"$:/language/ControlPanel/Advanced/Caption": {
"title": "$:/language/ControlPanel/Advanced/Caption",
"text": "Advanced"
},
"$:/language/ControlPanel/Advanced/Hint": {
"title": "$:/language/ControlPanel/Advanced/Hint",
"text": "Internal information about this TiddlyWiki"
},
"$:/language/ControlPanel/Appearance/Caption": {
"title": "$:/language/ControlPanel/Appearance/Caption",
"text": "Appearance"
},
"$:/language/ControlPanel/Appearance/Hint": {
"title": "$:/language/ControlPanel/Appearance/Hint",
"text": "Ways to customise the appearance of your TiddlyWiki."
},
"$:/language/ControlPanel/Basics/AnimDuration/Prompt": {
"title": "$:/language/ControlPanel/Basics/AnimDuration/Prompt",
"text": "Animation duration"
},
"$:/language/ControlPanel/Basics/AutoFocus/Prompt": {
"title": "$:/language/ControlPanel/Basics/AutoFocus/Prompt",
"text": "Default focus field for new tiddlers"
},
"$:/language/ControlPanel/Basics/Caption": {
"title": "$:/language/ControlPanel/Basics/Caption",
"text": "Basics"
},
"$:/language/ControlPanel/Basics/DefaultTiddlers/BottomHint": {
"title": "$:/language/ControlPanel/Basics/DefaultTiddlers/BottomHint",
"text": "Use [[double square brackets]] for titles with spaces. Or you can choose to <$button set=\"$:/DefaultTiddlers\" setTo=\"[list[$:/StoryList]]\">retain story ordering</$button>"
},
"$:/language/ControlPanel/Basics/DefaultTiddlers/Prompt": {
"title": "$:/language/ControlPanel/Basics/DefaultTiddlers/Prompt",
"text": "Default tiddlers"
},
"$:/language/ControlPanel/Basics/DefaultTiddlers/TopHint": {
"title": "$:/language/ControlPanel/Basics/DefaultTiddlers/TopHint",
"text": "Choose which tiddlers are displayed at startup"
},
"$:/language/ControlPanel/Basics/Language/Prompt": {
"title": "$:/language/ControlPanel/Basics/Language/Prompt",
"text": "Hello! Current language:"
},
"$:/language/ControlPanel/Basics/NewJournal/Title/Prompt": {
"title": "$:/language/ControlPanel/Basics/NewJournal/Title/Prompt",
"text": "Title of new journal tiddlers"
},
"$:/language/ControlPanel/Basics/NewJournal/Text/Prompt": {
"title": "$:/language/ControlPanel/Basics/NewJournal/Text/Prompt",
"text": "Text for new journal tiddlers"
},
"$:/language/ControlPanel/Basics/NewJournal/Tags/Prompt": {
"title": "$:/language/ControlPanel/Basics/NewJournal/Tags/Prompt",
"text": "Tags for new journal tiddlers"
},
"$:/language/ControlPanel/Basics/NewTiddler/Title/Prompt": {
"title": "$:/language/ControlPanel/Basics/NewTiddler/Title/Prompt",
"text": "Title of new tiddlers"
},
"$:/language/ControlPanel/Basics/NewTiddler/Tags/Prompt": {
"title": "$:/language/ControlPanel/Basics/NewTiddler/Tags/Prompt",
"text": "Tags for new tiddlers"
},
"$:/language/ControlPanel/Basics/OverriddenShadowTiddlers/Prompt": {
"title": "$:/language/ControlPanel/Basics/OverriddenShadowTiddlers/Prompt",
"text": "Number of overridden shadow tiddlers"
},
"$:/language/ControlPanel/Basics/ShadowTiddlers/Prompt": {
"title": "$:/language/ControlPanel/Basics/ShadowTiddlers/Prompt",
"text": "Number of shadow tiddlers"
},
"$:/language/ControlPanel/Basics/Subtitle/Prompt": {
"title": "$:/language/ControlPanel/Basics/Subtitle/Prompt",
"text": "Subtitle"
},
"$:/language/ControlPanel/Basics/SystemTiddlers/Prompt": {
"title": "$:/language/ControlPanel/Basics/SystemTiddlers/Prompt",
"text": "Number of system tiddlers"
},
"$:/language/ControlPanel/Basics/Tags/Prompt": {
"title": "$:/language/ControlPanel/Basics/Tags/Prompt",
"text": "Number of tags"
},
"$:/language/ControlPanel/Basics/Tiddlers/Prompt": {
"title": "$:/language/ControlPanel/Basics/Tiddlers/Prompt",
"text": "Number of tiddlers"
},
"$:/language/ControlPanel/Basics/Title/Prompt": {
"title": "$:/language/ControlPanel/Basics/Title/Prompt",
"text": "Title of this ~TiddlyWiki"
},
"$:/language/ControlPanel/Basics/Username/Prompt": {
"title": "$:/language/ControlPanel/Basics/Username/Prompt",
"text": "Username for signing edits"
},
"$:/language/ControlPanel/Basics/Version/Prompt": {
"title": "$:/language/ControlPanel/Basics/Version/Prompt",
"text": "~TiddlyWiki version"
},
"$:/language/ControlPanel/EditorTypes/Caption": {
"title": "$:/language/ControlPanel/EditorTypes/Caption",
"text": "Editor Types"
},
"$:/language/ControlPanel/EditorTypes/Editor/Caption": {
"title": "$:/language/ControlPanel/EditorTypes/Editor/Caption",
"text": "Editor"
},
"$:/language/ControlPanel/EditorTypes/Hint": {
"title": "$:/language/ControlPanel/EditorTypes/Hint",
"text": "These tiddlers determine which editor is used to edit specific tiddler types."
},
"$:/language/ControlPanel/EditorTypes/Type/Caption": {
"title": "$:/language/ControlPanel/EditorTypes/Type/Caption",
"text": "Type"
},
"$:/language/ControlPanel/Info/Caption": {
"title": "$:/language/ControlPanel/Info/Caption",
"text": "Info"
},
"$:/language/ControlPanel/Info/Hint": {
"title": "$:/language/ControlPanel/Info/Hint",
"text": "Information about this TiddlyWiki"
},
"$:/language/ControlPanel/KeyboardShortcuts/Add/Prompt": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Add/Prompt",
"text": "Type shortcut here"
},
"$:/language/ControlPanel/KeyboardShortcuts/Add/Caption": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Add/Caption",
"text": "add shortcut"
},
"$:/language/ControlPanel/KeyboardShortcuts/Caption": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Caption",
"text": "Keyboard Shortcuts"
},
"$:/language/ControlPanel/KeyboardShortcuts/Hint": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Hint",
"text": "Manage keyboard shortcut assignments"
},
"$:/language/ControlPanel/KeyboardShortcuts/NoShortcuts/Caption": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/NoShortcuts/Caption",
"text": "No keyboard shortcuts assigned"
},
"$:/language/ControlPanel/KeyboardShortcuts/Remove/Hint": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Remove/Hint",
"text": "remove keyboard shortcut"
},
"$:/language/ControlPanel/KeyboardShortcuts/Platform/All": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/All",
"text": "All platforms"
},
"$:/language/ControlPanel/KeyboardShortcuts/Platform/Mac": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/Mac",
"text": "Macintosh platform only"
},
"$:/language/ControlPanel/KeyboardShortcuts/Platform/NonMac": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonMac",
"text": "Non-Macintosh platforms only"
},
"$:/language/ControlPanel/KeyboardShortcuts/Platform/Linux": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/Linux",
"text": "Linux platform only"
},
"$:/language/ControlPanel/KeyboardShortcuts/Platform/NonLinux": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonLinux",
"text": "Non-Linux platforms only"
},
"$:/language/ControlPanel/KeyboardShortcuts/Platform/Windows": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/Windows",
"text": "Windows platform only"
},
"$:/language/ControlPanel/KeyboardShortcuts/Platform/NonWindows": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonWindows",
"text": "Non-Windows platforms only"
},
"$:/language/ControlPanel/LoadedModules/Caption": {
"title": "$:/language/ControlPanel/LoadedModules/Caption",
"text": "Loaded Modules"
},
"$:/language/ControlPanel/LoadedModules/Hint": {
"title": "$:/language/ControlPanel/LoadedModules/Hint",
"text": "These are the currently loaded tiddler modules linked to their source tiddlers. Any italicised modules lack a source tiddler, typically because they were setup during the boot process."
},
"$:/language/ControlPanel/Palette/Caption": {
"title": "$:/language/ControlPanel/Palette/Caption",
"text": "Palette"
},
"$:/language/ControlPanel/Palette/Editor/Clone/Caption": {
"title": "$:/language/ControlPanel/Palette/Editor/Clone/Caption",
"text": "clone"
},
"$:/language/ControlPanel/Palette/Editor/Clone/Prompt": {
"title": "$:/language/ControlPanel/Palette/Editor/Clone/Prompt",
"text": "It is recommended that you clone this shadow palette before editing it"
},
"$:/language/ControlPanel/Palette/Editor/Delete/Hint": {
"title": "$:/language/ControlPanel/Palette/Editor/Delete/Hint",
"text": "delete this entry from the current palette"
},
"$:/language/ControlPanel/Palette/Editor/Names/External/Show": {
"title": "$:/language/ControlPanel/Palette/Editor/Names/External/Show",
"text": "Show color names that are not part of the current palette"
},
"$:/language/ControlPanel/Palette/Editor/Prompt/Modified": {
"title": "$:/language/ControlPanel/Palette/Editor/Prompt/Modified",
"text": "This shadow palette has been modified"
},
"$:/language/ControlPanel/Palette/Editor/Prompt": {
"title": "$:/language/ControlPanel/Palette/Editor/Prompt",
"text": "Editing"
},
"$:/language/ControlPanel/Palette/Editor/Reset/Caption": {
"title": "$:/language/ControlPanel/Palette/Editor/Reset/Caption",
"text": "reset"
},
"$:/language/ControlPanel/Palette/HideEditor/Caption": {
"title": "$:/language/ControlPanel/Palette/HideEditor/Caption",
"text": "hide editor"
},
"$:/language/ControlPanel/Palette/Prompt": {
"title": "$:/language/ControlPanel/Palette/Prompt",
"text": "Current palette:"
},
"$:/language/ControlPanel/Palette/ShowEditor/Caption": {
"title": "$:/language/ControlPanel/Palette/ShowEditor/Caption",
"text": "show editor"
},
"$:/language/ControlPanel/Parsing/Caption": {
"title": "$:/language/ControlPanel/Parsing/Caption",
"text": "Parsing"
},
"$:/language/ControlPanel/Parsing/Hint": {
"title": "$:/language/ControlPanel/Parsing/Hint",
"text": "Here you can globally disable/enable wiki parser rules. For changes to take effect, save and reload your wiki. Disabling certain parser rules can prevent <$text text=\"TiddlyWiki\"/> from functioning correctly. Use [[safe mode|https://tiddlywiki.com/#SafeMode]] to restore normal operation."
},
"$:/language/ControlPanel/Parsing/Block/Caption": {
"title": "$:/language/ControlPanel/Parsing/Block/Caption",
"text": "Block Parse Rules"
},
"$:/language/ControlPanel/Parsing/Inline/Caption": {
"title": "$:/language/ControlPanel/Parsing/Inline/Caption",
"text": "Inline Parse Rules"
},
"$:/language/ControlPanel/Parsing/Pragma/Caption": {
"title": "$:/language/ControlPanel/Parsing/Pragma/Caption",
"text": "Pragma Parse Rules"
},
"$:/language/ControlPanel/Plugins/Add/Caption": {
"title": "$:/language/ControlPanel/Plugins/Add/Caption",
"text": "Get more plugins"
},
"$:/language/ControlPanel/Plugins/Add/Hint": {
"title": "$:/language/ControlPanel/Plugins/Add/Hint",
"text": "Install plugins from the official library"
},
"$:/language/ControlPanel/Plugins/AlreadyInstalled/Hint": {
"title": "$:/language/ControlPanel/Plugins/AlreadyInstalled/Hint",
"text": "This plugin is already installed at version <$text text=<<installedVersion>>/>"
},
"$:/language/ControlPanel/Plugins/AlsoRequires": {
"title": "$:/language/ControlPanel/Plugins/AlsoRequires",
"text": "Also requires:"
},
"$:/language/ControlPanel/Plugins/Caption": {
"title": "$:/language/ControlPanel/Plugins/Caption",
"text": "Plugins"
},
"$:/language/ControlPanel/Plugins/Disable/Caption": {
"title": "$:/language/ControlPanel/Plugins/Disable/Caption",
"text": "disable"
},
"$:/language/ControlPanel/Plugins/Disable/Hint": {
"title": "$:/language/ControlPanel/Plugins/Disable/Hint",
"text": "Disable this plugin when reloading page"
},
"$:/language/ControlPanel/Plugins/Disabled/Status": {
"title": "$:/language/ControlPanel/Plugins/Disabled/Status",
"text": "(disabled)"
},
"$:/language/ControlPanel/Plugins/Downgrade/Caption": {
"title": "$:/language/ControlPanel/Plugins/Downgrade/Caption",
"text": "downgrade"
},
"$:/language/ControlPanel/Plugins/Empty/Hint": {
"title": "$:/language/ControlPanel/Plugins/Empty/Hint",
"text": "None"
},
"$:/language/ControlPanel/Plugins/Enable/Caption": {
"title": "$:/language/ControlPanel/Plugins/Enable/Caption",
"text": "enable"
},
"$:/language/ControlPanel/Plugins/Enable/Hint": {
"title": "$:/language/ControlPanel/Plugins/Enable/Hint",
"text": "Enable this plugin when reloading page"
},
"$:/language/ControlPanel/Plugins/Install/Caption": {
"title": "$:/language/ControlPanel/Plugins/Install/Caption",
"text": "install"
},
"$:/language/ControlPanel/Plugins/Installed/Hint": {
"title": "$:/language/ControlPanel/Plugins/Installed/Hint",
"text": "Currently installed plugins:"
},
"$:/language/ControlPanel/Plugins/Languages/Caption": {
"title": "$:/language/ControlPanel/Plugins/Languages/Caption",
"text": "Languages"
},
"$:/language/ControlPanel/Plugins/Languages/Hint": {
"title": "$:/language/ControlPanel/Plugins/Languages/Hint",
"text": "Language pack plugins"
},
"$:/language/ControlPanel/Plugins/NoInfoFound/Hint": {
"title": "$:/language/ControlPanel/Plugins/NoInfoFound/Hint",
"text": "No ''\"<$text text=<<currentTab>>/>\"'' found"
},
"$:/language/ControlPanel/Plugins/NotInstalled/Hint": {
"title": "$:/language/ControlPanel/Plugins/NotInstalled/Hint",
"text": "This plugin is not currently installed"
},
"$:/language/ControlPanel/Plugins/OpenPluginLibrary": {
"title": "$:/language/ControlPanel/Plugins/OpenPluginLibrary",
"text": "open plugin library"
},
"$:/language/ControlPanel/Plugins/ClosePluginLibrary": {
"title": "$:/language/ControlPanel/Plugins/ClosePluginLibrary",
"text": "close plugin library"
},
"$:/language/ControlPanel/Plugins/PluginWillRequireReload": {
"title": "$:/language/ControlPanel/Plugins/PluginWillRequireReload",
"text": "(requires reload)"
},
"$:/language/ControlPanel/Plugins/Plugins/Caption": {
"title": "$:/language/ControlPanel/Plugins/Plugins/Caption",
"text": "Plugins"
},
"$:/language/ControlPanel/Plugins/Plugins/Hint": {
"title": "$:/language/ControlPanel/Plugins/Plugins/Hint",
"text": "Plugins"
},
"$:/language/ControlPanel/Plugins/Reinstall/Caption": {
"title": "$:/language/ControlPanel/Plugins/Reinstall/Caption",
"text": "reinstall"
},
"$:/language/ControlPanel/Plugins/Themes/Caption": {
"title": "$:/language/ControlPanel/Plugins/Themes/Caption",
"text": "Themes"
},
"$:/language/ControlPanel/Plugins/Themes/Hint": {
"title": "$:/language/ControlPanel/Plugins/Themes/Hint",
"text": "Theme plugins"
},
"$:/language/ControlPanel/Plugins/Update/Caption": {
"title": "$:/language/ControlPanel/Plugins/Update/Caption",
"text": "update"
},
"$:/language/ControlPanel/Plugins/Updates/Caption": {
"title": "$:/language/ControlPanel/Plugins/Updates/Caption",
"text": "Updates"
},
"$:/language/ControlPanel/Plugins/Updates/Hint": {
"title": "$:/language/ControlPanel/Plugins/Updates/Hint",
"text": "Available updates to installed plugins"
},
"$:/language/ControlPanel/Plugins/Updates/UpdateAll/Caption": {
"title": "$:/language/ControlPanel/Plugins/Updates/UpdateAll/Caption",
"text": "Update <<update-count>> plugins"
},
"$:/language/ControlPanel/Plugins/SubPluginPrompt": {
"title": "$:/language/ControlPanel/Plugins/SubPluginPrompt",
"text": "With <<count>> sub-plugins available"
},
"$:/language/ControlPanel/Saving/Caption": {
"title": "$:/language/ControlPanel/Saving/Caption",
"text": "Saving"
},
"$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Description": {
"title": "$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Description",
"text": "Permit automatic saving for the download saver"
},
"$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Hint": {
"title": "$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Hint",
"text": "Enable Autosave for Download Saver"
},
"$:/language/ControlPanel/Saving/DownloadSaver/Caption": {
"title": "$:/language/ControlPanel/Saving/DownloadSaver/Caption",
"text": "Download Saver"
},
"$:/language/ControlPanel/Saving/DownloadSaver/Hint": {
"title": "$:/language/ControlPanel/Saving/DownloadSaver/Hint",
"text": "These settings apply to the HTML5-compatible download saver"
},
"$:/language/ControlPanel/Saving/General/Caption": {
"title": "$:/language/ControlPanel/Saving/General/Caption",
"text": "General"
},
"$:/language/ControlPanel/Saving/General/Hint": {
"title": "$:/language/ControlPanel/Saving/General/Hint",
"text": "These settings apply to all the loaded savers"
},
"$:/language/ControlPanel/Saving/Hint": {
"title": "$:/language/ControlPanel/Saving/Hint",
"text": "Settings used for saving the entire TiddlyWiki as a single file via a saver module"
},
"$:/language/ControlPanel/Saving/GitService/Branch": {
"title": "$:/language/ControlPanel/Saving/GitService/Branch",
"text": "Target branch for saving"
},
"$:/language/ControlPanel/Saving/GitService/CommitMessage": {
"title": "$:/language/ControlPanel/Saving/GitService/CommitMessage",
"text": "Saved by TiddlyWiki"
},
"$:/language/ControlPanel/Saving/GitService/Description": {
"title": "$:/language/ControlPanel/Saving/GitService/Description",
"text": "These settings are only used when saving to <<service-name>>"
},
"$:/language/ControlPanel/Saving/GitService/Filename": {
"title": "$:/language/ControlPanel/Saving/GitService/Filename",
"text": "Filename of target file (e.g. `index.html`)"
},
"$:/language/ControlPanel/Saving/GitService/Path": {
"title": "$:/language/ControlPanel/Saving/GitService/Path",
"text": "Path to target file (e.g. `/wiki/`)"
},
"$:/language/ControlPanel/Saving/GitService/Repo": {
"title": "$:/language/ControlPanel/Saving/GitService/Repo",
"text": "Target repository (e.g. `Jermolene/TiddlyWiki5`)"
},
"$:/language/ControlPanel/Saving/GitService/ServerURL": {
"title": "$:/language/ControlPanel/Saving/GitService/ServerURL",
"text": "Server API URL"
},
"$:/language/ControlPanel/Saving/GitService/UserName": {
"title": "$:/language/ControlPanel/Saving/GitService/UserName",
"text": "Username"
},
"$:/language/ControlPanel/Saving/GitService/GitHub/Caption": {
"title": "$:/language/ControlPanel/Saving/GitService/GitHub/Caption",
"text": "~GitHub Saver"
},
"$:/language/ControlPanel/Saving/GitService/GitHub/Password": {
"title": "$:/language/ControlPanel/Saving/GitService/GitHub/Password",
"text": "Password, OAUTH token, or personal access token (see [[GitHub help page|https://help.github.com/en/articles/creating-a-personal-access-token-for-the-command-line]] for details)"
},
"$:/language/ControlPanel/Saving/GitService/GitLab/Caption": {
"title": "$:/language/ControlPanel/Saving/GitService/GitLab/Caption",
"text": "~GitLab Saver"
},
"$:/language/ControlPanel/Saving/GitService/GitLab/Password": {
"title": "$:/language/ControlPanel/Saving/GitService/GitLab/Password",
"text": "Personal access token for API (see [[GitLab help page|https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html]] for details)"
},
"$:/language/ControlPanel/Saving/GitService/Gitea/Caption": {
"title": "$:/language/ControlPanel/Saving/GitService/Gitea/Caption",
"text": "Gitea Saver"
},
"$:/language/ControlPanel/Saving/GitService/Gitea/Password": {
"title": "$:/language/ControlPanel/Saving/GitService/Gitea/Password",
"text": "Personal access token for API (via Gitea’s web interface: `Settings | Applications | Generate New Token`)"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Advanced/Heading": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Advanced/Heading",
"text": "Advanced Settings"
},
"$:/language/ControlPanel/Saving/TiddlySpot/BackupDir": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/BackupDir",
"text": "Backup Directory"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Backups": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Backups",
"text": "Backups"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Caption": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Caption",
"text": "~TiddlySpot Saver"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Description": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Description",
"text": "These settings are only used when saving to http://tiddlyspot.com or a compatible remote server"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Filename": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Filename",
"text": "Upload Filename"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Heading": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Heading",
"text": "~TiddlySpot"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Hint": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Hint",
"text": "//The server URL defaults to `http://<wikiname>.tiddlyspot.com/store.cgi` and can be changed to use a custom server address, e.g. `http://example.com/store.php`.//"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Password": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Password",
"text": "Password"
},
"$:/language/ControlPanel/Saving/TiddlySpot/ServerURL": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/ServerURL",
"text": "Server URL"
},
"$:/language/ControlPanel/Saving/TiddlySpot/UploadDir": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/UploadDir",
"text": "Upload Directory"
},
"$:/language/ControlPanel/Saving/TiddlySpot/UserName": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/UserName",
"text": "Wiki Name"
},
"$:/language/ControlPanel/Settings/AutoSave/Caption": {
"title": "$:/language/ControlPanel/Settings/AutoSave/Caption",
"text": "Autosave"
},
"$:/language/ControlPanel/Settings/AutoSave/Disabled/Description": {
"title": "$:/language/ControlPanel/Settings/AutoSave/Disabled/Description",
"text": "Do not save changes automatically"
},
"$:/language/ControlPanel/Settings/AutoSave/Enabled/Description": {
"title": "$:/language/ControlPanel/Settings/AutoSave/Enabled/Description",
"text": "Save changes automatically"
},
"$:/language/ControlPanel/Settings/AutoSave/Hint": {
"title": "$:/language/ControlPanel/Settings/AutoSave/Hint",
"text": "Attempt to automatically save changes during editing when using a supporting saver"
},
"$:/language/ControlPanel/Settings/CamelCase/Caption": {
"title": "$:/language/ControlPanel/Settings/CamelCase/Caption",
"text": "Camel Case Wiki Links"
},
"$:/language/ControlPanel/Settings/CamelCase/Hint": {
"title": "$:/language/ControlPanel/Settings/CamelCase/Hint",
"text": "You can globally disable automatic linking of ~CamelCase phrases. Requires reload to take effect"
},
"$:/language/ControlPanel/Settings/CamelCase/Description": {
"title": "$:/language/ControlPanel/Settings/CamelCase/Description",
"text": "Enable automatic ~CamelCase linking"
},
"$:/language/ControlPanel/Settings/Caption": {
"title": "$:/language/ControlPanel/Settings/Caption",
"text": "Settings"
},
"$:/language/ControlPanel/Settings/EditorToolbar/Caption": {
"title": "$:/language/ControlPanel/Settings/EditorToolbar/Caption",
"text": "Editor Toolbar"
},
"$:/language/ControlPanel/Settings/EditorToolbar/Hint": {
"title": "$:/language/ControlPanel/Settings/EditorToolbar/Hint",
"text": "Enable or disable the editor toolbar:"
},
"$:/language/ControlPanel/Settings/EditorToolbar/Description": {
"title": "$:/language/ControlPanel/Settings/EditorToolbar/Description",
"text": "Show editor toolbar"
},
"$:/language/ControlPanel/Settings/InfoPanelMode/Caption": {
"title": "$:/language/ControlPanel/Settings/InfoPanelMode/Caption",
"text": "Tiddler Info Panel Mode"
},
"$:/language/ControlPanel/Settings/InfoPanelMode/Hint": {
"title": "$:/language/ControlPanel/Settings/InfoPanelMode/Hint",
"text": "Control when the tiddler info panel closes:"
},
"$:/language/ControlPanel/Settings/InfoPanelMode/Popup/Description": {
"title": "$:/language/ControlPanel/Settings/InfoPanelMode/Popup/Description",
"text": "Tiddler info panel closes automatically"
},
"$:/language/ControlPanel/Settings/InfoPanelMode/Sticky/Description": {
"title": "$:/language/ControlPanel/Settings/InfoPanelMode/Sticky/Description",
"text": "Tiddler info panel stays open until explicitly closed"
},
"$:/language/ControlPanel/Settings/Hint": {
"title": "$:/language/ControlPanel/Settings/Hint",
"text": "These settings let you customise the behaviour of TiddlyWiki."
},
"$:/language/ControlPanel/Settings/NavigationAddressBar/Caption": {
"title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Caption",
"text": "Navigation Address Bar"
},
"$:/language/ControlPanel/Settings/NavigationAddressBar/Hint": {
"title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Hint",
"text": "Behaviour of the browser address bar when navigating to a tiddler:"
},
"$:/language/ControlPanel/Settings/NavigationAddressBar/No/Description": {
"title": "$:/language/ControlPanel/Settings/NavigationAddressBar/No/Description",
"text": "Do not update the address bar"
},
"$:/language/ControlPanel/Settings/NavigationAddressBar/Permalink/Description": {
"title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Permalink/Description",
"text": "Include the target tiddler"
},
"$:/language/ControlPanel/Settings/NavigationAddressBar/Permaview/Description": {
"title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Permaview/Description",
"text": "Include the target tiddler and the current story sequence"
},
"$:/language/ControlPanel/Settings/NavigationHistory/Caption": {
"title": "$:/language/ControlPanel/Settings/NavigationHistory/Caption",
"text": "Navigation History"
},
"$:/language/ControlPanel/Settings/NavigationHistory/Hint": {
"title": "$:/language/ControlPanel/Settings/NavigationHistory/Hint",
"text": "Update browser history when navigating to a tiddler:"
},
"$:/language/ControlPanel/Settings/NavigationHistory/No/Description": {
"title": "$:/language/ControlPanel/Settings/NavigationHistory/No/Description",
"text": "Do not update history"
},
"$:/language/ControlPanel/Settings/NavigationHistory/Yes/Description": {
"title": "$:/language/ControlPanel/Settings/NavigationHistory/Yes/Description",
"text": "Update history"
},
"$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/Caption": {
"title": "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/Caption",
"text": "Permalink/permaview Mode"
},
"$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/Hint": {
"title": "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/Hint",
"text": "Choose how permalink/permaview is handled:"
},
"$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/CopyToClipboard/Description": {
"title": "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/CopyToClipboard/Description",
"text": "Copy permalink/permaview URL to clipboard"
},
"$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/UpdateAddressBar/Description": {
"title": "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/UpdateAddressBar/Description",
"text": "Update address bar with permalink/permaview URL"
},
"$:/language/ControlPanel/Settings/PerformanceInstrumentation/Caption": {
"title": "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Caption",
"text": "Performance Instrumentation"
},
"$:/language/ControlPanel/Settings/PerformanceInstrumentation/Hint": {
"title": "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Hint",
"text": "Displays performance statistics in the browser developer console. Requires reload to take effect"
},
"$:/language/ControlPanel/Settings/PerformanceInstrumentation/Description": {
"title": "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Description",
"text": "Enable performance instrumentation"
},
"$:/language/ControlPanel/Settings/ToolbarButtonStyle/Caption": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Caption",
"text": "Toolbar Button Style"
},
"$:/language/ControlPanel/Settings/ToolbarButtonStyle/Hint": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Hint",
"text": "Choose the style for toolbar buttons:"
},
"$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Borderless": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Borderless",
"text": "Borderless"
},
"$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Boxed": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Boxed",
"text": "Boxed"
},
"$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Rounded": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Rounded",
"text": "Rounded"
},
"$:/language/ControlPanel/Settings/ToolbarButtons/Caption": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtons/Caption",
"text": "Toolbar Buttons"
},
"$:/language/ControlPanel/Settings/ToolbarButtons/Hint": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtons/Hint",
"text": "Default toolbar button appearance:"
},
"$:/language/ControlPanel/Settings/ToolbarButtons/Icons/Description": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtons/Icons/Description",
"text": "Include icon"
},
"$:/language/ControlPanel/Settings/ToolbarButtons/Text/Description": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtons/Text/Description",
"text": "Include text"
},
"$:/language/ControlPanel/Settings/DefaultSidebarTab/Caption": {
"title": "$:/language/ControlPanel/Settings/DefaultSidebarTab/Caption",
"text": "Default Sidebar Tab"
},
"$:/language/ControlPanel/Settings/DefaultSidebarTab/Hint": {
"title": "$:/language/ControlPanel/Settings/DefaultSidebarTab/Hint",
"text": "Specify which sidebar tab is displayed by default"
},
"$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Caption": {
"title": "$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Caption",
"text": "Default More Sidebar Tab"
},
"$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Hint": {
"title": "$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Hint",
"text": "Specify which More sidebar tab is displayed by default"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/Caption": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/Caption",
"text": "Tiddler Opening Behaviour"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/InsideRiver/Hint": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/InsideRiver/Hint",
"text": "Navigation from //within// the story river"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/OutsideRiver/Hint": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OutsideRiver/Hint",
"text": "Navigation from //outside// the story river"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAbove": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAbove",
"text": "Open above the current tiddler"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/OpenBelow": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenBelow",
"text": "Open below the current tiddler"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtTop": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtTop",
"text": "Open at the top of the story river"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtBottom": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtBottom",
"text": "Open at the bottom of the story river"
},
"$:/language/ControlPanel/Settings/TitleLinks/Caption": {
"title": "$:/language/ControlPanel/Settings/TitleLinks/Caption",
"text": "Tiddler Titles"
},
"$:/language/ControlPanel/Settings/TitleLinks/Hint": {
"title": "$:/language/ControlPanel/Settings/TitleLinks/Hint",
"text": "Optionally display tiddler titles as links"
},
"$:/language/ControlPanel/Settings/TitleLinks/No/Description": {
"title": "$:/language/ControlPanel/Settings/TitleLinks/No/Description",
"text": "Do not display tiddler titles as links"
},
"$:/language/ControlPanel/Settings/TitleLinks/Yes/Description": {
"title": "$:/language/ControlPanel/Settings/TitleLinks/Yes/Description",
"text": "Display tiddler titles as links"
},
"$:/language/ControlPanel/Settings/MissingLinks/Caption": {
"title": "$:/language/ControlPanel/Settings/MissingLinks/Caption",
"text": "Wiki Links"
},
"$:/language/ControlPanel/Settings/MissingLinks/Hint": {
"title": "$:/language/ControlPanel/Settings/MissingLinks/Hint",
"text": "Choose whether to link to tiddlers that do not exist yet"
},
"$:/language/ControlPanel/Settings/MissingLinks/Description": {
"title": "$:/language/ControlPanel/Settings/MissingLinks/Description",
"text": "Enable links to missing tiddlers"
},
"$:/language/ControlPanel/StoryView/Caption": {
"title": "$:/language/ControlPanel/StoryView/Caption",
"text": "Story View"
},
"$:/language/ControlPanel/StoryView/Prompt": {
"title": "$:/language/ControlPanel/StoryView/Prompt",
"text": "Current view:"
},
"$:/language/ControlPanel/Stylesheets/Caption": {
"title": "$:/language/ControlPanel/Stylesheets/Caption",
"text": "Stylesheets"
},
"$:/language/ControlPanel/Stylesheets/Expand/Caption": {
"title": "$:/language/ControlPanel/Stylesheets/Expand/Caption",
"text": "Expand All"
},
"$:/language/ControlPanel/Stylesheets/Hint": {
"title": "$:/language/ControlPanel/Stylesheets/Hint",
"text": "This is the rendered CSS of the current stylesheet tiddlers tagged with <<tag \"$:/tags/Stylesheet\">>"
},
"$:/language/ControlPanel/Stylesheets/Restore/Caption": {
"title": "$:/language/ControlPanel/Stylesheets/Restore/Caption",
"text": "Restore"
},
"$:/language/ControlPanel/Theme/Caption": {
"title": "$:/language/ControlPanel/Theme/Caption",
"text": "Theme"
},
"$:/language/ControlPanel/Theme/Prompt": {
"title": "$:/language/ControlPanel/Theme/Prompt",
"text": "Current theme:"
},
"$:/language/ControlPanel/TiddlerFields/Caption": {
"title": "$:/language/ControlPanel/TiddlerFields/Caption",
"text": "Tiddler Fields"
},
"$:/language/ControlPanel/TiddlerFields/Hint": {
"title": "$:/language/ControlPanel/TiddlerFields/Hint",
"text": "This is the full set of TiddlerFields in use in this wiki (including system tiddlers but excluding shadow tiddlers)."
},
"$:/language/ControlPanel/Toolbars/Caption": {
"title": "$:/language/ControlPanel/Toolbars/Caption",
"text": "Toolbars"
},
"$:/language/ControlPanel/Toolbars/EditToolbar/Caption": {
"title": "$:/language/ControlPanel/Toolbars/EditToolbar/Caption",
"text": "Edit Toolbar"
},
"$:/language/ControlPanel/Toolbars/EditToolbar/Hint": {
"title": "$:/language/ControlPanel/Toolbars/EditToolbar/Hint",
"text": "Choose which buttons are displayed for tiddlers in edit mode. Drag and drop to change the ordering"
},
"$:/language/ControlPanel/Toolbars/Hint": {
"title": "$:/language/ControlPanel/Toolbars/Hint",
"text": "Select which toolbar buttons are displayed"
},
"$:/language/ControlPanel/Toolbars/PageControls/Caption": {
"title": "$:/language/ControlPanel/Toolbars/PageControls/Caption",
"text": "Page Toolbar"
},
"$:/language/ControlPanel/Toolbars/PageControls/Hint": {
"title": "$:/language/ControlPanel/Toolbars/PageControls/Hint",
"text": "Choose which buttons are displayed on the main page toolbar. Drag and drop to change the ordering"
},
"$:/language/ControlPanel/Toolbars/EditorToolbar/Caption": {
"title": "$:/language/ControlPanel/Toolbars/EditorToolbar/Caption",
"text": "Editor Toolbar"
},
"$:/language/ControlPanel/Toolbars/EditorToolbar/Hint": {
"title": "$:/language/ControlPanel/Toolbars/EditorToolbar/Hint",
"text": "Choose which buttons are displayed in the editor toolbar. Note that some buttons will only appear when editing tiddlers of a certain type. Drag and drop to change the ordering"
},
"$:/language/ControlPanel/Toolbars/ViewToolbar/Caption": {
"title": "$:/language/ControlPanel/Toolbars/ViewToolbar/Caption",
"text": "View Toolbar"
},
"$:/language/ControlPanel/Toolbars/ViewToolbar/Hint": {
"title": "$:/language/ControlPanel/Toolbars/ViewToolbar/Hint",
"text": "Choose which buttons are displayed for tiddlers in view mode. Drag and drop to change the ordering"
},
"$:/language/ControlPanel/Tools/Download/Full/Caption": {
"title": "$:/language/ControlPanel/Tools/Download/Full/Caption",
"text": "Download full wiki"
},
"$:/language/Date/DaySuffix/1": {
"title": "$:/language/Date/DaySuffix/1",
"text": "st"
},
"$:/language/Date/DaySuffix/2": {
"title": "$:/language/Date/DaySuffix/2",
"text": "nd"
},
"$:/language/Date/DaySuffix/3": {
"title": "$:/language/Date/DaySuffix/3",
"text": "rd"
},
"$:/language/Date/DaySuffix/4": {
"title": "$:/language/Date/DaySuffix/4",
"text": "th"
},
"$:/language/Date/DaySuffix/5": {
"title": "$:/language/Date/DaySuffix/5",
"text": "th"
},
"$:/language/Date/DaySuffix/6": {
"title": "$:/language/Date/DaySuffix/6",
"text": "th"
},
"$:/language/Date/DaySuffix/7": {
"title": "$:/language/Date/DaySuffix/7",
"text": "th"
},
"$:/language/Date/DaySuffix/8": {
"title": "$:/language/Date/DaySuffix/8",
"text": "th"
},
"$:/language/Date/DaySuffix/9": {
"title": "$:/language/Date/DaySuffix/9",
"text": "th"
},
"$:/language/Date/DaySuffix/10": {
"title": "$:/language/Date/DaySuffix/10",
"text": "th"
},
"$:/language/Date/DaySuffix/11": {
"title": "$:/language/Date/DaySuffix/11",
"text": "th"
},
"$:/language/Date/DaySuffix/12": {
"title": "$:/language/Date/DaySuffix/12",
"text": "th"
},
"$:/language/Date/DaySuffix/13": {
"title": "$:/language/Date/DaySuffix/13",
"text": "th"
},
"$:/language/Date/DaySuffix/14": {
"title": "$:/language/Date/DaySuffix/14",
"text": "th"
},
"$:/language/Date/DaySuffix/15": {
"title": "$:/language/Date/DaySuffix/15",
"text": "th"
},
"$:/language/Date/DaySuffix/16": {
"title": "$:/language/Date/DaySuffix/16",
"text": "th"
},
"$:/language/Date/DaySuffix/17": {
"title": "$:/language/Date/DaySuffix/17",
"text": "th"
},
"$:/language/Date/DaySuffix/18": {
"title": "$:/language/Date/DaySuffix/18",
"text": "th"
},
"$:/language/Date/DaySuffix/19": {
"title": "$:/language/Date/DaySuffix/19",
"text": "th"
},
"$:/language/Date/DaySuffix/20": {
"title": "$:/language/Date/DaySuffix/20",
"text": "th"
},
"$:/language/Date/DaySuffix/21": {
"title": "$:/language/Date/DaySuffix/21",
"text": "st"
},
"$:/language/Date/DaySuffix/22": {
"title": "$:/language/Date/DaySuffix/22",
"text": "nd"
},
"$:/language/Date/DaySuffix/23": {
"title": "$:/language/Date/DaySuffix/23",
"text": "rd"
},
"$:/language/Date/DaySuffix/24": {
"title": "$:/language/Date/DaySuffix/24",
"text": "th"
},
"$:/language/Date/DaySuffix/25": {
"title": "$:/language/Date/DaySuffix/25",
"text": "th"
},
"$:/language/Date/DaySuffix/26": {
"title": "$:/language/Date/DaySuffix/26",
"text": "th"
},
"$:/language/Date/DaySuffix/27": {
"title": "$:/language/Date/DaySuffix/27",
"text": "th"
},
"$:/language/Date/DaySuffix/28": {
"title": "$:/language/Date/DaySuffix/28",
"text": "th"
},
"$:/language/Date/DaySuffix/29": {
"title": "$:/language/Date/DaySuffix/29",
"text": "th"
},
"$:/language/Date/DaySuffix/30": {
"title": "$:/language/Date/DaySuffix/30",
"text": "th"
},
"$:/language/Date/DaySuffix/31": {
"title": "$:/language/Date/DaySuffix/31",
"text": "st"
},
"$:/language/Date/Long/Day/0": {
"title": "$:/language/Date/Long/Day/0",
"text": "Sunday"
},
"$:/language/Date/Long/Day/1": {
"title": "$:/language/Date/Long/Day/1",
"text": "Monday"
},
"$:/language/Date/Long/Day/2": {
"title": "$:/language/Date/Long/Day/2",
"text": "Tuesday"
},
"$:/language/Date/Long/Day/3": {
"title": "$:/language/Date/Long/Day/3",
"text": "Wednesday"
},
"$:/language/Date/Long/Day/4": {
"title": "$:/language/Date/Long/Day/4",
"text": "Thursday"
},
"$:/language/Date/Long/Day/5": {
"title": "$:/language/Date/Long/Day/5",
"text": "Friday"
},
"$:/language/Date/Long/Day/6": {
"title": "$:/language/Date/Long/Day/6",
"text": "Saturday"
},
"$:/language/Date/Long/Month/1": {
"title": "$:/language/Date/Long/Month/1",
"text": "January"
},
"$:/language/Date/Long/Month/2": {
"title": "$:/language/Date/Long/Month/2",
"text": "February"
},
"$:/language/Date/Long/Month/3": {
"title": "$:/language/Date/Long/Month/3",
"text": "March"
},
"$:/language/Date/Long/Month/4": {
"title": "$:/language/Date/Long/Month/4",
"text": "April"
},
"$:/language/Date/Long/Month/5": {
"title": "$:/language/Date/Long/Month/5",
"text": "May"
},
"$:/language/Date/Long/Month/6": {
"title": "$:/language/Date/Long/Month/6",
"text": "June"
},
"$:/language/Date/Long/Month/7": {
"title": "$:/language/Date/Long/Month/7",
"text": "July"
},
"$:/language/Date/Long/Month/8": {
"title": "$:/language/Date/Long/Month/8",
"text": "August"
},
"$:/language/Date/Long/Month/9": {
"title": "$:/language/Date/Long/Month/9",
"text": "September"
},
"$:/language/Date/Long/Month/10": {
"title": "$:/language/Date/Long/Month/10",
"text": "October"
},
"$:/language/Date/Long/Month/11": {
"title": "$:/language/Date/Long/Month/11",
"text": "November"
},
"$:/language/Date/Long/Month/12": {
"title": "$:/language/Date/Long/Month/12",
"text": "December"
},
"$:/language/Date/Period/am": {
"title": "$:/language/Date/Period/am",
"text": "am"
},
"$:/language/Date/Period/pm": {
"title": "$:/language/Date/Period/pm",
"text": "pm"
},
"$:/language/Date/Short/Day/0": {
"title": "$:/language/Date/Short/Day/0",
"text": "Sun"
},
"$:/language/Date/Short/Day/1": {
"title": "$:/language/Date/Short/Day/1",
"text": "Mon"
},
"$:/language/Date/Short/Day/2": {
"title": "$:/language/Date/Short/Day/2",
"text": "Tue"
},
"$:/language/Date/Short/Day/3": {
"title": "$:/language/Date/Short/Day/3",
"text": "Wed"
},
"$:/language/Date/Short/Day/4": {
"title": "$:/language/Date/Short/Day/4",
"text": "Thu"
},
"$:/language/Date/Short/Day/5": {
"title": "$:/language/Date/Short/Day/5",
"text": "Fri"
},
"$:/language/Date/Short/Day/6": {
"title": "$:/language/Date/Short/Day/6",
"text": "Sat"
},
"$:/language/Date/Short/Month/1": {
"title": "$:/language/Date/Short/Month/1",
"text": "Jan"
},
"$:/language/Date/Short/Month/2": {
"title": "$:/language/Date/Short/Month/2",
"text": "Feb"
},
"$:/language/Date/Short/Month/3": {
"title": "$:/language/Date/Short/Month/3",
"text": "Mar"
},
"$:/language/Date/Short/Month/4": {
"title": "$:/language/Date/Short/Month/4",
"text": "Apr"
},
"$:/language/Date/Short/Month/5": {
"title": "$:/language/Date/Short/Month/5",
"text": "May"
},
"$:/language/Date/Short/Month/6": {
"title": "$:/language/Date/Short/Month/6",
"text": "Jun"
},
"$:/language/Date/Short/Month/7": {
"title": "$:/language/Date/Short/Month/7",
"text": "Jul"
},
"$:/language/Date/Short/Month/8": {
"title": "$:/language/Date/Short/Month/8",
"text": "Aug"
},
"$:/language/Date/Short/Month/9": {
"title": "$:/language/Date/Short/Month/9",
"text": "Sep"
},
"$:/language/Date/Short/Month/10": {
"title": "$:/language/Date/Short/Month/10",
"text": "Oct"
},
"$:/language/Date/Short/Month/11": {
"title": "$:/language/Date/Short/Month/11",
"text": "Nov"
},
"$:/language/Date/Short/Month/12": {
"title": "$:/language/Date/Short/Month/12",
"text": "Dec"
},
"$:/language/RelativeDate/Future/Days": {
"title": "$:/language/RelativeDate/Future/Days",
"text": "<<period>> days from now"
},
"$:/language/RelativeDate/Future/Hours": {
"title": "$:/language/RelativeDate/Future/Hours",
"text": "<<period>> hours from now"
},
"$:/language/RelativeDate/Future/Minutes": {
"title": "$:/language/RelativeDate/Future/Minutes",
"text": "<<period>> minutes from now"
},
"$:/language/RelativeDate/Future/Months": {
"title": "$:/language/RelativeDate/Future/Months",
"text": "<<period>> months from now"
},
"$:/language/RelativeDate/Future/Second": {
"title": "$:/language/RelativeDate/Future/Second",
"text": "1 second from now"
},
"$:/language/RelativeDate/Future/Seconds": {
"title": "$:/language/RelativeDate/Future/Seconds",
"text": "<<period>> seconds from now"
},
"$:/language/RelativeDate/Future/Years": {
"title": "$:/language/RelativeDate/Future/Years",
"text": "<<period>> years from now"
},
"$:/language/RelativeDate/Past/Days": {
"title": "$:/language/RelativeDate/Past/Days",
"text": "<<period>> days ago"
},
"$:/language/RelativeDate/Past/Hours": {
"title": "$:/language/RelativeDate/Past/Hours",
"text": "<<period>> hours ago"
},
"$:/language/RelativeDate/Past/Minutes": {
"title": "$:/language/RelativeDate/Past/Minutes",
"text": "<<period>> minutes ago"
},
"$:/language/RelativeDate/Past/Months": {
"title": "$:/language/RelativeDate/Past/Months",
"text": "<<period>> months ago"
},
"$:/language/RelativeDate/Past/Second": {
"title": "$:/language/RelativeDate/Past/Second",
"text": "1 second ago"
},
"$:/language/RelativeDate/Past/Seconds": {
"title": "$:/language/RelativeDate/Past/Seconds",
"text": "<<period>> seconds ago"
},
"$:/language/RelativeDate/Past/Years": {
"title": "$:/language/RelativeDate/Past/Years",
"text": "<<period>> years ago"
},
"$:/language/Docs/ModuleTypes/allfilteroperator": {
"title": "$:/language/Docs/ModuleTypes/allfilteroperator",
"text": "A sub-operator for the ''all'' filter operator."
},
"$:/language/Docs/ModuleTypes/animation": {
"title": "$:/language/Docs/ModuleTypes/animation",
"text": "Animations that may be used with the RevealWidget."
},
"$:/language/Docs/ModuleTypes/authenticator": {
"title": "$:/language/Docs/ModuleTypes/authenticator",
"text": "Defines how requests are authenticated by the built-in HTTP server."
},
"$:/language/Docs/ModuleTypes/bitmapeditoroperation": {
"title": "$:/language/Docs/ModuleTypes/bitmapeditoroperation",
"text": "A bitmap editor toolbar operation."
},
"$:/language/Docs/ModuleTypes/command": {
"title": "$:/language/Docs/ModuleTypes/command",
"text": "Commands that can be executed under Node.js."
},
"$:/language/Docs/ModuleTypes/config": {
"title": "$:/language/Docs/ModuleTypes/config",
"text": "Data to be inserted into `$tw.config`."
},
"$:/language/Docs/ModuleTypes/filteroperator": {
"title": "$:/language/Docs/ModuleTypes/filteroperator",
"text": "Individual filter operator methods."
},
"$:/language/Docs/ModuleTypes/global": {
"title": "$:/language/Docs/ModuleTypes/global",
"text": "Global data to be inserted into `$tw`."
},
"$:/language/Docs/ModuleTypes/info": {
"title": "$:/language/Docs/ModuleTypes/info",
"text": "Publishes system information via the [[$:/temp/info-plugin]] pseudo-plugin."
},
"$:/language/Docs/ModuleTypes/isfilteroperator": {
"title": "$:/language/Docs/ModuleTypes/isfilteroperator",
"text": "Operands for the ''is'' filter operator."
},
"$:/language/Docs/ModuleTypes/library": {
"title": "$:/language/Docs/ModuleTypes/library",
"text": "Generic module type for general purpose JavaScript modules."
},
"$:/language/Docs/ModuleTypes/macro": {
"title": "$:/language/Docs/ModuleTypes/macro",
"text": "JavaScript macro definitions."
},
"$:/language/Docs/ModuleTypes/parser": {
"title": "$:/language/Docs/ModuleTypes/parser",
"text": "Parsers for different content types."
},
"$:/language/Docs/ModuleTypes/route": {
"title": "$:/language/Docs/ModuleTypes/route",
"text": "Defines how individual URL patterns are handled by the built-in HTTP server."
},
"$:/language/Docs/ModuleTypes/saver": {
"title": "$:/language/Docs/ModuleTypes/saver",
"text": "Savers handle different methods for saving files from the browser."
},
"$:/language/Docs/ModuleTypes/startup": {
"title": "$:/language/Docs/ModuleTypes/startup",
"text": "Startup functions."
},
"$:/language/Docs/ModuleTypes/storyview": {
"title": "$:/language/Docs/ModuleTypes/storyview",
"text": "Story views customise the animation and behaviour of list widgets."
},
"$:/language/Docs/ModuleTypes/texteditoroperation": {
"title": "$:/language/Docs/ModuleTypes/texteditoroperation",
"text": "A text editor toolbar operation."
},
"$:/language/Docs/ModuleTypes/tiddlerdeserializer": {
"title": "$:/language/Docs/ModuleTypes/tiddlerdeserializer",
"text": "Converts different content types into tiddlers."
},
"$:/language/Docs/ModuleTypes/tiddlerfield": {
"title": "$:/language/Docs/ModuleTypes/tiddlerfield",
"text": "Defines the behaviour of an individual tiddler field."
},
"$:/language/Docs/ModuleTypes/tiddlermethod": {
"title": "$:/language/Docs/ModuleTypes/tiddlermethod",
"text": "Adds methods to the `$tw.Tiddler` prototype."
},
"$:/language/Docs/ModuleTypes/upgrader": {
"title": "$:/language/Docs/ModuleTypes/upgrader",
"text": "Applies upgrade processing to tiddlers during an upgrade/import."
},
"$:/language/Docs/ModuleTypes/utils": {
"title": "$:/language/Docs/ModuleTypes/utils",
"text": "Adds methods to `$tw.utils`."
},
"$:/language/Docs/ModuleTypes/utils-node": {
"title": "$:/language/Docs/ModuleTypes/utils-node",
"text": "Adds Node.js-specific methods to `$tw.utils`."
},
"$:/language/Docs/ModuleTypes/widget": {
"title": "$:/language/Docs/ModuleTypes/widget",
"text": "Widgets encapsulate DOM rendering and refreshing."
},
"$:/language/Docs/ModuleTypes/wikimethod": {
"title": "$:/language/Docs/ModuleTypes/wikimethod",
"text": "Adds methods to `$tw.Wiki`."
},
"$:/language/Docs/ModuleTypes/wikirule": {
"title": "$:/language/Docs/ModuleTypes/wikirule",
"text": "Individual parser rules for the main WikiText parser."
},
"$:/language/Docs/PaletteColours/alert-background": {
"title": "$:/language/Docs/PaletteColours/alert-background",
"text": "Alert background"
},
"$:/language/Docs/PaletteColours/alert-border": {
"title": "$:/language/Docs/PaletteColours/alert-border",
"text": "Alert border"
},
"$:/language/Docs/PaletteColours/alert-highlight": {
"title": "$:/language/Docs/PaletteColours/alert-highlight",
"text": "Alert highlight"
},
"$:/language/Docs/PaletteColours/alert-muted-foreground": {
"title": "$:/language/Docs/PaletteColours/alert-muted-foreground",
"text": "Alert muted foreground"
},
"$:/language/Docs/PaletteColours/background": {
"title": "$:/language/Docs/PaletteColours/background",
"text": "General background"
},
"$:/language/Docs/PaletteColours/blockquote-bar": {
"title": "$:/language/Docs/PaletteColours/blockquote-bar",
"text": "Blockquote bar"
},
"$:/language/Docs/PaletteColours/button-background": {
"title": "$:/language/Docs/PaletteColours/button-background",
"text": "Default button background"
},
"$:/language/Docs/PaletteColours/button-border": {
"title": "$:/language/Docs/PaletteColours/button-border",
"text": "Default button border"
},
"$:/language/Docs/PaletteColours/button-foreground": {
"title": "$:/language/Docs/PaletteColours/button-foreground",
"text": "Default button foreground"
},
"$:/language/Docs/PaletteColours/dirty-indicator": {
"title": "$:/language/Docs/PaletteColours/dirty-indicator",
"text": "Unsaved changes indicator"
},
"$:/language/Docs/PaletteColours/code-background": {
"title": "$:/language/Docs/PaletteColours/code-background",
"text": "Code background"
},
"$:/language/Docs/PaletteColours/code-border": {
"title": "$:/language/Docs/PaletteColours/code-border",
"text": "Code border"
},
"$:/language/Docs/PaletteColours/code-foreground": {
"title": "$:/language/Docs/PaletteColours/code-foreground",
"text": "Code foreground"
},
"$:/language/Docs/PaletteColours/download-background": {
"title": "$:/language/Docs/PaletteColours/download-background",
"text": "Download button background"
},
"$:/language/Docs/PaletteColours/download-foreground": {
"title": "$:/language/Docs/PaletteColours/download-foreground",
"text": "Download button foreground"
},
"$:/language/Docs/PaletteColours/dragger-background": {
"title": "$:/language/Docs/PaletteColours/dragger-background",
"text": "Dragger background"
},
"$:/language/Docs/PaletteColours/dragger-foreground": {
"title": "$:/language/Docs/PaletteColours/dragger-foreground",
"text": "Dragger foreground"
},
"$:/language/Docs/PaletteColours/dropdown-background": {
"title": "$:/language/Docs/PaletteColours/dropdown-background",
"text": "Dropdown background"
},
"$:/language/Docs/PaletteColours/dropdown-border": {
"title": "$:/language/Docs/PaletteColours/dropdown-border",
"text": "Dropdown border"
},
"$:/language/Docs/PaletteColours/dropdown-tab-background-selected": {
"title": "$:/language/Docs/PaletteColours/dropdown-tab-background-selected",
"text": "Dropdown tab background for selected tabs"
},
"$:/language/Docs/PaletteColours/dropdown-tab-background": {
"title": "$:/language/Docs/PaletteColours/dropdown-tab-background",
"text": "Dropdown tab background"
},
"$:/language/Docs/PaletteColours/dropzone-background": {
"title": "$:/language/Docs/PaletteColours/dropzone-background",
"text": "Dropzone background"
},
"$:/language/Docs/PaletteColours/external-link-background-hover": {
"title": "$:/language/Docs/PaletteColours/external-link-background-hover",
"text": "External link background hover"
},
"$:/language/Docs/PaletteColours/external-link-background-visited": {
"title": "$:/language/Docs/PaletteColours/external-link-background-visited",
"text": "External link background visited"
},
"$:/language/Docs/PaletteColours/external-link-background": {
"title": "$:/language/Docs/PaletteColours/external-link-background",
"text": "External link background"
},
"$:/language/Docs/PaletteColours/external-link-foreground-hover": {
"title": "$:/language/Docs/PaletteColours/external-link-foreground-hover",
"text": "External link foreground hover"
},
"$:/language/Docs/PaletteColours/external-link-foreground-visited": {
"title": "$:/language/Docs/PaletteColours/external-link-foreground-visited",
"text": "External link foreground visited"
},
"$:/language/Docs/PaletteColours/external-link-foreground": {
"title": "$:/language/Docs/PaletteColours/external-link-foreground",
"text": "External link foreground"
},
"$:/language/Docs/PaletteColours/foreground": {
"title": "$:/language/Docs/PaletteColours/foreground",
"text": "General foreground"
},
"$:/language/Docs/PaletteColours/menubar-background": {
"title": "$:/language/Docs/PaletteColours/menubar-background",
"text": "Menu bar background"
},
"$:/language/Docs/PaletteColours/menubar-foreground": {
"title": "$:/language/Docs/PaletteColours/menubar-foreground",
"text": "Menu bar foreground"
},
"$:/language/Docs/PaletteColours/message-background": {
"title": "$:/language/Docs/PaletteColours/message-background",
"text": "Message box background"
},
"$:/language/Docs/PaletteColours/message-border": {
"title": "$:/language/Docs/PaletteColours/message-border",
"text": "Message box border"
},
"$:/language/Docs/PaletteColours/message-foreground": {
"title": "$:/language/Docs/PaletteColours/message-foreground",
"text": "Message box foreground"
},
"$:/language/Docs/PaletteColours/modal-backdrop": {
"title": "$:/language/Docs/PaletteColours/modal-backdrop",
"text": "Modal backdrop"
},
"$:/language/Docs/PaletteColours/modal-background": {
"title": "$:/language/Docs/PaletteColours/modal-background",
"text": "Modal background"
},
"$:/language/Docs/PaletteColours/modal-border": {
"title": "$:/language/Docs/PaletteColours/modal-border",
"text": "Modal border"
},
"$:/language/Docs/PaletteColours/modal-footer-background": {
"title": "$:/language/Docs/PaletteColours/modal-footer-background",
"text": "Modal footer background"
},
"$:/language/Docs/PaletteColours/modal-footer-border": {
"title": "$:/language/Docs/PaletteColours/modal-footer-border",
"text": "Modal footer border"
},
"$:/language/Docs/PaletteColours/modal-header-border": {
"title": "$:/language/Docs/PaletteColours/modal-header-border",
"text": "Modal header border"
},
"$:/language/Docs/PaletteColours/muted-foreground": {
"title": "$:/language/Docs/PaletteColours/muted-foreground",
"text": "General muted foreground"
},
"$:/language/Docs/PaletteColours/notification-background": {
"title": "$:/language/Docs/PaletteColours/notification-background",
"text": "Notification background"
},
"$:/language/Docs/PaletteColours/notification-border": {
"title": "$:/language/Docs/PaletteColours/notification-border",
"text": "Notification border"
},
"$:/language/Docs/PaletteColours/page-background": {
"title": "$:/language/Docs/PaletteColours/page-background",
"text": "Page background"
},
"$:/language/Docs/PaletteColours/pre-background": {
"title": "$:/language/Docs/PaletteColours/pre-background",
"text": "Preformatted code background"
},
"$:/language/Docs/PaletteColours/pre-border": {
"title": "$:/language/Docs/PaletteColours/pre-border",
"text": "Preformatted code border"
},
"$:/language/Docs/PaletteColours/primary": {
"title": "$:/language/Docs/PaletteColours/primary",
"text": "General primary"
},
"$:/language/Docs/PaletteColours/select-tag-background": {
"title": "$:/language/Docs/PaletteColours/select-tag-background",
"text": "`<select>` element background"
},
"$:/language/Docs/PaletteColours/select-tag-foreground": {
"title": "$:/language/Docs/PaletteColours/select-tag-foreground",
"text": "`<select>` element text"
},
"$:/language/Docs/PaletteColours/sidebar-button-foreground": {
"title": "$:/language/Docs/PaletteColours/sidebar-button-foreground",
"text": "Sidebar button foreground"
},
"$:/language/Docs/PaletteColours/sidebar-controls-foreground-hover": {
"title": "$:/language/Docs/PaletteColours/sidebar-controls-foreground-hover",
"text": "Sidebar controls foreground hover"
},
"$:/language/Docs/PaletteColours/sidebar-controls-foreground": {
"title": "$:/language/Docs/PaletteColours/sidebar-controls-foreground",
"text": "Sidebar controls foreground"
},
"$:/language/Docs/PaletteColours/sidebar-foreground-shadow": {
"title": "$:/language/Docs/PaletteColours/sidebar-foreground-shadow",
"text": "Sidebar foreground shadow"
},
"$:/language/Docs/PaletteColours/sidebar-foreground": {
"title": "$:/language/Docs/PaletteColours/sidebar-foreground",
"text": "Sidebar foreground"
},
"$:/language/Docs/PaletteColours/sidebar-muted-foreground-hover": {
"title": "$:/language/Docs/PaletteColours/sidebar-muted-foreground-hover",
"text": "Sidebar muted foreground hover"
},
"$:/language/Docs/PaletteColours/sidebar-muted-foreground": {
"title": "$:/language/Docs/PaletteColours/sidebar-muted-foreground",
"text": "Sidebar muted foreground"
},
"$:/language/Docs/PaletteColours/sidebar-tab-background-selected": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-background-selected",
"text": "Sidebar tab background for selected tabs"
},
"$:/language/Docs/PaletteColours/sidebar-tab-background": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-background",
"text": "Sidebar tab background"
},
"$:/language/Docs/PaletteColours/sidebar-tab-border-selected": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-border-selected",
"text": "Sidebar tab border for selected tabs"
},
"$:/language/Docs/PaletteColours/sidebar-tab-border": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-border",
"text": "Sidebar tab border"
},
"$:/language/Docs/PaletteColours/sidebar-tab-divider": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-divider",
"text": "Sidebar tab divider"
},
"$:/language/Docs/PaletteColours/sidebar-tab-foreground-selected": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-foreground-selected",
"text": "Sidebar tab foreground for selected tabs"
},
"$:/language/Docs/PaletteColours/sidebar-tab-foreground": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-foreground",
"text": "Sidebar tab foreground"
},
"$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground-hover": {
"title": "$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground-hover",
"text": "Sidebar tiddler link foreground hover"
},
"$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground": {
"title": "$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground",
"text": "Sidebar tiddler link foreground"
},
"$:/language/Docs/PaletteColours/site-title-foreground": {
"title": "$:/language/Docs/PaletteColours/site-title-foreground",
"text": "Site title foreground"
},
"$:/language/Docs/PaletteColours/static-alert-foreground": {
"title": "$:/language/Docs/PaletteColours/static-alert-foreground",
"text": "Static alert foreground"
},
"$:/language/Docs/PaletteColours/tab-background-selected": {
"title": "$:/language/Docs/PaletteColours/tab-background-selected",
"text": "Tab background for selected tabs"
},
"$:/language/Docs/PaletteColours/tab-background": {
"title": "$:/language/Docs/PaletteColours/tab-background",
"text": "Tab background"
},
"$:/language/Docs/PaletteColours/tab-border-selected": {
"title": "$:/language/Docs/PaletteColours/tab-border-selected",
"text": "Tab border for selected tabs"
},
"$:/language/Docs/PaletteColours/tab-border": {
"title": "$:/language/Docs/PaletteColours/tab-border",
"text": "Tab border"
},
"$:/language/Docs/PaletteColours/tab-divider": {
"title": "$:/language/Docs/PaletteColours/tab-divider",
"text": "Tab divider"
},
"$:/language/Docs/PaletteColours/tab-foreground-selected": {
"title": "$:/language/Docs/PaletteColours/tab-foreground-selected",
"text": "Tab foreground for selected tabs"
},
"$:/language/Docs/PaletteColours/tab-foreground": {
"title": "$:/language/Docs/PaletteColours/tab-foreground",
"text": "Tab foreground"
},
"$:/language/Docs/PaletteColours/table-border": {
"title": "$:/language/Docs/PaletteColours/table-border",
"text": "Table border"
},
"$:/language/Docs/PaletteColours/table-footer-background": {
"title": "$:/language/Docs/PaletteColours/table-footer-background",
"text": "Table footer background"
},
"$:/language/Docs/PaletteColours/table-header-background": {
"title": "$:/language/Docs/PaletteColours/table-header-background",
"text": "Table header background"
},
"$:/language/Docs/PaletteColours/tag-background": {
"title": "$:/language/Docs/PaletteColours/tag-background",
"text": "Tag background"
},
"$:/language/Docs/PaletteColours/tag-foreground": {
"title": "$:/language/Docs/PaletteColours/tag-foreground",
"text": "Tag foreground"
},
"$:/language/Docs/PaletteColours/tiddler-background": {
"title": "$:/language/Docs/PaletteColours/tiddler-background",
"text": "Tiddler background"
},
"$:/language/Docs/PaletteColours/tiddler-border": {
"title": "$:/language/Docs/PaletteColours/tiddler-border",
"text": "Tiddler border"
},
"$:/language/Docs/PaletteColours/tiddler-controls-foreground-hover": {
"title": "$:/language/Docs/PaletteColours/tiddler-controls-foreground-hover",
"text": "Tiddler controls foreground hover"
},
"$:/language/Docs/PaletteColours/tiddler-controls-foreground-selected": {
"title": "$:/language/Docs/PaletteColours/tiddler-controls-foreground-selected",
"text": "Tiddler controls foreground for selected controls"
},
"$:/language/Docs/PaletteColours/tiddler-controls-foreground": {
"title": "$:/language/Docs/PaletteColours/tiddler-controls-foreground",
"text": "Tiddler controls foreground"
},
"$:/language/Docs/PaletteColours/tiddler-editor-background": {
"title": "$:/language/Docs/PaletteColours/tiddler-editor-background",
"text": "Tiddler editor background"
},
"$:/language/Docs/PaletteColours/tiddler-editor-border-image": {
"title": "$:/language/Docs/PaletteColours/tiddler-editor-border-image",
"text": "Tiddler editor border image"
},
"$:/language/Docs/PaletteColours/tiddler-editor-border": {
"title": "$:/language/Docs/PaletteColours/tiddler-editor-border",
"text": "Tiddler editor border"
},
"$:/language/Docs/PaletteColours/tiddler-editor-fields-even": {
"title": "$:/language/Docs/PaletteColours/tiddler-editor-fields-even",
"text": "Tiddler editor background for even fields"
},
"$:/language/Docs/PaletteColours/tiddler-editor-fields-odd": {
"title": "$:/language/Docs/PaletteColours/tiddler-editor-fields-odd",
"text": "Tiddler editor background for odd fields"
},
"$:/language/Docs/PaletteColours/tiddler-info-background": {
"title": "$:/language/Docs/PaletteColours/tiddler-info-background",
"text": "Tiddler info panel background"
},
"$:/language/Docs/PaletteColours/tiddler-info-border": {
"title": "$:/language/Docs/PaletteColours/tiddler-info-border",
"text": "Tiddler info panel border"
},
"$:/language/Docs/PaletteColours/tiddler-info-tab-background": {
"title": "$:/language/Docs/PaletteColours/tiddler-info-tab-background",
"text": "Tiddler info panel tab background"
},
"$:/language/Docs/PaletteColours/tiddler-link-background": {
"title": "$:/language/Docs/PaletteColours/tiddler-link-background",
"text": "Tiddler link background"
},
"$:/language/Docs/PaletteColours/tiddler-link-foreground": {
"title": "$:/language/Docs/PaletteColours/tiddler-link-foreground",
"text": "Tiddler link foreground"
},
"$:/language/Docs/PaletteColours/tiddler-subtitle-foreground": {
"title": "$:/language/Docs/PaletteColours/tiddler-subtitle-foreground",
"text": "Tiddler subtitle foreground"
},
"$:/language/Docs/PaletteColours/tiddler-title-foreground": {
"title": "$:/language/Docs/PaletteColours/tiddler-title-foreground",
"text": "Tiddler title foreground"
},
"$:/language/Docs/PaletteColours/toolbar-new-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-new-button",
"text": "Toolbar 'new tiddler' button foreground"
},
"$:/language/Docs/PaletteColours/toolbar-options-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-options-button",
"text": "Toolbar 'options' button foreground"
},
"$:/language/Docs/PaletteColours/toolbar-save-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-save-button",
"text": "Toolbar 'save' button foreground"
},
"$:/language/Docs/PaletteColours/toolbar-info-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-info-button",
"text": "Toolbar 'info' button foreground"
},
"$:/language/Docs/PaletteColours/toolbar-edit-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-edit-button",
"text": "Toolbar 'edit' button foreground"
},
"$:/language/Docs/PaletteColours/toolbar-close-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-close-button",
"text": "Toolbar 'close' button foreground"
},
"$:/language/Docs/PaletteColours/toolbar-delete-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-delete-button",
"text": "Toolbar 'delete' button foreground"
},
"$:/language/Docs/PaletteColours/toolbar-cancel-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-cancel-button",
"text": "Toolbar 'cancel' button foreground"
},
"$:/language/Docs/PaletteColours/toolbar-done-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-done-button",
"text": "Toolbar 'done' button foreground"
},
"$:/language/Docs/PaletteColours/untagged-background": {
"title": "$:/language/Docs/PaletteColours/untagged-background",
"text": "Untagged pill background"
},
"$:/language/Docs/PaletteColours/very-muted-foreground": {
"title": "$:/language/Docs/PaletteColours/very-muted-foreground",
"text": "Very muted foreground"
},
"$:/language/EditTemplate/Body/External/Hint": {
"title": "$:/language/EditTemplate/Body/External/Hint",
"text": "This tiddler shows content stored outside of the main TiddlyWiki file. You can edit the tags and fields but cannot directly edit the content itself"
},
"$:/language/EditTemplate/Body/Placeholder": {
"title": "$:/language/EditTemplate/Body/Placeholder",
"text": "Type the text for this tiddler"
},
"$:/language/EditTemplate/Body/Preview/Type/Output": {
"title": "$:/language/EditTemplate/Body/Preview/Type/Output",
"text": "output"
},
"$:/language/EditTemplate/Field/Remove/Caption": {
"title": "$:/language/EditTemplate/Field/Remove/Caption",
"text": "remove field"
},
"$:/language/EditTemplate/Field/Remove/Hint": {
"title": "$:/language/EditTemplate/Field/Remove/Hint",
"text": "Remove field"
},
"$:/language/EditTemplate/Field/Dropdown/Caption": {
"title": "$:/language/EditTemplate/Field/Dropdown/Caption",
"text": "field list"
},
"$:/language/EditTemplate/Field/Dropdown/Hint": {
"title": "$:/language/EditTemplate/Field/Dropdown/Hint",
"text": "Show field list"
},
"$:/language/EditTemplate/Fields/Add/Button": {
"title": "$:/language/EditTemplate/Fields/Add/Button",
"text": "add"
},
"$:/language/EditTemplate/Fields/Add/Button/Hint": {
"title": "$:/language/EditTemplate/Fields/Add/Button/Hint",
"text": "Add the new field to the tiddler"
},
"$:/language/EditTemplate/Fields/Add/Name/Placeholder": {
"title": "$:/language/EditTemplate/Fields/Add/Name/Placeholder",
"text": "field name"
},
"$:/language/EditTemplate/Fields/Add/Prompt": {
"title": "$:/language/EditTemplate/Fields/Add/Prompt",
"text": "Add a new field:"
},
"$:/language/EditTemplate/Fields/Add/Value/Placeholder": {
"title": "$:/language/EditTemplate/Fields/Add/Value/Placeholder",
"text": "field value"
},
"$:/language/EditTemplate/Fields/Add/Dropdown/System": {
"title": "$:/language/EditTemplate/Fields/Add/Dropdown/System",
"text": "System fields"
},
"$:/language/EditTemplate/Fields/Add/Dropdown/User": {
"title": "$:/language/EditTemplate/Fields/Add/Dropdown/User",
"text": "User fields"
},
"$:/language/EditTemplate/Shadow/Warning": {
"title": "$:/language/EditTemplate/Shadow/Warning",
"text": "This is a shadow tiddler. Any changes you make will override the default version from the plugin <<pluginLink>>"
},
"$:/language/EditTemplate/Shadow/OverriddenWarning": {
"title": "$:/language/EditTemplate/Shadow/OverriddenWarning",
"text": "This is a modified shadow tiddler. You can revert to the default version in the plugin <<pluginLink>> by deleting this tiddler"
},
"$:/language/EditTemplate/Tags/Add/Button": {
"title": "$:/language/EditTemplate/Tags/Add/Button",
"text": "add"
},
"$:/language/EditTemplate/Tags/Add/Button/Hint": {
"title": "$:/language/EditTemplate/Tags/Add/Button/Hint",
"text": "add tag"
},
"$:/language/EditTemplate/Tags/Add/Placeholder": {
"title": "$:/language/EditTemplate/Tags/Add/Placeholder",
"text": "tag name"
},
"$:/language/EditTemplate/Tags/Dropdown/Caption": {
"title": "$:/language/EditTemplate/Tags/Dropdown/Caption",
"text": "tag list"
},
"$:/language/EditTemplate/Tags/Dropdown/Hint": {
"title": "$:/language/EditTemplate/Tags/Dropdown/Hint",
"text": "Show tag list"
},
"$:/language/EditTemplate/Title/BadCharacterWarning": {
"title": "$:/language/EditTemplate/Title/BadCharacterWarning",
"text": "Warning: avoid using any of the characters <<bad-chars>> in tiddler titles"
},
"$:/language/EditTemplate/Title/Exists/Prompt": {
"title": "$:/language/EditTemplate/Title/Exists/Prompt",
"text": "Target tiddler already exists"
},
"$:/language/EditTemplate/Title/Relink/Prompt": {
"title": "$:/language/EditTemplate/Title/Relink/Prompt",
"text": "Update ''<$text text=<<fromTitle>>/>'' to ''<$text text=<<toTitle>>/>'' in the //tags// and //list// fields of other tiddlers"
},
"$:/language/EditTemplate/Title/References/Prompt": {
"title": "$:/language/EditTemplate/Title/References/Prompt",
"text": "The following references to this tiddler will not be automatically updated:"
},
"$:/language/EditTemplate/Type/Dropdown/Caption": {
"title": "$:/language/EditTemplate/Type/Dropdown/Caption",
"text": "content type list"
},
"$:/language/EditTemplate/Type/Dropdown/Hint": {
"title": "$:/language/EditTemplate/Type/Dropdown/Hint",
"text": "Show content type list"
},
"$:/language/EditTemplate/Type/Delete/Caption": {
"title": "$:/language/EditTemplate/Type/Delete/Caption",
"text": "delete content type"
},
"$:/language/EditTemplate/Type/Delete/Hint": {
"title": "$:/language/EditTemplate/Type/Delete/Hint",
"text": "Delete content type"
},
"$:/language/EditTemplate/Type/Placeholder": {
"title": "$:/language/EditTemplate/Type/Placeholder",
"text": "content type"
},
"$:/language/EditTemplate/Type/Prompt": {
"title": "$:/language/EditTemplate/Type/Prompt",
"text": "Type:"
},
"$:/language/Exporters/StaticRiver": {
"title": "$:/language/Exporters/StaticRiver",
"text": "Static HTML"
},
"$:/language/Exporters/JsonFile": {
"title": "$:/language/Exporters/JsonFile",
"text": "JSON file"
},
"$:/language/Exporters/CsvFile": {
"title": "$:/language/Exporters/CsvFile",
"text": "CSV file"
},
"$:/language/Exporters/TidFile": {
"title": "$:/language/Exporters/TidFile",
"text": "\".tid\" file"
},
"$:/language/Docs/Fields/_canonical_uri": {
"title": "$:/language/Docs/Fields/_canonical_uri",
"text": "The full URI of an external image tiddler"
},
"$:/language/Docs/Fields/bag": {
"title": "$:/language/Docs/Fields/bag",
"text": "The name of the bag from which a tiddler came"
},
"$:/language/Docs/Fields/caption": {
"title": "$:/language/Docs/Fields/caption",
"text": "The text to be displayed on a tab or button"
},
"$:/language/Docs/Fields/color": {
"title": "$:/language/Docs/Fields/color",
"text": "The CSS color value associated with a tiddler"
},
"$:/language/Docs/Fields/component": {
"title": "$:/language/Docs/Fields/component",
"text": "The name of the component responsible for an [[alert tiddler|AlertMechanism]]"
},
"$:/language/Docs/Fields/current-tiddler": {
"title": "$:/language/Docs/Fields/current-tiddler",
"text": "Used to cache the top tiddler in a [[history list|HistoryMechanism]]"
},
"$:/language/Docs/Fields/created": {
"title": "$:/language/Docs/Fields/created",
"text": "The date a tiddler was created"
},
"$:/language/Docs/Fields/creator": {
"title": "$:/language/Docs/Fields/creator",
"text": "The name of the person who created a tiddler"
},
"$:/language/Docs/Fields/dependents": {
"title": "$:/language/Docs/Fields/dependents",
"text": "For a plugin, lists the dependent plugin titles"
},
"$:/language/Docs/Fields/description": {
"title": "$:/language/Docs/Fields/description",
"text": "The descriptive text for a plugin, or a modal dialogue"
},
"$:/language/Docs/Fields/draft.of": {
"title": "$:/language/Docs/Fields/draft.of",
"text": "For draft tiddlers, contains the title of the tiddler of which this is a draft"
},
"$:/language/Docs/Fields/draft.title": {
"title": "$:/language/Docs/Fields/draft.title",
"text": "For draft tiddlers, contains the proposed new title of the tiddler"
},
"$:/language/Docs/Fields/footer": {
"title": "$:/language/Docs/Fields/footer",
"text": "The footer text for a wizard"
},
"$:/language/Docs/Fields/hide-body": {
"title": "$:/language/Docs/Fields/hide-body",
"text": "The view template will hide bodies of tiddlers if set to: ''yes''"
},
"$:/language/Docs/Fields/icon": {
"title": "$:/language/Docs/Fields/icon",
"text": "The title of the tiddler containing the icon associated with a tiddler"
},
"$:/language/Docs/Fields/library": {
"title": "$:/language/Docs/Fields/library",
"text": "Indicates that a tiddler should be saved as a JavaScript library if set to: ''yes''"
},
"$:/language/Docs/Fields/list": {
"title": "$:/language/Docs/Fields/list",
"text": "An ordered list of tiddler titles associated with a tiddler"
},
"$:/language/Docs/Fields/list-before": {
"title": "$:/language/Docs/Fields/list-before",
"text": "If set, the title of a tiddler before which this tiddler should be added to the ordered list of tiddler titles, or at the start of the list if this field is present but empty"
},
"$:/language/Docs/Fields/list-after": {
"title": "$:/language/Docs/Fields/list-after",
"text": "If set, the title of the tiddler after which this tiddler should be added to the ordered list of tiddler titles, or at the end of the list if this field is present but empty"
},
"$:/language/Docs/Fields/modified": {
"title": "$:/language/Docs/Fields/modified",
"text": "The date and time at which a tiddler was last modified"
},
"$:/language/Docs/Fields/modifier": {
"title": "$:/language/Docs/Fields/modifier",
"text": "The tiddler title associated with the person who last modified a tiddler"
},
"$:/language/Docs/Fields/name": {
"title": "$:/language/Docs/Fields/name",
"text": "The human readable name associated with a plugin tiddler"
},
"$:/language/Docs/Fields/plugin-priority": {
"title": "$:/language/Docs/Fields/plugin-priority",
"text": "A numerical value indicating the priority of a plugin tiddler"
},
"$:/language/Docs/Fields/plugin-type": {
"title": "$:/language/Docs/Fields/plugin-type",
"text": "The type of plugin in a plugin tiddler"
},
"$:/language/Docs/Fields/revision": {
"title": "$:/language/Docs/Fields/revision",
"text": "The revision of the tiddler held at the server"
},
"$:/language/Docs/Fields/released": {
"title": "$:/language/Docs/Fields/released",
"text": "Date of a TiddlyWiki release"
},
"$:/language/Docs/Fields/source": {
"title": "$:/language/Docs/Fields/source",
"text": "The source URL associated with a tiddler"
},
"$:/language/Docs/Fields/subtitle": {
"title": "$:/language/Docs/Fields/subtitle",
"text": "The subtitle text for a wizard"
},
"$:/language/Docs/Fields/tags": {
"title": "$:/language/Docs/Fields/tags",
"text": "A list of tags associated with a tiddler"
},
"$:/language/Docs/Fields/text": {
"title": "$:/language/Docs/Fields/text",
"text": "The body text of a tiddler"
},
"$:/language/Docs/Fields/throttle.refresh": {
"title": "$:/language/Docs/Fields/throttle.refresh",
"text": "If present, throttles refreshes of this tiddler"
},
"$:/language/Docs/Fields/title": {
"title": "$:/language/Docs/Fields/title",
"text": "The unique name of a tiddler"
},
"$:/language/Docs/Fields/toc-link": {
"title": "$:/language/Docs/Fields/toc-link",
"text": "Suppresses the tiddler's link in a Table of Contents tree if set to: ''no''"
},
"$:/language/Docs/Fields/type": {
"title": "$:/language/Docs/Fields/type",
"text": "The content type of a tiddler"
},
"$:/language/Docs/Fields/version": {
"title": "$:/language/Docs/Fields/version",
"text": "Version information for a plugin"
},
"$:/language/Docs/Fields/_is_skinny": {
"title": "$:/language/Docs/Fields/_is_skinny",
"text": "If present, indicates that the tiddler text field must be loaded from the server"
},
"$:/language/Filters/AllTiddlers": {
"title": "$:/language/Filters/AllTiddlers",
"text": "All tiddlers except system tiddlers"
},
"$:/language/Filters/RecentSystemTiddlers": {
"title": "$:/language/Filters/RecentSystemTiddlers",
"text": "Recently modified tiddlers, including system tiddlers"
},
"$:/language/Filters/RecentTiddlers": {
"title": "$:/language/Filters/RecentTiddlers",
"text": "Recently modified tiddlers"
},
"$:/language/Filters/AllTags": {
"title": "$:/language/Filters/AllTags",
"text": "All tags except system tags"
},
"$:/language/Filters/Missing": {
"title": "$:/language/Filters/Missing",
"text": "Missing tiddlers"
},
"$:/language/Filters/Drafts": {
"title": "$:/language/Filters/Drafts",
"text": "Draft tiddlers"
},
"$:/language/Filters/Orphans": {
"title": "$:/language/Filters/Orphans",
"text": "Orphan tiddlers"
},
"$:/language/Filters/SystemTiddlers": {
"title": "$:/language/Filters/SystemTiddlers",
"text": "System tiddlers"
},
"$:/language/Filters/ShadowTiddlers": {
"title": "$:/language/Filters/ShadowTiddlers",
"text": "Shadow tiddlers"
},
"$:/language/Filters/OverriddenShadowTiddlers": {
"title": "$:/language/Filters/OverriddenShadowTiddlers",
"text": "Overridden shadow tiddlers"
},
"$:/language/Filters/SessionTiddlers": {
"title": "$:/language/Filters/SessionTiddlers",
"text": "Tiddlers modified since the wiki was loaded"
},
"$:/language/Filters/SystemTags": {
"title": "$:/language/Filters/SystemTags",
"text": "System tags"
},
"$:/language/Filters/StoryList": {
"title": "$:/language/Filters/StoryList",
"text": "Tiddlers in the story river, excluding <$text text=\"$:/AdvancedSearch\"/>"
},
"$:/language/Filters/TypedTiddlers": {
"title": "$:/language/Filters/TypedTiddlers",
"text": "Non wiki-text tiddlers"
},
"GettingStarted": {
"title": "GettingStarted",
"text": "\\define lingo-base() $:/language/ControlPanel/Basics/\nWelcome to ~TiddlyWiki and the ~TiddlyWiki community\n\nBefore you start storing important information in ~TiddlyWiki it is vital to make sure that you can reliably save changes. See https://tiddlywiki.com/#GettingStarted for details\n\n!! Set up this ~TiddlyWiki\n\n<div class=\"tc-control-panel\">\n\n|<$link to=\"$:/SiteTitle\"><<lingo Title/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteTitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/SiteSubtitle\"><<lingo Subtitle/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteSubtitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/DefaultTiddlers\"><<lingo DefaultTiddlers/Prompt>></$link> |<<lingo DefaultTiddlers/TopHint>><br> <$edit tag=\"textarea\" tiddler=\"$:/DefaultTiddlers\"/><br>//<<lingo DefaultTiddlers/BottomHint>>// |\n</div>\n\nSee the [[control panel|$:/ControlPanel]] for more options.\n"
},
"$:/language/Help/build": {
"title": "$:/language/Help/build",
"description": "Automatically run configured commands",
"text": "Build the specified build targets for the current wiki. If no build targets are specified then all available targets will be built.\n\n```\n--build <target> [<target> ...]\n```\n\nBuild targets are defined in the `tiddlywiki.info` file of a wiki folder.\n\n"
},
"$:/language/Help/clearpassword": {
"title": "$:/language/Help/clearpassword",
"description": "Clear a password for subsequent crypto operations",
"text": "Clear the password for subsequent crypto operations\n\n```\n--clearpassword\n```\n"
},
"$:/language/Help/default": {
"title": "$:/language/Help/default",
"text": "\\define commandTitle()\n$:/language/Help/$(command)$\n\\end\n```\nusage: tiddlywiki [<wikifolder>] [--<command> [<args>...]...]\n```\n\nAvailable commands:\n\n<ul>\n<$list filter=\"[commands[]sort[title]]\" variable=\"command\">\n<li><$link to=<<commandTitle>>><$macrocall $name=\"command\" $type=\"text/plain\" $output=\"text/plain\"/></$link>: <$transclude tiddler=<<commandTitle>> field=\"description\"/></li>\n</$list>\n</ul>\n\nTo get detailed help on a command:\n\n```\ntiddlywiki --help <command>\n```\n"
},
"$:/language/Help/deletetiddlers": {
"title": "$:/language/Help/deletetiddlers",
"description": "Deletes a group of tiddlers",
"text": "<<.from-version \"5.1.20\">> Deletes a group of tiddlers identified by a filter.\n\n```\n--deletetiddlers <filter>\n```\n"
},
"$:/language/Help/editions": {
"title": "$:/language/Help/editions",
"description": "Lists the available editions of TiddlyWiki",
"text": "Lists the names and descriptions of the available editions. You can create a new wiki of a specified edition with the `--init` command.\n\n```\n--editions\n```\n"
},
"$:/language/Help/fetch": {
"title": "$:/language/Help/fetch",
"description": "Fetch tiddlers from wiki by URL",
"text": "Fetch one or more files over HTTP/HTTPS, and import the tiddlers matching a filter, optionally transforming the incoming titles.\n\n```\n--fetch file <url> <import-filter> <transform-filter>\n--fetch files <url-filter> <import-filter> <transform-filter>\n--fetch raw-file <url> <transform-filter>\n--fetch raw-files <url-filter> <transform-filter>\n```\n\nThe \"file\" and \"files\" variants fetch the specified files and attempt to import the tiddlers within them (the same processing as if the files were dragged into the browser window). The \"raw-file\" and \"raw-files\" variants fetch the specified files and then store the raw file data in tiddlers, without applying the import logic.\n\nWith the \"file\" and \"raw-file\" variants only a single file is fetched and the first parameter is the URL of the file to read.\n\nWith the \"files\" and \"raw-files\" variants, multiple files are fetched and the first parameter is a filter yielding a list of URLs of the files to read. For example, given a set of tiddlers tagged \"remote-server\" that have a field \"url\" the filter `[tag[remote-server]get[url]]` will retrieve all the available URLs.\n\nFor the \"file\" and \"files\" variants, the `<import-filter>` parameter specifies a filter determining which tiddlers are imported. It defaults to `[all[tiddlers]]` if not provided.\n\nFor all variants, the `<transform-filter>` parameter specifies an optional filter that transforms the titles of the imported tiddlers. For example, `[addprefix[$:/myimports/]]` would add the prefix `$:/myimports/` to each title.\n\nPreceding the `--fetch` command with `--verbose` will output progress information during the import.\n\nNote that TiddlyWiki will not fetch an older version of an already loaded plugin.\n\nThe following example retrieves all the non-system tiddlers from https://tiddlywiki.com and saves them to a JSON file:\n\n```\ntiddlywiki --verbose --fetch file \"https://tiddlywiki.com/\" \"[!is[system]]\" \"\" --rendertiddler \"$:/core/templates/exporters/JsonFile\" output.json text/plain \"\" exportFilter \"[!is[system]]\"\n```\n\nThe following example retrieves the \"favicon\" file from tiddlywiki.com and saves it in a file called \"output.ico\". Note that the intermediate tiddler \"Icon Tiddler\" is quoted in the \"--fetch\" command because it is being used as a transformation filter to replace the default title, while there are no quotes for the \"--savetiddler\" command because it is being used directly as a title.\n\n```\ntiddlywiki --verbose --fetch raw-file \"https://tiddlywiki.com/favicon.ico\" \"[[Icon Tiddler]]\" --savetiddler \"Icon Tiddler\" output.ico\n```\n\n"
},
"$:/language/Help/help": {
"title": "$:/language/Help/help",
"description": "Display help for TiddlyWiki commands",
"text": "Displays help text for a command:\n\n```\n--help [<command>]\n```\n\nIf the command name is omitted then a list of available commands is displayed.\n"
},
"$:/language/Help/import": {
"title": "$:/language/Help/import",
"description": "Import tiddlers from a file",
"text": "Import tiddlers from TiddlyWiki (`.html`), `.tiddler`, `.tid`, `.json` or other local files. The deserializer must be explicitly specified, unlike the `load` command which infers the deserializer from the file extension.\n\n```\n--import <filepath> <deserializer> [<title>] [<encoding>]\n```\n\nThe deserializers in the core include:\n\n* application/javascript\n* application/json\n* application/x-tiddler\n* application/x-tiddler-html-div\n* application/x-tiddlers\n* text/html\n* text/plain\n\nThe title of the imported tiddler defaults to the filename.\n\nThe encoding defaults to \"utf8\", but can be \"base64\" for importing binary files.\n\nNote that TiddlyWiki will not import an older version of an already loaded plugin.\n"
},
"$:/language/Help/init": {
"title": "$:/language/Help/init",
"description": "Initialise a new wiki folder",
"text": "Initialise an empty [[WikiFolder|WikiFolders]] with a copy of the specified edition.\n\n```\n--init <edition> [<edition> ...]\n```\n\nFor example:\n\n```\ntiddlywiki ./MyWikiFolder --init empty\n```\n\nNote:\n\n* The wiki folder directory will be created if necessary\n* The \"edition\" defaults to ''empty''\n* The init command will fail if the wiki folder is not empty\n* The init command removes any `includeWikis` definitions in the edition's `tiddlywiki.info` file\n* When multiple editions are specified, editions initialised later will overwrite any files shared with earlier editions (so, the final `tiddlywiki.info` file will be copied from the last edition)\n* `--editions` returns a list of available editions\n"
},
"$:/language/Help/listen": {
"title": "$:/language/Help/listen",
"description": "Provides an HTTP server interface to TiddlyWiki",
"text": "Serves a wiki over HTTP.\n\nThe listen command uses NamedCommandParameters:\n\n```\n--listen [<name>=<value>]...\n```\n\nAll parameters are optional with safe defaults, and can be specified in any order. The recognised parameters are:\n\n* ''host'' - optional hostname to serve from (defaults to \"127.0.0.1\" aka \"localhost\")\n* ''path-prefix'' - optional prefix for paths\n* ''port'' - port number on which to listen; non-numeric values are interpreted as a system environment variable from which the port number is extracted (defaults to \"8080\")\n* ''credentials'' - pathname of credentials CSV file (relative to wiki folder)\n* ''anon-username'' - the username for signing edits for anonymous users\n* ''username'' - optional username for basic authentication\n* ''password'' - optional password for basic authentication\n* ''authenticated-user-header'' - optional name of header to be used for trusted authentication\n* ''readers'' - comma separated list of principals allowed to read from this wiki\n* ''writers'' - comma separated list of principals allowed to write to this wiki\n* ''csrf-disable'' - set to \"yes\" to disable CSRF checks (defaults to \"no\")\n* ''root-tiddler'' - the tiddler to serve at the root (defaults to \"$:/core/save/all\")\n* ''root-render-type'' - the content type to which the root tiddler should be rendered (defaults to \"text/plain\")\n* ''root-serve-type'' - the content type with which the root tiddler should be served (defaults to \"text/html\")\n* ''tls-cert'' - pathname of TLS certificate file (relative to wiki folder)\n* ''tls-key'' - pathname of TLS key file (relative to wiki folder)\n* ''debug-level'' - optional debug level; set to \"debug\" to view request details (defaults to \"none\")\n* ''gzip'' - set to \"yes\" to enable gzip compression for some http endpoints (defaults to \"no\")\n\nFor information on opening up your instance to the entire local network, and possible security concerns, see the WebServer tiddler at TiddlyWiki.com.\n\n"
},
"$:/language/Help/load": {
"title": "$:/language/Help/load",
"description": "Load tiddlers from a file",
"text": "Load tiddlers from TiddlyWiki (`.html`), `.tiddler`, `.tid`, `.json` or other local files. The processing applied to incoming files is determined by the file extension. Use the alternative `import` command if you need to specify the deserializer and encoding explicitly.\n\n```\n--load <filepath> [noerror]\n--load <dirpath> [noerror]\n```\n\nBy default, the load command raises an error if no tiddlers are found. The error can be suppressed by providing the optional \"noerror\" parameter.\n\nTo load tiddlers from an encrypted TiddlyWiki file you should first specify the password with the PasswordCommand. For example:\n\n```\ntiddlywiki ./MyWiki --password pa55w0rd --load my_encrypted_wiki.html\n```\n\nNote that TiddlyWiki will not load an older version of an already loaded plugin.\n"
},
"$:/language/Help/makelibrary": {
"title": "$:/language/Help/makelibrary",
"description": "Construct library plugin required by upgrade process",
"text": "Constructs the `$:/UpgradeLibrary` tiddler for the upgrade process.\n\nThe upgrade library is formatted as an ordinary plugin tiddler with the plugin type `library`. It contains a copy of each of the plugins, themes and language packs available within the TiddlyWiki5 repository.\n\nThis command is intended for internal use; it is only relevant to users constructing a custom upgrade procedure.\n\n```\n--makelibrary <title>\n```\n\nThe title argument defaults to `$:/UpgradeLibrary`.\n"
},
"$:/language/Help/notfound": {
"title": "$:/language/Help/notfound",
"text": "No such help item"
},
"$:/language/Help/output": {
"title": "$:/language/Help/output",
"description": "Set the base output directory for subsequent commands",
"text": "Sets the base output directory for subsequent commands. The default output directory is the `output` subdirectory of the edition directory.\n\n```\n--output <pathname>\n```\n\nIf the specified pathname is relative then it is resolved relative to the current working directory. For example `--output .` sets the output directory to the current working directory.\n\n"
},
"$:/language/Help/password": {
"title": "$:/language/Help/password",
"description": "Set a password for subsequent crypto operations",
"text": "Set a password for subsequent crypto operations\n\n```\n--password <password>\n```\n\n''Note'': This should not be used for serving TiddlyWiki with password protection. Instead, see the password option under the [[ServerCommand]].\n"
},
"$:/language/Help/render": {
"title": "$:/language/Help/render",
"description": "Renders individual tiddlers to files",
"text": "Render individual tiddlers identified by a filter and save the results to the specified files.\n\nOptionally, the title of a template tiddler can be specified. In this case, instead of directly rendering each tiddler, the template tiddler is rendered with the \"currentTiddler\" variable set to the title of the tiddler that is being rendered.\n\nA name and value for an additional variable may optionally also be specified.\n\n```\n--render <tiddler-filter> [<filename-filter>] [<render-type>] [<template>] [<name>] [<value>]\n```\n\n* ''tiddler-filter'': A filter identifying the tiddler(s) to be rendered\n* ''filename-filter'': Optional filter transforming tiddler titles into pathnames. If omitted, defaults to `[is[tiddler]addsuffix[.html]]`, which uses the unchanged tiddler title as the filename\n* ''render-type'': Optional render type: `text/html` (the default) returns the full HTML text and `text/plain` just returns the text content (ie it ignores HTML tags and other unprintable material)\n* ''template'': Optional template through which each tiddler is rendered\n* ''name'': Name of optional variable\n* ''value'': Value of optional variable\n\nBy default, the filename is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nNotes:\n\n* The output directory is not cleared of any existing files\n* Any missing directories in the path to the filename are automatically created.\n* When referring to a tiddler with spaces in its title, take care to use both the quotes required by your shell and also TiddlyWiki's double square brackets : `--render \"[[Motovun Jack.jpg]]\"`\n* The filename filter is evaluated with the selected items being set to the title of the tiddler currently being rendered, allowing the title to be used as the basis for computing the filename. For example `[encodeuricomponent[]addprefix[static/]]` applies URI encoding to each title, and then adds the prefix `static/`\n* The `--render` command is a more flexible replacement for both the `--rendertiddler` and `--rendertiddlers` commands, which are deprecated\n\nExamples:\n\n* `--render \"[!is[system]]\" \"[encodeuricomponent[]addprefix[tiddlers/]addsuffix[.html]]\"` -- renders all non-system tiddlers as files in the subdirectory \"tiddlers\" with URL-encoded titles and the extension HTML\n\n"
},
"$:/language/Help/rendertiddler": {
"title": "$:/language/Help/rendertiddler",
"description": "Render an individual tiddler as a specified ContentType",
"text": "(Note: The `--rendertiddler` command is deprecated in favour of the new, more flexible `--render` command)\n\nRender an individual tiddler as a specified ContentType, defaulting to `text/html` and save it to the specified filename.\n\nOptionally the title of a template tiddler can be specified, in which case the template tiddler is rendered with the \"currentTiddler\" variable set to the tiddler that is being rendered (the first parameter value).\n\nA name and value for an additional variable may optionally also be specified.\n\n```\n--rendertiddler <title> <filename> [<type>] [<template>] [<name>] [<value>]\n```\n\nBy default, the filename is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nAny missing directories in the path to the filename are automatically created.\n\nFor example, the following command saves all tiddlers matching the filter `[tag[done]]` to a JSON file titled `output.json` by employing the core template `$:/core/templates/exporters/JsonFile`.\n\n```\n--rendertiddler \"$:/core/templates/exporters/JsonFile\" output.json text/plain \"\" exportFilter \"[tag[done]]\"\n```\n"
},
"$:/language/Help/rendertiddlers": {
"title": "$:/language/Help/rendertiddlers",
"description": "Render tiddlers matching a filter to a specified ContentType",
"text": "(Note: The `--rendertiddlers` command is deprecated in favour of the new, more flexible `--render` command)\n\nRender a set of tiddlers matching a filter to separate files of a specified ContentType (defaults to `text/html`) and extension (defaults to `.html`).\n\n```\n--rendertiddlers <filter> <template> <pathname> [<type>] [<extension>] [\"noclean\"]\n```\n\nFor example:\n\n```\n--rendertiddlers [!is[system]] $:/core/templates/static.tiddler.html ./static text/plain\n```\n\nBy default, the pathname is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nAny files in the target directory are deleted unless the ''noclean'' flag is specified. The target directory is recursively created if it is missing.\n"
},
"$:/language/Help/save": {
"title": "$:/language/Help/save",
"description": "Saves individual raw tiddlers to files",
"text": "Saves individual tiddlers identified by a filter in their raw text or binary format to the specified files.\n\n```\n--save <tiddler-filter> <filename-filter>\n```\n\n* ''tiddler-filter'': A filter identifying the tiddler(s) to be saved\n* ''filename-filter'': Optional filter transforming tiddler titles into pathnames. If omitted, defaults to `[is[tiddler]]`, which uses the unchanged tiddler title as the filename\n\nBy default, the filename is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nNotes:\n\n* The output directory is not cleared of any existing files\n* Any missing directories in the path to the filename are automatically created.\n* When saving a tiddler with spaces in its title, take care to use both the quotes required by your shell and also TiddlyWiki's double square brackets : `--save \"[[Motovun Jack.jpg]]\"`\n* The filename filter is evaluated with the selected items being set to the title of the tiddler currently being saved, allowing the title to be used as the basis for computing the filename. For example `[encodeuricomponent[]addprefix[static/]]` applies URI encoding to each title, and then adds the prefix `static/`\n* The `--save` command is a more flexible replacement for both the `--savetiddler` and `--savetiddlers` commands, which are deprecated\n\nExamples:\n\n* `--save \"[!is[system]is[image]]\" \"[encodeuricomponent[]addprefix[tiddlers/]]\"` -- saves all non-system image tiddlers as files in the subdirectory \"tiddlers\" with URL-encoded titles\n"
},
"$:/language/Help/savetiddler": {
"title": "$:/language/Help/savetiddler",
"description": "Saves a raw tiddler to a file",
"text": "(Note: The `--savetiddler` command is deprecated in favour of the new, more flexible `--save` command)\n\nSaves an individual tiddler in its raw text or binary format to the specified filename.\n\n```\n--savetiddler <title> <filename>\n```\n\nBy default, the filename is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nAny missing directories in the path to the filename are automatically created.\n"
},
"$:/language/Help/savetiddlers": {
"title": "$:/language/Help/savetiddlers",
"description": "Saves a group of raw tiddlers to a directory",
"text": "(Note: The `--savetiddlers` command is deprecated in favour of the new, more flexible `--save` command)\n\nSaves a group of tiddlers in their raw text or binary format to the specified directory.\n\n```\n--savetiddlers <filter> <pathname> [\"noclean\"]\n```\n\nBy default, the pathname is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nThe output directory is cleared of existing files before saving the specified files. The deletion can be disabled by specifying the ''noclean'' flag.\n\nAny missing directories in the pathname are automatically created.\n"
},
"$:/language/Help/savewikifolder": {
"title": "$:/language/Help/savewikifolder",
"description": "Saves a wiki to a new wiki folder",
"text": "<<.from-version \"5.1.20\">> Saves the current wiki as a wiki folder, including tiddlers, plugins and configuration:\n\n```\n--savewikifolder <wikifolderpath> [<filter>]\n```\n\n* The target wiki folder must be empty or non-existent\n* The filter specifies which tiddlers should be included. It is optional, defaulting to `[all[tiddlers]]`\n* Plugins from the official plugin library are replaced with references to those plugins in the `tiddlywiki.info` file\n* Custom plugins are unpacked into their own folder\n\nA common usage is to convert a TiddlyWiki HTML file into a wiki folder:\n\n```\ntiddlywiki --load ./mywiki.html --savewikifolder ./mywikifolder\n```\n"
},
"$:/language/Help/server": {
"title": "$:/language/Help/server",
"description": "Provides an HTTP server interface to TiddlyWiki (deprecated in favour of the new listen command)",
"text": "Legacy command to serve a wiki over HTTP.\n\n```\n--server <port> <root-tiddler> <root-render-type> <root-serve-type> <username> <password> <host> <path-prefix> <debug-level>\n```\n\nThe parameters are:\n\n* ''port'' - port number on which to listen; non-numeric values are interpreted as a system environment variable from which the port number is extracted (defaults to \"8080\")\n* ''root-tiddler'' - the tiddler to serve at the root (defaults to \"$:/core/save/all\")\n* ''root-render-type'' - the content type to which the root tiddler should be rendered (defaults to \"text/plain\")\n* ''root-serve-type'' - the content type with which the root tiddler should be served (defaults to \"text/html\")\n* ''username'' - the default username for signing edits\n* ''password'' - optional password for basic authentication\n* ''host'' - optional hostname to serve from (defaults to \"127.0.0.1\" aka \"localhost\")\n* ''path-prefix'' - optional prefix for paths\n* ''debug-level'' - optional debug level; set to \"debug\" to view request details (defaults to \"none\")\n\nIf the password parameter is specified then the browser will prompt the user for the username and password. Note that the password is transmitted in plain text so this implementation should only be used on a trusted network or over HTTPS.\n\nFor example:\n\n```\n--server 8080 $:/core/save/all text/plain text/html MyUserName passw0rd\n```\n\nThe username and password can be specified as empty strings if you need to set the hostname or pathprefix and don't want to require a password.\n\n\n```\n--server 8080 $:/core/save/all text/plain text/html \"\" \"\" 192.168.0.245\n```\n\nUsing an address like this exposes your system to the local network. For information on opening up your instance to the entire local network, and possible security concerns, see the WebServer tiddler at TiddlyWiki.com.\n\nTo run multiple TiddlyWiki servers at the same time you'll need to put each one on a different port. It can be useful to use an environment variable to pass the port number to the Node.js process. This example references an environment variable called \"MY_PORT_NUMBER\":\n\n```\n--server MY_PORT_NUMBER $:/core/save/all text/plain text/html MyUserName passw0rd\n```\n"
},
"$:/language/Help/setfield": {
"title": "$:/language/Help/setfield",
"description": "Prepares external tiddlers for use",
"text": "//Note that this command is experimental and may change or be replaced before being finalised//\n\nSets the specified field of a group of tiddlers to the result of wikifying a template tiddler with the `currentTiddler` variable set to the tiddler.\n\n```\n--setfield <filter> <fieldname> <templatetitle> <rendertype>\n```\n\nThe parameters are:\n\n* ''filter'' - filter identifying the tiddlers to be affected\n* ''fieldname'' - the field to modify (defaults to \"text\")\n* ''templatetitle'' - the tiddler to wikify into the specified field. If blank or missing then the specified field is deleted\n* ''rendertype'' - the text type to render (defaults to \"text/plain\"; \"text/html\" can be used to include HTML tags)\n"
},
"$:/language/Help/unpackplugin": {
"title": "$:/language/Help/unpackplugin",
"description": "Unpack the payload tiddlers from a plugin",
"text": "Extract the payload tiddlers from a plugin, creating them as ordinary tiddlers:\n\n```\n--unpackplugin <title>\n```\n"
},
"$:/language/Help/verbose": {
"title": "$:/language/Help/verbose",
"description": "Triggers verbose output mode",
"text": "Triggers verbose output, useful for debugging\n\n```\n--verbose\n```\n"
},
"$:/language/Help/version": {
"title": "$:/language/Help/version",
"description": "Displays the version number of TiddlyWiki",
"text": "Displays the version number of TiddlyWiki.\n\n```\n--version\n```\n"
},
"$:/language/Import/Imported/Hint": {
"title": "$:/language/Import/Imported/Hint",
"text": "The following tiddlers were imported:"
},
"$:/language/Import/Listing/Cancel/Caption": {
"title": "$:/language/Import/Listing/Cancel/Caption",
"text": "Cancel"
},
"$:/language/Import/Listing/Hint": {
"title": "$:/language/Import/Listing/Hint",
"text": "These tiddlers are ready to import:"
},
"$:/language/Import/Listing/Import/Caption": {
"title": "$:/language/Import/Listing/Import/Caption",
"text": "Import"
},
"$:/language/Import/Listing/Select/Caption": {
"title": "$:/language/Import/Listing/Select/Caption",
"text": "Select"
},
"$:/language/Import/Listing/Status/Caption": {
"title": "$:/language/Import/Listing/Status/Caption",
"text": "Status"
},
"$:/language/Import/Listing/Title/Caption": {
"title": "$:/language/Import/Listing/Title/Caption",
"text": "Title"
},
"$:/language/Import/Listing/Preview": {
"title": "$:/language/Import/Listing/Preview",
"text": "Preview:"
},
"$:/language/Import/Listing/Preview/Text": {
"title": "$:/language/Import/Listing/Preview/Text",
"text": "Text"
},
"$:/language/Import/Listing/Preview/TextRaw": {
"title": "$:/language/Import/Listing/Preview/TextRaw",
"text": "Text (Raw)"
},
"$:/language/Import/Listing/Preview/Fields": {
"title": "$:/language/Import/Listing/Preview/Fields",
"text": "Fields"
},
"$:/language/Import/Listing/Preview/Diff": {
"title": "$:/language/Import/Listing/Preview/Diff",
"text": "Diff"
},
"$:/language/Import/Listing/Preview/DiffFields": {
"title": "$:/language/Import/Listing/Preview/DiffFields",
"text": "Diff (Fields)"
},
"$:/language/Import/Upgrader/Plugins/Suppressed/Incompatible": {
"title": "$:/language/Import/Upgrader/Plugins/Suppressed/Incompatible",
"text": "Blocked incompatible or obsolete plugin"
},
"$:/language/Import/Upgrader/Plugins/Suppressed/Version": {
"title": "$:/language/Import/Upgrader/Plugins/Suppressed/Version",
"text": "Blocked plugin (due to incoming <<incoming>> being older than existing <<existing>>)"
},
"$:/language/Import/Upgrader/Plugins/Upgraded": {
"title": "$:/language/Import/Upgrader/Plugins/Upgraded",
"text": "Upgraded plugin from <<incoming>> to <<upgraded>>"
},
"$:/language/Import/Upgrader/State/Suppressed": {
"title": "$:/language/Import/Upgrader/State/Suppressed",
"text": "Blocked temporary state tiddler"
},
"$:/language/Import/Upgrader/System/Suppressed": {
"title": "$:/language/Import/Upgrader/System/Suppressed",
"text": "Blocked system tiddler"
},
"$:/language/Import/Upgrader/System/Warning": {
"title": "$:/language/Import/Upgrader/System/Warning",
"text": "Core module tiddler"
},
"$:/language/Import/Upgrader/System/Alert": {
"title": "$:/language/Import/Upgrader/System/Alert",
"text": "You are about to import a tiddler that will overwrite a core module tiddler. This is not recommended as it may make the system unstable"
},
"$:/language/Import/Upgrader/ThemeTweaks/Created": {
"title": "$:/language/Import/Upgrader/ThemeTweaks/Created",
"text": "Migrated theme tweak from <$text text=<<from>>/>"
},
"$:/language/AboveStory/ClassicPlugin/Warning": {
"title": "$:/language/AboveStory/ClassicPlugin/Warning",
"text": "It looks like you are trying to load a plugin designed for ~TiddlyWiki Classic. Please note that [[these plugins do not work with TiddlyWiki version 5.x.x|https://tiddlywiki.com/#TiddlyWikiClassic]]. ~TiddlyWiki Classic plugins detected:"
},
"$:/language/BinaryWarning/Prompt": {
"title": "$:/language/BinaryWarning/Prompt",
"text": "This tiddler contains binary data"
},
"$:/language/ClassicWarning/Hint": {
"title": "$:/language/ClassicWarning/Hint",
"text": "This tiddler is written in TiddlyWiki Classic wiki text format, which is not fully compatible with TiddlyWiki version 5. See https://tiddlywiki.com/static/Upgrading.html for more details."
},
"$:/language/ClassicWarning/Upgrade/Caption": {
"title": "$:/language/ClassicWarning/Upgrade/Caption",
"text": "upgrade"
},
"$:/language/CloseAll/Button": {
"title": "$:/language/CloseAll/Button",
"text": "close all"
},
"$:/language/ColourPicker/Recent": {
"title": "$:/language/ColourPicker/Recent",
"text": "Recent:"
},
"$:/language/ConfirmCancelTiddler": {
"title": "$:/language/ConfirmCancelTiddler",
"text": "Do you wish to discard changes to the tiddler \"<$text text=<<title>>/>\"?"
},
"$:/language/ConfirmDeleteTiddler": {
"title": "$:/language/ConfirmDeleteTiddler",
"text": "Do you wish to delete the tiddler \"<$text text=<<title>>/>\"?"
},
"$:/language/ConfirmOverwriteTiddler": {
"title": "$:/language/ConfirmOverwriteTiddler",
"text": "Do you wish to overwrite the tiddler \"<$text text=<<title>>/>\"?"
},
"$:/language/ConfirmEditShadowTiddler": {
"title": "$:/language/ConfirmEditShadowTiddler",
"text": "You are about to edit a ShadowTiddler. Any changes will override the default system making future upgrades non-trivial. Are you sure you want to edit \"<$text text=<<title>>/>\"?"
},
"$:/language/Count": {
"title": "$:/language/Count",
"text": "count"
},
"$:/language/DefaultNewTiddlerTitle": {
"title": "$:/language/DefaultNewTiddlerTitle",
"text": "New Tiddler"
},
"$:/language/Diffs/CountMessage": {
"title": "$:/language/Diffs/CountMessage",
"text": "<<diff-count>> differences"
},
"$:/language/DropMessage": {
"title": "$:/language/DropMessage",
"text": "Drop here (or use the 'Escape' key to cancel)"
},
"$:/language/Encryption/Cancel": {
"title": "$:/language/Encryption/Cancel",
"text": "Cancel"
},
"$:/language/Encryption/ConfirmClearPassword": {
"title": "$:/language/Encryption/ConfirmClearPassword",
"text": "Do you wish to clear the password? This will remove the encryption applied when saving this wiki"
},
"$:/language/Encryption/PromptSetPassword": {
"title": "$:/language/Encryption/PromptSetPassword",
"text": "Set a new password for this TiddlyWiki"
},
"$:/language/Encryption/Username": {
"title": "$:/language/Encryption/Username",
"text": "Username"
},
"$:/language/Encryption/Password": {
"title": "$:/language/Encryption/Password",
"text": "Password"
},
"$:/language/Encryption/RepeatPassword": {
"title": "$:/language/Encryption/RepeatPassword",
"text": "Repeat password"
},
"$:/language/Encryption/PasswordNoMatch": {
"title": "$:/language/Encryption/PasswordNoMatch",
"text": "Passwords do not match"
},
"$:/language/Encryption/SetPassword": {
"title": "$:/language/Encryption/SetPassword",
"text": "Set password"
},
"$:/language/Error/Caption": {
"title": "$:/language/Error/Caption",
"text": "Error"
},
"$:/language/Error/EditConflict": {
"title": "$:/language/Error/EditConflict",
"text": "File changed on server"
},
"$:/language/Error/Filter": {
"title": "$:/language/Error/Filter",
"text": "Filter error"
},
"$:/language/Error/FilterSyntax": {
"title": "$:/language/Error/FilterSyntax",
"text": "Syntax error in filter expression"
},
"$:/language/Error/IsFilterOperator": {
"title": "$:/language/Error/IsFilterOperator",
"text": "Filter Error: Unknown operand for the 'is' filter operator"
},
"$:/language/Error/LoadingPluginLibrary": {
"title": "$:/language/Error/LoadingPluginLibrary",
"text": "Error loading plugin library"
},
"$:/language/Error/NetworkErrorAlert": {
"title": "$:/language/Error/NetworkErrorAlert",
"text": "`<h2>''Network Error''</h2>It looks like the connection to the server has been lost. This may indicate a problem with your network connection. Please attempt to restore network connectivity before continuing.<br><br>''Any unsaved changes will be automatically synchronised when connectivity is restored''.`"
},
"$:/language/Error/RecursiveTransclusion": {
"title": "$:/language/Error/RecursiveTransclusion",
"text": "Recursive transclusion error in transclude widget"
},
"$:/language/Error/RetrievingSkinny": {
"title": "$:/language/Error/RetrievingSkinny",
"text": "Error retrieving skinny tiddler list"
},
"$:/language/Error/SavingToTWEdit": {
"title": "$:/language/Error/SavingToTWEdit",
"text": "Error saving to TWEdit"
},
"$:/language/Error/WhileSaving": {
"title": "$:/language/Error/WhileSaving",
"text": "Error while saving"
},
"$:/language/Error/XMLHttpRequest": {
"title": "$:/language/Error/XMLHttpRequest",
"text": "XMLHttpRequest error code"
},
"$:/language/InternalJavaScriptError/Title": {
"title": "$:/language/InternalJavaScriptError/Title",
"text": "Internal JavaScript Error"
},
"$:/language/InternalJavaScriptError/Hint": {
"title": "$:/language/InternalJavaScriptError/Hint",
"text": "Well, this is embarrassing. It is recommended that you restart TiddlyWiki by refreshing your browser"
},
"$:/language/InvalidFieldName": {
"title": "$:/language/InvalidFieldName",
"text": "Illegal characters in field name \"<$text text=<<fieldName>>/>\". Fields can only contain lowercase letters, digits and the characters underscore (`_`), hyphen (`-`) and period (`.`)"
},
"$:/language/LazyLoadingWarning": {
"title": "$:/language/LazyLoadingWarning",
"text": "<p>Trying to load external content from ''<$text text={{!!_canonical_uri}}/>''</p><p>If this message doesn't disappear, either the tiddler content type doesn't match the type of the external content, or you may be using a browser that doesn't support external content for wikis loaded as standalone files. See https://tiddlywiki.com/#ExternalText</p>"
},
"$:/language/LoginToTiddlySpace": {
"title": "$:/language/LoginToTiddlySpace",
"text": "Login to TiddlySpace"
},
"$:/language/Manager/Controls/FilterByTag/None": {
"title": "$:/language/Manager/Controls/FilterByTag/None",
"text": "(none)"
},
"$:/language/Manager/Controls/FilterByTag/Prompt": {
"title": "$:/language/Manager/Controls/FilterByTag/Prompt",
"text": "Filter by tag:"
},
"$:/language/Manager/Controls/Order/Prompt": {
"title": "$:/language/Manager/Controls/Order/Prompt",
"text": "Reverse order"
},
"$:/language/Manager/Controls/Search/Placeholder": {
"title": "$:/language/Manager/Controls/Search/Placeholder",
"text": "Search"
},
"$:/language/Manager/Controls/Search/Prompt": {
"title": "$:/language/Manager/Controls/Search/Prompt",
"text": "Search:"
},
"$:/language/Manager/Controls/Show/Option/Tags": {
"title": "$:/language/Manager/Controls/Show/Option/Tags",
"text": "tags"
},
"$:/language/Manager/Controls/Show/Option/Tiddlers": {
"title": "$:/language/Manager/Controls/Show/Option/Tiddlers",
"text": "tiddlers"
},
"$:/language/Manager/Controls/Show/Prompt": {
"title": "$:/language/Manager/Controls/Show/Prompt",
"text": "Show:"
},
"$:/language/Manager/Controls/Sort/Prompt": {
"title": "$:/language/Manager/Controls/Sort/Prompt",
"text": "Sort by:"
},
"$:/language/Manager/Item/Colour": {
"title": "$:/language/Manager/Item/Colour",
"text": "Colour"
},
"$:/language/Manager/Item/Fields": {
"title": "$:/language/Manager/Item/Fields",
"text": "Fields"
},
"$:/language/Manager/Item/Icon/None": {
"title": "$:/language/Manager/Item/Icon/None",
"text": "(none)"
},
"$:/language/Manager/Item/Icon": {
"title": "$:/language/Manager/Item/Icon",
"text": "Icon"
},
"$:/language/Manager/Item/RawText": {
"title": "$:/language/Manager/Item/RawText",
"text": "Raw text"
},
"$:/language/Manager/Item/Tags": {
"title": "$:/language/Manager/Item/Tags",
"text": "Tags"
},
"$:/language/Manager/Item/Tools": {
"title": "$:/language/Manager/Item/Tools",
"text": "Tools"
},
"$:/language/Manager/Item/WikifiedText": {
"title": "$:/language/Manager/Item/WikifiedText",
"text": "Wikified text"
},
"$:/language/MissingTiddler/Hint": {
"title": "$:/language/MissingTiddler/Hint",
"text": "Missing tiddler \"<$text text=<<currentTiddler>>/>\" -- click {{||$:/core/ui/Buttons/edit}} to create"
},
"$:/language/No": {
"title": "$:/language/No",
"text": "No"
},
"$:/language/OfficialPluginLibrary": {
"title": "$:/language/OfficialPluginLibrary",
"text": "Official ~TiddlyWiki Plugin Library"
},
"$:/language/OfficialPluginLibrary/Hint": {
"title": "$:/language/OfficialPluginLibrary/Hint",
"text": "The official ~TiddlyWiki plugin library at tiddlywiki.com. Plugins, themes and language packs are maintained by the core team."
},
"$:/language/PluginReloadWarning": {
"title": "$:/language/PluginReloadWarning",
"text": "Please save {{$:/core/ui/Buttons/save-wiki}} and reload {{$:/core/ui/Buttons/refresh}} to allow changes to ~JavaScript plugins to take effect"
},
"$:/language/RecentChanges/DateFormat": {
"title": "$:/language/RecentChanges/DateFormat",
"text": "DDth MMM YYYY"
},
"$:/language/SystemTiddler/Tooltip": {
"title": "$:/language/SystemTiddler/Tooltip",
"text": "This is a system tiddler"
},
"$:/language/SystemTiddlers/Include/Prompt": {
"title": "$:/language/SystemTiddlers/Include/Prompt",
"text": "Include system tiddlers"
},
"$:/language/TagManager/Colour/Heading": {
"title": "$:/language/TagManager/Colour/Heading",
"text": "Colour"
},
"$:/language/TagManager/Count/Heading": {
"title": "$:/language/TagManager/Count/Heading",
"text": "Count"
},
"$:/language/TagManager/Icon/Heading": {
"title": "$:/language/TagManager/Icon/Heading",
"text": "Icon"
},
"$:/language/TagManager/Icons/None": {
"title": "$:/language/TagManager/Icons/None",
"text": "None"
},
"$:/language/TagManager/Info/Heading": {
"title": "$:/language/TagManager/Info/Heading",
"text": "Info"
},
"$:/language/TagManager/Tag/Heading": {
"title": "$:/language/TagManager/Tag/Heading",
"text": "Tag"
},
"$:/language/Tiddler/DateFormat": {
"title": "$:/language/Tiddler/DateFormat",
"text": "DDth MMM YYYY at hh12:0mmam"
},
"$:/language/UnsavedChangesWarning": {
"title": "$:/language/UnsavedChangesWarning",
"text": "You have unsaved changes in TiddlyWiki"
},
"$:/language/Yes": {
"title": "$:/language/Yes",
"text": "Yes"
},
"$:/language/Modals/Download": {
"title": "$:/language/Modals/Download",
"subtitle": "Download changes",
"footer": "<$button message=\"tm-close-tiddler\">Close</$button>",
"help": "https://tiddlywiki.com/static/DownloadingChanges.html",
"text": "Your browser only supports manual saving.\n\nTo save your modified wiki, right click on the download link below and select \"Download file\" or \"Save file\", and then choose the folder and filename.\n\n//You can marginally speed things up by clicking the link with the control key (Windows) or the options/alt key (Mac OS X). You will not be prompted for the folder or filename, but your browser is likely to give it an unrecognisable name -- you may need to rename the file to include an `.html` extension before you can do anything useful with it.//\n\nOn smartphones that do not allow files to be downloaded you can instead bookmark the link, and then sync your bookmarks to a desktop computer from where the wiki can be saved normally.\n"
},
"$:/language/Modals/SaveInstructions": {
"title": "$:/language/Modals/SaveInstructions",
"subtitle": "Save your work",
"footer": "<$button message=\"tm-close-tiddler\">Close</$button>",
"help": "https://tiddlywiki.com/static/SavingChanges.html",
"text": "Your changes to this wiki need to be saved as a ~TiddlyWiki HTML file.\n\n!!! Desktop browsers\n\n# Select ''Save As'' from the ''File'' menu\n# Choose a filename and location\n#* Some browsers also require you to explicitly specify the file saving format as ''Webpage, HTML only'' or similar\n# Close this tab\n\n!!! Smartphone browsers\n\n# Create a bookmark to this page\n#* If you've got iCloud or Google Sync set up then the bookmark will automatically sync to your desktop where you can open it and save it as above\n# Close this tab\n\n//If you open the bookmark again in Mobile Safari you will see this message again. If you want to go ahead and use the file, just click the ''close'' button below//\n"
},
"$:/config/NewJournal/Title": {
"title": "$:/config/NewJournal/Title",
"text": "DDth MMM YYYY"
},
"$:/config/NewJournal/Text": {
"title": "$:/config/NewJournal/Text",
"text": ""
},
"$:/config/NewJournal/Tags": {
"title": "$:/config/NewJournal/Tags",
"tags": "Journal"
},
"$:/language/Notifications/Save/Done": {
"title": "$:/language/Notifications/Save/Done",
"text": "Saved wiki"
},
"$:/language/Notifications/Save/Starting": {
"title": "$:/language/Notifications/Save/Starting",
"text": "Starting to save wiki"
},
"$:/language/Notifications/CopiedToClipboard/Succeeded": {
"title": "$:/language/Notifications/CopiedToClipboard/Succeeded",
"text": "Copied to clipboard!"
},
"$:/language/Notifications/CopiedToClipboard/Failed": {
"title": "$:/language/Notifications/CopiedToClipboard/Failed",
"text": "Failed to copy to clipboard!"
},
"$:/language/Search/DefaultResults/Caption": {
"title": "$:/language/Search/DefaultResults/Caption",
"text": "List"
},
"$:/language/Search/Filter/Caption": {
"title": "$:/language/Search/Filter/Caption",
"text": "Filter"
},
"$:/language/Search/Filter/Hint": {
"title": "$:/language/Search/Filter/Hint",
"text": "Search via a [[filter expression|https://tiddlywiki.com/static/Filters.html]]"
},
"$:/language/Search/Filter/Matches": {
"title": "$:/language/Search/Filter/Matches",
"text": "//<small><<resultCount>> matches</small>//"
},
"$:/language/Search/Matches": {
"title": "$:/language/Search/Matches",
"text": "//<small><<resultCount>> matches</small>//"
},
"$:/language/Search/Matches/All": {
"title": "$:/language/Search/Matches/All",
"text": "All matches:"
},
"$:/language/Search/Matches/Title": {
"title": "$:/language/Search/Matches/Title",
"text": "Title matches:"
},
"$:/language/Search/Search": {
"title": "$:/language/Search/Search",
"text": "Search"
},
"$:/language/Search/Search/TooShort": {
"title": "$:/language/Search/Search/TooShort",
"text": "Search text too short"
},
"$:/language/Search/Shadows/Caption": {
"title": "$:/language/Search/Shadows/Caption",
"text": "Shadows"
},
"$:/language/Search/Shadows/Hint": {
"title": "$:/language/Search/Shadows/Hint",
"text": "Search for shadow tiddlers"
},
"$:/language/Search/Shadows/Matches": {
"title": "$:/language/Search/Shadows/Matches",
"text": "//<small><<resultCount>> matches</small>//"
},
"$:/language/Search/Standard/Caption": {
"title": "$:/language/Search/Standard/Caption",
"text": "Standard"
},
"$:/language/Search/Standard/Hint": {
"title": "$:/language/Search/Standard/Hint",
"text": "Search for standard tiddlers"
},
"$:/language/Search/Standard/Matches": {
"title": "$:/language/Search/Standard/Matches",
"text": "//<small><<resultCount>> matches</small>//"
},
"$:/language/Search/System/Caption": {
"title": "$:/language/Search/System/Caption",
"text": "System"
},
"$:/language/Search/System/Hint": {
"title": "$:/language/Search/System/Hint",
"text": "Search for system tiddlers"
},
"$:/language/Search/System/Matches": {
"title": "$:/language/Search/System/Matches",
"text": "//<small><<resultCount>> matches</small>//"
},
"$:/language/SideBar/All/Caption": {
"title": "$:/language/SideBar/All/Caption",
"text": "All"
},
"$:/language/SideBar/Contents/Caption": {
"title": "$:/language/SideBar/Contents/Caption",
"text": "Contents"
},
"$:/language/SideBar/Drafts/Caption": {
"title": "$:/language/SideBar/Drafts/Caption",
"text": "Drafts"
},
"$:/language/SideBar/Explorer/Caption": {
"title": "$:/language/SideBar/Explorer/Caption",
"text": "Explorer"
},
"$:/language/SideBar/Missing/Caption": {
"title": "$:/language/SideBar/Missing/Caption",
"text": "Missing"
},
"$:/language/SideBar/More/Caption": {
"title": "$:/language/SideBar/More/Caption",
"text": "More"
},
"$:/language/SideBar/Open/Caption": {
"title": "$:/language/SideBar/Open/Caption",
"text": "Open"
},
"$:/language/SideBar/Orphans/Caption": {
"title": "$:/language/SideBar/Orphans/Caption",
"text": "Orphans"
},
"$:/language/SideBar/Recent/Caption": {
"title": "$:/language/SideBar/Recent/Caption",
"text": "Recent"
},
"$:/language/SideBar/Shadows/Caption": {
"title": "$:/language/SideBar/Shadows/Caption",
"text": "Shadows"
},
"$:/language/SideBar/System/Caption": {
"title": "$:/language/SideBar/System/Caption",
"text": "System"
},
"$:/language/SideBar/Tags/Caption": {
"title": "$:/language/SideBar/Tags/Caption",
"text": "Tags"
},
"$:/language/SideBar/Tags/Untagged/Caption": {
"title": "$:/language/SideBar/Tags/Untagged/Caption",
"text": "untagged"
},
"$:/language/SideBar/Tools/Caption": {
"title": "$:/language/SideBar/Tools/Caption",
"text": "Tools"
},
"$:/language/SideBar/Types/Caption": {
"title": "$:/language/SideBar/Types/Caption",
"text": "Types"
},
"$:/SiteSubtitle": {
"title": "$:/SiteSubtitle",
"text": "a non-linear personal web notebook"
},
"$:/SiteTitle": {
"title": "$:/SiteTitle",
"text": "My ~TiddlyWiki"
},
"$:/language/Snippets/ListByTag": {
"title": "$:/language/Snippets/ListByTag",
"tags": "$:/tags/TextEditor/Snippet",
"caption": "List of tiddlers by tag",
"text": "<<list-links \"[tag[task]sort[title]]\">>\n"
},
"$:/language/Snippets/MacroDefinition": {
"title": "$:/language/Snippets/MacroDefinition",
"tags": "$:/tags/TextEditor/Snippet",
"caption": "Macro definition",
"text": "\\define macroName(param1:\"default value\",param2)\nText of the macro\n\\end\n"
},
"$:/language/Snippets/Table4x3": {
"title": "$:/language/Snippets/Table4x3",
"tags": "$:/tags/TextEditor/Snippet",
"caption": "Table with 4 columns by 3 rows",
"text": "|! |!Alpha |!Beta |!Gamma |!Delta |\n|!One | | | | |\n|!Two | | | | |\n|!Three | | | | |\n"
},
"$:/language/Snippets/TableOfContents": {
"title": "$:/language/Snippets/TableOfContents",
"tags": "$:/tags/TextEditor/Snippet",
"caption": "Table of Contents",
"text": "<div class=\"tc-table-of-contents\">\n\n<<toc-selective-expandable 'TableOfContents'>>\n\n</div>"
},
"$:/language/ThemeTweaks/ThemeTweaks": {
"title": "$:/language/ThemeTweaks/ThemeTweaks",
"text": "Theme Tweaks"
},
"$:/language/ThemeTweaks/ThemeTweaks/Hint": {
"title": "$:/language/ThemeTweaks/ThemeTweaks/Hint",
"text": "You can tweak certain aspects of the ''Vanilla'' theme."
},
"$:/language/ThemeTweaks/Options": {
"title": "$:/language/ThemeTweaks/Options",
"text": "Options"
},
"$:/language/ThemeTweaks/Options/SidebarLayout": {
"title": "$:/language/ThemeTweaks/Options/SidebarLayout",
"text": "Sidebar layout"
},
"$:/language/ThemeTweaks/Options/SidebarLayout/Fixed-Fluid": {
"title": "$:/language/ThemeTweaks/Options/SidebarLayout/Fixed-Fluid",
"text": "Fixed story, fluid sidebar"
},
"$:/language/ThemeTweaks/Options/SidebarLayout/Fluid-Fixed": {
"title": "$:/language/ThemeTweaks/Options/SidebarLayout/Fluid-Fixed",
"text": "Fluid story, fixed sidebar"
},
"$:/language/ThemeTweaks/Options/StickyTitles": {
"title": "$:/language/ThemeTweaks/Options/StickyTitles",
"text": "Sticky titles"
},
"$:/language/ThemeTweaks/Options/StickyTitles/Hint": {
"title": "$:/language/ThemeTweaks/Options/StickyTitles/Hint",
"text": "Causes tiddler titles to \"stick\" to the top of the browser window"
},
"$:/language/ThemeTweaks/Options/CodeWrapping": {
"title": "$:/language/ThemeTweaks/Options/CodeWrapping",
"text": "Wrap long lines in code blocks"
},
"$:/language/ThemeTweaks/Settings": {
"title": "$:/language/ThemeTweaks/Settings",
"text": "Settings"
},
"$:/language/ThemeTweaks/Settings/FontFamily": {
"title": "$:/language/ThemeTweaks/Settings/FontFamily",
"text": "Font family"
},
"$:/language/ThemeTweaks/Settings/CodeFontFamily": {
"title": "$:/language/ThemeTweaks/Settings/CodeFontFamily",
"text": "Code font family"
},
"$:/language/ThemeTweaks/Settings/EditorFontFamily": {
"title": "$:/language/ThemeTweaks/Settings/EditorFontFamily",
"text": "Editor font family"
},
"$:/language/ThemeTweaks/Settings/BackgroundImage": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImage",
"text": "Page background image"
},
"$:/language/ThemeTweaks/Settings/BackgroundImageAttachment": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment",
"text": "Page background image attachment"
},
"$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Scroll": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Scroll",
"text": "Scroll with tiddlers"
},
"$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Fixed": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Fixed",
"text": "Fixed to window"
},
"$:/language/ThemeTweaks/Settings/BackgroundImageSize": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize",
"text": "Page background image size"
},
"$:/language/ThemeTweaks/Settings/BackgroundImageSize/Auto": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Auto",
"text": "Auto"
},
"$:/language/ThemeTweaks/Settings/BackgroundImageSize/Cover": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Cover",
"text": "Cover"
},
"$:/language/ThemeTweaks/Settings/BackgroundImageSize/Contain": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Contain",
"text": "Contain"
},
"$:/language/ThemeTweaks/Metrics": {
"title": "$:/language/ThemeTweaks/Metrics",
"text": "Sizes"
},
"$:/language/ThemeTweaks/Metrics/FontSize": {
"title": "$:/language/ThemeTweaks/Metrics/FontSize",
"text": "Font size"
},
"$:/language/ThemeTweaks/Metrics/LineHeight": {
"title": "$:/language/ThemeTweaks/Metrics/LineHeight",
"text": "Line height"
},
"$:/language/ThemeTweaks/Metrics/BodyFontSize": {
"title": "$:/language/ThemeTweaks/Metrics/BodyFontSize",
"text": "Font size for tiddler body"
},
"$:/language/ThemeTweaks/Metrics/BodyLineHeight": {
"title": "$:/language/ThemeTweaks/Metrics/BodyLineHeight",
"text": "Line height for tiddler body"
},
"$:/language/ThemeTweaks/Metrics/StoryLeft": {
"title": "$:/language/ThemeTweaks/Metrics/StoryLeft",
"text": "Story left position"
},
"$:/language/ThemeTweaks/Metrics/StoryLeft/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/StoryLeft/Hint",
"text": "how far the left margin of the story river<br>(tiddler area) is from the left of the page"
},
"$:/language/ThemeTweaks/Metrics/StoryTop": {
"title": "$:/language/ThemeTweaks/Metrics/StoryTop",
"text": "Story top position"
},
"$:/language/ThemeTweaks/Metrics/StoryTop/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/StoryTop/Hint",
"text": "how far the top margin of the story river<br>is from the top of the page"
},
"$:/language/ThemeTweaks/Metrics/StoryRight": {
"title": "$:/language/ThemeTweaks/Metrics/StoryRight",
"text": "Story right"
},
"$:/language/ThemeTweaks/Metrics/StoryRight/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/StoryRight/Hint",
"text": "how far the left margin of the sidebar <br>is from the left of the page"
},
"$:/language/ThemeTweaks/Metrics/StoryWidth": {
"title": "$:/language/ThemeTweaks/Metrics/StoryWidth",
"text": "Story width"
},
"$:/language/ThemeTweaks/Metrics/StoryWidth/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/StoryWidth/Hint",
"text": "the overall width of the story river"
},
"$:/language/ThemeTweaks/Metrics/TiddlerWidth": {
"title": "$:/language/ThemeTweaks/Metrics/TiddlerWidth",
"text": "Tiddler width"
},
"$:/language/ThemeTweaks/Metrics/TiddlerWidth/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/TiddlerWidth/Hint",
"text": "within the story river"
},
"$:/language/ThemeTweaks/Metrics/SidebarBreakpoint": {
"title": "$:/language/ThemeTweaks/Metrics/SidebarBreakpoint",
"text": "Sidebar breakpoint"
},
"$:/language/ThemeTweaks/Metrics/SidebarBreakpoint/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/SidebarBreakpoint/Hint",
"text": "the minimum page width at which the story<br>river and sidebar will appear side by side"
},
"$:/language/ThemeTweaks/Metrics/SidebarWidth": {
"title": "$:/language/ThemeTweaks/Metrics/SidebarWidth",
"text": "Sidebar width"
},
"$:/language/ThemeTweaks/Metrics/SidebarWidth/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/SidebarWidth/Hint",
"text": "the width of the sidebar in fluid-fixed layout"
},
"$:/language/TiddlerInfo/Advanced/Caption": {
"title": "$:/language/TiddlerInfo/Advanced/Caption",
"text": "Advanced"
},
"$:/language/TiddlerInfo/Advanced/PluginInfo/Empty/Hint": {
"title": "$:/language/TiddlerInfo/Advanced/PluginInfo/Empty/Hint",
"text": "none"
},
"$:/language/TiddlerInfo/Advanced/PluginInfo/Heading": {
"title": "$:/language/TiddlerInfo/Advanced/PluginInfo/Heading",
"text": "Plugin Details"
},
"$:/language/TiddlerInfo/Advanced/PluginInfo/Hint": {
"title": "$:/language/TiddlerInfo/Advanced/PluginInfo/Hint",
"text": "This plugin contains the following shadow tiddlers:"
},
"$:/language/TiddlerInfo/Advanced/ShadowInfo/Heading": {
"title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/Heading",
"text": "Shadow Status"
},
"$:/language/TiddlerInfo/Advanced/ShadowInfo/NotShadow/Hint": {
"title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/NotShadow/Hint",
"text": "The tiddler <$link to=<<infoTiddler>>><$text text=<<infoTiddler>>/></$link> is not a shadow tiddler"
},
"$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Hint": {
"title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Hint",
"text": "The tiddler <$link to=<<infoTiddler>>><$text text=<<infoTiddler>>/></$link> is a shadow tiddler"
},
"$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Source": {
"title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Source",
"text": "It is defined in the plugin <$link to=<<pluginTiddler>>><$text text=<<pluginTiddler>>/></$link>"
},
"$:/language/TiddlerInfo/Advanced/ShadowInfo/OverriddenShadow/Hint": {
"title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/OverriddenShadow/Hint",
"text": "It is overridden by an ordinary tiddler"
},
"$:/language/TiddlerInfo/Fields/Caption": {
"title": "$:/language/TiddlerInfo/Fields/Caption",
"text": "Fields"
},
"$:/language/TiddlerInfo/List/Caption": {
"title": "$:/language/TiddlerInfo/List/Caption",
"text": "List"
},
"$:/language/TiddlerInfo/List/Empty": {
"title": "$:/language/TiddlerInfo/List/Empty",
"text": "This tiddler does not have a list"
},
"$:/language/TiddlerInfo/Listed/Caption": {
"title": "$:/language/TiddlerInfo/Listed/Caption",
"text": "Listed"
},
"$:/language/TiddlerInfo/Listed/Empty": {
"title": "$:/language/TiddlerInfo/Listed/Empty",
"text": "This tiddler is not listed by any others"
},
"$:/language/TiddlerInfo/References/Caption": {
"title": "$:/language/TiddlerInfo/References/Caption",
"text": "References"
},
"$:/language/TiddlerInfo/References/Empty": {
"title": "$:/language/TiddlerInfo/References/Empty",
"text": "No tiddlers link to this one"
},
"$:/language/TiddlerInfo/Tagging/Caption": {
"title": "$:/language/TiddlerInfo/Tagging/Caption",
"text": "Tagging"
},
"$:/language/TiddlerInfo/Tagging/Empty": {
"title": "$:/language/TiddlerInfo/Tagging/Empty",
"text": "No tiddlers are tagged with this one"
},
"$:/language/TiddlerInfo/Tools/Caption": {
"title": "$:/language/TiddlerInfo/Tools/Caption",
"text": "Tools"
},
"$:/language/Docs/Types/application/javascript": {
"title": "$:/language/Docs/Types/application/javascript",
"description": "JavaScript code",
"name": "application/javascript",
"group": "Developer",
"group-sort": "2"
},
"$:/language/Docs/Types/application/json": {
"title": "$:/language/Docs/Types/application/json",
"description": "JSON data",
"name": "application/json",
"group": "Developer",
"group-sort": "2"
},
"$:/language/Docs/Types/application/x-tiddler-dictionary": {
"title": "$:/language/Docs/Types/application/x-tiddler-dictionary",
"description": "Data dictionary",
"name": "application/x-tiddler-dictionary",
"group": "Developer",
"group-sort": "2"
},
"$:/language/Docs/Types/image/gif": {
"title": "$:/language/Docs/Types/image/gif",
"description": "GIF image",
"name": "image/gif",
"group": "Image",
"group-sort": "1"
},
"$:/language/Docs/Types/image/jpeg": {
"title": "$:/language/Docs/Types/image/jpeg",
"description": "JPEG image",
"name": "image/jpeg",
"group": "Image",
"group-sort": "1"
},
"$:/language/Docs/Types/image/png": {
"title": "$:/language/Docs/Types/image/png",
"description": "PNG image",
"name": "image/png",
"group": "Image",
"group-sort": "1"
},
"$:/language/Docs/Types/image/svg+xml": {
"title": "$:/language/Docs/Types/image/svg+xml",
"description": "Structured Vector Graphics image",
"name": "image/svg+xml",
"group": "Image",
"group-sort": "1"
},
"$:/language/Docs/Types/image/x-icon": {
"title": "$:/language/Docs/Types/image/x-icon",
"description": "ICO format icon file",
"name": "image/x-icon",
"group": "Image",
"group-sort": "1"
},
"$:/language/Docs/Types/text/css": {
"title": "$:/language/Docs/Types/text/css",
"description": "Static stylesheet",
"name": "text/css",
"group": "Developer",
"group-sort": "2"
},
"$:/language/Docs/Types/text/html": {
"title": "$:/language/Docs/Types/text/html",
"description": "HTML markup",
"name": "text/html",
"group": "Text",
"group-sort": "0"
},
"$:/language/Docs/Types/text/plain": {
"title": "$:/language/Docs/Types/text/plain",
"description": "Plain text",
"name": "text/plain",
"group": "Text",
"group-sort": "0"
},
"$:/language/Docs/Types/text/vnd.tiddlywiki": {
"title": "$:/language/Docs/Types/text/vnd.tiddlywiki",
"description": "TiddlyWiki 5",
"name": "text/vnd.tiddlywiki",
"group": "Text",
"group-sort": "0"
},
"$:/language/Docs/Types/text/x-tiddlywiki": {
"title": "$:/language/Docs/Types/text/x-tiddlywiki",
"description": "TiddlyWiki Classic",
"name": "text/x-tiddlywiki",
"group": "Text",
"group-sort": "0"
},
"$:/languages/en-GB/icon": {
"title": "$:/languages/en-GB/icon",
"type": "image/svg+xml",
"text": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 60 30\" width=\"1200\" height=\"600\">\n<clipPath id=\"t\">\n\t<path d=\"M30,15 h30 v15 z v15 h-30 z h-30 v-15 z v-15 h30 z\"/>\n</clipPath>\n<path d=\"M0,0 v30 h60 v-30 z\" fill=\"#00247d\"/>\n<path d=\"M0,0 L60,30 M60,0 L0,30\" stroke=\"#fff\" stroke-width=\"6\"/>\n<path d=\"M0,0 L60,30 M60,0 L0,30\" clip-path=\"url(#t)\" stroke=\"#cf142b\" stroke-width=\"4\"/>\n<path d=\"M30,0 v30 M0,15 h60\" stroke=\"#fff\" stroke-width=\"10\"/>\n<path d=\"M30,0 v30 M0,15 h60\" stroke=\"#cf142b\" stroke-width=\"6\"/>\n</svg>\n"
},
"$:/languages/en-GB": {
"title": "$:/languages/en-GB",
"name": "en-GB",
"description": "English (British)",
"author": "JeremyRuston",
"core-version": ">=5.0.0\"",
"text": "Stub pseudo-plugin for the default language"
},
"$:/core/modules/commander.js": {
"title": "$:/core/modules/commander.js",
"text": "/*\\\ntitle: $:/core/modules/commander.js\ntype: application/javascript\nmodule-type: global\n\nThe $tw.Commander class is a command interpreter\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nParse a sequence of commands\n\tcommandTokens: an array of command string tokens\n\twiki: reference to the wiki store object\n\tstreams: {output:, error:}, each of which has a write(string) method\n\tcallback: a callback invoked as callback(err) where err is null if there was no error\n*/\nvar Commander = function(commandTokens,callback,wiki,streams) {\n\tvar path = require(\"path\");\n\tthis.commandTokens = commandTokens;\n\tthis.nextToken = 0;\n\tthis.callback = callback;\n\tthis.wiki = wiki;\n\tthis.streams = streams;\n\tthis.outputPath = path.resolve($tw.boot.wikiPath,$tw.config.wikiOutputSubDir);\n};\n\n/*\nLog a string if verbose flag is set\n*/\nCommander.prototype.log = function(str) {\n\tif(this.verbose) {\n\t\tthis.streams.output.write(str + \"\\n\");\n\t}\n};\n\n/*\nWrite a string if verbose flag is set\n*/\nCommander.prototype.write = function(str) {\n\tif(this.verbose) {\n\t\tthis.streams.output.write(str);\n\t}\n};\n\n/*\nAdd a string of tokens to the command queue\n*/\nCommander.prototype.addCommandTokens = function(commandTokens) {\n\tvar params = commandTokens.slice(0);\n\tparams.unshift(0);\n\tparams.unshift(this.nextToken);\n\tArray.prototype.splice.apply(this.commandTokens,params);\n};\n\n/*\nExecute the sequence of commands and invoke a callback on completion\n*/\nCommander.prototype.execute = function() {\n\tthis.executeNextCommand();\n};\n\n/*\nExecute the next command in the sequence\n*/\nCommander.prototype.executeNextCommand = function() {\n\tvar self = this;\n\t// Invoke the callback if there are no more commands\n\tif(this.nextToken >= this.commandTokens.length) {\n\t\tthis.callback(null);\n\t} else {\n\t\t// Get and check the command token\n\t\tvar commandName = this.commandTokens[this.nextToken++];\n\t\tif(commandName.substr(0,2) !== \"--\") {\n\t\t\tthis.callback(\"Missing command: \" + commandName);\n\t\t} else {\n\t\t\tcommandName = commandName.substr(2); // Trim off the --\n\t\t\t// Accumulate the parameters to the command\n\t\t\tvar params = [];\n\t\t\twhile(this.nextToken < this.commandTokens.length && \n\t\t\t\tthis.commandTokens[this.nextToken].substr(0,2) !== \"--\") {\n\t\t\t\tparams.push(this.commandTokens[this.nextToken++]);\n\t\t\t}\n\t\t\t// Get the command info\n\t\t\tvar command = $tw.commands[commandName],\n\t\t\t\tc,err;\n\t\t\tif(!command) {\n\t\t\t\tthis.callback(\"Unknown command: \" + commandName);\n\t\t\t} else {\n\t\t\t\tif(this.verbose) {\n\t\t\t\t\tthis.streams.output.write(\"Executing command: \" + commandName + \" \" + params.join(\" \") + \"\\n\");\n\t\t\t\t}\n\t\t\t\t// Parse named parameters if required\n\t\t\t\tif(command.info.namedParameterMode) {\n\t\t\t\t\tparams = this.extractNamedParameters(params,command.info.mandatoryParameters);\n\t\t\t\t\tif(typeof params === \"string\") {\n\t\t\t\t\t\treturn this.callback(params);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(command.info.synchronous) {\n\t\t\t\t\t// Synchronous command\n\t\t\t\t\tc = new command.Command(params,this);\n\t\t\t\t\terr = c.execute();\n\t\t\t\t\tif(err) {\n\t\t\t\t\t\tthis.callback(err);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.executeNextCommand();\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// Asynchronous command\n\t\t\t\t\tc = new command.Command(params,this,function(err) {\n\t\t\t\t\t\tif(err) {\n\t\t\t\t\t\t\tself.callback(err);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tself.executeNextCommand();\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\terr = c.execute();\n\t\t\t\t\tif(err) {\n\t\t\t\t\t\tthis.callback(err);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\n/*\nGiven an array of parameter strings `params` in name:value format, and an array of mandatory parameter names in `mandatoryParameters`, returns a hashmap of values or a string if error\n*/\nCommander.prototype.extractNamedParameters = function(params,mandatoryParameters) {\n\tmandatoryParameters = mandatoryParameters || [];\n\tvar errors = [],\n\t\tparamsByName = Object.create(null);\n\t// Extract the parameters\n\t$tw.utils.each(params,function(param) {\n\t\tvar index = param.indexOf(\"=\");\n\t\tif(index < 1) {\n\t\t\terrors.push(\"malformed named parameter: '\" + param + \"'\");\n\t\t}\n\t\tparamsByName[param.slice(0,index)] = $tw.utils.trim(param.slice(index+1));\n\t});\n\t// Check the mandatory parameters are present\n\t$tw.utils.each(mandatoryParameters,function(mandatoryParameter) {\n\t\tif(!$tw.utils.hop(paramsByName,mandatoryParameter)) {\n\t\t\terrors.push(\"missing mandatory parameter: '\" + mandatoryParameter + \"'\");\n\t\t}\n\t});\n\t// Return any errors\n\tif(errors.length > 0) {\n\t\treturn errors.join(\" and\\n\");\n\t} else {\n\t\treturn paramsByName;\t\t\n\t}\n};\n\nCommander.initCommands = function(moduleType) {\n\tmoduleType = moduleType || \"command\";\n\t$tw.commands = {};\n\t$tw.modules.forEachModuleOfType(moduleType,function(title,module) {\n\t\tvar c = $tw.commands[module.info.name] = {};\n\t\t// Add the methods defined by the module\n\t\tfor(var f in module) {\n\t\t\tif($tw.utils.hop(module,f)) {\n\t\t\t\tc[f] = module[f];\n\t\t\t}\n\t\t}\n\t});\n};\n\nexports.Commander = Commander;\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/commands/build.js": {
"title": "$:/core/modules/commands/build.js",
"text": "/*\\\ntitle: $:/core/modules/commands/build.js\ntype: application/javascript\nmodule-type: command\n\nCommand to build a build target\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"build\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\t// Get the build targets defined in the wiki\n\tvar buildTargets = $tw.boot.wikiInfo.build;\n\tif(!buildTargets) {\n\t\treturn \"No build targets defined\";\n\t}\n\t// Loop through each of the specified targets\n\tvar targets;\n\tif(this.params.length > 0) {\n\t\ttargets = this.params;\n\t} else {\n\t\ttargets = Object.keys(buildTargets);\n\t}\n\tfor(var targetIndex=0; targetIndex<targets.length; targetIndex++) {\n\t\tvar target = targets[targetIndex],\n\t\t\tcommands = buildTargets[target];\n\t\tif(!commands) {\n\t\t\treturn \"Build target '\" + target + \"' not found\";\n\t\t}\n\t\t// Add the commands to the queue\n\t\tthis.commander.addCommandTokens(commands);\n\t}\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/clearpassword.js": {
"title": "$:/core/modules/commands/clearpassword.js",
"text": "/*\\\ntitle: $:/core/modules/commands/clearpassword.js\ntype: application/javascript\nmodule-type: command\n\nClear password for crypto operations\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"clearpassword\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\t$tw.crypto.setPassword(null);\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/deletetiddlers.js": {
"title": "$:/core/modules/commands/deletetiddlers.js",
"text": "/*\\\ntitle: $:/core/modules/commands/deletetiddlers.js\ntype: application/javascript\nmodule-type: command\n\nCommand to delete tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"deletetiddlers\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing filter\";\n\t}\n\tvar self = this,\n\t\twiki = this.commander.wiki,\n\t\tfilter = this.params[0],\n\t\ttiddlers = wiki.filterTiddlers(filter);\n\t$tw.utils.each(tiddlers,function(title) {\n\t\twiki.deleteTiddler(title);\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/editions.js": {
"title": "$:/core/modules/commands/editions.js",
"text": "/*\\\ntitle: $:/core/modules/commands/editions.js\ntype: application/javascript\nmodule-type: command\n\nCommand to list the available editions\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"editions\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\tvar self = this;\n\t// Output the list\n\tthis.commander.streams.output.write(\"Available editions:\\n\\n\");\n\tvar editionInfo = $tw.utils.getEditionInfo();\n\t$tw.utils.each(editionInfo,function(info,name) {\n\t\tself.commander.streams.output.write(\" \" + name + \": \" + info.description + \"\\n\");\n\t});\n\tthis.commander.streams.output.write(\"\\n\");\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/fetch.js": {
"title": "$:/core/modules/commands/fetch.js",
"text": "/*\\\ntitle: $:/core/modules/commands/fetch.js\ntype: application/javascript\nmodule-type: command\n\nCommands to fetch external tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"fetch\",\n\tsynchronous: false\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 2) {\n\t\treturn \"Missing subcommand and url\";\n\t}\n\tswitch(this.params[0]) {\n\t\tcase \"raw-file\":\n\t\t\treturn this.fetchFiles({\n\t\t\t\traw: true,\n\t\t\t\turl: this.params[1],\n\t\t\t\ttransformFilter: this.params[2] || \"\",\n\t\t\t\tcallback: this.callback\n\t\t\t});\n\t\t\tbreak;\n\t\tcase \"file\":\n\t\t\treturn this.fetchFiles({\n\t\t\t\turl: this.params[1],\n\t\t\t\timportFilter: this.params[2],\n\t\t\t\ttransformFilter: this.params[3] || \"\",\n\t\t\t\tcallback: this.callback\n\t\t\t});\n\t\t\tbreak;\n\t\tcase \"raw-files\":\n\t\t\treturn this.fetchFiles({\n\t\t\t\traw: true,\n\t\t\t\turlFilter: this.params[1],\n\t\t\t\ttransformFilter: this.params[2] || \"\",\n\t\t\t\tcallback: this.callback\n\t\t\t});\n\t\t\tbreak;\n\t\tcase \"files\":\n\t\t\treturn this.fetchFiles({\n\t\t\t\turlFilter: this.params[1],\n\t\t\t\timportFilter: this.params[2],\n\t\t\t\ttransformFilter: this.params[3] || \"\",\n\t\t\t\tcallback: this.callback\n\t\t\t});\n\t\t\tbreak;\n\t}\n\treturn null;\n};\n\nCommand.prototype.fetchFiles = function(options) {\n\tvar self = this;\n\t// Get the list of URLs\n\tvar urls;\n\tif(options.url) {\n\t\turls = [options.url]\n\t} else if(options.urlFilter) {\n\t\turls = $tw.wiki.filterTiddlers(options.urlFilter);\n\t} else {\n\t\treturn \"Missing URL\";\n\t}\n\t// Process each URL in turn\n\tvar next = 0;\n\tvar getNextFile = function(err) {\n\t\tif(err) {\n\t\t\treturn options.callback(err);\n\t\t}\n\t\tif(next < urls.length) {\n\t\t\tself.fetchFile(urls[next++],options,getNextFile);\n\t\t} else {\n\t\t\toptions.callback(null);\n\t\t}\n\t};\n\tgetNextFile(null);\n\t// Success\n\treturn null;\n};\n\nCommand.prototype.fetchFile = function(url,options,callback,redirectCount) {\n\tif(redirectCount > 10) {\n\t\treturn callback(\"Error too many redirects retrieving \" + url);\n\t}\n\tvar self = this,\n\t\tlib = url.substr(0,8) === \"https://\" ? require(\"https\") : require(\"http\");\n\tlib.get(url).on(\"response\",function(response) {\n\t var type = (response.headers[\"content-type\"] || \"\").split(\";\")[0],\n\t \tdata = [];\n\t self.commander.write(\"Reading \" + url + \": \");\n\t response.on(\"data\",function(chunk) {\n\t data.push(chunk);\n\t self.commander.write(\".\");\n\t });\n\t response.on(\"end\",function() {\n\t self.commander.write(\"\\n\");\n\t if(response.statusCode === 200) {\n\t\t self.processBody(Buffer.concat(data),type,options,url);\n\t\t callback(null);\n\t } else {\n\t \tif(response.statusCode === 302 || response.statusCode === 303 || response.statusCode === 307) {\n\t \t\treturn self.fetchFile(response.headers.location,options,callback,redirectCount + 1);\n\t \t} else {\n\t\t \treturn callback(\"Error \" + response.statusCode + \" retrieving \" + url)\t \t\t\n\t \t}\n\t }\n\t \t});\n\t \tresponse.on(\"error\",function(e) {\n\t\t\tconsole.log(\"Error on GET request: \" + e);\n\t\t\tcallback(e);\n\t \t});\n\t});\n\treturn null;\n};\n\nCommand.prototype.processBody = function(body,type,options,url) {\n\tvar self = this;\n\t// Collect the tiddlers in a wiki\n\tvar incomingWiki = new $tw.Wiki();\n\tif(options.raw) {\n\t\tvar typeInfo = type ? $tw.config.contentTypeInfo[type] : null,\n\t\t\tencoding = typeInfo ? typeInfo.encoding : \"utf8\";\n\t\tincomingWiki.addTiddler(new $tw.Tiddler({\n\t\t\ttitle: url,\n\t\t\ttype: type,\n\t\t\ttext: body.toString(encoding)\n\t\t}));\n\t} else {\n\t\t// Deserialise the file to extract the tiddlers\n\t\tvar tiddlers = this.commander.wiki.deserializeTiddlers(type || \"text/html\",body.toString(\"utf8\"),{});\n\t\t$tw.utils.each(tiddlers,function(tiddler) {\n\t\t\tincomingWiki.addTiddler(new $tw.Tiddler(tiddler));\n\t\t});\n\t}\n\t// Filter the tiddlers to select the ones we want\n\tvar filteredTitles = incomingWiki.filterTiddlers(options.importFilter || \"[all[tiddlers]]\");\n\t// Import the selected tiddlers\n\tvar count = 0;\n\tincomingWiki.each(function(tiddler,title) {\n\t\tif(filteredTitles.indexOf(title) !== -1) {\n\t\t\tvar newTiddler;\n\t\t\tif(options.transformFilter) {\n\t\t\t\tvar transformedTitle = (incomingWiki.filterTiddlers(options.transformFilter,null,self.commander.wiki.makeTiddlerIterator([title])) || [\"\"])[0];\n\t\t\t\tif(transformedTitle) {\n\t\t\t\t\tself.commander.log(\"Importing \" + title + \" as \" + transformedTitle)\n\t\t\t\t\tnewTiddler = new $tw.Tiddler(tiddler,{title: transformedTitle});\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tself.commander.log(\"Importing \" + title)\n\t\t\t\tnewTiddler = tiddler;\n\t\t\t}\n\t\t\tself.commander.wiki.importTiddler(newTiddler);\n\t\t\tcount++;\n\t\t}\n\t});\n\tself.commander.log(\"Imported \" + count + \" tiddlers\")\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/help.js": {
"title": "$:/core/modules/commands/help.js",
"text": "/*\\\ntitle: $:/core/modules/commands/help.js\ntype: application/javascript\nmodule-type: command\n\nHelp command\n\n\\*/\n(function(){\n\n/*jshint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"help\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\tvar subhelp = this.params[0] || \"default\",\n\t\thelpBase = \"$:/language/Help/\",\n\t\ttext;\n\tif(!this.commander.wiki.getTiddler(helpBase + subhelp)) {\n\t\tsubhelp = \"notfound\";\n\t}\n\t// Wikify the help as formatted text (ie block elements generate newlines)\n\ttext = this.commander.wiki.renderTiddler(\"text/plain-formatted\",helpBase + subhelp);\n\t// Remove any leading linebreaks\n\ttext = text.replace(/^(\\r?\\n)*/g,\"\");\n\tthis.commander.streams.output.write(text);\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/import.js": {
"title": "$:/core/modules/commands/import.js",
"text": "/*\\\ntitle: $:/core/modules/commands/import.js\ntype: application/javascript\nmodule-type: command\n\nCommand to import tiddlers from a file\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"import\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\");\n\tif(this.params.length < 2) {\n\t\treturn \"Missing parameters\";\n\t}\n\tvar filename = self.params[0],\n\t\tdeserializer = self.params[1],\n\t\ttitle = self.params[2] || filename,\n\t\tencoding = self.params[3] || \"utf8\",\n\t\ttext = fs.readFileSync(filename,encoding),\n\t\ttiddlers = this.commander.wiki.deserializeTiddlers(null,text,{title: title},{deserializer: deserializer});\n\t$tw.utils.each(tiddlers,function(tiddler) {\n\t\tself.commander.wiki.importTiddler(new $tw.Tiddler(tiddler));\n\t});\n\tthis.commander.log(tiddlers.length + \" tiddler(s) imported\");\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/init.js": {
"title": "$:/core/modules/commands/init.js",
"text": "/*\\\ntitle: $:/core/modules/commands/init.js\ntype: application/javascript\nmodule-type: command\n\nCommand to initialise an empty wiki folder\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"init\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\tvar fs = require(\"fs\"),\n\t\tpath = require(\"path\");\n\t// Check that we don't already have a valid wiki folder\n\tif($tw.boot.wikiTiddlersPath || ($tw.utils.isDirectory($tw.boot.wikiPath) && !$tw.utils.isDirectoryEmpty($tw.boot.wikiPath))) {\n\t\treturn \"Wiki folder is not empty\";\n\t}\n\t// Loop through each of the specified editions\n\tvar editions = this.params.length > 0 ? this.params : [\"empty\"];\n\tfor(var editionIndex=0; editionIndex<editions.length; editionIndex++) {\n\t\tvar editionName = editions[editionIndex];\n\t\t// Check the edition exists\n\t\tvar editionPath = $tw.findLibraryItem(editionName,$tw.getLibraryItemSearchPaths($tw.config.editionsPath,$tw.config.editionsEnvVar));\n\t\tif(!$tw.utils.isDirectory(editionPath)) {\n\t\t\treturn \"Edition '\" + editionName + \"' not found\";\n\t\t}\n\t\t// Copy the edition content\n\t\tvar err = $tw.utils.copyDirectory(editionPath,$tw.boot.wikiPath);\n\t\tif(!err) {\n\t\t\tthis.commander.streams.output.write(\"Copied edition '\" + editionName + \"' to \" + $tw.boot.wikiPath + \"\\n\");\n\t\t} else {\n\t\t\treturn err;\n\t\t}\n\t}\n\t// Tweak the tiddlywiki.info to remove any included wikis\n\tvar packagePath = $tw.boot.wikiPath + \"/tiddlywiki.info\",\n\t\tpackageJson = JSON.parse(fs.readFileSync(packagePath));\n\tdelete packageJson.includeWikis;\n\tfs.writeFileSync(packagePath,JSON.stringify(packageJson,null,$tw.config.preferences.jsonSpaces));\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/listen.js": {
"title": "$:/core/modules/commands/listen.js",
"text": "/*\\\ntitle: $:/core/modules/commands/listen.js\ntype: application/javascript\nmodule-type: command\n\nListen for HTTP requests and serve tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Server = require(\"$:/core/modules/server/server.js\").Server;\n\nexports.info = {\n\tname: \"listen\",\n\tsynchronous: true,\n\tnamedParameterMode: true,\n\tmandatoryParameters: [],\n};\n\nvar Command = function(params,commander,callback) {\n\tvar self = this;\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tvar self = this;\n\tif(!$tw.boot.wikiTiddlersPath) {\n\t\t$tw.utils.warning(\"Warning: Wiki folder '\" + $tw.boot.wikiPath + \"' does not exist or is missing a tiddlywiki.info file\");\n\t}\n\t// Set up server\n\tthis.server = new Server({\n\t\twiki: this.commander.wiki,\n\t\tvariables: self.params\n\t});\n\tvar nodeServer = this.server.listen();\n\t$tw.hooks.invokeHook(\"th-server-command-post-start\",this.server,nodeServer,\"tiddlywiki\");\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/load.js": {
"title": "$:/core/modules/commands/load.js",
"text": "/*\\\ntitle: $:/core/modules/commands/load.js\ntype: application/javascript\nmodule-type: command\n\nCommand to load tiddlers from a file or directory\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"load\",\n\tsynchronous: false\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\");\n\tif(this.params.length < 1) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar tiddlers = $tw.loadTiddlersFromPath(self.params[0]),\n\t\tcount = 0;\n\t$tw.utils.each(tiddlers,function(tiddlerInfo) {\n\t\t$tw.utils.each(tiddlerInfo.tiddlers,function(tiddler) {\n\t\t\tself.commander.wiki.importTiddler(new $tw.Tiddler(tiddler));\n\t\t\tcount++;\n\t\t});\n\t});\n\tif(!count && self.params[1] !== \"noerror\") {\n\t\tself.callback(\"No tiddlers found in file \\\"\" + self.params[0] + \"\\\"\");\n\t} else {\n\t\tself.callback(null);\n\t}\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/makelibrary.js": {
"title": "$:/core/modules/commands/makelibrary.js",
"text": "/*\\\ntitle: $:/core/modules/commands/makelibrary.js\ntype: application/javascript\nmodule-type: command\n\nCommand to pack all of the plugins in the library into a plugin tiddler of type \"library\"\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"makelibrary\",\n\tsynchronous: true\n};\n\nvar UPGRADE_LIBRARY_TITLE = \"$:/UpgradeLibrary\";\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tvar wiki = this.commander.wiki,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\tupgradeLibraryTitle = this.params[0] || UPGRADE_LIBRARY_TITLE,\n\t\ttiddlers = {};\n\t// Collect up the library plugins\n\tvar collectPlugins = function(folder) {\n\t\t\tvar pluginFolders = fs.readdirSync(folder);\n\t\t\tfor(var p=0; p<pluginFolders.length; p++) {\n\t\t\t\tif(!$tw.boot.excludeRegExp.test(pluginFolders[p])) {\n\t\t\t\t\tpluginFields = $tw.loadPluginFolder(path.resolve(folder,\"./\" + pluginFolders[p]));\n\t\t\t\t\tif(pluginFields && pluginFields.title) {\n\t\t\t\t\t\ttiddlers[pluginFields.title] = pluginFields;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tcollectPublisherPlugins = function(folder) {\n\t\t\tvar publisherFolders = fs.readdirSync(folder);\n\t\t\tfor(var t=0; t<publisherFolders.length; t++) {\n\t\t\t\tif(!$tw.boot.excludeRegExp.test(publisherFolders[t])) {\n\t\t\t\t\tcollectPlugins(path.resolve(folder,\"./\" + publisherFolders[t]));\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t$tw.utils.each($tw.getLibraryItemSearchPaths($tw.config.pluginsPath,$tw.config.pluginsEnvVar),collectPublisherPlugins);\n\t$tw.utils.each($tw.getLibraryItemSearchPaths($tw.config.themesPath,$tw.config.themesEnvVar),collectPublisherPlugins);\n\t$tw.utils.each($tw.getLibraryItemSearchPaths($tw.config.languagesPath,$tw.config.languagesEnvVar),collectPlugins);\n\t// Save the upgrade library tiddler\n\tvar pluginFields = {\n\t\ttitle: upgradeLibraryTitle,\n\t\ttype: \"application/json\",\n\t\t\"plugin-type\": \"library\",\n\t\t\"text\": JSON.stringify({tiddlers: tiddlers})\n\t};\n\twiki.addTiddler(new $tw.Tiddler(pluginFields));\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/output.js": {
"title": "$:/core/modules/commands/output.js",
"text": "/*\\\ntitle: $:/core/modules/commands/output.js\ntype: application/javascript\nmodule-type: command\n\nCommand to set the default output location (defaults to current working directory)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"output\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tvar fs = require(\"fs\"),\n\t\tpath = require(\"path\");\n\tif(this.params.length < 1) {\n\t\treturn \"Missing output path\";\n\t}\n\tthis.commander.outputPath = path.resolve(process.cwd(),this.params[0]);\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/password.js": {
"title": "$:/core/modules/commands/password.js",
"text": "/*\\\ntitle: $:/core/modules/commands/password.js\ntype: application/javascript\nmodule-type: command\n\nSave password for crypto operations\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"password\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing password\";\n\t}\n\t$tw.crypto.setPassword(this.params[0]);\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/render.js": {
"title": "$:/core/modules/commands/render.js",
"text": "/*\\\ntitle: $:/core/modules/commands/render.js\ntype: application/javascript\nmodule-type: command\n\nRender individual tiddlers and save the results to the specified files\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.info = {\n\tname: \"render\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing tiddler filter\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\twiki = this.commander.wiki,\n\t\ttiddlerFilter = this.params[0],\n\t\tfilenameFilter = this.params[1] || \"[is[tiddler]addsuffix[.html]]\",\n\t\ttype = this.params[2] || \"text/html\",\n\t\ttemplate = this.params[3],\n\t\tvarName = this.params[4],\n\t\tvarValue = this.params[5],\n\t\ttiddlers = wiki.filterTiddlers(tiddlerFilter);\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar parser = wiki.parseTiddler(template || title),\n\t\t\tvariables = {currentTiddler: title};\n\t\tif(varName) {\n\t\t\tvariables[varName] = varValue || \"\";\n\t\t}\n\t\tvar widgetNode = wiki.makeWidget(parser,{variables: variables}),\n\t\t\tcontainer = $tw.fakeDocument.createElement(\"div\");\n\t\twidgetNode.render(container,null);\n\t\tvar text = type === \"text/html\" ? container.innerHTML : container.textContent,\n\t\t\tfilepath = path.resolve(self.commander.outputPath,wiki.filterTiddlers(filenameFilter,$tw.rootWidget,wiki.makeTiddlerIterator([title]))[0]);\n\t\tif(self.commander.verbose) {\n\t\t\tconsole.log(\"Rendering \\\"\" + title + \"\\\" to \\\"\" + filepath + \"\\\"\");\n\t\t}\n\t\t$tw.utils.createFileDirectories(filepath);\n\t\tfs.writeFileSync(filepath,text,\"utf8\");\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/rendertiddler.js": {
"title": "$:/core/modules/commands/rendertiddler.js",
"text": "/*\\\ntitle: $:/core/modules/commands/rendertiddler.js\ntype: application/javascript\nmodule-type: command\n\nCommand to render a tiddler and save it to a file\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"rendertiddler\",\n\tsynchronous: false\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 2) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\ttitle = this.params[0],\n\t\tfilename = path.resolve(this.commander.outputPath,this.params[1]),\n\t\ttype = this.params[2] || \"text/html\",\n\t\ttemplate = this.params[3],\n\t\tname = this.params[4],\n\t\tvalue = this.params[5],\n\t\tvariables = {};\n\t$tw.utils.createFileDirectories(filename);\n\tif(template) {\n\t\tvariables.currentTiddler = title;\n\t\ttitle = template;\n\t}\n\tif(name && value) {\n\t\tvariables[name] = value;\n\t}\n\tfs.writeFile(filename,this.commander.wiki.renderTiddler(type,title,{variables: variables}),\"utf8\",function(err) {\n\t\tself.callback(err);\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/rendertiddlers.js": {
"title": "$:/core/modules/commands/rendertiddlers.js",
"text": "/*\\\ntitle: $:/core/modules/commands/rendertiddlers.js\ntype: application/javascript\nmodule-type: command\n\nCommand to render several tiddlers to a folder of files\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.info = {\n\tname: \"rendertiddlers\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 2) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\twiki = this.commander.wiki,\n\t\tfilter = this.params[0],\n\t\ttemplate = this.params[1],\n\t\toutputPath = this.commander.outputPath,\n\t\tpathname = path.resolve(outputPath,this.params[2]),\t\t\n\t\ttype = this.params[3] || \"text/html\",\n\t\textension = this.params[4] || \".html\",\n\t\tdeleteDirectory = (this.params[5] || \"\").toLowerCase() !== \"noclean\",\n\t\ttiddlers = wiki.filterTiddlers(filter);\n\tif(deleteDirectory) {\n\t\t$tw.utils.deleteDirectory(pathname);\n\t}\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar parser = wiki.parseTiddler(template),\n\t\t\twidgetNode = wiki.makeWidget(parser,{variables: {currentTiddler: title}}),\n\t\t\tcontainer = $tw.fakeDocument.createElement(\"div\");\n\t\twidgetNode.render(container,null);\n\t\tvar text = type === \"text/html\" ? container.innerHTML : container.textContent,\n\t\t\texportPath = null;\n\t\tif($tw.utils.hop($tw.macros,\"tv-get-export-path\")) {\n\t\t\tvar macroPath = $tw.macros[\"tv-get-export-path\"].run.apply(self,[title]);\n\t\t\tif(macroPath) {\n\t\t\t\texportPath = path.resolve(outputPath,macroPath + extension);\n\t\t\t}\n\t\t}\n\t\tvar finalPath = exportPath || path.resolve(pathname,encodeURIComponent(title) + extension);\n\t\t$tw.utils.createFileDirectories(finalPath);\n\t\tfs.writeFileSync(finalPath,text,\"utf8\");\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/save.js": {
"title": "$:/core/modules/commands/save.js",
"text": "/*\\\ntitle: $:/core/modules/commands/save.js\ntype: application/javascript\nmodule-type: command\n\nSaves individual tiddlers in their raw text or binary format to the specified files\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"save\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing filename filter\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\twiki = this.commander.wiki,\n\t\ttiddlerFilter = this.params[0],\n\t\tfilenameFilter = this.params[1] || \"[is[tiddler]]\",\n\t\ttiddlers = wiki.filterTiddlers(tiddlerFilter);\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar tiddler = self.commander.wiki.getTiddler(title),\n\t\t\ttype = tiddler.fields.type || \"text/vnd.tiddlywiki\",\n\t\t\tcontentTypeInfo = $tw.config.contentTypeInfo[type] || {encoding: \"utf8\"},\n\t\t\tfilepath = path.resolve(self.commander.outputPath,wiki.filterTiddlers(filenameFilter,$tw.rootWidget,wiki.makeTiddlerIterator([title]))[0]);\n\t\tif(self.commander.verbose) {\n\t\t\tconsole.log(\"Saving \\\"\" + title + \"\\\" to \\\"\" + filepath + \"\\\"\");\n\t\t}\n\t\t$tw.utils.createFileDirectories(filepath);\n\t\tfs.writeFileSync(filepath,tiddler.fields.text,contentTypeInfo.encoding);\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/savelibrarytiddlers.js": {
"title": "$:/core/modules/commands/savelibrarytiddlers.js",
"text": "/*\\\ntitle: $:/core/modules/commands/savelibrarytiddlers.js\ntype: application/javascript\nmodule-type: command\n\nCommand to save the subtiddlers of a bundle tiddler as a series of JSON files\n\n--savelibrarytiddlers <tiddler> <pathname> <skinnylisting>\n\nThe tiddler identifies the bundle tiddler that contains the subtiddlers.\n\nThe pathname specifies the pathname to the folder in which the JSON files should be saved. The filename is the URL encoded title of the subtiddler.\n\nThe skinnylisting specifies the title of the tiddler to which a JSON catalogue of the subtiddlers will be saved. The JSON file contains the same data as the bundle tiddler but with the `text` field removed.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"savelibrarytiddlers\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 2) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\tcontainerTitle = this.params[0],\n\t\tfilter = this.params[1],\n\t\tbasepath = this.params[2],\n\t\tskinnyListTitle = this.params[3];\n\t// Get the container tiddler as data\n\tvar containerData = self.commander.wiki.getTiddlerDataCached(containerTitle,undefined);\n\tif(!containerData) {\n\t\treturn \"'\" + containerTitle + \"' is not a tiddler bundle\";\n\t}\n\t// Filter the list of plugins\n\tvar pluginList = [];\n\t$tw.utils.each(containerData.tiddlers,function(tiddler,title) {\n\t\tpluginList.push(title);\n\t});\n\tvar filteredPluginList;\n\tif(filter) {\n\t\tfilteredPluginList = self.commander.wiki.filterTiddlers(filter,null,self.commander.wiki.makeTiddlerIterator(pluginList));\n\t} else {\n\t\tfilteredPluginList = pluginList;\n\t}\n\t// Iterate through the plugins\n\tvar skinnyList = [];\n\t$tw.utils.each(filteredPluginList,function(title) {\n\t\tvar tiddler = containerData.tiddlers[title];\n\t\t// Save each JSON file and collect the skinny data\n\t\tvar pathname = path.resolve(self.commander.outputPath,basepath + encodeURIComponent(title) + \".json\");\n\t\t$tw.utils.createFileDirectories(pathname);\n\t\tfs.writeFileSync(pathname,JSON.stringify(tiddler),\"utf8\");\n\t\t// Collect the skinny list data\n\t\tvar pluginTiddlers = JSON.parse(tiddler.text),\n\t\t\treadmeContent = (pluginTiddlers.tiddlers[title + \"/readme\"] || {}).text,\n\t\t\tdoesRequireReload = !!$tw.wiki.doesPluginInfoRequireReload(pluginTiddlers),\n\t\t\ticonTiddler = pluginTiddlers.tiddlers[title + \"/icon\"] || {},\n\t\t\ticonType = iconTiddler.type,\n\t\t\ticonText = iconTiddler.text,\n\t\t\ticonContent;\n\t\tif(iconType && iconText) {\n\t\t\ticonContent = $tw.utils.makeDataUri(iconText,iconType);\n\t\t}\n\t\tskinnyList.push($tw.utils.extend({},tiddler,{\n\t\t\ttext: undefined,\n\t\t\treadme: readmeContent,\n\t\t\t\"requires-reload\": doesRequireReload ? \"yes\" : \"no\",\n\t\t\ticon: iconContent\n\t\t}));\n\t});\n\t// Save the catalogue tiddler\n\tif(skinnyListTitle) {\n\t\tself.commander.wiki.setTiddlerData(skinnyListTitle,skinnyList);\n\t}\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/savetiddler.js": {
"title": "$:/core/modules/commands/savetiddler.js",
"text": "/*\\\ntitle: $:/core/modules/commands/savetiddler.js\ntype: application/javascript\nmodule-type: command\n\nCommand to save the content of a tiddler to a file\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"savetiddler\",\n\tsynchronous: false\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 2) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\ttitle = this.params[0],\n\t\tfilename = path.resolve(this.commander.outputPath,this.params[1]),\n\t\ttiddler = this.commander.wiki.getTiddler(title);\n\tif(tiddler) {\n\t\tvar type = tiddler.fields.type || \"text/vnd.tiddlywiki\",\n\t\t\tcontentTypeInfo = $tw.config.contentTypeInfo[type] || {encoding: \"utf8\"};\n\t\t$tw.utils.createFileDirectories(filename);\n\t\tfs.writeFile(filename,tiddler.fields.text,contentTypeInfo.encoding,function(err) {\n\t\t\tself.callback(err);\n\t\t});\n\t} else {\n\t\treturn \"Missing tiddler: \" + title;\n\t}\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/savetiddlers.js": {
"title": "$:/core/modules/commands/savetiddlers.js",
"text": "/*\\\ntitle: $:/core/modules/commands/savetiddlers.js\ntype: application/javascript\nmodule-type: command\n\nCommand to save several tiddlers to a folder of files\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.info = {\n\tname: \"savetiddlers\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\twiki = this.commander.wiki,\n\t\tfilter = this.params[0],\n\t\tpathname = path.resolve(this.commander.outputPath,this.params[1]),\n\t\tdeleteDirectory = (this.params[2] || \"\").toLowerCase() !== \"noclean\",\n\t\ttiddlers = wiki.filterTiddlers(filter);\n\tif(deleteDirectory) {\n\t\t$tw.utils.deleteDirectory(pathname);\n\t}\n\t$tw.utils.createDirectory(pathname);\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar tiddler = self.commander.wiki.getTiddler(title),\n\t\t\ttype = tiddler.fields.type || \"text/vnd.tiddlywiki\",\n\t\t\tcontentTypeInfo = $tw.config.contentTypeInfo[type] || {encoding: \"utf8\"},\n\t\t\tfilename = path.resolve(pathname,encodeURIComponent(title));\n\t\tfs.writeFileSync(filename,tiddler.fields.text,contentTypeInfo.encoding);\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/savewikifolder.js": {
"title": "$:/core/modules/commands/savewikifolder.js",
"text": "/*\\\ntitle: $:/core/modules/commands/savewikifolder.js\ntype: application/javascript\nmodule-type: command\n\nCommand to save the current wiki as a wiki folder\n\n--savewikifolder <wikifolderpath> [<filter>]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"savewikifolder\",\n\tsynchronous: true\n};\n\nvar fs,path;\nif($tw.node) {\n\tfs = require(\"fs\");\n\tpath = require(\"path\");\n}\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing wiki folder path\";\n\t}\n\tvar wikifoldermaker = new WikiFolderMaker(this.params[0],this.params[1],this.commander);\n\treturn wikifoldermaker.save();\n};\n\nfunction WikiFolderMaker(wikiFolderPath,wikiFilter,commander) {\n\tthis.wikiFolderPath = wikiFolderPath;\n\tthis.wikiFilter = wikiFilter || \"[all[tiddlers]]\";\n\tthis.commander = commander;\n\tthis.wiki = commander.wiki;\n\tthis.savedPaths = []; // So that we can detect filename clashes\n}\n\nWikiFolderMaker.prototype.log = function(str) {\n\tif(this.commander.verbose) {\n\t\tconsole.log(str);\n\t}\n};\n\nWikiFolderMaker.prototype.tiddlersToIgnore = [\n\t\"$:/boot/boot.css\",\n\t\"$:/boot/boot.js\",\n\t\"$:/boot/bootprefix.js\",\n\t\"$:/core\",\n\t\"$:/library/sjcl.js\",\n\t\"$:/temp/info-plugin\"\n];\n\n/*\nReturns null if successful, or an error string if there was an error\n*/\nWikiFolderMaker.prototype.save = function() {\n\tvar self = this;\n\t// Check that the output directory doesn't exist\n\tif(fs.existsSync(this.wikiFolderPath) && !$tw.utils.isDirectoryEmpty(this.wikiFolderPath)) {\n\t\treturn \"The unpackwiki command requires that the output wiki folder be empty\";\n\t}\n\t// Get the tiddlers from the source wiki\n\tvar tiddlerTitles = this.wiki.filterTiddlers(this.wikiFilter);\n\t// Initialise a new tiddlwiki.info file\n\tvar newWikiInfo = {};\n\t// Process each incoming tiddler in turn\n\t$tw.utils.each(tiddlerTitles,function(title) {\n\t\tvar tiddler = self.wiki.getTiddler(title);\n\t\tif(tiddler) {\n\t\t\tif(self.tiddlersToIgnore.indexOf(title) !== -1) {\n\t\t\t\t// Ignore the core plugin and the ephemeral info plugin\n\t\t\t\tself.log(\"Ignoring tiddler: \" + title);\n\t\t\t} else {\n\t\t\t\tvar type = tiddler.fields.type,\n\t\t\t\t\tpluginType = tiddler.fields[\"plugin-type\"];\n\t\t\t\tif(type === \"application/json\" && pluginType) {\n\t\t\t\t\t// Plugin tiddler\n\t\t\t\t\tvar libraryDetails = self.findPluginInLibrary(title);\n\t\t\t\t\tif(libraryDetails) {\n\t\t\t\t\t\t// A plugin from the core library\n\t\t\t\t\t\tself.log(\"Adding built-in plugin: \" + libraryDetails.name);\n\t\t\t\t\t\tnewWikiInfo[libraryDetails.type] = newWikiInfo[libraryDetails.type] || [];\n\t\t\t\t\t\t$tw.utils.pushTop(newWikiInfo[libraryDetails.type],libraryDetails.name);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// A custom plugin\n\t\t\t\t\t\tself.log(\"Processing custom plugin: \" + title);\n\t\t\t\t\t\tself.saveCustomPlugin(tiddler);\n\t\t\t\t\t}\t\t\t\t\n\t\t\t\t} else {\n\t\t\t\t\t// Ordinary tiddler\n\t\t\t\t\tself.saveTiddler(\"tiddlers\",tiddler);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\t// Save the tiddlywiki.info file\n\tthis.saveJSONFile(\"tiddlywiki.info\",newWikiInfo);\n\tself.log(\"Writing tiddlywiki.info: \" + JSON.stringify(newWikiInfo,null,$tw.config.preferences.jsonSpaces));\n\treturn null;\n};\n\n/*\nTest whether the specified tiddler is a plugin in the plugin library\n*/\nWikiFolderMaker.prototype.findPluginInLibrary = function(title) {\n\tvar parts = title.split(\"/\"),\n\t\tpluginPath, type, name;\n\tif(parts[0] === \"$:\") {\n\t\tif(parts[1] === \"languages\" && parts.length === 3) {\n\t\t\tpluginPath = \"languages\" + path.sep + parts[2];\n\t\t\ttype = parts[1];\n\t\t\tname = parts[2];\n\t\t} else if(parts[1] === \"plugins\" || parts[1] === \"themes\" && parts.length === 4) {\n\t\t\tpluginPath = parts[1] + path.sep + parts[2] + path.sep + parts[3];\n\t\t\ttype = parts[1];\n\t\t\tname = parts[2] + \"/\" + parts[3];\n\t\t}\n\t}\n\tif(pluginPath && type && name) {\n\t\tpluginPath = path.resolve($tw.boot.bootPath,\"..\",pluginPath);\n\t\tif(fs.existsSync(pluginPath)) {\n\t\t\treturn {\n\t\t\t\tpluginPath: pluginPath,\n\t\t\t\ttype: type,\n\t\t\t\tname: name\n\t\t\t};\n\t\t}\n\t}\n\treturn false;\n};\n\nWikiFolderMaker.prototype.saveCustomPlugin = function(pluginTiddler) {\n\tvar self = this,\n\t\tpluginTitle = pluginTiddler.fields.title,\n\t\ttitleParts = pluginTitle.split(\"/\"),\n\t\tdirectory = $tw.utils.generateTiddlerFilepath(titleParts[titleParts.length - 1],{\n\t\t\tdirectory: path.resolve(this.wikiFolderPath,pluginTiddler.fields[\"plugin-type\"] + \"s\")\n\t\t}),\n\t\tpluginInfo = pluginTiddler.getFieldStrings({exclude: [\"text\",\"type\"]});\n\tthis.saveJSONFile(directory + path.sep + \"plugin.info\",pluginInfo);\n\tself.log(\"Writing \" + directory + path.sep + \"plugin.info: \" + JSON.stringify(pluginInfo,null,$tw.config.preferences.jsonSpaces));\n\tvar pluginTiddlers = JSON.parse(pluginTiddler.fields.text).tiddlers; // A hashmap of tiddlers in the plugin\n\t$tw.utils.each(pluginTiddlers,function(tiddler) {\n\t\tself.saveTiddler(directory,new $tw.Tiddler(tiddler));\n\t});\n};\n\nWikiFolderMaker.prototype.saveTiddler = function(directory,tiddler) {\n\tvar fileInfo = $tw.utils.generateTiddlerFileInfo(tiddler,{\n\t\tdirectory: path.resolve(this.wikiFolderPath,directory),\n\t\twiki: this.wiki\n\t});\n\t$tw.utils.saveTiddlerToFileSync(tiddler,fileInfo);\n};\n\nWikiFolderMaker.prototype.saveJSONFile = function(filename,json) {\n\tthis.saveTextFile(filename,JSON.stringify(json,null,$tw.config.preferences.jsonSpaces));\n};\n\nWikiFolderMaker.prototype.saveTextFile = function(filename,data) {\n\tthis.saveFile(filename,\"utf8\",data);\n};\n\nWikiFolderMaker.prototype.saveFile = function(filename,encoding,data) {\n\tvar filepath = path.resolve(this.wikiFolderPath,filename);\n\t$tw.utils.createFileDirectories(filepath);\n\tfs.writeFileSync(filepath,data,encoding);\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/server.js": {
"title": "$:/core/modules/commands/server.js",
"text": "/*\\\ntitle: $:/core/modules/commands/server.js\ntype: application/javascript\nmodule-type: command\n\nDeprecated legacy command for serving tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Server = require(\"$:/core/modules/server/server.js\").Server;\n\nexports.info = {\n\tname: \"server\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tvar self = this;\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(!$tw.boot.wikiTiddlersPath) {\n\t\t$tw.utils.warning(\"Warning: Wiki folder '\" + $tw.boot.wikiPath + \"' does not exist or is missing a tiddlywiki.info file\");\n\t}\n\t// Set up server\n\tthis.server = new Server({\n\t\twiki: this.commander.wiki,\n\t\tvariables: {\n\t\t\tport: this.params[0],\n\t\t\thost: this.params[6],\n\t\t\t\"root-tiddler\": this.params[1],\n\t\t\t\"root-render-type\": this.params[2],\n\t\t\t\"root-serve-type\": this.params[3],\n\t\t\tusername: this.params[4],\n\t\t\tpassword: this.params[5],\n\t\t\t\"path-prefix\": this.params[7],\n\t\t\t\"debug-level\": this.params[8]\n\t\t}\n\t});\n\tvar nodeServer = this.server.listen();\n\t$tw.hooks.invokeHook(\"th-server-command-post-start\",this.server,nodeServer,\"tiddlywiki\");\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/setfield.js": {
"title": "$:/core/modules/commands/setfield.js",
"text": "/*\\\ntitle: $:/core/modules/commands/setfield.js\ntype: application/javascript\nmodule-type: command\n\nCommand to modify selected tiddlers to set a field to the text of a template tiddler that has been wikified with the selected tiddler as the current tiddler.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.info = {\n\tname: \"setfield\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 4) {\n\t\treturn \"Missing parameters\";\n\t}\n\tvar self = this,\n\t\twiki = this.commander.wiki,\n\t\tfilter = this.params[0],\n\t\tfieldname = this.params[1] || \"text\",\n\t\ttemplatetitle = this.params[2],\n\t\trendertype = this.params[3] || \"text/plain\",\n\t\ttiddlers = wiki.filterTiddlers(filter);\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar parser = wiki.parseTiddler(templatetitle),\n\t\t\tnewFields = {},\n\t\t\ttiddler = wiki.getTiddler(title);\n\t\tif(parser) {\n\t\t\tvar widgetNode = wiki.makeWidget(parser,{variables: {currentTiddler: title}});\n\t\t\tvar container = $tw.fakeDocument.createElement(\"div\");\n\t\t\twidgetNode.render(container,null);\n\t\t\tnewFields[fieldname] = rendertype === \"text/html\" ? container.innerHTML : container.textContent;\n\t\t} else {\n\t\t\tnewFields[fieldname] = undefined;\n\t\t}\n\t\twiki.addTiddler(new $tw.Tiddler(tiddler,newFields));\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/unpackplugin.js": {
"title": "$:/core/modules/commands/unpackplugin.js",
"text": "/*\\\ntitle: $:/core/modules/commands/unpackplugin.js\ntype: application/javascript\nmodule-type: command\n\nCommand to extract the shadow tiddlers from within a plugin\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"unpackplugin\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing plugin name\";\n\t}\n\tvar self = this,\n\t\ttitle = this.params[0],\n\t\tpluginData = this.commander.wiki.getTiddlerDataCached(title);\n\tif(!pluginData) {\n\t\treturn \"Plugin '\" + title + \"' not found\";\n\t}\n\t$tw.utils.each(pluginData.tiddlers,function(tiddler) {\n\t\tself.commander.wiki.addTiddler(new $tw.Tiddler(tiddler));\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/verbose.js": {
"title": "$:/core/modules/commands/verbose.js",
"text": "/*\\\ntitle: $:/core/modules/commands/verbose.js\ntype: application/javascript\nmodule-type: command\n\nVerbose command\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"verbose\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\tthis.commander.verbose = true;\n\t// Output the boot message log\n\tthis.commander.streams.output.write(\"Boot log:\\n \" + $tw.boot.logMessages.join(\"\\n \") + \"\\n\");\n\treturn null; // No error\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/version.js": {
"title": "$:/core/modules/commands/version.js",
"text": "/*\\\ntitle: $:/core/modules/commands/version.js\ntype: application/javascript\nmodule-type: command\n\nVersion command\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"version\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\tthis.commander.streams.output.write($tw.version + \"\\n\");\n\treturn null; // No error\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/config.js": {
"title": "$:/core/modules/config.js",
"text": "/*\\\ntitle: $:/core/modules/config.js\ntype: application/javascript\nmodule-type: config\n\nCore configuration constants\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.preferences = {};\n\nexports.preferences.notificationDuration = 3 * 1000;\nexports.preferences.jsonSpaces = 4;\n\nexports.textPrimitives = {\n\tupperLetter: \"[A-Z\\u00c0-\\u00d6\\u00d8-\\u00de\\u0150\\u0170]\",\n\tlowerLetter: \"[a-z\\u00df-\\u00f6\\u00f8-\\u00ff\\u0151\\u0171]\",\n\tanyLetter: \"[A-Za-z0-9\\u00c0-\\u00d6\\u00d8-\\u00de\\u00df-\\u00f6\\u00f8-\\u00ff\\u0150\\u0170\\u0151\\u0171]\",\n\tblockPrefixLetters:\t\"[A-Za-z0-9-_\\u00c0-\\u00d6\\u00d8-\\u00de\\u00df-\\u00f6\\u00f8-\\u00ff\\u0150\\u0170\\u0151\\u0171]\"\n};\n\nexports.textPrimitives.unWikiLink = \"~\";\nexports.textPrimitives.wikiLink = exports.textPrimitives.upperLetter + \"+\" +\n\texports.textPrimitives.lowerLetter + \"+\" +\n\texports.textPrimitives.upperLetter +\n\texports.textPrimitives.anyLetter + \"*\";\n\nexports.htmlEntities = {quot:34, amp:38, apos:39, lt:60, gt:62, nbsp:160, iexcl:161, cent:162, pound:163, curren:164, yen:165, brvbar:166, sect:167, uml:168, copy:169, ordf:170, laquo:171, not:172, shy:173, reg:174, macr:175, deg:176, plusmn:177, sup2:178, sup3:179, acute:180, micro:181, para:182, middot:183, cedil:184, sup1:185, ordm:186, raquo:187, frac14:188, frac12:189, frac34:190, iquest:191, Agrave:192, Aacute:193, Acirc:194, Atilde:195, Auml:196, Aring:197, AElig:198, Ccedil:199, Egrave:200, Eacute:201, Ecirc:202, Euml:203, Igrave:204, Iacute:205, Icirc:206, Iuml:207, ETH:208, Ntilde:209, Ograve:210, Oacute:211, Ocirc:212, Otilde:213, Ouml:214, times:215, Oslash:216, Ugrave:217, Uacute:218, Ucirc:219, Uuml:220, Yacute:221, THORN:222, szlig:223, agrave:224, aacute:225, acirc:226, atilde:227, auml:228, aring:229, aelig:230, ccedil:231, egrave:232, eacute:233, ecirc:234, euml:235, igrave:236, iacute:237, icirc:238, iuml:239, eth:240, ntilde:241, ograve:242, oacute:243, ocirc:244, otilde:245, ouml:246, divide:247, oslash:248, ugrave:249, uacute:250, ucirc:251, uuml:252, yacute:253, thorn:254, yuml:255, OElig:338, oelig:339, Scaron:352, scaron:353, Yuml:376, fnof:402, circ:710, tilde:732, Alpha:913, Beta:914, Gamma:915, Delta:916, Epsilon:917, Zeta:918, Eta:919, Theta:920, Iota:921, Kappa:922, Lambda:923, Mu:924, Nu:925, Xi:926, Omicron:927, Pi:928, Rho:929, Sigma:931, Tau:932, Upsilon:933, Phi:934, Chi:935, Psi:936, Omega:937, alpha:945, beta:946, gamma:947, delta:948, epsilon:949, zeta:950, eta:951, theta:952, iota:953, kappa:954, lambda:955, mu:956, nu:957, xi:958, omicron:959, pi:960, rho:961, sigmaf:962, sigma:963, tau:964, upsilon:965, phi:966, chi:967, psi:968, omega:969, thetasym:977, upsih:978, piv:982, ensp:8194, emsp:8195, thinsp:8201, zwnj:8204, zwj:8205, lrm:8206, rlm:8207, ndash:8211, mdash:8212, lsquo:8216, rsquo:8217, sbquo:8218, ldquo:8220, rdquo:8221, bdquo:8222, dagger:8224, Dagger:8225, bull:8226, hellip:8230, permil:8240, prime:8242, Prime:8243, lsaquo:8249, rsaquo:8250, oline:8254, frasl:8260, euro:8364, image:8465, weierp:8472, real:8476, trade:8482, alefsym:8501, larr:8592, uarr:8593, rarr:8594, darr:8595, harr:8596, crarr:8629, lArr:8656, uArr:8657, rArr:8658, dArr:8659, hArr:8660, forall:8704, part:8706, exist:8707, empty:8709, nabla:8711, isin:8712, notin:8713, ni:8715, prod:8719, sum:8721, minus:8722, lowast:8727, radic:8730, prop:8733, infin:8734, ang:8736, and:8743, or:8744, cap:8745, cup:8746, int:8747, there4:8756, sim:8764, cong:8773, asymp:8776, ne:8800, equiv:8801, le:8804, ge:8805, sub:8834, sup:8835, nsub:8836, sube:8838, supe:8839, oplus:8853, otimes:8855, perp:8869, sdot:8901, lceil:8968, rceil:8969, lfloor:8970, rfloor:8971, lang:9001, rang:9002, loz:9674, spades:9824, clubs:9827, hearts:9829, diams:9830 };\n\nexports.htmlVoidElements = \"area,base,br,col,command,embed,hr,img,input,keygen,link,meta,param,source,track,wbr\".split(\",\");\n\nexports.htmlBlockElements = \"address,article,aside,audio,blockquote,canvas,dd,div,dl,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,hr,li,noscript,ol,output,p,pre,section,table,tfoot,ul,video\".split(\",\");\n\nexports.htmlUnsafeElements = \"script\".split(\",\");\n\n})();\n",
"type": "application/javascript",
"module-type": "config"
},
"$:/core/modules/deserializers.js": {
"title": "$:/core/modules/deserializers.js",
"text": "/*\\\ntitle: $:/core/modules/deserializers.js\ntype: application/javascript\nmodule-type: tiddlerdeserializer\n\nFunctions to deserialise tiddlers from a block of text\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nUtility function to parse an old-style tiddler DIV in a *.tid file. It looks like this:\n\n<div title=\"Title\" creator=\"JoeBloggs\" modifier=\"JoeBloggs\" created=\"201102111106\" modified=\"201102111310\" tags=\"myTag [[my long tag]]\">\n<pre>The text of the tiddler (without the expected HTML encoding).\n</pre>\n</div>\n\nNote that the field attributes are HTML encoded, but that the body of the <PRE> tag is not encoded.\n\nWhen these tiddler DIVs are encountered within a TiddlyWiki HTML file then the body is encoded in the usual way.\n*/\nvar parseTiddlerDiv = function(text /* [,fields] */) {\n\t// Slot together the default results\n\tvar result = {};\n\tif(arguments.length > 1) {\n\t\tfor(var f=1; f<arguments.length; f++) {\n\t\t\tvar fields = arguments[f];\n\t\t\tfor(var t in fields) {\n\t\t\t\tresult[t] = fields[t];\t\t\n\t\t\t}\n\t\t}\n\t}\n\t// Parse the DIV body\n\tvar startRegExp = /^\\s*<div\\s+([^>]*)>(\\s*<pre>)?/gi,\n\t\tendRegExp,\n\t\tmatch = startRegExp.exec(text);\n\tif(match) {\n\t\t// Old-style DIVs don't have the <pre> tag\n\t\tif(match[2]) {\n\t\t\tendRegExp = /<\\/pre>\\s*<\\/div>\\s*$/gi;\n\t\t} else {\n\t\t\tendRegExp = /<\\/div>\\s*$/gi;\n\t\t}\n\t\tvar endMatch = endRegExp.exec(text);\n\t\tif(endMatch) {\n\t\t\t// Extract the text\n\t\t\tresult.text = text.substring(match.index + match[0].length,endMatch.index);\n\t\t\t// Process the attributes\n\t\t\tvar attrRegExp = /\\s*([^=\\s]+)\\s*=\\s*(?:\"([^\"]*)\"|'([^']*)')/gi,\n\t\t\t\tattrMatch;\n\t\t\tdo {\n\t\t\t\tattrMatch = attrRegExp.exec(match[1]);\n\t\t\t\tif(attrMatch) {\n\t\t\t\t\tvar name = attrMatch[1];\n\t\t\t\t\tvar value = attrMatch[2] !== undefined ? attrMatch[2] : attrMatch[3];\n\t\t\t\t\tresult[name] = value;\n\t\t\t\t}\n\t\t\t} while(attrMatch);\n\t\t\treturn result;\n\t\t}\n\t}\n\treturn undefined;\n};\n\nexports[\"application/x-tiddler-html-div\"] = function(text,fields) {\n\treturn [parseTiddlerDiv(text,fields)];\n};\n\nexports[\"application/json\"] = function(text,fields) {\n\tvar incoming,\n\t\tresults = [];\n\ttry {\n\t\tincoming = JSON.parse(text);\n\t} catch(e) {\n\t\tincoming = [{\n\t\t\ttitle: \"JSON error: \" + e,\n\t\t\ttext: \"\"\n\t\t}]\n\t}\n\tif(!$tw.utils.isArray(incoming)) {\n\t\tincoming = [incoming];\n\t}\n\tfor(var t=0; t<incoming.length; t++) {\n\t\tvar incomingFields = incoming[t],\n\t\t\tfields = {};\n\t\tfor(var f in incomingFields) {\n\t\t\tif(typeof incomingFields[f] === \"string\") {\n\t\t\t\tfields[f] = incomingFields[f];\n\t\t\t}\n\t\t}\n\t\tresults.push(fields);\n\t}\n\treturn results;\n};\n\n/*\nParse an HTML file into tiddlers. There are three possibilities:\n# A TiddlyWiki classic HTML file containing `text/x-tiddlywiki` tiddlers\n# A TiddlyWiki5 HTML file containing `text/vnd.tiddlywiki` tiddlers\n# An ordinary HTML file\n*/\nexports[\"text/html\"] = function(text,fields) {\n\t// Check if we've got a store area\n\tvar storeAreaMarkerRegExp = /<div id=[\"']?storeArea['\"]?( style=[\"']?display:none;[\"']?)?>/gi,\n\t\tmatch = storeAreaMarkerRegExp.exec(text);\n\tif(match) {\n\t\t// If so, it's either a classic TiddlyWiki file or an unencrypted TW5 file\n\t\t// First read the normal tiddlers\n\t\tvar results = deserializeTiddlyWikiFile(text,storeAreaMarkerRegExp.lastIndex,!!match[1],fields);\n\t\t// Then any system tiddlers\n\t\tvar systemAreaMarkerRegExp = /<div id=[\"']?systemArea['\"]?( style=[\"']?display:none;[\"']?)?>/gi,\n\t\t\tsysMatch = systemAreaMarkerRegExp.exec(text);\n\t\tif(sysMatch) {\n\t\t\tresults.push.apply(results,deserializeTiddlyWikiFile(text,systemAreaMarkerRegExp.lastIndex,!!sysMatch[1],fields));\n\t\t}\n\t\treturn results;\n\t} else {\n\t\t// Check whether we've got an encrypted file\n\t\tvar encryptedStoreArea = $tw.utils.extractEncryptedStoreArea(text);\n\t\tif(encryptedStoreArea) {\n\t\t\t// If so, attempt to decrypt it using the current password\n\t\t\treturn $tw.utils.decryptStoreArea(encryptedStoreArea);\n\t\t} else {\n\t\t\t// It's not a TiddlyWiki so we'll return the entire HTML file as a tiddler\n\t\t\treturn deserializeHtmlFile(text,fields);\n\t\t}\n\t}\n};\n\nfunction deserializeHtmlFile(text,fields) {\n\tvar result = {};\n\t$tw.utils.each(fields,function(value,name) {\n\t\tresult[name] = value;\n\t});\n\tresult.text = text;\n\tresult.type = \"text/html\";\n\treturn [result];\n}\n\nfunction deserializeTiddlyWikiFile(text,storeAreaEnd,isTiddlyWiki5,fields) {\n\tvar results = [],\n\t\tendOfDivRegExp = /(<\\/div>\\s*)/gi,\n\t\tstartPos = storeAreaEnd,\n\t\tdefaultType = isTiddlyWiki5 ? undefined : \"text/x-tiddlywiki\";\n\tendOfDivRegExp.lastIndex = startPos;\n\tvar match = endOfDivRegExp.exec(text);\n\twhile(match) {\n\t\tvar endPos = endOfDivRegExp.lastIndex,\n\t\t\ttiddlerFields = parseTiddlerDiv(text.substring(startPos,endPos),fields,{type: defaultType});\n\t\tif(!tiddlerFields) {\n\t\t\tbreak;\n\t\t}\n\t\t$tw.utils.each(tiddlerFields,function(value,name) {\n\t\t\tif(typeof value === \"string\") {\n\t\t\t\ttiddlerFields[name] = $tw.utils.htmlDecode(value);\n\t\t\t}\n\t\t});\n\t\tif(tiddlerFields.text !== null) {\n\t\t\tresults.push(tiddlerFields);\n\t\t}\n\t\tstartPos = endPos;\n\t\tmatch = endOfDivRegExp.exec(text);\n\t}\n\treturn results;\n}\n\n})();\n",
"type": "application/javascript",
"module-type": "tiddlerdeserializer"
},
"$:/core/modules/editor/engines/framed.js": {
"title": "$:/core/modules/editor/engines/framed.js",
"text": "/*\\\ntitle: $:/core/modules/editor/engines/framed.js\ntype: application/javascript\nmodule-type: library\n\nText editor engine based on a simple input or textarea within an iframe. This is done so that the selection is preserved even when clicking away from the textarea\n\n\\*/\n(function(){\n\n/*jslint node: true,browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar HEIGHT_VALUE_TITLE = \"$:/config/TextEditor/EditorHeight/Height\";\n\nfunction FramedEngine(options) {\n\t// Save our options\n\toptions = options || {};\n\tthis.widget = options.widget;\n\tthis.value = options.value;\n\tthis.parentNode = options.parentNode;\n\tthis.nextSibling = options.nextSibling;\n\t// Create our hidden dummy text area for reading styles\n\tthis.dummyTextArea = this.widget.document.createElement(\"textarea\");\n\tif(this.widget.editClass) {\n\t\tthis.dummyTextArea.className = this.widget.editClass;\n\t}\n\tthis.dummyTextArea.setAttribute(\"hidden\",\"true\");\n\tthis.parentNode.insertBefore(this.dummyTextArea,this.nextSibling);\n\tthis.widget.domNodes.push(this.dummyTextArea);\n\t// Create the iframe\n\tthis.iframeNode = this.widget.document.createElement(\"iframe\");\n\tthis.parentNode.insertBefore(this.iframeNode,this.nextSibling);\n\tthis.iframeDoc = this.iframeNode.contentWindow.document;\n\t// (Firefox requires us to put some empty content in the iframe)\n\tthis.iframeDoc.open();\n\tthis.iframeDoc.write(\"\");\n\tthis.iframeDoc.close();\n\t// Style the iframe\n\tthis.iframeNode.className = this.dummyTextArea.className;\n\tthis.iframeNode.style.border = \"none\";\n\tthis.iframeNode.style.padding = \"0\";\n\tthis.iframeNode.style.resize = \"none\";\n\tthis.iframeNode.style[\"background-color\"] = this.widget.wiki.extractTiddlerDataItem(this.widget.wiki.getTiddlerText(\"$:/palette\"),\"tiddler-editor-background\");\n\tthis.iframeDoc.body.style.margin = \"0\";\n\tthis.iframeDoc.body.style.padding = \"0\";\n\tthis.widget.domNodes.push(this.iframeNode);\n\t// Construct the textarea or input node\n\tvar tag = this.widget.editTag;\n\tif($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) {\n\t\ttag = \"input\";\n\t}\n\tthis.domNode = this.iframeDoc.createElement(tag);\n\t// Set the text\n\tif(this.widget.editTag === \"textarea\") {\n\t\tthis.domNode.appendChild(this.iframeDoc.createTextNode(this.value));\n\t} else {\n\t\tthis.domNode.value = this.value;\n\t}\n\t// Set the attributes\n\tif(this.widget.editType) {\n\t\tthis.domNode.setAttribute(\"type\",this.widget.editType);\n\t}\n\tif(this.widget.editPlaceholder) {\n\t\tthis.domNode.setAttribute(\"placeholder\",this.widget.editPlaceholder);\n\t}\n\tif(this.widget.editSize) {\n\t\tthis.domNode.setAttribute(\"size\",this.widget.editSize);\n\t}\n\tif(this.widget.editRows) {\n\t\tthis.domNode.setAttribute(\"rows\",this.widget.editRows);\n\t}\n\tif(this.widget.editTabIndex) {\n\t\tthis.iframeNode.setAttribute(\"tabindex\",this.widget.editTabIndex);\n\t}\n\t// Copy the styles from the dummy textarea\n\tthis.copyStyles();\n\t// Add event listeners\n\t$tw.utils.addEventListeners(this.domNode,[\n\t\t{name: \"click\",handlerObject: this,handlerMethod: \"handleClickEvent\"},\n\t\t{name: \"input\",handlerObject: this,handlerMethod: \"handleInputEvent\"},\n\t\t{name: \"keydown\",handlerObject: this.widget,handlerMethod: \"handleKeydownEvent\"}\n\t]);\n\t// Insert the element into the DOM\n\tthis.iframeDoc.body.appendChild(this.domNode);\n}\n\n/*\nCopy styles from the dummy text area to the textarea in the iframe\n*/\nFramedEngine.prototype.copyStyles = function() {\n\t// Copy all styles\n\t$tw.utils.copyStyles(this.dummyTextArea,this.domNode);\n\t// Override the ones that should not be set the same as the dummy textarea\n\tthis.domNode.style.display = \"block\";\n\tthis.domNode.style.width = \"100%\";\n\tthis.domNode.style.margin = \"0\";\n\tthis.domNode.style[\"background-color\"] = this.widget.wiki.extractTiddlerDataItem(this.widget.wiki.getTiddlerText(\"$:/palette\"),\"tiddler-editor-background\");\n\t// In Chrome setting -webkit-text-fill-color overrides the placeholder text colour\n\tthis.domNode.style[\"-webkit-text-fill-color\"] = \"currentcolor\";\n};\n\n/*\nSet the text of the engine if it doesn't currently have focus\n*/\nFramedEngine.prototype.setText = function(text,type) {\n\tif(!this.domNode.isTiddlyWikiFakeDom) {\n\t\tif(this.domNode.ownerDocument.activeElement !== this.domNode) {\n\t\t\tthis.domNode.value = text;\n\t\t}\n\t\t// Fix the height if needed\n\t\tthis.fixHeight();\n\t}\n};\n\n/*\nGet the text of the engine\n*/\nFramedEngine.prototype.getText = function() {\n\treturn this.domNode.value;\n};\n\n/*\nFix the height of textarea to fit content\n*/\nFramedEngine.prototype.fixHeight = function() {\n\t// Make sure styles are updated\n\tthis.copyStyles();\n\t// Adjust height\n\tif(this.widget.editTag === \"textarea\") {\n\t\tif(this.widget.editAutoHeight) {\n\t\t\tif(this.domNode && !this.domNode.isTiddlyWikiFakeDom) {\n\t\t\t\tvar newHeight = $tw.utils.resizeTextAreaToFit(this.domNode,this.widget.editMinHeight);\n\t\t\t\tthis.iframeNode.style.height = (newHeight + 14) + \"px\"; // +14 for the border on the textarea\n\t\t\t}\n\t\t} else {\n\t\t\tvar fixedHeight = parseInt(this.widget.wiki.getTiddlerText(HEIGHT_VALUE_TITLE,\"400px\"),10);\n\t\t\tfixedHeight = Math.max(fixedHeight,20);\n\t\t\tthis.domNode.style.height = fixedHeight + \"px\";\n\t\t\tthis.iframeNode.style.height = (fixedHeight + 14) + \"px\";\n\t\t}\n\t}\n};\n\n/*\nFocus the engine node\n*/\nFramedEngine.prototype.focus = function() {\n\tif(this.domNode.focus && this.domNode.select) {\n\t\tthis.domNode.focus();\n\t\tthis.domNode.select();\n\t}\n};\n\n/*\nHandle a click\n*/\nFramedEngine.prototype.handleClickEvent = function(event) {\n\tthis.fixHeight();\n\treturn true;\n};\n\n/*\nHandle a dom \"input\" event which occurs when the text has changed\n*/\nFramedEngine.prototype.handleInputEvent = function(event) {\n\tthis.widget.saveChanges(this.getText());\n\tthis.fixHeight();\n\treturn true;\n};\n\n/*\nCreate a blank structure representing a text operation\n*/\nFramedEngine.prototype.createTextOperation = function() {\n\tvar operation = {\n\t\ttext: this.domNode.value,\n\t\tselStart: this.domNode.selectionStart,\n\t\tselEnd: this.domNode.selectionEnd,\n\t\tcutStart: null,\n\t\tcutEnd: null,\n\t\treplacement: null,\n\t\tnewSelStart: null,\n\t\tnewSelEnd: null\n\t};\n\toperation.selection = operation.text.substring(operation.selStart,operation.selEnd);\n\treturn operation;\n};\n\n/*\nExecute a text operation\n*/\nFramedEngine.prototype.executeTextOperation = function(operation) {\n\t// Perform the required changes to the text area and the underlying tiddler\n\tvar newText = operation.text;\n\tif(operation.replacement !== null) {\n\t\tnewText = operation.text.substring(0,operation.cutStart) + operation.replacement + operation.text.substring(operation.cutEnd);\n\t\t// Attempt to use a execCommand to modify the value of the control\n\t\tif(this.iframeDoc.queryCommandSupported(\"insertText\") && this.iframeDoc.queryCommandSupported(\"delete\") && !$tw.browser.isFirefox) {\n\t\t\tthis.domNode.focus();\n\t\t\tthis.domNode.setSelectionRange(operation.cutStart,operation.cutEnd);\n\t\t\tif(operation.replacement === \"\") {\n\t\t\t\tthis.iframeDoc.execCommand(\"delete\",false,\"\");\n\t\t\t} else {\n\t\t\t\tthis.iframeDoc.execCommand(\"insertText\",false,operation.replacement);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.domNode.value = newText;\n\t\t}\n\t\tthis.domNode.focus();\n\t\tthis.domNode.setSelectionRange(operation.newSelStart,operation.newSelEnd);\n\t}\n\tthis.domNode.focus();\n\treturn newText;\n};\n\nexports.FramedEngine = FramedEngine;\n\n})();\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/core/modules/editor/engines/simple.js": {
"title": "$:/core/modules/editor/engines/simple.js",
"text": "/*\\\ntitle: $:/core/modules/editor/engines/simple.js\ntype: application/javascript\nmodule-type: library\n\nText editor engine based on a simple input or textarea tag\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar HEIGHT_VALUE_TITLE = \"$:/config/TextEditor/EditorHeight/Height\";\n\nfunction SimpleEngine(options) {\n\t// Save our options\n\toptions = options || {};\n\tthis.widget = options.widget;\n\tthis.value = options.value;\n\tthis.parentNode = options.parentNode;\n\tthis.nextSibling = options.nextSibling;\n\t// Construct the textarea or input node\n\tvar tag = this.widget.editTag;\n\tif($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) {\n\t\ttag = \"input\";\n\t}\n\tthis.domNode = this.widget.document.createElement(tag);\n\t// Set the text\n\tif(this.widget.editTag === \"textarea\") {\n\t\tthis.domNode.appendChild(this.widget.document.createTextNode(this.value));\n\t} else {\n\t\tthis.domNode.value = this.value;\n\t}\n\t// Set the attributes\n\tif(this.widget.editType) {\n\t\tthis.domNode.setAttribute(\"type\",this.widget.editType);\n\t}\n\tif(this.widget.editPlaceholder) {\n\t\tthis.domNode.setAttribute(\"placeholder\",this.widget.editPlaceholder);\n\t}\n\tif(this.widget.editSize) {\n\t\tthis.domNode.setAttribute(\"size\",this.widget.editSize);\n\t}\n\tif(this.widget.editRows) {\n\t\tthis.domNode.setAttribute(\"rows\",this.widget.editRows);\n\t}\n\tif(this.widget.editClass) {\n\t\tthis.domNode.className = this.widget.editClass;\n\t}\n\tif(this.widget.editTabIndex) {\n\t\tthis.domNode.setAttribute(\"tabindex\",this.widget.editTabIndex);\n\t}\n\t// Add an input event handler\n\t$tw.utils.addEventListeners(this.domNode,[\n\t\t{name: \"focus\", handlerObject: this, handlerMethod: \"handleFocusEvent\"},\n\t\t{name: \"input\", handlerObject: this, handlerMethod: \"handleInputEvent\"}\n\t]);\n\t// Insert the element into the DOM\n\tthis.parentNode.insertBefore(this.domNode,this.nextSibling);\n\tthis.widget.domNodes.push(this.domNode);\n}\n\n/*\nSet the text of the engine if it doesn't currently have focus\n*/\nSimpleEngine.prototype.setText = function(text,type) {\n\tif(!this.domNode.isTiddlyWikiFakeDom) {\n\t\tif(this.domNode.ownerDocument.activeElement !== this.domNode || text === \"\") {\n\t\t\tthis.domNode.value = text;\n\t\t}\n\t\t// Fix the height if needed\n\t\tthis.fixHeight();\n\t}\n};\n\n/*\nGet the text of the engine\n*/\nSimpleEngine.prototype.getText = function() {\n\treturn this.domNode.value;\n};\n\n/*\nFix the height of textarea to fit content\n*/\nSimpleEngine.prototype.fixHeight = function() {\n\tif(this.widget.editTag === \"textarea\") {\n\t\tif(this.widget.editAutoHeight) {\n\t\t\tif(this.domNode && !this.domNode.isTiddlyWikiFakeDom) {\n\t\t\t\t$tw.utils.resizeTextAreaToFit(this.domNode,this.widget.editMinHeight);\n\t\t\t}\n\t\t} else {\n\t\t\tvar fixedHeight = parseInt(this.widget.wiki.getTiddlerText(HEIGHT_VALUE_TITLE,\"400px\"),10);\n\t\t\tfixedHeight = Math.max(fixedHeight,20);\n\t\t\tthis.domNode.style.height = fixedHeight + \"px\";\n\t\t}\n\t}\n};\n\n/*\nFocus the engine node\n*/\nSimpleEngine.prototype.focus = function() {\n\tif(this.domNode.focus && this.domNode.select) {\n\t\tthis.domNode.focus();\n\t\tthis.domNode.select();\n\t}\n};\n\n/*\nHandle a dom \"input\" event which occurs when the text has changed\n*/\nSimpleEngine.prototype.handleInputEvent = function(event) {\n\tthis.widget.saveChanges(this.getText());\n\tthis.fixHeight();\n\treturn true;\n};\n\n/*\nHandle a dom \"focus\" event\n*/\nSimpleEngine.prototype.handleFocusEvent = function(event) {\n\tif(this.widget.editFocusPopup) {\n\t\t$tw.popup.triggerPopup({\n\t\t\tdomNode: this.domNode,\n\t\t\ttitle: this.widget.editFocusPopup,\n\t\t\twiki: this.widget.wiki,\n\t\t\tforce: true\n\t\t});\n\t}\n\treturn true;\n};\n\n/*\nCreate a blank structure representing a text operation\n*/\nSimpleEngine.prototype.createTextOperation = function() {\n\treturn null;\n};\n\n/*\nExecute a text operation\n*/\nSimpleEngine.prototype.executeTextOperation = function(operation) {\n};\n\nexports.SimpleEngine = SimpleEngine;\n\n})();\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/core/modules/editor/factory.js": {
"title": "$:/core/modules/editor/factory.js",
"text": "/*\\\ntitle: $:/core/modules/editor/factory.js\ntype: application/javascript\nmodule-type: library\n\nFactory for constructing text editor widgets with specified engines for the toolbar and non-toolbar cases\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar DEFAULT_MIN_TEXT_AREA_HEIGHT = \"100px\"; // Minimum height of textareas in pixels\n\n// Configuration tiddlers\nvar HEIGHT_MODE_TITLE = \"$:/config/TextEditor/EditorHeight/Mode\";\nvar ENABLE_TOOLBAR_TITLE = \"$:/config/TextEditor/EnableToolbar\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nfunction editTextWidgetFactory(toolbarEngine,nonToolbarEngine) {\n\n\tvar EditTextWidget = function(parseTreeNode,options) {\n\t\t// Initialise the editor operations if they've not been done already\n\t\tif(!this.editorOperations) {\n\t\t\tEditTextWidget.prototype.editorOperations = {};\n\t\t\t$tw.modules.applyMethods(\"texteditoroperation\",this.editorOperations);\n\t\t}\n\t\tthis.initialise(parseTreeNode,options);\n\t};\n\n\t/*\n\tInherit from the base widget class\n\t*/\n\tEditTextWidget.prototype = new Widget();\n\n\t/*\n\tRender this widget into the DOM\n\t*/\n\tEditTextWidget.prototype.render = function(parent,nextSibling) {\n\t\t// Save the parent dom node\n\t\tthis.parentDomNode = parent;\n\t\t// Compute our attributes\n\t\tthis.computeAttributes();\n\t\t// Execute our logic\n\t\tthis.execute();\n\t\t// Create the wrapper for the toolbar and render its content\n\t\tif(this.editShowToolbar) {\n\t\t\tthis.toolbarNode = this.document.createElement(\"div\");\n\t\t\tthis.toolbarNode.className = \"tc-editor-toolbar\";\n\t\t\tparent.insertBefore(this.toolbarNode,nextSibling);\n\t\t\tthis.renderChildren(this.toolbarNode,null);\n\t\t\tthis.domNodes.push(this.toolbarNode);\n\t\t}\n\t\t// Create our element\n\t\tvar editInfo = this.getEditInfo(),\n\t\t\tEngine = this.editShowToolbar ? toolbarEngine : nonToolbarEngine;\n\t\tthis.engine = new Engine({\n\t\t\t\twidget: this,\n\t\t\t\tvalue: editInfo.value,\n\t\t\t\ttype: editInfo.type,\n\t\t\t\tparentNode: parent,\n\t\t\t\tnextSibling: nextSibling\n\t\t\t});\n\t\t// Call the postRender hook\n\t\tif(this.postRender) {\n\t\t\tthis.postRender();\n\t\t}\n\t\t// Fix height\n\t\tthis.engine.fixHeight();\n\t\t// Focus if required\n\t\tif(this.editFocus === \"true\" || this.editFocus === \"yes\") {\n\t\t\tthis.engine.focus();\n\t\t}\n\t\t// Add widget message listeners\n\t\tthis.addEventListeners([\n\t\t\t{type: \"tm-edit-text-operation\", handler: \"handleEditTextOperationMessage\"}\n\t\t]);\n\t};\n\n\t/*\n\tGet the tiddler being edited and current value\n\t*/\n\tEditTextWidget.prototype.getEditInfo = function() {\n\t\t// Get the edit value\n\t\tvar self = this,\n\t\t\tvalue,\n\t\t\ttype = \"text/plain\",\n\t\t\tupdate;\n\t\tif(this.editIndex) {\n\t\t\tvalue = this.wiki.extractTiddlerDataItem(this.editTitle,this.editIndex,this.editDefault);\n\t\t\tupdate = function(value) {\n\t\t\t\tvar data = self.wiki.getTiddlerData(self.editTitle,{});\n\t\t\t\tif(data[self.editIndex] !== value) {\n\t\t\t\t\tdata[self.editIndex] = value;\n\t\t\t\t\tself.wiki.setTiddlerData(self.editTitle,data);\n\t\t\t\t}\n\t\t\t};\n\t\t} else {\n\t\t\t// Get the current tiddler and the field name\n\t\t\tvar tiddler = this.wiki.getTiddler(this.editTitle);\n\t\t\tif(tiddler) {\n\t\t\t\t// If we've got a tiddler, the value to display is the field string value\n\t\t\t\tvalue = tiddler.getFieldString(this.editField);\n\t\t\t\tif(this.editField === \"text\") {\n\t\t\t\t\ttype = tiddler.fields.type || \"text/vnd.tiddlywiki\";\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Otherwise, we need to construct a default value for the editor\n\t\t\t\tswitch(this.editField) {\n\t\t\t\t\tcase \"text\":\n\t\t\t\t\t\tvalue = \"Type the text for the tiddler '\" + this.editTitle + \"'\";\n\t\t\t\t\t\ttype = \"text/vnd.tiddlywiki\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"title\":\n\t\t\t\t\t\tvalue = this.editTitle;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tvalue = \"\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif(this.editDefault !== undefined) {\n\t\t\t\t\tvalue = this.editDefault;\n\t\t\t\t}\n\t\t\t}\n\t\t\tupdate = function(value) {\n\t\t\t\tvar tiddler = self.wiki.getTiddler(self.editTitle),\n\t\t\t\t\tupdateFields = {\n\t\t\t\t\t\ttitle: self.editTitle\n\t\t\t\t\t};\n\t\t\t\tupdateFields[self.editField] = value;\n\t\t\t\tself.wiki.addTiddler(new $tw.Tiddler(self.wiki.getCreationFields(),tiddler,updateFields,self.wiki.getModificationFields()));\n\t\t\t};\n\t\t}\n\t\tif(this.editType) {\n\t\t\ttype = this.editType;\n\t\t}\n\t\treturn {value: value || \"\", type: type, update: update};\n\t};\n\n\t/*\n\tHandle an edit text operation message from the toolbar\n\t*/\n\tEditTextWidget.prototype.handleEditTextOperationMessage = function(event) {\n\t\t// Prepare information about the operation\n\t\tvar operation = this.engine.createTextOperation();\n\t\t// Invoke the handler for the selected operation\n\t\tvar handler = this.editorOperations[event.param];\n\t\tif(handler) {\n\t\t\thandler.call(this,event,operation);\n\t\t}\n\t\t// Execute the operation via the engine\n\t\tvar newText = this.engine.executeTextOperation(operation);\n\t\t// Fix the tiddler height and save changes\n\t\tthis.engine.fixHeight();\n\t\tthis.saveChanges(newText);\n\t};\n\n\t/*\n\tCompute the internal state of the widget\n\t*/\n\tEditTextWidget.prototype.execute = function() {\n\t\t// Get our parameters\n\t\tthis.editTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\t\tthis.editField = this.getAttribute(\"field\",\"text\");\n\t\tthis.editIndex = this.getAttribute(\"index\");\n\t\tthis.editDefault = this.getAttribute(\"default\");\n\t\tthis.editClass = this.getAttribute(\"class\");\n\t\tthis.editPlaceholder = this.getAttribute(\"placeholder\");\n\t\tthis.editSize = this.getAttribute(\"size\");\n\t\tthis.editRows = this.getAttribute(\"rows\");\n\t\tthis.editAutoHeight = this.wiki.getTiddlerText(HEIGHT_MODE_TITLE,\"auto\");\n\t\tthis.editAutoHeight = this.getAttribute(\"autoHeight\",this.editAutoHeight === \"auto\" ? \"yes\" : \"no\") === \"yes\";\n\t\tthis.editMinHeight = this.getAttribute(\"minHeight\",DEFAULT_MIN_TEXT_AREA_HEIGHT);\n\t\tthis.editFocusPopup = this.getAttribute(\"focusPopup\");\n\t\tthis.editFocus = this.getAttribute(\"focus\");\n\t\tthis.editTabIndex = this.getAttribute(\"tabindex\");\n\t\t// Get the default editor element tag and type\n\t\tvar tag,type;\n\t\tif(this.editField === \"text\") {\n\t\t\ttag = \"textarea\";\n\t\t} else {\n\t\t\ttag = \"input\";\n\t\t\tvar fieldModule = $tw.Tiddler.fieldModules[this.editField];\n\t\t\tif(fieldModule && fieldModule.editTag) {\n\t\t\t\ttag = fieldModule.editTag;\n\t\t\t}\n\t\t\tif(fieldModule && fieldModule.editType) {\n\t\t\t\ttype = fieldModule.editType;\n\t\t\t}\n\t\t\ttype = type || \"text\";\n\t\t}\n\t\t// Get the rest of our parameters\n\t\tthis.editTag = this.getAttribute(\"tag\",tag) || \"input\";\n\t\tthis.editType = this.getAttribute(\"type\",type);\n\t\t// Make the child widgets\n\t\tthis.makeChildWidgets();\n\t\t// Determine whether to show the toolbar\n\t\tthis.editShowToolbar = this.wiki.getTiddlerText(ENABLE_TOOLBAR_TITLE,\"yes\");\n\t\tthis.editShowToolbar = (this.editShowToolbar === \"yes\") && !!(this.children && this.children.length > 0) && (!this.document.isTiddlyWikiFakeDom);\n\t};\n\n\t/*\n\tSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n\t*/\n\tEditTextWidget.prototype.refresh = function(changedTiddlers) {\n\t\tvar changedAttributes = this.computeAttributes();\n\t\t// Completely rerender if any of our attributes have changed\n\t\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes[\"default\"] || changedAttributes[\"class\"] || changedAttributes.placeholder || changedAttributes.size || changedAttributes.autoHeight || changedAttributes.minHeight || changedAttributes.focusPopup || changedAttributes.rows || changedAttributes.tabindex || changedTiddlers[HEIGHT_MODE_TITLE] || changedTiddlers[ENABLE_TOOLBAR_TITLE]) {\n\t\t\tthis.refreshSelf();\n\t\t\treturn true;\n\t\t} else if(changedTiddlers[this.editTitle]) {\n\t\t\tvar editInfo = this.getEditInfo();\n\t\t\tthis.updateEditor(editInfo.value,editInfo.type);\n\t\t}\n\t\tthis.engine.fixHeight();\n\t\tif(this.editShowToolbar) {\n\t\t\treturn this.refreshChildren(changedTiddlers);\n\t\t} else {\n\t\t\treturn false;\n\t\t}\n\t};\n\n\t/*\n\tUpdate the editor with new text. This method is separate from updateEditorDomNode()\n\tso that subclasses can override updateEditor() and still use updateEditorDomNode()\n\t*/\n\tEditTextWidget.prototype.updateEditor = function(text,type) {\n\t\tthis.updateEditorDomNode(text,type);\n\t};\n\n\t/*\n\tUpdate the editor dom node with new text\n\t*/\n\tEditTextWidget.prototype.updateEditorDomNode = function(text,type) {\n\t\tthis.engine.setText(text,type);\n\t};\n\n\t/*\n\tSave changes back to the tiddler store\n\t*/\n\tEditTextWidget.prototype.saveChanges = function(text) {\n\t\tvar editInfo = this.getEditInfo();\n\t\tif(text !== editInfo.value) {\n\t\t\teditInfo.update(text);\n\t\t}\n\t};\n\n\t/*\n\tHandle a dom \"keydown\" event, which we'll bubble up to our container for the keyboard widgets benefit\n\t*/\n\tEditTextWidget.prototype.handleKeydownEvent = function(event) {\n\t\t// Check for a keyboard shortcut\n\t\tif(this.toolbarNode) {\n\t\t\tvar shortcutElements = this.toolbarNode.querySelectorAll(\"[data-tw-keyboard-shortcut]\");\n\t\t\tfor(var index=0; index<shortcutElements.length; index++) {\n\t\t\t\tvar el = shortcutElements[index],\n\t\t\t\t\tshortcutData = el.getAttribute(\"data-tw-keyboard-shortcut\"),\n\t\t\t\t\tkeyInfoArray = $tw.keyboardManager.parseKeyDescriptors(shortcutData,{\n\t\t\t\t\t\twiki: this.wiki\n\t\t\t\t\t});\n\t\t\t\tif($tw.keyboardManager.checkKeyDescriptors(event,keyInfoArray)) {\n\t\t\t\t\tvar clickEvent = this.document.createEvent(\"Events\");\n\t\t\t\t clickEvent.initEvent(\"click\",true,false);\n\t\t\t\t el.dispatchEvent(clickEvent);\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// Propogate the event to the container\n\t\tif(this.propogateKeydownEvent(event)) {\n\t\t\t// Ignore the keydown if it was already handled\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\treturn true;\n\t\t}\n\t\t// Otherwise, process the keydown normally\n\t\treturn false;\n\t};\n\n\t/*\n\tPropogate keydown events to our container for the keyboard widgets benefit\n\t*/\n\tEditTextWidget.prototype.propogateKeydownEvent = function(event) {\n\t\tvar newEvent = this.document.createEventObject ? this.document.createEventObject() : this.document.createEvent(\"Events\");\n\t\tif(newEvent.initEvent) {\n\t\t\tnewEvent.initEvent(\"keydown\", true, true);\n\t\t}\n\t\tnewEvent.keyCode = event.keyCode;\n\t\tnewEvent.which = event.which;\n\t\tnewEvent.metaKey = event.metaKey;\n\t\tnewEvent.ctrlKey = event.ctrlKey;\n\t\tnewEvent.altKey = event.altKey;\n\t\tnewEvent.shiftKey = event.shiftKey;\n\t\treturn !this.parentDomNode.dispatchEvent(newEvent);\n\t};\n\n\treturn EditTextWidget;\n\n}\n\nexports.editTextWidgetFactory = editTextWidgetFactory;\n\n})();\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/core/modules/editor/operations/bitmap/clear.js": {
"title": "$:/core/modules/editor/operations/bitmap/clear.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/bitmap/clear.js\ntype: application/javascript\nmodule-type: bitmapeditoroperation\n\nBitmap editor operation to clear the image\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"clear\"] = function(event) {\n\tvar ctx = this.canvasDomNode.getContext(\"2d\");\n\tctx.globalAlpha = 1;\n\tctx.fillStyle = event.paramObject.colour || \"white\";\n\tctx.fillRect(0,0,this.canvasDomNode.width,this.canvasDomNode.height);\n\t// Save changes\n\tthis.strokeEnd();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "bitmapeditoroperation"
},
"$:/core/modules/editor/operations/bitmap/resize.js": {
"title": "$:/core/modules/editor/operations/bitmap/resize.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/bitmap/resize.js\ntype: application/javascript\nmodule-type: bitmapeditoroperation\n\nBitmap editor operation to resize the image\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"resize\"] = function(event) {\n\t// Get the new width\n\tvar newWidth = parseInt(event.paramObject.width || this.canvasDomNode.width,10),\n\t\tnewHeight = parseInt(event.paramObject.height || this.canvasDomNode.height,10);\n\t// Update if necessary\n\tif(newWidth > 0 && newHeight > 0 && !(newWidth === this.currCanvas.width && newHeight === this.currCanvas.height)) {\n\t\tthis.changeCanvasSize(newWidth,newHeight);\n\t}\n\t// Update the input controls\n\tthis.refreshToolbar();\n\t// Save the image into the tiddler\n\tthis.saveChanges();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "bitmapeditoroperation"
},
"$:/core/modules/editor/operations/bitmap/rotate-left.js": {
"title": "$:/core/modules/editor/operations/bitmap/rotate-left.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/bitmap/rotate-left.js\ntype: application/javascript\nmodule-type: bitmapeditoroperation\n\nBitmap editor operation to rotate the image left by 90 degrees\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"rotate-left\"] = function(event) {\n\t// Rotate the canvas left by 90 degrees\n\tthis.rotateCanvasLeft();\n\t// Update the input controls\n\tthis.refreshToolbar();\n\t// Save the image into the tiddler\n\tthis.saveChanges();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "bitmapeditoroperation"
},
"$:/core/modules/editor/operations/text/excise.js": {
"title": "$:/core/modules/editor/operations/text/excise.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/text/excise.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to excise the selection to a new tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"excise\"] = function(event,operation) {\n\tvar editTiddler = this.wiki.getTiddler(this.editTitle),\n\t\teditTiddlerTitle = this.editTitle;\n\tif(editTiddler && editTiddler.fields[\"draft.of\"]) {\n\t\teditTiddlerTitle = editTiddler.fields[\"draft.of\"];\n\t}\n\tvar excisionTitle = event.paramObject.title || this.wiki.generateNewTitle(\"New Excision\");\n\tthis.wiki.addTiddler(new $tw.Tiddler(\n\t\tthis.wiki.getCreationFields(),\n\t\tthis.wiki.getModificationFields(),\n\t\t{\n\t\t\ttitle: excisionTitle,\n\t\t\ttext: operation.selection,\n\t\t\ttags: event.paramObject.tagnew === \"yes\" ? [editTiddlerTitle] : []\n\t\t}\n\t));\n\toperation.replacement = excisionTitle;\n\tswitch(event.paramObject.type || \"transclude\") {\n\t\tcase \"transclude\":\n\t\t\toperation.replacement = \"{{\" + operation.replacement+ \"}}\";\n\t\t\tbreak;\n\t\tcase \"link\":\n\t\t\toperation.replacement = \"[[\" + operation.replacement+ \"]]\";\n\t\t\tbreak;\n\t\tcase \"macro\":\n\t\t\toperation.replacement = \"<<\" + (event.paramObject.macro || \"translink\") + \" \\\"\\\"\\\"\" + operation.replacement + \"\\\"\\\"\\\">>\";\n\t\t\tbreak;\n\t}\n\toperation.cutStart = operation.selStart;\n\toperation.cutEnd = operation.selEnd;\n\toperation.newSelStart = operation.selStart;\n\toperation.newSelEnd = operation.selStart + operation.replacement.length;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "texteditoroperation"
},
"$:/core/modules/editor/operations/text/make-link.js": {
"title": "$:/core/modules/editor/operations/text/make-link.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/text/make-link.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to make a link\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"make-link\"] = function(event,operation) {\n\tif(operation.selection) {\n\t\toperation.replacement = \"[[\" + operation.selection + \"|\" + event.paramObject.text + \"]]\";\n\t\toperation.cutStart = operation.selStart;\n\t\toperation.cutEnd = operation.selEnd;\n\t} else {\n\t\toperation.replacement = \"[[\" + event.paramObject.text + \"]]\";\n\t\toperation.cutStart = operation.selStart;\n\t\toperation.cutEnd = operation.selEnd;\n\t}\n\toperation.newSelStart = operation.selStart + operation.replacement.length;\n\toperation.newSelEnd = operation.newSelStart;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "texteditoroperation"
},
"$:/core/modules/editor/operations/text/prefix-lines.js": {
"title": "$:/core/modules/editor/operations/text/prefix-lines.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/text/prefix-lines.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to add a prefix to the selected lines\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"prefix-lines\"] = function(event,operation) {\n\tvar targetCount = parseInt(event.paramObject.count + \"\",10);\n\t// Cut just past the preceding line break, or the start of the text\n\toperation.cutStart = $tw.utils.findPrecedingLineBreak(operation.text,operation.selStart);\n\t// Cut to just past the following line break, or to the end of the text\n\toperation.cutEnd = $tw.utils.findFollowingLineBreak(operation.text,operation.selEnd);\n\t// Compose the required prefix\n\tvar prefix = $tw.utils.repeat(event.paramObject.character,targetCount);\n\t// Process each line\n\tvar lines = operation.text.substring(operation.cutStart,operation.cutEnd).split(/\\r?\\n/mg);\n\t$tw.utils.each(lines,function(line,index) {\n\t\t// Remove and count any existing prefix characters\n\t\tvar count = 0;\n\t\twhile(line.charAt(0) === event.paramObject.character) {\n\t\t\tline = line.substring(1);\n\t\t\tcount++;\n\t\t}\n\t\t// Remove any whitespace\n\t\twhile(line.charAt(0) === \" \") {\n\t\t\tline = line.substring(1);\n\t\t}\n\t\t// We're done if we removed the exact required prefix, otherwise add it\n\t\tif(count !== targetCount) {\n\t\t\t// Apply the prefix\n\t\t\tline = prefix + \" \" + line;\n\t\t}\n\t\t// Save the modified line\n\t\tlines[index] = line;\n\t});\n\t// Stitch the replacement text together and set the selection\n\toperation.replacement = lines.join(\"\\n\");\n\tif(lines.length === 1) {\n\t\toperation.newSelStart = operation.cutStart + operation.replacement.length;\n\t\toperation.newSelEnd = operation.newSelStart;\n\t} else {\n\t\toperation.newSelStart = operation.cutStart;\n\t\toperation.newSelEnd = operation.newSelStart + operation.replacement.length;\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "texteditoroperation"
},
"$:/core/modules/editor/operations/text/replace-all.js": {
"title": "$:/core/modules/editor/operations/text/replace-all.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/text/replace-all.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to replace the entire text\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"replace-all\"] = function(event,operation) {\n\toperation.cutStart = 0;\n\toperation.cutEnd = operation.text.length;\n\toperation.replacement = event.paramObject.text;\n\toperation.newSelStart = 0;\n\toperation.newSelEnd = operation.replacement.length;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "texteditoroperation"
},
"$:/core/modules/editor/operations/text/replace-selection.js": {
"title": "$:/core/modules/editor/operations/text/replace-selection.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/text/replace-selection.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to replace the selection\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"replace-selection\"] = function(event,operation) {\n\toperation.replacement = event.paramObject.text;\n\toperation.cutStart = operation.selStart;\n\toperation.cutEnd = operation.selEnd;\n\toperation.newSelStart = operation.selStart;\n\toperation.newSelEnd = operation.selStart + operation.replacement.length;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "texteditoroperation"
},
"$:/core/modules/editor/operations/text/save-selection.js": {
"title": "$:/core/modules/editor/operations/text/save-selection.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/text/save-selection.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to save the current selection in a specified tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"save-selection\"] = function(event,operation) {\n\tvar tiddler = event.paramObject.tiddler,\n\t\tfield = event.paramObject.field || \"text\";\n\tif(tiddler && field) {\n\t\tthis.wiki.setText(tiddler,field,null,operation.text.substring(operation.selStart,operation.selEnd));\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "texteditoroperation"
},
"$:/core/modules/editor/operations/text/wrap-lines.js": {
"title": "$:/core/modules/editor/operations/text/wrap-lines.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/text/wrap-lines.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to wrap the selected lines with a prefix and suffix\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"wrap-lines\"] = function(event,operation) {\n\t// Cut just past the preceding line break, or the start of the text\n\toperation.cutStart = $tw.utils.findPrecedingLineBreak(operation.text,operation.selStart);\n\t// Cut to just past the following line break, or to the end of the text\n\toperation.cutEnd = $tw.utils.findFollowingLineBreak(operation.text,operation.selEnd);\n\t// Add the prefix and suffix\n\toperation.replacement = event.paramObject.prefix + \"\\n\" +\n\t\t\t\toperation.text.substring(operation.cutStart,operation.cutEnd) + \"\\n\" +\n\t\t\t\tevent.paramObject.suffix + \"\\n\";\n\toperation.newSelStart = operation.cutStart + event.paramObject.prefix.length + 1;\n\toperation.newSelEnd = operation.newSelStart + (operation.cutEnd - operation.cutStart);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "texteditoroperation"
},
"$:/core/modules/editor/operations/text/wrap-selection.js": {
"title": "$:/core/modules/editor/operations/text/wrap-selection.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/text/wrap-selection.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to wrap the selection with the specified prefix and suffix\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"wrap-selection\"] = function(event,operation) {\n\tif(operation.selStart === operation.selEnd) {\n\t\t// No selection; check if we're within the prefix/suffix\n\t\tif(operation.text.substring(operation.selStart - event.paramObject.prefix.length,operation.selStart + event.paramObject.suffix.length) === event.paramObject.prefix + event.paramObject.suffix) {\n\t\t\t// Remove the prefix and suffix\n\t\t\toperation.cutStart = operation.selStart - event.paramObject.prefix.length;\n\t\t\toperation.cutEnd = operation.selEnd + event.paramObject.suffix.length;\n\t\t\toperation.replacement = \"\";\n\t\t\toperation.newSelStart = operation.cutStart;\n\t\t\toperation.newSelEnd = operation.newSelStart;\n\t\t} else {\n\t\t\t// Wrap the cursor instead\n\t\t\toperation.cutStart = operation.selStart;\n\t\t\toperation.cutEnd = operation.selEnd;\n\t\t\toperation.replacement = event.paramObject.prefix + event.paramObject.suffix;\n\t\t\toperation.newSelStart = operation.selStart + event.paramObject.prefix.length;\n\t\t\toperation.newSelEnd = operation.newSelStart;\n\t\t}\n\t} else if(operation.text.substring(operation.selStart,operation.selStart + event.paramObject.prefix.length) === event.paramObject.prefix && operation.text.substring(operation.selEnd - event.paramObject.suffix.length,operation.selEnd) === event.paramObject.suffix) {\n\t\t// Prefix and suffix are already present, so remove them\n\t\toperation.cutStart = operation.selStart;\n\t\toperation.cutEnd = operation.selEnd;\n\t\toperation.replacement = operation.selection.substring(event.paramObject.prefix.length,operation.selection.length - event.paramObject.suffix.length);\n\t\toperation.newSelStart = operation.selStart;\n\t\toperation.newSelEnd = operation.selStart + operation.replacement.length;\n\t} else {\n\t\t// Add the prefix and suffix\n\t\toperation.cutStart = operation.selStart;\n\t\toperation.cutEnd = operation.selEnd;\n\t\toperation.replacement = event.paramObject.prefix + operation.selection + event.paramObject.suffix;\n\t\toperation.newSelStart = operation.selStart;\n\t\toperation.newSelEnd = operation.selStart + operation.replacement.length;\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "texteditoroperation"
},
"$:/core/modules/filters/addprefix.js": {
"title": "$:/core/modules/filters/addprefix.js",
"text": "/*\\\ntitle: $:/core/modules/filters/addprefix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for adding a prefix to each title in the list. This is\nespecially useful in contexts where only a filter expression is allowed\nand macro substitution isn't available.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.addprefix = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(operator.operand + title);\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/addsuffix.js": {
"title": "$:/core/modules/filters/addsuffix.js",
"text": "/*\\\ntitle: $:/core/modules/filters/addsuffix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for adding a suffix to each title in the list. This is\nespecially useful in contexts where only a filter expression is allowed\nand macro substitution isn't available.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.addsuffix = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title + operator.operand);\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/after.js": {
"title": "$:/core/modules/filters/after.js",
"text": "/*\\\ntitle: $:/core/modules/filters/after.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the tiddler from the current list that is after the tiddler named in the operand.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.after = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\tvar index = results.indexOf(operator.operand);\n\tif(index === -1 || index > (results.length - 2)) {\n\t\treturn [];\n\t} else {\n\t\treturn [results[index + 1]];\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/all/current.js": {
"title": "$:/core/modules/filters/all/current.js",
"text": "/*\\\ntitle: $:/core/modules/filters/all/current.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[current]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.current = function(source,prefix,options) {\n\tvar currTiddlerTitle = options.widget && options.widget.getVariable(\"currentTiddler\");\n\tif(currTiddlerTitle) {\n\t\treturn [currTiddlerTitle];\n\t} else {\n\t\treturn [];\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "allfilteroperator"
},
"$:/core/modules/filters/all/missing.js": {
"title": "$:/core/modules/filters/all/missing.js",
"text": "/*\\\ntitle: $:/core/modules/filters/all/missing.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[missing]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.missing = function(source,prefix,options) {\n\treturn options.wiki.getMissingTitles();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "allfilteroperator"
},
"$:/core/modules/filters/all/orphans.js": {
"title": "$:/core/modules/filters/all/orphans.js",
"text": "/*\\\ntitle: $:/core/modules/filters/all/orphans.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[orphans]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.orphans = function(source,prefix,options) {\n\treturn options.wiki.getOrphanTitles();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "allfilteroperator"
},
"$:/core/modules/filters/all/shadows.js": {
"title": "$:/core/modules/filters/all/shadows.js",
"text": "/*\\\ntitle: $:/core/modules/filters/all/shadows.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[shadows]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.shadows = function(source,prefix,options) {\n\treturn options.wiki.allShadowTitles();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "allfilteroperator"
},
"$:/core/modules/filters/all/tags.js": {
"title": "$:/core/modules/filters/all/tags.js",
"text": "/*\\\ntitle: $:/core/modules/filters/all/tags.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[tags]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tags = function(source,prefix,options) {\n\treturn Object.keys(options.wiki.getTagMap());\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "allfilteroperator"
},
"$:/core/modules/filters/all/tiddlers.js": {
"title": "$:/core/modules/filters/all/tiddlers.js",
"text": "/*\\\ntitle: $:/core/modules/filters/all/tiddlers.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[tiddlers]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tiddlers = function(source,prefix,options) {\n\treturn options.wiki.allTitles();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "allfilteroperator"
},
"$:/core/modules/filters/all.js": {
"title": "$:/core/modules/filters/all.js",
"text": "/*\\\ntitle: $:/core/modules/filters/all.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for selecting tiddlers\n\n[all[shadows+tiddlers]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar allFilterOperators;\n\nfunction getAllFilterOperators() {\n\tif(!allFilterOperators) {\n\t\tallFilterOperators = {};\n\t\t$tw.modules.applyMethods(\"allfilteroperator\",allFilterOperators);\n\t}\n\treturn allFilterOperators;\n}\n\n/*\nExport our filter function\n*/\nexports.all = function(source,operator,options) {\n\t// Get our suboperators\n\tvar allFilterOperators = getAllFilterOperators();\n\t// Cycle through the suboperators accumulating their results\n\tvar results = [],\n\t\tsubops = operator.operand.split(\"+\");\n\t// Check for common optimisations\n\tif(subops.length === 1 && subops[0] === \"\") {\n\t\treturn source;\n\t} else if(subops.length === 1 && subops[0] === \"tiddlers\") {\n\t\treturn options.wiki.each;\n\t} else if(subops.length === 1 && subops[0] === \"shadows\") {\n\t\treturn options.wiki.eachShadow;\n\t} else if(subops.length === 2 && subops[0] === \"tiddlers\" && subops[1] === \"shadows\") {\n\t\treturn options.wiki.eachTiddlerPlusShadows;\n\t} else if(subops.length === 2 && subops[0] === \"shadows\" && subops[1] === \"tiddlers\") {\n\t\treturn options.wiki.eachShadowPlusTiddlers;\n\t}\n\t// Do it the hard way\n\tfor(var t=0; t<subops.length; t++) {\n\t\tvar subop = allFilterOperators[subops[t]];\n\t\tif(subop) {\n\t\t\t$tw.utils.pushTop(results,subop(source,operator.prefix,options));\n\t\t}\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/backlinks.js": {
"title": "$:/core/modules/filters/backlinks.js",
"text": "/*\\\ntitle: $:/core/modules/filters/backlinks.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning all the backlinks from a tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.backlinks = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\t$tw.utils.pushTop(results,options.wiki.getTiddlerBacklinks(title));\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/before.js": {
"title": "$:/core/modules/filters/before.js",
"text": "/*\\\ntitle: $:/core/modules/filters/before.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the tiddler from the current list that is before the tiddler named in the operand.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.before = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\tvar index = results.indexOf(operator.operand);\n\tif(index <= 0) {\n\t\treturn [];\n\t} else {\n\t\treturn [results[index - 1]];\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/commands.js": {
"title": "$:/core/modules/filters/commands.js",
"text": "/*\\\ntitle: $:/core/modules/filters/commands.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the commands available in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.commands = function(source,operator,options) {\n\tvar results = [];\n\t$tw.utils.each($tw.commands,function(commandInfo,name) {\n\t\tresults.push(name);\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/compare.js": {
"title": "$:/core/modules/filters/compare.js",
"text": "/*\\\ntitle: $:/core/modules/filters/compare.js\ntype: application/javascript\nmodule-type: filteroperator\n\nGeneral purpose comparison operator\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.compare = function(source,operator,options) {\n\tvar suffixes = operator.suffixes || [],\n\t\ttype = (suffixes[0] || [])[0],\n\t\tmode = (suffixes[1] || [])[0],\n\t\ttypeFn = types[type] || types.number,\n\t\tmodeFn = modes[mode] || modes.eq,\n\t\tinvert = operator.prefix === \"!\",\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tif(modeFn(typeFn(title,operator.operand)) !== invert) {\n\t\t\tresults.push(title);\n\t\t}\n\t});\n\treturn results;\n};\n\nvar types = {\n\t\"number\": function(a,b) {\n\t\treturn compare($tw.utils.parseNumber(a),$tw.utils.parseNumber(b));\n\t},\n\t\"integer\": function(a,b) {\n\t\treturn compare($tw.utils.parseInt(a),$tw.utils.parseInt(b));\n\t},\n\t\"string\": function(a,b) {\n\t\treturn compare(\"\" + a,\"\" +b);\n\t},\n\t\"date\": function(a,b) {\n\t\tvar dateA = $tw.utils.parseDate(a),\n\t\t\tdateB = $tw.utils.parseDate(b);\n\t\tif(!isFinite(dateA)) {\n\t\t\tdateA = new Date(0);\n\t\t}\n\t\tif(!isFinite(dateB)) {\n\t\t\tdateB = new Date(0);\n\t\t}\n\t\treturn compare(dateA,dateB);\n\t},\n\t\"version\": function(a,b) {\n\t\treturn $tw.utils.compareVersions(a,b);\n\t}\n};\n\nfunction compare(a,b) {\n\tif(a > b) {\n\t\treturn +1;\n\t} else if(a < b) {\n\t\treturn -1;\n\t} else {\n\t\treturn 0;\n\t}\n};\n\nvar modes = {\n\t\"eq\": function(value) {return value === 0;},\n\t\"ne\": function(value) {return value !== 0;},\n\t\"gteq\": function(value) {return value >= 0;},\n\t\"gt\": function(value) {return value > 0;},\n\t\"lteq\": function(value) {return value <= 0;},\n\t\"lt\": function(value) {return value < 0;}\n}\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/contains.js": {
"title": "$:/core/modules/filters/contains.js",
"text": "/*\\\ntitle: $:/core/modules/filters/contains.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for finding values in array fields\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.contains = function(source,operator,options) {\n\tvar results = [],\n\t\tfieldname = (operator.suffix || \"list\").toLowerCase();\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler) {\n\t\t\t\tvar list = tiddler.getFieldList(fieldname);\n\t\t\t\tif(list.indexOf(operator.operand) === -1) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler) {\n\t\t\t\tvar list = tiddler.getFieldList(fieldname);\n\t\t\t\tif(list.indexOf(operator.operand) !== -1) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/count.js": {
"title": "$:/core/modules/filters/count.js",
"text": "/*\\\ntitle: $:/core/modules/filters/count.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the number of entries in the current list.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.count = function(source,operator,options) {\n\tvar count = 0;\n\tsource(function(tiddler,title) {\n\t\tcount++;\n\t});\n\treturn [count + \"\"];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/days.js": {
"title": "$:/core/modules/filters/days.js",
"text": "/*\\\ntitle: $:/core/modules/filters/days.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that selects tiddlers with a specified date field within a specified date interval.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.days = function(source,operator,options) {\n\tvar results = [],\n\t\tfieldName = operator.suffix || \"modified\",\n\t\tdayInterval = (parseInt(operator.operand,10)||0),\n\t\tdayIntervalSign = $tw.utils.sign(dayInterval),\n\t\ttargetTimeStamp = (new Date()).setHours(0,0,0,0) + 1000*60*60*24*dayInterval,\n\t\tisWithinDays = function(dateField) {\n\t\t\tvar sign = $tw.utils.sign(targetTimeStamp - (new Date(dateField)).setHours(0,0,0,0));\n\t\t\treturn sign === 0 || sign === dayIntervalSign;\n\t\t};\n\n\tif(operator.prefix === \"!\") {\n\t\ttargetTimeStamp = targetTimeStamp - 1000*60*60*24*dayIntervalSign;\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler && tiddler.fields[fieldName]) {\n\t\t\t\tif(!isWithinDays($tw.utils.parseDate(tiddler.fields[fieldName]))) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler && tiddler.fields[fieldName]) {\n\t\t\t\tif(isWithinDays($tw.utils.parseDate(tiddler.fields[fieldName]))) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/each.js": {
"title": "$:/core/modules/filters/each.js",
"text": "/*\\\ntitle: $:/core/modules/filters/each.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that selects one tiddler for each unique value of the specified field.\nWith suffix \"list\", selects all tiddlers that are values in a specified list field.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.each = function(source,operator,options) {\n\tvar results =[] ,\n\tvalue,values = {},\n\tfield = operator.operand || \"title\";\n\tif(operator.suffix === \"value\" && field === \"title\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!$tw.utils.hop(values,title)) {\n\t\t\t\tvalues[title] = true;\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else if(operator.suffix !== \"list-item\") {\n\t\tif(field === \"title\") {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler && !$tw.utils.hop(values,title)) {\n\t\t\t\t\tvalues[title] = true;\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler) {\n\t\t\t\t\tvalue = tiddler.getFieldString(field);\n\t\t\t\t\tif(!$tw.utils.hop(values,value)) {\n\t\t\t\t\t\tvalues[value] = true;\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler) {\n\t\t\t\t$tw.utils.each(\n\t\t\t\t\toptions.wiki.getTiddlerList(title,field),\n\t\t\t\t\tfunction(value) {\n\t\t\t\t\t\tif(!$tw.utils.hop(values,value)) {\n\t\t\t\t\t\t\tvalues[value] = true;\n\t\t\t\t\t\t\tresults.push(value);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/eachday.js": {
"title": "$:/core/modules/filters/eachday.js",
"text": "/*\\\ntitle: $:/core/modules/filters/eachday.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that selects one tiddler for each unique day covered by the specified date field\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.eachday = function(source,operator,options) {\n\tvar results = [],\n\t\tvalues = [],\n\t\tfieldName = operator.operand || \"modified\";\n\t// Function to convert a date/time to a date integer\n\tvar toDate = function(value) {\n\t\tvalue = (new Date(value)).setHours(0,0,0,0);\n\t\treturn value+0;\n\t};\n\tsource(function(tiddler,title) {\n\t\tif(tiddler && tiddler.fields[fieldName]) {\n\t\t\tvar value = toDate($tw.utils.parseDate(tiddler.fields[fieldName]));\n\t\t\tif(values.indexOf(value) === -1) {\n\t\t\t\tvalues.push(value);\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/editiondescription.js": {
"title": "$:/core/modules/filters/editiondescription.js",
"text": "/*\\\ntitle: $:/core/modules/filters/editiondescription.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the descriptions of the specified edition names\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.editiondescription = function(source,operator,options) {\n\tvar results = [],\n\t\teditionInfo = $tw.utils.getEditionInfo();\n\tif(editionInfo) {\n\t\tsource(function(tiddler,title) {\n\t\t\tif($tw.utils.hop(editionInfo,title)) {\n\t\t\t\tresults.push(editionInfo[title].description || \"\");\t\t\t\t\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/editions.js": {
"title": "$:/core/modules/filters/editions.js",
"text": "/*\\\ntitle: $:/core/modules/filters/editions.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the available editions in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.editions = function(source,operator,options) {\n\tvar results = [],\n\t\teditionInfo = $tw.utils.getEditionInfo();\n\tif(editionInfo) {\n\t\t$tw.utils.each(editionInfo,function(info,name) {\n\t\t\tresults.push(name);\n\t\t});\n\t}\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/else.js": {
"title": "$:/core/modules/filters/else.js",
"text": "/*\\\ntitle: $:/core/modules/filters/else.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for replacing an empty input list with a constant, passing a non-empty input list straight through\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.else = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\tif(results.length === 0) {\n\t\treturn [operator.operand];\n\t} else {\n\t\treturn results;\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/decodeuricomponent.js": {
"title": "$:/core/modules/filters/decodeuricomponent.js",
"text": "/*\\\ntitle: $:/core/modules/filters/decodeuricomponent.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for applying decodeURIComponent() to each item.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter functions\n*/\n\nexports.decodeuricomponent = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar value = title;\n\t\ttry {\n\t\t\tvalue = decodeURIComponent(title);\n\t\t} catch(e) {\n\t\t}\n\t\tresults.push(value);\n\t});\n\treturn results;\n};\n\nexports.encodeuricomponent = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(encodeURIComponent(title));\n\t});\n\treturn results;\n};\n\nexports.decodeuri = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar value = title;\n\t\ttry {\n\t\t\tvalue = decodeURI(title);\n\t\t} catch(e) {\n\t\t}\n\t\tresults.push(value);\n\t});\n\treturn results;\n};\n\nexports.encodeuri = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(encodeURI(title));\n\t});\n\treturn results;\n};\n\nexports.decodehtml = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push($tw.utils.htmlDecode(title));\n\t});\n\treturn results;\n};\n\nexports.encodehtml = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push($tw.utils.htmlEncode(title));\n\t});\n\treturn results;\n};\n\nexports.stringify = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push($tw.utils.stringify(title));\n\t});\n\treturn results;\n};\n\nexports.jsonstringify = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push($tw.utils.jsonStringify(title));\n\t});\n\treturn results;\n};\n\nexports.escaperegexp = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push($tw.utils.escapeRegExp(title));\n\t});\n\treturn results;\n};\n\nexports.escapecss = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\t// escape any character with a special meaning in CSS using CSS.escape()\n\t\tresults.push(CSS.escape(title));\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/enlist.js": {
"title": "$:/core/modules/filters/enlist.js",
"text": "/*\\\ntitle: $:/core/modules/filters/enlist.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning its operand parsed as a list\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.enlist = function(source,operator,options) {\n\tvar allowDuplicates = false;\n\tswitch(operator.suffix) {\n\t\tcase \"raw\":\n\t\t\tallowDuplicates = true;\n\t\t\tbreak;\n\t\tcase \"dedupe\":\n\t\t\tallowDuplicates = false;\n\t\t\tbreak;\n\t}\n\tvar list = $tw.utils.parseStringArray(operator.operand,allowDuplicates);\n\tif(operator.prefix === \"!\") {\n\t\tvar results = [];\n\t\tsource(function(tiddler,title) {\n\t\t\tif(list.indexOf(title) === -1) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t\treturn results;\n\t} else {\n\t\treturn list;\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/field.js": {
"title": "$:/core/modules/filters/field.js",
"text": "/*\\\ntitle: $:/core/modules/filters/field.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for comparing fields for equality\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.field = function(source,operator,options) {\n\tvar results = [],indexedResults,\n\t\tfieldname = (operator.suffix || operator.operator || \"title\").toLowerCase();\n\tif(operator.prefix === \"!\") {\n\t\tif(operator.regexp) {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler) {\n\t\t\t\t\tvar text = tiddler.getFieldString(fieldname);\n\t\t\t\t\tif(text !== null && !operator.regexp.exec(text)) {\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler) {\n\t\t\t\t\tvar text = tiddler.getFieldString(fieldname);\n\t\t\t\t\tif(text !== null && text !== operator.operand) {\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t} else {\n\t\tif(operator.regexp) {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler) {\n\t\t\t\t\tvar text = tiddler.getFieldString(fieldname);\n\t\t\t\t\tif(text !== null && !!operator.regexp.exec(text)) {\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tif(source.byField && operator.operand) {\n\t\t\t\tindexedResults = source.byField(fieldname,operator.operand);\n\t\t\t\tif(indexedResults) {\n\t\t\t\t\treturn indexedResults\n\t\t\t\t}\n\t\t\t}\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler) {\n\t\t\t\t\tvar text = tiddler.getFieldString(fieldname);\n\t\t\t\t\tif(text !== null && text === operator.operand) {\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/fields.js": {
"title": "$:/core/modules/filters/fields.js",
"text": "/*\\\ntitle: $:/core/modules/filters/fields.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the fields on the selected tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.fields = function(source,operator,options) {\n\tvar results = [],\n\t\tfieldName,\n\t\tsuffixes = (operator.suffixes || [])[0] || [],\n\t\toperand = $tw.utils.parseStringArray(operator.operand);\n\t\n\tsource(function(tiddler,title) {\n\t\tif(tiddler) {\n\t\t\tif(suffixes.indexOf(\"include\") !== -1) {\n\t\t\t\tfor(fieldName in tiddler.fields) {\n\t\t\t\t\t(operand.indexOf(fieldName) !== -1) ? $tw.utils.pushTop(results,fieldName) : \"\";\n\t\t\t\t}\n\t\t\t} else if (suffixes.indexOf(\"exclude\") !== -1) {\n\t\t\t\tfor(fieldName in tiddler.fields) {\n\t\t\t\t\t(operand.indexOf(fieldName) !== -1) ? \"\" : $tw.utils.pushTop(results,fieldName);\n\t\t\t\t}\n\t\t\t} // else if\n\t\t\telse {\n\t\t\t\tfor(fieldName in tiddler.fields) {\n\t\t\t\t\t$tw.utils.pushTop(results,fieldName);\n\t\t\t\t}\n\t\t\t} // else\n\t\t} // if (tiddler)\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/get.js": {
"title": "$:/core/modules/filters/get.js",
"text": "/*\\\ntitle: $:/core/modules/filters/get.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for replacing tiddler titles by the value of the field specified in the operand.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.get = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tif(tiddler) {\n\t\t\tvar value = tiddler.getFieldString(operator.operand);\n\t\t\tif(value) {\n\t\t\t\tresults.push(value);\n\t\t\t}\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/getindex.js": {
"title": "$:/core/modules/filters/getindex.js",
"text": "/*\\\ntitle: $:/core/modules/filters/getindex.js\ntype: application/javascript\nmodule-type: filteroperator\n\nreturns the value at a given index of datatiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.getindex = function(source,operator,options) {\n\tvar data,title,results = [];\n\tif(operator.operand){\n\t\tsource(function(tiddler,title) {\n\t\t\ttitle = tiddler ? tiddler.fields.title : title;\n\t\t\tdata = options.wiki.extractTiddlerDataItem(tiddler,operator.operand);\n\t\t\tif(data) {\n\t\t\t\tresults.push(data);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/getvariable.js": {
"title": "$:/core/modules/filters/getvariable.js",
"text": "/*\\\ntitle: $:/core/modules/filters/getvariable.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for replacing input values by the value of the variable with the same name, or blank if the variable is missing\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.getvariable = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(options.widget.getVariable(title) || \"\");\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/has.js": {
"title": "$:/core/modules/filters/has.js",
"text": "/*\\\ntitle: $:/core/modules/filters/has.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking if a tiddler has the specified field or index\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.has = function(source,operator,options) {\n\tvar results = [],\n\t\tinvert = operator.prefix === \"!\";\n\n\tif(operator.suffix === \"field\") {\n\t\tif(invert) {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(!tiddler || (tiddler && (!$tw.utils.hop(tiddler.fields,operator.operand)))) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler && $tw.utils.hop(tiddler.fields,operator.operand)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\telse if(operator.suffix === \"index\") {\n\t\tif(invert) {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(!tiddler || (tiddler && (!$tw.utils.hop($tw.wiki.getTiddlerDataCached(tiddler,Object.create(null)),operator.operand)))) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler && $tw.utils.hop($tw.wiki.getTiddlerDataCached(tiddler,Object.create(null)),operator.operand)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\telse {\n\t\tif(invert) {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(!tiddler || !$tw.utils.hop(tiddler.fields,operator.operand) || (tiddler.fields[operator.operand] === \"\")) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler && $tw.utils.hop(tiddler.fields,operator.operand) && !(tiddler.fields[operator.operand] === \"\" || tiddler.fields[operator.operand].length === 0)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\t\t\t\t\n\t\t}\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/haschanged.js": {
"title": "$:/core/modules/filters/haschanged.js",
"text": "/*\\\ntitle: $:/core/modules/filters/haschanged.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returns tiddlers from the list that have a non-zero changecount.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.haschanged = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.getChangeCount(title) === 0) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.getChangeCount(title) > 0) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/indexes.js": {
"title": "$:/core/modules/filters/indexes.js",
"text": "/*\\\ntitle: $:/core/modules/filters/indexes.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the indexes of a data tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.indexes = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar data = options.wiki.getTiddlerDataCached(title);\n\t\tif(data) {\n\t\t\t$tw.utils.pushTop(results,Object.keys(data));\n\t\t}\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/insertbefore.js": {
"title": "$:/core/modules/filters/insertbefore.js",
"text": "/*\\\ntitle: $:/core/modules/filters/insertbefore.js\ntype: application/javascript\nmodule-type: filteroperator\n\nInsert an item before another item in a list\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nOrder a list\n*/\nexports.insertbefore = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\tvar target = options.widget && options.widget.getVariable(operator.suffix || \"currentTiddler\");\n\tif(target !== operator.operand) {\n\t\t// Remove the entry from the list if it is present\n\t\tvar pos = results.indexOf(operator.operand);\n\t\tif(pos !== -1) {\n\t\t\tresults.splice(pos,1);\n\t\t}\n\t\t// Insert the entry before the target marker\n\t\tpos = results.indexOf(target);\n\t\tif(pos !== -1) {\n\t\t\tresults.splice(pos,0,operator.operand);\n\t\t} else {\n\t\t\tresults.push(operator.operand);\n\t\t}\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/is/binary.js": {
"title": "$:/core/modules/filters/is/binary.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/binary.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[binary]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.binary = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.isBinaryTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.isBinaryTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/blank.js": {
"title": "$:/core/modules/filters/is/blank.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/blank.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[blank]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.blank = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!title) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/current.js": {
"title": "$:/core/modules/filters/is/current.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/current.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[current]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.current = function(source,prefix,options) {\n\tvar results = [],\n\t\tcurrTiddlerTitle = options.widget && options.widget.getVariable(\"currentTiddler\");\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title !== currTiddlerTitle) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title === currTiddlerTitle) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/image.js": {
"title": "$:/core/modules/filters/is/image.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/image.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[image]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.image = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.isImageTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.isImageTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/missing.js": {
"title": "$:/core/modules/filters/is/missing.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/missing.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[missing]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.missing = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.tiddlerExists(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.tiddlerExists(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/orphan.js": {
"title": "$:/core/modules/filters/is/orphan.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/orphan.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[orphan]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.orphan = function(source,prefix,options) {\n\tvar results = [],\n\t\torphanTitles = options.wiki.getOrphanTitles();\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(orphanTitles.indexOf(title) === -1) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(orphanTitles.indexOf(title) !== -1) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/shadow.js": {
"title": "$:/core/modules/filters/is/shadow.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/shadow.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[shadow]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.shadow = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.isShadowTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.isShadowTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/system.js": {
"title": "$:/core/modules/filters/is/system.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/system.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[system]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.system = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.isSystemTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.isSystemTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/tag.js": {
"title": "$:/core/modules/filters/is/tag.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/tag.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[tag]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tag = function(source,prefix,options) {\n\tvar results = [],\n\t\ttagMap = options.wiki.getTagMap();\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!$tw.utils.hop(tagMap,title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif($tw.utils.hop(tagMap,title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/tiddler.js": {
"title": "$:/core/modules/filters/is/tiddler.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/tiddler.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[tiddler]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tiddler = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.tiddlerExists(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.tiddlerExists(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/variable.js": {
"title": "$:/core/modules/filters/is/variable.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/variable.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[variable]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.variable = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!(title in options.widget.variables)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title in options.widget.variables) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is.js": {
"title": "$:/core/modules/filters/is.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking tiddler properties\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar isFilterOperators;\n\nfunction getIsFilterOperators() {\n\tif(!isFilterOperators) {\n\t\tisFilterOperators = {};\n\t\t$tw.modules.applyMethods(\"isfilteroperator\",isFilterOperators);\n\t}\n\treturn isFilterOperators;\n}\n\n/*\nExport our filter function\n*/\nexports.is = function(source,operator,options) {\n\t// Dispatch to the correct isfilteroperator\n\tvar isFilterOperators = getIsFilterOperators();\n\tif(operator.operand) {\n\t\tvar isFilterOperator = isFilterOperators[operator.operand];\n\t\tif(isFilterOperator) {\n\t\t\treturn isFilterOperator(source,operator.prefix,options);\n\t\t} else {\n\t\t\treturn [$tw.language.getString(\"Error/IsFilterOperator\")];\n\t\t}\n\t} else {\n\t\t// Return all tiddlers if the operand is missing\n\t\tvar results = [];\n\t\tsource(function(tiddler,title) {\n\t\t\tresults.push(title);\n\t\t});\n\t\treturn results;\n\t}\n};\n\n})();",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/limit.js": {
"title": "$:/core/modules/filters/limit.js",
"text": "/*\\\ntitle: $:/core/modules/filters/limit.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for chopping the results to a specified maximum number of entries\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.limit = function(source,operator,options) {\n\tvar results = [];\n\t// Convert to an array\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\t// Slice the array if necessary\n\tvar limit = Math.min(results.length,parseInt(operator.operand,10));\n\tif(operator.prefix === \"!\") {\n\t\tresults = results.slice(-limit);\n\t} else {\n\t\tresults = results.slice(0,limit);\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/links.js": {
"title": "$:/core/modules/filters/links.js",
"text": "/*\\\ntitle: $:/core/modules/filters/links.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning all the links from a tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.links = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\t$tw.utils.pushTop(results,options.wiki.getTiddlerLinks(title));\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/list.js": {
"title": "$:/core/modules/filters/list.js",
"text": "/*\\\ntitle: $:/core/modules/filters/list.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the tiddlers whose title is listed in the operand tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.list = function(source,operator,options) {\n\tvar results = [],\n\t\ttr = $tw.utils.parseTextReference(operator.operand),\n\t\tcurrTiddlerTitle = options.widget && options.widget.getVariable(\"currentTiddler\"),\n\t\tlist = options.wiki.getTiddlerList(tr.title || currTiddlerTitle,tr.field,tr.index);\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(list.indexOf(title) === -1) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tresults = list;\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/listed.js": {
"title": "$:/core/modules/filters/listed.js",
"text": "/*\\\ntitle: $:/core/modules/filters/listed.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning all tiddlers that have the selected tiddlers in a list\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.listed = function(source,operator,options) {\n\tvar field = operator.operand || \"list\",\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\t$tw.utils.pushTop(results,options.wiki.findListingsOfTiddler(title,field));\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/listops.js": {
"title": "$:/core/modules/filters/listops.js",
"text": "/*\\\ntitle: $:/core/modules/filters/listops.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operators for manipulating the current selection list\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nOrder a list\n*/\nexports.order = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.operand.toLowerCase() === \"reverse\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tresults.unshift(title);\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tresults.push(title);\n\t\t});\n\t}\n\treturn results;\n};\n\n/*\nReverse list\n*/\nexports.reverse = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.unshift(title);\n\t});\n\treturn results;\n};\n\n/*\nFirst entry/entries in list\n*/\nexports.first = function(source,operator,options) {\n\tvar count = $tw.utils.getInt(operator.operand,1),\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results.slice(0,count);\n};\n\n/*\nLast entry/entries in list\n*/\nexports.last = function(source,operator,options) {\n\tvar count = $tw.utils.getInt(operator.operand,1),\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results.slice(-count);\n};\n\n/*\nAll but the first entry/entries of the list\n*/\nexports.rest = function(source,operator,options) {\n\tvar count = $tw.utils.getInt(operator.operand,1),\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results.slice(count);\n};\nexports.butfirst = exports.rest;\nexports.bf = exports.rest;\n\n/*\nAll but the last entry/entries of the list\n*/\nexports.butlast = function(source,operator,options) {\n\tvar count = $tw.utils.getInt(operator.operand,1),\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results.slice(0,-count);\n};\nexports.bl = exports.butlast;\n\n/*\nThe nth member of the list\n*/\nexports.nth = function(source,operator,options) {\n\tvar count = $tw.utils.getInt(operator.operand,1),\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results.slice(count - 1,count);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/lookup.js": {
"title": "$:/core/modules/filters/lookup.js",
"text": "/*\\\ntitle: $:/core/modules/filters/lookup.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that looks up values via a title prefix\n\n[lookup:<field>[<prefix>]]\n\nPrepends the prefix to the selected items and returns the specified field value\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.lookup = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(options.wiki.getTiddlerText(operator.operand + title) || options.wiki.getTiddlerText(operator.operand + operator.suffix));\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/match.js": {
"title": "$:/core/modules/filters/match.js",
"text": "/*\\\ntitle: $:/core/modules/filters/match.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking if a title matches a string\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.match = function(source,operator,options) {\n\tvar results = [],\n\t\tsuffixes = (operator.suffixes || [])[0] || [];\n\tif(suffixes.indexOf(\"caseinsensitive\") !== -1) {\n\t\tif(operator.prefix === \"!\") {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(title.toLowerCase() !== (operator.operand || \"\").toLowerCase()) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(title.toLowerCase() === (operator.operand || \"\").toLowerCase()) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t} else {\n\t\tif(operator.prefix === \"!\") {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(title !== operator.operand) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(title === operator.operand) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/math.js": {
"title": "$:/core/modules/filters/math.js",
"text": "/*\\\ntitle: $:/core/modules/filters/math.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operators for math. Unary/binary operators work on each item in turn, and return a new item list.\n\nSum/product/maxall/minall operate on the entire list, returning a single item.\n\nNote that strings are converted to numbers automatically. Trailing non-digits are ignored.\n\n* \"\" converts to 0\n* \"12kk\" converts to 12\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.negate = makeNumericBinaryOperator(\n\tfunction(a) {return -a}\n);\n\nexports.abs = makeNumericBinaryOperator(\n\tfunction(a) {return Math.abs(a)}\n);\n\nexports.ceil = makeNumericBinaryOperator(\n\tfunction(a) {return Math.ceil(a)}\n);\n\nexports.floor = makeNumericBinaryOperator(\n\tfunction(a) {return Math.floor(a)}\n);\n\nexports.round = makeNumericBinaryOperator(\n\tfunction(a) {return Math.round(a)}\n);\n\nexports.trunc = makeNumericBinaryOperator(\n\tfunction(a) {return Math.trunc(a)}\n);\n\nexports.untrunc = makeNumericBinaryOperator(\n\tfunction(a) {return Math.ceil(Math.abs(a)) * Math.sign(a)}\n);\n\nexports.sign = makeNumericBinaryOperator(\n\tfunction(a) {return Math.sign(a)}\n);\n\nexports.add = makeNumericBinaryOperator(\n\tfunction(a,b) {return a + b;}\n);\n\nexports.subtract = makeNumericBinaryOperator(\n\tfunction(a,b) {return a - b;}\n);\n\nexports.multiply = makeNumericBinaryOperator(\n\tfunction(a,b) {return a * b;}\n);\n\nexports.divide = makeNumericBinaryOperator(\n\tfunction(a,b) {return a / b;}\n);\n\nexports.remainder = makeNumericBinaryOperator(\n\tfunction(a,b) {return a % b;}\n);\n\nexports.max = makeNumericBinaryOperator(\n\tfunction(a,b) {return Math.max(a,b);}\n);\n\nexports.min = makeNumericBinaryOperator(\n\tfunction(a,b) {return Math.min(a,b);}\n);\n\nexports.fixed = makeNumericBinaryOperator(\n\tfunction(a,b) {return Number.prototype.toFixed.call(a,Math.min(Math.max(b,0),100));}\n);\n\nexports.precision = makeNumericBinaryOperator(\n\tfunction(a,b) {return Number.prototype.toPrecision.call(a,Math.min(Math.max(b,1),100));}\n);\n\nexports.exponential = makeNumericBinaryOperator(\n\tfunction(a,b) {return Number.prototype.toExponential.call(a,Math.min(Math.max(b,0),100));}\n);\n\nexports.sum = makeNumericReducingOperator(\n\tfunction(accumulator,value) {return accumulator + value},\n\t0 // Initial value\n);\n\nexports.product = makeNumericReducingOperator(\n\tfunction(accumulator,value) {return accumulator * value},\n\t1 // Initial value\n);\n\nexports.maxall = makeNumericReducingOperator(\n\tfunction(accumulator,value) {return Math.max(accumulator,value)},\n\t-Infinity // Initial value\n);\n\nexports.minall = makeNumericReducingOperator(\n\tfunction(accumulator,value) {return Math.min(accumulator,value)},\n\tInfinity // Initial value\n);\n\nfunction makeNumericBinaryOperator(fnCalc) {\n\treturn function(source,operator,options) {\n\t\tvar result = [],\n\t\t\tnumOperand = $tw.utils.parseNumber(operator.operand);\n\t\tsource(function(tiddler,title) {\n\t\t\tresult.push($tw.utils.stringifyNumber(fnCalc($tw.utils.parseNumber(title),numOperand)));\n\t\t});\n\t\treturn result;\n\t};\n}\n\nfunction makeNumericReducingOperator(fnCalc,initialValue) {\n\tinitialValue = initialValue || 0;\n\treturn function(source,operator,options) {\n\t\tvar result = [];\n\t\tsource(function(tiddler,title) {\n\t\t\tresult.push(title);\n\t\t});\n\t\treturn [$tw.utils.stringifyNumber(result.reduce(function(accumulator,currentValue) {\n\t\t\treturn fnCalc(accumulator,$tw.utils.parseNumber(currentValue));\n\t\t},initialValue))];\n\t};\n}\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/minlength.js": {
"title": "$:/core/modules/filters/minlength.js",
"text": "/*\\\ntitle: $:/core/modules/filters/minlength.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for filtering out titles that don't meet the minimum length in the operand\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.minlength = function(source,operator,options) {\n\tvar results = [],\n\t\tminLength = parseInt(operator.operand || \"\",10) || 0;\n\tsource(function(tiddler,title) {\n\t\tif(title.length >= minLength) {\n\t\t\tresults.push(title);\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/modules.js": {
"title": "$:/core/modules/filters/modules.js",
"text": "/*\\\ntitle: $:/core/modules/filters/modules.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the titles of the modules of a given type in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.modules = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\t$tw.utils.each($tw.modules.types[title],function(moduleInfo,moduleName) {\n\t\t\tresults.push(moduleName);\n\t\t});\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/moduletypes.js": {
"title": "$:/core/modules/filters/moduletypes.js",
"text": "/*\\\ntitle: $:/core/modules/filters/moduletypes.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the module types in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.moduletypes = function(source,operator,options) {\n\tvar results = [];\n\t$tw.utils.each($tw.modules.types,function(moduleInfo,type) {\n\t\tresults.push(type);\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/next.js": {
"title": "$:/core/modules/filters/next.js",
"text": "/*\\\ntitle: $:/core/modules/filters/next.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the tiddler whose title occurs next in the list supplied in the operand tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.next = function(source,operator,options) {\n\tvar results = [],\n\t\tlist = options.wiki.getTiddlerList(operator.operand);\n\tsource(function(tiddler,title) {\n\t\tvar match = list.indexOf(title);\n\t\t// increment match and then test if result is in range\n\t\tmatch++;\n\t\tif(match > 0 && match < list.length) {\n\t\t\tresults.push(list[match]);\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/plugintiddlers.js": {
"title": "$:/core/modules/filters/plugintiddlers.js",
"text": "/*\\\ntitle: $:/core/modules/filters/plugintiddlers.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the titles of the shadow tiddlers within a plugin\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.plugintiddlers = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar pluginInfo = options.wiki.getPluginInfo(title) || options.wiki.getTiddlerDataCached(title,{tiddlers:[]});\n\t\tif(pluginInfo && pluginInfo.tiddlers) {\n\t\t\t$tw.utils.each(pluginInfo.tiddlers,function(fields,title) {\n\t\t\t\tresults.push(title);\n\t\t\t});\n\t\t}\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/prefix.js": {
"title": "$:/core/modules/filters/prefix.js",
"text": "/*\\\ntitle: $:/core/modules/filters/prefix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking if a title starts with a prefix\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.prefix = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title.substr(0,operator.operand.length) !== operator.operand) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title.substr(0,operator.operand.length) === operator.operand) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/previous.js": {
"title": "$:/core/modules/filters/previous.js",
"text": "/*\\\ntitle: $:/core/modules/filters/previous.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the tiddler whose title occurs immediately prior in the list supplied in the operand tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.previous = function(source,operator,options) {\n\tvar results = [],\n\t\tlist = options.wiki.getTiddlerList(operator.operand);\n\tsource(function(tiddler,title) {\n\t\tvar match = list.indexOf(title);\n\t\t// increment match and then test if result is in range\n\t\tmatch--;\n\t\tif(match >= 0) {\n\t\t\tresults.push(list[match]);\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/range.js": {
"title": "$:/core/modules/filters/range.js",
"text": "/*\\\ntitle: $:/core/modules/filters/range.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for generating a numeric range.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.range = function(source,operator,options) {\n\tvar results = [];\n\t// Split the operand into numbers delimited by these symbols\n\tvar parts = operator.operand.split(/[,:;]/g),\n\t\tbeg, end, inc, i, fixed = 0;\n\tfor (i=0; i<parts.length; i++) {\n\t\t// Validate real number\n\t\tif(!/^\\s*[+-]?((\\d+(\\.\\d*)?)|(\\.\\d+))\\s*$/.test(parts[i])) {\n\t\t\treturn [\"range: bad number \\\"\" + parts[i] + \"\\\"\"];\n\t\t}\n\t\t// Count digits; the most precise number determines decimal places in output.\n\t\tvar frac = /\\.\\d+/.exec(parts[i]);\n\t\tif(frac) {\n\t\t\tfixed = Math.max(fixed,frac[0].length-1);\n\t\t}\n\t\tparts[i] = parseFloat(parts[i]);\n\t}\n\tswitch(parts.length) {\n\t\tcase 1:\n\t\t\tend = parts[0];\n\t\t\tif (end >= 1) {\n\t\t\t\tbeg = 1;\n\t\t\t}\n\t\t\telse if (end <= -1) {\n\t\t\t\tbeg = -1;\n\t\t\t}\n\t\t\telse {\n\t\t\t\treturn [];\n\t\t\t}\n\t\t\tinc = 1;\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\tbeg = parts[0];\n\t\t\tend = parts[1];\n\t\t\tinc = 1;\n\t\t\tbreak;\n\t\tcase 3:\n\t\t\tbeg = parts[0];\n\t\t\tend = parts[1];\n\t\t\tinc = Math.abs(parts[2]);\n\t\t\tbreak;\n\t}\n\tif(inc === 0) {\n\t\treturn [\"range: increment 0 causes infinite loop\"];\n\t}\n\t// May need to count backwards\n\tvar direction = ((end < beg) ? -1 : 1);\n\tinc *= direction;\n\t// Estimate number of resulting elements\n\tif((end - beg) / inc > 10000) {\n\t\treturn [\"range: too many steps (over 10K)\"];\n\t}\n\t// Avoid rounding error on last step\n\tend += direction * 0.5 * Math.pow(0.1,fixed);\n\tvar safety = 10010;\n\t// Enumerate the range\n\tif (end<beg) {\n\t\tfor(i=beg; i>end; i+=inc) {\n\t\t\tresults.push(i.toFixed(fixed));\n\t\t\tif(--safety<0) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tfor(i=beg; i<end; i+=inc) {\n\t\t\tresults.push(i.toFixed(fixed));\n\t\t\tif(--safety<0) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\tif(safety<0) {\n\t\treturn [\"range: unexpectedly large output\"];\n\t}\n\t// Reverse?\n\tif(operator.prefix === \"!\") {\n\t\tresults.reverse();\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/regexp.js": {
"title": "$:/core/modules/filters/regexp.js",
"text": "/*\\\ntitle: $:/core/modules/filters/regexp.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for regexp matching\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.regexp = function(source,operator,options) {\n\tvar results = [],\n\t\tfieldname = (operator.suffix || \"title\").toLowerCase(),\n\t\tregexpString, regexp, flags = \"\", match,\n\t\tgetFieldString = function(tiddler,title) {\n\t\t\tif(tiddler) {\n\t\t\t\treturn tiddler.getFieldString(fieldname);\n\t\t\t} else if(fieldname === \"title\") {\n\t\t\t\treturn title;\n\t\t\t} else {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t};\n\t// Process flags and construct regexp\n\tregexpString = operator.operand;\n\tmatch = /^\\(\\?([gim]+)\\)/.exec(regexpString);\n\tif(match) {\n\t\tflags = match[1];\n\t\tregexpString = regexpString.substr(match[0].length);\n\t} else {\n\t\tmatch = /\\(\\?([gim]+)\\)$/.exec(regexpString);\n\t\tif(match) {\n\t\t\tflags = match[1];\n\t\t\tregexpString = regexpString.substr(0,regexpString.length - match[0].length);\n\t\t}\n\t}\n\ttry {\n\t\tregexp = new RegExp(regexpString,flags);\n\t} catch(e) {\n\t\treturn [\"\" + e];\n\t}\n\t// Process the incoming tiddlers\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tvar text = getFieldString(tiddler,title);\n\t\t\tif(text !== null) {\n\t\t\t\tif(!regexp.exec(text)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tvar text = getFieldString(tiddler,title);\n\t\t\tif(text !== null) {\n\t\t\t\tif(!!regexp.exec(text)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/removeprefix.js": {
"title": "$:/core/modules/filters/removeprefix.js",
"text": "/*\\\ntitle: $:/core/modules/filters/removeprefix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for removing a prefix from each title in the list. Titles that do not start with the prefix are removed.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.removeprefix = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tif(title.substr(0,operator.operand.length) === operator.operand) {\n\t\t\tresults.push(title.substr(operator.operand.length));\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/removesuffix.js": {
"title": "$:/core/modules/filters/removesuffix.js",
"text": "/*\\\ntitle: $:/core/modules/filters/removesuffix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for removing a suffix from each title in the list. Titles that do not end with the suffix are removed.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.removesuffix = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tif(title && title.substr(-operator.operand.length) === operator.operand) {\n\t\t\tresults.push(title.substr(0,title.length - operator.operand.length));\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/sameday.js": {
"title": "$:/core/modules/filters/sameday.js",
"text": "/*\\\ntitle: $:/core/modules/filters/sameday.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that selects tiddlers with a modified date field on the same day as the provided value.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.sameday = function(source,operator,options) {\n\tvar results = [],\n\t\tfieldName = operator.suffix || \"modified\",\n\t\ttargetDate = (new Date($tw.utils.parseDate(operator.operand))).setHours(0,0,0,0);\n\t// Function to convert a date/time to a date integer\n\tsource(function(tiddler,title) {\n\t\tif(tiddler) {\n\t\t\tif(tiddler.getFieldDay(fieldName) === targetDate) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/search.js": {
"title": "$:/core/modules/filters/search.js",
"text": "/*\\\ntitle: $:/core/modules/filters/search.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for searching for the text in the operand tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.search = function(source,operator,options) {\n\tvar invert = operator.prefix === \"!\";\n\tif(operator.suffixes) {\n\t\tvar hasFlag = function(flag) {\n\t\t\t\treturn (operator.suffixes[1] || []).indexOf(flag) !== -1;\n\t\t\t},\n\t\t\texcludeFields = false,\n\t\t\tfieldList = operator.suffixes[0] || [],\n\t\t\tfirstField = fieldList[0] || \"\", \n\t\t\tfirstChar = firstField.charAt(0),\n\t\t\tfields;\n\t\tif(firstChar === \"-\") {\n\t\t\tfields = [firstField.slice(1)].concat(fieldList.slice(1));\n\t\t\texcludeFields = true;\n\t\t} else if(fieldList[0] === \"*\"){\n\t\t\tfields = [];\n\t\t\texcludeFields = true;\n\t\t} else {\n\t\t\tfields = fieldList.slice(0);\n\t\t}\n\t\treturn options.wiki.search(operator.operand,{\n\t\t\tsource: source,\n\t\t\tinvert: invert,\n\t\t\tfield: fields,\n\t\t\texcludeField: excludeFields,\n\t\t\tcaseSensitive: hasFlag(\"casesensitive\"),\n\t\t\tliteral: hasFlag(\"literal\"),\n\t\t\twhitespace: hasFlag(\"whitespace\"),\n\t\t\tanchored: hasFlag(\"anchored\"),\n\t\t\tregexp: hasFlag(\"regexp\"),\n\t\t\twords: hasFlag(\"words\")\n\t\t});\n\t} else {\n\t\treturn options.wiki.search(operator.operand,{\n\t\t\tsource: source,\n\t\t\tinvert: invert\n\t\t});\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/shadowsource.js": {
"title": "$:/core/modules/filters/shadowsource.js",
"text": "/*\\\ntitle: $:/core/modules/filters/shadowsource.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the source plugins for shadow tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.shadowsource = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar source = options.wiki.getShadowSource(title);\n\t\tif(source) {\n\t\t\t$tw.utils.pushTop(results,source);\n\t\t}\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/sort.js": {
"title": "$:/core/modules/filters/sort.js",
"text": "/*\\\ntitle: $:/core/modules/filters/sort.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for sorting\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.sort = function(source,operator,options) {\n\tvar results = prepare_results(source);\n\toptions.wiki.sortTiddlers(results,operator.operand || \"title\",operator.prefix === \"!\",false,false);\n\treturn results;\n};\n\nexports.nsort = function(source,operator,options) {\n\tvar results = prepare_results(source);\n\toptions.wiki.sortTiddlers(results,operator.operand || \"title\",operator.prefix === \"!\",false,true);\n\treturn results;\n};\n\nexports.sortan = function(source, operator, options) {\n\tvar results = prepare_results(source);\n\toptions.wiki.sortTiddlers(results, operator.operand || \"title\", operator.prefix === \"!\",false,false,true);\n\treturn results;\n};\n\nexports.sortcs = function(source,operator,options) {\n\tvar results = prepare_results(source);\n\toptions.wiki.sortTiddlers(results,operator.operand || \"title\",operator.prefix === \"!\",true,false);\n\treturn results;\n};\n\nexports.nsortcs = function(source,operator,options) {\n\tvar results = prepare_results(source);\n\toptions.wiki.sortTiddlers(results,operator.operand || \"title\",operator.prefix === \"!\",true,true);\n\treturn results;\n};\n\nvar prepare_results = function (source) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/splitbefore.js": {
"title": "$:/core/modules/filters/splitbefore.js",
"text": "/*\\\ntitle: $:/core/modules/filters/splitbefore.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that splits each result on the first occurance of the specified separator and returns the unique values.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.splitbefore = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar parts = title.split(operator.operand);\n\t\tif(parts.length === 1) {\n\t\t\t$tw.utils.pushTop(results,parts[0]);\n\t\t} else {\n\t\t\t$tw.utils.pushTop(results,parts[0] + operator.operand);\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/storyviews.js": {
"title": "$:/core/modules/filters/storyviews.js",
"text": "/*\\\ntitle: $:/core/modules/filters/storyviews.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the story views in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.storyviews = function(source,operator,options) {\n\tvar results = [],\n\t\tstoryviews = {};\n\t$tw.modules.applyMethods(\"storyview\",storyviews);\n\t$tw.utils.each(storyviews,function(info,name) {\n\t\tresults.push(name);\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/strings.js": {
"title": "$:/core/modules/filters/strings.js",
"text": "/*\\\ntitle: $:/core/modules/filters/strings.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operators for strings. Unary/binary operators work on each item in turn, and return a new item list.\n\nSum/product/maxall/minall operate on the entire list, returning a single item.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.length = makeStringBinaryOperator(\n\tfunction(a) {return [\"\" + (\"\" + a).length];}\n);\n\nexports.uppercase = makeStringBinaryOperator(\n\tfunction(a) {return [(\"\" + a).toUpperCase()];}\n);\n\nexports.lowercase = makeStringBinaryOperator(\n\tfunction(a) {return [(\"\" + a).toLowerCase()];}\n);\n\nexports.sentencecase = makeStringBinaryOperator(\n\tfunction(a) {return [$tw.utils.toSentenceCase(a)];}\n);\n\nexports.titlecase = makeStringBinaryOperator(\n\tfunction(a) {return [$tw.utils.toTitleCase(a)];}\n);\n\nexports.trim = makeStringBinaryOperator(\n\tfunction(a) {return [$tw.utils.trim(a)];}\n);\n\nexports.split = makeStringBinaryOperator(\n\tfunction(a,b) {return (\"\" + a).split(b);}\n);\n\nexports.join = makeStringReducingOperator(\n\tfunction(accumulator,value,operand) {\n\t\tif(accumulator === null) {\n\t\t\treturn value;\n\t\t} else {\n\t\t\treturn accumulator + operand + value;\n\t\t}\n\t},null\n);\n\nfunction makeStringBinaryOperator(fnCalc) {\n\treturn function(source,operator,options) {\n\t\tvar result = [];\n\t\tsource(function(tiddler,title) {\n\t\t\tArray.prototype.push.apply(result,fnCalc(title,operator.operand || \"\"));\n\t\t});\n\t\treturn result;\n\t};\n}\n\nfunction makeStringReducingOperator(fnCalc,initialValue) {\n\treturn function(source,operator,options) {\n\t\tvar result = [];\n\t\tsource(function(tiddler,title) {\n\t\t\tresult.push(title);\n\t\t});\n\t\treturn [result.reduce(function(accumulator,currentValue) {\n\t\t\treturn fnCalc(accumulator,currentValue,operator.operand || \"\");\n\t\t},initialValue) || \"\"];\n\t};\n}\n\nexports.splitregexp = function(source,operator,options) {\n\tvar result = [],\n\t\tsuffix = operator.suffix || \"\",\n\t\tflags = (suffix.indexOf(\"m\") !== -1 ? \"m\" : \"\") + (suffix.indexOf(\"i\") !== -1 ? \"i\" : \"\"),\n\t\tregExp;\n\ttry {\n\t\tregExp = new RegExp(operator.operand || \"\",flags);\t\t\n\t} catch(ex) {\n\t\treturn [\"RegExp error: \" + ex];\n\t}\n\tsource(function(tiddler,title) {\n\t\tArray.prototype.push.apply(result,title.split(regExp));\n\t});\t\t\n\treturn result;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/subfilter.js": {
"title": "$:/core/modules/filters/subfilter.js",
"text": "/*\\\ntitle: $:/core/modules/filters/subfilter.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning its operand evaluated as a filter\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.subfilter = function(source,operator,options) {\n\tvar list = options.wiki.filterTiddlers(operator.operand,options.widget,source);\n\tif(operator.prefix === \"!\") {\n\t\tvar results = [];\n\t\tsource(function(tiddler,title) {\n\t\t\tif(list.indexOf(title) === -1) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t\treturn results;\n\t} else {\n\t\treturn list;\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/subtiddlerfields.js": {
"title": "$:/core/modules/filters/subtiddlerfields.js",
"text": "/*\\\ntitle: $:/core/modules/filters/subtiddlerfields.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the fields on the selected subtiddlers of the plugin named in the operand\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.subtiddlerfields = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar subtiddler = options.wiki.getSubTiddler(operator.operand,title);\n\t\tif(subtiddler) {\n\t\t\tfor(var fieldName in subtiddler.fields) {\n\t\t\t\t$tw.utils.pushTop(results,fieldName);\n\t\t\t}\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/suffix.js": {
"title": "$:/core/modules/filters/suffix.js",
"text": "/*\\\ntitle: $:/core/modules/filters/suffix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking if a title ends with a suffix\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.suffix = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title.substr(-operator.operand.length) !== operator.operand) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title.substr(-operator.operand.length) === operator.operand) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/tag.js": {
"title": "$:/core/modules/filters/tag.js",
"text": "/*\\\ntitle: $:/core/modules/filters/tag.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking for the presence of a tag\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tag = function(source,operator,options) {\n\tvar results = [],indexedResults;\n\tif((operator.suffix || \"\").toLowerCase() === \"strict\" && !operator.operand) {\n\t\t// New semantics:\n\t\t// Always return copy of input if operator.operand is missing\n\t\tsource(function(tiddler,title) {\n\t\t\tresults.push(title);\n\t\t});\n\t} else {\n\t\t// Old semantics:\n\t\tvar tiddlers;\n\t\tif(operator.prefix === \"!\") {\n\t\t\t// Returns a copy of the input if operator.operand is missing\n\t\t\ttiddlers = options.wiki.getTiddlersWithTag(operator.operand);\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddlers.indexOf(title) === -1) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\t// Returns empty results if operator.operand is missing\n\t\t\tif(source.byTag) {\n\t\t\t\tindexedResults = source.byTag(operator.operand);\n\t\t\t\tif(indexedResults) {\n\t\t\t\t\treturn indexedResults;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\ttiddlers = options.wiki.getTiddlersWithTag(operator.operand);\n\t\t\t\tsource(function(tiddler,title) {\n\t\t\t\t\tif(tiddlers.indexOf(title) !== -1) {\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tresults = options.wiki.sortByList(results,operator.operand);\n\t\t\t}\n\t\t}\t\t\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/tagging.js": {
"title": "$:/core/modules/filters/tagging.js",
"text": "/*\\\ntitle: $:/core/modules/filters/tagging.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning all tiddlers that are tagged with the selected tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tagging = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\t$tw.utils.pushTop(results,options.wiki.getTiddlersWithTag(title));\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/tags.js": {
"title": "$:/core/modules/filters/tags.js",
"text": "/*\\\ntitle: $:/core/modules/filters/tags.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning all the tags of the selected tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tags = function(source,operator,options) {\n\tvar tags = {};\n\tsource(function(tiddler,title) {\n\t\tvar t, length;\n\t\tif(tiddler && tiddler.fields.tags) {\n\t\t\tfor(t=0, length=tiddler.fields.tags.length; t<length; t++) {\n\t\t\t\ttags[tiddler.fields.tags[t]] = true;\n\t\t\t}\n\t\t}\n\t});\n\treturn Object.keys(tags);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/then.js": {
"title": "$:/core/modules/filters/then.js",
"text": "/*\\\ntitle: $:/core/modules/filters/then.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for replacing any titles with a constant\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.then = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(operator.operand);\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/title.js": {
"title": "$:/core/modules/filters/title.js",
"text": "/*\\\ntitle: $:/core/modules/filters/title.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for comparing title fields for equality\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.title = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler && tiddler.fields.title !== operator.operand) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tresults.push(operator.operand);\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/untagged.js": {
"title": "$:/core/modules/filters/untagged.js",
"text": "/*\\\ntitle: $:/core/modules/filters/untagged.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning all the selected tiddlers that are untagged\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.untagged = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler && $tw.utils.isArray(tiddler.fields.tags) && tiddler.fields.tags.length > 0) {\n\t\t\t\t$tw.utils.pushTop(results,title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!tiddler || !tiddler.hasField(\"tags\") || ($tw.utils.isArray(tiddler.fields.tags) && tiddler.fields.tags.length === 0)) {\n\t\t\t\t$tw.utils.pushTop(results,title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/variables.js": {
"title": "$:/core/modules/filters/variables.js",
"text": "/*\\\ntitle: $:/core/modules/filters/variables.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the active variables\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.variables = function(source,operator,options) {\n\tvar names = [];\n\tfor(var variable in options.widget.variables) {\n\t\tnames.push(variable);\n\t}\n\treturn names.sort();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/wikiparserrules.js": {
"title": "$:/core/modules/filters/wikiparserrules.js",
"text": "/*\\\ntitle: $:/core/modules/filters/wikiparserrules.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the wiki parser rules in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.wikiparserrules = function(source,operator,options) {\n\tvar results = [],\n\t\toperand = operator.operand;\n\t$tw.utils.each($tw.modules.types.wikirule,function(mod) {\n\t\tvar exp = mod.exports;\n\t\tif(!operand || exp.types[operand]) {\n\t\t\tresults.push(exp.name);\n\t\t}\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/x-listops.js": {
"title": "$:/core/modules/filters/x-listops.js",
"text": "/*\\\ntitle: $:/core/modules/filters/x-listops.js\ntype: application/javascript\nmodule-type: filteroperator\n\nExtended filter operators to manipulate the current list.\n\n\\*/\n(function () {\n\n /*jslint node: true, browser: true */\n /*global $tw: false */\n \"use strict\";\n\n /*\n Fetch titles from the current list\n */\n var prepare_results = function (source) {\n var results = [];\n source(function (tiddler, title) {\n results.push(title);\n });\n return results;\n };\n\n /*\n Moves a number of items from the tail of the current list before the item named in the operand\n */\n exports.putbefore = function (source, operator) {\n var results = prepare_results(source),\n index = results.indexOf(operator.operand),\n count = $tw.utils.getInt(operator.suffix,1);\n return (index === -1) ?\n results.slice(0, -1) :\n results.slice(0, index).concat(results.slice(-count)).concat(results.slice(index, -count));\n };\n\n /*\n Moves a number of items from the tail of the current list after the item named in the operand\n */\n exports.putafter = function (source, operator) {\n var results = prepare_results(source),\n index = results.indexOf(operator.operand),\n count = $tw.utils.getInt(operator.suffix,1);\n return (index === -1) ?\n results.slice(0, -1) :\n results.slice(0, index + 1).concat(results.slice(-count)).concat(results.slice(index + 1, -count));\n };\n\n /*\n Replaces the item named in the operand with a number of items from the tail of the current list\n */\n exports.replace = function (source, operator) {\n var results = prepare_results(source),\n index = results.indexOf(operator.operand),\n count = $tw.utils.getInt(operator.suffix,1);\n return (index === -1) ?\n results.slice(0, -count) :\n results.slice(0, index).concat(results.slice(-count)).concat(results.slice(index + 1, -count));\n };\n\n /*\n Moves a number of items from the tail of the current list to the head of the list\n */\n exports.putfirst = function (source, operator) {\n var results = prepare_results(source),\n count = $tw.utils.getInt(operator.suffix,1);\n return results.slice(-count).concat(results.slice(0, -count));\n };\n\n /*\n Moves a number of items from the head of the current list to the tail of the list\n */\n exports.putlast = function (source, operator) {\n var results = prepare_results(source),\n count = $tw.utils.getInt(operator.suffix,1);\n return results.slice(count).concat(results.slice(0, count));\n };\n\n /*\n Moves the item named in the operand a number of places forward or backward in the list\n */\n exports.move = function (source, operator) {\n var results = prepare_results(source),\n index = results.indexOf(operator.operand),\n count = $tw.utils.getInt(operator.suffix,1),\n marker = results.splice(index, 1),\n offset = (index + count) > 0 ? index + count : 0;\n return results.slice(0, offset).concat(marker).concat(results.slice(offset));\n };\n\n /*\n Returns the items from the current list that are after the item named in the operand\n */\n exports.allafter = function (source, operator) {\n var results = prepare_results(source),\n index = results.indexOf(operator.operand);\n return (index === -1) ? [] :\n (operator.suffix) ? results.slice(index) :\n results.slice(index + 1);\n };\n\n /*\n Returns the items from the current list that are before the item named in the operand\n */\n exports.allbefore = function (source, operator) {\n var results = prepare_results(source),\n index = results.indexOf(operator.operand);\n return (index === -1) ? [] :\n (operator.suffix) ? results.slice(0, index + 1) :\n results.slice(0, index);\n };\n\n /*\n Appends the items listed in the operand array to the tail of the current list\n */\n exports.append = function (source, operator) {\n var append = $tw.utils.parseStringArray(operator.operand, \"true\"),\n results = prepare_results(source),\n count = parseInt(operator.suffix) || append.length;\n return (append.length === 0) ? results :\n (operator.prefix) ? results.concat(append.slice(-count)) :\n results.concat(append.slice(0, count));\n };\n\n /*\n Prepends the items listed in the operand array to the head of the current list\n */\n exports.prepend = function (source, operator) {\n var prepend = $tw.utils.parseStringArray(operator.operand, \"true\"),\n results = prepare_results(source),\n count = $tw.utils.getInt(operator.suffix,prepend.length);\n return (prepend.length === 0) ? results :\n (operator.prefix) ? prepend.slice(-count).concat(results) :\n prepend.slice(0, count).concat(results);\n };\n\n /*\n Returns all items from the current list except the items listed in the operand array\n */\n exports.remove = function (source, operator) {\n var array = $tw.utils.parseStringArray(operator.operand, \"true\"),\n results = prepare_results(source),\n count = parseInt(operator.suffix) || array.length,\n p,\n len,\n index;\n len = array.length - 1;\n for (p = 0; p < count; ++p) {\n if (operator.prefix) {\n index = results.indexOf(array[len - p]);\n } else {\n index = results.indexOf(array[p]);\n }\n if (index !== -1) {\n results.splice(index, 1);\n }\n }\n return results;\n };\n\n /*\n Returns all items from the current list sorted in the order of the items in the operand array\n */\n exports.sortby = function (source, operator) {\n var results = prepare_results(source);\n if (!results || results.length < 2) {\n return results;\n }\n var lookup = $tw.utils.parseStringArray(operator.operand, \"true\");\n results.sort(function (a, b) {\n return lookup.indexOf(a) - lookup.indexOf(b);\n });\n return results;\n };\n\n /*\n Removes all duplicate items from the current list\n */\n exports.unique = function (source, operator) {\n var results = prepare_results(source);\n var set = results.reduce(function (a, b) {\n if (a.indexOf(b) < 0) {\n a.push(b);\n }\n return a;\n }, []);\n return set;\n };\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters.js": {
"title": "$:/core/modules/filters.js",
"text": "/*\\\ntitle: $:/core/modules/filters.js\ntype: application/javascript\nmodule-type: wikimethod\n\nAdds tiddler filtering methods to the $tw.Wiki object.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nParses an operation (i.e. a run) within a filter string\n\toperators: Array of array of operator nodes into which results should be inserted\n\tfilterString: filter string\n\tp: start position within the string\nReturns the new start position, after the parsed operation\n*/\nfunction parseFilterOperation(operators,filterString,p) {\n\tvar nextBracketPos, operator;\n\t// Skip the starting square bracket\n\tif(filterString.charAt(p++) !== \"[\") {\n\t\tthrow \"Missing [ in filter expression\";\n\t}\n\t// Process each operator in turn\n\tdo {\n\t\toperator = {};\n\t\t// Check for an operator prefix\n\t\tif(filterString.charAt(p) === \"!\") {\n\t\t\toperator.prefix = filterString.charAt(p++);\n\t\t}\n\t\t// Get the operator name\n\t\tnextBracketPos = filterString.substring(p).search(/[\\[\\{<\\/]/);\n\t\tif(nextBracketPos === -1) {\n\t\t\tthrow \"Missing [ in filter expression\";\n\t\t}\n\t\tnextBracketPos += p;\n\t\tvar bracket = filterString.charAt(nextBracketPos);\n\t\toperator.operator = filterString.substring(p,nextBracketPos);\n\t\t// Any suffix?\n\t\tvar colon = operator.operator.indexOf(':');\n\t\tif(colon > -1) {\n\t\t\t// The raw suffix for older filters\n\t\t\toperator.suffix = operator.operator.substring(colon + 1);\n\t\t\toperator.operator = operator.operator.substring(0,colon) || \"field\";\n\t\t\t// The processed suffix for newer filters\n\t\t\toperator.suffixes = [];\n\t\t\t$tw.utils.each(operator.suffix.split(\":\"),function(subsuffix) {\n\t\t\t\toperator.suffixes.push([]);\n\t\t\t\t$tw.utils.each(subsuffix.split(\",\"),function(entry) {\n\t\t\t\t\tentry = $tw.utils.trim(entry);\n\t\t\t\t\tif(entry) {\n\t\t\t\t\t\toperator.suffixes[operator.suffixes.length - 1].push(entry); \n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t\t// Empty operator means: title\n\t\telse if(operator.operator === \"\") {\n\t\t\toperator.operator = \"title\";\n\t\t}\n\n\t\tp = nextBracketPos + 1;\n\t\tswitch (bracket) {\n\t\t\tcase \"{\": // Curly brackets\n\t\t\t\toperator.indirect = true;\n\t\t\t\tnextBracketPos = filterString.indexOf(\"}\",p);\n\t\t\t\tbreak;\n\t\t\tcase \"[\": // Square brackets\n\t\t\t\tnextBracketPos = filterString.indexOf(\"]\",p);\n\t\t\t\tbreak;\n\t\t\tcase \"<\": // Angle brackets\n\t\t\t\toperator.variable = true;\n\t\t\t\tnextBracketPos = filterString.indexOf(\">\",p);\n\t\t\t\tbreak;\n\t\t\tcase \"/\": // regexp brackets\n\t\t\t\tvar rex = /^((?:[^\\\\\\/]*|\\\\.)*)\\/(?:\\(([mygi]+)\\))?/g,\n\t\t\t\t\trexMatch = rex.exec(filterString.substring(p));\n\t\t\t\tif(rexMatch) {\n\t\t\t\t\toperator.regexp = new RegExp(rexMatch[1], rexMatch[2]);\n// DEPRECATION WARNING\nconsole.log(\"WARNING: Filter\",operator.operator,\"has a deprecated regexp operand\",operator.regexp);\n\t\t\t\t\tnextBracketPos = p + rex.lastIndex - 1;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthrow \"Unterminated regular expression in filter expression\";\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\n\t\tif(nextBracketPos === -1) {\n\t\t\tthrow \"Missing closing bracket in filter expression\";\n\t\t}\n\t\tif(!operator.regexp) {\n\t\t\toperator.operand = filterString.substring(p,nextBracketPos);\n\t\t}\n\t\tp = nextBracketPos + 1;\n\n\t\t// Push this operator\n\t\toperators.push(operator);\n\t} while(filterString.charAt(p) !== \"]\");\n\t// Skip the ending square bracket\n\tif(filterString.charAt(p++) !== \"]\") {\n\t\tthrow \"Missing ] in filter expression\";\n\t}\n\t// Return the parsing position\n\treturn p;\n}\n\n/*\nParse a filter string\n*/\nexports.parseFilter = function(filterString) {\n\tfilterString = filterString || \"\";\n\tvar results = [], // Array of arrays of operator nodes {operator:,operand:}\n\t\tp = 0, // Current position in the filter string\n\t\tmatch;\n\tvar whitespaceRegExp = /(\\s+)/mg,\n\t\toperandRegExp = /((?:\\+|\\-|~|=)?)(?:(\\[)|(?:\"([^\"]*)\")|(?:'([^']*)')|([^\\s\\[\\]]+))/mg;\n\twhile(p < filterString.length) {\n\t\t// Skip any whitespace\n\t\twhitespaceRegExp.lastIndex = p;\n\t\tmatch = whitespaceRegExp.exec(filterString);\n\t\tif(match && match.index === p) {\n\t\t\tp = p + match[0].length;\n\t\t}\n\t\t// Match the start of the operation\n\t\tif(p < filterString.length) {\n\t\t\toperandRegExp.lastIndex = p;\n\t\t\tmatch = operandRegExp.exec(filterString);\n\t\t\tif(!match || match.index !== p) {\n\t\t\t\tthrow $tw.language.getString(\"Error/FilterSyntax\");\n\t\t\t}\n\t\t\tvar operation = {\n\t\t\t\tprefix: \"\",\n\t\t\t\toperators: []\n\t\t\t};\n\t\t\tif(match[1]) {\n\t\t\t\toperation.prefix = match[1];\n\t\t\t\tp++;\n\t\t\t}\n\t\t\tif(match[2]) { // Opening square bracket\n\t\t\t\tp = parseFilterOperation(operation.operators,filterString,p);\n\t\t\t} else {\n\t\t\t\tp = match.index + match[0].length;\n\t\t\t}\n\t\t\tif(match[3] || match[4] || match[5]) { // Double quoted string, single quoted string or unquoted title\n\t\t\t\toperation.operators.push(\n\t\t\t\t\t{operator: \"title\", operand: match[3] || match[4] || match[5]}\n\t\t\t\t);\n\t\t\t}\n\t\t\tresults.push(operation);\n\t\t}\n\t}\n\treturn results;\n};\n\nexports.getFilterOperators = function() {\n\tif(!this.filterOperators) {\n\t\t$tw.Wiki.prototype.filterOperators = {};\n\t\t$tw.modules.applyMethods(\"filteroperator\",this.filterOperators);\n\t}\n\treturn this.filterOperators;\n};\n\nexports.filterTiddlers = function(filterString,widget,source) {\n\tvar fn = this.compileFilter(filterString);\n\treturn fn.call(this,source,widget);\n};\n\n/*\nCompile a filter into a function with the signature fn(source,widget) where:\nsource: an iterator function for the source tiddlers, called source(iterator), where iterator is called as iterator(tiddler,title)\nwidget: an optional widget node for retrieving the current tiddler etc.\n*/\nexports.compileFilter = function(filterString) {\n\tvar filterParseTree;\n\ttry {\n\t\tfilterParseTree = this.parseFilter(filterString);\n\t} catch(e) {\n\t\treturn function(source,widget) {\n\t\t\treturn [$tw.language.getString(\"Error/Filter\") + \": \" + e];\n\t\t};\n\t}\n\t// Get the hashmap of filter operator functions\n\tvar filterOperators = this.getFilterOperators();\n\t// Assemble array of functions, one for each operation\n\tvar operationFunctions = [];\n\t// Step through the operations\n\tvar self = this;\n\t$tw.utils.each(filterParseTree,function(operation) {\n\t\t// Create a function for the chain of operators in the operation\n\t\tvar operationSubFunction = function(source,widget) {\n\t\t\tvar accumulator = source,\n\t\t\t\tresults = [],\n\t\t\t\tcurrTiddlerTitle = widget && widget.getVariable(\"currentTiddler\");\n\t\t\t$tw.utils.each(operation.operators,function(operator) {\n\t\t\t\tvar operand = operator.operand,\n\t\t\t\t\toperatorFunction;\n\t\t\t\tif(!operator.operator) {\n\t\t\t\t\toperatorFunction = filterOperators.title;\n\t\t\t\t} else if(!filterOperators[operator.operator]) {\n\t\t\t\t\toperatorFunction = filterOperators.field;\n\t\t\t\t} else {\n\t\t\t\t\toperatorFunction = filterOperators[operator.operator];\n\t\t\t\t}\n\t\t\t\tif(operator.indirect) {\n\t\t\t\t\toperand = self.getTextReference(operator.operand,\"\",currTiddlerTitle);\n\t\t\t\t}\n\t\t\t\tif(operator.variable) {\n\t\t\t\t\toperand = widget.getVariable(operator.operand,{defaultValue: \"\"});\n\t\t\t\t}\n\t\t\t\t// Invoke the appropriate filteroperator module\n\t\t\t\tresults = operatorFunction(accumulator,{\n\t\t\t\t\t\t\toperator: operator.operator,\n\t\t\t\t\t\t\toperand: operand,\n\t\t\t\t\t\t\tprefix: operator.prefix,\n\t\t\t\t\t\t\tsuffix: operator.suffix,\n\t\t\t\t\t\t\tsuffixes: operator.suffixes,\n\t\t\t\t\t\t\tregexp: operator.regexp\n\t\t\t\t\t\t},{\n\t\t\t\t\t\t\twiki: self,\n\t\t\t\t\t\t\twidget: widget\n\t\t\t\t\t\t});\n\t\t\t\tif($tw.utils.isArray(results)) {\n\t\t\t\t\taccumulator = self.makeTiddlerIterator(results);\n\t\t\t\t} else {\n\t\t\t\t\taccumulator = results;\n\t\t\t\t}\n\t\t\t});\n\t\t\tif($tw.utils.isArray(results)) {\n\t\t\t\treturn results;\n\t\t\t} else {\n\t\t\t\tvar resultArray = [];\n\t\t\t\tresults(function(tiddler,title) {\n\t\t\t\t\tresultArray.push(title);\n\t\t\t\t});\n\t\t\t\treturn resultArray;\n\t\t\t}\n\t\t};\n\t\t// Wrap the operator functions in a wrapper function that depends on the prefix\n\t\toperationFunctions.push((function() {\n\t\t\tswitch(operation.prefix || \"\") {\n\t\t\t\tcase \"\": // No prefix means that the operation is unioned into the result\n\t\t\t\t\treturn function(results,source,widget) {\n\t\t\t\t\t\t$tw.utils.pushTop(results,operationSubFunction(source,widget));\n\t\t\t\t\t};\n\t\t\t\tcase \"=\": // The results of the operation are pushed into the result without deduplication\n\t\t\t\t\treturn function(results,source,widget) {\n\t\t\t\t\t\tArray.prototype.push.apply(results,operationSubFunction(source,widget));\n\t\t\t\t\t};\n\t\t\t\tcase \"-\": // The results of this operation are removed from the main result\n\t\t\t\t\treturn function(results,source,widget) {\n\t\t\t\t\t\t$tw.utils.removeArrayEntries(results,operationSubFunction(source,widget));\n\t\t\t\t\t};\n\t\t\t\tcase \"+\": // This operation is applied to the main results so far\n\t\t\t\t\treturn function(results,source,widget) {\n\t\t\t\t\t\t// This replaces all the elements of the array, but keeps the actual array so that references to it are preserved\n\t\t\t\t\t\tsource = self.makeTiddlerIterator(results);\n\t\t\t\t\t\tresults.splice(0,results.length);\n\t\t\t\t\t\t$tw.utils.pushTop(results,operationSubFunction(source,widget));\n\t\t\t\t\t};\n\t\t\t\tcase \"~\": // This operation is unioned into the result only if the main result so far is empty\n\t\t\t\t\treturn function(results,source,widget) {\n\t\t\t\t\t\tif(results.length === 0) {\n\t\t\t\t\t\t\t// Main result so far is empty\n\t\t\t\t\t\t\t$tw.utils.pushTop(results,operationSubFunction(source,widget));\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t}\n\t\t})());\n\t});\n\t// Return a function that applies the operations to a source iterator of tiddler titles\n\treturn $tw.perf.measure(\"filter: \" + filterString,function filterFunction(source,widget) {\n\t\tif(!source) {\n\t\t\tsource = self.each;\n\t\t} else if(typeof source === \"object\") { // Array or hashmap\n\t\t\tsource = self.makeTiddlerIterator(source);\n\t\t}\n\t\tvar results = [];\n\t\t$tw.utils.each(operationFunctions,function(operationFunction) {\n\t\t\toperationFunction(results,source,widget);\n\t\t});\n\t\treturn results;\n\t});\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikimethod"
},
"$:/core/modules/indexers/backlinks-indexer.js": {
"title": "$:/core/modules/indexers/backlinks-indexer.js",
"text": "/*\\\ntitle: $:/core/modules/indexers/backlinks-indexer.js\ntype: application/javascript\nmodule-type: indexer\n\nIndexes the tiddlers' backlinks\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global modules: false */\n\"use strict\";\n\n\nfunction BacklinksIndexer(wiki) {\n\tthis.wiki = wiki;\n}\n\nBacklinksIndexer.prototype.init = function() {\n\tthis.index = null;\n}\n\nBacklinksIndexer.prototype.rebuild = function() {\n\tthis.index = null;\n}\n\nBacklinksIndexer.prototype._getLinks = function(tiddler) {\n\tvar parser = this.wiki.parseText(tiddler.fields.type, tiddler.fields.text, {});\n\tif(parser) {\n\t\treturn this.wiki.extractLinks(parser.tree);\n\t}\n\treturn [];\n}\n\nBacklinksIndexer.prototype.update = function(updateDescriptor) {\n\tif(!this.index) {\n\t\treturn;\n\t}\n\tvar newLinks = [],\n\t oldLinks = [],\n\t self = this;\n\tif(updateDescriptor.old.exists) {\n\t\toldLinks = this._getLinks(updateDescriptor.old.tiddler);\n\t}\n\tif(updateDescriptor.new.exists) {\n\t\tnewLinks = this._getLinks(updateDescriptor.new.tiddler);\n\t}\n\n\t$tw.utils.each(oldLinks,function(link) {\n\t\tif(self.index[link]) {\n\t\t\tdelete self.index[link][updateDescriptor.old.tiddler.fields.title];\n\t\t}\n\t});\n\t$tw.utils.each(newLinks,function(link) {\n\t\tif(!self.index[link]) {\n\t\t\tself.index[link] = Object.create(null);\n\t\t}\n\t\tself.index[link][updateDescriptor.new.tiddler.fields.title] = true;\n\t});\n}\n\nBacklinksIndexer.prototype.lookup = function(title) {\n\tif(!this.index) {\n\t\tthis.index = Object.create(null);\n\t\tvar self = this;\n\t\tthis.wiki.forEachTiddler(function(title,tiddler) {\n\t\t\tvar links = self._getLinks(tiddler);\n\t\t\t$tw.utils.each(links, function(link) {\n\t\t\t\tif(!self.index[link]) {\n\t\t\t\t\tself.index[link] = Object.create(null);\n\t\t\t\t}\n\t\t\t\tself.index[link][title] = true;\n\t\t\t});\n\t\t});\n\t}\n\tif(this.index[title]) {\n\t\treturn Object.keys(this.index[title]);\n\t} else {\n\t\treturn [];\n\t}\n}\n\nexports.BacklinksIndexer = BacklinksIndexer;\n\n})();\n",
"type": "application/javascript",
"module-type": "indexer"
},
"$:/core/modules/indexers/field-indexer.js": {
"title": "$:/core/modules/indexers/field-indexer.js",
"text": "/*\\\ntitle: $:/core/modules/indexers/field-indexer.js\ntype: application/javascript\nmodule-type: indexer\n\nIndexes the tiddlers with each field value\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global modules: false */\n\"use strict\";\n\nvar DEFAULT_MAXIMUM_INDEXED_VALUE_LENGTH = 128;\n\nfunction FieldIndexer(wiki) {\n\tthis.wiki = wiki;\n}\n\nFieldIndexer.prototype.init = function() {\n\tthis.index = null;\n\tthis.maxIndexedValueLength = DEFAULT_MAXIMUM_INDEXED_VALUE_LENGTH;\n\tthis.addIndexMethods();\n}\n\n// Provided for testing\nFieldIndexer.prototype.setMaxIndexedValueLength = function(length) {\n\tthis.index = null;\n\tthis.maxIndexedValueLength = length;\n};\n\nFieldIndexer.prototype.addIndexMethods = function() {\n\tvar self = this;\n\tthis.wiki.each.byField = function(name,value) {\n\t\tvar titles = self.wiki.allTitles(),\n\t\t\tlookup = self.lookup(name,value);\n\t\treturn lookup && lookup.filter(function(title) {\n\t\t\treturn titles.indexOf(title) !== -1;\n\t\t});\n\t};\n\tthis.wiki.eachShadow.byField = function(name,value) {\n\t\tvar titles = self.wiki.allShadowTitles(),\n\t\t\tlookup = self.lookup(name,value);\n\t\treturn lookup && lookup.filter(function(title) {\n\t\t\treturn titles.indexOf(title) !== -1;\n\t\t});\n\t};\n\tthis.wiki.eachTiddlerPlusShadows.byField = function(name,value) {\n\t\tvar lookup = self.lookup(name,value);\n\t\treturn lookup ? lookup.slice(0) : null;\n\t};\n\tthis.wiki.eachShadowPlusTiddlers.byField = function(name,value) {\n\t\tvar lookup = self.lookup(name,value);\n\t\treturn lookup ? lookup.slice(0) : null;\n\t};\n};\n\n/*\nTear down and then rebuild the index as if all tiddlers have changed\n*/\nFieldIndexer.prototype.rebuild = function() {\n\t// Invalidate the index so that it will be rebuilt when it is next used\n\tthis.index = null;\n};\n\n/*\nBuild the index for a particular field\n*/\nFieldIndexer.prototype.buildIndexForField = function(name) {\n\tvar self = this;\n\t// Hashmap by field name of hashmap by field value of array of tiddler titles\n\tthis.index = this.index || Object.create(null);\n\tthis.index[name] = Object.create(null);\n\tvar baseIndex = this.index[name];\n\t// Update the index for each tiddler\n\tthis.wiki.eachTiddlerPlusShadows(function(tiddler,title) {\n\t\tif(name in tiddler.fields) {\n\t\t\tvar value = tiddler.getFieldString(name);\n\t\t\t// Skip any values above the maximum length\n\t\t\tif(value.length < self.maxIndexedValueLength) {\n\t\t\t\tbaseIndex[value] = baseIndex[value] || [];\n\t\t\t\tbaseIndex[value].push(title);\n\t\t\t}\n\t\t}\n\t});\n};\n\n/*\nUpdate the index in the light of a tiddler value changing; note that the title must be identical. (Renames are handled as a separate delete and create)\nupdateDescriptor: {old: {tiddler: <tiddler>, shadow: <boolean>, exists: <boolean>},new: {tiddler: <tiddler>, shadow: <boolean>, exists: <boolean>}}\n*/\nFieldIndexer.prototype.update = function(updateDescriptor) {\n\tvar self = this;\n\t// Don't do anything if the index hasn't been built yet\n\tif(this.index === null) {\n\t\treturn;\n\t}\n\t// Remove the old tiddler from the index\n\tif(updateDescriptor.old.tiddler) {\n\t\t$tw.utils.each(this.index,function(indexEntry,name) {\n\t\t\tif(name in updateDescriptor.old.tiddler.fields) {\n\t\t\t\tvar value = updateDescriptor.old.tiddler.getFieldString(name),\n\t\t\t\t\ttiddlerList = indexEntry[value];\n\t\t\t\tif(tiddlerList) {\n\t\t\t\t\tvar index = tiddlerList.indexOf(updateDescriptor.old.tiddler.fields.title);\n\t\t\t\t\tif(index !== -1) {\n\t\t\t\t\t\ttiddlerList.splice(index,1);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\t// Add the new tiddler to the index\n\tif(updateDescriptor[\"new\"].tiddler) {\n\t\t$tw.utils.each(this.index,function(indexEntry,name) {\n\t\t\tif(name in updateDescriptor[\"new\"].tiddler.fields) {\n\t\t\t\tvar value = updateDescriptor[\"new\"].tiddler.getFieldString(name);\n\t\t\t\tif(value.length < self.maxIndexedValueLength) {\n\t\t\t\t\tindexEntry[value] = indexEntry[value] || [];\n\t\t\t\t\tindexEntry[value].push(updateDescriptor[\"new\"].tiddler.fields.title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\t\t\n\t}\n};\n\n// Lookup the given field returning a list of tiddler titles\nFieldIndexer.prototype.lookup = function(name,value) {\n\t// Fail the lookup if the value is too long\n\tif(value.length >= this.maxIndexedValueLength) {\n\t\treturn null;\n\t}\n\t// Update the index if it has yet to be built\n\tif(this.index === null || !this.index[name]) {\n\t\tthis.buildIndexForField(name);\n\t}\n\treturn this.index[name][value] || [];\n};\n\nexports.FieldIndexer = FieldIndexer;\n\n})();\n",
"type": "application/javascript",
"module-type": "indexer"
},
"$:/core/modules/indexers/tag-indexer.js": {
"title": "$:/core/modules/indexers/tag-indexer.js",
"text": "/*\\\ntitle: $:/core/modules/indexers/tag-indexer.js\ntype: application/javascript\nmodule-type: indexer\n\nIndexes the tiddlers with each tag\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global modules: false */\n\"use strict\";\n\nfunction TagIndexer(wiki) {\n\tthis.wiki = wiki;\n}\n\nTagIndexer.prototype.init = function() {\n\tthis.subIndexers = [\n\t\tnew TagSubIndexer(this,\"each\"),\n\t\tnew TagSubIndexer(this,\"eachShadow\"),\n\t\tnew TagSubIndexer(this,\"eachTiddlerPlusShadows\"),\n\t\tnew TagSubIndexer(this,\"eachShadowPlusTiddlers\")\n\t];\n\t$tw.utils.each(this.subIndexers,function(subIndexer) {\n\t\tsubIndexer.addIndexMethod();\n\t});\n};\n\nTagIndexer.prototype.rebuild = function() {\n\t$tw.utils.each(this.subIndexers,function(subIndexer) {\n\t\tsubIndexer.rebuild();\n\t});\n};\n\nTagIndexer.prototype.update = function(updateDescriptor) {\n\t$tw.utils.each(this.subIndexers,function(subIndexer) {\n\t\tsubIndexer.update(updateDescriptor);\n\t});\n};\n\nfunction TagSubIndexer(indexer,iteratorMethod) {\n\tthis.indexer = indexer;\n\tthis.iteratorMethod = iteratorMethod;\n\tthis.index = null; // Hashmap of tag title to {isSorted: bool, titles: [array]} or null if not yet initialised\n}\n\nTagSubIndexer.prototype.addIndexMethod = function() {\n\tvar self = this;\n\tthis.indexer.wiki[this.iteratorMethod].byTag = function(tag) {\n\t\treturn self.lookup(tag).slice(0);\n\t};\n};\n\nTagSubIndexer.prototype.rebuild = function() {\n\tvar self = this;\n\t// Hashmap by tag of array of {isSorted:, titles:[]}\n\tthis.index = Object.create(null);\n\t// Add all the tags\n\tthis.indexer.wiki[this.iteratorMethod](function(tiddler,title) {\n\t\t$tw.utils.each(tiddler.fields.tags,function(tag) {\n\t\t\tif(!self.index[tag]) {\n\t\t\t\tself.index[tag] = {isSorted: false, titles: [title]};\n\t\t\t} else {\n\t\t\t\tself.index[tag].titles.push(title);\n\t\t\t}\n\t\t});\t\t\n\t});\n};\n\nTagSubIndexer.prototype.update = function(updateDescriptor) {\n\tthis.index = null;\n};\n\nTagSubIndexer.prototype.lookup = function(tag) {\n\t// Update the index if it has yet to be built\n\tif(this.index === null) {\n\t\tthis.rebuild();\n\t}\n\tvar indexRecord = this.index[tag];\n\tif(indexRecord) {\n\t\tif(!indexRecord.isSorted) {\n\t\t\tif(this.indexer.wiki.sortByList) {\n\t\t\t\tindexRecord.titles = this.indexer.wiki.sortByList(indexRecord.titles,tag);\n\t\t\t}\t\t\t\n\t\t\tindexRecord.isSorted = true;\n\t\t}\n\t\treturn indexRecord.titles;\n\t} else {\n\t\treturn [];\n\t}\n};\n\n\nexports.TagIndexer = TagIndexer;\n\n})();\n",
"type": "application/javascript",
"module-type": "indexer"
},
"$:/core/modules/info/platform.js": {
"title": "$:/core/modules/info/platform.js",
"text": "/*\\\ntitle: $:/core/modules/info/platform.js\ntype: application/javascript\nmodule-type: info\n\nInitialise basic platform $:/info/ tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.getInfoTiddlerFields = function() {\n\tvar mapBoolean = function(value) {return value ? \"yes\" : \"no\";},\n\t\tinfoTiddlerFields = [];\n\t// Basics\n\tinfoTiddlerFields.push({title: \"$:/info/browser\", text: mapBoolean(!!$tw.browser)});\n\tinfoTiddlerFields.push({title: \"$:/info/node\", text: mapBoolean(!!$tw.node)});\n\tif($tw.browser) {\n\t\t// Document location\n\t\tvar setLocationProperty = function(name,value) {\n\t\t\t\tinfoTiddlerFields.push({title: \"$:/info/url/\" + name, text: value});\t\t\t\n\t\t\t},\n\t\t\tlocation = document.location;\n\t\tsetLocationProperty(\"full\", (location.toString()).split(\"#\")[0]);\n\t\tsetLocationProperty(\"host\", location.host);\n\t\tsetLocationProperty(\"hostname\", location.hostname);\n\t\tsetLocationProperty(\"protocol\", location.protocol);\n\t\tsetLocationProperty(\"port\", location.port);\n\t\tsetLocationProperty(\"pathname\", location.pathname);\n\t\tsetLocationProperty(\"search\", location.search);\n\t\tsetLocationProperty(\"origin\", location.origin);\n\t\t// Screen size\n\t\tinfoTiddlerFields.push({title: \"$:/info/browser/screen/width\", text: window.screen.width.toString()});\n\t\tinfoTiddlerFields.push({title: \"$:/info/browser/screen/height\", text: window.screen.height.toString()});\n\t\t// Language\n\t\tinfoTiddlerFields.push({title: \"$:/info/browser/language\", text: navigator.language || \"\"});\n\t}\n\treturn infoTiddlerFields;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "info"
},
"$:/core/modules/keyboard.js": {
"title": "$:/core/modules/keyboard.js",
"text": "/*\\\ntitle: $:/core/modules/keyboard.js\ntype: application/javascript\nmodule-type: global\n\nKeyboard handling utilities\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar namedKeys = {\n\t\"cancel\": 3,\n\t\"help\": 6,\n\t\"backspace\": 8,\n\t\"tab\": 9,\n\t\"clear\": 12,\n\t\"return\": 13,\n\t\"enter\": 13,\n\t\"pause\": 19,\n\t\"escape\": 27,\n\t\"space\": 32,\n\t\"page_up\": 33,\n\t\"page_down\": 34,\n\t\"end\": 35,\n\t\"home\": 36,\n\t\"left\": 37,\n\t\"up\": 38,\n\t\"right\": 39,\n\t\"down\": 40,\n\t\"printscreen\": 44,\n\t\"insert\": 45,\n\t\"delete\": 46,\n\t\"0\": 48,\n\t\"1\": 49,\n\t\"2\": 50,\n\t\"3\": 51,\n\t\"4\": 52,\n\t\"5\": 53,\n\t\"6\": 54,\n\t\"7\": 55,\n\t\"8\": 56,\n\t\"9\": 57,\n\t\"firefoxsemicolon\": 59,\n\t\"firefoxequals\": 61,\n\t\"a\": 65,\n\t\"b\": 66,\n\t\"c\": 67,\n\t\"d\": 68,\n\t\"e\": 69,\n\t\"f\": 70,\n\t\"g\": 71,\n\t\"h\": 72,\n\t\"i\": 73,\n\t\"j\": 74,\n\t\"k\": 75,\n\t\"l\": 76,\n\t\"m\": 77,\n\t\"n\": 78,\n\t\"o\": 79,\n\t\"p\": 80,\n\t\"q\": 81,\n\t\"r\": 82,\n\t\"s\": 83,\n\t\"t\": 84,\n\t\"u\": 85,\n\t\"v\": 86,\n\t\"w\": 87,\n\t\"x\": 88,\n\t\"y\": 89,\n\t\"z\": 90,\n\t\"numpad0\": 96,\n\t\"numpad1\": 97,\n\t\"numpad2\": 98,\n\t\"numpad3\": 99,\n\t\"numpad4\": 100,\n\t\"numpad5\": 101,\n\t\"numpad6\": 102,\n\t\"numpad7\": 103,\n\t\"numpad8\": 104,\n\t\"numpad9\": 105,\n\t\"multiply\": 106,\n\t\"add\": 107,\n\t\"separator\": 108,\n\t\"subtract\": 109,\n\t\"decimal\": 110,\n\t\"divide\": 111,\n\t\"f1\": 112,\n\t\"f2\": 113,\n\t\"f3\": 114,\n\t\"f4\": 115,\n\t\"f5\": 116,\n\t\"f6\": 117,\n\t\"f7\": 118,\n\t\"f8\": 119,\n\t\"f9\": 120,\n\t\"f10\": 121,\n\t\"f11\": 122,\n\t\"f12\": 123,\n\t\"f13\": 124,\n\t\"f14\": 125,\n\t\"f15\": 126,\n\t\"f16\": 127,\n\t\"f17\": 128,\n\t\"f18\": 129,\n\t\"f19\": 130,\n\t\"f20\": 131,\n\t\"f21\": 132,\n\t\"f22\": 133,\n\t\"f23\": 134,\n\t\"f24\": 135,\n\t\"firefoxminus\": 173,\n\t\"semicolon\": 186,\n\t\"equals\": 187,\n\t\"comma\": 188,\n\t\"dash\": 189,\n\t\"period\": 190,\n\t\"slash\": 191,\n\t\"backquote\": 192,\n\t\"openbracket\": 219,\n\t\"backslash\": 220,\n\t\"closebracket\": 221,\n\t\"quote\": 222\n};\n\nfunction KeyboardManager(options) {\n\tvar self = this;\n\toptions = options || \"\";\n\t// Save the named key hashmap\n\tthis.namedKeys = namedKeys;\n\t// Create a reverse mapping of code to keyname\n\tthis.keyNames = [];\n\t$tw.utils.each(namedKeys,function(keyCode,name) {\n\t\tself.keyNames[keyCode] = name.substr(0,1).toUpperCase() + name.substr(1);\n\t});\n\t// Save the platform-specific name of the \"meta\" key\n\tthis.metaKeyName = $tw.platform.isMac ? \"cmd-\" : \"win-\";\n\tthis.shortcutKeysList = [], // Stores the shortcut-key descriptors\n\tthis.shortcutActionList = [], // Stores the corresponding action strings\n\tthis.shortcutParsedList = []; // Stores the parsed key descriptors\n\tthis.lookupNames = [\"shortcuts\"];\n\tthis.lookupNames.push($tw.platform.isMac ? \"shortcuts-mac\" : \"shortcuts-not-mac\")\n\tthis.lookupNames.push($tw.platform.isWindows ? \"shortcuts-windows\" : \"shortcuts-not-windows\");\n\tthis.lookupNames.push($tw.platform.isLinux ? \"shortcuts-linux\" : \"shortcuts-not-linux\");\n\tthis.updateShortcutLists(this.getShortcutTiddlerList());\n\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\tself.handleShortcutChanges(changes);\n\t});\n}\n\n/*\nReturn an array of keycodes for the modifier keys ctrl, shift, alt, meta\n*/\nKeyboardManager.prototype.getModifierKeys = function() {\n\treturn [\n\t\t16, // Shift\n\t\t17, // Ctrl\n\t\t18, // Alt\n\t\t20, // CAPS LOCK\n\t\t91, // Meta (left)\n\t\t93, // Meta (right)\n\t\t224 // Meta (Firefox)\n\t]\n};\n\n/*\nParses a key descriptor into the structure:\n{\n\tkeyCode: numeric keycode\n\tshiftKey: boolean\n\taltKey: boolean\n\tctrlKey: boolean\n\tmetaKey: boolean\n}\nKey descriptors have the following format:\n\tctrl+enter\n\tctrl+shift+alt+A\n*/\nKeyboardManager.prototype.parseKeyDescriptor = function(keyDescriptor) {\n\tvar components = keyDescriptor.split(/\\+|\\-/),\n\t\tinfo = {\n\t\t\tkeyCode: 0,\n\t\t\tshiftKey: false,\n\t\t\taltKey: false,\n\t\t\tctrlKey: false,\n\t\t\tmetaKey: false\n\t\t};\n\tfor(var t=0; t<components.length; t++) {\n\t\tvar s = components[t].toLowerCase(),\n\t\t\tc = s.charCodeAt(0);\n\t\t// Look for modifier keys\n\t\tif(s === \"ctrl\") {\n\t\t\tinfo.ctrlKey = true;\n\t\t} else if(s === \"shift\") {\n\t\t\tinfo.shiftKey = true;\n\t\t} else if(s === \"alt\") {\n\t\t\tinfo.altKey = true;\n\t\t} else if(s === \"meta\" || s === \"cmd\" || s === \"win\") {\n\t\t\tinfo.metaKey = true;\n\t\t}\n\t\t// Replace named keys with their code\n\t\tif(this.namedKeys[s]) {\n\t\t\tinfo.keyCode = this.namedKeys[s];\n\t\t}\n\t}\n\tif(info.keyCode) {\n\t\treturn info;\n\t} else {\n\t\treturn null;\n\t}\n};\n\n/*\nParse a list of key descriptors into an array of keyInfo objects. The key descriptors can be passed as an array of strings or a space separated string\n*/\nKeyboardManager.prototype.parseKeyDescriptors = function(keyDescriptors,options) {\n\tvar self = this;\n\toptions = options || {};\n\toptions.stack = options.stack || [];\n\tvar wiki = options.wiki || $tw.wiki;\n\tif(typeof keyDescriptors === \"string\" && keyDescriptors === \"\") {\n\t\treturn [];\n\t}\n\tif(!$tw.utils.isArray(keyDescriptors)) {\n\t\tkeyDescriptors = keyDescriptors.split(\" \");\n\t}\n\tvar result = [];\n\t$tw.utils.each(keyDescriptors,function(keyDescriptor) {\n\t\t// Look for a named shortcut\n\t\tif(keyDescriptor.substr(0,2) === \"((\" && keyDescriptor.substr(-2,2) === \"))\") {\n\t\t\tif(options.stack.indexOf(keyDescriptor) === -1) {\n\t\t\t\toptions.stack.push(keyDescriptor);\n\t\t\t\tvar name = keyDescriptor.substring(2,keyDescriptor.length - 2),\n\t\t\t\t\tlookupName = function(configName) {\n\t\t\t\t\t\tvar keyDescriptors = wiki.getTiddlerText(\"$:/config/\" + configName + \"/\" + name);\n\t\t\t\t\t\tif(keyDescriptors) {\n\t\t\t\t\t\t\tresult.push.apply(result,self.parseKeyDescriptors(keyDescriptors,options));\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t$tw.utils.each(self.lookupNames,function(platformDescriptor) {\n\t\t\t\t\tlookupName(platformDescriptor);\n\t\t\t\t});\n\t\t\t}\n\t\t} else {\n\t\t\tresult.push(self.parseKeyDescriptor(keyDescriptor));\n\t\t}\n\t});\n\treturn result;\n};\n\nKeyboardManager.prototype.getPrintableShortcuts = function(keyInfoArray) {\n\tvar self = this,\n\t\tresult = [];\n\t$tw.utils.each(keyInfoArray,function(keyInfo) {\n\t\tif(keyInfo) {\n\t\t\tresult.push((keyInfo.ctrlKey ? \"ctrl-\" : \"\") + \n\t\t\t\t (keyInfo.shiftKey ? \"shift-\" : \"\") + \n\t\t\t\t (keyInfo.altKey ? \"alt-\" : \"\") + \n\t\t\t\t (keyInfo.metaKey ? self.metaKeyName : \"\") + \n\t\t\t\t (self.keyNames[keyInfo.keyCode]));\n\t\t}\n\t});\n\treturn result;\n}\n\nKeyboardManager.prototype.checkKeyDescriptor = function(event,keyInfo) {\n\treturn keyInfo &&\n\t\t\tevent.keyCode === keyInfo.keyCode && \n\t\t\tevent.shiftKey === keyInfo.shiftKey && \n\t\t\tevent.altKey === keyInfo.altKey && \n\t\t\tevent.ctrlKey === keyInfo.ctrlKey && \n\t\t\tevent.metaKey === keyInfo.metaKey;\n};\n\nKeyboardManager.prototype.checkKeyDescriptors = function(event,keyInfoArray) {\n\tfor(var t=0; t<keyInfoArray.length; t++) {\n\t\tif(this.checkKeyDescriptor(event,keyInfoArray[t])) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n\nKeyboardManager.prototype.getShortcutTiddlerList = function() {\n\treturn $tw.wiki.getTiddlersWithTag(\"$:/tags/KeyboardShortcut\");\n};\n\nKeyboardManager.prototype.updateShortcutLists = function(tiddlerList) {\n\tthis.shortcutTiddlers = tiddlerList;\n\tfor(var i=0; i<tiddlerList.length; i++) {\n\t\tvar title = tiddlerList[i],\n\t\t\ttiddlerFields = $tw.wiki.getTiddler(title).fields;\n\t\tthis.shortcutKeysList[i] = tiddlerFields.key !== undefined ? tiddlerFields.key : undefined;\n\t\tthis.shortcutActionList[i] = tiddlerFields.text;\n\t\tthis.shortcutParsedList[i] = this.shortcutKeysList[i] !== undefined ? this.parseKeyDescriptors(this.shortcutKeysList[i]) : undefined;\n\t}\n};\n\nKeyboardManager.prototype.handleKeydownEvent = function(event) {\n\tvar key, action;\n\tfor(var i=0; i<this.shortcutTiddlers.length; i++) {\n\t\tif(this.shortcutParsedList[i] !== undefined && this.checkKeyDescriptors(event,this.shortcutParsedList[i])) {\n\t\t\tkey = this.shortcutParsedList[i];\n\t\t\taction = this.shortcutActionList[i];\n\t\t}\n\t}\n\tif(key !== undefined) {\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t\t$tw.rootWidget.invokeActionString(action,$tw.rootWidget);\n\t\treturn true;\n\t}\n\treturn false;\n};\n\nKeyboardManager.prototype.detectNewShortcuts = function(changedTiddlers) {\n\tvar shortcutConfigTiddlers = [],\n\t\thandled = false;\n\t$tw.utils.each(this.lookupNames,function(platformDescriptor) {\n\t\tvar descriptorString = \"$:/config/\" + platformDescriptor + \"/\";\n\t\tObject.keys(changedTiddlers).forEach(function(configTiddler) {\n\t\t\tvar configString = configTiddler.substr(0, configTiddler.lastIndexOf(\"/\") + 1);\n\t\t\tif(configString === descriptorString) {\n\t\t\t\tshortcutConfigTiddlers.push(configTiddler);\n\t\t\t\thandled = true;\n\t\t\t}\n\t\t});\n\t});\n\tif(handled) {\n\t\treturn $tw.utils.hopArray(changedTiddlers,shortcutConfigTiddlers);\n\t} else {\n\t\treturn false;\n\t}\n};\n\nKeyboardManager.prototype.handleShortcutChanges = function(changedTiddlers) {\n\tvar newList = this.getShortcutTiddlerList();\n\tvar hasChanged = $tw.utils.hopArray(changedTiddlers,this.shortcutTiddlers) ? true :\n\t\t($tw.utils.hopArray(changedTiddlers,newList) ? true :\n\t\t(this.detectNewShortcuts(changedTiddlers))\n\t);\n\t// Re-cache shortcuts if something changed\n\tif(hasChanged) {\n\t\tthis.updateShortcutLists(newList);\n\t}\n};\n\nexports.KeyboardManager = KeyboardManager;\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/language.js": {
"title": "$:/core/modules/language.js",
"text": "/*\\\ntitle: $:/core/modules/language.js\ntype: application/javascript\nmodule-type: global\n\nThe $tw.Language() manages translateable strings\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nCreate an instance of the language manager. Options include:\nwiki: wiki from which to retrieve translation tiddlers\n*/\nfunction Language(options) {\n\toptions = options || \"\";\n\tthis.wiki = options.wiki || $tw.wiki;\n}\n\n/*\nReturn a wikified translateable string. The title is automatically prefixed with \"$:/language/\"\nOptions include:\nvariables: optional hashmap of variables to supply to the language wikification\n*/\nLanguage.prototype.getString = function(title,options) {\n\toptions = options || {};\n\ttitle = \"$:/language/\" + title;\n\treturn this.wiki.renderTiddler(\"text/plain\",title,{variables: options.variables});\n};\n\n/*\nReturn a raw, unwikified translateable string. The title is automatically prefixed with \"$:/language/\"\n*/\nLanguage.prototype.getRawString = function(title) {\n\ttitle = \"$:/language/\" + title;\n\treturn this.wiki.getTiddlerText(title);\n};\n\nexports.Language = Language;\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/macros/changecount.js": {
"title": "$:/core/modules/macros/changecount.js",
"text": "/*\\\ntitle: $:/core/modules/macros/changecount.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to return the changecount for the current tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"changecount\";\n\nexports.params = [];\n\n/*\nRun the macro\n*/\nexports.run = function() {\n\treturn this.wiki.getChangeCount(this.getVariable(\"currentTiddler\")) + \"\";\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/contrastcolour.js": {
"title": "$:/core/modules/macros/contrastcolour.js",
"text": "/*\\\ntitle: $:/core/modules/macros/contrastcolour.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to choose which of two colours has the highest contrast with a base colour\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"contrastcolour\";\n\nexports.params = [\n\t{name: \"target\"},\n\t{name: \"fallbackTarget\"},\n\t{name: \"colourA\"},\n\t{name: \"colourB\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(target,fallbackTarget,colourA,colourB) {\n\tvar rgbTarget = $tw.utils.parseCSSColor(target) || $tw.utils.parseCSSColor(fallbackTarget);\n\tif(!rgbTarget) {\n\t\treturn colourA;\n\t}\n\tvar rgbColourA = $tw.utils.parseCSSColor(colourA),\n\t\trgbColourB = $tw.utils.parseCSSColor(colourB);\n\tif(rgbColourA && !rgbColourB) {\n\t\treturn rgbColourA;\n\t}\n\tif(rgbColourB && !rgbColourA) {\n\t\treturn rgbColourB;\n\t}\n\tif(!rgbColourA && !rgbColourB) {\n\t\t// If neither colour is readable, return a crude inverse of the target\n\t\treturn [255 - rgbTarget[0],255 - rgbTarget[1],255 - rgbTarget[2],rgbTarget[3]];\n\t}\n\t// Colour brightness formula derived from http://www.w3.org/WAI/ER/WD-AERT/#color-contrast\n\tvar brightnessTarget = rgbTarget[0] * 0.299 + rgbTarget[1] * 0.587 + rgbTarget[2] * 0.114,\n\t\tbrightnessA = rgbColourA[0] * 0.299 + rgbColourA[1] * 0.587 + rgbColourA[2] * 0.114,\n\t\tbrightnessB = rgbColourB[0] * 0.299 + rgbColourB[1] * 0.587 + rgbColourB[2] * 0.114;\n\treturn Math.abs(brightnessTarget - brightnessA) > Math.abs(brightnessTarget - brightnessB) ? colourA : colourB;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/csvtiddlers.js": {
"title": "$:/core/modules/macros/csvtiddlers.js",
"text": "/*\\\ntitle: $:/core/modules/macros/csvtiddlers.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to output tiddlers matching a filter to CSV\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"csvtiddlers\";\n\nexports.params = [\n\t{name: \"filter\"},\n\t{name: \"format\"},\n];\n\n/*\nRun the macro\n*/\nexports.run = function(filter,format) {\n\tvar self = this,\n\t\ttiddlers = this.wiki.filterTiddlers(filter),\n\t\ttiddler,\n\t\tfields = [],\n\t\tt,f;\n\t// Collect all the fields\n\tfor(t=0;t<tiddlers.length; t++) {\n\t\ttiddler = this.wiki.getTiddler(tiddlers[t]);\n\t\tfor(f in tiddler.fields) {\n\t\t\tif(fields.indexOf(f) === -1) {\n\t\t\t\tfields.push(f);\n\t\t\t}\n\t\t}\n\t}\n\t// Sort the fields and bring the standard ones to the front\n\tfields.sort();\n\t\"title text modified modifier created creator\".split(\" \").reverse().forEach(function(value,index) {\n\t\tvar p = fields.indexOf(value);\n\t\tif(p !== -1) {\n\t\t\tfields.splice(p,1);\n\t\t\tfields.unshift(value)\n\t\t}\n\t});\n\t// Output the column headings\n\tvar output = [], row = [];\n\tfields.forEach(function(value) {\n\t\trow.push(quoteAndEscape(value))\n\t});\n\toutput.push(row.join(\",\"));\n\t// Output each tiddler\n\tfor(var t=0;t<tiddlers.length; t++) {\n\t\trow = [];\n\t\ttiddler = this.wiki.getTiddler(tiddlers[t]);\n\t\t\tfor(f=0; f<fields.length; f++) {\n\t\t\t\trow.push(quoteAndEscape(tiddler ? tiddler.getFieldString(fields[f]) || \"\" : \"\"));\n\t\t\t}\n\t\toutput.push(row.join(\",\"));\n\t}\n\treturn output.join(\"\\n\");\n};\n\nfunction quoteAndEscape(value) {\n\treturn \"\\\"\" + value.replace(/\"/mg,\"\\\"\\\"\") + \"\\\"\";\n}\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/displayshortcuts.js": {
"title": "$:/core/modules/macros/displayshortcuts.js",
"text": "/*\\\ntitle: $:/core/modules/macros/displayshortcuts.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to display a list of keyboard shortcuts in human readable form. Notably, it resolves named shortcuts like `((bold))` to the underlying keystrokes.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"displayshortcuts\";\n\nexports.params = [\n\t{name: \"shortcuts\"},\n\t{name: \"prefix\"},\n\t{name: \"separator\"},\n\t{name: \"suffix\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(shortcuts,prefix,separator,suffix) {\n\tvar shortcutArray = $tw.keyboardManager.getPrintableShortcuts($tw.keyboardManager.parseKeyDescriptors(shortcuts,{\n\t\twiki: this.wiki\n\t}));\n\tif(shortcutArray.length > 0) {\n\t\tshortcutArray.sort(function(a,b) {\n\t\t return a.toLowerCase().localeCompare(b.toLowerCase());\n\t\t})\n\t\treturn prefix + shortcutArray.join(separator) + suffix;\n\t} else {\n\t\treturn \"\";\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/jsontiddler.js": {
"title": "$:/core/modules/macros/jsontiddler.js",
"text": "/*\\\ntitle: $:/core/modules/macros/jsontiddler.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to output a single tiddler to JSON\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"jsontiddler\";\n\nexports.params = [\n\t{name: \"title\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(title) {\n\ttitle = title || this.getVariable(\"currentTiddler\");\n\tvar tiddler = !!title && this.wiki.getTiddler(title),\n\t\tfields = new Object();\n\tif(tiddler) {\n\t\tfor(var field in tiddler.fields) {\n\t\t\tfields[field] = tiddler.getFieldString(field);\n\t\t}\n\t}\n\treturn JSON.stringify(fields,null,$tw.config.preferences.jsonSpaces);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/jsontiddlers.js": {
"title": "$:/core/modules/macros/jsontiddlers.js",
"text": "/*\\\ntitle: $:/core/modules/macros/jsontiddlers.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to output tiddlers matching a filter to JSON\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"jsontiddlers\";\n\nexports.params = [\n\t{name: \"filter\"},\n\t{name: \"spaces\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(filter,spaces) {\n\treturn this.wiki.getTiddlersAsJson(filter,$tw.utils.parseInt(spaces));\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/makedatauri.js": {
"title": "$:/core/modules/macros/makedatauri.js",
"text": "/*\\\ntitle: $:/core/modules/macros/makedatauri.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to convert a string of text to a data URI\n\n<<makedatauri text:\"Text to be converted\" type:\"text/vnd.tiddlywiki\">>\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"makedatauri\";\n\nexports.params = [\n\t{name: \"text\"},\n\t{name: \"type\"},\n\t{name: \"_canonical_uri\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(text,type,_canonical_uri) {\n\treturn $tw.utils.makeDataUri(text,type,_canonical_uri);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/now.js": {
"title": "$:/core/modules/macros/now.js",
"text": "/*\\\ntitle: $:/core/modules/macros/now.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to return a formatted version of the current time\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"now\";\n\nexports.params = [\n\t{name: \"format\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(format) {\n\treturn $tw.utils.formatDateString(new Date(),format || \"0hh:0mm, DDth MMM YYYY\");\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/qualify.js": {
"title": "$:/core/modules/macros/qualify.js",
"text": "/*\\\ntitle: $:/core/modules/macros/qualify.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to qualify a state tiddler title according\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"qualify\";\n\nexports.params = [\n\t{name: \"title\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(title) {\n\treturn title + \"-\" + this.getStateQualifier();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/resolvepath.js": {
"title": "$:/core/modules/macros/resolvepath.js",
"text": "/*\\\ntitle: $:/core/modules/macros/resolvepath.js\ntype: application/javascript\nmodule-type: macro\n\nResolves a relative path for an absolute rootpath.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"resolvepath\";\n\nexports.params = [\n\t{name: \"source\"},\n\t{name: \"root\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(source, root) {\n\treturn $tw.utils.resolvePath(source, root);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/unusedtitle.js": {
"title": "$:/core/modules/macros/unusedtitle.js",
"text": "/*\\\ntitle: $:/core/modules/macros/unusedtitle.js\ntype: application/javascript\nmodule-type: macro\nMacro to return a new title that is unused in the wiki. It can be given a name as a base.\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"unusedtitle\";\n\nexports.params = [\n\t{name: \"baseName\"},\n\t{name: \"options\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(baseName, options) {\n\tif(!baseName) {\n\t\tbaseName = $tw.language.getString(\"DefaultNewTiddlerTitle\");\n\t}\n\treturn this.wiki.generateNewTitle(baseName, options);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/version.js": {
"title": "$:/core/modules/macros/version.js",
"text": "/*\\\ntitle: $:/core/modules/macros/version.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to return the TiddlyWiki core version number\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"version\";\n\nexports.params = [];\n\n/*\nRun the macro\n*/\nexports.run = function() {\n\treturn $tw.version;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/parsers/audioparser.js": {
"title": "$:/core/modules/parsers/audioparser.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/audioparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe audio parser parses an audio tiddler into an embeddable HTML element\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar AudioParser = function(type,text,options) {\n\tvar element = {\n\t\t\ttype: \"element\",\n\t\t\ttag: \"audio\",\n\t\t\tattributes: {\n\t\t\t\tcontrols: {type: \"string\", value: \"controls\"},\n\t\t\t\tstyle: {type: \"string\", value: \"width: 100%; object-fit: contain\"}\n\t\t\t}\n\t\t},\n\t\tsrc;\n\tif(options._canonical_uri) {\n\t\telement.attributes.src = {type: \"string\", value: options._canonical_uri};\n\t} else if(text) {\n\t\telement.attributes.src = {type: \"string\", value: \"data:\" + type + \";base64,\" + text};\n\t}\n\tthis.tree = [element];\n};\n\nexports[\"audio/ogg\"] = AudioParser;\nexports[\"audio/mpeg\"] = AudioParser;\nexports[\"audio/mp3\"] = AudioParser;\nexports[\"audio/mp4\"] = AudioParser;\n\n})();\n\n",
"type": "application/javascript",
"module-type": "parser"
},
"$:/core/modules/parsers/binaryparser.js": {
"title": "$:/core/modules/parsers/binaryparser.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/binaryparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe binary parser parses a binary tiddler into a warning message and download link\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar BINARY_WARNING_MESSAGE = \"$:/core/ui/BinaryWarning\";\nvar EXPORT_BUTTON_IMAGE = \"$:/core/images/export-button\";\n\nvar BinaryParser = function(type,text,options) {\n\t// Transclude the binary data tiddler warning message\n\tvar warn = {\n\t\ttype: \"element\",\n\t\ttag: \"p\",\n\t\tchildren: [{\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: BINARY_WARNING_MESSAGE}\n\t\t\t}\n\t\t}]\n\t};\n\t// Create download link based on binary tiddler title\n\tvar link = {\n\t\ttype: \"element\",\n\t\ttag: \"a\",\n\t\tattributes: {\n\t\t\ttitle: {type: \"indirect\", textReference: \"!!title\"},\n\t\t\tdownload: {type: \"indirect\", textReference: \"!!title\"}\n\t\t},\n\t\tchildren: [{\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: EXPORT_BUTTON_IMAGE}\n\t\t\t}\n\t\t}]\n\t};\n\t// Set the link href to external or internal data URI\n\tif(options._canonical_uri) {\n\t\tlink.attributes.href = {\n\t\t\ttype: \"string\", \n\t\t\tvalue: options._canonical_uri\n\t\t};\n\t} else if(text) {\n\t\tlink.attributes.href = {\n\t\t\ttype: \"string\", \n\t\t\tvalue: \"data:\" + type + \";base64,\" + text\n\t\t};\n\t}\n\t// Combine warning message and download link in a div\n\tvar element = {\n\t\ttype: \"element\",\n\t\ttag: \"div\",\n\t\tattributes: {\n\t\t\tclass: {type: \"string\", value: \"tc-binary-warning\"}\n\t\t},\n\t\tchildren: [warn, link]\n\t}\n\tthis.tree = [element];\n};\n\nexports[\"application/octet-stream\"] = BinaryParser;\n\n})();\n\n",
"type": "application/javascript",
"module-type": "parser"
},
"$:/core/modules/parsers/csvparser.js": {
"title": "$:/core/modules/parsers/csvparser.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/csvparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe CSV text parser processes CSV files into a table wrapped in a scrollable widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar CsvParser = function(type,text,options) {\n\t// Table framework\n\tthis.tree = [{\n\t\t\"type\": \"scrollable\", \"children\": [{\n\t\t\t\"type\": \"element\", \"tag\": \"table\", \"children\": [{\n\t\t\t\t\"type\": \"element\", \"tag\": \"tbody\", \"children\": []\n\t\t\t}], \"attributes\": {\n\t\t\t\t\"class\": {\"type\": \"string\", \"value\": \"tc-csv-table\"}\n\t\t\t}\n\t\t}]\n\t}];\n\t// Split the text into lines\n\tvar lines = text.split(/\\r?\\n/mg),\n\t\ttag = \"th\";\n\tfor(var line=0; line<lines.length; line++) {\n\t\tvar lineText = lines[line];\n\t\tif(lineText) {\n\t\t\tvar row = {\n\t\t\t\t\t\"type\": \"element\", \"tag\": \"tr\", \"children\": []\n\t\t\t\t};\n\t\t\tvar columns = lineText.split(\",\");\n\t\t\tfor(var column=0; column<columns.length; column++) {\n\t\t\t\trow.children.push({\n\t\t\t\t\t\t\"type\": \"element\", \"tag\": tag, \"children\": [{\n\t\t\t\t\t\t\t\"type\": \"text\",\n\t\t\t\t\t\t\t\"text\": columns[column]\n\t\t\t\t\t\t}]\n\t\t\t\t\t});\n\t\t\t}\n\t\t\ttag = \"td\";\n\t\t\tthis.tree[0].children[0].children[0].children.push(row);\n\t\t}\n\t}\n};\n\nexports[\"text/csv\"] = CsvParser;\n\n})();\n\n",
"type": "application/javascript",
"module-type": "parser"
},
"$:/core/modules/parsers/htmlparser.js": {
"title": "$:/core/modules/parsers/htmlparser.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/htmlparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe HTML parser displays text as raw HTML\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar HtmlParser = function(type,text,options) {\n\tvar src;\n\tif(options._canonical_uri) {\n\t\tsrc = options._canonical_uri;\n\t} else if(text) {\n\t\tsrc = \"data:text/html;charset=utf-8,\" + encodeURIComponent(text);\n\t}\n\tthis.tree = [{\n\t\ttype: \"element\",\n\t\ttag: \"iframe\",\n\t\tattributes: {\n\t\t\tsrc: {type: \"string\", value: src},\n\t\t\tsandbox: {type: \"string\", value: \"\"}\n\t\t}\n\t}];\n};\n\nexports[\"text/html\"] = HtmlParser;\n\n})();\n\n",
"type": "application/javascript",
"module-type": "parser"
},
"$:/core/modules/parsers/imageparser.js": {
"title": "$:/core/modules/parsers/imageparser.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/imageparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe image parser parses an image into an embeddable HTML element\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar ImageParser = function(type,text,options) {\n\tvar element = {\n\t\t\ttype: \"element\",\n\t\t\ttag: \"img\",\n\t\t\tattributes: {}\n\t\t};\n\tif(options._canonical_uri) {\n\t\telement.attributes.src = {type: \"string\", value: options._canonical_uri};\n\t} else if(text) {\n\t\tif(type === \"image/svg+xml\" || type === \".svg\") {\n\t\t\telement.attributes.src = {type: \"string\", value: \"data:image/svg+xml,\" + encodeURIComponent(text)};\n\t\t} else {\n\t\t\telement.attributes.src = {type: \"string\", value: \"data:\" + type + \";base64,\" + text};\n\t\t}\n\t}\n\tthis.tree = [element];\n};\n\nexports[\"image/svg+xml\"] = ImageParser;\nexports[\"image/jpg\"] = ImageParser;\nexports[\"image/jpeg\"] = ImageParser;\nexports[\"image/png\"] = ImageParser;\nexports[\"image/gif\"] = ImageParser;\nexports[\"image/webp\"] = ImageParser;\nexports[\"image/heic\"] = ImageParser;\nexports[\"image/heif\"] = ImageParser;\nexports[\"image/x-icon\"] = ImageParser;\n\n})();\n\n",
"type": "application/javascript",
"module-type": "parser"
},
"$:/core/modules/utils/parseutils.js": {
"title": "$:/core/modules/utils/parseutils.js",
"text": "/*\\\ntitle: $:/core/modules/utils/parseutils.js\ntype: application/javascript\nmodule-type: utils\n\nUtility functions concerned with parsing text into tokens.\n\nMost functions have the following pattern:\n\n* The parameters are:\n** `source`: the source string being parsed\n** `pos`: the current parse position within the string\n** Any further parameters are used to identify the token that is being parsed\n* The return value is:\n** null if the token was not found at the specified position\n** an object representing the token with the following standard fields:\n*** `type`: string indicating the type of the token\n*** `start`: start position of the token in the source string\n*** `end`: end position of the token in the source string\n*** Any further fields required to describe the token\n\nThe exception is `skipWhiteSpace`, which just returns the position after the whitespace.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nLook for a whitespace token. Returns null if not found, otherwise returns {type: \"whitespace\", start:, end:,}\n*/\nexports.parseWhiteSpace = function(source,pos) {\n\tvar p = pos,c;\n\twhile(true) {\n\t\tc = source.charAt(p);\n\t\tif((c === \" \") || (c === \"\\f\") || (c === \"\\n\") || (c === \"\\r\") || (c === \"\\t\") || (c === \"\\v\") || (c === \"\\u00a0\")) { // Ignores some obscure unicode spaces\n\t\t\tp++;\n\t\t} else {\n\t\t\tbreak;\n\t\t}\n\t}\n\tif(p === pos) {\n\t\treturn null;\n\t} else {\n\t\treturn {\n\t\t\ttype: \"whitespace\",\n\t\t\tstart: pos,\n\t\t\tend: p\n\t\t}\n\t}\n};\n\n/*\nConvenience wrapper for parseWhiteSpace. Returns the position after the whitespace\n*/\nexports.skipWhiteSpace = function(source,pos) {\n\tvar c;\n\twhile(true) {\n\t\tc = source.charAt(pos);\n\t\tif((c === \" \") || (c === \"\\f\") || (c === \"\\n\") || (c === \"\\r\") || (c === \"\\t\") || (c === \"\\v\") || (c === \"\\u00a0\")) { // Ignores some obscure unicode spaces\n\t\t\tpos++;\n\t\t} else {\n\t\t\treturn pos;\n\t\t}\n\t}\n};\n\n/*\nLook for a given string token. Returns null if not found, otherwise returns {type: \"token\", value:, start:, end:,}\n*/\nexports.parseTokenString = function(source,pos,token) {\n\tvar match = source.indexOf(token,pos) === pos;\n\tif(match) {\n\t\treturn {\n\t\t\ttype: \"token\",\n\t\t\tvalue: token,\n\t\t\tstart: pos,\n\t\t\tend: pos + token.length\n\t\t};\n\t}\n\treturn null;\n};\n\n/*\nLook for a token matching a regex. Returns null if not found, otherwise returns {type: \"regexp\", match:, start:, end:,}\n*/\nexports.parseTokenRegExp = function(source,pos,reToken) {\n\tvar node = {\n\t\ttype: \"regexp\",\n\t\tstart: pos\n\t};\n\treToken.lastIndex = pos;\n\tnode.match = reToken.exec(source);\n\tif(node.match && node.match.index === pos) {\n\t\tnode.end = pos + node.match[0].length;\n\t\treturn node;\n\t} else {\n\t\treturn null;\n\t}\n};\n\n/*\nLook for a string literal. Returns null if not found, otherwise returns {type: \"string\", value:, start:, end:,}\n*/\nexports.parseStringLiteral = function(source,pos) {\n\tvar node = {\n\t\ttype: \"string\",\n\t\tstart: pos\n\t};\n\tvar reString = /(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\")|(?:'([^']*)')/g;\n\treString.lastIndex = pos;\n\tvar match = reString.exec(source);\n\tif(match && match.index === pos) {\n\t\tnode.value = match[1] !== undefined ? match[1] :(\n\t\t\tmatch[2] !== undefined ? match[2] : match[3] \n\t\t\t\t\t);\n\t\tnode.end = pos + match[0].length;\n\t\treturn node;\n\t} else {\n\t\treturn null;\n\t}\n};\n\n/*\nLook for a macro invocation parameter. Returns null if not found, or {type: \"macro-parameter\", name:, value:, start:, end:}\n*/\nexports.parseMacroParameter = function(source,pos) {\n\tvar node = {\n\t\ttype: \"macro-parameter\",\n\t\tstart: pos\n\t};\n\t// Define our regexp\n\tvar reMacroParameter = /(?:([A-Za-z0-9\\-_]+)\\s*:)?(?:\\s*(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\"|'([^']*)'|\\[\\[([^\\]]*)\\]\\]|([^\\s>\"'=]+)))/g;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for the parameter\n\tvar token = $tw.utils.parseTokenRegExp(source,pos,reMacroParameter);\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Get the parameter details\n\tnode.value = token.match[2] !== undefined ? token.match[2] : (\n\t\t\t\t\ttoken.match[3] !== undefined ? token.match[3] : (\n\t\t\t\t\t\ttoken.match[4] !== undefined ? token.match[4] : (\n\t\t\t\t\t\t\ttoken.match[5] !== undefined ? token.match[5] : (\n\t\t\t\t\t\t\t\ttoken.match[6] !== undefined ? token.match[6] : (\n\t\t\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t);\n\tif(token.match[1]) {\n\t\tnode.name = token.match[1];\n\t}\n\t// Update the end position\n\tnode.end = pos;\n\treturn node;\n};\n\n/*\nLook for a macro invocation. Returns null if not found, or {type: \"macrocall\", name:, parameters:, start:, end:}\n*/\nexports.parseMacroInvocation = function(source,pos) {\n\tvar node = {\n\t\ttype: \"macrocall\",\n\t\tstart: pos,\n\t\tparams: []\n\t};\n\t// Define our regexps\n\tvar reMacroName = /([^\\s>\"'=]+)/g;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for a double less than sign\n\tvar token = $tw.utils.parseTokenString(source,pos,\"<<\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Get the macro name\n\tvar name = $tw.utils.parseTokenRegExp(source,pos,reMacroName);\n\tif(!name) {\n\t\treturn null;\n\t}\n\tnode.name = name.match[1];\n\tpos = name.end;\n\t// Process parameters\n\tvar parameter = $tw.utils.parseMacroParameter(source,pos);\n\twhile(parameter) {\n\t\tnode.params.push(parameter);\n\t\tpos = parameter.end;\n\t\t// Get the next parameter\n\t\tparameter = $tw.utils.parseMacroParameter(source,pos);\n\t}\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for a double greater than sign\n\ttoken = $tw.utils.parseTokenString(source,pos,\">>\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Update the end position\n\tnode.end = pos;\n\treturn node;\n};\n\n/*\nLook for an HTML attribute definition. Returns null if not found, otherwise returns {type: \"attribute\", name:, valueType: \"string|indirect|macro\", value:, start:, end:,}\n*/\nexports.parseAttribute = function(source,pos) {\n\tvar node = {\n\t\tstart: pos\n\t};\n\t// Define our regexps\n\tvar reAttributeName = /([^\\/\\s>\"'=]+)/g,\n\t\treUnquotedAttribute = /([^\\/\\s<>\"'=]+)/g,\n\t\treFilteredValue = /\\{\\{\\{(.+?)\\}\\}\\}/g,\n\t\treIndirectValue = /\\{\\{([^\\}]+)\\}\\}/g;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Get the attribute name\n\tvar name = $tw.utils.parseTokenRegExp(source,pos,reAttributeName);\n\tif(!name) {\n\t\treturn null;\n\t}\n\tnode.name = name.match[1];\n\tpos = name.end;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for an equals sign\n\tvar token = $tw.utils.parseTokenString(source,pos,\"=\");\n\tif(token) {\n\t\tpos = token.end;\n\t\t// Skip whitespace\n\t\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t\t// Look for a string literal\n\t\tvar stringLiteral = $tw.utils.parseStringLiteral(source,pos);\n\t\tif(stringLiteral) {\n\t\t\tpos = stringLiteral.end;\n\t\t\tnode.type = \"string\";\n\t\t\tnode.value = stringLiteral.value;\n\t\t} else {\n\t\t\t// Look for a filtered value\n\t\t\tvar filteredValue = $tw.utils.parseTokenRegExp(source,pos,reFilteredValue);\n\t\t\tif(filteredValue) {\n\t\t\t\tpos = filteredValue.end;\n\t\t\t\tnode.type = \"filtered\";\n\t\t\t\tnode.filter = filteredValue.match[1];\n\t\t\t} else {\n\t\t\t\t// Look for an indirect value\n\t\t\t\tvar indirectValue = $tw.utils.parseTokenRegExp(source,pos,reIndirectValue);\n\t\t\t\tif(indirectValue) {\n\t\t\t\t\tpos = indirectValue.end;\n\t\t\t\t\tnode.type = \"indirect\";\n\t\t\t\t\tnode.textReference = indirectValue.match[1];\n\t\t\t\t} else {\n\t\t\t\t\t// Look for a unquoted value\n\t\t\t\t\tvar unquotedValue = $tw.utils.parseTokenRegExp(source,pos,reUnquotedAttribute);\n\t\t\t\t\tif(unquotedValue) {\n\t\t\t\t\t\tpos = unquotedValue.end;\n\t\t\t\t\t\tnode.type = \"string\";\n\t\t\t\t\t\tnode.value = unquotedValue.match[1];\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Look for a macro invocation value\n\t\t\t\t\t\tvar macroInvocation = $tw.utils.parseMacroInvocation(source,pos);\n\t\t\t\t\t\tif(macroInvocation) {\n\t\t\t\t\t\t\tpos = macroInvocation.end;\n\t\t\t\t\t\t\tnode.type = \"macro\";\n\t\t\t\t\t\t\tnode.value = macroInvocation;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tnode.type = \"string\";\n\t\t\t\t\t\t\tnode.value = \"true\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} else {\n\t\tnode.type = \"string\";\n\t\tnode.value = \"true\";\n\t}\n\t// Update the end position\n\tnode.end = pos;\n\treturn node;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/parsers/pdfparser.js": {
"title": "$:/core/modules/parsers/pdfparser.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/pdfparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe PDF parser embeds a PDF viewer\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar ImageParser = function(type,text,options) {\n\tvar element = {\n\t\t\ttype: \"element\",\n\t\t\ttag: \"embed\",\n\t\t\tattributes: {}\n\t\t},\n\t\tsrc;\n\tif(options._canonical_uri) {\n\t\telement.attributes.src = {type: \"string\", value: options._canonical_uri};\n\t} else if(text) {\n\t\telement.attributes.src = {type: \"string\", value: \"data:application/pdf;base64,\" + text};\n\t}\n\tthis.tree = [element];\n};\n\nexports[\"application/pdf\"] = ImageParser;\n\n})();\n\n",
"type": "application/javascript",
"module-type": "parser"
},
"$:/core/modules/parsers/textparser.js": {
"title": "$:/core/modules/parsers/textparser.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/textparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe plain text parser processes blocks of source text into a degenerate parse tree consisting of a single text node\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar TextParser = function(type,text,options) {\n\tthis.tree = [{\n\t\ttype: \"codeblock\",\n\t\tattributes: {\n\t\t\tcode: {type: \"string\", value: text},\n\t\t\tlanguage: {type: \"string\", value: type}\n\t\t}\n\t}];\n};\n\nexports[\"text/plain\"] = TextParser;\nexports[\"text/x-tiddlywiki\"] = TextParser;\nexports[\"application/javascript\"] = TextParser;\nexports[\"application/json\"] = TextParser;\nexports[\"text/css\"] = TextParser;\nexports[\"application/x-tiddler-dictionary\"] = TextParser;\n\n})();\n\n",
"type": "application/javascript",
"module-type": "parser"
},
"$:/core/modules/parsers/videoparser.js": {
"title": "$:/core/modules/parsers/videoparser.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/videoparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe video parser parses a video tiddler into an embeddable HTML element\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar VideoParser = function(type,text,options) {\n\tvar element = {\n\t\t\ttype: \"element\",\n\t\t\ttag: \"video\",\n\t\t\tattributes: {\n\t\t\t\tcontrols: {type: \"string\", value: \"controls\"},\n\t\t\t\tstyle: {type: \"string\", value: \"width: 100%; object-fit: contain\"}\n\t\t\t}\n\t\t},\n\t\tsrc;\n\tif(options._canonical_uri) {\n\t\telement.attributes.src = {type: \"string\", value: options._canonical_uri};\n\t} else if(text) {\n\t\telement.attributes.src = {type: \"string\", value: \"data:\" + type + \";base64,\" + text};\n\t}\n\tthis.tree = [element];\n};\n\nexports[\"video/ogg\"] = VideoParser;\nexports[\"video/webm\"] = VideoParser;\nexports[\"video/mp4\"] = VideoParser;\nexports[\"video/quicktime\"] = VideoParser;\n\n})();\n",
"type": "application/javascript",
"module-type": "parser"
},
"$:/core/modules/parsers/wikiparser/rules/codeblock.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/codeblock.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/codeblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for code blocks. For example:\n\n```\n\t```\n\tThis text will not be //wikified//\n\t```\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"codeblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match and get language if defined\n\tthis.matchRegExp = /```([\\w-]*)\\r?\\n/mg;\n};\n\nexports.parse = function() {\n\tvar reEnd = /(\\r?\\n```$)/mg;\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Look for the end of the block\n\treEnd.lastIndex = this.parser.pos;\n\tvar match = reEnd.exec(this.parser.source),\n\t\ttext;\n\t// Process the block\n\tif(match) {\n\t\ttext = this.parser.source.substring(this.parser.pos,match.index);\n\t\tthis.parser.pos = match.index + match[0].length;\n\t} else {\n\t\ttext = this.parser.source.substr(this.parser.pos);\n\t\tthis.parser.pos = this.parser.sourceLength;\n\t}\n\t// Return the $codeblock widget\n\treturn [{\n\t\t\ttype: \"codeblock\",\n\t\t\tattributes: {\n\t\t\t\t\tcode: {type: \"string\", value: text},\n\t\t\t\t\tlanguage: {type: \"string\", value: this.match[1]}\n\t\t\t}\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/codeinline.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/codeinline.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/codeinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for code runs. For example:\n\n```\n\tThis is a `code run`.\n\tThis is another ``code run``\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"codeinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /(``?)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar reEnd = new RegExp(this.match[1], \"mg\");\n\t// Look for the end marker\n\treEnd.lastIndex = this.parser.pos;\n\tvar match = reEnd.exec(this.parser.source),\n\t\ttext;\n\t// Process the text\n\tif(match) {\n\t\ttext = this.parser.source.substring(this.parser.pos,match.index);\n\t\tthis.parser.pos = match.index + match[0].length;\n\t} else {\n\t\ttext = this.parser.source.substr(this.parser.pos);\n\t\tthis.parser.pos = this.parser.sourceLength;\n\t}\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"code\",\n\t\tchildren: [{\n\t\t\ttype: \"text\",\n\t\t\ttext: text\n\t\t}]\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/commentblock.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/commentblock.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/commentblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for HTML comments. For example:\n\n```\n<!-- This is a comment -->\n```\n\nNote that the syntax for comments is simplified to an opening \"<!--\" sequence and a closing \"-->\" sequence -- HTML itself implements a more complex format (see http://ostermiller.org/findhtmlcomment.html)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"commentblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\tthis.matchRegExp = /<!--/mg;\n\tthis.endMatchRegExp = /-->/mg;\n};\n\nexports.findNextMatch = function(startPos) {\n\tthis.matchRegExp.lastIndex = startPos;\n\tthis.match = this.matchRegExp.exec(this.parser.source);\n\tif(this.match) {\n\t\tthis.endMatchRegExp.lastIndex = startPos + this.match[0].length;\n\t\tthis.endMatch = this.endMatchRegExp.exec(this.parser.source);\n\t\tif(this.endMatch) {\n\t\t\treturn this.match.index;\n\t\t}\n\t}\n\treturn undefined;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.endMatchRegExp.lastIndex;\n\t// Don't return any elements\n\treturn [];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/commentinline.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/commentinline.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/commentinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for HTML comments. For example:\n\n```\n<!-- This is a comment -->\n```\n\nNote that the syntax for comments is simplified to an opening \"<!--\" sequence and a closing \"-->\" sequence -- HTML itself implements a more complex format (see http://ostermiller.org/findhtmlcomment.html)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"commentinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\tthis.matchRegExp = /<!--/mg;\n\tthis.endMatchRegExp = /-->/mg;\n};\n\nexports.findNextMatch = function(startPos) {\n\tthis.matchRegExp.lastIndex = startPos;\n\tthis.match = this.matchRegExp.exec(this.parser.source);\n\tif(this.match) {\n\t\tthis.endMatchRegExp.lastIndex = startPos + this.match[0].length;\n\t\tthis.endMatch = this.endMatchRegExp.exec(this.parser.source);\n\t\tif(this.endMatch) {\n\t\t\treturn this.match.index;\n\t\t}\n\t}\n\treturn undefined;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.endMatchRegExp.lastIndex;\n\t// Don't return any elements\n\treturn [];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/dash.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/dash.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/dash.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for dashes. For example:\n\n```\nThis is an en-dash: --\n\nThis is an em-dash: ---\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"dash\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /-{2,3}(?!-)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar dash = this.match[0].length === 2 ? \"–\" : \"—\";\n\treturn [{\n\t\ttype: \"entity\",\n\t\tentity: dash\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/emphasis/bold.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/emphasis/bold.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/bold.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - bold. For example:\n\n```\n\tThis is ''bold'' text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except bold \n\\rules only bold \n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"bold\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /''/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/''/mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"strong\",\n\t\tchildren: tree\n\t}];\n};\n\n})();",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/emphasis/italic.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/emphasis/italic.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/italic.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - italic. For example:\n\n```\n\tThis is //italic// text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except italic\n\\rules only italic\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"italic\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\/\\//mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/\\/\\//mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"em\",\n\t\tchildren: tree\n\t}];\n};\n\n})();",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/emphasis/strikethrough.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/emphasis/strikethrough.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/strikethrough.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - strikethrough. For example:\n\n```\n\tThis is ~~strikethrough~~ text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except strikethrough \n\\rules only strikethrough \n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"strikethrough\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /~~/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/~~/mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"strike\",\n\t\tchildren: tree\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/emphasis/subscript.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/emphasis/subscript.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/subscript.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - subscript. For example:\n\n```\n\tThis is ,,subscript,, text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except subscript \n\\rules only subscript \n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"subscript\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /,,/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/,,/mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"sub\",\n\t\tchildren: tree\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/emphasis/superscript.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/emphasis/superscript.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/superscript.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - superscript. For example:\n\n```\n\tThis is ^^superscript^^ text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except superscript \n\\rules only superscript \n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"superscript\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\^\\^/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/\\^\\^/mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"sup\",\n\t\tchildren: tree\n\t}];\n};\n\n})();",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/emphasis/underscore.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/emphasis/underscore.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/underscore.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - underscore. For example:\n\n```\n\tThis is __underscore__ text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except underscore \n\\rules only underscore\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"underscore\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /__/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/__/mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"u\",\n\t\tchildren: tree\n\t}];\n};\n\n})();",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/entity.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/entity.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/entity.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for HTML entities. For example:\n\n```\n\tThis is a copyright symbol: ©\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"entity\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /(&#?[a-zA-Z0-9]{2,8};)/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Get all the details of the match\n\tvar entityString = this.match[1];\n\t// Move past the macro call\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Return the entity\n\treturn [{type: \"entity\", entity: this.match[0]}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/extlink.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/extlink.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/extlink.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for external links. For example:\n\n```\nAn external link: https://www.tiddlywiki.com/\n\nA suppressed external link: ~http://www.tiddlyspace.com/\n```\n\nExternal links can be suppressed by preceding them with `~`.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"extlink\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /~?(?:file|http|https|mailto|ftp|irc|news|data|skype):[^\\s<>{}\\[\\]`|\"\\\\^]+(?:\\/|\\b)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Create the link unless it is suppressed\n\tif(this.match[0].substr(0,1) === \"~\") {\n\t\treturn [{type: \"text\", text: this.match[0].substr(1)}];\n\t} else {\n\t\treturn [{\n\t\t\ttype: \"element\",\n\t\t\ttag: \"a\",\n\t\t\tattributes: {\n\t\t\t\thref: {type: \"string\", value: this.match[0]},\n\t\t\t\t\"class\": {type: \"string\", value: \"tc-tiddlylink-external\"},\n\t\t\t\ttarget: {type: \"string\", value: \"_blank\"},\n\t\t\t\trel: {type: \"string\", value: \"noopener noreferrer\"}\n\t\t\t},\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\", text: this.match[0]\n\t\t\t}]\n\t\t}];\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/filteredtranscludeblock.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/filteredtranscludeblock.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/filteredtranscludeblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for block-level filtered transclusion. For example:\n\n```\n{{{ [tag[docs]] }}}\n{{{ [tag[docs]] |tooltip}}}\n{{{ [tag[docs]] ||TemplateTitle}}}\n{{{ [tag[docs]] |tooltip||TemplateTitle}}}\n{{{ [tag[docs]] }}width:40;height:50;}.class.class\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"filteredtranscludeblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\{\\{\\{([^\\|]+?)(?:\\|([^\\|\\{\\}]+))?(?:\\|\\|([^\\|\\{\\}]+))?\\}\\}([^\\}]*)\\}(?:\\.(\\S+))?(?:\\r?\\n|$)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Get the match details\n\tvar filter = this.match[1],\n\t\ttooltip = this.match[2],\n\t\ttemplate = $tw.utils.trim(this.match[3]),\n\t\tstyle = this.match[4],\n\t\tclasses = this.match[5];\n\t// Return the list widget\n\tvar node = {\n\t\ttype: \"list\",\n\t\tattributes: {\n\t\t\tfilter: {type: \"string\", value: filter}\n\t\t},\n\t\tisBlock: true\n\t};\n\tif(tooltip) {\n\t\tnode.attributes.tooltip = {type: \"string\", value: tooltip};\n\t}\n\tif(template) {\n\t\tnode.attributes.template = {type: \"string\", value: template};\n\t}\n\tif(style) {\n\t\tnode.attributes.style = {type: \"string\", value: style};\n\t}\n\tif(classes) {\n\t\tnode.attributes.itemClass = {type: \"string\", value: classes.split(\".\").join(\" \")};\n\t}\n\treturn [node];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/filteredtranscludeinline.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/filteredtranscludeinline.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/filteredtranscludeinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for inline filtered transclusion. For example:\n\n```\n{{{ [tag[docs]] }}}\n{{{ [tag[docs]] |tooltip}}}\n{{{ [tag[docs]] ||TemplateTitle}}}\n{{{ [tag[docs]] |tooltip||TemplateTitle}}}\n{{{ [tag[docs]] }}width:40;height:50;}.class.class\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"filteredtranscludeinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\{\\{\\{([^\\|]+?)(?:\\|([^\\|\\{\\}]+))?(?:\\|\\|([^\\|\\{\\}]+))?\\}\\}([^\\}]*)\\}(?:\\.(\\S+))?/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Get the match details\n\tvar filter = this.match[1],\n\t\ttooltip = this.match[2],\n\t\ttemplate = $tw.utils.trim(this.match[3]),\n\t\tstyle = this.match[4],\n\t\tclasses = this.match[5];\n\t// Return the list widget\n\tvar node = {\n\t\ttype: \"list\",\n\t\tattributes: {\n\t\t\tfilter: {type: \"string\", value: filter}\n\t\t}\n\t};\n\tif(tooltip) {\n\t\tnode.attributes.tooltip = {type: \"string\", value: tooltip};\n\t}\n\tif(template) {\n\t\tnode.attributes.template = {type: \"string\", value: template};\n\t}\n\tif(style) {\n\t\tnode.attributes.style = {type: \"string\", value: style};\n\t}\n\tif(classes) {\n\t\tnode.attributes.itemClass = {type: \"string\", value: classes.split(\".\").join(\" \")};\n\t}\n\treturn [node];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/hardlinebreaks.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/hardlinebreaks.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/hardlinebreaks.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for marking areas with hard line breaks. For example:\n\n```\n\"\"\"\nThis is some text\nThat is set like\nIt is a Poem\nWhen it is\nClearly\nNot\n\"\"\"\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"hardlinebreaks\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\"\"\"(?:\\r?\\n)?/mg;\n};\n\nexports.parse = function() {\n\tvar reEnd = /(\"\"\")|(\\r?\\n)/mg,\n\t\ttree = [],\n\t\tmatch;\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tdo {\n\t\t// Parse the run up to the terminator\n\t\ttree.push.apply(tree,this.parser.parseInlineRun(reEnd,{eatTerminator: false}));\n\t\t// Redo the terminator match\n\t\treEnd.lastIndex = this.parser.pos;\n\t\tmatch = reEnd.exec(this.parser.source);\n\t\tif(match) {\n\t\t\tthis.parser.pos = reEnd.lastIndex;\n\t\t\t// Add a line break if the terminator was a line break\n\t\t\tif(match[2]) {\n\t\t\t\ttree.push({type: \"element\", tag: \"br\"});\n\t\t\t}\n\t\t}\n\t} while(match && !match[1]);\n\t// Return the nodes\n\treturn tree;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/heading.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/heading.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/heading.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for headings\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"heading\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /(!{1,6})/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Get all the details of the match\n\tvar headingLevel = this.match[1].length;\n\t// Move past the !s\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse any classes, whitespace and then the heading itself\n\tvar classes = this.parser.parseClasses();\n\tthis.parser.skipWhitespace({treatNewlinesAsNonWhitespace: true});\n\tvar tree = this.parser.parseInlineRun(/(\\r?\\n)/mg);\n\t// Return the heading\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"h\" + headingLevel, \n\t\tattributes: {\n\t\t\t\"class\": {type: \"string\", value: classes.join(\" \")}\n\t\t},\n\t\tchildren: tree\n\t}];\n};\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/horizrule.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/horizrule.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/horizrule.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for rules. For example:\n\n```\n---\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"horizrule\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /-{3,}\\r?(?:\\n|$)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\treturn [{type: \"element\", tag: \"hr\"}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/html.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/html.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/html.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki rule for HTML elements and widgets. For example:\n\n{{{\n<aside>\nThis is an HTML5 aside element\n</aside>\n\n<$slider target=\"MyTiddler\">\nThis is a widget invocation\n</$slider>\n\n}}}\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"html\";\nexports.types = {inline: true, block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n};\n\nexports.findNextMatch = function(startPos) {\n\t// Find the next tag\n\tthis.nextTag = this.findNextTag(this.parser.source,startPos,{\n\t\trequireLineBreak: this.is.block\n\t});\n\treturn this.nextTag ? this.nextTag.start : undefined;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Retrieve the most recent match so that recursive calls don't overwrite it\n\tvar tag = this.nextTag;\n\tthis.nextTag = null;\n\t// Advance the parser position to past the tag\n\tthis.parser.pos = tag.end;\n\t// Check for an immediately following double linebreak\n\tvar hasLineBreak = !tag.isSelfClosing && !!$tw.utils.parseTokenRegExp(this.parser.source,this.parser.pos,/([^\\S\\n\\r]*\\r?\\n(?:[^\\S\\n\\r]*\\r?\\n|$))/g);\n\t// Set whether we're in block mode\n\ttag.isBlock = this.is.block || hasLineBreak;\n\t// Parse the body if we need to\n\tif(!tag.isSelfClosing && $tw.config.htmlVoidElements.indexOf(tag.tag) === -1) {\n\t\t\tvar reEndString = \"</\" + $tw.utils.escapeRegExp(tag.tag) + \">\",\n\t\t\t\treEnd = new RegExp(\"(\" + reEndString + \")\",\"mg\");\n\t\tif(hasLineBreak) {\n\t\t\ttag.children = this.parser.parseBlocks(reEndString);\n\t\t} else {\n\t\t\ttag.children = this.parser.parseInlineRun(reEnd);\n\t\t}\n\t\treEnd.lastIndex = this.parser.pos;\n\t\tvar endMatch = reEnd.exec(this.parser.source);\n\t\tif(endMatch && endMatch.index === this.parser.pos) {\n\t\t\tthis.parser.pos = endMatch.index + endMatch[0].length;\n\t\t}\n\t}\n\t// Return the tag\n\treturn [tag];\n};\n\n/*\nLook for an HTML tag. Returns null if not found, otherwise returns {type: \"element\", name:, attributes: [], isSelfClosing:, start:, end:,}\n*/\nexports.parseTag = function(source,pos,options) {\n\toptions = options || {};\n\tvar token,\n\t\tnode = {\n\t\t\ttype: \"element\",\n\t\t\tstart: pos,\n\t\t\tattributes: {}\n\t\t};\n\t// Define our regexps\n\tvar reTagName = /([a-zA-Z0-9\\-\\$]+)/g;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for a less than sign\n\ttoken = $tw.utils.parseTokenString(source,pos,\"<\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Get the tag name\n\ttoken = $tw.utils.parseTokenRegExp(source,pos,reTagName);\n\tif(!token) {\n\t\treturn null;\n\t}\n\tnode.tag = token.match[1];\n\tif(node.tag.slice(1).indexOf(\"$\") !== -1) {\n\t\treturn null;\n\t}\n\tif(node.tag.charAt(0) === \"$\") {\n\t\tnode.type = node.tag.substr(1);\n\t}\n\tpos = token.end;\n\t// Check that the tag is terminated by a space, / or >\n\tif(!$tw.utils.parseWhiteSpace(source,pos) && !(source.charAt(pos) === \"/\") && !(source.charAt(pos) === \">\") ) {\n\t\treturn null;\n\t}\n\t// Process attributes\n\tvar attribute = $tw.utils.parseAttribute(source,pos);\n\twhile(attribute) {\n\t\tnode.attributes[attribute.name] = attribute;\n\t\tpos = attribute.end;\n\t\t// Get the next attribute\n\t\tattribute = $tw.utils.parseAttribute(source,pos);\n\t}\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for a closing slash\n\ttoken = $tw.utils.parseTokenString(source,pos,\"/\");\n\tif(token) {\n\t\tpos = token.end;\n\t\tnode.isSelfClosing = true;\n\t}\n\t// Look for a greater than sign\n\ttoken = $tw.utils.parseTokenString(source,pos,\">\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Check for a required line break\n\tif(options.requireLineBreak) {\n\t\ttoken = $tw.utils.parseTokenRegExp(source,pos,/([^\\S\\n\\r]*\\r?\\n(?:[^\\S\\n\\r]*\\r?\\n|$))/g);\n\t\tif(!token) {\n\t\t\treturn null;\n\t\t}\n\t}\n\t// Update the end position\n\tnode.end = pos;\n\treturn node;\n};\n\nexports.findNextTag = function(source,pos,options) {\n\t// A regexp for finding candidate HTML tags\n\tvar reLookahead = /<([a-zA-Z\\-\\$]+)/g;\n\t// Find the next candidate\n\treLookahead.lastIndex = pos;\n\tvar match = reLookahead.exec(source);\n\twhile(match) {\n\t\t// Try to parse the candidate as a tag\n\t\tvar tag = this.parseTag(source,match.index,options);\n\t\t// Return success\n\t\tif(tag && this.isLegalTag(tag)) {\n\t\t\treturn tag;\n\t\t}\n\t\t// Look for the next match\n\t\treLookahead.lastIndex = match.index + 1;\n\t\tmatch = reLookahead.exec(source);\n\t}\n\t// Failed\n\treturn null;\n};\n\nexports.isLegalTag = function(tag) {\n\t// Widgets are always OK\n\tif(tag.type !== \"element\") {\n\t\treturn true;\n\t// If it's an HTML tag that starts with a dash then it's not legal\n\t} else if(tag.tag.charAt(0) === \"-\") {\n\t\treturn false;\n\t} else {\n\t\t// Otherwise it's OK\n\t\treturn true;\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/image.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/image.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/image.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for embedding images. For example:\n\n```\n[img[https://tiddlywiki.com/fractalveg.jpg]]\n[img width=23 height=24 [https://tiddlywiki.com/fractalveg.jpg]]\n[img width={{!!width}} height={{!!height}} [https://tiddlywiki.com/fractalveg.jpg]]\n[img[Description of image|https://tiddlywiki.com/fractalveg.jpg]]\n[img[TiddlerTitle]]\n[img[Description of image|TiddlerTitle]]\n```\n\nGenerates the `<$image>` widget.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"image\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n};\n\nexports.findNextMatch = function(startPos) {\n\t// Find the next tag\n\tthis.nextImage = this.findNextImage(this.parser.source,startPos);\n\treturn this.nextImage ? this.nextImage.start : undefined;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.nextImage.end;\n\tvar node = {\n\t\ttype: \"image\",\n\t\tattributes: this.nextImage.attributes\n\t};\n\treturn [node];\n};\n\n/*\nFind the next image from the current position\n*/\nexports.findNextImage = function(source,pos) {\n\t// A regexp for finding candidate HTML tags\n\tvar reLookahead = /(\\[img)/g;\n\t// Find the next candidate\n\treLookahead.lastIndex = pos;\n\tvar match = reLookahead.exec(source);\n\twhile(match) {\n\t\t// Try to parse the candidate as a tag\n\t\tvar tag = this.parseImage(source,match.index);\n\t\t// Return success\n\t\tif(tag) {\n\t\t\treturn tag;\n\t\t}\n\t\t// Look for the next match\n\t\treLookahead.lastIndex = match.index + 1;\n\t\tmatch = reLookahead.exec(source);\n\t}\n\t// Failed\n\treturn null;\n};\n\n/*\nLook for an image at the specified position. Returns null if not found, otherwise returns {type: \"image\", attributes: [], isSelfClosing:, start:, end:,}\n*/\nexports.parseImage = function(source,pos) {\n\tvar token,\n\t\tnode = {\n\t\t\ttype: \"image\",\n\t\t\tstart: pos,\n\t\t\tattributes: {}\n\t\t};\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for the `[img`\n\ttoken = $tw.utils.parseTokenString(source,pos,\"[img\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Process attributes\n\tif(source.charAt(pos) !== \"[\") {\n\t\tvar attribute = $tw.utils.parseAttribute(source,pos);\n\t\twhile(attribute) {\n\t\t\tnode.attributes[attribute.name] = attribute;\n\t\t\tpos = attribute.end;\n\t\t\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t\t\tif(source.charAt(pos) !== \"[\") {\n\t\t\t\t// Get the next attribute\n\t\t\t\tattribute = $tw.utils.parseAttribute(source,pos);\n\t\t\t} else {\n\t\t\t\tattribute = null;\n\t\t\t}\n\t\t}\n\t}\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for the `[` after the attributes\n\ttoken = $tw.utils.parseTokenString(source,pos,\"[\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Get the source up to the terminating `]]`\n\ttoken = $tw.utils.parseTokenRegExp(source,pos,/(?:([^|\\]]*?)\\|)?([^\\]]+?)\\]\\]/g);\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\tif(token.match[1]) {\n\t\tnode.attributes.tooltip = {type: \"string\", value: token.match[1].trim()};\n\t}\n\tnode.attributes.source = {type: \"string\", value: (token.match[2] || \"\").trim()};\n\t// Update the end position\n\tnode.end = pos;\n\treturn node;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/import.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/import.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/import.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki pragma rule for importing variable definitions\n\n```\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"import\";\nexports.types = {pragma: true};\n\n/*\nInstantiate parse rule\n*/\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /^\\\\import[^\\S\\n]/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\tvar self = this;\n\t// Move past the pragma invocation\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse the filter terminated by a line break\n\tvar reMatch = /(.*)(\\r?\\n)|$/mg;\n\treMatch.lastIndex = this.parser.pos;\n\tvar match = reMatch.exec(this.parser.source);\n\tthis.parser.pos = reMatch.lastIndex;\n\t// Parse tree nodes to return\n\treturn [{\n\t\ttype: \"importvariables\",\n\t\tattributes: {\n\t\t\tfilter: {type: \"string\", value: match[1]}\n\t\t},\n\t\tchildren: []\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/list.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/list.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/list.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for lists. For example:\n\n```\n* This is an unordered list\n* It has two items\n\n# This is a numbered list\n## With a subitem\n# And a third item\n\n; This is a term that is being defined\n: This is the definition of that term\n```\n\nNote that lists can be nested arbitrarily:\n\n```\n#** One\n#* Two\n#** Three\n#**** Four\n#**# Five\n#**## Six\n## Seven\n### Eight\n## Nine\n```\n\nA CSS class can be applied to a list item as follows:\n\n```\n* List item one\n*.active List item two has the class `active`\n* List item three\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"list\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /([\\*#;:>]+)/mg;\n};\n\nvar listTypes = {\n\t\"*\": {listTag: \"ul\", itemTag: \"li\"},\n\t\"#\": {listTag: \"ol\", itemTag: \"li\"},\n\t\";\": {listTag: \"dl\", itemTag: \"dt\"},\n\t\":\": {listTag: \"dl\", itemTag: \"dd\"},\n\t\">\": {listTag: \"blockquote\", itemTag: \"div\"}\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Array of parse tree nodes for the previous row of the list\n\tvar listStack = [];\n\t// Cycle through the items in the list\n\twhile(true) {\n\t\t// Match the list marker\n\t\tvar reMatch = /([\\*#;:>]+)/mg;\n\t\treMatch.lastIndex = this.parser.pos;\n\t\tvar match = reMatch.exec(this.parser.source);\n\t\tif(!match || match.index !== this.parser.pos) {\n\t\t\tbreak;\n\t\t}\n\t\t// Check whether the list type of the top level matches\n\t\tvar listInfo = listTypes[match[0].charAt(0)];\n\t\tif(listStack.length > 0 && listStack[0].tag !== listInfo.listTag) {\n\t\t\tbreak;\n\t\t}\n\t\t// Move past the list marker\n\t\tthis.parser.pos = match.index + match[0].length;\n\t\t// Walk through the list markers for the current row\n\t\tfor(var t=0; t<match[0].length; t++) {\n\t\t\tlistInfo = listTypes[match[0].charAt(t)];\n\t\t\t// Remove any stacked up element if we can't re-use it because the list type doesn't match\n\t\t\tif(listStack.length > t && listStack[t].tag !== listInfo.listTag) {\n\t\t\t\tlistStack.splice(t,listStack.length - t);\n\t\t\t}\n\t\t\t// Construct the list element or reuse the previous one at this level\n\t\t\tif(listStack.length <= t) {\n\t\t\t\tvar listElement = {type: \"element\", tag: listInfo.listTag, children: [\n\t\t\t\t\t{type: \"element\", tag: listInfo.itemTag, children: []}\n\t\t\t\t]};\n\t\t\t\t// Link this list element into the last child item of the parent list item\n\t\t\t\tif(t) {\n\t\t\t\t\tvar prevListItem = listStack[t-1].children[listStack[t-1].children.length-1];\n\t\t\t\t\tprevListItem.children.push(listElement);\n\t\t\t\t}\n\t\t\t\t// Save this element in the stack\n\t\t\t\tlistStack[t] = listElement;\n\t\t\t} else if(t === (match[0].length - 1)) {\n\t\t\t\tlistStack[t].children.push({type: \"element\", tag: listInfo.itemTag, children: []});\n\t\t\t}\n\t\t}\n\t\tif(listStack.length > match[0].length) {\n\t\t\tlistStack.splice(match[0].length,listStack.length - match[0].length);\n\t\t}\n\t\t// Process the body of the list item into the last list item\n\t\tvar lastListChildren = listStack[listStack.length-1].children,\n\t\t\tlastListItem = lastListChildren[lastListChildren.length-1],\n\t\t\tclasses = this.parser.parseClasses();\n\t\tthis.parser.skipWhitespace({treatNewlinesAsNonWhitespace: true});\n\t\tvar tree = this.parser.parseInlineRun(/(\\r?\\n)/mg);\n\t\tlastListItem.children.push.apply(lastListItem.children,tree);\n\t\tif(classes.length > 0) {\n\t\t\t$tw.utils.addClassToParseTreeNode(lastListItem,classes.join(\" \"));\n\t\t}\n\t\t// Consume any whitespace following the list item\n\t\tthis.parser.skipWhitespace();\n\t}\n\t// Return the root element of the list\n\treturn [listStack[0]];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/macrocallblock.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/macrocallblock.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/macrocallblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki rule for block macro calls\n\n```\n<<name value value2>>\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"macrocallblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /<<([^>\\s]+)(?:\\s*)((?:[^>]|(?:>(?!>)))*?)>>(?:\\r?\\n|$)/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Get all the details of the match\n\tvar macroName = this.match[1],\n\t\tparamString = this.match[2];\n\t// Move past the macro call\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar params = [],\n\t\treParam = /\\s*(?:([A-Za-z0-9\\-_]+)\\s*:)?(?:\\s*(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\"|'([^']*)'|\\[\\[([^\\]]*)\\]\\]|([^\"'\\s]+)))/mg,\n\t\tparamMatch = reParam.exec(paramString);\n\twhile(paramMatch) {\n\t\t// Process this parameter\n\t\tvar paramInfo = {\n\t\t\tvalue: paramMatch[2] || paramMatch[3] || paramMatch[4] || paramMatch[5] || paramMatch[6]\n\t\t};\n\t\tif(paramMatch[1]) {\n\t\t\tparamInfo.name = paramMatch[1];\n\t\t}\n\t\tparams.push(paramInfo);\n\t\t// Find the next match\n\t\tparamMatch = reParam.exec(paramString);\n\t}\n\treturn [{\n\t\ttype: \"macrocall\",\n\t\tname: macroName,\n\t\tparams: params,\n\t\tisBlock: true\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/macrocallinline.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/macrocallinline.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/macrocallinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki rule for macro calls\n\n```\n<<name value value2>>\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"macrocallinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /<<([^\\s>]+)\\s*([\\s\\S]*?)>>/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Get all the details of the match\n\tvar macroName = this.match[1],\n\t\tparamString = this.match[2];\n\t// Move past the macro call\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar params = [],\n\t\treParam = /\\s*(?:([A-Za-z0-9\\-_]+)\\s*:)?(?:\\s*(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\"|'([^']*)'|\\[\\[([^\\]]*)\\]\\]|([^\"'\\s]+)))/mg,\n\t\tparamMatch = reParam.exec(paramString);\n\twhile(paramMatch) {\n\t\t// Process this parameter\n\t\tvar paramInfo = {\n\t\t\tvalue: paramMatch[2] || paramMatch[3] || paramMatch[4] || paramMatch[5]|| paramMatch[6]\n\t\t};\n\t\tif(paramMatch[1]) {\n\t\t\tparamInfo.name = paramMatch[1];\n\t\t}\n\t\tparams.push(paramInfo);\n\t\t// Find the next match\n\t\tparamMatch = reParam.exec(paramString);\n\t}\n\treturn [{\n\t\ttype: \"macrocall\",\n\t\tname: macroName,\n\t\tparams: params\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/macrodef.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/macrodef.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/macrodef.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki pragma rule for macro definitions\n\n```\n\\define name(param:defaultvalue,param2:defaultvalue)\ndefinition text, including $param$ markers\n\\end\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"macrodef\";\nexports.types = {pragma: true};\n\n/*\nInstantiate parse rule\n*/\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /^\\\\define\\s+([^(\\s]+)\\(\\s*([^)]*)\\)(\\s*\\r?\\n)?/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Move past the macro name and parameters\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse the parameters\n\tvar paramString = this.match[2],\n\t\tparams = [];\n\tif(paramString !== \"\") {\n\t\tvar reParam = /\\s*([A-Za-z0-9\\-_]+)(?:\\s*:\\s*(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\"|'([^']*)'|\\[\\[([^\\]]*)\\]\\]|([^\"'\\s]+)))?/mg,\n\t\t\tparamMatch = reParam.exec(paramString);\n\t\twhile(paramMatch) {\n\t\t\t// Save the parameter details\n\t\t\tvar paramInfo = {name: paramMatch[1]},\n\t\t\t\tdefaultValue = paramMatch[2] || paramMatch[3] || paramMatch[4] || paramMatch[5] || paramMatch[6];\n\t\t\tif(defaultValue) {\n\t\t\t\tparamInfo[\"default\"] = defaultValue;\n\t\t\t}\n\t\t\tparams.push(paramInfo);\n\t\t\t// Look for the next parameter\n\t\t\tparamMatch = reParam.exec(paramString);\n\t\t}\n\t}\n\t// Is this a multiline definition?\n\tvar reEnd;\n\tif(this.match[3]) {\n\t\t// If so, the end of the body is marked with \\end\n\t\treEnd = /(\\r?\\n\\\\end[^\\S\\n\\r]*(?:$|\\r?\\n))/mg;\n\t} else {\n\t\t// Otherwise, the end of the definition is marked by the end of the line\n\t\treEnd = /($|\\r?\\n)/mg;\n\t\t// Move past any whitespace\n\t\tthis.parser.pos = $tw.utils.skipWhiteSpace(this.parser.source,this.parser.pos);\n\t}\n\t// Find the end of the definition\n\treEnd.lastIndex = this.parser.pos;\n\tvar text,\n\t\tendMatch = reEnd.exec(this.parser.source);\n\tif(endMatch) {\n\t\ttext = this.parser.source.substring(this.parser.pos,endMatch.index);\n\t\tthis.parser.pos = endMatch.index + endMatch[0].length;\n\t} else {\n\t\t// We didn't find the end of the definition, so we'll make it blank\n\t\ttext = \"\";\n\t}\n\t// Save the macro definition\n\treturn [{\n\t\ttype: \"set\",\n\t\tattributes: {\n\t\t\tname: {type: \"string\", value: this.match[1]},\n\t\t\tvalue: {type: \"string\", value: text}\n\t\t},\n\t\tchildren: [],\n\t\tparams: params,\n\t\tisMacroDefinition: true\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/prettyextlink.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/prettyextlink.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/prettyextlink.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for external links. For example:\n\n```\n[ext[https://tiddlywiki.com/fractalveg.jpg]]\n[ext[Tooltip|https://tiddlywiki.com/fractalveg.jpg]]\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"prettyextlink\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n};\n\nexports.findNextMatch = function(startPos) {\n\t// Find the next tag\n\tthis.nextLink = this.findNextLink(this.parser.source,startPos);\n\treturn this.nextLink ? this.nextLink.start : undefined;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.nextLink.end;\n\treturn [this.nextLink];\n};\n\n/*\nFind the next link from the current position\n*/\nexports.findNextLink = function(source,pos) {\n\t// A regexp for finding candidate links\n\tvar reLookahead = /(\\[ext\\[)/g;\n\t// Find the next candidate\n\treLookahead.lastIndex = pos;\n\tvar match = reLookahead.exec(source);\n\twhile(match) {\n\t\t// Try to parse the candidate as a link\n\t\tvar link = this.parseLink(source,match.index);\n\t\t// Return success\n\t\tif(link) {\n\t\t\treturn link;\n\t\t}\n\t\t// Look for the next match\n\t\treLookahead.lastIndex = match.index + 1;\n\t\tmatch = reLookahead.exec(source);\n\t}\n\t// Failed\n\treturn null;\n};\n\n/*\nLook for an link at the specified position. Returns null if not found, otherwise returns {type: \"element\", tag: \"a\", attributes: [], isSelfClosing:, start:, end:,}\n*/\nexports.parseLink = function(source,pos) {\n\tvar token,\n\t\ttextNode = {\n\t\t\ttype: \"text\"\n\t\t},\n\t\tnode = {\n\t\t\ttype: \"element\",\n\t\t\ttag: \"a\",\n\t\t\tstart: pos,\n\t\t\tattributes: {\n\t\t\t\t\"class\": {type: \"string\", value: \"tc-tiddlylink-external\"},\n\t\t\t},\n\t\t\tchildren: [textNode]\n\t\t};\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for the `[ext[`\n\ttoken = $tw.utils.parseTokenString(source,pos,\"[ext[\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Look ahead for the terminating `]]`\n\tvar closePos = source.indexOf(\"]]\",pos);\n\tif(closePos === -1) {\n\t\treturn null;\n\t}\n\t// Look for a `|` separating the tooltip\n\tvar splitPos = source.indexOf(\"|\",pos);\n\tif(splitPos === -1 || splitPos > closePos) {\n\t\tsplitPos = null;\n\t}\n\t// Pull out the tooltip and URL\n\tvar tooltip, URL;\n\tif(splitPos) {\n\t\tURL = source.substring(splitPos + 1,closePos).trim();\n\t\ttextNode.text = source.substring(pos,splitPos).trim();\n\t} else {\n\t\tURL = source.substring(pos,closePos).trim();\n\t\ttextNode.text = URL;\n\t}\n\tnode.attributes.href = {type: \"string\", value: URL};\n\tnode.attributes.target = {type: \"string\", value: \"_blank\"};\n\tnode.attributes.rel = {type: \"string\", value: \"noopener noreferrer\"};\n\t// Update the end position\n\tnode.end = closePos + 2;\n\treturn node;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/prettylink.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/prettylink.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/prettylink.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for pretty links. For example:\n\n```\n[[Introduction]]\n\n[[Link description|TiddlerTitle]]\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"prettylink\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\[\\[(.*?)(?:\\|(.*?))?\\]\\]/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Process the link\n\tvar text = this.match[1],\n\t\tlink = this.match[2] || text;\n\tif($tw.utils.isLinkExternal(link)) {\n\t\treturn [{\n\t\t\ttype: \"element\",\n\t\t\ttag: \"a\",\n\t\t\tattributes: {\n\t\t\t\thref: {type: \"string\", value: link},\n\t\t\t\t\"class\": {type: \"string\", value: \"tc-tiddlylink-external\"},\n\t\t\t\ttarget: {type: \"string\", value: \"_blank\"},\n\t\t\t\trel: {type: \"string\", value: \"noopener noreferrer\"}\n\t\t\t},\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\", text: text\n\t\t\t}]\n\t\t}];\n\t} else {\n\t\treturn [{\n\t\t\ttype: \"link\",\n\t\t\tattributes: {\n\t\t\t\tto: {type: \"string\", value: link}\n\t\t\t},\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\", text: text\n\t\t\t}]\n\t\t}];\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/quoteblock.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/quoteblock.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/quoteblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for quote blocks. For example:\n\n```\n\t<<<.optionalClass(es) optional cited from\n\ta quote\n\t<<<\n\t\n\t<<<.optionalClass(es)\n\ta quote\n\t<<< optional cited from\n```\n\nQuotes can be quoted by putting more <s\n\n```\n\t<<<\n\tQuote Level 1\n\t\n\t<<<<\n\tQuoteLevel 2\n\t<<<<\n\t\n\t<<<\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"quoteblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /(<<<+)/mg;\n};\n\nexports.parse = function() {\n\tvar classes = [\"tc-quote\"];\n\t// Get all the details of the match\n\tvar reEndString = \"^\" + this.match[1] + \"(?!<)\";\n\t// Move past the <s\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t\n\t// Parse any classes, whitespace and then the optional cite itself\n\tclasses.push.apply(classes, this.parser.parseClasses());\n\tthis.parser.skipWhitespace({treatNewlinesAsNonWhitespace: true});\n\tvar cite = this.parser.parseInlineRun(/(\\r?\\n)/mg);\n\t// before handling the cite, parse the body of the quote\n\tvar tree= this.parser.parseBlocks(reEndString);\n\t// If we got a cite, put it before the text\n\tif(cite.length > 0) {\n\t\ttree.unshift({\n\t\t\ttype: \"element\",\n\t\t\ttag: \"cite\",\n\t\t\tchildren: cite\n\t\t});\n\t}\n\t// Parse any optional cite\n\tthis.parser.skipWhitespace({treatNewlinesAsNonWhitespace: true});\n\tcite = this.parser.parseInlineRun(/(\\r?\\n)/mg);\n\t// If we got a cite, push it\n\tif(cite.length > 0) {\n\t\ttree.push({\n\t\t\ttype: \"element\",\n\t\t\ttag: \"cite\",\n\t\t\tchildren: cite\n\t\t});\n\t}\n\t// Return the blockquote element\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"blockquote\",\n\t\tattributes: {\n\t\t\tclass: { type: \"string\", value: classes.join(\" \") },\n\t\t},\n\t\tchildren: tree\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/rules.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/rules.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/rules.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki pragma rule for rules specifications\n\n```\n\\rules except ruleone ruletwo rulethree\n\\rules only ruleone ruletwo rulethree\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"rules\";\nexports.types = {pragma: true};\n\n/*\nInstantiate parse rule\n*/\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /^\\\\rules[^\\S\\n]/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Move past the pragma invocation\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse whitespace delimited tokens terminated by a line break\n\tvar reMatch = /[^\\S\\n]*(\\S+)|(\\r?\\n)/mg,\n\t\ttokens = [];\n\treMatch.lastIndex = this.parser.pos;\n\tvar match = reMatch.exec(this.parser.source);\n\twhile(match && match.index === this.parser.pos) {\n\t\tthis.parser.pos = reMatch.lastIndex;\n\t\t// Exit if we've got the line break\n\t\tif(match[2]) {\n\t\t\tbreak;\n\t\t}\n\t\t// Process the token\n\t\tif(match[1]) {\n\t\t\ttokens.push(match[1]);\n\t\t}\n\t\t// Match the next token\n\t\tmatch = reMatch.exec(this.parser.source);\n\t}\n\t// Process the tokens\n\tif(tokens.length > 0) {\n\t\tthis.parser.amendRules(tokens[0],tokens.slice(1));\n\t}\n\t// No parse tree nodes to return\n\treturn [];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/styleblock.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/styleblock.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/styleblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for assigning styles and classes to paragraphs and other blocks. For example:\n\n```\n@@.myClass\n@@background-color:red;\nThis paragraph will have the CSS class `myClass`.\n\n* The `<ul>` around this list will also have the class `myClass`\n* List item 2\n\n@@\n```\n\nNote that classes and styles can be mixed subject to the rule that styles must precede classes. For example\n\n```\n@@.myFirstClass.mySecondClass\n@@width:100px;.myThirdClass\nThis is a paragraph\n@@\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"styleblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /@@((?:[^\\.\\r\\n\\s:]+:[^\\r\\n;]+;)+)?(?:\\.([^\\r\\n\\s]+))?\\r?\\n/mg;\n};\n\nexports.parse = function() {\n\tvar reEndString = \"^@@(?:\\\\r?\\\\n)?\";\n\tvar classes = [], styles = [];\n\tdo {\n\t\t// Get the class and style\n\t\tif(this.match[1]) {\n\t\t\tstyles.push(this.match[1]);\n\t\t}\n\t\tif(this.match[2]) {\n\t\t\tclasses.push(this.match[2].split(\".\").join(\" \"));\n\t\t}\n\t\t// Move past the match\n\t\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t\t// Look for another line of classes and styles\n\t\tthis.match = this.matchRegExp.exec(this.parser.source);\n\t} while(this.match && this.match.index === this.parser.pos);\n\t// Parse the body\n\tvar tree = this.parser.parseBlocks(reEndString);\n\tfor(var t=0; t<tree.length; t++) {\n\t\tif(classes.length > 0) {\n\t\t\t$tw.utils.addClassToParseTreeNode(tree[t],classes.join(\" \"));\n\t\t}\n\t\tif(styles.length > 0) {\n\t\t\t$tw.utils.addAttributeToParseTreeNode(tree[t],\"style\",styles.join(\"\"));\n\t\t}\n\t}\n\treturn tree;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/styleinline.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/styleinline.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/styleinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for assigning styles and classes to inline runs. For example:\n\n```\n@@.myClass This is some text with a class@@\n@@background-color:red;This is some text with a background colour@@\n@@width:100px;.myClass This is some text with a class and a width@@\n```\n\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"styleinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /@@((?:[^\\.\\r\\n\\s:]+:[^\\r\\n;]+;)+)?(\\.(?:[^\\r\\n\\s]+)\\s+)?/mg;\n};\n\nexports.parse = function() {\n\tvar reEnd = /@@/g;\n\t// Get the styles and class\n\tvar stylesString = this.match[1],\n\t\tclassString = this.match[2] ? this.match[2].split(\".\").join(\" \") : undefined;\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse the run up to the terminator\n\tvar tree = this.parser.parseInlineRun(reEnd,{eatTerminator: true});\n\t// Return the classed span\n\tvar node = {\n\t\ttype: \"element\",\n\t\ttag: \"span\",\n\t\tattributes: {\n\t\t\t\"class\": {type: \"string\", value: \"tc-inline-style\"}\n\t\t},\n\t\tchildren: tree\n\t};\n\tif(classString) {\n\t\t$tw.utils.addClassToParseTreeNode(node,classString);\n\t}\n\tif(stylesString) {\n\t\t$tw.utils.addAttributeToParseTreeNode(node,\"style\",stylesString);\n\t}\n\treturn [node];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/syslink.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/syslink.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/syslink.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for system tiddler links.\nCan be suppressed preceding them with `~`.\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"syslink\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = new RegExp(\n\t\t\"~?\\\\$:\\\\/[\" +\n\t\t$tw.config.textPrimitives.anyLetter.substr(1,$tw.config.textPrimitives.anyLetter.length - 2) +\n\t\t\"\\/._-]+\",\n\t\t\"mg\"\n\t);\n};\n\nexports.parse = function() {\n\tvar match = this.match[0];\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Create the link unless it is suppressed\n\tif(match.substr(0,1) === \"~\") {\n\t\treturn [{type: \"text\", text: match.substr(1)}];\n\t} else {\n\t\treturn [{\n\t\t\ttype: \"link\",\n\t\t\tattributes: {\n\t\t\t\tto: {type: \"string\", value: match}\n\t\t\t},\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\",\n\t\t\t\ttext: match\n\t\t\t}]\n\t\t}];\n\t}\n};\n\n})();",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/table.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/table.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/table.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for tables.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"table\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /^\\|(?:[^\\n]*)\\|(?:[fhck]?)\\r?(?:\\n|$)/mg;\n};\n\nvar processRow = function(prevColumns) {\n\tvar cellRegExp = /(?:\\|([^\\n\\|]*)\\|)|(\\|[fhck]?\\r?(?:\\n|$))/mg,\n\t\tcellTermRegExp = /((?:\\x20*)\\|)/mg,\n\t\ttree = [],\n\t\tcol = 0,\n\t\tcolSpanCount = 1,\n\t\tprevCell,\n\t\tvAlign;\n\t// Match a single cell\n\tcellRegExp.lastIndex = this.parser.pos;\n\tvar cellMatch = cellRegExp.exec(this.parser.source);\n\twhile(cellMatch && cellMatch.index === this.parser.pos) {\n\t\tif(cellMatch[1] === \"~\") {\n\t\t\t// Rowspan\n\t\t\tvar last = prevColumns[col];\n\t\t\tif(last) {\n\t\t\t\tlast.rowSpanCount++;\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(last.element,\"rowspan\",last.rowSpanCount);\n\t\t\t\tvAlign = $tw.utils.getAttributeValueFromParseTreeNode(last.element,\"valign\",\"center\");\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(last.element,\"valign\",vAlign);\n\t\t\t\tif(colSpanCount > 1) {\n\t\t\t\t\t$tw.utils.addAttributeToParseTreeNode(last.element,\"colspan\",colSpanCount);\n\t\t\t\t\tcolSpanCount = 1;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Move to just before the `|` terminating the cell\n\t\t\tthis.parser.pos = cellRegExp.lastIndex - 1;\n\t\t} else if(cellMatch[1] === \">\") {\n\t\t\t// Colspan\n\t\t\tcolSpanCount++;\n\t\t\t// Move to just before the `|` terminating the cell\n\t\t\tthis.parser.pos = cellRegExp.lastIndex - 1;\n\t\t} else if(cellMatch[1] === \"<\" && prevCell) {\n\t\t\tcolSpanCount = 1 + $tw.utils.getAttributeValueFromParseTreeNode(prevCell,\"colspan\",1);\n\t\t\t$tw.utils.addAttributeToParseTreeNode(prevCell,\"colspan\",colSpanCount);\n\t\t\tcolSpanCount = 1;\n\t\t\t// Move to just before the `|` terminating the cell\n\t\t\tthis.parser.pos = cellRegExp.lastIndex - 1;\n\t\t} else if(cellMatch[2]) {\n\t\t\t// End of row\n\t\t\tif(prevCell && colSpanCount > 1) {\n\t\t\t\tif(prevCell.attributes && prevCell.attributes && prevCell.attributes.colspan) {\n\t\t\t\t\t\tcolSpanCount += prevCell.attributes.colspan.value;\n\t\t\t\t} else {\n\t\t\t\t\tcolSpanCount -= 1;\n\t\t\t\t}\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(prevCell,\"colspan\",colSpanCount);\n\t\t\t}\n\t\t\tthis.parser.pos = cellRegExp.lastIndex - 1;\n\t\t\tbreak;\n\t\t} else {\n\t\t\t// For ordinary cells, step beyond the opening `|`\n\t\t\tthis.parser.pos++;\n\t\t\t// Look for a space at the start of the cell\n\t\t\tvar spaceLeft = false;\n\t\t\tvAlign = null;\n\t\t\tif(this.parser.source.substr(this.parser.pos).search(/^\\^([^\\^]|\\^\\^)/) === 0) {\n\t\t\t\tvAlign = \"top\";\n\t\t\t} else if(this.parser.source.substr(this.parser.pos).search(/^,([^,]|,,)/) === 0) {\n\t\t\t\tvAlign = \"bottom\";\n\t\t\t}\n\t\t\tif(vAlign) {\n\t\t\t\tthis.parser.pos++;\n\t\t\t}\n\t\t\tvar chr = this.parser.source.substr(this.parser.pos,1);\n\t\t\twhile(chr === \" \") {\n\t\t\t\tspaceLeft = true;\n\t\t\t\tthis.parser.pos++;\n\t\t\t\tchr = this.parser.source.substr(this.parser.pos,1);\n\t\t\t}\n\t\t\t// Check whether this is a heading cell\n\t\t\tvar cell;\n\t\t\tif(chr === \"!\") {\n\t\t\t\tthis.parser.pos++;\n\t\t\t\tcell = {type: \"element\", tag: \"th\", children: []};\n\t\t\t} else {\n\t\t\t\tcell = {type: \"element\", tag: \"td\", children: []};\n\t\t\t}\n\t\t\ttree.push(cell);\n\t\t\t// Record information about this cell\n\t\t\tprevCell = cell;\n\t\t\tprevColumns[col] = {rowSpanCount:1,element:cell};\n\t\t\t// Check for a colspan\n\t\t\tif(colSpanCount > 1) {\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(cell,\"colspan\",colSpanCount);\n\t\t\t\tcolSpanCount = 1;\n\t\t\t}\n\t\t\t// Parse the cell\n\t\t\tcell.children = this.parser.parseInlineRun(cellTermRegExp,{eatTerminator: true});\n\t\t\t// Set the alignment for the cell\n\t\t\tif(vAlign) {\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(cell,\"valign\",vAlign);\n\t\t\t}\n\t\t\tif(this.parser.source.substr(this.parser.pos - 2,1) === \" \") { // spaceRight\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(cell,\"align\",spaceLeft ? \"center\" : \"left\");\n\t\t\t} else if(spaceLeft) {\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(cell,\"align\",\"right\");\n\t\t\t}\n\t\t\t// Move back to the closing `|`\n\t\t\tthis.parser.pos--;\n\t\t}\n\t\tcol++;\n\t\tcellRegExp.lastIndex = this.parser.pos;\n\t\tcellMatch = cellRegExp.exec(this.parser.source);\n\t}\n\treturn tree;\n};\n\nexports.parse = function() {\n\tvar rowContainerTypes = {\"c\":\"caption\", \"h\":\"thead\", \"\":\"tbody\", \"f\":\"tfoot\"},\n\t\ttable = {type: \"element\", tag: \"table\", children: []},\n\t\trowRegExp = /^\\|([^\\n]*)\\|([fhck]?)\\r?(?:\\n|$)/mg,\n\t\trowTermRegExp = /(\\|(?:[fhck]?)\\r?(?:\\n|$))/mg,\n\t\tprevColumns = [],\n\t\tcurrRowType,\n\t\trowContainer,\n\t\trowCount = 0;\n\t// Match the row\n\trowRegExp.lastIndex = this.parser.pos;\n\tvar rowMatch = rowRegExp.exec(this.parser.source);\n\twhile(rowMatch && rowMatch.index === this.parser.pos) {\n\t\tvar rowType = rowMatch[2];\n\t\t// Check if it is a class assignment\n\t\tif(rowType === \"k\") {\n\t\t\t$tw.utils.addClassToParseTreeNode(table,rowMatch[1]);\n\t\t\tthis.parser.pos = rowMatch.index + rowMatch[0].length;\n\t\t} else {\n\t\t\t// Otherwise, create a new row if this one is of a different type\n\t\t\tif(rowType !== currRowType) {\n\t\t\t\trowContainer = {type: \"element\", tag: rowContainerTypes[rowType], children: []};\n\t\t\t\ttable.children.push(rowContainer);\n\t\t\t\tcurrRowType = rowType;\n\t\t\t}\n\t\t\t// Is this a caption row?\n\t\t\tif(currRowType === \"c\") {\n\t\t\t\t// If so, move past the opening `|` of the row\n\t\t\t\tthis.parser.pos++;\n\t\t\t\t// Move the caption to the first row if it isn't already\n\t\t\t\tif(table.children.length !== 1) {\n\t\t\t\t\ttable.children.pop(); // Take rowContainer out of the children array\n\t\t\t\t\ttable.children.splice(0,0,rowContainer); // Insert it at the bottom\t\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t// Set the alignment - TODO: figure out why TW did this\n//\t\t\t\trowContainer.attributes.align = rowCount === 0 ? \"top\" : \"bottom\";\n\t\t\t\t// Parse the caption\n\t\t\t\trowContainer.children = this.parser.parseInlineRun(rowTermRegExp,{eatTerminator: true});\n\t\t\t} else {\n\t\t\t\t// Create the row\n\t\t\t\tvar theRow = {type: \"element\", tag: \"tr\", children: []};\n\t\t\t\t$tw.utils.addClassToParseTreeNode(theRow,rowCount%2 ? \"oddRow\" : \"evenRow\");\n\t\t\t\trowContainer.children.push(theRow);\n\t\t\t\t// Process the row\n\t\t\t\ttheRow.children = processRow.call(this,prevColumns);\n\t\t\t\tthis.parser.pos = rowMatch.index + rowMatch[0].length;\n\t\t\t\t// Increment the row count\n\t\t\t\trowCount++;\n\t\t\t}\n\t\t}\n\t\trowMatch = rowRegExp.exec(this.parser.source);\n\t}\n\treturn [table];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/transcludeblock.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/transcludeblock.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/transcludeblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for block-level transclusion. For example:\n\n```\n{{MyTiddler}}\n{{MyTiddler||TemplateTitle}}\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"transcludeblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\{\\{([^\\{\\}\\|]*)(?:\\|\\|([^\\|\\{\\}]+))?\\}\\}(?:\\r?\\n|$)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Get the match details\n\tvar template = $tw.utils.trim(this.match[2]),\n\t\ttextRef = $tw.utils.trim(this.match[1]);\n\t// Prepare the transclude widget\n\tvar transcludeNode = {\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {},\n\t\t\tisBlock: true\n\t\t};\n\t// Prepare the tiddler widget\n\tvar tr, targetTitle, targetField, targetIndex, tiddlerNode;\n\tif(textRef) {\n\t\ttr = $tw.utils.parseTextReference(textRef);\n\t\ttargetTitle = tr.title;\n\t\ttargetField = tr.field;\n\t\ttargetIndex = tr.index;\n\t\ttiddlerNode = {\n\t\t\ttype: \"tiddler\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: targetTitle}\n\t\t\t},\n\t\t\tisBlock: true,\n\t\t\tchildren: [transcludeNode]\n\t\t};\n\t}\n\tif(template) {\n\t\ttranscludeNode.attributes.tiddler = {type: \"string\", value: template};\n\t\tif(textRef) {\n\t\t\treturn [tiddlerNode];\n\t\t} else {\n\t\t\treturn [transcludeNode];\n\t\t}\n\t} else {\n\t\tif(textRef) {\n\t\t\ttranscludeNode.attributes.tiddler = {type: \"string\", value: targetTitle};\n\t\t\tif(targetField) {\n\t\t\t\ttranscludeNode.attributes.field = {type: \"string\", value: targetField};\n\t\t\t}\n\t\t\tif(targetIndex) {\n\t\t\t\ttranscludeNode.attributes.index = {type: \"string\", value: targetIndex};\n\t\t\t}\n\t\t\treturn [tiddlerNode];\n\t\t} else {\n\t\t\treturn [transcludeNode];\n\t\t}\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/transcludeinline.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/transcludeinline.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/transcludeinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for inline-level transclusion. For example:\n\n```\n{{MyTiddler}}\n{{MyTiddler||TemplateTitle}}\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"transcludeinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\{\\{([^\\{\\}\\|]*)(?:\\|\\|([^\\|\\{\\}]+))?\\}\\}/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Get the match details\n\tvar template = $tw.utils.trim(this.match[2]),\n\t\ttextRef = $tw.utils.trim(this.match[1]);\n\t// Prepare the transclude widget\n\tvar transcludeNode = {\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {}\n\t\t};\n\t// Prepare the tiddler widget\n\tvar tr, targetTitle, targetField, targetIndex, tiddlerNode;\n\tif(textRef) {\n\t\ttr = $tw.utils.parseTextReference(textRef);\n\t\ttargetTitle = tr.title;\n\t\ttargetField = tr.field;\n\t\ttargetIndex = tr.index;\n\t\ttiddlerNode = {\n\t\t\ttype: \"tiddler\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: targetTitle}\n\t\t\t},\n\t\t\tchildren: [transcludeNode]\n\t\t};\n\t}\n\tif(template) {\n\t\ttranscludeNode.attributes.tiddler = {type: \"string\", value: template};\n\t\tif(textRef) {\n\t\t\treturn [tiddlerNode];\n\t\t} else {\n\t\t\treturn [transcludeNode];\n\t\t}\n\t} else {\n\t\tif(textRef) {\n\t\t\ttranscludeNode.attributes.tiddler = {type: \"string\", value: targetTitle};\n\t\t\tif(targetField) {\n\t\t\t\ttranscludeNode.attributes.field = {type: \"string\", value: targetField};\n\t\t\t}\n\t\t\tif(targetIndex) {\n\t\t\t\ttranscludeNode.attributes.index = {type: \"string\", value: targetIndex};\n\t\t\t}\n\t\t\treturn [tiddlerNode];\n\t\t} else {\n\t\t\treturn [transcludeNode];\n\t\t}\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/typedblock.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/typedblock.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/typedblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for typed blocks. For example:\n\n```\n$$$.js\nThis will be rendered as JavaScript\n$$$\n\n$$$.svg\n<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"150\" height=\"100\">\n <circle cx=\"100\" cy=\"50\" r=\"40\" stroke=\"black\" stroke-width=\"2\" fill=\"red\" />\n</svg>\n$$$\n\n$$$text/vnd.tiddlywiki>text/html\nThis will be rendered as an //HTML representation// of WikiText\n$$$\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.name = \"typedblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\$\\$\\$([^ >\\r\\n]*)(?: *> *([^ \\r\\n]+))?\\r?\\n/mg;\n};\n\nexports.parse = function() {\n\tvar reEnd = /\\r?\\n\\$\\$\\$\\r?(?:\\n|$)/mg;\n\t// Save the type\n\tvar parseType = this.match[1],\n\t\trenderType = this.match[2];\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Look for the end of the block\n\treEnd.lastIndex = this.parser.pos;\n\tvar match = reEnd.exec(this.parser.source),\n\t\ttext;\n\t// Process the block\n\tif(match) {\n\t\ttext = this.parser.source.substring(this.parser.pos,match.index);\n\t\tthis.parser.pos = match.index + match[0].length;\n\t} else {\n\t\ttext = this.parser.source.substr(this.parser.pos);\n\t\tthis.parser.pos = this.parser.sourceLength;\n\t}\n\t// Parse the block according to the specified type\n\tvar parser = this.parser.wiki.parseText(parseType,text,{defaultType: \"text/plain\"});\n\t// If there's no render type, just return the parse tree\n\tif(!renderType) {\n\t\treturn parser.tree;\n\t} else {\n\t\t// Otherwise, render to the rendertype and return in a <PRE> tag\n\t\tvar widgetNode = this.parser.wiki.makeWidget(parser),\n\t\t\tcontainer = $tw.fakeDocument.createElement(\"div\");\n\t\twidgetNode.render(container,null);\n\t\ttext = renderType === \"text/html\" ? container.innerHTML : container.textContent;\n\t\treturn [{\n\t\t\ttype: \"element\",\n\t\t\ttag: \"pre\",\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\",\n\t\t\t\ttext: text\n\t\t\t}]\n\t\t}];\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/whitespace.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/whitespace.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/whitespace.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki pragma rule for whitespace specifications\n\n```\n\\whitespace trim\n\\whitespace notrim\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"whitespace\";\nexports.types = {pragma: true};\n\n/*\nInstantiate parse rule\n*/\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /^\\\\whitespace[^\\S\\n]/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\tvar self = this;\n\t// Move past the pragma invocation\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse whitespace delimited tokens terminated by a line break\n\tvar reMatch = /[^\\S\\n]*(\\S+)|(\\r?\\n)/mg,\n\t\ttokens = [];\n\treMatch.lastIndex = this.parser.pos;\n\tvar match = reMatch.exec(this.parser.source);\n\twhile(match && match.index === this.parser.pos) {\n\t\tthis.parser.pos = reMatch.lastIndex;\n\t\t// Exit if we've got the line break\n\t\tif(match[2]) {\n\t\t\tbreak;\n\t\t}\n\t\t// Process the token\n\t\tif(match[1]) {\n\t\t\ttokens.push(match[1]);\n\t\t}\n\t\t// Match the next token\n\t\tmatch = reMatch.exec(this.parser.source);\n\t}\n\t// Process the tokens\n\t$tw.utils.each(tokens,function(token) {\n\t\tswitch(token) {\n\t\t\tcase \"trim\":\n\t\t\t\tself.parser.configTrimWhiteSpace = true;\n\t\t\t\tbreak;\n\t\t\tcase \"notrim\":\n\t\t\t\tself.parser.configTrimWhiteSpace = false;\n\t\t\t\tbreak;\n\t\t}\n\t});\n\t// No parse tree nodes to return\n\treturn [];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/wikilink.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/wikilink.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/wikilink.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for wiki links. For example:\n\n```\nAWikiLink\nAnotherLink\n~SuppressedLink\n```\n\nPrecede a camel case word with `~` to prevent it from being recognised as a link.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"wikilink\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = new RegExp($tw.config.textPrimitives.unWikiLink + \"?\" + $tw.config.textPrimitives.wikiLink,\"mg\");\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Get the details of the match\n\tvar linkText = this.match[0];\n\t// Move past the macro call\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// If the link starts with the unwikilink character then just output it as plain text\n\tif(linkText.substr(0,1) === $tw.config.textPrimitives.unWikiLink) {\n\t\treturn [{type: \"text\", text: linkText.substr(1)}];\n\t}\n\t// If the link has been preceded with a blocked letter then don't treat it as a link\n\tif(this.match.index > 0) {\n\t\tvar preRegExp = new RegExp($tw.config.textPrimitives.blockPrefixLetters,\"mg\");\n\t\tpreRegExp.lastIndex = this.match.index-1;\n\t\tvar preMatch = preRegExp.exec(this.parser.source);\n\t\tif(preMatch && preMatch.index === this.match.index-1) {\n\t\t\treturn [{type: \"text\", text: linkText}];\n\t\t}\n\t}\n\treturn [{\n\t\ttype: \"link\",\n\t\tattributes: {\n\t\t\tto: {type: \"string\", value: linkText}\n\t\t},\n\t\tchildren: [{\n\t\t\ttype: \"text\",\n\t\t\ttext: linkText\n\t\t}]\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/wikiparser.js": {
"title": "$:/core/modules/parsers/wikiparser/wikiparser.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/wikiparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe wiki text parser processes blocks of source text into a parse tree.\n\nThe parse tree is made up of nested arrays of these JavaScript objects:\n\n\t{type: \"element\", tag: <string>, attributes: {}, children: []} - an HTML element\n\t{type: \"text\", text: <string>} - a text node\n\t{type: \"entity\", value: <string>} - an entity\n\t{type: \"raw\", html: <string>} - raw HTML\n\nAttributes are stored as hashmaps of the following objects:\n\n\t{type: \"string\", value: <string>} - literal string\n\t{type: \"indirect\", textReference: <textReference>} - indirect through a text reference\n\t{type: \"macro\", macro: <TBD>} - indirect through a macro invocation\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar WikiParser = function(type,text,options) {\n\tthis.wiki = options.wiki;\n\tvar self = this;\n\t// Check for an externally linked tiddler\n\tif($tw.browser && (text || \"\") === \"\" && options._canonical_uri) {\n\t\tthis.loadRemoteTiddler(options._canonical_uri);\n\t\ttext = $tw.language.getRawString(\"LazyLoadingWarning\");\n\t}\n\t// Initialise the classes if we don't have them already\n\tif(!this.pragmaRuleClasses) {\n\t\tWikiParser.prototype.pragmaRuleClasses = $tw.modules.createClassesFromModules(\"wikirule\",\"pragma\",$tw.WikiRuleBase);\n\t\tthis.setupRules(WikiParser.prototype.pragmaRuleClasses,\"$:/config/WikiParserRules/Pragmas/\");\n\t}\n\tif(!this.blockRuleClasses) {\n\t\tWikiParser.prototype.blockRuleClasses = $tw.modules.createClassesFromModules(\"wikirule\",\"block\",$tw.WikiRuleBase);\n\t\tthis.setupRules(WikiParser.prototype.blockRuleClasses,\"$:/config/WikiParserRules/Block/\");\n\t}\n\tif(!this.inlineRuleClasses) {\n\t\tWikiParser.prototype.inlineRuleClasses = $tw.modules.createClassesFromModules(\"wikirule\",\"inline\",$tw.WikiRuleBase);\n\t\tthis.setupRules(WikiParser.prototype.inlineRuleClasses,\"$:/config/WikiParserRules/Inline/\");\n\t}\n\t// Save the parse text\n\tthis.type = type || \"text/vnd.tiddlywiki\";\n\tthis.source = text || \"\";\n\tthis.sourceLength = this.source.length;\n\t// Flag for ignoring whitespace\n\tthis.configTrimWhiteSpace = false;\n\t// Set current parse position\n\tthis.pos = 0;\n\t// Instantiate the pragma parse rules\n\tthis.pragmaRules = this.instantiateRules(this.pragmaRuleClasses,\"pragma\",0);\n\t// Instantiate the parser block and inline rules\n\tthis.blockRules = this.instantiateRules(this.blockRuleClasses,\"block\",0);\n\tthis.inlineRules = this.instantiateRules(this.inlineRuleClasses,\"inline\",0);\n\t// Parse any pragmas\n\tthis.tree = [];\n\tvar topBranch = this.parsePragmas();\n\t// Parse the text into inline runs or blocks\n\tif(options.parseAsInline) {\n\t\ttopBranch.push.apply(topBranch,this.parseInlineRun());\n\t} else {\n\t\ttopBranch.push.apply(topBranch,this.parseBlocks());\n\t}\n\t// Return the parse tree\n};\n\n/*\n*/\nWikiParser.prototype.loadRemoteTiddler = function(url) {\n\tvar self = this;\n\t$tw.utils.httpRequest({\n\t\turl: url,\n\t\ttype: \"GET\",\n\t\tcallback: function(err,data) {\n\t\t\tif(!err) {\n\t\t\t\tvar tiddlers = self.wiki.deserializeTiddlers(\".tid\",data,self.wiki.getCreationFields());\n\t\t\t\t$tw.utils.each(tiddlers,function(tiddler) {\n\t\t\t\t\ttiddler[\"_canonical_uri\"] = url;\n\t\t\t\t});\n\t\t\t\tif(tiddlers) {\n\t\t\t\t\tself.wiki.addTiddlers(tiddlers);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n};\n\n/*\n*/\nWikiParser.prototype.setupRules = function(proto,configPrefix) {\n\tvar self = this;\n\tif(!$tw.safemode) {\n\t\t$tw.utils.each(proto,function(object,name) {\n\t\t\tif(self.wiki.getTiddlerText(configPrefix + name,\"enable\") !== \"enable\") {\n\t\t\t\tdelete proto[name];\n\t\t\t}\n\t\t});\n\t}\n};\n\n/*\nInstantiate an array of parse rules\n*/\nWikiParser.prototype.instantiateRules = function(classes,type,startPos) {\n\tvar rulesInfo = [],\n\t\tself = this;\n\t$tw.utils.each(classes,function(RuleClass) {\n\t\t// Instantiate the rule\n\t\tvar rule = new RuleClass(self);\n\t\trule.is = {};\n\t\trule.is[type] = true;\n\t\trule.init(self);\n\t\tvar matchIndex = rule.findNextMatch(startPos);\n\t\tif(matchIndex !== undefined) {\n\t\t\trulesInfo.push({\n\t\t\t\trule: rule,\n\t\t\t\tmatchIndex: matchIndex\n\t\t\t});\n\t\t}\n\t});\n\treturn rulesInfo;\n};\n\n/*\nSkip any whitespace at the current position. Options are:\n\ttreatNewlinesAsNonWhitespace: true if newlines are NOT to be treated as whitespace\n*/\nWikiParser.prototype.skipWhitespace = function(options) {\n\toptions = options || {};\n\tvar whitespaceRegExp = options.treatNewlinesAsNonWhitespace ? /([^\\S\\n]+)/mg : /(\\s+)/mg;\n\twhitespaceRegExp.lastIndex = this.pos;\n\tvar whitespaceMatch = whitespaceRegExp.exec(this.source);\n\tif(whitespaceMatch && whitespaceMatch.index === this.pos) {\n\t\tthis.pos = whitespaceRegExp.lastIndex;\n\t}\n};\n\n/*\nGet the next match out of an array of parse rule instances\n*/\nWikiParser.prototype.findNextMatch = function(rules,startPos) {\n\t// Find the best matching rule by finding the closest match position\n\tvar matchingRule,\n\t\tmatchingRulePos = this.sourceLength;\n\t// Step through each rule\n\tfor(var t=0; t<rules.length; t++) {\n\t\tvar ruleInfo = rules[t];\n\t\t// Ask the rule to get the next match if we've moved past the current one\n\t\tif(ruleInfo.matchIndex !== undefined && ruleInfo.matchIndex < startPos) {\n\t\t\truleInfo.matchIndex = ruleInfo.rule.findNextMatch(startPos);\n\t\t}\n\t\t// Adopt this match if it's closer than the current best match\n\t\tif(ruleInfo.matchIndex !== undefined && ruleInfo.matchIndex <= matchingRulePos) {\n\t\t\tmatchingRule = ruleInfo;\n\t\t\tmatchingRulePos = ruleInfo.matchIndex;\n\t\t}\n\t}\n\treturn matchingRule;\n};\n\n/*\nParse any pragmas at the beginning of a block of parse text\n*/\nWikiParser.prototype.parsePragmas = function() {\n\tvar currentTreeBranch = this.tree;\n\twhile(true) {\n\t\t// Skip whitespace\n\t\tthis.skipWhitespace();\n\t\t// Check for the end of the text\n\t\tif(this.pos >= this.sourceLength) {\n\t\t\tbreak;\n\t\t}\n\t\t// Check if we've arrived at a pragma rule match\n\t\tvar nextMatch = this.findNextMatch(this.pragmaRules,this.pos);\n\t\t// If not, just exit\n\t\tif(!nextMatch || nextMatch.matchIndex !== this.pos) {\n\t\t\tbreak;\n\t\t}\n\t\t// Process the pragma rule\n\t\tvar subTree = nextMatch.rule.parse();\n\t\tif(subTree.length > 0) {\n\t\t\t// Quick hack; we only cope with a single parse tree node being returned, which is true at the moment\n\t\t\tcurrentTreeBranch.push.apply(currentTreeBranch,subTree);\n\t\t\tsubTree[0].children = [];\n\t\t\tcurrentTreeBranch = subTree[0].children;\n\t\t}\n\t}\n\treturn currentTreeBranch;\n};\n\n/*\nParse a block from the current position\n\tterminatorRegExpString: optional regular expression string that identifies the end of plain paragraphs. Must not include capturing parenthesis\n*/\nWikiParser.prototype.parseBlock = function(terminatorRegExpString) {\n\tvar terminatorRegExp = terminatorRegExpString ? new RegExp(\"(\" + terminatorRegExpString + \"|\\\\r?\\\\n\\\\r?\\\\n)\",\"mg\") : /(\\r?\\n\\r?\\n)/mg;\n\tthis.skipWhitespace();\n\tif(this.pos >= this.sourceLength) {\n\t\treturn [];\n\t}\n\t// Look for a block rule that applies at the current position\n\tvar nextMatch = this.findNextMatch(this.blockRules,this.pos);\n\tif(nextMatch && nextMatch.matchIndex === this.pos) {\n\t\treturn nextMatch.rule.parse();\n\t}\n\t// Treat it as a paragraph if we didn't find a block rule\n\treturn [{type: \"element\", tag: \"p\", children: this.parseInlineRun(terminatorRegExp)}];\n};\n\n/*\nParse a series of blocks of text until a terminating regexp is encountered or the end of the text\n\tterminatorRegExpString: terminating regular expression\n*/\nWikiParser.prototype.parseBlocks = function(terminatorRegExpString) {\n\tif(terminatorRegExpString) {\n\t\treturn this.parseBlocksTerminated(terminatorRegExpString);\n\t} else {\n\t\treturn this.parseBlocksUnterminated();\n\t}\n};\n\n/*\nParse a block from the current position to the end of the text\n*/\nWikiParser.prototype.parseBlocksUnterminated = function() {\n\tvar tree = [];\n\twhile(this.pos < this.sourceLength) {\n\t\ttree.push.apply(tree,this.parseBlock());\n\t}\n\treturn tree;\n};\n\n/*\nParse blocks of text until a terminating regexp is encountered\n*/\nWikiParser.prototype.parseBlocksTerminated = function(terminatorRegExpString) {\n\tvar terminatorRegExp = new RegExp(\"(\" + terminatorRegExpString + \")\",\"mg\"),\n\t\ttree = [];\n\t// Skip any whitespace\n\tthis.skipWhitespace();\n\t// Check if we've got the end marker\n\tterminatorRegExp.lastIndex = this.pos;\n\tvar match = terminatorRegExp.exec(this.source);\n\t// Parse the text into blocks\n\twhile(this.pos < this.sourceLength && !(match && match.index === this.pos)) {\n\t\tvar blocks = this.parseBlock(terminatorRegExpString);\n\t\ttree.push.apply(tree,blocks);\n\t\t// Skip any whitespace\n\t\tthis.skipWhitespace();\n\t\t// Check if we've got the end marker\n\t\tterminatorRegExp.lastIndex = this.pos;\n\t\tmatch = terminatorRegExp.exec(this.source);\n\t}\n\tif(match && match.index === this.pos) {\n\t\tthis.pos = match.index + match[0].length;\n\t}\n\treturn tree;\n};\n\n/*\nParse a run of text at the current position\n\tterminatorRegExp: a regexp at which to stop the run\n\toptions: see below\nOptions available:\n\teatTerminator: move the parse position past any encountered terminator (default false)\n*/\nWikiParser.prototype.parseInlineRun = function(terminatorRegExp,options) {\n\tif(terminatorRegExp) {\n\t\treturn this.parseInlineRunTerminated(terminatorRegExp,options);\n\t} else {\n\t\treturn this.parseInlineRunUnterminated(options);\n\t}\n};\n\nWikiParser.prototype.parseInlineRunUnterminated = function(options) {\n\tvar tree = [];\n\t// Find the next occurrence of an inline rule\n\tvar nextMatch = this.findNextMatch(this.inlineRules,this.pos);\n\t// Loop around the matches until we've reached the end of the text\n\twhile(this.pos < this.sourceLength && nextMatch) {\n\t\t// Process the text preceding the run rule\n\t\tif(nextMatch.matchIndex > this.pos) {\n\t\t\tthis.pushTextWidget(tree,this.source.substring(this.pos,nextMatch.matchIndex));\n\t\t\tthis.pos = nextMatch.matchIndex;\n\t\t}\n\t\t// Process the run rule\n\t\ttree.push.apply(tree,nextMatch.rule.parse());\n\t\t// Look for the next run rule\n\t\tnextMatch = this.findNextMatch(this.inlineRules,this.pos);\n\t}\n\t// Process the remaining text\n\tif(this.pos < this.sourceLength) {\n\t\tthis.pushTextWidget(tree,this.source.substr(this.pos));\n\t}\n\tthis.pos = this.sourceLength;\n\treturn tree;\n};\n\nWikiParser.prototype.parseInlineRunTerminated = function(terminatorRegExp,options) {\n\toptions = options || {};\n\tvar tree = [];\n\t// Find the next occurrence of the terminator\n\tterminatorRegExp.lastIndex = this.pos;\n\tvar terminatorMatch = terminatorRegExp.exec(this.source);\n\t// Find the next occurrence of a inlinerule\n\tvar inlineRuleMatch = this.findNextMatch(this.inlineRules,this.pos);\n\t// Loop around until we've reached the end of the text\n\twhile(this.pos < this.sourceLength && (terminatorMatch || inlineRuleMatch)) {\n\t\t// Return if we've found the terminator, and it precedes any inline rule match\n\t\tif(terminatorMatch) {\n\t\t\tif(!inlineRuleMatch || inlineRuleMatch.matchIndex >= terminatorMatch.index) {\n\t\t\t\tif(terminatorMatch.index > this.pos) {\n\t\t\t\t\tthis.pushTextWidget(tree,this.source.substring(this.pos,terminatorMatch.index));\n\t\t\t\t}\n\t\t\t\tthis.pos = terminatorMatch.index;\n\t\t\t\tif(options.eatTerminator) {\n\t\t\t\t\tthis.pos += terminatorMatch[0].length;\n\t\t\t\t}\n\t\t\t\treturn tree;\n\t\t\t}\n\t\t}\n\t\t// Process any inline rule, along with the text preceding it\n\t\tif(inlineRuleMatch) {\n\t\t\t// Preceding text\n\t\t\tif(inlineRuleMatch.matchIndex > this.pos) {\n\t\t\t\tthis.pushTextWidget(tree,this.source.substring(this.pos,inlineRuleMatch.matchIndex));\n\t\t\t\tthis.pos = inlineRuleMatch.matchIndex;\n\t\t\t}\n\t\t\t// Process the inline rule\n\t\t\ttree.push.apply(tree,inlineRuleMatch.rule.parse());\n\t\t\t// Look for the next inline rule\n\t\t\tinlineRuleMatch = this.findNextMatch(this.inlineRules,this.pos);\n\t\t\t// Look for the next terminator match\n\t\t\tterminatorRegExp.lastIndex = this.pos;\n\t\t\tterminatorMatch = terminatorRegExp.exec(this.source);\n\t\t}\n\t}\n\t// Process the remaining text\n\tif(this.pos < this.sourceLength) {\n\t\tthis.pushTextWidget(tree,this.source.substr(this.pos));\n\t}\n\tthis.pos = this.sourceLength;\n\treturn tree;\n};\n\n/*\nPush a text widget onto an array, respecting the configTrimWhiteSpace setting\n*/\nWikiParser.prototype.pushTextWidget = function(array,text) {\n\tif(this.configTrimWhiteSpace) {\n\t\ttext = $tw.utils.trim(text);\n\t}\n\tif(text) {\n\t\tarray.push({type: \"text\", text: text});\t\t\n\t}\n};\n\n/*\nParse zero or more class specifiers `.classname`\n*/\nWikiParser.prototype.parseClasses = function() {\n\tvar classRegExp = /\\.([^\\s\\.]+)/mg,\n\t\tclassNames = [];\n\tclassRegExp.lastIndex = this.pos;\n\tvar match = classRegExp.exec(this.source);\n\twhile(match && match.index === this.pos) {\n\t\tthis.pos = match.index + match[0].length;\n\t\tclassNames.push(match[1]);\n\t\tmatch = classRegExp.exec(this.source);\n\t}\n\treturn classNames;\n};\n\n/*\nAmend the rules used by this instance of the parser\n\ttype: `only` keeps just the named rules, `except` keeps all but the named rules\n\tnames: array of rule names\n*/\nWikiParser.prototype.amendRules = function(type,names) {\n\tnames = names || [];\n\t// Define the filter function\n\tvar keepFilter;\n\tif(type === \"only\") {\n\t\tkeepFilter = function(name) {\n\t\t\treturn names.indexOf(name) !== -1;\n\t\t};\n\t} else if(type === \"except\") {\n\t\tkeepFilter = function(name) {\n\t\t\treturn names.indexOf(name) === -1;\n\t\t};\n\t} else {\n\t\treturn;\n\t}\n\t// Define a function to process each of our rule arrays\n\tvar processRuleArray = function(ruleArray) {\n\t\tfor(var t=ruleArray.length-1; t>=0; t--) {\n\t\t\tif(!keepFilter(ruleArray[t].rule.name)) {\n\t\t\t\truleArray.splice(t,1);\n\t\t\t}\n\t\t}\n\t};\n\t// Process each rule array\n\tprocessRuleArray(this.pragmaRules);\n\tprocessRuleArray(this.blockRules);\n\tprocessRuleArray(this.inlineRules);\n};\n\nexports[\"text/vnd.tiddlywiki\"] = WikiParser;\n\n})();\n\n",
"type": "application/javascript",
"module-type": "parser"
},
"$:/core/modules/parsers/wikiparser/rules/wikirulebase.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/wikirulebase.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/wikirulebase.js\ntype: application/javascript\nmodule-type: global\n\nBase class for wiki parser rules\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nThis constructor is always overridden with a blank constructor, and so shouldn't be used\n*/\nvar WikiRuleBase = function() {\n};\n\n/*\nTo be overridden by individual rules\n*/\nWikiRuleBase.prototype.init = function(parser) {\n\tthis.parser = parser;\n};\n\n/*\nDefault implementation of findNextMatch uses RegExp matching\n*/\nWikiRuleBase.prototype.findNextMatch = function(startPos) {\n\tthis.matchRegExp.lastIndex = startPos;\n\tthis.match = this.matchRegExp.exec(this.parser.source);\n\treturn this.match ? this.match.index : undefined;\n};\n\nexports.WikiRuleBase = WikiRuleBase;\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/pluginswitcher.js": {
"title": "$:/core/modules/pluginswitcher.js",
"text": "/*\\\ntitle: $:/core/modules/pluginswitcher.js\ntype: application/javascript\nmodule-type: global\n\nManages switching plugins for themes and languages.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\noptions:\nwiki: wiki store to be used\npluginType: type of plugin to be switched\ncontrollerTitle: title of tiddler used to control switching of this resource\ndefaultPlugins: array of default plugins to be used if nominated plugin isn't found\nonSwitch: callback when plugin is switched (single parameter is array of plugin titles)\n*/\nfunction PluginSwitcher(options) {\n\tthis.wiki = options.wiki;\n\tthis.pluginType = options.pluginType;\n\tthis.controllerTitle = options.controllerTitle;\n\tthis.defaultPlugins = options.defaultPlugins || [];\n\tthis.onSwitch = options.onSwitch;\n\t// Switch to the current plugin\n\tthis.switchPlugins();\n\t// Listen for changes to the selected plugin\n\tvar self = this;\n\tthis.wiki.addEventListener(\"change\",function(changes) {\n\t\tif($tw.utils.hop(changes,self.controllerTitle)) {\n\t\t\tself.switchPlugins();\n\t\t}\n\t});\n}\n\nPluginSwitcher.prototype.switchPlugins = function() {\n\t// Get the name of the current theme\n\tvar selectedPluginTitle = this.wiki.getTiddlerText(this.controllerTitle);\n\t// If it doesn't exist, then fallback to one of the default themes\n\tvar index = 0;\n\twhile(!this.wiki.getTiddler(selectedPluginTitle) && index < this.defaultPlugins.length) {\n\t\tselectedPluginTitle = this.defaultPlugins[index++];\n\t}\n\t// Accumulate the titles of the plugins that we need to load\n\tvar plugins = [],\n\t\tself = this,\n\t\taccumulatePlugin = function(title) {\n\t\t\tvar tiddler = self.wiki.getTiddler(title);\n\t\t\tif(tiddler && tiddler.isPlugin() && plugins.indexOf(title) === -1) {\n\t\t\t\tplugins.push(title);\n\t\t\t\tvar pluginInfo = JSON.parse(self.wiki.getTiddlerText(title)),\n\t\t\t\t\tdependents = $tw.utils.parseStringArray(tiddler.fields.dependents || \"\");\n\t\t\t\t$tw.utils.each(dependents,function(title) {\n\t\t\t\t\taccumulatePlugin(title);\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\taccumulatePlugin(selectedPluginTitle);\n\t// Read the plugin info for the incoming plugins\n\tvar changes = $tw.wiki.readPluginInfo(plugins);\n\t// Unregister any existing theme tiddlers\n\tvar unregisteredTiddlers = $tw.wiki.unregisterPluginTiddlers(this.pluginType);\n\t// Register any new theme tiddlers\n\tvar registeredTiddlers = $tw.wiki.registerPluginTiddlers(this.pluginType,plugins);\n\t// Unpack the current theme tiddlers\n\t$tw.wiki.unpackPluginTiddlers();\n\t// Call the switch handler\n\tif(this.onSwitch) {\n\t\tthis.onSwitch(plugins);\n\t}\n};\n\nexports.PluginSwitcher = PluginSwitcher;\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/saver-handler.js": {
"title": "$:/core/modules/saver-handler.js",
"text": "/*\\\ntitle: $:/core/modules/saver-handler.js\ntype: application/javascript\nmodule-type: global\n\nThe saver handler tracks changes to the store and handles saving the entire wiki via saver modules.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInstantiate the saver handler with the following options:\nwiki: wiki to be synced\ndirtyTracking: true if dirty tracking should be performed\n*/\nfunction SaverHandler(options) {\n\tvar self = this;\n\tthis.wiki = options.wiki;\n\tthis.dirtyTracking = options.dirtyTracking;\n\tthis.preloadDirty = options.preloadDirty || [];\n\tthis.pendingAutoSave = false;\n\t// Make a logger\n\tthis.logger = new $tw.utils.Logger(\"saver-handler\");\n\t// Initialise our savers\n\tif($tw.browser) {\n\t\tthis.initSavers();\n\t}\n\t// Only do dirty tracking if required\n\tif($tw.browser && this.dirtyTracking) {\n\t\t// Compile the dirty tiddler filter\n\t\tthis.filterFn = this.wiki.compileFilter(this.wiki.getTiddlerText(this.titleSyncFilter));\n\t\t// Count of changes that have not yet been saved\n\t\tvar filteredChanges = self.filterFn.call(self.wiki,function(iterator) {\n\t\t\t\t$tw.utils.each(self.preloadDirty,function(title) {\n\t\t\t\t\tvar tiddler = self.wiki.getTiddler(title);\n\t\t\t\t\titerator(tiddler,title);\n\t\t\t\t});\n\t\t});\n\t\tthis.numChanges = filteredChanges.length;\n\t\t// Listen out for changes to tiddlers\n\t\tthis.wiki.addEventListener(\"change\",function(changes) {\n\t\t\t// Filter the changes so that we only count changes to tiddlers that we care about\n\t\t\tvar filteredChanges = self.filterFn.call(self.wiki,function(iterator) {\n\t\t\t\t$tw.utils.each(changes,function(change,title) {\n\t\t\t\t\tvar tiddler = self.wiki.getTiddler(title);\n\t\t\t\t\titerator(tiddler,title);\n\t\t\t\t});\n\t\t\t});\n\t\t\t// Adjust the number of changes\n\t\t\tself.numChanges += filteredChanges.length;\n\t\t\tself.updateDirtyStatus();\n\t\t\t// Do any autosave if one is pending and there's no more change events\n\t\t\tif(self.pendingAutoSave && self.wiki.getSizeOfTiddlerEventQueue() === 0) {\n\t\t\t\t// Check if we're dirty\n\t\t\t\tif(self.numChanges > 0) {\n\t\t\t\t\tself.saveWiki({\n\t\t\t\t\t\tmethod: \"autosave\",\n\t\t\t\t\t\tdownloadType: \"text/plain\"\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tself.pendingAutoSave = false;\n\t\t\t}\n\t\t});\n\t\t// Listen for the autosave event\n\t\t$tw.rootWidget.addEventListener(\"tm-auto-save-wiki\",function(event) {\n\t\t\t// Do the autosave unless there are outstanding tiddler change events\n\t\t\tif(self.wiki.getSizeOfTiddlerEventQueue() === 0) {\n\t\t\t\t// Check if we're dirty\n\t\t\t\tif(self.numChanges > 0) {\n\t\t\t\t\tself.saveWiki({\n\t\t\t\t\t\tmethod: \"autosave\",\n\t\t\t\t\t\tdownloadType: \"text/plain\"\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Otherwise put ourselves in the \"pending autosave\" state and wait for the change event before we do the autosave\n\t\t\t\tself.pendingAutoSave = true;\n\t\t\t}\n\t\t});\n\t\t// Set up our beforeunload handler\n\t\t$tw.addUnloadTask(function(event) {\n\t\t\tvar confirmationMessage;\n\t\t\tif(self.isDirty()) {\n\t\t\t\tconfirmationMessage = $tw.language.getString(\"UnsavedChangesWarning\");\n\t\t\t\tevent.returnValue = confirmationMessage; // Gecko\n\t\t\t}\n\t\t\treturn confirmationMessage;\n\t\t});\n\t}\n\t// Install the save action handlers\n\tif($tw.browser) {\n\t\t$tw.rootWidget.addEventListener(\"tm-save-wiki\",function(event) {\n\t\t\tself.saveWiki({\n\t\t\t\ttemplate: event.param,\n\t\t\t\tdownloadType: \"text/plain\",\n\t\t\t\tvariables: event.paramObject\n\t\t\t});\n\t\t});\n\t\t$tw.rootWidget.addEventListener(\"tm-download-file\",function(event) {\n\t\t\tself.saveWiki({\n\t\t\t\tmethod: \"download\",\n\t\t\t\ttemplate: event.param,\n\t\t\t\tdownloadType: \"text/plain\",\n\t\t\t\tvariables: event.paramObject\n\t\t\t});\n\t\t});\n\t}\n}\n\nSaverHandler.prototype.titleSyncFilter = \"$:/config/SaverFilter\";\nSaverHandler.prototype.titleAutoSave = \"$:/config/AutoSave\";\nSaverHandler.prototype.titleSavedNotification = \"$:/language/Notifications/Save/Done\";\n\n/*\nSelect the appropriate saver modules and set them up\n*/\nSaverHandler.prototype.initSavers = function(moduleType) {\n\tmoduleType = moduleType || \"saver\";\n\t// Instantiate the available savers\n\tthis.savers = [];\n\tvar self = this;\n\t$tw.modules.forEachModuleOfType(moduleType,function(title,module) {\n\t\tif(module.canSave(self)) {\n\t\t\tself.savers.push(module.create(self.wiki));\n\t\t}\n\t});\n\t// Sort the savers into priority order\n\tthis.savers.sort(function(a,b) {\n\t\tif(a.info.priority < b.info.priority) {\n\t\t\treturn -1;\n\t\t} else {\n\t\t\tif(a.info.priority > b.info.priority) {\n\t\t\t\treturn +1;\n\t\t\t} else {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t}\n\t});\n};\n\n/*\nSave the wiki contents. Options are:\n\tmethod: \"save\", \"autosave\" or \"download\"\n\ttemplate: the tiddler containing the template to save\n\tdownloadType: the content type for the saved file\n*/\nSaverHandler.prototype.saveWiki = function(options) {\n\toptions = options || {};\n\tvar self = this,\n\t\tmethod = options.method || \"save\";\n\t// Ignore autosave if disabled\n\tif(method === \"autosave\" && this.wiki.getTiddlerText(this.titleAutoSave,\"yes\") !== \"yes\") {\n\t\treturn false;\n\t}\n\tvar\tvariables = options.variables || {},\n\t\ttemplate = options.template || \"$:/core/save/all\",\n\t\tdownloadType = options.downloadType || \"text/plain\",\n\t\ttext = this.wiki.renderTiddler(downloadType,template,options),\n\t\tcallback = function(err) {\n\t\t\tif(err) {\n\t\t\t\talert($tw.language.getString(\"Error/WhileSaving\") + \":\\n\\n\" + err);\n\t\t\t} else {\n\t\t\t\t// Clear the task queue if we're saving (rather than downloading)\n\t\t\t\tif(method !== \"download\") {\n\t\t\t\t\tself.numChanges = 0;\n\t\t\t\t\tself.updateDirtyStatus();\n\t\t\t\t}\n\t\t\t\t$tw.notifier.display(self.titleSavedNotification);\n\t\t\t\tif(options.callback) {\n\t\t\t\t\toptions.callback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t// Call the highest priority saver that supports this method\n\tfor(var t=this.savers.length-1; t>=0; t--) {\n\t\tvar saver = this.savers[t];\n\t\tif(saver.info.capabilities.indexOf(method) !== -1 && saver.save(text,method,callback,{variables: {filename: variables.filename}})) {\n\t\t\tthis.logger.log(\"Saving wiki with method\",method,\"through saver\",saver.info.name);\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n\n/*\nChecks whether the wiki is dirty (ie the window shouldn't be closed)\n*/\nSaverHandler.prototype.isDirty = function() {\n\treturn this.numChanges > 0;\n};\n\n/*\nUpdate the document body with the class \"tc-dirty\" if the wiki has unsaved/unsynced changes\n*/\nSaverHandler.prototype.updateDirtyStatus = function() {\n\tif($tw.browser) {\n\t\t$tw.utils.toggleClass(document.body,\"tc-dirty\",this.isDirty());\n\t}\n};\n\nexports.SaverHandler = SaverHandler;\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/savers/andtidwiki.js": {
"title": "$:/core/modules/savers/andtidwiki.js",
"text": "/*\\\ntitle: $:/core/modules/savers/andtidwiki.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via the AndTidWiki Android app\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false, netscape: false, Components: false */\n\"use strict\";\n\nvar AndTidWiki = function(wiki) {\n};\n\nAndTidWiki.prototype.save = function(text,method,callback,options) {\n\tvar filename = options && options.variables ? options.variables.filename : null;\n\tif (method === \"download\") {\n\t\t// Support download\n\t\tif (window.twi.saveDownload) {\n\t\t\ttry {\n\t\t\t\twindow.twi.saveDownload(text,filename);\n\t\t\t} catch(err) {\n\t\t\t\tif (err.message === \"Method not found\") {\n\t\t\t\t\twindow.twi.saveDownload(text);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tvar link = document.createElement(\"a\");\n\t\t\tlink.setAttribute(\"href\",\"data:text/plain,\" + encodeURIComponent(text));\n\t\t\tif (filename) {\n\t\t\t link.setAttribute(\"download\",filename);\n\t\t\t}\n\t\t\tdocument.body.appendChild(link);\n\t\t\tlink.click();\n\t\t\tdocument.body.removeChild(link);\n\t\t}\n\t} else if (window.twi.saveWiki) {\n\t\t// Direct save in Tiddloid\n\t\twindow.twi.saveWiki(text);\n\t} else {\n\t\t// Get the pathname of this document\n\t\tvar pathname = decodeURIComponent(document.location.toString().split(\"#\")[0]);\n\t\t// Strip the file://\n\t\tif(pathname.indexOf(\"file://\") === 0) {\n\t\t\tpathname = pathname.substr(7);\n\t\t}\n\t\t// Strip any query or location part\n\t\tvar p = pathname.indexOf(\"?\");\n\t\tif(p !== -1) {\n\t\t\tpathname = pathname.substr(0,p);\n\t\t}\n\t\tp = pathname.indexOf(\"#\");\n\t\tif(p !== -1) {\n\t\t\tpathname = pathname.substr(0,p);\n\t\t}\n\t\t// Save the file\n\t\twindow.twi.saveFile(pathname,text);\n\t}\n\t// Call the callback\n\tcallback(null);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nAndTidWiki.prototype.info = {\n\tname: \"andtidwiki\",\n\tpriority: 1600,\n\tcapabilities: [\"save\", \"autosave\", \"download\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn !!window.twi && !!window.twi.saveFile;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new AndTidWiki(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/beaker.js": {
"title": "$:/core/modules/savers/beaker.js",
"text": "/*\\\ntitle: $:/core/modules/savers/beaker.js\ntype: application/javascript\nmodule-type: saver\n\nSaves files using the Beaker browser's (https://beakerbrowser.com) Dat protocol (https://datproject.org/)\nCompatible with beaker >= V0.7.2\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSet up the saver\n*/\nvar BeakerSaver = function(wiki) {\n\tthis.wiki = wiki;\n};\n\nBeakerSaver.prototype.save = function(text,method,callback) {\n\tvar dat = new DatArchive(\"\" + window.location),\n\t\tpathname = (\"\" + window.location.pathname).split(\"#\")[0];\n\tdat.stat(pathname).then(function(value) {\n\t\tif(value.isDirectory()) {\n\t\t\tpathname = pathname + \"/index.html\";\n\t\t}\n\t\tdat.writeFile(pathname,text,\"utf8\").then(function(value) {\n\t\t\tcallback(null);\n\t\t},function(reason) {\n\t\t\tcallback(\"Beaker Saver Write Error: \" + reason);\n\t\t});\n\t},function(reason) {\n\t\tcallback(\"Beaker Saver Stat Error: \" + reason);\n\t});\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nBeakerSaver.prototype.info = {\n\tname: \"beaker\",\n\tpriority: 3000,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn !!window.DatArchive && location.protocol===\"dat:\";\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new BeakerSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/download.js": {
"title": "$:/core/modules/savers/download.js",
"text": "/*\\\ntitle: $:/core/modules/savers/download.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via HTML5's download APIs\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar DownloadSaver = function(wiki) {\n};\n\nDownloadSaver.prototype.save = function(text,method,callback,options) {\n\toptions = options || {};\n\t// Get the current filename\n\tvar filename = options.variables.filename;\n\tif(!filename) {\n\t\tvar p = document.location.pathname.lastIndexOf(\"/\");\n\t\tif(p !== -1) {\n\t\t\t// We decode the pathname because document.location is URL encoded by the browser\n\t\t\tfilename = decodeURIComponent(document.location.pathname.substr(p+1));\n\t\t}\n\t}\n\tif(!filename) {\n\t\tfilename = \"tiddlywiki.html\";\n\t}\n\t// Set up the link\n\tvar link = document.createElement(\"a\");\n\tif(Blob !== undefined) {\n\t\tvar blob = new Blob([text], {type: \"text/html\"});\n\t\tlink.setAttribute(\"href\", URL.createObjectURL(blob));\n\t} else {\n\t\tlink.setAttribute(\"href\",\"data:text/html,\" + encodeURIComponent(text));\n\t}\n\tlink.setAttribute(\"download\",filename);\n\tdocument.body.appendChild(link);\n\tlink.click();\n\tdocument.body.removeChild(link);\n\t// Callback that we succeeded\n\tcallback(null);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nDownloadSaver.prototype.info = {\n\tname: \"download\",\n\tpriority: 100\n};\n\nObject.defineProperty(DownloadSaver.prototype.info, \"capabilities\", {\n\tget: function() {\n\t\tvar capabilities = [\"save\", \"download\"];\n\t\tif(($tw.wiki.getTextReference(\"$:/config/DownloadSaver/AutoSave\") || \"\").toLowerCase() === \"yes\") {\n\t\t\tcapabilities.push(\"autosave\");\n\t\t}\n\t\treturn capabilities;\n\t}\n});\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn document.createElement(\"a\").download !== undefined;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new DownloadSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/fsosaver.js": {
"title": "$:/core/modules/savers/fsosaver.js",
"text": "/*\\\ntitle: $:/core/modules/savers/fsosaver.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via MS FileSystemObject ActiveXObject\n\nNote: Since TiddlyWiki's markup contains the MOTW, the FileSystemObject normally won't be available. \nHowever, if the wiki is loaded as an .HTA file (Windows HTML Applications) then the FSO can be used.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar FSOSaver = function(wiki) {\n};\n\nFSOSaver.prototype.save = function(text,method,callback) {\n\t// Get the pathname of this document\n\tvar pathname = unescape(document.location.pathname);\n\t// Test for a Windows path of the form /x:\\blah...\n\tif(/^\\/[A-Z]\\:\\\\[^\\\\]+/i.test(pathname)) {\t// ie: ^/[a-z]:/[^/]+\n\t\t// Remove the leading slash\n\t\tpathname = pathname.substr(1);\n\t} else if(document.location.hostname !== \"\" && /^\\/\\\\[^\\\\]+\\\\[^\\\\]+/i.test(pathname)) {\t// test for \\\\server\\share\\blah... - ^/[^/]+/[^/]+\n\t\t// Remove the leading slash\n\t\tpathname = pathname.substr(1);\n\t\t// reconstruct UNC path\n\t\tpathname = \"\\\\\\\\\" + document.location.hostname + pathname;\n\t} else {\n\t\treturn false;\n\t}\n\t// Save the file (as UTF-16)\n\tvar fso = new ActiveXObject(\"Scripting.FileSystemObject\");\n\tvar file = fso.OpenTextFile(pathname,2,-1,-1);\n\tfile.Write(text);\n\tfile.Close();\n\t// Callback that we succeeded\n\tcallback(null);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nFSOSaver.prototype.info = {\n\tname: \"FSOSaver\",\n\tpriority: 120,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\ttry {\n\t\treturn (window.location.protocol === \"file:\") && !!(new ActiveXObject(\"Scripting.FileSystemObject\"));\n\t} catch(e) { return false; }\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new FSOSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/gitea.js": {
"title": "$:/core/modules/savers/gitea.js",
"text": "/*\\\ntitle: $:/core/modules/savers/gitea.js\ntype: application/javascript\nmodule-type: saver\n\nSaves wiki by pushing a commit to the gitea\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar GiteaSaver = function(wiki) {\n\tthis.wiki = wiki;\n};\n\nGiteaSaver.prototype.save = function(text,method,callback) {\n\tvar self = this,\n\t\tusername = this.wiki.getTiddlerText(\"$:/Gitea/Username\"),\n\t\tpassword = $tw.utils.getPassword(\"Gitea\"),\n\t\trepo = this.wiki.getTiddlerText(\"$:/Gitea/Repo\"),\n\t\tpath = this.wiki.getTiddlerText(\"$:/Gitea/Path\",\"\"),\n\t\tfilename = this.wiki.getTiddlerText(\"$:/Gitea/Filename\"),\n\t\tbranch = this.wiki.getTiddlerText(\"$:/Gitea/Branch\") || \"master\",\n\t\tendpoint = this.wiki.getTiddlerText(\"$:/Gitea/ServerURL\") || \"https://gitea\",\n\t\theaders = {\n\t\t\t\"Accept\": \"application/json\",\n\t\t\t\"Content-Type\": \"application/json;charset=UTF-8\",\n\t\t\t\"Authorization\": \"Basic \" + window.btoa(username + \":\" + password)\n\t\t};\n\t// Bail if we don't have everything we need\n\tif(!username || !password || !repo || !path || !filename) {\n\t\treturn false;\n\t}\n\t// Make sure the path start and ends with a slash\n\tif(path.substring(0,1) !== \"/\") {\n\t\tpath = \"/\" + path;\n\t}\n\tif(path.substring(path.length - 1) !== \"/\") {\n\t\tpath = path + \"/\";\n\t}\n\t// Compose the base URI\n\tvar uri = endpoint + \"/repos/\" + repo + \"/contents\" + path;\n\t// Perform a get request to get the details (inc shas) of files in the same path as our file\n\t$tw.utils.httpRequest({\n\t\turl: uri,\n\t\ttype: \"GET\",\n\t\theaders: headers,\n\t\tdata: {\n\t\t\tref: branch\n\t\t},\n\t\tcallback: function(err,getResponseDataJson,xhr) {\n\t\t\tvar getResponseData,sha = \"\";\n\t\t\tif(err && xhr.status !== 404) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tvar use_put = true;\n\t\t\tif(xhr.status !== 404) {\n\t\t\t\tgetResponseData = JSON.parse(getResponseDataJson);\n\t\t\t\t$tw.utils.each(getResponseData,function(details) {\n\t\t\t\t\tif(details.name === filename) {\n\t\t\t\t\t\tsha = details.sha;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif(sha === \"\"){\n\t\t\t\t\tuse_put = false;\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar data = {\n\t\t\t\tmessage: $tw.language.getRawString(\"ControlPanel/Saving/GitService/CommitMessage\"),\n\t\t\t\tcontent: $tw.utils.base64Encode(text),\n\t\t\t\tsha: sha\n\t\t\t};\n\t\t\t$tw.utils.httpRequest({\n\t\t\t\turl: endpoint + \"/repos/\" + repo + \"/branches/\" + branch,\n\t\t\t\ttype: \"GET\",\n\t\t\t\theaders: headers,\n\t\t\t\tcallback: function(err,getResponseDataJson,xhr) {\n\t\t\t\t\tif(xhr.status === 404) {\n\t\t\t\t\t\tcallback(\"Please ensure the branch in the Gitea repo exists\");\n\t\t\t\t\t}else{\n\t\t\t\t\t\tdata[\"branch\"] = branch;\n\t\t\t\t\t\tself.upload(uri + filename, use_put?\"PUT\":\"POST\", headers, data, callback);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\treturn true;\n};\n\nGiteaSaver.prototype.upload = function(uri,method,headers,data,callback) {\n\t$tw.utils.httpRequest({\n\t\turl: uri,\n\t\ttype: method,\n\t\theaders: headers,\n\t\tdata: JSON.stringify(data),\n\t\tcallback: function(err,putResponseDataJson,xhr) {\n\t\t\tif(err) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tvar putResponseData = JSON.parse(putResponseDataJson);\n\t\t\tcallback(null);\n\t\t}\n\t});\n};\n\n/*\nInformation about this saver\n*/\nGiteaSaver.prototype.info = {\n\tname: \"Gitea\",\n\tpriority: 2000,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new GiteaSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/github.js": {
"title": "$:/core/modules/savers/github.js",
"text": "/*\\\ntitle: $:/core/modules/savers/github.js\ntype: application/javascript\nmodule-type: saver\n\nSaves wiki by pushing a commit to the GitHub v3 REST API\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar GitHubSaver = function(wiki) {\n\tthis.wiki = wiki;\n};\n\nGitHubSaver.prototype.save = function(text,method,callback) {\n\tvar self = this,\n\t\tusername = this.wiki.getTiddlerText(\"$:/GitHub/Username\"),\n\t\tpassword = $tw.utils.getPassword(\"github\"),\n\t\trepo = this.wiki.getTiddlerText(\"$:/GitHub/Repo\"),\n\t\tpath = this.wiki.getTiddlerText(\"$:/GitHub/Path\",\"\"),\n\t\tfilename = this.wiki.getTiddlerText(\"$:/GitHub/Filename\"),\n\t\tbranch = this.wiki.getTiddlerText(\"$:/GitHub/Branch\") || \"master\",\n\t\tendpoint = this.wiki.getTiddlerText(\"$:/GitHub/ServerURL\") || \"https://api.github.com\",\n\t\theaders = {\n\t\t\t\"Accept\": \"application/vnd.github.v3+json\",\n\t\t\t\"Content-Type\": \"application/json;charset=UTF-8\",\n\t\t\t\"Authorization\": \"Basic \" + window.btoa(username + \":\" + password)\n\t\t};\n\t// Bail if we don't have everything we need\n\tif(!username || !password || !repo || !path || !filename) {\n\t\treturn false;\n\t}\n\t// Make sure the path start and ends with a slash\n\tif(path.substring(0,1) !== \"/\") {\n\t\tpath = \"/\" + path;\n\t}\n\tif(path.substring(path.length - 1) !== \"/\") {\n\t\tpath = path + \"/\";\n\t}\n\t// Compose the base URI\n\tvar uri = endpoint + \"/repos/\" + repo + \"/contents\" + path;\n\t// Perform a get request to get the details (inc shas) of files in the same path as our file\n\t$tw.utils.httpRequest({\n\t\turl: uri,\n\t\ttype: \"GET\",\n\t\theaders: headers,\n\t\tdata: {\n\t\t\tref: branch\n\t\t},\n\t\tcallback: function(err,getResponseDataJson,xhr) {\n\t\t\tvar getResponseData,sha = \"\";\n\t\t\tif(err && xhr.status !== 404) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tif(xhr.status !== 404) {\n\t\t\t\tgetResponseData = JSON.parse(getResponseDataJson);\n\t\t\t\t$tw.utils.each(getResponseData,function(details) {\n\t\t\t\t\tif(details.name === filename) {\n\t\t\t\t\t\tsha = details.sha;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\tvar data = {\n\t\t\t\tmessage: $tw.language.getRawString(\"ControlPanel/Saving/GitService/CommitMessage\"),\n\t\t\t\tcontent: $tw.utils.base64Encode(text),\n\t\t\t\tbranch: branch,\n\t\t\t\tsha: sha\n\t\t\t};\n\t\t\t// Perform a PUT request to save the file\n\t\t\t$tw.utils.httpRequest({\n\t\t\t\turl: uri + filename,\n\t\t\t\ttype: \"PUT\",\n\t\t\t\theaders: headers,\n\t\t\t\tdata: JSON.stringify(data),\n\t\t\t\tcallback: function(err,putResponseDataJson,xhr) {\n\t\t\t\t\tif(err) {\n\t\t\t\t\t\treturn callback(err);\n\t\t\t\t\t}\n\t\t\t\t\tvar putResponseData = JSON.parse(putResponseDataJson);\n\t\t\t\t\tcallback(null);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nGitHubSaver.prototype.info = {\n\tname: \"github\",\n\tpriority: 2000,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new GitHubSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/gitlab.js": {
"title": "$:/core/modules/savers/gitlab.js",
"text": "/*\\\ntitle: $:/core/modules/savers/gitlab.js\ntype: application/javascript\nmodule-type: saver\n\nSaves wiki by pushing a commit to the GitLab REST API\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: true */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar GitLabSaver = function(wiki) {\n\tthis.wiki = wiki;\n};\n\nGitLabSaver.prototype.save = function(text,method,callback) {\n\t/* See https://docs.gitlab.com/ee/api/repository_files.html */\n\tvar self = this,\n\t\tusername = this.wiki.getTiddlerText(\"$:/GitLab/Username\"),\n\t\tpassword = $tw.utils.getPassword(\"gitlab\"),\n\t\trepo = this.wiki.getTiddlerText(\"$:/GitLab/Repo\"),\n\t\tpath = this.wiki.getTiddlerText(\"$:/GitLab/Path\",\"\"),\n\t\tfilename = this.wiki.getTiddlerText(\"$:/GitLab/Filename\"),\n\t\tbranch = this.wiki.getTiddlerText(\"$:/GitLab/Branch\") || \"master\",\n\t\tendpoint = this.wiki.getTiddlerText(\"$:/GitLab/ServerURL\") || \"https://gitlab.com/api/v4\",\n\t\theaders = {\n\t\t\t\"Content-Type\": \"application/json;charset=UTF-8\",\n\t\t\t\"Private-Token\": password\n\t\t};\n\t// Bail if we don't have everything we need\n\tif(!username || !password || !repo || !path || !filename) {\n\t\treturn false;\n\t}\n\t// Make sure the path start and ends with a slash\n\tif(path.substring(0,1) !== \"/\") {\n\t\tpath = \"/\" + path;\n\t}\n\tif(path.substring(path.length - 1) !== \"/\") {\n\t\tpath = path + \"/\";\n\t}\n\t// Compose the base URI\n\tvar uri = endpoint + \"/projects/\" + encodeURIComponent(repo) + \"/repository/\";\n\t// Perform a get request to get the details (inc shas) of files in the same path as our file\n\t$tw.utils.httpRequest({\n\t\turl: uri + \"tree/?path=\" + encodeURIComponent(path.replace(/^\\/+|\\/$/g, '')) + \"&branch=\" + encodeURIComponent(branch.replace(/^\\/+|\\/$/g, '')),\n\t\ttype: \"GET\",\n\t\theaders: headers,\n\t\tcallback: function(err,getResponseDataJson,xhr) {\n\t\t\tvar getResponseData,sha = \"\";\n\t\t\tif(err && xhr.status !== 404) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tvar requestType = \"POST\";\n\t\t\tif(xhr.status !== 404) {\n\t\t\t\tgetResponseData = JSON.parse(getResponseDataJson);\n\t\t\t\t$tw.utils.each(getResponseData,function(details) {\n\t\t\t\t\tif(details.name === filename) {\n\t\t\t\t\t\trequestType = \"PUT\";\n\t\t\t\t\t\tsha = details.sha;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\tvar data = {\n\t\t\t\tcommit_message: $tw.language.getRawString(\"ControlPanel/Saving/GitService/CommitMessage\"),\n\t\t\t\tcontent: text,\n\t\t\t\tbranch: branch,\n\t\t\t\tsha: sha\n\t\t\t};\n\t\t\t// Perform a request to save the file\n\t\t\t$tw.utils.httpRequest({\n\t\t\t\turl: uri + \"files/\" + encodeURIComponent(path.replace(/^\\/+/, '') + filename),\n\t\t\t\ttype: requestType,\n\t\t\t\theaders: headers,\n\t\t\t\tdata: JSON.stringify(data),\n\t\t\t\tcallback: function(err,putResponseDataJson,xhr) {\n\t\t\t\t\tif(err) {\n\t\t\t\t\t\treturn callback(err);\n\t\t\t\t\t}\n\t\t\t\t\tvar putResponseData = JSON.parse(putResponseDataJson);\n\t\t\t\t\tcallback(null);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nGitLabSaver.prototype.info = {\n\tname: \"gitlab\",\n\tpriority: 2000,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new GitLabSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/manualdownload.js": {
"title": "$:/core/modules/savers/manualdownload.js",
"text": "/*\\\ntitle: $:/core/modules/savers/manualdownload.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via HTML5's download APIs\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Title of the tiddler containing the download message\nvar downloadInstructionsTitle = \"$:/language/Modals/Download\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar ManualDownloadSaver = function(wiki) {\n};\n\nManualDownloadSaver.prototype.save = function(text,method,callback) {\n\t$tw.modal.display(downloadInstructionsTitle,{\n\t\tdownloadLink: \"data:text/html,\" + encodeURIComponent(text)\n\t});\n\t// Callback that we succeeded\n\tcallback(null);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nManualDownloadSaver.prototype.info = {\n\tname: \"manualdownload\",\n\tpriority: 0,\n\tcapabilities: [\"save\", \"download\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new ManualDownloadSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/msdownload.js": {
"title": "$:/core/modules/savers/msdownload.js",
"text": "/*\\\ntitle: $:/core/modules/savers/msdownload.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via window.navigator.msSaveBlob()\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar MsDownloadSaver = function(wiki) {\n};\n\nMsDownloadSaver.prototype.save = function(text,method,callback) {\n\t// Get the current filename\n\tvar filename = \"tiddlywiki.html\",\n\t\tp = document.location.pathname.lastIndexOf(\"/\");\n\tif(p !== -1) {\n\t\tfilename = document.location.pathname.substr(p+1);\n\t}\n\t// Set up the link\n\tvar blob = new Blob([text], {type: \"text/html\"});\n\twindow.navigator.msSaveBlob(blob,filename);\n\t// Callback that we succeeded\n\tcallback(null);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nMsDownloadSaver.prototype.info = {\n\tname: \"msdownload\",\n\tpriority: 110,\n\tcapabilities: [\"save\", \"download\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn !!window.navigator.msSaveBlob;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new MsDownloadSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/put.js": {
"title": "$:/core/modules/savers/put.js",
"text": "/*\\\ntitle: $:/core/modules/savers/put.js\ntype: application/javascript\nmodule-type: saver\n\nSaves wiki by performing a PUT request to the server\n\nWorks with any server which accepts a PUT request\nto the current URL, such as a WebDAV server.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nRetrieve ETag if available\n*/\nvar retrieveETag = function(self) {\n\tvar headers = {\n\t\tAccept: \"*/*;charset=UTF-8\"\n\t};\n\t$tw.utils.httpRequest({\n\t\turl: self.uri(),\n\t\ttype: \"HEAD\",\n\t\theaders: headers,\n\t\tcallback: function(err,data,xhr) {\n\t\t\tif(err) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar etag = xhr.getResponseHeader(\"ETag\");\n\t\t\tif(!etag) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tself.etag = etag.replace(/^W\\//,\"\");\n\t\t}\n\t});\n};\n\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar PutSaver = function(wiki) {\n\tthis.wiki = wiki;\n\tvar self = this;\n\tvar uri = this.uri();\n\t// Async server probe. Until probe finishes, save will fail fast\n\t// See also https://github.com/Jermolene/TiddlyWiki5/issues/2276\n\t$tw.utils.httpRequest({\n\t\turl: uri,\n\t\ttype: \"OPTIONS\",\n\t\tcallback: function(err,data,xhr) {\n\t\t\t// Check DAV header http://www.webdav.org/specs/rfc2518.html#rfc.section.9.1\n\t\t\tif(!err) {\n\t\t\t\tself.serverAcceptsPuts = xhr.status === 200 && !!xhr.getResponseHeader(\"dav\");\n\t\t\t}\n\t\t}\n\t});\n\tretrieveETag(this);\n};\n\nPutSaver.prototype.uri = function() {\n\treturn document.location.toString().split(\"#\")[0];\n};\n\n// TODO: in case of edit conflict\n// Prompt: Do you want to save over this? Y/N\n// Merging would be ideal, and may be possible using future generic merge flow\nPutSaver.prototype.save = function(text,method,callback) {\n\tif(!this.serverAcceptsPuts) {\n\t\treturn false;\n\t}\n\tvar self = this;\n\tvar headers = {\n\t\t\"Content-Type\": \"text/html;charset=UTF-8\"\n\t};\n\tif(this.etag) {\n\t\theaders[\"If-Match\"] = this.etag;\n\t}\n\t$tw.utils.httpRequest({\n\t\turl: this.uri(),\n\t\ttype: \"PUT\",\n\t\theaders: headers,\n\t\tdata: text,\n\t\tcallback: function(err,data,xhr) {\n\t\t\tif(err) {\n\t\t\t\t// response is textual: \"XMLHttpRequest error code: 412\"\n\t\t\t\tvar status = Number(err.substring(err.indexOf(':') + 2, err.length))\n\t\t\t\tif(status === 412) { // edit conflict\n\t\t\t\t\tvar message = $tw.language.getString(\"Error/EditConflict\");\n\t\t\t\t\tcallback(message);\n\t\t\t\t} else {\n\t\t\t\t\tcallback(err); // fail\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tself.etag = xhr.getResponseHeader(\"ETag\");\n\t\t\t\tif(self.etag == null) {\n\t\t\t\t\tretrieveETag(self);\n\t\t\t\t}\n\t\t\t\tcallback(null); // success\n\t\t\t}\n\t\t}\n\t});\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nPutSaver.prototype.info = {\n\tname: \"put\",\n\tpriority: 2000,\n\tcapabilities: [\"save\",\"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn /^https?:/.test(location.protocol);\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new PutSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/tiddlyfox.js": {
"title": "$:/core/modules/savers/tiddlyfox.js",
"text": "/*\\\ntitle: $:/core/modules/savers/tiddlyfox.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via the TiddlyFox file extension\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false, netscape: false, Components: false */\n\"use strict\";\n\nvar TiddlyFoxSaver = function(wiki) {\n};\n\nTiddlyFoxSaver.prototype.save = function(text,method,callback) {\n\tvar messageBox = document.getElementById(\"tiddlyfox-message-box\");\n\tif(messageBox) {\n\t\t// Get the pathname of this document\n\t\tvar pathname = document.location.toString().split(\"#\")[0];\n\t\t// Replace file://localhost/ with file:///\n\t\tif(pathname.indexOf(\"file://localhost/\") === 0) {\n\t\t\tpathname = \"file://\" + pathname.substr(16);\n\t\t}\n\t\t// Windows path file:///x:/blah/blah --> x:\\blah\\blah\n\t\tif(/^file\\:\\/\\/\\/[A-Z]\\:\\//i.test(pathname)) {\n\t\t\t// Remove the leading slash and convert slashes to backslashes\n\t\t\tpathname = pathname.substr(8).replace(/\\//g,\"\\\\\");\n\t\t// Firefox Windows network path file://///server/share/blah/blah --> //server/share/blah/blah\n\t\t} else if(pathname.indexOf(\"file://///\") === 0) {\n\t\t\tpathname = \"\\\\\\\\\" + unescape(pathname.substr(10)).replace(/\\//g,\"\\\\\");\n\t\t// Mac/Unix local path file:///path/path --> /path/path\n\t\t} else if(pathname.indexOf(\"file:///\") === 0) {\n\t\t\tpathname = unescape(pathname.substr(7));\n\t\t// Mac/Unix local path file:/path/path --> /path/path\n\t\t} else if(pathname.indexOf(\"file:/\") === 0) {\n\t\t\tpathname = unescape(pathname.substr(5));\n\t\t// Otherwise Windows networth path file://server/share/path/path --> \\\\server\\share\\path\\path\n\t\t} else {\n\t\t\tpathname = \"\\\\\\\\\" + unescape(pathname.substr(7)).replace(new RegExp(\"/\",\"g\"),\"\\\\\");\n\t\t}\n\t\t// Create the message element and put it in the message box\n\t\tvar message = document.createElement(\"div\");\n\t\tmessage.setAttribute(\"data-tiddlyfox-path\",decodeURIComponent(pathname));\n\t\tmessage.setAttribute(\"data-tiddlyfox-content\",text);\n\t\tmessageBox.appendChild(message);\n\t\t// Add an event handler for when the file has been saved\n\t\tmessage.addEventListener(\"tiddlyfox-have-saved-file\",function(event) {\n\t\t\tcallback(null);\n\t\t}, false);\n\t\t// Create and dispatch the custom event to the extension\n\t\tvar event = document.createEvent(\"Events\");\n\t\tevent.initEvent(\"tiddlyfox-save-file\",true,false);\n\t\tmessage.dispatchEvent(event);\n\t\treturn true;\n\t} else {\n\t\treturn false;\n\t}\n};\n\n/*\nInformation about this saver\n*/\nTiddlyFoxSaver.prototype.info = {\n\tname: \"tiddlyfox\",\n\tpriority: 1500,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new TiddlyFoxSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/tiddlyie.js": {
"title": "$:/core/modules/savers/tiddlyie.js",
"text": "/*\\\ntitle: $:/core/modules/savers/tiddlyie.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via Internet Explorer BHO extenion (TiddlyIE)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar TiddlyIESaver = function(wiki) {\n};\n\nTiddlyIESaver.prototype.save = function(text,method,callback) {\n\t// Check existence of TiddlyIE BHO extension (note: only works after document is complete)\n\tif(typeof(window.TiddlyIE) != \"undefined\") {\n\t\t// Get the pathname of this document\n\t\tvar pathname = unescape(document.location.pathname);\n\t\t// Test for a Windows path of the form /x:/blah...\n\t\tif(/^\\/[A-Z]\\:\\/[^\\/]+/i.test(pathname)) {\t// ie: ^/[a-z]:/[^/]+ (is this better?: ^/[a-z]:/[^/]+(/[^/]+)*\\.[^/]+ )\n\t\t\t// Remove the leading slash\n\t\t\tpathname = pathname.substr(1);\n\t\t\t// Convert slashes to backslashes\n\t\t\tpathname = pathname.replace(/\\//g,\"\\\\\");\n\t\t} else if(document.hostname !== \"\" && /^\\/[^\\/]+\\/[^\\/]+/i.test(pathname)) {\t// test for \\\\server\\share\\blah... - ^/[^/]+/[^/]+\n\t\t\t// Convert slashes to backslashes\n\t\t\tpathname = pathname.replace(/\\//g,\"\\\\\");\n\t\t\t// reconstruct UNC path\n\t\t\tpathname = \"\\\\\\\\\" + document.location.hostname + pathname;\n\t\t} else return false;\n\t\t// Prompt the user to save the file\n\t\twindow.TiddlyIE.save(pathname, text);\n\t\t// Callback that we succeeded\n\t\tcallback(null);\n\t\treturn true;\n\t} else {\n\t\treturn false;\n\t}\n};\n\n/*\nInformation about this saver\n*/\nTiddlyIESaver.prototype.info = {\n\tname: \"tiddlyiesaver\",\n\tpriority: 1500,\n\tcapabilities: [\"save\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn (window.location.protocol === \"file:\");\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new TiddlyIESaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/twedit.js": {
"title": "$:/core/modules/savers/twedit.js",
"text": "/*\\\ntitle: $:/core/modules/savers/twedit.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via the TWEdit iOS app\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false, netscape: false, Components: false */\n\"use strict\";\n\nvar TWEditSaver = function(wiki) {\n};\n\nTWEditSaver.prototype.save = function(text,method,callback) {\n\t// Bail if we're not running under TWEdit\n\tif(typeof DeviceInfo !== \"object\") {\n\t\treturn false;\n\t}\n\t// Get the pathname of this document\n\tvar pathname = decodeURIComponent(document.location.pathname);\n\t// Strip any query or location part\n\tvar p = pathname.indexOf(\"?\");\n\tif(p !== -1) {\n\t\tpathname = pathname.substr(0,p);\n\t}\n\tp = pathname.indexOf(\"#\");\n\tif(p !== -1) {\n\t\tpathname = pathname.substr(0,p);\n\t}\n\t// Remove the leading \"/Documents\" from path\n\tvar prefix = \"/Documents\";\n\tif(pathname.indexOf(prefix) === 0) {\n\t\tpathname = pathname.substr(prefix.length);\n\t}\n\t// Error handler\n\tvar errorHandler = function(event) {\n\t\t// Error\n\t\tcallback($tw.language.getString(\"Error/SavingToTWEdit\") + \": \" + event.target.error.code);\n\t};\n\t// Get the file system\n\twindow.requestFileSystem(LocalFileSystem.PERSISTENT,0,function(fileSystem) {\n\t\t// Now we've got the filesystem, get the fileEntry\n\t\tfileSystem.root.getFile(pathname, {create: true}, function(fileEntry) {\n\t\t\t// Now we've got the fileEntry, create the writer\n\t\t\tfileEntry.createWriter(function(writer) {\n\t\t\t\twriter.onerror = errorHandler;\n\t\t\t\twriter.onwrite = function() {\n\t\t\t\t\tcallback(null);\n\t\t\t\t};\n\t\t\t\twriter.position = 0;\n\t\t\t\twriter.write(text);\n\t\t\t},errorHandler);\n\t\t}, errorHandler);\n\t}, errorHandler);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nTWEditSaver.prototype.info = {\n\tname: \"twedit\",\n\tpriority: 1600,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new TWEditSaver(wiki);\n};\n\n/////////////////////////// Hack\n// HACK: This ensures that TWEdit recognises us as a TiddlyWiki document\nif($tw.browser) {\n\twindow.version = {title: \"TiddlyWiki\"};\n}\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/upload.js": {
"title": "$:/core/modules/savers/upload.js",
"text": "/*\\\ntitle: $:/core/modules/savers/upload.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via upload to a server.\n\nDesigned to be compatible with BidiX's UploadPlugin at http://tiddlywiki.bidix.info/#UploadPlugin\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar UploadSaver = function(wiki) {\n\tthis.wiki = wiki;\n};\n\nUploadSaver.prototype.save = function(text,method,callback) {\n\t// Get the various parameters we need\n\tvar backupDir = this.wiki.getTextReference(\"$:/UploadBackupDir\") || \".\",\n\t\tusername = this.wiki.getTextReference(\"$:/UploadName\"),\n\t\tpassword = $tw.utils.getPassword(\"upload\"),\n\t\tuploadDir = this.wiki.getTextReference(\"$:/UploadDir\") || \".\",\n\t\tuploadFilename = this.wiki.getTextReference(\"$:/UploadFilename\") || \"index.html\",\n\t\turl = this.wiki.getTextReference(\"$:/UploadURL\");\n\t// Bail out if we don't have the bits we need\n\tif(!username || username.toString().trim() === \"\" || !password || password.toString().trim() === \"\") {\n\t\treturn false;\n\t}\n\t// Construct the url if not provided\n\tif(!url) {\n\t\turl = \"http://\" + username + \".tiddlyspot.com/store.cgi\";\n\t}\n\t// Assemble the header\n\tvar boundary = \"---------------------------\" + \"AaB03x\";\t\n\tvar uploadFormName = \"UploadPlugin\";\n\tvar head = [];\n\thead.push(\"--\" + boundary + \"\\r\\nContent-disposition: form-data; name=\\\"UploadPlugin\\\"\\r\\n\");\n\thead.push(\"backupDir=\" + backupDir + \";user=\" + username + \";password=\" + password + \";uploaddir=\" + uploadDir + \";;\"); \n\thead.push(\"\\r\\n\" + \"--\" + boundary);\n\thead.push(\"Content-disposition: form-data; name=\\\"userfile\\\"; filename=\\\"\" + uploadFilename + \"\\\"\");\n\thead.push(\"Content-Type: text/html;charset=UTF-8\");\n\thead.push(\"Content-Length: \" + text.length + \"\\r\\n\");\n\thead.push(\"\");\n\t// Assemble the tail and the data itself\n\tvar tail = \"\\r\\n--\" + boundary + \"--\\r\\n\",\n\t\tdata = head.join(\"\\r\\n\") + text + tail;\n\t// Do the HTTP post\n\tvar http = new XMLHttpRequest();\n\thttp.open(\"POST\",url,true,username,password);\n\thttp.setRequestHeader(\"Content-Type\",\"multipart/form-data; charset=UTF-8; boundary=\" + boundary);\n\thttp.onreadystatechange = function() {\n\t\tif(http.readyState == 4 && http.status == 200) {\n\t\t\tif(http.responseText.substr(0,4) === \"0 - \") {\n\t\t\t\tcallback(null);\n\t\t\t} else {\n\t\t\t\tcallback(http.responseText);\n\t\t\t}\n\t\t}\n\t};\n\ttry {\n\t\thttp.send(data);\n\t} catch(ex) {\n\t\treturn callback($tw.language.getString(\"Error/Caption\") + \":\" + ex);\n\t}\n\t$tw.notifier.display(\"$:/language/Notifications/Save/Starting\");\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nUploadSaver.prototype.info = {\n\tname: \"upload\",\n\tpriority: 2000,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new UploadSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/server/authenticators/basic.js": {
"title": "$:/core/modules/server/authenticators/basic.js",
"text": "/*\\\ntitle: $:/core/modules/server/authenticators/basic.js\ntype: application/javascript\nmodule-type: authenticator\n\nAuthenticator for WWW basic authentication\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nif($tw.node) {\n\tvar util = require(\"util\"),\n\t\tfs = require(\"fs\"),\n\t\turl = require(\"url\"),\n\t\tpath = require(\"path\");\n}\n\nfunction BasicAuthenticator(server) {\n\tthis.server = server;\n\tthis.credentialsData = [];\n}\n\n/*\nReturns true if the authenticator is active, false if it is inactive, or a string if there is an error\n*/\nBasicAuthenticator.prototype.init = function() {\n\t// Read the credentials data\n\tthis.credentialsFilepath = this.server.get(\"credentials\");\n\tif(this.credentialsFilepath) {\n\t\tvar resolveCredentialsFilepath = path.resolve($tw.boot.wikiPath,this.credentialsFilepath);\n\t\tif(fs.existsSync(resolveCredentialsFilepath) && !fs.statSync(resolveCredentialsFilepath).isDirectory()) {\n\t\t\tvar credentialsText = fs.readFileSync(resolveCredentialsFilepath,\"utf8\"),\n\t\t\t\tcredentialsData = $tw.utils.parseCsvStringWithHeader(credentialsText);\n\t\t\tif(typeof credentialsData === \"string\") {\n\t\t\t\treturn \"Error: \" + credentialsData + \" reading credentials from '\" + resolveCredentialsFilepath + \"'\";\n\t\t\t} else {\n\t\t\t\tthis.credentialsData = credentialsData;\n\t\t\t}\n\t\t} else {\n\t\t\treturn \"Error: Unable to load user credentials from '\" + resolveCredentialsFilepath + \"'\";\n\t\t}\n\t}\n\t// Add the hardcoded username and password if specified\n\tif(this.server.get(\"username\") && this.server.get(\"password\")) {\n\t\tthis.credentialsData = this.credentialsData || [];\n\t\tthis.credentialsData.push({\n\t\t\tusername: this.server.get(\"username\"),\n\t\t\tpassword: this.server.get(\"password\")\n\t\t});\n\t}\n\treturn this.credentialsData.length > 0;\n};\n\n/*\nReturns true if the request is authenticated and assigns the \"authenticatedUsername\" state variable.\nReturns false if the request couldn't be authenticated having sent an appropriate response to the browser\n*/\nBasicAuthenticator.prototype.authenticateRequest = function(request,response,state) {\n\t// Extract the incoming username and password from the request\n\tvar header = request.headers.authorization || \"\";\n\tif(!header && state.allowAnon) {\n\t\t// If there's no header and anonymous access is allowed then we don't set authenticatedUsername\n\t\treturn true;\n\t}\n\tvar token = header.split(/\\s+/).pop() || \"\",\n\t\tauth = $tw.utils.base64Decode(token),\n\t\tparts = auth.split(/:/),\n\t\tincomingUsername = parts[0],\n\t\tincomingPassword = parts[1];\n\t// Check that at least one of the credentials matches\n\tvar matchingCredentials = this.credentialsData.find(function(credential) {\n\t\treturn credential.username === incomingUsername && credential.password === incomingPassword;\n\t});\n\tif(matchingCredentials) {\n\t\t// If so, add the authenticated username to the request state\n\t\tstate.authenticatedUsername = incomingUsername;\n\t\treturn true;\n\t} else {\n\t\t// If not, return an authentication challenge\n\t\tresponse.writeHead(401,\"Authentication required\",{\n\t\t\t\"WWW-Authenticate\": 'Basic realm=\"Please provide your username and password to login to ' + state.server.servername + '\"'\n\t\t});\n\t\tresponse.end();\n\t\treturn false;\n\t}\n};\n\nexports.AuthenticatorClass = BasicAuthenticator;\n\n})();\n",
"type": "application/javascript",
"module-type": "authenticator"
},
"$:/core/modules/server/authenticators/header.js": {
"title": "$:/core/modules/server/authenticators/header.js",
"text": "/*\\\ntitle: $:/core/modules/server/authenticators/header.js\ntype: application/javascript\nmodule-type: authenticator\n\nAuthenticator for trusted header authentication\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nfunction HeaderAuthenticator(server) {\n\tthis.server = server;\n\tthis.header = server.get(\"authenticated-user-header\");\n}\n\n/*\nReturns true if the authenticator is active, false if it is inactive, or a string if there is an error\n*/\nHeaderAuthenticator.prototype.init = function() {\n\treturn !!this.header;\n};\n\n/*\nReturns true if the request is authenticated and assigns the \"authenticatedUsername\" state variable.\nReturns false if the request couldn't be authenticated having sent an appropriate response to the browser\n*/\nHeaderAuthenticator.prototype.authenticateRequest = function(request,response,state) {\n\t// Otherwise, authenticate as the username in the specified header\n\tvar username = request.headers[this.header];\n\tif(!username && !state.allowAnon) {\n\t\tresponse.writeHead(401,\"Authorization header required to login to '\" + state.server.servername + \"'\");\n\t\tresponse.end();\n\t\treturn false;\n\t} else {\n\t\t// authenticatedUsername will be undefined for anonymous users\n\t\tstate.authenticatedUsername = username;\n\t\treturn true;\n\t}\n};\n\nexports.AuthenticatorClass = HeaderAuthenticator;\n\n})();\n",
"type": "application/javascript",
"module-type": "authenticator"
},
"$:/core/modules/server/routes/delete-tiddler.js": {
"title": "$:/core/modules/server/routes/delete-tiddler.js",
"text": "/*\\\ntitle: $:/core/modules/server/routes/delete-tiddler.js\ntype: application/javascript\nmodule-type: route\n\nDELETE /recipes/default/tiddlers/:title\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"DELETE\";\n\nexports.path = /^\\/bags\\/default\\/tiddlers\\/(.+)$/;\n\nexports.handler = function(request,response,state) {\n\tvar title = decodeURIComponent(state.params[0]);\n\tstate.wiki.deleteTiddler(title);\n\tresponse.writeHead(204, \"OK\", {\n\t\t\"Content-Type\": \"text/plain\"\n\t});\n\tresponse.end();\n};\n\n}());\n",
"type": "application/javascript",
"module-type": "route"
},
"$:/core/modules/server/routes/get-favicon.js": {
"title": "$:/core/modules/server/routes/get-favicon.js",
"text": "/*\\\ntitle: $:/core/modules/server/routes/get-favicon.js\ntype: application/javascript\nmodule-type: route\n\nGET /favicon.ico\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"GET\";\n\nexports.path = /^\\/favicon.ico$/;\n\nexports.handler = function(request,response,state) {\n\tresponse.writeHead(200, {\"Content-Type\": \"image/x-icon\"});\n\tvar buffer = state.wiki.getTiddlerText(\"$:/favicon.ico\",\"\");\n\tresponse.end(buffer,\"base64\");\n};\n\n}());\n",
"type": "application/javascript",
"module-type": "route"
},
"$:/core/modules/server/routes/get-file.js": {
"title": "$:/core/modules/server/routes/get-file.js",
"text": "/*\\\ntitle: $:/core/modules/server/routes/get-file.js\ntype: application/javascript\nmodule-type: route\n\nGET /files/:filepath\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"GET\";\n\nexports.path = /^\\/files\\/(.+)$/;\n\nexports.handler = function(request,response,state) {\n\tvar path = require(\"path\"),\n\t\tfs = require(\"fs\"),\n\t\tutil = require(\"util\"),\n\t\tsuppliedFilename = decodeURIComponent(state.params[0]),\n\t\tfilename = path.resolve($tw.boot.wikiPath,\"files\",suppliedFilename),\n\t\textension = path.extname(filename);\n\tfs.readFile(filename,function(err,content) {\n\t\tvar status,content,type = \"text/plain\";\n\t\tif(err) {\n\t\t\tconsole.log(\"Error accessing file \" + filename + \": \" + err.toString());\n\t\t\tstatus = 404;\n\t\t\tcontent = \"File '\" + suppliedFilename + \"' not found\";\n\t\t} else {\n\t\t\tstatus = 200;\n\t\t\tcontent = content;\n\t\t\ttype = ($tw.config.fileExtensionInfo[extension] ? $tw.config.fileExtensionInfo[extension].type : \"application/octet-stream\");\n\t\t}\n\t\tresponse.writeHead(status,{\n\t\t\t\"Content-Type\": type\n\t\t});\n\t\tresponse.end(content);\n\t});\n};\n\n}());\n",
"type": "application/javascript",
"module-type": "route"
},
"$:/core/modules/server/routes/get-index.js": {
"title": "$:/core/modules/server/routes/get-index.js",
"text": "/*\\\ntitle: $:/core/modules/server/routes/get-index.js\ntype: application/javascript\nmodule-type: route\n\nGET /\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar zlib = require(\"zlib\");\n\nexports.method = \"GET\";\n\nexports.path = /^\\/$/;\n\nexports.handler = function(request,response,state) {\n\tvar acceptEncoding = request.headers[\"accept-encoding\"];\n\tif(!acceptEncoding) {\n\t\tacceptEncoding = \"\";\n\t}\n\tvar text = state.wiki.renderTiddler(state.server.get(\"root-render-type\"),state.server.get(\"root-tiddler\")),\n\t\tresponseHeaders = {\n\t\t\"Content-Type\": state.server.get(\"root-serve-type\")\n\t};\n\t/*\n\tIf the gzip=yes flag for `listen` is set, check if the user agent permits\n\tcompression. If so, compress our response. Note that we use the synchronous\n\tfunctions from zlib to stay in the imperative style. The current `Server`\n\tdoesn't depend on this, and we may just as well use the async versions.\n\t*/\n\tif(state.server.enableGzip) {\n\t\tif (/\\bdeflate\\b/.test(acceptEncoding)) {\n\t\t\tresponseHeaders[\"Content-Encoding\"] = \"deflate\";\n\t\t\ttext = zlib.deflateSync(text);\n\t\t} else if (/\\bgzip\\b/.test(acceptEncoding)) {\n\t\t\tresponseHeaders[\"Content-Encoding\"] = \"gzip\";\n\t\t\ttext = zlib.gzipSync(text);\n\t\t}\n\t}\n\tresponse.writeHead(200,responseHeaders);\n\tresponse.end(text);\n};\n\n}());\n",
"type": "application/javascript",
"module-type": "route"
},
"$:/core/modules/server/routes/get-login-basic.js": {
"title": "$:/core/modules/server/routes/get-login-basic.js",
"text": "/*\\\ntitle: $:/core/modules/server/routes/get-login-basic.js\ntype: application/javascript\nmodule-type: route\n\nGET /login-basic -- force a Basic Authentication challenge\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"GET\";\n\nexports.path = /^\\/login-basic$/;\n\nexports.handler = function(request,response,state) {\n\tif(!state.authenticatedUsername) {\n\t\t// Challenge if there's no username\n\t\tresponse.writeHead(401,{\n\t\t\t\"WWW-Authenticate\": 'Basic realm=\"Please provide your username and password to login to ' + state.server.servername + '\"'\n\t\t});\n\t\tresponse.end();\t\t\n\t} else {\n\t\t// Redirect to the root wiki if login worked\n\t\tresponse.writeHead(302,{\n\t\t\tLocation: \"/\"\n\t\t});\n\t\tresponse.end();\n\t}\n};\n\n}());\n",
"type": "application/javascript",
"module-type": "route"
},
"$:/core/modules/server/routes/get-status.js": {
"title": "$:/core/modules/server/routes/get-status.js",
"text": "/*\\\ntitle: $:/core/modules/server/routes/get-status.js\ntype: application/javascript\nmodule-type: route\n\nGET /status\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"GET\";\n\nexports.path = /^\\/status$/;\n\nexports.handler = function(request,response,state) {\n\tresponse.writeHead(200, {\"Content-Type\": \"application/json\"});\n\tvar text = JSON.stringify({\n\t\tusername: state.authenticatedUsername || state.server.get(\"anon-username\") || \"\",\n\t\tanonymous: !state.authenticatedUsername,\n\t\tread_only: !state.server.isAuthorized(\"writers\",state.authenticatedUsername),\n\t\tspace: {\n\t\t\trecipe: \"default\"\n\t\t},\n\t\ttiddlywiki_version: $tw.version\n\t});\n\tresponse.end(text,\"utf8\");\n};\n\n}());\n",
"type": "application/javascript",
"module-type": "route"
},
"$:/core/modules/server/routes/get-tiddler-html.js": {
"title": "$:/core/modules/server/routes/get-tiddler-html.js",
"text": "/*\\\ntitle: $:/core/modules/server/routes/get-tiddler-html.js\ntype: application/javascript\nmodule-type: route\n\nGET /:title\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"GET\";\n\nexports.path = /^\\/([^\\/]+)$/;\n\nexports.handler = function(request,response,state) {\n\tvar title = decodeURIComponent(state.params[0]),\n\t\ttiddler = state.wiki.getTiddler(title);\n\tif(tiddler) {\n\t\tvar renderType = tiddler.getFieldString(\"_render_type\"),\n\t\t\trenderTemplate = tiddler.getFieldString(\"_render_template\");\n\t\t// Tiddler fields '_render_type' and '_render_template' overwrite\n\t\t// system wide settings for render type and template\n\t\tif(state.wiki.isSystemTiddler(title)) {\n\t\t\trenderType = renderType || state.server.get(\"system-tiddler-render-type\");\n\t\t\trenderTemplate = renderTemplate || state.server.get(\"system-tiddler-render-template\");\n\t\t} else {\n\t\t\trenderType = renderType || state.server.get(\"tiddler-render-type\");\n\t\t\trenderTemplate = renderTemplate || state.server.get(\"tiddler-render-template\");\n\t\t}\n\t\tvar text = state.wiki.renderTiddler(renderType,renderTemplate,{parseAsInline: true, variables: {currentTiddler: title}});\n\t\t// Naughty not to set a content-type, but it's the easiest way to ensure the browser will see HTML pages as HTML, and accept plain text tiddlers as CSS or JS\n\t\tresponse.writeHead(200);\n\t\tresponse.end(text,\"utf8\");\n\t} else {\n\t\tresponse.writeHead(404);\n\t\tresponse.end();\n\t}\n};\n\n}());\n",
"type": "application/javascript",
"module-type": "route"
},
"$:/core/modules/server/routes/get-tiddler.js": {
"title": "$:/core/modules/server/routes/get-tiddler.js",
"text": "/*\\\ntitle: $:/core/modules/server/routes/get-tiddler.js\ntype: application/javascript\nmodule-type: route\n\nGET /recipes/default/tiddlers/:title\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"GET\";\n\nexports.path = /^\\/recipes\\/default\\/tiddlers\\/(.+)$/;\n\nexports.handler = function(request,response,state) {\n\tvar title = decodeURIComponent(state.params[0]),\n\t\ttiddler = state.wiki.getTiddler(title),\n\t\ttiddlerFields = {},\n\t\tknownFields = [\n\t\t\t\"bag\", \"created\", \"creator\", \"modified\", \"modifier\", \"permissions\", \"recipe\", \"revision\", \"tags\", \"text\", \"title\", \"type\", \"uri\"\n\t\t];\n\tif(tiddler) {\n\t\t$tw.utils.each(tiddler.fields,function(field,name) {\n\t\t\tvar value = tiddler.getFieldString(name);\n\t\t\tif(knownFields.indexOf(name) !== -1) {\n\t\t\t\ttiddlerFields[name] = value;\n\t\t\t} else {\n\t\t\t\ttiddlerFields.fields = tiddlerFields.fields || {};\n\t\t\t\ttiddlerFields.fields[name] = value;\n\t\t\t}\n\t\t});\n\t\ttiddlerFields.revision = state.wiki.getChangeCount(title);\n\t\ttiddlerFields.bag = \"default\";\n\t\ttiddlerFields.type = tiddlerFields.type || \"text/vnd.tiddlywiki\";\n\t\tresponse.writeHead(200, {\"Content-Type\": \"application/json\"});\n\t\tresponse.end(JSON.stringify(tiddlerFields),\"utf8\");\n\t} else {\n\t\tresponse.writeHead(404);\n\t\tresponse.end();\n\t}\n};\n\n}());\n",
"type": "application/javascript",
"module-type": "route"
},
"$:/core/modules/server/routes/get-tiddlers-json.js": {
"title": "$:/core/modules/server/routes/get-tiddlers-json.js",
"text": "/*\\\ntitle: $:/core/modules/server/routes/get-tiddlers-json.js\ntype: application/javascript\nmodule-type: route\n\nGET /recipes/default/tiddlers/tiddlers.json?filter=<filter>\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar DEFAULT_FILTER = \"[all[tiddlers]!is[system]sort[title]]\";\n\nexports.method = \"GET\";\n\nexports.path = /^\\/recipes\\/default\\/tiddlers.json$/;\n\nexports.handler = function(request,response,state) {\n\tvar filter = state.queryParameters.filter || DEFAULT_FILTER;\n\tif($tw.wiki.getTiddlerText(\"$:/config/Server/AllowAllExternalFilters\") !== \"yes\") {\n\t\tif($tw.wiki.getTiddlerText(\"$:/config/Server/ExternalFilters/\" + filter) !== \"yes\") {\n\t\t\tconsole.log(\"Blocked attempt to GET /recipes/default/tiddlers/tiddlers.json with filter: \" + filter);\n\t\t\tresponse.writeHead(403);\n\t\t\tresponse.end();\n\t\t\treturn;\n\t\t}\n\t}\n\tvar excludeFields = (state.queryParameters.exclude || \"text\").split(\",\"),\n\t\ttitles = state.wiki.filterTiddlers(filter);\n\tresponse.writeHead(200, {\"Content-Type\": \"application/json\"});\n\tvar tiddlers = [];\n\t$tw.utils.each(titles,function(title) {\n\t\tvar tiddler = state.wiki.getTiddler(title);\n\t\tif(tiddler) {\n\t\t\tvar tiddlerFields = tiddler.getFieldStrings({exclude: excludeFields});\n\t\t\ttiddlerFields.revision = state.wiki.getChangeCount(title);\n\t\t\ttiddlerFields.type = tiddlerFields.type || \"text/vnd.tiddlywiki\";\n\t\t\ttiddlers.push(tiddlerFields);\n\t\t}\n\t});\n\tvar text = JSON.stringify(tiddlers);\n\tresponse.end(text,\"utf8\");\n};\n\n}());\n",
"type": "application/javascript",
"module-type": "route"
},
"$:/core/modules/server/routes/put-tiddler.js": {
"title": "$:/core/modules/server/routes/put-tiddler.js",
"text": "/*\\\ntitle: $:/core/modules/server/routes/put-tiddler.js\ntype: application/javascript\nmodule-type: route\n\nPUT /recipes/default/tiddlers/:title\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"PUT\";\n\nexports.path = /^\\/recipes\\/default\\/tiddlers\\/(.+)$/;\n\nexports.handler = function(request,response,state) {\n\tvar title = decodeURIComponent(state.params[0]),\n\tfields = JSON.parse(state.data);\n\t// Pull up any subfields in the `fields` object\n\tif(fields.fields) {\n\t\t$tw.utils.each(fields.fields,function(field,name) {\n\t\t\tfields[name] = field;\n\t\t});\n\t\tdelete fields.fields;\n\t}\n\t// Remove any revision field\n\tif(fields.revision) {\n\t\tdelete fields.revision;\n\t}\n\tstate.wiki.addTiddler(new $tw.Tiddler(state.wiki.getCreationFields(),fields,{title: title},state.wiki.getModificationFields()));\n\tvar changeCount = state.wiki.getChangeCount(title).toString();\n\tresponse.writeHead(204, \"OK\",{\n\t\tEtag: \"\\\"default/\" + encodeURIComponent(title) + \"/\" + changeCount + \":\\\"\",\n\t\t\"Content-Type\": \"text/plain\"\n\t});\n\tresponse.end();\n};\n\n}());\n",
"type": "application/javascript",
"module-type": "route"
},
"$:/core/modules/server/server.js": {
"title": "$:/core/modules/server/server.js",
"text": "/*\\\ntitle: $:/core/modules/server/server.js\ntype: application/javascript\nmodule-type: library\n\nServe tiddlers over http\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nif($tw.node) {\n\tvar util = require(\"util\"),\n\t\tfs = require(\"fs\"),\n\t\turl = require(\"url\"),\n\t\tpath = require(\"path\"),\n\t\tquerystring = require(\"querystring\");\n}\n\n/*\nA simple HTTP server with regexp-based routes\noptions: variables - optional hashmap of variables to set (a misnomer - they are really constant parameters)\n\t\t routes - optional array of routes to use\n\t\t wiki - reference to wiki object\n*/\nfunction Server(options) {\n\tvar self = this;\n\tthis.routes = options.routes || [];\n\tthis.authenticators = options.authenticators || [];\n\tthis.wiki = options.wiki;\n\tthis.servername = $tw.utils.transliterateToSafeASCII(this.wiki.getTiddlerText(\"$:/SiteTitle\") || \"TiddlyWiki5\");\n\t// Initialise the variables\n\tthis.variables = $tw.utils.extend({},this.defaultVariables);\n\tif(options.variables) {\n\t\tfor(var variable in options.variables) {\n\t\t\tif(options.variables[variable]) {\n\t\t\t\tthis.variables[variable] = options.variables[variable];\n\t\t\t}\n\t\t}\t\t\n\t}\n\t$tw.utils.extend({},this.defaultVariables,options.variables);\n\t// Initialise CSRF\n\tthis.csrfDisable = this.get(\"csrf-disable\") === \"yes\";\n\t// Initialize Gzip compression\n\tthis.enableGzip = this.get(\"gzip\") === \"yes\";\n\t// Initialise authorization\n\tvar authorizedUserName = (this.get(\"username\") && this.get(\"password\")) ? this.get(\"username\") : \"(anon)\";\n\tthis.authorizationPrincipals = {\n\t\treaders: (this.get(\"readers\") || authorizedUserName).split(\",\").map($tw.utils.trim),\n\t\twriters: (this.get(\"writers\") || authorizedUserName).split(\",\").map($tw.utils.trim)\n\t}\n\t// Load and initialise authenticators\n\t$tw.modules.forEachModuleOfType(\"authenticator\", function(title,authenticatorDefinition) {\n\t\t// console.log(\"Loading server route \" + title);\n\t\tself.addAuthenticator(authenticatorDefinition.AuthenticatorClass);\n\t});\n\t// Load route handlers\n\t$tw.modules.forEachModuleOfType(\"route\", function(title,routeDefinition) {\n\t\t// console.log(\"Loading server route \" + title);\n\t\tself.addRoute(routeDefinition);\n\t});\n\t// Initialise the http vs https\n\tthis.listenOptions = null;\n\tthis.protocol = \"http\";\n\tvar tlsKeyFilepath = this.get(\"tls-key\"),\n\t\ttlsCertFilepath = this.get(\"tls-cert\");\n\tif(tlsCertFilepath && tlsKeyFilepath) {\n\t\tthis.listenOptions = {\n\t\t\tkey: fs.readFileSync(path.resolve($tw.boot.wikiPath,tlsKeyFilepath),\"utf8\"),\n\t\t\tcert: fs.readFileSync(path.resolve($tw.boot.wikiPath,tlsCertFilepath),\"utf8\")\n\t\t};\n\t\tthis.protocol = \"https\";\n\t}\n\tthis.transport = require(this.protocol);\n}\n\nServer.prototype.defaultVariables = {\n\tport: \"8080\",\n\thost: \"127.0.0.1\",\n\t\"root-tiddler\": \"$:/core/save/all\",\n\t\"root-render-type\": \"text/plain\",\n\t\"root-serve-type\": \"text/html\",\n\t\"tiddler-render-type\": \"text/html\",\n\t\"tiddler-render-template\": \"$:/core/templates/server/static.tiddler.html\",\n\t\"system-tiddler-render-type\": \"text/plain\",\n\t\"system-tiddler-render-template\": \"$:/core/templates/wikified-tiddler\",\n\t\"debug-level\": \"none\",\n\t\"gzip\": \"no\"\n};\n\nServer.prototype.get = function(name) {\n\treturn this.variables[name];\n};\n\nServer.prototype.addRoute = function(route) {\n\tthis.routes.push(route);\n};\n\nServer.prototype.addAuthenticator = function(AuthenticatorClass) {\n\t// Instantiate and initialise the authenticator\n\tvar authenticator = new AuthenticatorClass(this),\n\t\tresult = authenticator.init();\n\tif(typeof result === \"string\") {\n\t\t$tw.utils.error(\"Error: \" + result);\n\t} else if(result) {\n\t\t// Only use the authenticator if it initialised successfully\n\t\tthis.authenticators.push(authenticator);\n\t}\n};\n\nServer.prototype.findMatchingRoute = function(request,state) {\n\tvar pathprefix = this.get(\"path-prefix\") || \"\";\n\tfor(var t=0; t<this.routes.length; t++) {\n\t\tvar potentialRoute = this.routes[t],\n\t\t\tpathRegExp = potentialRoute.path,\n\t\t\tpathname = state.urlInfo.pathname,\n\t\t\tmatch;\n\t\tif(pathprefix) {\n\t\t\tif(pathname.substr(0,pathprefix.length) === pathprefix) {\n\t\t\t\tpathname = pathname.substr(pathprefix.length) || \"/\";\n\t\t\t\tmatch = potentialRoute.path.exec(pathname);\n\t\t\t} else {\n\t\t\t\tmatch = false;\n\t\t\t}\n\t\t} else {\n\t\t\tmatch = potentialRoute.path.exec(pathname);\n\t\t}\n\t\tif(match && request.method === potentialRoute.method) {\n\t\t\tstate.params = [];\n\t\t\tfor(var p=1; p<match.length; p++) {\n\t\t\t\tstate.params.push(match[p]);\n\t\t\t}\n\t\t\treturn potentialRoute;\n\t\t}\n\t}\n\treturn null;\n};\n\nServer.prototype.methodMappings = {\n\t\"GET\": \"readers\",\n\t\"OPTIONS\": \"readers\",\n\t\"HEAD\": \"readers\",\n\t\"PUT\": \"writers\",\n\t\"POST\": \"writers\",\n\t\"DELETE\": \"writers\"\n};\n\n/*\nCheck whether a given user is authorized for the specified authorizationType (\"readers\" or \"writers\"). Pass null or undefined as the username to check for anonymous access\n*/\nServer.prototype.isAuthorized = function(authorizationType,username) {\n\tvar principals = this.authorizationPrincipals[authorizationType] || [];\n\treturn principals.indexOf(\"(anon)\") !== -1 || (username && (principals.indexOf(\"(authenticated)\") !== -1 || principals.indexOf(username) !== -1));\n}\n\nServer.prototype.requestHandler = function(request,response) {\n\t// Compose the state object\n\tvar self = this;\n\tvar state = {};\n\tstate.wiki = self.wiki;\n\tstate.server = self;\n\tstate.urlInfo = url.parse(request.url);\n\tstate.queryParameters = querystring.parse(state.urlInfo.query);\n\t// Get the principals authorized to access this resource\n\tvar authorizationType = this.methodMappings[request.method] || \"readers\";\n\t// Check for the CSRF header if this is a write\n\tif(!this.csrfDisable && authorizationType === \"writers\" && request.headers[\"x-requested-with\"] !== \"TiddlyWiki\") {\n\t\tresponse.writeHead(403,\"'X-Requested-With' header required to login to '\" + this.servername + \"'\");\n\t\tresponse.end();\n\t\treturn;\t\t\n\t}\n\t// Check whether anonymous access is granted\n\tstate.allowAnon = this.isAuthorized(authorizationType,null);\n\t// Authenticate with the first active authenticator\n\tif(this.authenticators.length > 0) {\n\t\tif(!this.authenticators[0].authenticateRequest(request,response,state)) {\n\t\t\t// Bail if we failed (the authenticator will have sent the response)\n\t\t\treturn;\n\t\t}\t\t\n\t}\n\t// Authorize with the authenticated username\n\tif(!this.isAuthorized(authorizationType,state.authenticatedUsername)) {\n\t\tresponse.writeHead(401,\"'\" + state.authenticatedUsername + \"' is not authorized to access '\" + this.servername + \"'\");\n\t\tresponse.end();\n\t\treturn;\n\t}\n\t// Find the route that matches this path\n\tvar route = self.findMatchingRoute(request,state);\n\t// Optionally output debug info\n\tif(self.get(\"debug-level\") !== \"none\") {\n\t\tconsole.log(\"Request path:\",JSON.stringify(state.urlInfo));\n\t\tconsole.log(\"Request headers:\",JSON.stringify(request.headers));\n\t\tconsole.log(\"authenticatedUsername:\",state.authenticatedUsername);\n\t}\n\t// Return a 404 if we didn't find a route\n\tif(!route) {\n\t\tresponse.writeHead(404);\n\t\tresponse.end();\n\t\treturn;\n\t}\n\t// Receive the request body if necessary and hand off to the route handler\n\tif(route.bodyFormat === \"stream\" || request.method === \"GET\" || request.method === \"HEAD\") {\n\t\t// Let the route handle the request stream itself\n\t\troute.handler(request,response,state);\n\t} else if(route.bodyFormat === \"string\" || !route.bodyFormat) {\n\t\t// Set the encoding for the incoming request\n\t\trequest.setEncoding(\"utf8\");\n\t\tvar data = \"\";\n\t\trequest.on(\"data\",function(chunk) {\n\t\t\tdata += chunk.toString();\n\t\t});\n\t\trequest.on(\"end\",function() {\n\t\t\tstate.data = data;\n\t\t\troute.handler(request,response,state);\n\t\t});\n\t} else if(route.bodyFormat === \"buffer\") {\n\t\tvar data = [];\n\t\trequest.on(\"data\",function(chunk) {\n\t\t\tdata.push(chunk);\n\t\t});\n\t\trequest.on(\"end\",function() {\n\t\t\tstate.data = Buffer.concat(data);\n\t\t\troute.handler(request,response,state);\n\t\t})\n\t} else {\n\t\tresponse.writeHead(400,\"Invalid bodyFormat \" + route.bodyFormat + \" in route \" + route.method + \" \" + route.path.source);\n\t\tresponse.end();\n\t}\n};\n\n/*\nListen for requests\nport: optional port number (falls back to value of \"port\" variable)\nhost: optional host address (falls back to value of \"host\" variable)\nprefix: optional prefix (falls back to value of \"path-prefix\" variable)\n*/\nServer.prototype.listen = function(port,host,prefix) {\n\tvar self = this;\n\t// Handle defaults for port and host\n\tport = port || this.get(\"port\");\n\thost = host || this.get(\"host\");\n\tprefix = prefix || this.get(\"path-prefix\") || \"\";\n\t// Check for the port being a string and look it up as an environment variable\n\tif(parseInt(port,10).toString() !== port) {\n\t\tport = process.env[port] || 8080;\n\t}\n\t// Warn if required plugins are missing\n\tif(!$tw.wiki.getTiddler(\"$:/plugins/tiddlywiki/tiddlyweb\") || !$tw.wiki.getTiddler(\"$:/plugins/tiddlywiki/filesystem\")) {\n\t\t$tw.utils.warning(\"Warning: Plugins required for client-server operation (\\\"tiddlywiki/filesystem\\\" and \\\"tiddlywiki/tiddlyweb\\\") are missing from tiddlywiki.info file\");\n\t}\n\t// Create the server\n\tvar server;\n\tif(this.listenOptions) {\n\t\tserver = this.transport.createServer(this.listenOptions,this.requestHandler.bind(this));\n\t} else {\n\t\tserver = this.transport.createServer(this.requestHandler.bind(this));\n\t}\n\t// Display the port number after we've started listening (the port number might have been specified as zero, in which case we will get an assigned port)\n\tserver.on(\"listening\",function() {\n\t\tvar address = server.address();\n\t\t$tw.utils.log(\"Serving on \" + self.protocol + \"://\" + address.address + \":\" + address.port + prefix,\"brown/orange\");\n\t\t$tw.utils.log(\"(press ctrl-C to exit)\",\"red\");\n\t});\n\t// Listen\n\treturn server.listen(port,host);\n};\n\nexports.Server = Server;\n\n})();\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/core/modules/browser-messaging.js": {
"title": "$:/core/modules/browser-messaging.js",
"text": "/*\\\ntitle: $:/core/modules/browser-messaging.js\ntype: application/javascript\nmodule-type: startup\n\nBrowser message handling\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"browser-messaging\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\n/*\nLoad a specified url as an iframe and call the callback when it is loaded. If the url is already loaded then the existing iframe instance is used\n*/\nfunction loadIFrame(url,callback) {\n\t// Check if iframe already exists\n\tvar iframeInfo = $tw.browserMessaging.iframeInfoMap[url];\n\tif(iframeInfo) {\n\t\t// We've already got the iframe\n\t\tcallback(null,iframeInfo);\n\t} else {\n\t\t// Create the iframe and save it in the list\n\t\tvar iframe = document.createElement(\"iframe\");\n\t\tiframeInfo = {\n\t\t\turl: url,\n\t\t\tstatus: \"loading\",\n\t\t\tdomNode: iframe\n\t\t};\n\t\t$tw.browserMessaging.iframeInfoMap[url] = iframeInfo;\n\t\tsaveIFrameInfoTiddler(iframeInfo);\n\t\t// Add the iframe to the DOM and hide it\n\t\tiframe.style.display = \"none\";\n\t\tiframe.setAttribute(\"library\",\"true\");\n\t\tdocument.body.appendChild(iframe);\n\t\t// Set up onload\n\t\tiframe.onload = function() {\n\t\t\tiframeInfo.status = \"loaded\";\n\t\t\tsaveIFrameInfoTiddler(iframeInfo);\n\t\t\tcallback(null,iframeInfo);\n\t\t};\n\t\tiframe.onerror = function() {\n\t\t\tcallback(\"Cannot load iframe\");\n\t\t};\n\t\ttry {\n\t\t\tiframe.src = url;\n\t\t} catch(ex) {\n\t\t\tcallback(ex);\n\t\t}\n\t}\n}\n\n/*\nUnload library iframe for given url\n*/\nfunction unloadIFrame(url){\n\t$tw.utils.each(document.getElementsByTagName('iframe'), function(iframe) {\n\t\tif(iframe.getAttribute(\"library\") === \"true\" &&\n\t\t iframe.getAttribute(\"src\") === url) {\n\t\t\tiframe.parentNode.removeChild(iframe);\n\t\t}\n\t});\n}\n\nfunction saveIFrameInfoTiddler(iframeInfo) {\n\t$tw.wiki.addTiddler(new $tw.Tiddler($tw.wiki.getCreationFields(),{\n\t\ttitle: \"$:/temp/ServerConnection/\" + iframeInfo.url,\n\t\ttext: iframeInfo.status,\n\t\ttags: [\"$:/tags/ServerConnection\"],\n\t\turl: iframeInfo.url\n\t},$tw.wiki.getModificationFields()));\n}\n\nexports.startup = function() {\n\t// Initialise the store of iframes we've created\n\t$tw.browserMessaging = {\n\t\tiframeInfoMap: {} // Hashmap by URL of {url:,status:\"loading/loaded\",domNode:}\n\t};\n\t// Listen for widget messages to control loading the plugin library\n\t$tw.rootWidget.addEventListener(\"tm-load-plugin-library\",function(event) {\n\t\tvar paramObject = event.paramObject || {},\n\t\t\turl = paramObject.url;\n\t\tif(url) {\n\t\t\tloadIFrame(url,function(err,iframeInfo) {\n\t\t\t\tif(err) {\n\t\t\t\t\talert($tw.language.getString(\"Error/LoadingPluginLibrary\") + \": \" + url);\n\t\t\t\t} else {\n\t\t\t\t\tiframeInfo.domNode.contentWindow.postMessage({\n\t\t\t\t\t\tverb: \"GET\",\n\t\t\t\t\t\turl: \"recipes/library/tiddlers.json\",\n\t\t\t\t\t\tcookies: {\n\t\t\t\t\t\t\ttype: \"save-info\",\n\t\t\t\t\t\t\tinfoTitlePrefix: paramObject.infoTitlePrefix || \"$:/temp/RemoteAssetInfo/\",\n\t\t\t\t\t\t\turl: url\n\t\t\t\t\t\t}\n\t\t\t\t\t},\"*\");\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\t// Listen for widget messages to control unloading the plugin library\n\t$tw.rootWidget.addEventListener(\"tm-unload-plugin-library\",function(event) {\n\t\tvar paramObject = event.paramObject || {},\n\t\t\turl = paramObject.url;\n\t\t$tw.browserMessaging.iframeInfoMap[url] = undefined;\n\t\tif(url) {\n\t\t\tunloadIFrame(url);\n\t\t\t$tw.utils.each(\n\t\t\t\t$tw.wiki.filterTiddlers(\"[[$:/temp/ServerConnection/\" + url + \"]] [prefix[$:/temp/RemoteAssetInfo/\" + url + \"/]]\"),\n\t\t\t\tfunction(title) {\n\t\t\t\t\t$tw.wiki.deleteTiddler(title);\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t});\n\t$tw.rootWidget.addEventListener(\"tm-load-plugin-from-library\",function(event) {\n\t\tvar paramObject = event.paramObject || {},\n\t\t\turl = paramObject.url,\n\t\t\ttitle = paramObject.title;\n\t\tif(url && title) {\n\t\t\tloadIFrame(url,function(err,iframeInfo) {\n\t\t\t\tif(err) {\n\t\t\t\t\talert($tw.language.getString(\"Error/LoadingPluginLibrary\") + \": \" + url);\n\t\t\t\t} else {\n\t\t\t\t\tiframeInfo.domNode.contentWindow.postMessage({\n\t\t\t\t\t\tverb: \"GET\",\n\t\t\t\t\t\turl: \"recipes/library/tiddlers/\" + encodeURIComponent(title) + \".json\",\n\t\t\t\t\t\tcookies: {\n\t\t\t\t\t\t\ttype: \"save-tiddler\",\n\t\t\t\t\t\t\turl: url\n\t\t\t\t\t\t}\n\t\t\t\t\t},\"*\");\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\t// Listen for window messages from other windows\n\twindow.addEventListener(\"message\",function listener(event){\n\t\t// console.log(\"browser-messaging: \",document.location.toString())\n\t\t// console.log(\"browser-messaging: Received message from\",event.origin);\n\t\t// console.log(\"browser-messaging: Message content\",event.data);\n\t\tswitch(event.data.verb) {\n\t\t\tcase \"GET-RESPONSE\":\n\t\t\t\tif(event.data.status.charAt(0) === \"2\") {\n\t\t\t\t\tif(event.data.cookies) {\n\t\t\t\t\t\tif(event.data.cookies.type === \"save-info\") {\n\t\t\t\t\t\t\tvar tiddlers = JSON.parse(event.data.body);\n\t\t\t\t\t\t\t$tw.utils.each(tiddlers,function(tiddler) {\n\t\t\t\t\t\t\t\t$tw.wiki.addTiddler(new $tw.Tiddler($tw.wiki.getCreationFields(),tiddler,{\n\t\t\t\t\t\t\t\t\ttitle: event.data.cookies.infoTitlePrefix + event.data.cookies.url + \"/\" + tiddler.title,\n\t\t\t\t\t\t\t\t\t\"original-title\": tiddler.title,\n\t\t\t\t\t\t\t\t\ttext: \"\",\n\t\t\t\t\t\t\t\t\ttype: \"text/vnd.tiddlywiki\",\n\t\t\t\t\t\t\t\t\t\"original-type\": tiddler.type,\n\t\t\t\t\t\t\t\t\t\"plugin-type\": undefined,\n\t\t\t\t\t\t\t\t\t\"original-plugin-type\": tiddler[\"plugin-type\"],\n\t\t\t\t\t\t\t\t\t\"module-type\": undefined,\n\t\t\t\t\t\t\t\t\t\"original-module-type\": tiddler[\"module-type\"],\n\t\t\t\t\t\t\t\t\ttags: [\"$:/tags/RemoteAssetInfo\"],\n\t\t\t\t\t\t\t\t\t\"original-tags\": $tw.utils.stringifyList(tiddler.tags || []),\n\t\t\t\t\t\t\t\t\t\"server-url\": event.data.cookies.url\n\t\t\t\t\t\t\t\t},$tw.wiki.getModificationFields()));\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t} else if(event.data.cookies.type === \"save-tiddler\") {\n\t\t\t\t\t\t\tvar tiddler = JSON.parse(event.data.body);\n\t\t\t\t\t\t\t$tw.wiki.addTiddler(new $tw.Tiddler(tiddler));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t},false);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/commands.js": {
"title": "$:/core/modules/startup/commands.js",
"text": "/*\\\ntitle: $:/core/modules/startup/commands.js\ntype: application/javascript\nmodule-type: startup\n\nCommand processing\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"commands\";\nexports.platforms = [\"node\"];\nexports.after = [\"story\"];\nexports.synchronous = false;\n\nexports.startup = function(callback) {\n\t// On the server, start a commander with the command line arguments\n\tvar commander = new $tw.Commander(\n\t\t$tw.boot.argv,\n\t\tfunction(err) {\n\t\t\tif(err) {\n\t\t\t\treturn $tw.utils.error(\"Error: \" + err);\n\t\t\t}\n\t\t\tcallback();\n\t\t},\n\t\t$tw.wiki,\n\t\t{output: process.stdout, error: process.stderr}\n\t);\n\tcommander.execute();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/CSSescape.js": {
"title": "$:/core/modules/startup/CSSescape.js",
"text": "/*\\\ntitle: $:/core/modules/startup/CSSescape.js\ntype: application/javascript\nmodule-type: startup\n\nPolyfill for CSS.escape()\n\n\\*/\n(function(root,factory){\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"css-escape\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\n/*! https://mths.be/cssescape v1.5.1 by @mathias | MIT license */\n// https://github.com/umdjs/umd/blob/master/returnExports.js\nexports.startup = factory(root);\n}(typeof global != 'undefined' ? global : this, function(root) {\n\n\tif (root.CSS && root.CSS.escape) {\n\t\treturn;\n\t}\n\n\t// https://drafts.csswg.org/cssom/#serialize-an-identifier\n\tvar cssEscape = function(value) {\n\t\tif (arguments.length == 0) {\n\t\t\tthrow new TypeError('`CSS.escape` requires an argument.');\n\t\t}\n\t\tvar string = String(value);\n\t\tvar length = string.length;\n\t\tvar index = -1;\n\t\tvar codeUnit;\n\t\tvar result = '';\n\t\tvar firstCodeUnit = string.charCodeAt(0);\n\t\twhile (++index < length) {\n\t\t\tcodeUnit = string.charCodeAt(index);\n\t\t\t// Note: there’s no need to special-case astral symbols, surrogate\n\t\t\t// pairs, or lone surrogates.\n\n\t\t\t// If the character is NULL (U+0000), then the REPLACEMENT CHARACTER\n\t\t\t// (U+FFFD).\n\t\t\tif (codeUnit == 0x0000) {\n\t\t\t\tresult += '\\uFFFD';\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t// If the character is in the range [\\1-\\1F] (U+0001 to U+001F) or is\n\t\t\t\t// U+007F, […]\n\t\t\t\t(codeUnit >= 0x0001 && codeUnit <= 0x001F) || codeUnit == 0x007F ||\n\t\t\t\t// If the character is the first character and is in the range [0-9]\n\t\t\t\t// (U+0030 to U+0039), […]\n\t\t\t\t(index == 0 && codeUnit >= 0x0030 && codeUnit <= 0x0039) ||\n\t\t\t\t// If the character is the second character and is in the range [0-9]\n\t\t\t\t// (U+0030 to U+0039) and the first character is a `-` (U+002D), […]\n\t\t\t\t(\n\t\t\t\t\tindex == 1 &&\n\t\t\t\t\tcodeUnit >= 0x0030 && codeUnit <= 0x0039 &&\n\t\t\t\t\tfirstCodeUnit == 0x002D\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\t// https://drafts.csswg.org/cssom/#escape-a-character-as-code-point\n\t\t\t\tresult += '\\\\' + codeUnit.toString(16) + ' ';\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t// If the character is the first character and is a `-` (U+002D), and\n\t\t\t\t// there is no second character, […]\n\t\t\t\tindex == 0 &&\n\t\t\t\tlength == 1 &&\n\t\t\t\tcodeUnit == 0x002D\n\t\t\t) {\n\t\t\t\tresult += '\\\\' + string.charAt(index);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If the character is not handled by one of the above rules and is\n\t\t\t// greater than or equal to U+0080, is `-` (U+002D) or `_` (U+005F), or\n\t\t\t// is in one of the ranges [0-9] (U+0030 to U+0039), [A-Z] (U+0041 to\n\t\t\t// U+005A), or [a-z] (U+0061 to U+007A), […]\n\t\t\tif (\n\t\t\t\tcodeUnit >= 0x0080 ||\n\t\t\t\tcodeUnit == 0x002D ||\n\t\t\t\tcodeUnit == 0x005F ||\n\t\t\t\tcodeUnit >= 0x0030 && codeUnit <= 0x0039 ||\n\t\t\t\tcodeUnit >= 0x0041 && codeUnit <= 0x005A ||\n\t\t\t\tcodeUnit >= 0x0061 && codeUnit <= 0x007A\n\t\t\t) {\n\t\t\t\t// the character itself\n\t\t\t\tresult += string.charAt(index);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Otherwise, the escaped character.\n\t\t\t// https://drafts.csswg.org/cssom/#escape-a-character\n\t\t\tresult += '\\\\' + string.charAt(index);\n\n\t\t}\n\t\treturn result;\n\t};\n\n\tif (!root.CSS) {\n\t\troot.CSS = {};\n\t}\n\n\troot.CSS.escape = cssEscape;\n\n}));\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/favicon.js": {
"title": "$:/core/modules/startup/favicon.js",
"text": "/*\\\ntitle: $:/core/modules/startup/favicon.js\ntype: application/javascript\nmodule-type: startup\n\nFavicon handling\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"favicon\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\t\t\n// Favicon tiddler\nvar FAVICON_TITLE = \"$:/favicon.ico\";\n\nexports.startup = function() {\n\t// Set up the favicon\n\tsetFavicon();\n\t// Reset the favicon when the tiddler changes\n\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\tif($tw.utils.hop(changes,FAVICON_TITLE)) {\n\t\t\tsetFavicon();\n\t\t}\n\t});\n};\n\nfunction setFavicon() {\n\tvar tiddler = $tw.wiki.getTiddler(FAVICON_TITLE);\n\tif(tiddler) {\n\t\tvar faviconLink = document.getElementById(\"faviconLink\");\n\t\tfaviconLink.setAttribute(\"href\",\"data:\" + tiddler.fields.type + \";base64,\" + tiddler.fields.text);\n\t}\n}\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/info.js": {
"title": "$:/core/modules/startup/info.js",
"text": "/*\\\ntitle: $:/core/modules/startup/info.js\ntype: application/javascript\nmodule-type: startup\n\nInitialise $:/info tiddlers via $:/temp/info-plugin pseudo-plugin\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"info\";\nexports.before = [\"startup\"];\nexports.after = [\"load-modules\"];\nexports.synchronous = true;\n\nvar TITLE_INFO_PLUGIN = \"$:/temp/info-plugin\";\n\nexports.startup = function() {\n\t// Collect up the info tiddlers\n\tvar infoTiddlerFields = {};\n\t// Give each info module a chance to fill in as many info tiddlers as they want\n\t$tw.modules.forEachModuleOfType(\"info\",function(title,moduleExports) {\n\t\tif(moduleExports && moduleExports.getInfoTiddlerFields) {\n\t\t\tvar tiddlerFieldsArray = moduleExports.getInfoTiddlerFields(infoTiddlerFields);\n\t\t\t$tw.utils.each(tiddlerFieldsArray,function(fields) {\n\t\t\t\tif(fields) {\n\t\t\t\t\tinfoTiddlerFields[fields.title] = fields;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\t// Bake the info tiddlers into a plugin. We use the non-standard plugin-type \"info\" because ordinary plugins are only registered asynchronously after being loaded dynamically\n\tvar fields = {\n\t\ttitle: TITLE_INFO_PLUGIN,\n\t\ttype: \"application/json\",\n\t\t\"plugin-type\": \"info\",\n\t\ttext: JSON.stringify({tiddlers: infoTiddlerFields},null,$tw.config.preferences.jsonSpaces)\n\t};\n\t$tw.wiki.addTiddler(new $tw.Tiddler(fields));\n\t$tw.wiki.readPluginInfo([TITLE_INFO_PLUGIN]);\n\t$tw.wiki.registerPluginTiddlers(\"info\");\n\t$tw.wiki.unpackPluginTiddlers();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/load-modules.js": {
"title": "$:/core/modules/startup/load-modules.js",
"text": "/*\\\ntitle: $:/core/modules/startup/load-modules.js\ntype: application/javascript\nmodule-type: startup\n\nLoad core modules\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"load-modules\";\nexports.synchronous = true;\n\nexports.startup = function() {\n\t// Load modules\n\t$tw.modules.applyMethods(\"utils\",$tw.utils);\n\tif($tw.node) {\n\t\t$tw.modules.applyMethods(\"utils-node\",$tw.utils);\n\t}\n\t$tw.modules.applyMethods(\"global\",$tw);\n\t$tw.modules.applyMethods(\"config\",$tw.config);\n\t$tw.Tiddler.fieldModules = $tw.modules.getModulesByTypeAsHashmap(\"tiddlerfield\");\n\t$tw.modules.applyMethods(\"tiddlermethod\",$tw.Tiddler.prototype);\n\t$tw.modules.applyMethods(\"wikimethod\",$tw.Wiki.prototype);\n\t$tw.wiki.addIndexersToWiki();\n\t$tw.modules.applyMethods(\"tiddlerdeserializer\",$tw.Wiki.tiddlerDeserializerModules);\n\t$tw.macros = $tw.modules.getModulesByTypeAsHashmap(\"macro\");\n\t$tw.wiki.initParsers();\n\t$tw.Commander.initCommands();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/password.js": {
"title": "$:/core/modules/startup/password.js",
"text": "/*\\\ntitle: $:/core/modules/startup/password.js\ntype: application/javascript\nmodule-type: startup\n\nPassword handling\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"password\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\nexports.startup = function() {\n\t$tw.rootWidget.addEventListener(\"tm-set-password\",function(event) {\n\t\t$tw.passwordPrompt.createPrompt({\n\t\t\tserviceName: $tw.language.getString(\"Encryption/PromptSetPassword\"),\n\t\t\tnoUserName: true,\n\t\t\tsubmitText: $tw.language.getString(\"Encryption/SetPassword\"),\n\t\t\tcanCancel: true,\n\t\t\trepeatPassword: true,\n\t\t\tcallback: function(data) {\n\t\t\t\tif(data) {\n\t\t\t\t\t$tw.crypto.setPassword(data.password);\n\t\t\t\t}\n\t\t\t\treturn true; // Get rid of the password prompt\n\t\t\t}\n\t\t});\n\t});\n\t$tw.rootWidget.addEventListener(\"tm-clear-password\",function(event) {\n\t\tif($tw.browser) {\n\t\t\tif(!confirm($tw.language.getString(\"Encryption/ConfirmClearPassword\"))) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\t$tw.crypto.setPassword(null);\n\t});\n\t// Ensure that $:/isEncrypted is maintained properly\n\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\tif($tw.utils.hop(changes,\"$:/isEncrypted\")) {\n\t\t\t$tw.crypto.updateCryptoStateTiddler();\n\t\t}\n\t});\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/plugins.js": {
"title": "$:/core/modules/startup/plugins.js",
"text": "/*\\\ntitle: $:/core/modules/startup/plugins.js\ntype: application/javascript\nmodule-type: startup\n\nStartup logic concerned with managing plugins\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"plugins\";\nexports.after = [\"load-modules\"];\nexports.synchronous = true;\n\nvar TITLE_REQUIRE_RELOAD_DUE_TO_PLUGIN_CHANGE = \"$:/status/RequireReloadDueToPluginChange\";\n\nvar PREFIX_CONFIG_REGISTER_PLUGIN_TYPE = \"$:/config/RegisterPluginType/\";\n\nexports.startup = function() {\n\t$tw.wiki.addTiddler({title: TITLE_REQUIRE_RELOAD_DUE_TO_PLUGIN_CHANGE,text: \"no\"});\n\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\tvar changesToProcess = [],\n\t\t\trequireReloadDueToPluginChange = false;\n\t\t$tw.utils.each(Object.keys(changes),function(title) {\n\t\t\tvar tiddler = $tw.wiki.getTiddler(title),\n\t\t\t\trequiresReload = $tw.wiki.doesPluginRequireReload(title);\n\t\t\tif(requiresReload) {\n\t\t\t\trequireReloadDueToPluginChange = true;\n\t\t\t} else if(tiddler) {\n\t\t\t\tvar pluginType = tiddler.fields[\"plugin-type\"];\n\t\t\t\tif($tw.wiki.getTiddlerText(PREFIX_CONFIG_REGISTER_PLUGIN_TYPE + (tiddler.fields[\"plugin-type\"] || \"\"),\"no\") === \"yes\") {\n\t\t\t\t\tchangesToProcess.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\tif(requireReloadDueToPluginChange) {\n\t\t\t$tw.wiki.addTiddler({title: TITLE_REQUIRE_RELOAD_DUE_TO_PLUGIN_CHANGE,text: \"yes\"});\n\t\t}\n\t\t// Read or delete the plugin info of the changed tiddlers\n\t\tif(changesToProcess.length > 0) {\n\t\t\tvar changes = $tw.wiki.readPluginInfo(changesToProcess);\n\t\t\tif(changes.modifiedPlugins.length > 0 || changes.deletedPlugins.length > 0) {\n\t\t\t\t// (Re-)register any modified plugins\n\t\t\t\t$tw.wiki.registerPluginTiddlers(null,changes.modifiedPlugins);\n\t\t\t\t// Unregister any deleted plugins\n\t\t\t\t$tw.wiki.unregisterPluginTiddlers(null,changes.deletedPlugins);\n\t\t\t\t// Unpack the shadow tiddlers\n\t\t\t\t$tw.wiki.unpackPluginTiddlers();\n\t\t\t}\n\t\t}\n\t});\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/render.js": {
"title": "$:/core/modules/startup/render.js",
"text": "/*\\\ntitle: $:/core/modules/startup/render.js\ntype: application/javascript\nmodule-type: startup\n\nTitle, stylesheet and page rendering\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"render\";\nexports.platforms = [\"browser\"];\nexports.after = [\"story\"];\nexports.synchronous = true;\n\n// Default story and history lists\nvar PAGE_TITLE_TITLE = \"$:/core/wiki/title\";\nvar PAGE_STYLESHEET_TITLE = \"$:/core/ui/PageStylesheet\";\nvar PAGE_TEMPLATE_TITLE = \"$:/core/ui/PageTemplate\";\n\n// Time (in ms) that we defer refreshing changes to draft tiddlers\nvar DRAFT_TIDDLER_TIMEOUT_TITLE = \"$:/config/Drafts/TypingTimeout\";\nvar THROTTLE_REFRESH_TIMEOUT = 400;\n\nexports.startup = function() {\n\t// Set up the title\n\t$tw.titleWidgetNode = $tw.wiki.makeTranscludeWidget(PAGE_TITLE_TITLE,{document: $tw.fakeDocument, parseAsInline: true});\n\t$tw.titleContainer = $tw.fakeDocument.createElement(\"div\");\n\t$tw.titleWidgetNode.render($tw.titleContainer,null);\n\tdocument.title = $tw.titleContainer.textContent;\n\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\tif($tw.titleWidgetNode.refresh(changes,$tw.titleContainer,null)) {\n\t\t\tdocument.title = $tw.titleContainer.textContent;\n\t\t}\n\t});\n\t// Set up the styles\n\t$tw.styleWidgetNode = $tw.wiki.makeTranscludeWidget(PAGE_STYLESHEET_TITLE,{document: $tw.fakeDocument});\n\t$tw.styleContainer = $tw.fakeDocument.createElement(\"style\");\n\t$tw.styleWidgetNode.render($tw.styleContainer,null);\n\t$tw.styleElement = document.createElement(\"style\");\n\t$tw.styleElement.innerHTML = $tw.styleContainer.textContent;\n\tdocument.head.insertBefore($tw.styleElement,document.head.firstChild);\n\t$tw.wiki.addEventListener(\"change\",$tw.perf.report(\"styleRefresh\",function(changes) {\n\t\tif($tw.styleWidgetNode.refresh(changes,$tw.styleContainer,null)) {\n\t\t\t$tw.styleElement.innerHTML = $tw.styleContainer.textContent;\n\t\t}\n\t}));\n\t// Display the $:/core/ui/PageTemplate tiddler to kick off the display\n\t$tw.perf.report(\"mainRender\",function() {\n\t\t$tw.pageWidgetNode = $tw.wiki.makeTranscludeWidget(PAGE_TEMPLATE_TITLE,{document: document, parentWidget: $tw.rootWidget});\n\t\t$tw.pageContainer = document.createElement(\"div\");\n\t\t$tw.utils.addClass($tw.pageContainer,\"tc-page-container-wrapper\");\n\t\tdocument.body.insertBefore($tw.pageContainer,document.body.firstChild);\n\t\t$tw.pageWidgetNode.render($tw.pageContainer,null);\n \t\t$tw.hooks.invokeHook(\"th-page-refreshed\");\n\t})();\n\t// Remove any splash screen elements\n\tvar removeList = document.querySelectorAll(\".tc-remove-when-wiki-loaded\");\n\t$tw.utils.each(removeList,function(removeItem) {\n\t\tif(removeItem.parentNode) {\n\t\t\tremoveItem.parentNode.removeChild(removeItem);\n\t\t}\n\t});\n\t// Prepare refresh mechanism\n\tvar deferredChanges = Object.create(null),\n\t\ttimerId;\n\tfunction refresh() {\n\t\t// Process the refresh\n\t\t$tw.hooks.invokeHook(\"th-page-refreshing\");\n\t\t$tw.pageWidgetNode.refresh(deferredChanges);\n\t\tdeferredChanges = Object.create(null);\n\t\t$tw.hooks.invokeHook(\"th-page-refreshed\");\n\t}\n\t// Add the change event handler\n\t$tw.wiki.addEventListener(\"change\",$tw.perf.report(\"mainRefresh\",function(changes) {\n\t\t// Check if only tiddlers that are throttled have changed\n\t\tvar onlyThrottledTiddlersHaveChanged = true;\n\t\tfor(var title in changes) {\n\t\t\tvar tiddler = $tw.wiki.getTiddler(title);\n\t\t\tif(!tiddler || !(tiddler.hasField(\"draft.of\") || tiddler.hasField(\"throttle.refresh\"))) {\n\t\t\t\tonlyThrottledTiddlersHaveChanged = false;\n\t\t\t}\n\t\t}\n\t\t// Defer the change if only drafts have changed\n\t\tif(timerId) {\n\t\t\tclearTimeout(timerId);\n\t\t}\n\t\ttimerId = null;\n\t\tif(onlyThrottledTiddlersHaveChanged) {\n\t\t\tvar timeout = parseInt($tw.wiki.getTiddlerText(DRAFT_TIDDLER_TIMEOUT_TITLE,\"\"),10);\n\t\t\tif(isNaN(timeout)) {\n\t\t\t\ttimeout = THROTTLE_REFRESH_TIMEOUT;\n\t\t\t}\n\t\t\ttimerId = setTimeout(refresh,timeout);\n\t\t\t$tw.utils.extend(deferredChanges,changes);\n\t\t} else {\n\t\t\t$tw.utils.extend(deferredChanges,changes);\n\t\t\trefresh();\n\t\t}\n\t}));\n\t// Fix up the link between the root widget and the page container\n\t$tw.rootWidget.domNodes = [$tw.pageContainer];\n\t$tw.rootWidget.children = [$tw.pageWidgetNode];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/rootwidget.js": {
"title": "$:/core/modules/startup/rootwidget.js",
"text": "/*\\\ntitle: $:/core/modules/startup/rootwidget.js\ntype: application/javascript\nmodule-type: startup\n\nSetup the root widget and the core root widget handlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"rootwidget\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.before = [\"story\"];\nexports.synchronous = true;\n\nexports.startup = function() {\n\t// Install the modal message mechanism\n\t$tw.modal = new $tw.utils.Modal($tw.wiki);\n\t$tw.rootWidget.addEventListener(\"tm-modal\",function(event) {\n\t\t$tw.modal.display(event.param,{variables: event.paramObject, event: event});\n\t});\n\t// Install the notification mechanism\n\t$tw.notifier = new $tw.utils.Notifier($tw.wiki);\n\t$tw.rootWidget.addEventListener(\"tm-notify\",function(event) {\n\t\t$tw.notifier.display(event.param,{variables: event.paramObject});\n\t});\n\t// Install the copy-to-clipboard mechanism\n\t$tw.rootWidget.addEventListener(\"tm-copy-to-clipboard\",function(event) {\n\t\t$tw.utils.copyToClipboard(event.param);\n\t});\n\t// Install the tm-focus-selector message\n\t$tw.rootWidget.addEventListener(\"tm-focus-selector\",function(event) {\n\t\tvar selector = event.param || \"\",\n\t\t\telement;\n\t\ttry {\n\t\t\telement = document.querySelector(selector);\n\t\t} catch(e) {\n\t\t\tconsole.log(\"Error in selector: \",selector)\n\t\t}\n\t\tif(element && element.focus) {\n\t\t\telement.focus(event.paramObject);\n\t\t}\n\t});\n\t// Install the scroller\n\t$tw.pageScroller = new $tw.utils.PageScroller();\n\t$tw.rootWidget.addEventListener(\"tm-scroll\",function(event) {\n\t\t$tw.pageScroller.handleEvent(event);\n\t});\n\tvar fullscreen = $tw.utils.getFullScreenApis();\n\tif(fullscreen) {\n\t\t$tw.rootWidget.addEventListener(\"tm-full-screen\",function(event) {\n\t\t\tvar fullScreenDocument = event.event ? event.event.target.ownerDocument : document;\n\t\t\tif(event.param === \"enter\") {\n\t\t\t\tfullScreenDocument.documentElement[fullscreen._requestFullscreen](Element.ALLOW_KEYBOARD_INPUT);\n\t\t\t} else if(event.param === \"exit\") {\n\t\t\t\tfullScreenDocument[fullscreen._exitFullscreen]();\n\t\t\t} else {\n\t\t\t\tif(fullScreenDocument[fullscreen._fullscreenElement]) {\n\t\t\t\t\tfullScreenDocument[fullscreen._exitFullscreen]();\n\t\t\t\t} else {\n\t\t\t\t\tfullScreenDocument.documentElement[fullscreen._requestFullscreen](Element.ALLOW_KEYBOARD_INPUT);\n\t\t\t\t}\t\t\t\t\n\t\t\t}\n\t\t});\n\t}\n\t// If we're being viewed on a data: URI then give instructions for how to save\n\tif(document.location.protocol === \"data:\") {\n\t\t$tw.rootWidget.dispatchEvent({\n\t\t\ttype: \"tm-modal\",\n\t\t\tparam: \"$:/language/Modals/SaveInstructions\"\n\t\t});\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup.js": {
"title": "$:/core/modules/startup.js",
"text": "/*\\\ntitle: $:/core/modules/startup.js\ntype: application/javascript\nmodule-type: startup\n\nMiscellaneous startup logic for both the client and server.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"startup\";\nexports.after = [\"load-modules\"];\nexports.synchronous = true;\n\n// Set to `true` to enable performance instrumentation\nvar PERFORMANCE_INSTRUMENTATION_CONFIG_TITLE = \"$:/config/Performance/Instrumentation\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.startup = function() {\n\tvar modules,n,m,f;\n\t// Minimal browser detection\n\tif($tw.browser) {\n\t\t$tw.browser.isIE = (/msie|trident/i.test(navigator.userAgent));\n\t\t$tw.browser.isFirefox = !!document.mozFullScreenEnabled;\n\t}\n\t// Platform detection\n\t$tw.platform = {};\n\tif($tw.browser) {\n\t\t$tw.platform.isMac = /Mac/.test(navigator.platform);\n\t\t$tw.platform.isWindows = /win/i.test(navigator.platform);\n\t\t$tw.platform.isLinux = /Linux/i.test(navigator.platform);\n\t} else {\n\t\tswitch(require(\"os\").platform()) {\n\t\t\tcase \"darwin\":\n\t\t\t\t$tw.platform.isMac = true;\n\t\t\t\tbreak;\n\t\t\tcase \"win32\":\n\t\t\t\t$tw.platform.isWindows = true;\n\t\t\t\tbreak;\n\t\t\tcase \"freebsd\":\n\t\t\t\t$tw.platform.isLinux = true;\n\t\t\t\tbreak;\n\t\t\tcase \"linux\":\n\t\t\t\t$tw.platform.isLinux = true;\n\t\t\t\tbreak;\n\t\t}\n\t}\n\t// Initialise version\n\t$tw.version = $tw.utils.extractVersionInfo();\n\t// Set up the performance framework\n\t$tw.perf = new $tw.Performance($tw.wiki.getTiddlerText(PERFORMANCE_INSTRUMENTATION_CONFIG_TITLE,\"no\") === \"yes\");\n\t// Create a root widget for attaching event handlers. By using it as the parentWidget for another widget tree, one can reuse the event handlers\n\t$tw.rootWidget = new widget.widget({\n\t\ttype: \"widget\",\n\t\tchildren: []\n\t},{\n\t\twiki: $tw.wiki,\n\t\tdocument: $tw.browser ? document : $tw.fakeDocument\n\t});\n\t// Execute any startup actions\n\tvar executeStartupTiddlers = function(tag) {\n\t\t$tw.utils.each($tw.wiki.filterTiddlers(\"[all[shadows+tiddlers]tag[\" + tag + \"]!has[draft.of]]\"),function(title) {\n\t\t\t$tw.rootWidget.invokeActionString($tw.wiki.getTiddlerText(title),$tw.rootWidget);\n\t\t});\n\t};\n\texecuteStartupTiddlers(\"$:/tags/StartupAction\");\n\tif($tw.browser) {\n\t\texecuteStartupTiddlers(\"$:/tags/StartupAction/Browser\");\t\t\n\t}\n\tif($tw.node) {\n\t\texecuteStartupTiddlers(\"$:/tags/StartupAction/Node\");\t\t\n\t}\n\t// Kick off the language manager and switcher\n\t$tw.language = new $tw.Language();\n\t$tw.languageSwitcher = new $tw.PluginSwitcher({\n\t\twiki: $tw.wiki,\n\t\tpluginType: \"language\",\n\t\tcontrollerTitle: \"$:/language\",\n\t\tdefaultPlugins: [\n\t\t\t\"$:/languages/en-GB\"\n\t\t],\n\t\tonSwitch: function(plugins) {\n\t\t\tif($tw.browser) {\n\t\t\t\tvar pluginTiddler = $tw.wiki.getTiddler(plugins[0]);\n\t\t\t\tif(pluginTiddler) {\n\t\t\t\t\tdocument.documentElement.setAttribute(\"dir\",pluginTiddler.getFieldString(\"text-direction\") || \"auto\");\n\t\t\t\t} else {\n\t\t\t\t\tdocument.documentElement.removeAttribute(\"dir\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\t// Kick off the theme manager\n\t$tw.themeManager = new $tw.PluginSwitcher({\n\t\twiki: $tw.wiki,\n\t\tpluginType: \"theme\",\n\t\tcontrollerTitle: \"$:/theme\",\n\t\tdefaultPlugins: [\n\t\t\t\"$:/themes/tiddlywiki/snowwhite\",\n\t\t\t\"$:/themes/tiddlywiki/vanilla\"\n\t\t]\n\t});\n\t// Kick off the keyboard manager\n\t$tw.keyboardManager = new $tw.KeyboardManager();\n\t// Listen for shortcuts\n\tif($tw.browser) {\n\t\t$tw.utils.addEventListeners(document,[{\n\t\t\tname: \"keydown\",\n\t\t\thandlerObject: $tw.keyboardManager,\n\t\t\thandlerMethod: \"handleKeydownEvent\"\n\t\t}]);\n\t}\n\t// Clear outstanding tiddler store change events to avoid an unnecessary refresh cycle at startup\n\t$tw.wiki.clearTiddlerEventQueue();\n\t// Find a working syncadaptor\n\t$tw.syncadaptor = undefined;\n\t$tw.modules.forEachModuleOfType(\"syncadaptor\",function(title,module) {\n\t\tif(!$tw.syncadaptor && module.adaptorClass) {\n\t\t\t$tw.syncadaptor = new module.adaptorClass({wiki: $tw.wiki});\n\t\t}\n\t});\n\t// Set up the syncer object if we've got a syncadaptor\n\tif($tw.syncadaptor) {\n\t\t$tw.syncer = new $tw.Syncer({wiki: $tw.wiki, syncadaptor: $tw.syncadaptor});\n\t}\n\t// Setup the saver handler\n\t$tw.saverHandler = new $tw.SaverHandler({\n\t\twiki: $tw.wiki,\n\t\tdirtyTracking: !$tw.syncadaptor,\n\t\tpreloadDirty: $tw.boot.preloadDirty || []\n\t});\n\t// Host-specific startup\n\tif($tw.browser) {\n\t\t// Install the popup manager\n\t\t$tw.popup = new $tw.utils.Popup();\n\t\t// Install the animator\n\t\t$tw.anim = new $tw.utils.Animator();\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/story.js": {
"title": "$:/core/modules/startup/story.js",
"text": "/*\\\ntitle: $:/core/modules/startup/story.js\ntype: application/javascript\nmodule-type: startup\n\nLoad core modules\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"story\";\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\n// Default story and history lists\nvar DEFAULT_STORY_TITLE = \"$:/StoryList\";\nvar DEFAULT_HISTORY_TITLE = \"$:/HistoryList\";\n\n// Default tiddlers\nvar DEFAULT_TIDDLERS_TITLE = \"$:/DefaultTiddlers\";\n\n// Config\nvar CONFIG_UPDATE_ADDRESS_BAR = \"$:/config/Navigation/UpdateAddressBar\"; // Can be \"no\", \"permalink\", \"permaview\"\nvar CONFIG_UPDATE_HISTORY = \"$:/config/Navigation/UpdateHistory\"; // Can be \"yes\" or \"no\"\nvar CONFIG_PERMALINKVIEW_COPY_TO_CLIPBOARD = \"$:/config/Navigation/Permalinkview/CopyToClipboard\"; // Can be \"yes\" (default) or \"no\"\nvar CONFIG_PERMALINKVIEW_UPDATE_ADDRESS_BAR = \"$:/config/Navigation/Permalinkview/UpdateAddressBar\"; // Can be \"yes\" (default) or \"no\"\n\n\n// Links to help, if there is no param\nvar HELP_OPEN_EXTERNAL_WINDOW = \"http://tiddlywiki.com/#WidgetMessage%3A%20tm-open-external-window\";\n\nexports.startup = function() {\n\t// Open startup tiddlers\n\topenStartupTiddlers({\n\t\tdisableHistory: $tw.boot.disableStartupNavigation\n\t});\n\tif($tw.browser) {\n\t\t// Set up location hash update\n\t\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\t\tif($tw.utils.hop(changes,DEFAULT_STORY_TITLE) || $tw.utils.hop(changes,DEFAULT_HISTORY_TITLE)) {\n\t\t\t\tupdateLocationHash({\n\t\t\t\t\tupdateAddressBar: $tw.wiki.getTiddlerText(CONFIG_UPDATE_ADDRESS_BAR,\"permaview\").trim(),\n\t\t\t\t\tupdateHistory: $tw.wiki.getTiddlerText(CONFIG_UPDATE_HISTORY,\"no\").trim()\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t\t// Listen for changes to the browser location hash\n\t\twindow.addEventListener(\"hashchange\",function() {\n\t\t\tvar hash = $tw.utils.getLocationHash();\n\t\t\tif(hash !== $tw.locationHash) {\n\t\t\t\t$tw.locationHash = hash;\n\t\t\t\topenStartupTiddlers({defaultToCurrentStory: true});\n\t\t\t}\n\t\t},false);\n\t\t// Listen for the tm-browser-refresh message\n\t\t$tw.rootWidget.addEventListener(\"tm-browser-refresh\",function(event) {\n\t\t\twindow.location.reload(true);\n\t\t});\n\t\t// Listen for tm-open-external-window message\n\t\t$tw.rootWidget.addEventListener(\"tm-open-external-window\",function(event) {\n\t\t\tvar paramObject = event.paramObject || {},\n\t\t\t\tstrUrl = event.param || HELP_OPEN_EXTERNAL_WINDOW,\n\t\t\t\tstrWindowName = paramObject.windowName,\n\t\t\t\tstrWindowFeatures = paramObject.windowFeatures;\n\t\t\twindow.open(strUrl, strWindowName, strWindowFeatures);\n\t\t});\n\t\t// Listen for the tm-print message\n\t\t$tw.rootWidget.addEventListener(\"tm-print\",function(event) {\n\t\t\t(event.event.view || window).print();\n\t\t});\n\t\t// Listen for the tm-home message\n\t\t$tw.rootWidget.addEventListener(\"tm-home\",function(event) {\n\t\t\twindow.location.hash = \"\";\n\t\t\tvar storyFilter = $tw.wiki.getTiddlerText(DEFAULT_TIDDLERS_TITLE),\n\t\t\t\tstoryList = $tw.wiki.filterTiddlers(storyFilter);\n\t\t\t//invoke any hooks that might change the default story list\n\t\t\tstoryList = $tw.hooks.invokeHook(\"th-opening-default-tiddlers-list\",storyList);\n\t\t\t$tw.wiki.addTiddler({title: DEFAULT_STORY_TITLE, text: \"\", list: storyList},$tw.wiki.getModificationFields());\n\t\t\tif(storyList[0]) {\n\t\t\t\t$tw.wiki.addToHistory(storyList[0]);\n\t\t\t}\n\t\t});\n\t\t// Listen for the tm-permalink message\n\t\t$tw.rootWidget.addEventListener(\"tm-permalink\",function(event) {\n\t\t\tupdateLocationHash({\n\t\t\t\tupdateAddressBar: $tw.wiki.getTiddlerText(CONFIG_PERMALINKVIEW_UPDATE_ADDRESS_BAR,\"yes\").trim() === \"yes\" ? \"permalink\" : \"none\",\n\t\t\t\tupdateHistory: $tw.wiki.getTiddlerText(CONFIG_UPDATE_HISTORY,\"no\").trim(),\n\t\t\t\ttargetTiddler: event.param || event.tiddlerTitle,\n\t\t\t\tcopyToClipboard: $tw.wiki.getTiddlerText(CONFIG_PERMALINKVIEW_COPY_TO_CLIPBOARD,\"yes\").trim() === \"yes\" ? \"permalink\" : \"none\"\n\t\t\t});\n\t\t});\n\t\t// Listen for the tm-permaview message\n\t\t$tw.rootWidget.addEventListener(\"tm-permaview\",function(event) {\n\t\t\tupdateLocationHash({\n\t\t\t\tupdateAddressBar: $tw.wiki.getTiddlerText(CONFIG_PERMALINKVIEW_UPDATE_ADDRESS_BAR,\"yes\").trim() === \"yes\" ? \"permaview\" : \"none\",\n\t\t\t\tupdateHistory: $tw.wiki.getTiddlerText(CONFIG_UPDATE_HISTORY,\"no\").trim(),\n\t\t\t\ttargetTiddler: event.param || event.tiddlerTitle,\n\t\t\t\tcopyToClipboard: $tw.wiki.getTiddlerText(CONFIG_PERMALINKVIEW_COPY_TO_CLIPBOARD,\"yes\").trim() === \"yes\" ? \"permaview\" : \"none\"\n\t\t\t});\t\t\t\t\n\t\t});\n\t}\n};\n\n/*\nProcess the location hash to open the specified tiddlers. Options:\ndisableHistory: if true $:/History is NOT updated\ndefaultToCurrentStory: If true, the current story is retained as the default, instead of opening the default tiddlers\n*/\nfunction openStartupTiddlers(options) {\n\toptions = options || {};\n\t// Work out the target tiddler and the story filter. \"null\" means \"unspecified\"\n\tvar target = null,\n\t\tstoryFilter = null;\n\tif($tw.locationHash.length > 1) {\n\t\tvar hash = $tw.locationHash.substr(1),\n\t\t\tsplit = hash.indexOf(\":\");\n\t\tif(split === -1) {\n\t\t\ttarget = decodeURIComponent(hash.trim());\n\t\t} else {\n\t\t\ttarget = decodeURIComponent(hash.substr(0,split).trim());\n\t\t\tstoryFilter = decodeURIComponent(hash.substr(split + 1).trim());\n\t\t}\n\t}\n\t// If the story wasn't specified use the current tiddlers or a blank story\n\tif(storyFilter === null) {\n\t\tif(options.defaultToCurrentStory) {\n\t\t\tvar currStoryList = $tw.wiki.getTiddlerList(DEFAULT_STORY_TITLE);\n\t\t\tstoryFilter = $tw.utils.stringifyList(currStoryList);\n\t\t} else {\n\t\t\tif(target && target !== \"\") {\n\t\t\t\tstoryFilter = \"\";\n\t\t\t} else {\n\t\t\t\tstoryFilter = $tw.wiki.getTiddlerText(DEFAULT_TIDDLERS_TITLE);\n\t\t\t}\n\t\t}\n\t}\n\t// Process the story filter to get the story list\n\tvar storyList = $tw.wiki.filterTiddlers(storyFilter);\n\t// Invoke any hooks that want to change the default story list\n\tstoryList = $tw.hooks.invokeHook(\"th-opening-default-tiddlers-list\",storyList);\n\t// If the target tiddler isn't included then splice it in at the top\n\tif(target && storyList.indexOf(target) === -1) {\n\t\tstoryList.unshift(target);\n\t}\n\t// Save the story list\n\t$tw.wiki.addTiddler({title: DEFAULT_STORY_TITLE, text: \"\", list: storyList},$tw.wiki.getModificationFields());\n\t// Update history\n\tif(!options.disableHistory) {\n\t\t// If a target tiddler was specified add it to the history stack\n\t\tif(target && target !== \"\") {\n\t\t\t// The target tiddler doesn't need double square brackets, but we'll silently remove them if they're present\n\t\t\tif(target.indexOf(\"[[\") === 0 && target.substr(-2) === \"]]\") {\n\t\t\t\ttarget = target.substr(2,target.length - 4);\n\t\t\t}\n\t\t\t$tw.wiki.addToHistory(target);\n\t\t} else if(storyList.length > 0) {\n\t\t\t$tw.wiki.addToHistory(storyList[0]);\n\t\t}\t\t\n\t}\n}\n\n/*\noptions: See below\noptions.updateAddressBar: \"permalink\", \"permaview\" or \"no\" (defaults to \"permaview\")\noptions.updateHistory: \"yes\" or \"no\" (defaults to \"no\")\noptions.copyToClipboard: \"permalink\", \"permaview\" or \"no\" (defaults to \"no\")\noptions.targetTiddler: optional title of target tiddler for permalink\n*/\nfunction updateLocationHash(options) {\n\t// Get the story and the history stack\n\tvar storyList = $tw.wiki.getTiddlerList(DEFAULT_STORY_TITLE),\n\t\thistoryList = $tw.wiki.getTiddlerData(DEFAULT_HISTORY_TITLE,[]),\n\t\ttargetTiddler = \"\";\n\tif(options.targetTiddler) {\n\t\ttargetTiddler = options.targetTiddler;\n\t} else {\n\t\t// The target tiddler is the one at the top of the stack\n\t\tif(historyList.length > 0) {\n\t\t\ttargetTiddler = historyList[historyList.length-1].title;\n\t\t}\n\t\t// Blank the target tiddler if it isn't present in the story\n\t\tif(storyList.indexOf(targetTiddler) === -1) {\n\t\t\ttargetTiddler = \"\";\n\t\t}\n\t}\n\t// Assemble the location hash\n\tswitch(options.updateAddressBar) {\n\t\tcase \"permalink\":\n\t\t\t$tw.locationHash = \"#\" + encodeURIComponent(targetTiddler);\n\t\t\tbreak;\n\t\tcase \"permaview\":\n\t\t\t$tw.locationHash = \"#\" + encodeURIComponent(targetTiddler) + \":\" + encodeURIComponent($tw.utils.stringifyList(storyList));\n\t\t\tbreak;\n\t}\n\t// Copy URL to the clipboard\n\tswitch(options.copyToClipboard) {\n\t\tcase \"permalink\":\n\t\t\t$tw.utils.copyToClipboard($tw.utils.getLocationPath() + \"#\" + encodeURIComponent(targetTiddler));\n\t\t\tbreak;\n\t\tcase \"permaview\":\n\t\t\t$tw.utils.copyToClipboard($tw.utils.getLocationPath() + \"#\" + encodeURIComponent(targetTiddler) + \":\" + encodeURIComponent($tw.utils.stringifyList(storyList)));\n\t\t\tbreak;\n\t}\n\t// Only change the location hash if we must, thus avoiding unnecessary onhashchange events\n\tif($tw.utils.getLocationHash() !== $tw.locationHash) {\n\t\tif(options.updateHistory === \"yes\") {\n\t\t\t// Assign the location hash so that history is updated\n\t\t\twindow.location.hash = $tw.locationHash;\n\t\t} else {\n\t\t\t// We use replace so that browser history isn't affected\n\t\t\twindow.location.replace(window.location.toString().split(\"#\")[0] + $tw.locationHash);\n\t\t}\n\t}\n}\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/windows.js": {
"title": "$:/core/modules/startup/windows.js",
"text": "/*\\\ntitle: $:/core/modules/startup/windows.js\ntype: application/javascript\nmodule-type: startup\n\nSetup root widget handlers for the messages concerned with opening external browser windows\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"windows\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\n// Global to keep track of open windows (hashmap by title)\nvar windows = {};\n\nexports.startup = function() {\n\t// Handle open window message\n\t$tw.rootWidget.addEventListener(\"tm-open-window\",function(event) {\n\t\t// Get the parameters\n\t\tvar refreshHandler,\n\t\t\ttitle = event.param || event.tiddlerTitle,\n\t\t\tparamObject = event.paramObject || {},\n\t\t\twindowTitle = paramObject.windowTitle || title,\n\t\t\ttemplate = paramObject.template || \"$:/core/templates/single.tiddler.window\",\n\t\t\twidth = paramObject.width || \"700\",\n\t\t\theight = paramObject.height || \"600\",\n\t\t\tvariables = $tw.utils.extend({},paramObject,{currentTiddler: title});\n\t\t// Open the window\n\t\tvar srcWindow,\n\t\t srcDocument;\n\t\t// In case that popup blockers deny opening a new window\n\t\ttry {\n\t\t\tsrcWindow = window.open(\"\",\"external-\" + title,\"scrollbars,width=\" + width + \",height=\" + height),\n\t\t\tsrcDocument = srcWindow.document;\n\t\t}\n\t\tcatch(e) {\n\t\t\treturn;\n\t\t}\n\t\twindows[title] = srcWindow;\n\t\t// Check for reopening the same window\n\t\tif(srcWindow.haveInitialisedWindow) {\n\t\t\treturn;\n\t\t}\n\t\t// Initialise the document\n\t\tsrcDocument.write(\"<html><head></head><body class='tc-body tc-single-tiddler-window'></body></html>\");\n\t\tsrcDocument.close();\n\t\tsrcDocument.title = windowTitle;\n\t\tsrcWindow.addEventListener(\"beforeunload\",function(event) {\n\t\t\tdelete windows[title];\n\t\t\t$tw.wiki.removeEventListener(\"change\",refreshHandler);\n\t\t},false);\n\t\t// Set up the styles\n\t\tvar styleWidgetNode = $tw.wiki.makeTranscludeWidget(\"$:/core/ui/PageStylesheet\",{\n\t\t\t\tdocument: $tw.fakeDocument,\n\t\t\t\tvariables: variables,\n\t\t\t\timportPageMacros: true}),\n\t\t\tstyleContainer = $tw.fakeDocument.createElement(\"style\");\n\t\tstyleWidgetNode.render(styleContainer,null);\n\t\tvar styleElement = srcDocument.createElement(\"style\");\n\t\tstyleElement.innerHTML = styleContainer.textContent;\n\t\tsrcDocument.head.insertBefore(styleElement,srcDocument.head.firstChild);\n\t\t// Render the text of the tiddler\n\t\tvar parser = $tw.wiki.parseTiddler(template),\n\t\t\twidgetNode = $tw.wiki.makeWidget(parser,{document: srcDocument, parentWidget: $tw.rootWidget, variables: variables});\n\t\twidgetNode.render(srcDocument.body,srcDocument.body.firstChild);\n\t\t// Function to handle refreshes\n\t\trefreshHandler = function(changes) {\n\t\t\tif(styleWidgetNode.refresh(changes,styleContainer,null)) {\n\t\t\t\tstyleElement.innerHTML = styleContainer.textContent;\n\t\t\t}\n\t\t\twidgetNode.refresh(changes);\n\t\t};\n\t\t$tw.wiki.addEventListener(\"change\",refreshHandler);\n\t\t// Listen for keyboard shortcuts\n\t\t$tw.utils.addEventListeners(srcDocument,[{\n\t\t\tname: \"keydown\",\n\t\t\thandlerObject: $tw.keyboardManager,\n\t\t\thandlerMethod: \"handleKeydownEvent\"\n\t\t},{\n\t\t\tname: \"click\",\n\t\t\thandlerObject: $tw.popup,\n\t\t\thandlerMethod: \"handleEvent\"\n\t\t}]);\n\t\tsrcWindow.haveInitialisedWindow = true;\n\t});\n\t// Close open windows when unloading main window\n\t$tw.addUnloadTask(function() {\n\t\t$tw.utils.each(windows,function(win) {\n\t\t\twin.close();\n\t\t});\n\t});\n\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/story.js": {
"title": "$:/core/modules/story.js",
"text": "/*\\\ntitle: $:/core/modules/story.js\ntype: application/javascript\nmodule-type: global\n\nLightweight object for managing interactions with the story and history lists.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nConstruct Story object with options:\nwiki: reference to wiki object to use to resolve tiddler titles\nstoryTitle: title of story list tiddler\nhistoryTitle: title of history list tiddler\n*/\nfunction Story(options) {\n\toptions = options || {};\n\tthis.wiki = options.wiki || $tw.wiki;\n\tthis.storyTitle = options.storyTitle || \"$:/StoryList\";\n\tthis.historyTitle = options.historyTitle || \"$:/HistoryList\";\n};\n\nStory.prototype.navigateTiddler = function(navigateTo,navigateFromTitle,navigateFromClientRect) {\n\tthis.addToStory(navigateTo,navigateFromTitle);\n\tthis.addToHistory(navigateTo,navigateFromClientRect);\n};\n\nStory.prototype.getStoryList = function() {\n\treturn this.wiki.getTiddlerList(this.storyTitle) || [];\n};\n\nStory.prototype.addToStory = function(navigateTo,navigateFromTitle,options) {\n\toptions = options || {};\n\tvar storyList = this.getStoryList();\n\t// See if the tiddler is already there\n\tvar slot = storyList.indexOf(navigateTo);\n\t// Quit if it already exists in the story river\n\tif(slot >= 0) {\n\t\treturn;\n\t}\n\t// First we try to find the position of the story element we navigated from\n\tvar fromIndex = storyList.indexOf(navigateFromTitle);\n\tif(fromIndex >= 0) {\n\t\t// The tiddler is added from inside the river\n\t\t// Determine where to insert the tiddler; Fallback is \"below\"\n\t\tswitch(options.openLinkFromInsideRiver) {\n\t\t\tcase \"top\":\n\t\t\t\tslot = 0;\n\t\t\t\tbreak;\n\t\t\tcase \"bottom\":\n\t\t\t\tslot = storyList.length;\n\t\t\t\tbreak;\n\t\t\tcase \"above\":\n\t\t\t\tslot = fromIndex;\n\t\t\t\tbreak;\n\t\t\tcase \"below\": // Intentional fall-through\n\t\t\tdefault:\n\t\t\t\tslot = fromIndex + 1;\n\t\t\t\tbreak;\n\t\t}\n\t} else {\n\t\t// The tiddler is opened from outside the river. Determine where to insert the tiddler; default is \"top\"\n\t\tif(options.openLinkFromOutsideRiver === \"bottom\") {\n\t\t\t// Insert at bottom\n\t\t\tslot = storyList.length;\n\t\t} else {\n\t\t\t// Insert at top\n\t\t\tslot = 0;\n\t\t}\n\t}\n\t// Add the tiddler\n\tstoryList.splice(slot,0,navigateTo);\n\t// Save the story\n\tthis.saveStoryList(storyList);\n};\n\nStory.prototype.saveStoryList = function(storyList) {\n\tvar storyTiddler = this.wiki.getTiddler(this.storyTitle);\n\tthis.wiki.addTiddler(new $tw.Tiddler(\n\t\tthis.wiki.getCreationFields(),\n\t\t{title: this.storyTitle},\n\t\tstoryTiddler,\n\t\t{list: storyList},\n\t\tthis.wiki.getModificationFields()\n\t));\n};\n\nStory.prototype.addToHistory = function(navigateTo,navigateFromClientRect) {\n\tvar titles = $tw.utils.isArray(navigateTo) ? navigateTo : [navigateTo];\n\t// Add a new record to the top of the history stack\n\tvar historyList = this.wiki.getTiddlerData(this.historyTitle,[]);\n\t$tw.utils.each(titles,function(title) {\n\t\thistoryList.push({title: title, fromPageRect: navigateFromClientRect});\n\t});\n\tthis.wiki.setTiddlerData(this.historyTitle,historyList,{\"current-tiddler\": titles[titles.length-1]});\n};\n\nStory.prototype.storyCloseTiddler = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storyCloseAllTiddlers = function() {\n// TBD\n};\n\nStory.prototype.storyCloseOtherTiddlers = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storyEditTiddler = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storyDeleteTiddler = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storySaveTiddler = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storyCancelTiddler = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storyNewTiddler = function(targetTitle) {\n// TBD\n};\n\nexports.Story = Story;\n\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/storyviews/classic.js": {
"title": "$:/core/modules/storyviews/classic.js",
"text": "/*\\\ntitle: $:/core/modules/storyviews/classic.js\ntype: application/javascript\nmodule-type: storyview\n\nViews the story as a linear sequence\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar easing = \"cubic-bezier(0.645, 0.045, 0.355, 1)\"; // From http://easings.net/#easeInOutCubic\n\nvar ClassicStoryView = function(listWidget) {\n\tthis.listWidget = listWidget;\n};\n\nClassicStoryView.prototype.navigateTo = function(historyInfo) {\n\tvar duration = $tw.utils.getAnimationDuration()\n\tvar listElementIndex = this.listWidget.findListItem(0,historyInfo.title);\n\tif(listElementIndex === undefined) {\n\t\treturn;\n\t}\n\tvar listItemWidget = this.listWidget.children[listElementIndex],\n\t\ttargetElement = listItemWidget.findFirstDomNode();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\tif(duration) {\n\t\t// Scroll the node into view\n\t\tthis.listWidget.dispatchEvent({type: \"tm-scroll\", target: targetElement});\t\n\t} else {\n\t\ttargetElement.scrollIntoView();\n\t}\n};\n\nClassicStoryView.prototype.insert = function(widget) {\n\tvar duration = $tw.utils.getAnimationDuration();\n\tif(duration) {\n\t\tvar targetElement = widget.findFirstDomNode();\n\t\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\t\tif(!(targetElement instanceof Element)) {\n\t\t\treturn;\n\t\t}\n\t\t// Get the current height of the tiddler\n\t\tvar computedStyle = window.getComputedStyle(targetElement),\n\t\t\tcurrMarginBottom = parseInt(computedStyle.marginBottom,10),\n\t\t\tcurrMarginTop = parseInt(computedStyle.marginTop,10),\n\t\t\tcurrHeight = targetElement.offsetHeight + currMarginTop;\n\t\t// Reset the margin once the transition is over\n\t\tsetTimeout(function() {\n\t\t\t$tw.utils.setStyle(targetElement,[\n\t\t\t\t{transition: \"none\"},\n\t\t\t\t{marginBottom: \"\"}\n\t\t\t]);\n\t\t},duration);\n\t\t// Set up the initial position of the element\n\t\t$tw.utils.setStyle(targetElement,[\n\t\t\t{transition: \"none\"},\n\t\t\t{marginBottom: (-currHeight) + \"px\"},\n\t\t\t{opacity: \"0.0\"}\n\t\t]);\n\t\t$tw.utils.forceLayout(targetElement);\n\t\t// Transition to the final position\n\t\t$tw.utils.setStyle(targetElement,[\n\t\t\t{transition: \"opacity \" + duration + \"ms \" + easing + \", \" +\n\t\t\t\t\t\t\"margin-bottom \" + duration + \"ms \" + easing},\n\t\t\t{marginBottom: currMarginBottom + \"px\"},\n\t\t\t{opacity: \"1.0\"}\n\t]);\n\t}\n};\n\nClassicStoryView.prototype.remove = function(widget) {\n\tvar duration = $tw.utils.getAnimationDuration();\n\tif(duration) {\n\t\tvar targetElement = widget.findFirstDomNode(),\n\t\t\tremoveElement = function() {\n\t\t\t\twidget.removeChildDomNodes();\n\t\t\t};\n\t\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\t\tif(!(targetElement instanceof Element)) {\n\t\t\tremoveElement();\n\t\t\treturn;\n\t\t}\n\t\t// Get the current height of the tiddler\n\t\tvar currWidth = targetElement.offsetWidth,\n\t\t\tcomputedStyle = window.getComputedStyle(targetElement),\n\t\t\tcurrMarginBottom = parseInt(computedStyle.marginBottom,10),\n\t\t\tcurrMarginTop = parseInt(computedStyle.marginTop,10),\n\t\t\tcurrHeight = targetElement.offsetHeight + currMarginTop;\n\t\t// Remove the dom nodes of the widget at the end of the transition\n\t\tsetTimeout(removeElement,duration);\n\t\t// Animate the closure\n\t\t$tw.utils.setStyle(targetElement,[\n\t\t\t{transition: \"none\"},\n\t\t\t{transform: \"translateX(0px)\"},\n\t\t\t{marginBottom: currMarginBottom + \"px\"},\n\t\t\t{opacity: \"1.0\"}\n\t\t]);\n\t\t$tw.utils.forceLayout(targetElement);\n\t\t$tw.utils.setStyle(targetElement,[\n\t\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms \" + easing + \", \" +\n\t\t\t\t\t\t\"opacity \" + duration + \"ms \" + easing + \", \" +\n\t\t\t\t\t\t\"margin-bottom \" + duration + \"ms \" + easing},\n\t\t\t{transform: \"translateX(-\" + currWidth + \"px)\"},\n\t\t\t{marginBottom: (-currHeight) + \"px\"},\n\t\t\t{opacity: \"0.0\"}\n\t\t]);\n\t} else {\n\t\twidget.removeChildDomNodes();\n\t}\n};\n\nexports.classic = ClassicStoryView;\n\n})();",
"type": "application/javascript",
"module-type": "storyview"
},
"$:/core/modules/storyviews/pop.js": {
"title": "$:/core/modules/storyviews/pop.js",
"text": "/*\\\ntitle: $:/core/modules/storyviews/pop.js\ntype: application/javascript\nmodule-type: storyview\n\nAnimates list insertions and removals\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar PopStoryView = function(listWidget) {\n\tthis.listWidget = listWidget;\n};\n\nPopStoryView.prototype.navigateTo = function(historyInfo) {\n\tvar listElementIndex = this.listWidget.findListItem(0,historyInfo.title);\n\tif(listElementIndex === undefined) {\n\t\treturn;\n\t}\n\tvar listItemWidget = this.listWidget.children[listElementIndex],\n\t\ttargetElement = listItemWidget.findFirstDomNode();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\t// Scroll the node into view\n\tthis.listWidget.dispatchEvent({type: \"tm-scroll\", target: targetElement});\n};\n\nPopStoryView.prototype.insert = function(widget) {\n\tvar targetElement = widget.findFirstDomNode(),\n\t\tduration = $tw.utils.getAnimationDuration();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\t// Reset once the transition is over\n\tsetTimeout(function() {\n\t\t$tw.utils.setStyle(targetElement,[\n\t\t\t{transition: \"none\"},\n\t\t\t{transform: \"none\"}\n\t\t]);\n\t\t$tw.utils.setStyle(widget.document.body,[\n\t\t\t{\"overflow-x\": \"\"}\n\t\t]);\n\t},duration);\n\t// Prevent the page from overscrolling due to the zoom factor\n\t$tw.utils.setStyle(widget.document.body,[\n\t\t{\"overflow-x\": \"hidden\"}\n\t]);\n\t// Set up the initial position of the element\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: \"none\"},\n\t\t{transform: \"scale(2)\"},\n\t\t{opacity: \"0.0\"}\n\t]);\n\t$tw.utils.forceLayout(targetElement);\n\t// Transition to the final position\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"opacity \" + duration + \"ms ease-in-out\"},\n\t\t{transform: \"scale(1)\"},\n\t\t{opacity: \"1.0\"}\n\t]);\n};\n\nPopStoryView.prototype.remove = function(widget) {\n\tvar targetElement = widget.findFirstDomNode(),\n\t\tduration = $tw.utils.getAnimationDuration(),\n\t\tremoveElement = function() {\n\t\t\tif(targetElement && targetElement.parentNode) {\n\t\t\t\twidget.removeChildDomNodes();\n\t\t\t}\n\t\t};\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\tremoveElement();\n\t\treturn;\n\t}\n\t// Remove the element at the end of the transition\n\tsetTimeout(removeElement,duration);\n\t// Animate the closure\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: \"none\"},\n\t\t{transform: \"scale(1)\"},\n\t\t{opacity: \"1.0\"}\n\t]);\n\t$tw.utils.forceLayout(targetElement);\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"opacity \" + duration + \"ms ease-in-out\"},\n\t\t{transform: \"scale(0.1)\"},\n\t\t{opacity: \"0.0\"}\n\t]);\n};\n\nexports.pop = PopStoryView;\n\n})();\n",
"type": "application/javascript",
"module-type": "storyview"
},
"$:/core/modules/storyviews/zoomin.js": {
"title": "$:/core/modules/storyviews/zoomin.js",
"text": "/*\\\ntitle: $:/core/modules/storyviews/zoomin.js\ntype: application/javascript\nmodule-type: storyview\n\nZooms between individual tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar easing = \"cubic-bezier(0.645, 0.045, 0.355, 1)\"; // From http://easings.net/#easeInOutCubic\n\nvar ZoominListView = function(listWidget) {\n\tvar self = this;\n\tthis.listWidget = listWidget;\n\t// Get the index of the tiddler that is at the top of the history\n\tvar history = this.listWidget.wiki.getTiddlerDataCached(this.listWidget.historyTitle,[]),\n\t\ttargetTiddler;\n\tif(history.length > 0) {\n\t\ttargetTiddler = history[history.length-1].title;\n\t}\n\t// Make all the tiddlers position absolute, and hide all but the top (or first) one\n\t$tw.utils.each(this.listWidget.children,function(itemWidget,index) {\n\t\tvar domNode = itemWidget.findFirstDomNode();\n\t\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\t\tif(!(domNode instanceof Element)) {\n\t\t\treturn;\n\t\t}\n\t\tif((targetTiddler && targetTiddler !== itemWidget.parseTreeNode.itemTitle) || (!targetTiddler && index)) {\n\t\t\tdomNode.style.display = \"none\";\n\t\t} else {\n\t\t\tself.currentTiddlerDomNode = domNode;\n\t\t}\n\t\t$tw.utils.addClass(domNode,\"tc-storyview-zoomin-tiddler\");\n\t});\n};\n\nZoominListView.prototype.navigateTo = function(historyInfo) {\n\tvar duration = $tw.utils.getAnimationDuration(),\n\t\tlistElementIndex = this.listWidget.findListItem(0,historyInfo.title);\n\tif(listElementIndex === undefined) {\n\t\treturn;\n\t}\n\tvar listItemWidget = this.listWidget.children[listElementIndex],\n\t\ttargetElement = listItemWidget.findFirstDomNode();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\t// Make the new tiddler be position absolute and visible so that we can measure it\n\t$tw.utils.addClass(targetElement,\"tc-storyview-zoomin-tiddler\");\n\t$tw.utils.setStyle(targetElement,[\n\t\t{display: \"block\"},\n\t\t{transformOrigin: \"0 0\"},\n\t\t{transform: \"translateX(0px) translateY(0px) scale(1)\"},\n\t\t{transition: \"none\"},\n\t\t{opacity: \"0.0\"}\n\t]);\n\t// Get the position of the source node, or use the centre of the window as the source position\n\tvar sourceBounds = historyInfo.fromPageRect || {\n\t\t\tleft: window.innerWidth/2 - 2,\n\t\t\ttop: window.innerHeight/2 - 2,\n\t\t\twidth: window.innerWidth/8,\n\t\t\theight: window.innerHeight/8\n\t\t};\n\t// Try to find the title node in the target tiddler\n\tvar titleDomNode = findTitleDomNode(listItemWidget) || listItemWidget.findFirstDomNode(),\n\t\tzoomBounds = titleDomNode.getBoundingClientRect();\n\t// Compute the transform for the target tiddler to make the title lie over the source rectange\n\tvar targetBounds = targetElement.getBoundingClientRect(),\n\t\tscale = sourceBounds.width / zoomBounds.width,\n\t\tx = sourceBounds.left - targetBounds.left - (zoomBounds.left - targetBounds.left) * scale,\n\t\ty = sourceBounds.top - targetBounds.top - (zoomBounds.top - targetBounds.top) * scale;\n\t// Transform the target tiddler to its starting position\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transform: \"translateX(\" + x + \"px) translateY(\" + y + \"px) scale(\" + scale + \")\"}\n\t]);\n\t// Force layout\n\t$tw.utils.forceLayout(targetElement);\n\t// Apply the ending transitions with a timeout to ensure that the previously applied transformations are applied first\n\tvar self = this,\n\t\tprevCurrentTiddler = this.currentTiddlerDomNode;\n\tthis.currentTiddlerDomNode = targetElement;\n\t// Transform the target tiddler to its natural size\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms \" + easing + \", opacity \" + duration + \"ms \" + easing},\n\t\t{opacity: \"1.0\"},\n\t\t{transform: \"translateX(0px) translateY(0px) scale(1)\"},\n\t\t{zIndex: \"500\"},\n\t]);\n\t// Transform the previous tiddler out of the way and then hide it\n\tif(prevCurrentTiddler && prevCurrentTiddler !== targetElement) {\n\t\tscale = zoomBounds.width / sourceBounds.width;\n\t\tx = zoomBounds.left - targetBounds.left - (sourceBounds.left - targetBounds.left) * scale;\n\t\ty = zoomBounds.top - targetBounds.top - (sourceBounds.top - targetBounds.top) * scale;\n\t\t$tw.utils.setStyle(prevCurrentTiddler,[\n\t\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms \" + easing + \", opacity \" + duration + \"ms \" + easing},\n\t\t\t{opacity: \"0.0\"},\n\t\t\t{transformOrigin: \"0 0\"},\n\t\t\t{transform: \"translateX(\" + x + \"px) translateY(\" + y + \"px) scale(\" + scale + \")\"},\n\t\t\t{zIndex: \"0\"}\n\t\t]);\n\t\t// Hide the tiddler when the transition has finished\n\t\tsetTimeout(function() {\n\t\t\tif(self.currentTiddlerDomNode !== prevCurrentTiddler) {\n\t\t\t\tprevCurrentTiddler.style.display = \"none\";\n\t\t\t}\n\t\t},duration);\n\t}\n\t// Scroll the target into view\n//\t$tw.pageScroller.scrollIntoView(targetElement);\n};\n\n/*\nFind the first child DOM node of a widget that has the class \"tc-title\"\n*/\nfunction findTitleDomNode(widget,targetClass) {\n\ttargetClass = targetClass || \"tc-title\";\n\tvar domNode = widget.findFirstDomNode();\n\tif(domNode && domNode.querySelector) {\n\t\treturn domNode.querySelector(\".\" + targetClass);\n\t}\n\treturn null;\n}\n\nZoominListView.prototype.insert = function(widget) {\n\tvar targetElement = widget.findFirstDomNode();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\t// Make the newly inserted node position absolute and hidden\n\t$tw.utils.addClass(targetElement,\"tc-storyview-zoomin-tiddler\");\n\t$tw.utils.setStyle(targetElement,[\n\t\t{display: \"none\"}\n\t]);\n};\n\nZoominListView.prototype.remove = function(widget) {\n\tvar targetElement = widget.findFirstDomNode(),\n\t\tduration = $tw.utils.getAnimationDuration(),\n\t\tremoveElement = function() {\n\t\t\twidget.removeChildDomNodes();\n\t\t};\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\tremoveElement();\n\t\treturn;\n\t}\n\t// Abandon if hidden\n\tif(targetElement.style.display != \"block\" ) {\n\t\tremoveElement();\n\t\treturn;\n\t}\n\t// Set up the tiddler that is being closed\n\t$tw.utils.addClass(targetElement,\"tc-storyview-zoomin-tiddler\");\n\t$tw.utils.setStyle(targetElement,[\n\t\t{display: \"block\"},\n\t\t{transformOrigin: \"50% 50%\"},\n\t\t{transform: \"translateX(0px) translateY(0px) scale(1)\"},\n\t\t{transition: \"none\"},\n\t\t{zIndex: \"0\"}\n\t]);\n\t// We'll move back to the previous or next element in the story\n\tvar toWidget = widget.previousSibling();\n\tif(!toWidget) {\n\t\ttoWidget = widget.nextSibling();\n\t}\n\tvar toWidgetDomNode = toWidget && toWidget.findFirstDomNode();\n\t// Set up the tiddler we're moving back in\n\tif(toWidgetDomNode) {\n\t\t$tw.utils.addClass(toWidgetDomNode,\"tc-storyview-zoomin-tiddler\");\n\t\t$tw.utils.setStyle(toWidgetDomNode,[\n\t\t\t{display: \"block\"},\n\t\t\t{transformOrigin: \"50% 50%\"},\n\t\t\t{transform: \"translateX(0px) translateY(0px) scale(10)\"},\n\t\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms \" + easing + \", opacity \" + duration + \"ms \" + easing},\n\t\t\t{opacity: \"0\"},\n\t\t\t{zIndex: \"500\"}\n\t\t]);\n\t\tthis.currentTiddlerDomNode = toWidgetDomNode;\n\t}\n\t// Animate them both\n\t// Force layout\n\t$tw.utils.forceLayout(this.listWidget.parentDomNode);\n\t// First, the tiddler we're closing\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transformOrigin: \"50% 50%\"},\n\t\t{transform: \"translateX(0px) translateY(0px) scale(0.1)\"},\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms \" + easing + \", opacity \" + duration + \"ms \" + easing},\n\t\t{opacity: \"0\"},\n\t\t{zIndex: \"0\"}\n\t]);\n\tsetTimeout(removeElement,duration);\n\t// Now the tiddler we're going back to\n\tif(toWidgetDomNode) {\n\t\t$tw.utils.setStyle(toWidgetDomNode,[\n\t\t\t{transform: \"translateX(0px) translateY(0px) scale(1)\"},\n\t\t\t{opacity: \"1\"}\n\t\t]);\n\t}\n\treturn true; // Indicate that we'll delete the DOM node\n};\n\nexports.zoomin = ZoominListView;\n\n})();\n",
"type": "application/javascript",
"module-type": "storyview"
},
"$:/core/modules/syncer.js": {
"title": "$:/core/modules/syncer.js",
"text": "/*\\\ntitle: $:/core/modules/syncer.js\ntype: application/javascript\nmodule-type: global\n\nThe syncer tracks changes to the store and synchronises them to a remote data store represented as a \"sync adaptor\"\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nDefaults\n*/\nSyncer.prototype.titleIsLoggedIn = \"$:/status/IsLoggedIn\";\nSyncer.prototype.titleIsAnonymous = \"$:/status/IsAnonymous\";\nSyncer.prototype.titleIsReadOnly = \"$:/status/IsReadOnly\";\nSyncer.prototype.titleUserName = \"$:/status/UserName\";\nSyncer.prototype.titleSyncFilter = \"$:/config/SyncFilter\";\nSyncer.prototype.titleSyncPollingInterval = \"$:/config/SyncPollingInterval\";\nSyncer.prototype.titleSyncDisableLazyLoading = \"$:/config/SyncDisableLazyLoading\";\nSyncer.prototype.titleSavedNotification = \"$:/language/Notifications/Save/Done\";\nSyncer.prototype.titleSyncThrottleInterval = \"$:/config/SyncThrottleInterval\";\nSyncer.prototype.taskTimerInterval = 1 * 1000; // Interval for sync timer\nSyncer.prototype.throttleInterval = 1 * 1000; // Defer saving tiddlers if they've changed in the last 1s...\nSyncer.prototype.errorRetryInterval = 5 * 1000; // Interval to retry after an error\nSyncer.prototype.fallbackInterval = 10 * 1000; // Unless the task is older than 10s\nSyncer.prototype.pollTimerInterval = 60 * 1000; // Interval for polling for changes from the adaptor\n\n/*\nInstantiate the syncer with the following options:\nsyncadaptor: reference to syncadaptor to be used\nwiki: wiki to be synced\n*/\nfunction Syncer(options) {\n\tvar self = this;\n\tthis.wiki = options.wiki;\n\t// Save parameters\n\tthis.syncadaptor = options.syncadaptor;\n\tthis.disableUI = !!options.disableUI;\n\tthis.titleIsLoggedIn = options.titleIsLoggedIn || this.titleIsLoggedIn;\n\tthis.titleUserName = options.titleUserName || this.titleUserName;\n\tthis.titleSyncFilter = options.titleSyncFilter || this.titleSyncFilter;\n\tthis.titleSavedNotification = options.titleSavedNotification || this.titleSavedNotification;\n\tthis.taskTimerInterval = options.taskTimerInterval || this.taskTimerInterval;\n\tthis.throttleInterval = options.throttleInterval || parseInt(this.wiki.getTiddlerText(this.titleSyncThrottleInterval,\"\"),10) || this.throttleInterval;\n\tthis.errorRetryInterval = options.errorRetryInterval || this.errorRetryInterval;\n\tthis.fallbackInterval = options.fallbackInterval || this.fallbackInterval;\n\tthis.pollTimerInterval = options.pollTimerInterval || parseInt(this.wiki.getTiddlerText(this.titleSyncPollingInterval,\"\"),10) || this.pollTimerInterval;\n\tthis.logging = \"logging\" in options ? options.logging : true;\n\t// Make a logger\n\tthis.logger = new $tw.utils.Logger(\"syncer\" + ($tw.browser ? \"-browser\" : \"\") + ($tw.node ? \"-server\" : \"\") + (this.syncadaptor.name ? (\"-\" + this.syncadaptor.name) : \"\"),{\n\t\tcolour: \"cyan\",\n\t\tenable: this.logging,\n\t\tsaveHistory: true\n\t});\n\t// Make another logger for connection errors\n\tthis.loggerConnection = new $tw.utils.Logger(\"syncer\" + ($tw.browser ? \"-browser\" : \"\") + ($tw.node ? \"-server\" : \"\") + (this.syncadaptor.name ? (\"-\" + this.syncadaptor.name) : \"\") + \"-connection\",{\n\t\tcolour: \"cyan\",\n\t\tenable: this.logging\n\t});\n\t// Ask the syncadaptor to use the main logger\n\tif(this.syncadaptor.setLoggerSaveBuffer) {\n\t\tthis.syncadaptor.setLoggerSaveBuffer(this.logger);\n\t}\n\t// Compile the dirty tiddler filter\n\tthis.filterFn = this.wiki.compileFilter(this.wiki.getTiddlerText(this.titleSyncFilter));\n\t// Record information for known tiddlers\n\tthis.readTiddlerInfo();\n\tthis.titlesToBeLoaded = {}; // Hashmap of titles of tiddlers that need loading from the server\n\tthis.titlesHaveBeenLazyLoaded = {}; // Hashmap of titles of tiddlers that have already been lazily loaded from the server\n\t// Timers\n\tthis.taskTimerId = null; // Timer for task dispatch\n\tthis.pollTimerId = null; // Timer for polling server\n\t// Number of outstanding requests\n\tthis.numTasksInProgress = 0;\n\t// Listen out for changes to tiddlers\n\tthis.wiki.addEventListener(\"change\",function(changes) {\n\t\t// Filter the changes to just include ones that are being synced\n\t\tvar filteredChanges = self.getSyncedTiddlers(function(callback) {\n\t\t\t$tw.utils.each(changes,function(change,title) {\n\t\t\t\tvar tiddler = self.wiki.tiddlerExists(title) && self.wiki.getTiddler(title);\n\t\t\t\tcallback(tiddler,title);\n\t\t\t});\n\t\t});\n\t\tif(filteredChanges.length > 0) {\n\t\t\tself.processTaskQueue();\n\t\t} else {\n\t\t\t// Look for deletions of tiddlers we're already syncing\t\n\t\t\tvar outstandingDeletion = false\n\t\t\t$tw.utils.each(changes,function(change,title,object) {\n\t\t\t\tif(change.deleted && $tw.utils.hop(self.tiddlerInfo,title)) {\n\t\t\t\t\toutstandingDeletion = true;\n\t\t\t\t}\n\t\t\t});\n\t\t\tif(outstandingDeletion) {\n\t\t\t\tself.processTaskQueue();\n\t\t\t}\n\t\t}\n\t});\n\t// Browser event handlers\n\tif($tw.browser && !this.disableUI) {\n\t\t// Set up our beforeunload handler\n\t\t$tw.addUnloadTask(function(event) {\n\t\t\tvar confirmationMessage;\n\t\t\tif(self.isDirty()) {\n\t\t\t\tconfirmationMessage = $tw.language.getString(\"UnsavedChangesWarning\");\n\t\t\t\tevent.returnValue = confirmationMessage; // Gecko\n\t\t\t}\n\t\t\treturn confirmationMessage;\n\t\t});\n\t\t// Listen out for login/logout/refresh events in the browser\n\t\t$tw.rootWidget.addEventListener(\"tm-login\",function() {\n\t\t\tself.handleLoginEvent();\n\t\t});\n\t\t$tw.rootWidget.addEventListener(\"tm-logout\",function() {\n\t\t\tself.handleLogoutEvent();\n\t\t});\n\t\t$tw.rootWidget.addEventListener(\"tm-server-refresh\",function() {\n\t\t\tself.handleRefreshEvent();\n\t\t});\n\t\t$tw.rootWidget.addEventListener(\"tm-copy-syncer-logs-to-clipboard\",function() {\n\t\t\t$tw.utils.copyToClipboard($tw.utils.getSystemInfo() + \"\\n\\nLog:\\n\" + self.logger.getBuffer());\n\t\t});\n\t}\n\t// Listen out for lazyLoad events\n\tif(!this.disableUI && $tw.wiki.getTiddlerText(this.titleSyncDisableLazyLoading) !== \"yes\") {\n\t\tthis.wiki.addEventListener(\"lazyLoad\",function(title) {\n\t\t\tself.handleLazyLoadEvent(title);\n\t\t});\t\t\n\t}\n\t// Get the login status\n\tthis.getStatus(function(err,isLoggedIn) {\n\t\t// Do a sync from the server\n\t\tself.syncFromServer();\n\t});\n}\n\n/*\nShow a generic network error alert\n*/\nSyncer.prototype.displayError = function(msg,err) {\n\tif(err === ($tw.language.getString(\"Error/XMLHttpRequest\") + \": 0\")) {\n\t\tthis.loggerConnection.alert($tw.language.getString(\"Error/NetworkErrorAlert\"));\n\t\tthis.logger.log(msg + \":\",err);\n\t} else {\n\t\tthis.logger.alert(msg + \":\",err);\n\t}\n};\n\n/*\nReturn an array of the tiddler titles that are subjected to syncing\n*/\nSyncer.prototype.getSyncedTiddlers = function(source) {\n\treturn this.filterFn.call(this.wiki,source);\n};\n\n/*\nReturn an array of the tiddler titles that are subjected to syncing\n*/\nSyncer.prototype.getTiddlerRevision = function(title) {\n\tif(this.syncadaptor && this.syncadaptor.getTiddlerRevision) {\n\t\treturn this.syncadaptor.getTiddlerRevision(title);\n\t} else {\n\t\treturn this.wiki.getTiddler(title).fields.revision;\t\n\t} \n};\n\n/*\nRead (or re-read) the latest tiddler info from the store\n*/\nSyncer.prototype.readTiddlerInfo = function() {\n\t// Hashmap by title of {revision:,changeCount:,adaptorInfo:}\n\t// \"revision\" is the revision of the tiddler last seen on the server, and \"changecount\" is the corresponding local changecount\n\tthis.tiddlerInfo = {};\n\t// Record information for known tiddlers\n\tvar self = this,\n\t\ttiddlers = this.getSyncedTiddlers();\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar tiddler = self.wiki.tiddlerExists(title) && self.wiki.getTiddler(title);\n\t\tself.tiddlerInfo[title] = {\n\t\t\trevision: self.getTiddlerRevision(title),\n\t\t\tadaptorInfo: self.syncadaptor && self.syncadaptor.getTiddlerInfo(tiddler),\n\t\t\tchangeCount: self.wiki.getChangeCount(title)\n\t\t};\n\t});\n};\n\n/*\nChecks whether the wiki is dirty (ie the window shouldn't be closed)\n*/\nSyncer.prototype.isDirty = function() {\n\tthis.logger.log(\"Checking dirty status\");\n\t// Check tiddlers that are in the store and included in the filter function\n\tvar titles = this.getSyncedTiddlers();\n\tfor(var index=0; index<titles.length; index++) {\n\t\tvar title = titles[index],\n\t\t\ttiddlerInfo = this.tiddlerInfo[title];\n\t\tif(this.wiki.tiddlerExists(title)) {\n\t\t\tif(tiddlerInfo) {\n\t\t\t\t// If the tiddler is known on the server and has been modified locally then it needs to be saved to the server\n\t\t\t\tif($tw.wiki.getChangeCount(title) > tiddlerInfo.changeCount) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// If the tiddler isn't known on the server then it needs to be saved to the server\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t}\n\t// Check tiddlers that are known from the server but not currently in the store\n\ttitles = Object.keys(this.tiddlerInfo);\n\tfor(index=0; index<titles.length; index++) {\n\t\tif(!this.wiki.tiddlerExists(titles[index])) {\n\t\t\t// There must be a pending delete\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n\n/*\nUpdate the document body with the class \"tc-dirty\" if the wiki has unsaved/unsynced changes\n*/\nSyncer.prototype.updateDirtyStatus = function() {\n\tif($tw.browser && !this.disableUI) {\n\t\tvar dirty = this.isDirty();\n\t\t$tw.utils.toggleClass(document.body,\"tc-dirty\",dirty);\n\t\tif(!dirty) {\n\t\t\tthis.loggerConnection.clearAlerts();\n\t\t}\n\t}\n};\n\n/*\nSave an incoming tiddler in the store, and updates the associated tiddlerInfo\n*/\nSyncer.prototype.storeTiddler = function(tiddlerFields) {\n\t// Save the tiddler\n\tvar tiddler = new $tw.Tiddler(tiddlerFields);\n\tthis.wiki.addTiddler(tiddler);\n\t// Save the tiddler revision and changeCount details\n\tthis.tiddlerInfo[tiddlerFields.title] = {\n\t\trevision: this.getTiddlerRevision(tiddlerFields.title),\n\t\tadaptorInfo: this.syncadaptor.getTiddlerInfo(tiddler),\n\t\tchangeCount: this.wiki.getChangeCount(tiddlerFields.title)\n\t};\n};\n\nSyncer.prototype.getStatus = function(callback) {\n\tvar self = this;\n\t// Check if the adaptor supports getStatus()\n\tif(this.syncadaptor && this.syncadaptor.getStatus) {\n\t\t// Mark us as not logged in\n\t\tthis.wiki.addTiddler({title: this.titleIsLoggedIn,text: \"no\"});\n\t\t// Get login status\n\t\tthis.syncadaptor.getStatus(function(err,isLoggedIn,username,isReadOnly,isAnonymous) {\n\t\t\tif(err) {\n\t\t\t\tself.logger.alert(err);\n\t\t\t} else {\n\t\t\t\t// Set the various status tiddlers\n\t\t\t\tself.wiki.addTiddler({title: self.titleIsReadOnly,text: isReadOnly ? \"yes\" : \"no\"});\n\t\t\t\tself.wiki.addTiddler({title: self.titleIsAnonymous,text: isAnonymous ? \"yes\" : \"no\"});\n\t\t\t\tself.wiki.addTiddler({title: self.titleIsLoggedIn,text: isLoggedIn ? \"yes\" : \"no\"});\n\t\t\t\tif(isLoggedIn) {\n\t\t\t\t\tself.wiki.addTiddler({title: self.titleUserName,text: username || \"\"});\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Invoke the callback\n\t\t\tif(callback) {\n\t\t\t\tcallback(err,isLoggedIn,username);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tcallback(null,true,\"UNAUTHENTICATED\");\n\t}\n};\n\n/*\nSynchronise from the server by reading the skinny tiddler list and queuing up loads for any tiddlers that we don't already have up to date\n*/\nSyncer.prototype.syncFromServer = function() {\n\tvar self = this,\n\t\tcancelNextSync = function() {\n\t\t\tif(self.pollTimerId) {\n\t\t\t\tclearTimeout(self.pollTimerId);\n\t\t\t\tself.pollTimerId = null;\n\t\t\t}\n\t\t},\n\t\ttriggerNextSync = function() {\n\t\t\tself.pollTimerId = setTimeout(function() {\n\t\t\t\tself.pollTimerId = null;\n\t\t\t\tself.syncFromServer.call(self);\n\t\t\t},self.pollTimerInterval);\n\t\t};\n\tif(this.syncadaptor && this.syncadaptor.getUpdatedTiddlers) {\n\t\tthis.logger.log(\"Retrieving updated tiddler list\");\n\t\tcancelNextSync();\n\t\tthis.syncadaptor.getUpdatedTiddlers(self,function(err,updates) {\n\t\t\ttriggerNextSync();\n\t\t\tif(err) {\n\t\t\t\tself.displayError($tw.language.getString(\"Error/RetrievingSkinny\"),err);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif(updates) {\n\t\t\t\t$tw.utils.each(updates.modifications,function(title) {\n\t\t\t\t\tself.titlesToBeLoaded[title] = true;\n\t\t\t\t});\n\t\t\t\t$tw.utils.each(updates.deletions,function(title) {\n\t\t\t\t\tdelete self.tiddlerInfo[title];\n\t\t\t\t\tself.logger.log(\"Deleting tiddler missing from server:\",title);\n\t\t\t\t\tself.wiki.deleteTiddler(title);\n\t\t\t\t});\n\t\t\t\tif(updates.modifications.length > 0 || updates.deletions.length > 0) {\n\t\t\t\t\tself.processTaskQueue();\n\t\t\t\t}\t\t\t\t\n\t\t\t}\n\t\t});\n\t} else if(this.syncadaptor && this.syncadaptor.getSkinnyTiddlers) {\n\t\tthis.logger.log(\"Retrieving skinny tiddler list\");\n\t\tcancelNextSync();\n\t\tthis.syncadaptor.getSkinnyTiddlers(function(err,tiddlers) {\n\t\t\ttriggerNextSync();\n\t\t\t// Check for errors\n\t\t\tif(err) {\n\t\t\t\tself.displayError($tw.language.getString(\"Error/RetrievingSkinny\"),err);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Keep track of which tiddlers we already know about have been reported this time\n\t\t\tvar previousTitles = Object.keys(self.tiddlerInfo);\n\t\t\t// Process each incoming tiddler\n\t\t\tfor(var t=0; t<tiddlers.length; t++) {\n\t\t\t\t// Get the incoming tiddler fields, and the existing tiddler\n\t\t\t\tvar tiddlerFields = tiddlers[t],\n\t\t\t\t\tincomingRevision = tiddlerFields.revision + \"\",\n\t\t\t\t\ttiddler = self.wiki.tiddlerExists(tiddlerFields.title) && self.wiki.getTiddler(tiddlerFields.title),\n\t\t\t\t\ttiddlerInfo = self.tiddlerInfo[tiddlerFields.title],\n\t\t\t\t\tcurrRevision = tiddlerInfo ? tiddlerInfo.revision : null,\n\t\t\t\t\tindexInPreviousTitles = previousTitles.indexOf(tiddlerFields.title);\n\t\t\t\tif(indexInPreviousTitles !== -1) {\n\t\t\t\t\tpreviousTitles.splice(indexInPreviousTitles,1);\n\t\t\t\t}\n\t\t\t\t// Ignore the incoming tiddler if it's the same as the revision we've already got\n\t\t\t\tif(currRevision !== incomingRevision) {\n\t\t\t\t\t// Only load the skinny version if we don't already have a fat version of the tiddler\n\t\t\t\t\tif(!tiddler || tiddler.fields.text === undefined) {\n\t\t\t\t\t\tself.storeTiddler(tiddlerFields);\n\t\t\t\t\t}\n\t\t\t\t\t// Do a full load of this tiddler\n\t\t\t\t\tself.titlesToBeLoaded[tiddlerFields.title] = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Delete any tiddlers that were previously reported but missing this time\n\t\t\t$tw.utils.each(previousTitles,function(title) {\n\t\t\t\tdelete self.tiddlerInfo[title];\n\t\t\t\tself.logger.log(\"Deleting tiddler missing from server:\",title);\n\t\t\t\tself.wiki.deleteTiddler(title);\n\t\t\t});\n\t\t\tself.processTaskQueue();\n\t\t});\n\t}\n};\n\n/*\nForce load a tiddler from the server\n*/\nSyncer.prototype.enqueueLoadTiddler = function(title) {\n\tthis.titlesToBeLoaded[title] = true;\n\tthis.processTaskQueue();\n};\n\n/*\nLazily load a skinny tiddler if we can\n*/\nSyncer.prototype.handleLazyLoadEvent = function(title) {\n\t// Ignore if the syncadaptor doesn't handle it\n\tif(!this.syncadaptor.supportsLazyLoading) {\n\t\treturn;\n\t}\n\t// Don't lazy load the same tiddler twice\n\tif(!this.titlesHaveBeenLazyLoaded[title]) {\n\t\t// Don't lazy load if the tiddler isn't included in the sync filter\n\t\tif(this.getSyncedTiddlers().indexOf(title) !== -1) {\n\t\t\t// Mark the tiddler as needing loading, and having already been lazily loaded\n\t\t\tthis.titlesToBeLoaded[title] = true;\n\t\t\tthis.titlesHaveBeenLazyLoaded[title] = true;\n\t\t}\n\t}\n};\n\n/*\nDispay a password prompt and allow the user to login\n*/\nSyncer.prototype.handleLoginEvent = function() {\n\tvar self = this;\n\tthis.getStatus(function(err,isLoggedIn,username) {\n\t\tif(!err && !isLoggedIn) {\n\t\t\t$tw.passwordPrompt.createPrompt({\n\t\t\t\tserviceName: $tw.language.getString(\"LoginToTiddlySpace\"),\n\t\t\t\tcallback: function(data) {\n\t\t\t\t\tself.login(data.username,data.password,function(err,isLoggedIn) {\n\t\t\t\t\t\tself.syncFromServer();\n\t\t\t\t\t});\n\t\t\t\t\treturn true; // Get rid of the password prompt\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n};\n\n/*\nAttempt to login to TiddlyWeb.\n\tusername: username\n\tpassword: password\n\tcallback: invoked with arguments (err,isLoggedIn)\n*/\nSyncer.prototype.login = function(username,password,callback) {\n\tthis.logger.log(\"Attempting to login as\",username);\n\tvar self = this;\n\tif(this.syncadaptor.login) {\n\t\tthis.syncadaptor.login(username,password,function(err) {\n\t\t\tif(err) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tself.getStatus(function(err,isLoggedIn,username) {\n\t\t\t\tif(callback) {\n\t\t\t\t\tcallback(err,isLoggedIn);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t} else {\n\t\tcallback(null,true);\n\t}\n};\n\n/*\nAttempt to log out of TiddlyWeb\n*/\nSyncer.prototype.handleLogoutEvent = function() {\n\tthis.logger.log(\"Attempting to logout\");\n\tvar self = this;\n\tif(this.syncadaptor.logout) {\n\t\tthis.syncadaptor.logout(function(err) {\n\t\t\tif(err) {\n\t\t\t\tself.logger.alert(err);\n\t\t\t} else {\n\t\t\t\tself.getStatus();\n\t\t\t}\n\t\t});\n\t}\n};\n\n/*\nImmediately refresh from the server\n*/\nSyncer.prototype.handleRefreshEvent = function() {\n\tthis.syncFromServer();\n};\n\n/*\nProcess the next task\n*/\nSyncer.prototype.processTaskQueue = function() {\n\tvar self = this;\n\t// Only process a task if the sync adaptor is fully initialised and we're not already performing\n\t// a task. If we are already performing a task then we'll dispatch the next one when it completes\n\tif((!this.syncadaptor.isReady || this.syncadaptor.isReady()) && this.numTasksInProgress === 0) {\n\t\t// Choose the next task to perform\n\t\tvar task = this.chooseNextTask();\n\t\t// Perform the task if we had one\n\t\tif(typeof task === \"object\" && task !== null) {\n\t\t\tthis.numTasksInProgress += 1;\n\t\t\ttask.run(function(err) {\n\t\t\t\tself.numTasksInProgress -= 1;\n\t\t\t\tif(err) {\n\t\t\t\t\tself.displayError(\"Sync error while processing \" + task.type + \" of '\" + task.title + \"'\",err);\n\t\t\t\t\tself.updateDirtyStatus();\n\t\t\t\t\tself.triggerTimeout(self.errorRetryInterval);\n\t\t\t\t} else {\n\t\t\t\t\tself.updateDirtyStatus();\n\t\t\t\t\t// Process the next task\n\t\t\t\t\tself.processTaskQueue.call(self);\t\t\t\t\t\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\t// No task is ready so update the status\n\t\t\tthis.updateDirtyStatus();\n\t\t\t// And trigger a timeout if there is a pending task\n\t\t\tif(task === true) {\n\t\t\t\tthis.triggerTimeout();\t\t\t\t\n\t\t\t}\n\t\t}\n\t} else {\n\t\tthis.updateDirtyStatus();\t\t\n\t}\n};\n\nSyncer.prototype.triggerTimeout = function(interval) {\n\tvar self = this;\n\tif(!this.taskTimerId) {\n\t\tthis.taskTimerId = setTimeout(function() {\n\t\t\tself.taskTimerId = null;\n\t\t\tself.processTaskQueue.call(self);\n\t\t},interval || self.taskTimerInterval);\n\t}\n};\n\n/*\nChoose the next sync task. We prioritise saves, then deletes, then loads from the server\n\nReturns either a task object, null if there's no upcoming tasks, or the boolean true if there are pending tasks that aren't yet due\n*/\nSyncer.prototype.chooseNextTask = function() {\n\tvar thresholdLastSaved = (new Date()) - this.throttleInterval,\n\t\thavePending = null;\n\t// First we look for tiddlers that have been modified locally and need saving back to the server\n\tvar titles = this.getSyncedTiddlers();\n\tfor(var index=0; index<titles.length; index++) {\n\t\tvar title = titles[index],\n\t\t\ttiddler = this.wiki.tiddlerExists(title) && this.wiki.getTiddler(title),\n\t\t\ttiddlerInfo = this.tiddlerInfo[title];\n\t\tif(tiddler) {\n\t\t\t// If the tiddler is not known on the server, or has been modified locally no more recently than the threshold then it needs to be saved to the server\n\t\t\tvar hasChanged = !tiddlerInfo || $tw.wiki.getChangeCount(title) > tiddlerInfo.changeCount,\n\t\t\t\tisReadyToSave = !tiddlerInfo || !tiddlerInfo.timestampLastSaved || tiddlerInfo.timestampLastSaved < thresholdLastSaved;\n\t\t\tif(hasChanged) {\n\t\t\t\tif(isReadyToSave) {\n\t\t\t\t\treturn new SaveTiddlerTask(this,title); \t\t\t\t\t\n\t\t\t\t} else {\n\t\t\t\t\thavePending = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t// Second, we check tiddlers that are known from the server but not currently in the store, and so need deleting on the server\n\ttitles = Object.keys(this.tiddlerInfo);\n\tfor(index=0; index<titles.length; index++) {\n\t\ttitle = titles[index];\n\t\ttiddlerInfo = this.tiddlerInfo[title];\n\t\ttiddler = this.wiki.tiddlerExists(title) && this.wiki.getTiddler(title);\n\t\tif(!tiddler) {\n\t\t\treturn new DeleteTiddlerTask(this,title);\n\t\t}\n\t}\n\t// Check for tiddlers that need loading\n\ttitle = Object.keys(this.titlesToBeLoaded)[0];\n\tif(title) {\n\t\tdelete this.titlesToBeLoaded[title];\n\t\treturn new LoadTiddlerTask(this,title);\n\t}\n\t// No tasks are ready\n\treturn havePending;\n};\n\nfunction SaveTiddlerTask(syncer,title) {\n\tthis.syncer = syncer;\n\tthis.title = title;\n\tthis.type = \"save\";\n}\n\nSaveTiddlerTask.prototype.run = function(callback) {\n\tvar self = this,\n\t\tchangeCount = this.syncer.wiki.getChangeCount(this.title),\n\t\ttiddler = this.syncer.wiki.tiddlerExists(this.title) && this.syncer.wiki.getTiddler(this.title);\n\tthis.syncer.logger.log(\"Dispatching 'save' task:\",this.title);\n\tif(tiddler) {\n\t\tthis.syncer.syncadaptor.saveTiddler(tiddler,function(err,adaptorInfo,revision) {\n\t\t\t// If there's an error, exit without changing any internal state\n\t\t\tif(err) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\t// Adjust the info stored about this tiddler\n\t\t\tself.syncer.tiddlerInfo[self.title] = {\n\t\t\t\tchangeCount: changeCount,\n\t\t\t\tadaptorInfo: adaptorInfo,\n\t\t\t\trevision: revision,\n\t\t\t\ttimestampLastSaved: new Date()\n\t\t\t};\n\t\t\t// Invoke the callback\n\t\t\tcallback(null);\n\t\t});\n\t} else {\n\t\tthis.syncer.logger.log(\" Not Dispatching 'save' task:\",this.title,\"tiddler does not exist\");\n\t\t$tw.utils.nextTick(callback(null));\n\t}\n};\n\nfunction DeleteTiddlerTask(syncer,title) {\n\tthis.syncer = syncer;\n\tthis.title = title;\n\tthis.type = \"delete\";\n}\n\nDeleteTiddlerTask.prototype.run = function(callback) {\n\tvar self = this;\n\tthis.syncer.logger.log(\"Dispatching 'delete' task:\",this.title);\n\tthis.syncer.syncadaptor.deleteTiddler(this.title,function(err) {\n\t\t// If there's an error, exit without changing any internal state\n\t\tif(err) {\n\t\t\treturn callback(err);\n\t\t}\n\t\t// Remove the info stored about this tiddler\n\t\tdelete self.syncer.tiddlerInfo[self.title];\n\t\t// Invoke the callback\n\t\tcallback(null);\n\t},{\n\t\ttiddlerInfo: self.syncer.tiddlerInfo[this.title]\n\t});\n};\n\nfunction LoadTiddlerTask(syncer,title) {\n\tthis.syncer = syncer;\n\tthis.title = title;\n\tthis.type = \"load\";\n}\n\nLoadTiddlerTask.prototype.run = function(callback) {\n\tvar self = this;\n\tthis.syncer.logger.log(\"Dispatching 'load' task:\",this.title);\n\tthis.syncer.syncadaptor.loadTiddler(this.title,function(err,tiddlerFields) {\n\t\t// If there's an error, exit without changing any internal state\n\t\tif(err) {\n\t\t\treturn callback(err);\n\t\t}\n\t\t// Update the info stored about this tiddler\n\t\tif(tiddlerFields) {\n\t\t\tself.syncer.storeTiddler(tiddlerFields);\n\t\t}\n\t\t// Invoke the callback\n\t\tcallback(null);\n\t});\n};\n\nexports.Syncer = Syncer;\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/tiddler.js": {
"title": "$:/core/modules/tiddler.js",
"text": "/*\\\ntitle: $:/core/modules/tiddler.js\ntype: application/javascript\nmodule-type: tiddlermethod\n\nExtension methods for the $tw.Tiddler object (constructor and methods required at boot time are in boot/boot.js)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.hasTag = function(tag) {\n\treturn this.fields.tags && this.fields.tags.indexOf(tag) !== -1;\n};\n\nexports.isPlugin = function() {\n\treturn this.fields.type === \"application/json\" && this.hasField(\"plugin-type\");\n};\n\nexports.isDraft = function() {\n\treturn this.hasField(\"draft.of\");\n};\n\nexports.getFieldString = function(field) {\n\tvar value = this.fields[field];\n\t// Check for a missing field\n\tif(value === undefined || value === null) {\n\t\treturn \"\";\n\t}\n\t// Parse the field with the associated module (if any)\n\tvar fieldModule = $tw.Tiddler.fieldModules[field];\n\tif(fieldModule && fieldModule.stringify) {\n\t\treturn fieldModule.stringify.call(this,value);\n\t} else {\n\t\treturn value.toString();\n\t}\n};\n\n/*\nGet the value of a field as a list\n*/\nexports.getFieldList = function(field) {\n\tvar value = this.fields[field];\n\t// Check for a missing field\n\tif(value === undefined || value === null) {\n\t\treturn [];\n\t}\n\treturn $tw.utils.parseStringArray(value);\n};\n\n/*\nGet all the fields as a hashmap of strings. Options:\n\texclude: an array of field names to exclude\n*/\nexports.getFieldStrings = function(options) {\n\toptions = options || {};\n\tvar exclude = options.exclude || [];\n\tvar fields = {};\n\tfor(var field in this.fields) {\n\t\tif($tw.utils.hop(this.fields,field)) {\n\t\t\tif(exclude.indexOf(field) === -1) {\n\t\t\t\tfields[field] = this.getFieldString(field);\n\t\t\t}\n\t\t}\n\t}\n\treturn fields;\n};\n\n/*\nGet all the fields as a name:value block. Options:\n\texclude: an array of field names to exclude\n*/\nexports.getFieldStringBlock = function(options) {\n\toptions = options || {};\n\tvar exclude = options.exclude || [],\n\t\tfields = Object.keys(this.fields).sort(),\n\t\tresult = [];\n\tfor(var t=0; t<fields.length; t++) {\n\t\tvar field = fields[t];\n\t\tif(exclude.indexOf(field) === -1) {\n\t\t\tresult.push(field + \": \" + this.getFieldString(field));\n\t\t}\n\t}\n\treturn result.join(\"\\n\");\n};\n\nexports.getFieldDay = function(field) {\n\tif(this.cache && this.cache.day && $tw.utils.hop(this.cache.day,field) ) {\n\t\treturn this.cache.day[field];\n\t}\n\tvar day = \"\";\n\tif(this.fields[field]) {\n\t\tday = (new Date($tw.utils.parseDate(this.fields[field]))).setHours(0,0,0,0);\n\t}\n\tthis.cache.day = this.cache.day || {};\n\tthis.cache.day[field] = day;\n\treturn day;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "tiddlermethod"
},
"$:/core/modules/upgraders/plugins.js": {
"title": "$:/core/modules/upgraders/plugins.js",
"text": "/*\\\ntitle: $:/core/modules/upgraders/plugins.js\ntype: application/javascript\nmodule-type: upgrader\n\nUpgrader module that checks that plugins are newer than any already installed version\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar UPGRADE_LIBRARY_TITLE = \"$:/UpgradeLibrary\";\n\nvar BLOCKED_PLUGINS = {\n\t\"$:/themes/tiddlywiki/stickytitles\": {\n\t\tversions: [\"*\"]\n\t},\n\t\"$:/plugins/tiddlywiki/fullscreen\": {\n\t\tversions: [\"*\"]\n\t}\n};\n\nexports.upgrade = function(wiki,titles,tiddlers) {\n\tvar self = this,\n\t\tmessages = {},\n\t\tupgradeLibrary,\n\t\tgetLibraryTiddler = function(title) {\n\t\t\tif(!upgradeLibrary) {\n\t\t\t\tupgradeLibrary = wiki.getTiddlerData(UPGRADE_LIBRARY_TITLE,{});\n\t\t\t\tupgradeLibrary.tiddlers = upgradeLibrary.tiddlers || {};\n\t\t\t}\n\t\t\treturn upgradeLibrary.tiddlers[title];\n\t\t};\n\n\t// Go through all the incoming tiddlers\n\t$tw.utils.each(titles,function(title) {\n\t\tvar incomingTiddler = tiddlers[title];\n\t\t// Check if we're dealing with a plugin\n\t\tif(incomingTiddler && incomingTiddler[\"plugin-type\"]) {\n\t\t\t// Check whether the plugin contains JS modules\n\t\t\tvar requiresReload = $tw.wiki.doesPluginInfoRequireReload(JSON.parse(incomingTiddler.text)) ? ($tw.wiki.getTiddlerText(\"$:/language/ControlPanel/Plugins/PluginWillRequireReload\") + \" \") : \"\";\n\t\t\tmessages[title] = requiresReload;\n\t\t\tif(incomingTiddler.version) {\n\t\t\t\t// Upgrade the incoming plugin if it is in the upgrade library\n\t\t\t\tvar libraryTiddler = getLibraryTiddler(title);\n\t\t\t\tif(libraryTiddler && libraryTiddler[\"plugin-type\"] && libraryTiddler.version) {\n\t\t\t\t\ttiddlers[title] = libraryTiddler;\n\t\t\t\t\tmessages[title] = requiresReload + $tw.language.getString(\"Import/Upgrader/Plugins/Upgraded\",{variables: {incoming: incomingTiddler.version, upgraded: libraryTiddler.version}});\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t// Suppress the incoming plugin if it is older than the currently installed one\n\t\t\t\tvar existingTiddler = wiki.getTiddler(title);\n\t\t\t\tif(existingTiddler && existingTiddler.hasField(\"plugin-type\") && existingTiddler.hasField(\"version\")) {\n\t\t\t\t\t// Reject the incoming plugin by blanking all its fields\n\t\t\t\t\tif($tw.utils.checkVersions(existingTiddler.fields.version,incomingTiddler.version)) {\n\t\t\t\t\t\ttiddlers[title] = Object.create(null);\n\t\t\t\t\t\tmessages[title] = requiresReload + $tw.language.getString(\"Import/Upgrader/Plugins/Suppressed/Version\",{variables: {incoming: incomingTiddler.version, existing: existingTiddler.fields.version}});\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Check whether the plugin is on the blocked list\n\t\t\tvar blockInfo = BLOCKED_PLUGINS[title];\n\t\t\tif(blockInfo) {\n\t\t\t\tif(blockInfo.versions.indexOf(\"*\") !== -1 || (incomingTiddler.version && blockInfo.versions.indexOf(incomingTiddler.version) !== -1)) {\n\t\t\t\t\ttiddlers[title] = Object.create(null);\n\t\t\t\t\tmessages[title] = $tw.language.getString(\"Import/Upgrader/Plugins/Suppressed/Incompatible\");\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\treturn messages;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "upgrader"
},
"$:/core/modules/upgraders/system.js": {
"title": "$:/core/modules/upgraders/system.js",
"text": "/*\\\ntitle: $:/core/modules/upgraders/system.js\ntype: application/javascript\nmodule-type: upgrader\n\nUpgrader module that suppresses certain system tiddlers that shouldn't be imported\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar DONT_IMPORT_LIST = [\"$:/StoryList\",\"$:/HistoryList\"],\n\tDONT_IMPORT_PREFIX_LIST = [\"$:/temp/\",\"$:/state/\",\"$:/Import\"],\n\tWARN_IMPORT_PREFIX_LIST = [\"$:/core/modules/\"];\n\nexports.upgrade = function(wiki,titles,tiddlers) {\n\tvar self = this,\n\t\tmessages = {},\n\t\tshowAlert = false;\n\t// Check for tiddlers on our list\n\t$tw.utils.each(titles,function(title) {\n\t\tif(DONT_IMPORT_LIST.indexOf(title) !== -1) {\n\t\t\ttiddlers[title] = Object.create(null);\n\t\t\tmessages[title] = $tw.language.getString(\"Import/Upgrader/System/Suppressed\");\n\t\t} else {\n\t\t\tfor(var t=0; t<DONT_IMPORT_PREFIX_LIST.length; t++) {\n\t\t\t\tvar prefix = DONT_IMPORT_PREFIX_LIST[t];\n\t\t\t\tif(title.substr(0,prefix.length) === prefix) {\n\t\t\t\t\ttiddlers[title] = Object.create(null);\n\t\t\t\t\tmessages[title] = $tw.language.getString(\"Import/Upgrader/State/Suppressed\");\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor(var t=0; t<WARN_IMPORT_PREFIX_LIST.length; t++) {\n\t\t\t\tvar prefix = WARN_IMPORT_PREFIX_LIST[t];\n\t\t\t\tif(title.substr(0,prefix.length) === prefix && wiki.isShadowTiddler(title)) {\n\t\t\t\t\tshowAlert = true;\n\t\t\t\t\tmessages[title] = $tw.language.getString(\"Import/Upgrader/System/Warning\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\tif(showAlert) {\n\t\tvar logger = new $tw.utils.Logger(\"import\");\n\t\tlogger.alert($tw.language.getString(\"Import/Upgrader/System/Alert\"));\n\t}\n\treturn messages;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "upgrader"
},
"$:/core/modules/upgraders/themetweaks.js": {
"title": "$:/core/modules/upgraders/themetweaks.js",
"text": "/*\\\ntitle: $:/core/modules/upgraders/themetweaks.js\ntype: application/javascript\nmodule-type: upgrader\n\nUpgrader module that handles the change in theme tweak storage introduced in 5.0.14-beta.\n\nPreviously, theme tweaks were stored in two data tiddlers:\n\n* $:/themes/tiddlywiki/vanilla/metrics\n* $:/themes/tiddlywiki/vanilla/settings\n\nNow, each tweak is stored in its own separate tiddler.\n\nThis upgrader copies any values from the old format to the new. The old data tiddlers are not deleted in case they have been used to store additional indexes.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar MAPPINGS = {\n\t\"$:/themes/tiddlywiki/vanilla/metrics\": {\n\t\t\"fontsize\": \"$:/themes/tiddlywiki/vanilla/metrics/fontsize\",\n\t\t\"lineheight\": \"$:/themes/tiddlywiki/vanilla/metrics/lineheight\",\n\t\t\"storyleft\": \"$:/themes/tiddlywiki/vanilla/metrics/storyleft\",\n\t\t\"storytop\": \"$:/themes/tiddlywiki/vanilla/metrics/storytop\",\n\t\t\"storyright\": \"$:/themes/tiddlywiki/vanilla/metrics/storyright\",\n\t\t\"storywidth\": \"$:/themes/tiddlywiki/vanilla/metrics/storywidth\",\n\t\t\"tiddlerwidth\": \"$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth\"\n\t},\n\t\"$:/themes/tiddlywiki/vanilla/settings\": {\n\t\t\"fontfamily\": \"$:/themes/tiddlywiki/vanilla/settings/fontfamily\"\n\t}\n};\n\nexports.upgrade = function(wiki,titles,tiddlers) {\n\tvar self = this,\n\t\tmessages = {};\n\t// Check for tiddlers on our list\n\t$tw.utils.each(titles,function(title) {\n\t\tvar mapping = MAPPINGS[title];\n\t\tif(mapping) {\n\t\t\tvar tiddler = new $tw.Tiddler(tiddlers[title]),\n\t\t\t\ttiddlerData = wiki.getTiddlerDataCached(tiddler,{});\n\t\t\tfor(var index in mapping) {\n\t\t\t\tvar mappedTitle = mapping[index];\n\t\t\t\tif(!tiddlers[mappedTitle] || tiddlers[mappedTitle].title !== mappedTitle) {\n\t\t\t\t\ttiddlers[mappedTitle] = {\n\t\t\t\t\t\ttitle: mappedTitle,\n\t\t\t\t\t\ttext: tiddlerData[index]\n\t\t\t\t\t};\n\t\t\t\t\tmessages[mappedTitle] = $tw.language.getString(\"Import/Upgrader/ThemeTweaks/Created\",{variables: {\n\t\t\t\t\t\tfrom: title + \"##\" + index\n\t\t\t\t\t}});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\treturn messages;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "upgrader"
},
"$:/core/modules/utils/base64-utf8/base64-utf8.module.js": {
"text": "(function(){// From https://gist.github.com/Nijikokun/5192472\n//\n// UTF8 Module\n//\n// Cleaner and modularized utf-8 encoding and decoding library for javascript.\n//\n// copyright: MIT\n// author: Nijiko Yonskai, @nijikokun, nijikokun@gmail.com\n!function(r,e,o,t){void 0!==o.module&&o.module.exports?o.module.exports=e.apply(o):void 0!==o.define&&\"function\"===o.define&&o.define.amd?define(\"utf8\",[],e):o.utf8=e.apply(o)}(0,function(){return{encode:function(r){if(\"string\"!=typeof r)return r;r=r.replace(/\\r\\n/g,\"\\n\");for(var e,o=\"\",t=0;t<r.length;t++)(e=r.charCodeAt(t))<128?o+=String.fromCharCode(e):e>127&&e<2048?(o+=String.fromCharCode(e>>6|192),o+=String.fromCharCode(63&e|128)):(o+=String.fromCharCode(e>>12|224),o+=String.fromCharCode(e>>6&63|128),o+=String.fromCharCode(63&e|128));return o},decode:function(r){if(\"string\"!=typeof r)return r;for(var e=\"\",o=0,t=0;o<r.length;)(t=r.charCodeAt(o))<128?(e+=String.fromCharCode(t),o++):t>191&&t<224?(e+=String.fromCharCode((31&t)<<6|63&r.charCodeAt(o+1)),o+=2):(e+=String.fromCharCode((15&t)<<12|(63&r.charCodeAt(o+1))<<6|63&r.charCodeAt(o+2)),o+=3);return e}}},this),function(r,e,o,t){if(void 0!==o.module&&o.module.exports){if(t&&o.require)for(var n=0;n<t.length;n++)o[t[n]]=o.require(t[n]);o.module.exports=e.apply(o)}else void 0!==o.define&&\"function\"===o.define&&o.define.amd?define(\"base64\",t||[],e):o.base64=e.apply(o)}(0,function(r){var e=r||this.utf8,o=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";return{encode:function(r){if(void 0===e)throw{error:\"MissingMethod\",message:\"UTF8 Module is missing.\"};if(\"string\"!=typeof r)return r;r=e.encode(r);for(var t,n,i,d,f,a,h,c=\"\",u=0;u<r.length;)d=(t=r.charCodeAt(u++))>>2,f=(3&t)<<4|(n=r.charCodeAt(u++))>>4,a=(15&n)<<2|(i=r.charCodeAt(u++))>>6,h=63&i,isNaN(n)?a=h=64:isNaN(i)&&(h=64),c+=o.charAt(d)+o.charAt(f)+o.charAt(a)+o.charAt(h);return c},decode:function(r){if(void 0===e)throw{error:\"MissingMethod\",message:\"UTF8 Module is missing.\"};if(\"string\"!=typeof r)return r;r=r.replace(/[^A-Za-z0-9\\+\\/\\=]/g,\"\");for(var t,n,i,d,f,a,h=\"\",c=0;c<r.length;)t=o.indexOf(r.charAt(c++))<<2|(d=o.indexOf(r.charAt(c++)))>>4,n=(15&d)<<4|(f=o.indexOf(r.charAt(c++)))>>2,i=(3&f)<<6|(a=o.indexOf(r.charAt(c++))),h+=String.fromCharCode(t),64!=f&&(h+=String.fromCharCode(n)),64!=a&&(h+=String.fromCharCode(i));return e.decode(h)}}},this,[\"utf8\"]);}).call(exports);",
"type": "application/javascript",
"title": "$:/core/modules/utils/base64-utf8/base64-utf8.module.js",
"module-type": "library"
},
"$:/core/modules/utils/crypto.js": {
"title": "$:/core/modules/utils/crypto.js",
"text": "/*\\\ntitle: $:/core/modules/utils/crypto.js\ntype: application/javascript\nmodule-type: utils\n\nUtility functions related to crypto.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nLook for an encrypted store area in the text of a TiddlyWiki file\n*/\nexports.extractEncryptedStoreArea = function(text) {\n\tvar encryptedStoreAreaStartMarker = \"<pre id=\\\"encryptedStoreArea\\\" type=\\\"text/plain\\\" style=\\\"display:none;\\\">\",\n\t\tencryptedStoreAreaStart = text.indexOf(encryptedStoreAreaStartMarker);\n\tif(encryptedStoreAreaStart !== -1) {\n\t\tvar encryptedStoreAreaEnd = text.indexOf(\"</pre>\",encryptedStoreAreaStart);\n\t\tif(encryptedStoreAreaEnd !== -1) {\n\t\t\treturn $tw.utils.htmlDecode(text.substring(encryptedStoreAreaStart + encryptedStoreAreaStartMarker.length,encryptedStoreAreaEnd-1));\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nAttempt to extract the tiddlers from an encrypted store area using the current password. If the password is not provided then the password in the password store will be used\n*/\nexports.decryptStoreArea = function(encryptedStoreArea,password) {\n\tvar decryptedText = $tw.crypto.decrypt(encryptedStoreArea,password);\n\tif(decryptedText) {\n\t\tvar json = JSON.parse(decryptedText),\n\t\t\ttiddlers = [];\n\t\tfor(var title in json) {\n\t\t\tif(title !== \"$:/isEncrypted\") {\n\t\t\t\ttiddlers.push(json[title]);\n\t\t\t}\n\t\t}\n\t\treturn tiddlers;\n\t} else {\n\t\treturn null;\n\t}\n};\n\n\n/*\nAttempt to extract the tiddlers from an encrypted store area using the current password. If that fails, the user is prompted for a password.\nencryptedStoreArea: text of the TiddlyWiki encrypted store area\ncallback: function(tiddlers) called with the array of decrypted tiddlers\n\nThe following configuration settings are supported:\n\n$tw.config.usePasswordVault: causes any password entered by the user to also be put into the system password vault\n*/\nexports.decryptStoreAreaInteractive = function(encryptedStoreArea,callback,options) {\n\t// Try to decrypt with the current password\n\tvar tiddlers = $tw.utils.decryptStoreArea(encryptedStoreArea);\n\tif(tiddlers) {\n\t\tcallback(tiddlers);\n\t} else {\n\t\t// Prompt for a new password and keep trying\n\t\t$tw.passwordPrompt.createPrompt({\n\t\t\tserviceName: \"Enter a password to decrypt the imported TiddlyWiki\",\n\t\t\tnoUserName: true,\n\t\t\tcanCancel: true,\n\t\t\tsubmitText: \"Decrypt\",\n\t\t\tcallback: function(data) {\n\t\t\t\t// Exit if the user cancelled\n\t\t\t\tif(!data) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\t// Attempt to decrypt the tiddlers\n\t\t\t\tvar tiddlers = $tw.utils.decryptStoreArea(encryptedStoreArea,data.password);\n\t\t\t\tif(tiddlers) {\n\t\t\t\t\tif($tw.config.usePasswordVault) {\n\t\t\t\t\t\t$tw.crypto.setPassword(data.password);\n\t\t\t\t\t}\n\t\t\t\t\tcallback(tiddlers);\n\t\t\t\t\t// Exit and remove the password prompt\n\t\t\t\t\treturn true;\n\t\t\t\t} else {\n\t\t\t\t\t// We didn't decrypt everything, so continue to prompt for password\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/csv.js": {
"title": "$:/core/modules/utils/csv.js",
"text": "/*\\\ntitle: $:/core/modules/utils/csv.js\ntype: application/javascript\nmodule-type: utils\n\nA barebones CSV parser\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nParse a CSV string with a header row and return an array of hashmaps.\n*/\nexports.parseCsvStringWithHeader = function(text,options) {\n\toptions = options || {};\n\tvar separator = options.separator || \",\",\n\t\trows = text.split(/\\r?\\n/mg).map(function(row) {\n\t\t\treturn $tw.utils.trim(row);\n\t\t}).filter(function(row) {\n\t\t\treturn row !== \"\";\n\t\t});\n\tif(rows.length < 1) {\n\t\treturn \"Missing header row\";\n\t}\n\tvar headings = rows[0].split(separator),\n\t\tresults = [];\n\tfor(var row=1; row<rows.length; row++) {\n\t\tvar columns = rows[row].split(separator),\n\t\t\tcolumnResult = Object.create(null);\n\t\tif(columns.length !== headings.length) {\n\t\t\treturn \"Malformed CSV row '\" + rows[row] + \"'\";\n\t\t}\n\t\tfor(var column=0; column<columns.length; column++) {\n\t\t\tvar columnName = headings[column];\n\t\t\tcolumnResult[columnName] = $tw.utils.trim(columns[column] || \"\");\n\t\t}\n\t\tresults.push(columnResult);\t\t\t\n\t}\n\treturn results;\n}\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/diff-match-patch/diff_match_patch.js": {
"text": "(function(){function diff_match_patch(){this.Diff_Timeout=1;this.Diff_EditCost=4;this.Match_Threshold=.5;this.Match_Distance=1E3;this.Patch_DeleteThreshold=.5;this.Patch_Margin=4;this.Match_MaxBits=32}var DIFF_DELETE=-1,DIFF_INSERT=1,DIFF_EQUAL=0;\ndiff_match_patch.prototype.diff_main=function(a,b,c,d){\"undefined\"==typeof d&&(d=0>=this.Diff_Timeout?Number.MAX_VALUE:(new Date).getTime()+1E3*this.Diff_Timeout);if(null==a||null==b)throw Error(\"Null input. (diff_main)\");if(a==b)return a?[[DIFF_EQUAL,a]]:[];\"undefined\"==typeof c&&(c=!0);var e=c,f=this.diff_commonPrefix(a,b);c=a.substring(0,f);a=a.substring(f);b=b.substring(f);f=this.diff_commonSuffix(a,b);var g=a.substring(a.length-f);a=a.substring(0,a.length-f);b=b.substring(0,b.length-f);a=this.diff_compute_(a,\nb,e,d);c&&a.unshift([DIFF_EQUAL,c]);g&&a.push([DIFF_EQUAL,g]);this.diff_cleanupMerge(a);return a};\ndiff_match_patch.prototype.diff_compute_=function(a,b,c,d){if(!a)return[[DIFF_INSERT,b]];if(!b)return[[DIFF_DELETE,a]];var e=a.length>b.length?a:b,f=a.length>b.length?b:a,g=e.indexOf(f);return-1!=g?(c=[[DIFF_INSERT,e.substring(0,g)],[DIFF_EQUAL,f],[DIFF_INSERT,e.substring(g+f.length)]],a.length>b.length&&(c[0][0]=c[2][0]=DIFF_DELETE),c):1==f.length?[[DIFF_DELETE,a],[DIFF_INSERT,b]]:(e=this.diff_halfMatch_(a,b))?(b=e[1],f=e[3],a=e[4],e=this.diff_main(e[0],e[2],c,d),c=this.diff_main(b,f,c,d),e.concat([[DIFF_EQUAL,\na]],c)):c&&100<a.length&&100<b.length?this.diff_lineMode_(a,b,d):this.diff_bisect_(a,b,d)};\ndiff_match_patch.prototype.diff_lineMode_=function(a,b,c){var d=this.diff_linesToChars_(a,b);a=d.chars1;b=d.chars2;d=d.lineArray;a=this.diff_main(a,b,!1,c);this.diff_charsToLines_(a,d);this.diff_cleanupSemantic(a);a.push([DIFF_EQUAL,\"\"]);for(var e=d=b=0,f=\"\",g=\"\";b<a.length;){switch(a[b][0]){case DIFF_INSERT:e++;g+=a[b][1];break;case DIFF_DELETE:d++;f+=a[b][1];break;case DIFF_EQUAL:if(1<=d&&1<=e){a.splice(b-d-e,d+e);b=b-d-e;d=this.diff_main(f,g,!1,c);for(e=d.length-1;0<=e;e--)a.splice(b,0,d[e]);b+=\nd.length}d=e=0;g=f=\"\"}b++}a.pop();return a};\ndiff_match_patch.prototype.diff_bisect_=function(a,b,c){for(var d=a.length,e=b.length,f=Math.ceil((d+e)/2),g=2*f,h=Array(g),l=Array(g),k=0;k<g;k++)h[k]=-1,l[k]=-1;h[f+1]=0;l[f+1]=0;k=d-e;for(var m=0!=k%2,p=0,x=0,w=0,q=0,t=0;t<f&&!((new Date).getTime()>c);t++){for(var v=-t+p;v<=t-x;v+=2){var n=f+v;var r=v==-t||v!=t&&h[n-1]<h[n+1]?h[n+1]:h[n-1]+1;for(var y=r-v;r<d&&y<e&&a.charAt(r)==b.charAt(y);)r++,y++;h[n]=r;if(r>d)x+=2;else if(y>e)p+=2;else if(m&&(n=f+k-v,0<=n&&n<g&&-1!=l[n])){var u=d-l[n];if(r>=\nu)return this.diff_bisectSplit_(a,b,r,y,c)}}for(v=-t+w;v<=t-q;v+=2){n=f+v;u=v==-t||v!=t&&l[n-1]<l[n+1]?l[n+1]:l[n-1]+1;for(r=u-v;u<d&&r<e&&a.charAt(d-u-1)==b.charAt(e-r-1);)u++,r++;l[n]=u;if(u>d)q+=2;else if(r>e)w+=2;else if(!m&&(n=f+k-v,0<=n&&n<g&&-1!=h[n]&&(r=h[n],y=f+r-n,u=d-u,r>=u)))return this.diff_bisectSplit_(a,b,r,y,c)}}return[[DIFF_DELETE,a],[DIFF_INSERT,b]]};\ndiff_match_patch.prototype.diff_bisectSplit_=function(a,b,c,d,e){var f=a.substring(0,c),g=b.substring(0,d);a=a.substring(c);b=b.substring(d);f=this.diff_main(f,g,!1,e);e=this.diff_main(a,b,!1,e);return f.concat(e)};\ndiff_match_patch.prototype.diff_linesToChars_=function(a,b){function c(a){for(var b=\"\",c=0,f=-1,g=d.length;f<a.length-1;){f=a.indexOf(\"\\n\",c);-1==f&&(f=a.length-1);var h=a.substring(c,f+1);c=f+1;(e.hasOwnProperty?e.hasOwnProperty(h):void 0!==e[h])?b+=String.fromCharCode(e[h]):(b+=String.fromCharCode(g),e[h]=g,d[g++]=h)}return b}var d=[],e={};d[0]=\"\";var f=c(a),g=c(b);return{chars1:f,chars2:g,lineArray:d}};\ndiff_match_patch.prototype.diff_charsToLines_=function(a,b){for(var c=0;c<a.length;c++){for(var d=a[c][1],e=[],f=0;f<d.length;f++)e[f]=b[d.charCodeAt(f)];a[c][1]=e.join(\"\")}};diff_match_patch.prototype.diff_commonPrefix=function(a,b){if(!a||!b||a.charAt(0)!=b.charAt(0))return 0;for(var c=0,d=Math.min(a.length,b.length),e=d,f=0;c<e;)a.substring(f,e)==b.substring(f,e)?f=c=e:d=e,e=Math.floor((d-c)/2+c);return e};\ndiff_match_patch.prototype.diff_commonSuffix=function(a,b){if(!a||!b||a.charAt(a.length-1)!=b.charAt(b.length-1))return 0;for(var c=0,d=Math.min(a.length,b.length),e=d,f=0;c<e;)a.substring(a.length-e,a.length-f)==b.substring(b.length-e,b.length-f)?f=c=e:d=e,e=Math.floor((d-c)/2+c);return e};\ndiff_match_patch.prototype.diff_commonOverlap_=function(a,b){var c=a.length,d=b.length;if(0==c||0==d)return 0;c>d?a=a.substring(c-d):c<d&&(b=b.substring(0,c));c=Math.min(c,d);if(a==b)return c;d=0;for(var e=1;;){var f=a.substring(c-e);f=b.indexOf(f);if(-1==f)return d;e+=f;if(0==f||a.substring(c-e)==b.substring(0,e))d=e,e++}};\ndiff_match_patch.prototype.diff_halfMatch_=function(a,b){function c(a,b,c){for(var d=a.substring(c,c+Math.floor(a.length/4)),e=-1,g=\"\",h,k,l,m;-1!=(e=b.indexOf(d,e+1));){var p=f.diff_commonPrefix(a.substring(c),b.substring(e)),u=f.diff_commonSuffix(a.substring(0,c),b.substring(0,e));g.length<u+p&&(g=b.substring(e-u,e)+b.substring(e,e+p),h=a.substring(0,c-u),k=a.substring(c+p),l=b.substring(0,e-u),m=b.substring(e+p))}return 2*g.length>=a.length?[h,k,l,m,g]:null}if(0>=this.Diff_Timeout)return null;\nvar d=a.length>b.length?a:b,e=a.length>b.length?b:a;if(4>d.length||2*e.length<d.length)return null;var f=this,g=c(d,e,Math.ceil(d.length/4));d=c(d,e,Math.ceil(d.length/2));if(g||d)g=d?g?g[4].length>d[4].length?g:d:d:g;else return null;if(a.length>b.length){d=g[0];e=g[1];var h=g[2];var l=g[3]}else h=g[0],l=g[1],d=g[2],e=g[3];return[d,e,h,l,g[4]]};\ndiff_match_patch.prototype.diff_cleanupSemantic=function(a){for(var b=!1,c=[],d=0,e=null,f=0,g=0,h=0,l=0,k=0;f<a.length;)a[f][0]==DIFF_EQUAL?(c[d++]=f,g=l,h=k,k=l=0,e=a[f][1]):(a[f][0]==DIFF_INSERT?l+=a[f][1].length:k+=a[f][1].length,e&&e.length<=Math.max(g,h)&&e.length<=Math.max(l,k)&&(a.splice(c[d-1],0,[DIFF_DELETE,e]),a[c[d-1]+1][0]=DIFF_INSERT,d--,d--,f=0<d?c[d-1]:-1,k=l=h=g=0,e=null,b=!0)),f++;b&&this.diff_cleanupMerge(a);this.diff_cleanupSemanticLossless(a);for(f=1;f<a.length;){if(a[f-1][0]==\nDIFF_DELETE&&a[f][0]==DIFF_INSERT){b=a[f-1][1];c=a[f][1];d=this.diff_commonOverlap_(b,c);e=this.diff_commonOverlap_(c,b);if(d>=e){if(d>=b.length/2||d>=c.length/2)a.splice(f,0,[DIFF_EQUAL,c.substring(0,d)]),a[f-1][1]=b.substring(0,b.length-d),a[f+1][1]=c.substring(d),f++}else if(e>=b.length/2||e>=c.length/2)a.splice(f,0,[DIFF_EQUAL,b.substring(0,e)]),a[f-1][0]=DIFF_INSERT,a[f-1][1]=c.substring(0,c.length-e),a[f+1][0]=DIFF_DELETE,a[f+1][1]=b.substring(e),f++;f++}f++}};\ndiff_match_patch.prototype.diff_cleanupSemanticLossless=function(a){function b(a,b){if(!a||!b)return 6;var c=a.charAt(a.length-1),d=b.charAt(0),e=c.match(diff_match_patch.nonAlphaNumericRegex_),f=d.match(diff_match_patch.nonAlphaNumericRegex_),g=e&&c.match(diff_match_patch.whitespaceRegex_),h=f&&d.match(diff_match_patch.whitespaceRegex_);c=g&&c.match(diff_match_patch.linebreakRegex_);d=h&&d.match(diff_match_patch.linebreakRegex_);var k=c&&a.match(diff_match_patch.blanklineEndRegex_),l=d&&b.match(diff_match_patch.blanklineStartRegex_);\nreturn k||l?5:c||d?4:e&&!g&&h?3:g||h?2:e||f?1:0}for(var c=1;c<a.length-1;){if(a[c-1][0]==DIFF_EQUAL&&a[c+1][0]==DIFF_EQUAL){var d=a[c-1][1],e=a[c][1],f=a[c+1][1],g=this.diff_commonSuffix(d,e);if(g){var h=e.substring(e.length-g);d=d.substring(0,d.length-g);e=h+e.substring(0,e.length-g);f=h+f}g=d;h=e;for(var l=f,k=b(d,e)+b(e,f);e.charAt(0)===f.charAt(0);){d+=e.charAt(0);e=e.substring(1)+f.charAt(0);f=f.substring(1);var m=b(d,e)+b(e,f);m>=k&&(k=m,g=d,h=e,l=f)}a[c-1][1]!=g&&(g?a[c-1][1]=g:(a.splice(c-\n1,1),c--),a[c][1]=h,l?a[c+1][1]=l:(a.splice(c+1,1),c--))}c++}};diff_match_patch.nonAlphaNumericRegex_=/[^a-zA-Z0-9]/;diff_match_patch.whitespaceRegex_=/\\s/;diff_match_patch.linebreakRegex_=/[\\r\\n]/;diff_match_patch.blanklineEndRegex_=/\\n\\r?\\n$/;diff_match_patch.blanklineStartRegex_=/^\\r?\\n\\r?\\n/;\ndiff_match_patch.prototype.diff_cleanupEfficiency=function(a){for(var b=!1,c=[],d=0,e=null,f=0,g=!1,h=!1,l=!1,k=!1;f<a.length;)a[f][0]==DIFF_EQUAL?(a[f][1].length<this.Diff_EditCost&&(l||k)?(c[d++]=f,g=l,h=k,e=a[f][1]):(d=0,e=null),l=k=!1):(a[f][0]==DIFF_DELETE?k=!0:l=!0,e&&(g&&h&&l&&k||e.length<this.Diff_EditCost/2&&3==g+h+l+k)&&(a.splice(c[d-1],0,[DIFF_DELETE,e]),a[c[d-1]+1][0]=DIFF_INSERT,d--,e=null,g&&h?(l=k=!0,d=0):(d--,f=0<d?c[d-1]:-1,l=k=!1),b=!0)),f++;b&&this.diff_cleanupMerge(a)};\ndiff_match_patch.prototype.diff_cleanupMerge=function(a){a.push([DIFF_EQUAL,\"\"]);for(var b=0,c=0,d=0,e=\"\",f=\"\",g;b<a.length;)switch(a[b][0]){case DIFF_INSERT:d++;f+=a[b][1];b++;break;case DIFF_DELETE:c++;e+=a[b][1];b++;break;case DIFF_EQUAL:1<c+d?(0!==c&&0!==d&&(g=this.diff_commonPrefix(f,e),0!==g&&(0<b-c-d&&a[b-c-d-1][0]==DIFF_EQUAL?a[b-c-d-1][1]+=f.substring(0,g):(a.splice(0,0,[DIFF_EQUAL,f.substring(0,g)]),b++),f=f.substring(g),e=e.substring(g)),g=this.diff_commonSuffix(f,e),0!==g&&(a[b][1]=f.substring(f.length-\ng)+a[b][1],f=f.substring(0,f.length-g),e=e.substring(0,e.length-g))),0===c?a.splice(b-d,c+d,[DIFF_INSERT,f]):0===d?a.splice(b-c,c+d,[DIFF_DELETE,e]):a.splice(b-c-d,c+d,[DIFF_DELETE,e],[DIFF_INSERT,f]),b=b-c-d+(c?1:0)+(d?1:0)+1):0!==b&&a[b-1][0]==DIFF_EQUAL?(a[b-1][1]+=a[b][1],a.splice(b,1)):b++,c=d=0,f=e=\"\"}\"\"===a[a.length-1][1]&&a.pop();c=!1;for(b=1;b<a.length-1;)a[b-1][0]==DIFF_EQUAL&&a[b+1][0]==DIFF_EQUAL&&(a[b][1].substring(a[b][1].length-a[b-1][1].length)==a[b-1][1]?(a[b][1]=a[b-1][1]+a[b][1].substring(0,\na[b][1].length-a[b-1][1].length),a[b+1][1]=a[b-1][1]+a[b+1][1],a.splice(b-1,1),c=!0):a[b][1].substring(0,a[b+1][1].length)==a[b+1][1]&&(a[b-1][1]+=a[b+1][1],a[b][1]=a[b][1].substring(a[b+1][1].length)+a[b+1][1],a.splice(b+1,1),c=!0)),b++;c&&this.diff_cleanupMerge(a)};\ndiff_match_patch.prototype.diff_xIndex=function(a,b){var c=0,d=0,e=0,f=0,g;for(g=0;g<a.length;g++){a[g][0]!==DIFF_INSERT&&(c+=a[g][1].length);a[g][0]!==DIFF_DELETE&&(d+=a[g][1].length);if(c>b)break;e=c;f=d}return a.length!=g&&a[g][0]===DIFF_DELETE?f:f+(b-e)};\ndiff_match_patch.prototype.diff_prettyHtml=function(a){for(var b=[],c=/&/g,d=/</g,e=/>/g,f=/\\n/g,g=0;g<a.length;g++){var h=a[g][0],l=a[g][1].replace(c,\"&\").replace(d,\"<\").replace(e,\">\").replace(f,\"¶<br>\");switch(h){case DIFF_INSERT:b[g]='<ins style=\"background:#e6ffe6;\">'+l+\"</ins>\";break;case DIFF_DELETE:b[g]='<del style=\"background:#ffe6e6;\">'+l+\"</del>\";break;case DIFF_EQUAL:b[g]=\"<span>\"+l+\"</span>\"}}return b.join(\"\")};\ndiff_match_patch.prototype.diff_text1=function(a){for(var b=[],c=0;c<a.length;c++)a[c][0]!==DIFF_INSERT&&(b[c]=a[c][1]);return b.join(\"\")};diff_match_patch.prototype.diff_text2=function(a){for(var b=[],c=0;c<a.length;c++)a[c][0]!==DIFF_DELETE&&(b[c]=a[c][1]);return b.join(\"\")};\ndiff_match_patch.prototype.diff_levenshtein=function(a){for(var b=0,c=0,d=0,e=0;e<a.length;e++){var f=a[e][1];switch(a[e][0]){case DIFF_INSERT:c+=f.length;break;case DIFF_DELETE:d+=f.length;break;case DIFF_EQUAL:b+=Math.max(c,d),d=c=0}}return b+=Math.max(c,d)};\ndiff_match_patch.prototype.diff_toDelta=function(a){for(var b=[],c=0;c<a.length;c++)switch(a[c][0]){case DIFF_INSERT:b[c]=\"+\"+encodeURI(a[c][1]);break;case DIFF_DELETE:b[c]=\"-\"+a[c][1].length;break;case DIFF_EQUAL:b[c]=\"=\"+a[c][1].length}return b.join(\"\\t\").replace(/%20/g,\" \")};\ndiff_match_patch.prototype.diff_fromDelta=function(a,b){for(var c=[],d=0,e=0,f=b.split(/\\t/g),g=0;g<f.length;g++){var h=f[g].substring(1);switch(f[g].charAt(0)){case \"+\":try{c[d++]=[DIFF_INSERT,decodeURI(h)]}catch(k){throw Error(\"Illegal escape in diff_fromDelta: \"+h);}break;case \"-\":case \"=\":var l=parseInt(h,10);if(isNaN(l)||0>l)throw Error(\"Invalid number in diff_fromDelta: \"+h);h=a.substring(e,e+=l);\"=\"==f[g].charAt(0)?c[d++]=[DIFF_EQUAL,h]:c[d++]=[DIFF_DELETE,h];break;default:if(f[g])throw Error(\"Invalid diff operation in diff_fromDelta: \"+\nf[g]);}}if(e!=a.length)throw Error(\"Delta length (\"+e+\") does not equal source text length (\"+a.length+\").\");return c};diff_match_patch.prototype.match_main=function(a,b,c){if(null==a||null==b||null==c)throw Error(\"Null input. (match_main)\");c=Math.max(0,Math.min(c,a.length));return a==b?0:a.length?a.substring(c,c+b.length)==b?c:this.match_bitap_(a,b,c):-1};\ndiff_match_patch.prototype.match_bitap_=function(a,b,c){function d(a,d){var e=a/b.length,g=Math.abs(c-d);return f.Match_Distance?e+g/f.Match_Distance:g?1:e}if(b.length>this.Match_MaxBits)throw Error(\"Pattern too long for this browser.\");var e=this.match_alphabet_(b),f=this,g=this.Match_Threshold,h=a.indexOf(b,c);-1!=h&&(g=Math.min(d(0,h),g),h=a.lastIndexOf(b,c+b.length),-1!=h&&(g=Math.min(d(0,h),g)));var l=1<<b.length-1;h=-1;for(var k,m,p=b.length+a.length,x,w=0;w<b.length;w++){k=0;for(m=p;k<m;)d(w,\nc+m)<=g?k=m:p=m,m=Math.floor((p-k)/2+k);p=m;k=Math.max(1,c-m+1);var q=Math.min(c+m,a.length)+b.length;m=Array(q+2);for(m[q+1]=(1<<w)-1;q>=k;q--){var t=e[a.charAt(q-1)];m[q]=0===w?(m[q+1]<<1|1)&t:(m[q+1]<<1|1)&t|(x[q+1]|x[q])<<1|1|x[q+1];if(m[q]&l&&(t=d(w,q-1),t<=g))if(g=t,h=q-1,h>c)k=Math.max(1,2*c-h);else break}if(d(w+1,c)>g)break;x=m}return h};\ndiff_match_patch.prototype.match_alphabet_=function(a){for(var b={},c=0;c<a.length;c++)b[a.charAt(c)]=0;for(c=0;c<a.length;c++)b[a.charAt(c)]|=1<<a.length-c-1;return b};\ndiff_match_patch.prototype.patch_addContext_=function(a,b){if(0!=b.length){for(var c=b.substring(a.start2,a.start2+a.length1),d=0;b.indexOf(c)!=b.lastIndexOf(c)&&c.length<this.Match_MaxBits-this.Patch_Margin-this.Patch_Margin;)d+=this.Patch_Margin,c=b.substring(a.start2-d,a.start2+a.length1+d);d+=this.Patch_Margin;(c=b.substring(a.start2-d,a.start2))&&a.diffs.unshift([DIFF_EQUAL,c]);(d=b.substring(a.start2+a.length1,a.start2+a.length1+d))&&a.diffs.push([DIFF_EQUAL,d]);a.start1-=c.length;a.start2-=\nc.length;a.length1+=c.length+d.length;a.length2+=c.length+d.length}};\ndiff_match_patch.prototype.patch_make=function(a,b,c){if(\"string\"==typeof a&&\"string\"==typeof b&&\"undefined\"==typeof c){var d=a;b=this.diff_main(d,b,!0);2<b.length&&(this.diff_cleanupSemantic(b),this.diff_cleanupEfficiency(b))}else if(a&&\"object\"==typeof a&&\"undefined\"==typeof b&&\"undefined\"==typeof c)b=a,d=this.diff_text1(b);else if(\"string\"==typeof a&&b&&\"object\"==typeof b&&\"undefined\"==typeof c)d=a;else if(\"string\"==typeof a&&\"string\"==typeof b&&c&&\"object\"==typeof c)d=a,b=c;else throw Error(\"Unknown call format to patch_make.\");\nif(0===b.length)return[];c=[];a=new diff_match_patch.patch_obj;for(var e=0,f=0,g=0,h=d,l=0;l<b.length;l++){var k=b[l][0],m=b[l][1];e||k===DIFF_EQUAL||(a.start1=f,a.start2=g);switch(k){case DIFF_INSERT:a.diffs[e++]=b[l];a.length2+=m.length;d=d.substring(0,g)+m+d.substring(g);break;case DIFF_DELETE:a.length1+=m.length;a.diffs[e++]=b[l];d=d.substring(0,g)+d.substring(g+m.length);break;case DIFF_EQUAL:m.length<=2*this.Patch_Margin&&e&&b.length!=l+1?(a.diffs[e++]=b[l],a.length1+=m.length,a.length2+=m.length):\nm.length>=2*this.Patch_Margin&&e&&(this.patch_addContext_(a,h),c.push(a),a=new diff_match_patch.patch_obj,e=0,h=d,f=g)}k!==DIFF_INSERT&&(f+=m.length);k!==DIFF_DELETE&&(g+=m.length)}e&&(this.patch_addContext_(a,h),c.push(a));return c};\ndiff_match_patch.prototype.patch_deepCopy=function(a){for(var b=[],c=0;c<a.length;c++){var d=a[c],e=new diff_match_patch.patch_obj;e.diffs=[];for(var f=0;f<d.diffs.length;f++)e.diffs[f]=d.diffs[f].slice();e.start1=d.start1;e.start2=d.start2;e.length1=d.length1;e.length2=d.length2;b[c]=e}return b};\ndiff_match_patch.prototype.patch_apply=function(a,b){if(0==a.length)return[b,[]];a=this.patch_deepCopy(a);var c=this.patch_addPadding(a);b=c+b+c;this.patch_splitMax(a);for(var d=0,e=[],f=0;f<a.length;f++){var g=a[f].start2+d,h=this.diff_text1(a[f].diffs),l=-1;if(h.length>this.Match_MaxBits){var k=this.match_main(b,h.substring(0,this.Match_MaxBits),g);-1!=k&&(l=this.match_main(b,h.substring(h.length-this.Match_MaxBits),g+h.length-this.Match_MaxBits),-1==l||k>=l)&&(k=-1)}else k=this.match_main(b,h,\ng);if(-1==k)e[f]=!1,d-=a[f].length2-a[f].length1;else if(e[f]=!0,d=k-g,g=-1==l?b.substring(k,k+h.length):b.substring(k,l+this.Match_MaxBits),h==g)b=b.substring(0,k)+this.diff_text2(a[f].diffs)+b.substring(k+h.length);else if(g=this.diff_main(h,g,!1),h.length>this.Match_MaxBits&&this.diff_levenshtein(g)/h.length>this.Patch_DeleteThreshold)e[f]=!1;else{this.diff_cleanupSemanticLossless(g);h=0;var m;for(l=0;l<a[f].diffs.length;l++){var p=a[f].diffs[l];p[0]!==DIFF_EQUAL&&(m=this.diff_xIndex(g,h));p[0]===\nDIFF_INSERT?b=b.substring(0,k+m)+p[1]+b.substring(k+m):p[0]===DIFF_DELETE&&(b=b.substring(0,k+m)+b.substring(k+this.diff_xIndex(g,h+p[1].length)));p[0]!==DIFF_DELETE&&(h+=p[1].length)}}}b=b.substring(c.length,b.length-c.length);return[b,e]};\ndiff_match_patch.prototype.patch_addPadding=function(a){for(var b=this.Patch_Margin,c=\"\",d=1;d<=b;d++)c+=String.fromCharCode(d);for(d=0;d<a.length;d++)a[d].start1+=b,a[d].start2+=b;d=a[0];var e=d.diffs;if(0==e.length||e[0][0]!=DIFF_EQUAL)e.unshift([DIFF_EQUAL,c]),d.start1-=b,d.start2-=b,d.length1+=b,d.length2+=b;else if(b>e[0][1].length){var f=b-e[0][1].length;e[0][1]=c.substring(e[0][1].length)+e[0][1];d.start1-=f;d.start2-=f;d.length1+=f;d.length2+=f}d=a[a.length-1];e=d.diffs;0==e.length||e[e.length-\n1][0]!=DIFF_EQUAL?(e.push([DIFF_EQUAL,c]),d.length1+=b,d.length2+=b):b>e[e.length-1][1].length&&(f=b-e[e.length-1][1].length,e[e.length-1][1]+=c.substring(0,f),d.length1+=f,d.length2+=f);return c};\ndiff_match_patch.prototype.patch_splitMax=function(a){for(var b=this.Match_MaxBits,c=0;c<a.length;c++)if(!(a[c].length1<=b)){var d=a[c];a.splice(c--,1);for(var e=d.start1,f=d.start2,g=\"\";0!==d.diffs.length;){var h=new diff_match_patch.patch_obj,l=!0;h.start1=e-g.length;h.start2=f-g.length;\"\"!==g&&(h.length1=h.length2=g.length,h.diffs.push([DIFF_EQUAL,g]));for(;0!==d.diffs.length&&h.length1<b-this.Patch_Margin;){g=d.diffs[0][0];var k=d.diffs[0][1];g===DIFF_INSERT?(h.length2+=k.length,f+=k.length,h.diffs.push(d.diffs.shift()),\nl=!1):g===DIFF_DELETE&&1==h.diffs.length&&h.diffs[0][0]==DIFF_EQUAL&&k.length>2*b?(h.length1+=k.length,e+=k.length,l=!1,h.diffs.push([g,k]),d.diffs.shift()):(k=k.substring(0,b-h.length1-this.Patch_Margin),h.length1+=k.length,e+=k.length,g===DIFF_EQUAL?(h.length2+=k.length,f+=k.length):l=!1,h.diffs.push([g,k]),k==d.diffs[0][1]?d.diffs.shift():d.diffs[0][1]=d.diffs[0][1].substring(k.length))}g=this.diff_text2(h.diffs);g=g.substring(g.length-this.Patch_Margin);k=this.diff_text1(d.diffs).substring(0,\nthis.Patch_Margin);\"\"!==k&&(h.length1+=k.length,h.length2+=k.length,0!==h.diffs.length&&h.diffs[h.diffs.length-1][0]===DIFF_EQUAL?h.diffs[h.diffs.length-1][1]+=k:h.diffs.push([DIFF_EQUAL,k]));l||a.splice(++c,0,h)}}};diff_match_patch.prototype.patch_toText=function(a){for(var b=[],c=0;c<a.length;c++)b[c]=a[c];return b.join(\"\")};\ndiff_match_patch.prototype.patch_fromText=function(a){var b=[];if(!a)return b;a=a.split(\"\\n\");for(var c=0,d=/^@@ -(\\d+),?(\\d*) \\+(\\d+),?(\\d*) @@$/;c<a.length;){var e=a[c].match(d);if(!e)throw Error(\"Invalid patch string: \"+a[c]);var f=new diff_match_patch.patch_obj;b.push(f);f.start1=parseInt(e[1],10);\"\"===e[2]?(f.start1--,f.length1=1):\"0\"==e[2]?f.length1=0:(f.start1--,f.length1=parseInt(e[2],10));f.start2=parseInt(e[3],10);\"\"===e[4]?(f.start2--,f.length2=1):\"0\"==e[4]?f.length2=0:(f.start2--,f.length2=\nparseInt(e[4],10));for(c++;c<a.length;){e=a[c].charAt(0);try{var g=decodeURI(a[c].substring(1))}catch(h){throw Error(\"Illegal escape in patch_fromText: \"+g);}if(\"-\"==e)f.diffs.push([DIFF_DELETE,g]);else if(\"+\"==e)f.diffs.push([DIFF_INSERT,g]);else if(\" \"==e)f.diffs.push([DIFF_EQUAL,g]);else if(\"@\"==e)break;else if(\"\"!==e)throw Error('Invalid patch mode \"'+e+'\" in: '+g);c++}}return b};diff_match_patch.patch_obj=function(){this.diffs=[];this.start2=this.start1=null;this.length2=this.length1=0};\ndiff_match_patch.patch_obj.prototype.toString=function(){for(var a=[\"@@ -\"+(0===this.length1?this.start1+\",0\":1==this.length1?this.start1+1:this.start1+1+\",\"+this.length1)+\" +\"+(0===this.length2?this.start2+\",0\":1==this.length2?this.start2+1:this.start2+1+\",\"+this.length2)+\" @@\\n\"],b,c=0;c<this.diffs.length;c++){switch(this.diffs[c][0]){case DIFF_INSERT:b=\"+\";break;case DIFF_DELETE:b=\"-\";break;case DIFF_EQUAL:b=\" \"}a[c+1]=b+encodeURI(this.diffs[c][1])+\"\\n\"}return a.join(\"\").replace(/%20/g,\" \")};\nthis.diff_match_patch=diff_match_patch;this.DIFF_DELETE=DIFF_DELETE;this.DIFF_INSERT=DIFF_INSERT;this.DIFF_EQUAL=DIFF_EQUAL;\n}).call(exports);",
"type": "application/javascript",
"title": "$:/core/modules/utils/diff-match-patch/diff_match_patch.js",
"module-type": "library"
},
"$:/core/modules/utils/dom/animations/slide.js": {
"title": "$:/core/modules/utils/dom/animations/slide.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/animations/slide.js\ntype: application/javascript\nmodule-type: animation\n\nA simple slide animation that varies the height of the element\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nfunction slideOpen(domNode,options) {\n\toptions = options || {};\n\tvar duration = options.duration || $tw.utils.getAnimationDuration();\n\t// Get the current height of the domNode\n\tvar computedStyle = window.getComputedStyle(domNode),\n\t\tcurrMarginBottom = parseInt(computedStyle.marginBottom,10),\n\t\tcurrMarginTop = parseInt(computedStyle.marginTop,10),\n\t\tcurrPaddingBottom = parseInt(computedStyle.paddingBottom,10),\n\t\tcurrPaddingTop = parseInt(computedStyle.paddingTop,10),\n\t\tcurrHeight = domNode.offsetHeight;\n\t// Reset the margin once the transition is over\n\tsetTimeout(function() {\n\t\t$tw.utils.setStyle(domNode,[\n\t\t\t{transition: \"none\"},\n\t\t\t{marginBottom: \"\"},\n\t\t\t{marginTop: \"\"},\n\t\t\t{paddingBottom: \"\"},\n\t\t\t{paddingTop: \"\"},\n\t\t\t{height: \"auto\"},\n\t\t\t{opacity: \"\"}\n\t\t]);\n\t\tif(options.callback) {\n\t\t\toptions.callback();\n\t\t}\n\t},duration);\n\t// Set up the initial position of the element\n\t$tw.utils.setStyle(domNode,[\n\t\t{transition: \"none\"},\n\t\t{marginTop: \"0px\"},\n\t\t{marginBottom: \"0px\"},\n\t\t{paddingTop: \"0px\"},\n\t\t{paddingBottom: \"0px\"},\n\t\t{height: \"0px\"},\n\t\t{opacity: \"0\"}\n\t]);\n\t$tw.utils.forceLayout(domNode);\n\t// Transition to the final position\n\t$tw.utils.setStyle(domNode,[\n\t\t{transition: \"margin-top \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"margin-bottom \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"padding-top \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"padding-bottom \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"height \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"opacity \" + duration + \"ms ease-in-out\"},\n\t\t{marginBottom: currMarginBottom + \"px\"},\n\t\t{marginTop: currMarginTop + \"px\"},\n\t\t{paddingBottom: currPaddingBottom + \"px\"},\n\t\t{paddingTop: currPaddingTop + \"px\"},\n\t\t{height: currHeight + \"px\"},\n\t\t{opacity: \"1\"}\n\t]);\n}\n\nfunction slideClosed(domNode,options) {\n\toptions = options || {};\n\tvar duration = options.duration || $tw.utils.getAnimationDuration(),\n\t\tcurrHeight = domNode.offsetHeight;\n\t// Clear the properties we've set when the animation is over\n\tsetTimeout(function() {\n\t\t$tw.utils.setStyle(domNode,[\n\t\t\t{transition: \"none\"},\n\t\t\t{marginBottom: \"\"},\n\t\t\t{marginTop: \"\"},\n\t\t\t{paddingBottom: \"\"},\n\t\t\t{paddingTop: \"\"},\n\t\t\t{height: \"auto\"},\n\t\t\t{opacity: \"\"}\n\t\t]);\n\t\tif(options.callback) {\n\t\t\toptions.callback();\n\t\t}\n\t},duration);\n\t// Set up the initial position of the element\n\t$tw.utils.setStyle(domNode,[\n\t\t{height: currHeight + \"px\"},\n\t\t{opacity: \"1\"}\n\t]);\n\t$tw.utils.forceLayout(domNode);\n\t// Transition to the final position\n\t$tw.utils.setStyle(domNode,[\n\t\t{transition: \"margin-top \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"margin-bottom \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"padding-top \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"padding-bottom \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"height \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"opacity \" + duration + \"ms ease-in-out\"},\n\t\t{marginTop: \"0px\"},\n\t\t{marginBottom: \"0px\"},\n\t\t{paddingTop: \"0px\"},\n\t\t{paddingBottom: \"0px\"},\n\t\t{height: \"0px\"},\n\t\t{opacity: \"0\"}\n\t]);\n}\n\nexports.slide = {\n\topen: slideOpen,\n\tclose: slideClosed\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "animation"
},
"$:/core/modules/utils/dom/animator.js": {
"title": "$:/core/modules/utils/dom/animator.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/animator.js\ntype: application/javascript\nmodule-type: utils\n\nOrchestrates animations and transitions\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nfunction Animator() {\n\t// Get the registered animation modules\n\tthis.animations = {};\n\t$tw.modules.applyMethods(\"animation\",this.animations);\n}\n\nAnimator.prototype.perform = function(type,domNode,options) {\n\toptions = options || {};\n\t// Find an animation that can handle this type\n\tvar chosenAnimation;\n\t$tw.utils.each(this.animations,function(animation,name) {\n\t\tif($tw.utils.hop(animation,type)) {\n\t\t\tchosenAnimation = animation[type];\n\t\t}\n\t});\n\tif(!chosenAnimation) {\n\t\tchosenAnimation = function(domNode,options) {\n\t\t\tif(options.callback) {\n\t\t\t\toptions.callback();\n\t\t\t}\n\t\t};\n\t}\n\t// Call the animation\n\tchosenAnimation(domNode,options);\n};\n\nexports.Animator = Animator;\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom/browser.js": {
"title": "$:/core/modules/utils/dom/browser.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/browser.js\ntype: application/javascript\nmodule-type: utils\n\nBrowser feature detection\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSet style properties of an element\n\telement: dom node\n\tstyles: ordered array of {name: value} pairs\n*/\nexports.setStyle = function(element,styles) {\n\tif(element.nodeType === 1) { // Element.ELEMENT_NODE\n\t\tfor(var t=0; t<styles.length; t++) {\n\t\t\tfor(var styleName in styles[t]) {\n\t\t\t\telement.style[$tw.utils.convertStyleNameToPropertyName(styleName)] = styles[t][styleName];\n\t\t\t}\n\t\t}\n\t}\n};\n\n/*\nConverts a standard CSS property name into the local browser-specific equivalent. For example:\n\t\"background-color\" --> \"backgroundColor\"\n\t\"transition\" --> \"webkitTransition\"\n*/\n\nvar styleNameCache = {}; // We'll cache the style name conversions\n\nexports.convertStyleNameToPropertyName = function(styleName) {\n\t// Return from the cache if we can\n\tif(styleNameCache[styleName]) {\n\t\treturn styleNameCache[styleName];\n\t}\n\t// Convert it by first removing any hyphens\n\tvar propertyName = $tw.utils.unHyphenateCss(styleName);\n\t// Then check if it needs a prefix\n\tif($tw.browser && document.body.style[propertyName] === undefined) {\n\t\tvar prefixes = [\"O\",\"MS\",\"Moz\",\"webkit\"];\n\t\tfor(var t=0; t<prefixes.length; t++) {\n\t\t\tvar prefixedName = prefixes[t] + propertyName.substr(0,1).toUpperCase() + propertyName.substr(1);\n\t\t\tif(document.body.style[prefixedName] !== undefined) {\n\t\t\t\tpropertyName = prefixedName;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\t// Put it in the cache too\n\tstyleNameCache[styleName] = propertyName;\n\treturn propertyName;\n};\n\n/*\nConverts a JS format CSS property name back into the dashed form used in CSS declarations. For example:\n\t\"backgroundColor\" --> \"background-color\"\n\t\"webkitTransform\" --> \"-webkit-transform\"\n*/\nexports.convertPropertyNameToStyleName = function(propertyName) {\n\t// Rehyphenate the name\n\tvar styleName = $tw.utils.hyphenateCss(propertyName);\n\t// If there's a webkit prefix, add a dash (other browsers have uppercase prefixes, and so get the dash automatically)\n\tif(styleName.indexOf(\"webkit\") === 0) {\n\t\tstyleName = \"-\" + styleName;\n\t} else if(styleName.indexOf(\"-m-s\") === 0) {\n\t\tstyleName = \"-ms\" + styleName.substr(4);\n\t}\n\treturn styleName;\n};\n\n/*\nRound trip a stylename to a property name and back again. For example:\n\t\"transform\" --> \"webkitTransform\" --> \"-webkit-transform\"\n*/\nexports.roundTripPropertyName = function(propertyName) {\n\treturn $tw.utils.convertPropertyNameToStyleName($tw.utils.convertStyleNameToPropertyName(propertyName));\n};\n\n/*\nConverts a standard event name into the local browser specific equivalent. For example:\n\t\"animationEnd\" --> \"webkitAnimationEnd\"\n*/\n\nvar eventNameCache = {}; // We'll cache the conversions\n\nvar eventNameMappings = {\n\t\"transitionEnd\": {\n\t\tcorrespondingCssProperty: \"transition\",\n\t\tmappings: {\n\t\t\ttransition: \"transitionend\",\n\t\t\tOTransition: \"oTransitionEnd\",\n\t\t\tMSTransition: \"msTransitionEnd\",\n\t\t\tMozTransition: \"transitionend\",\n\t\t\twebkitTransition: \"webkitTransitionEnd\"\n\t\t}\n\t},\n\t\"animationEnd\": {\n\t\tcorrespondingCssProperty: \"animation\",\n\t\tmappings: {\n\t\t\tanimation: \"animationend\",\n\t\t\tOAnimation: \"oAnimationEnd\",\n\t\t\tMSAnimation: \"msAnimationEnd\",\n\t\t\tMozAnimation: \"animationend\",\n\t\t\twebkitAnimation: \"webkitAnimationEnd\"\n\t\t}\n\t}\n};\n\nexports.convertEventName = function(eventName) {\n\tif(eventNameCache[eventName]) {\n\t\treturn eventNameCache[eventName];\n\t}\n\tvar newEventName = eventName,\n\t\tmappings = eventNameMappings[eventName];\n\tif(mappings) {\n\t\tvar convertedProperty = $tw.utils.convertStyleNameToPropertyName(mappings.correspondingCssProperty);\n\t\tif(mappings.mappings[convertedProperty]) {\n\t\t\tnewEventName = mappings.mappings[convertedProperty];\n\t\t}\n\t}\n\t// Put it in the cache too\n\teventNameCache[eventName] = newEventName;\n\treturn newEventName;\n};\n\n/*\nReturn the names of the fullscreen APIs\n*/\nexports.getFullScreenApis = function() {\n\tvar d = document,\n\t\tdb = d.body,\n\t\tresult = {\n\t\t\"_requestFullscreen\": db.webkitRequestFullscreen !== undefined ? \"webkitRequestFullscreen\" :\n\t\t\t\t\t\t\tdb.mozRequestFullScreen !== undefined ? \"mozRequestFullScreen\" :\n\t\t\t\t\t\t\tdb.msRequestFullscreen !== undefined ? \"msRequestFullscreen\" :\n\t\t\t\t\t\t\tdb.requestFullscreen !== undefined ? \"requestFullscreen\" : \"\",\n\t\t\"_exitFullscreen\": d.webkitExitFullscreen !== undefined ? \"webkitExitFullscreen\" :\n\t\t\t\t\t\t\td.mozCancelFullScreen !== undefined ? \"mozCancelFullScreen\" :\n\t\t\t\t\t\t\td.msExitFullscreen !== undefined ? \"msExitFullscreen\" :\n\t\t\t\t\t\t\td.exitFullscreen !== undefined ? \"exitFullscreen\" : \"\",\n\t\t\"_fullscreenElement\": d.webkitFullscreenElement !== undefined ? \"webkitFullscreenElement\" :\n\t\t\t\t\t\t\td.mozFullScreenElement !== undefined ? \"mozFullScreenElement\" :\n\t\t\t\t\t\t\td.msFullscreenElement !== undefined ? \"msFullscreenElement\" :\n\t\t\t\t\t\t\td.fullscreenElement !== undefined ? \"fullscreenElement\" : \"\",\n\t\t\"_fullscreenChange\": d.webkitFullscreenElement !== undefined ? \"webkitfullscreenchange\" :\n\t\t\t\t\t\t\td.mozFullScreenElement !== undefined ? \"mozfullscreenchange\" :\n\t\t\t\t\t\t\td.msFullscreenElement !== undefined ? \"MSFullscreenChange\" :\n\t\t\t\t\t\t\td.fullscreenElement !== undefined ? \"fullscreenchange\" : \"\"\n\t};\n\tif(!result._requestFullscreen || !result._exitFullscreen || !result._fullscreenElement || !result._fullscreenChange) {\n\t\treturn null;\n\t} else {\n\t\treturn result;\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom/csscolorparser.js": {
"title": "$:/core/modules/utils/dom/csscolorparser.js",
"text": "// (c) Dean McNamee <dean@gmail.com>, 2012.\n//\n// https://github.com/deanm/css-color-parser-js\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to\n// deal in the Software without restriction, including without limitation the\n// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n// sell copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n// IN THE SOFTWARE.\n\n// http://www.w3.org/TR/css3-color/\nvar kCSSColorTable = {\n \"transparent\": [0,0,0,0], \"aliceblue\": [240,248,255,1],\n \"antiquewhite\": [250,235,215,1], \"aqua\": [0,255,255,1],\n \"aquamarine\": [127,255,212,1], \"azure\": [240,255,255,1],\n \"beige\": [245,245,220,1], \"bisque\": [255,228,196,1],\n \"black\": [0,0,0,1], \"blanchedalmond\": [255,235,205,1],\n \"blue\": [0,0,255,1], \"blueviolet\": [138,43,226,1],\n \"brown\": [165,42,42,1], \"burlywood\": [222,184,135,1],\n \"cadetblue\": [95,158,160,1], \"chartreuse\": [127,255,0,1],\n \"chocolate\": [210,105,30,1], \"coral\": [255,127,80,1],\n \"cornflowerblue\": [100,149,237,1], \"cornsilk\": [255,248,220,1],\n \"crimson\": [220,20,60,1], \"cyan\": [0,255,255,1],\n \"darkblue\": [0,0,139,1], \"darkcyan\": [0,139,139,1],\n \"darkgoldenrod\": [184,134,11,1], \"darkgray\": [169,169,169,1],\n \"darkgreen\": [0,100,0,1], \"darkgrey\": [169,169,169,1],\n \"darkkhaki\": [189,183,107,1], \"darkmagenta\": [139,0,139,1],\n \"darkolivegreen\": [85,107,47,1], \"darkorange\": [255,140,0,1],\n \"darkorchid\": [153,50,204,1], \"darkred\": [139,0,0,1],\n \"darksalmon\": [233,150,122,1], \"darkseagreen\": [143,188,143,1],\n \"darkslateblue\": [72,61,139,1], \"darkslategray\": [47,79,79,1],\n \"darkslategrey\": [47,79,79,1], \"darkturquoise\": [0,206,209,1],\n \"darkviolet\": [148,0,211,1], \"deeppink\": [255,20,147,1],\n \"deepskyblue\": [0,191,255,1], \"dimgray\": [105,105,105,1],\n \"dimgrey\": [105,105,105,1], \"dodgerblue\": [30,144,255,1],\n \"firebrick\": [178,34,34,1], \"floralwhite\": [255,250,240,1],\n \"forestgreen\": [34,139,34,1], \"fuchsia\": [255,0,255,1],\n \"gainsboro\": [220,220,220,1], \"ghostwhite\": [248,248,255,1],\n \"gold\": [255,215,0,1], \"goldenrod\": [218,165,32,1],\n \"gray\": [128,128,128,1], \"green\": [0,128,0,1],\n \"greenyellow\": [173,255,47,1], \"grey\": [128,128,128,1],\n \"honeydew\": [240,255,240,1], \"hotpink\": [255,105,180,1],\n \"indianred\": [205,92,92,1], \"indigo\": [75,0,130,1],\n \"ivory\": [255,255,240,1], \"khaki\": [240,230,140,1],\n \"lavender\": [230,230,250,1], \"lavenderblush\": [255,240,245,1],\n \"lawngreen\": [124,252,0,1], \"lemonchiffon\": [255,250,205,1],\n \"lightblue\": [173,216,230,1], \"lightcoral\": [240,128,128,1],\n \"lightcyan\": [224,255,255,1], \"lightgoldenrodyellow\": [250,250,210,1],\n \"lightgray\": [211,211,211,1], \"lightgreen\": [144,238,144,1],\n \"lightgrey\": [211,211,211,1], \"lightpink\": [255,182,193,1],\n \"lightsalmon\": [255,160,122,1], \"lightseagreen\": [32,178,170,1],\n \"lightskyblue\": [135,206,250,1], \"lightslategray\": [119,136,153,1],\n \"lightslategrey\": [119,136,153,1], \"lightsteelblue\": [176,196,222,1],\n \"lightyellow\": [255,255,224,1], \"lime\": [0,255,0,1],\n \"limegreen\": [50,205,50,1], \"linen\": [250,240,230,1],\n \"magenta\": [255,0,255,1], \"maroon\": [128,0,0,1],\n \"mediumaquamarine\": [102,205,170,1], \"mediumblue\": [0,0,205,1],\n \"mediumorchid\": [186,85,211,1], \"mediumpurple\": [147,112,219,1],\n \"mediumseagreen\": [60,179,113,1], \"mediumslateblue\": [123,104,238,1],\n \"mediumspringgreen\": [0,250,154,1], \"mediumturquoise\": [72,209,204,1],\n \"mediumvioletred\": [199,21,133,1], \"midnightblue\": [25,25,112,1],\n \"mintcream\": [245,255,250,1], \"mistyrose\": [255,228,225,1],\n \"moccasin\": [255,228,181,1], \"navajowhite\": [255,222,173,1],\n \"navy\": [0,0,128,1], \"oldlace\": [253,245,230,1],\n \"olive\": [128,128,0,1], \"olivedrab\": [107,142,35,1],\n \"orange\": [255,165,0,1], \"orangered\": [255,69,0,1],\n \"orchid\": [218,112,214,1], \"palegoldenrod\": [238,232,170,1],\n \"palegreen\": [152,251,152,1], \"paleturquoise\": [175,238,238,1],\n \"palevioletred\": [219,112,147,1], \"papayawhip\": [255,239,213,1],\n \"peachpuff\": [255,218,185,1], \"peru\": [205,133,63,1],\n \"pink\": [255,192,203,1], \"plum\": [221,160,221,1],\n \"powderblue\": [176,224,230,1], \"purple\": [128,0,128,1],\n \"red\": [255,0,0,1], \"rosybrown\": [188,143,143,1],\n \"royalblue\": [65,105,225,1], \"saddlebrown\": [139,69,19,1],\n \"salmon\": [250,128,114,1], \"sandybrown\": [244,164,96,1],\n \"seagreen\": [46,139,87,1], \"seashell\": [255,245,238,1],\n \"sienna\": [160,82,45,1], \"silver\": [192,192,192,1],\n \"skyblue\": [135,206,235,1], \"slateblue\": [106,90,205,1],\n \"slategray\": [112,128,144,1], \"slategrey\": [112,128,144,1],\n \"snow\": [255,250,250,1], \"springgreen\": [0,255,127,1],\n \"steelblue\": [70,130,180,1], \"tan\": [210,180,140,1],\n \"teal\": [0,128,128,1], \"thistle\": [216,191,216,1],\n \"tomato\": [255,99,71,1], \"turquoise\": [64,224,208,1],\n \"violet\": [238,130,238,1], \"wheat\": [245,222,179,1],\n \"white\": [255,255,255,1], \"whitesmoke\": [245,245,245,1],\n \"yellow\": [255,255,0,1], \"yellowgreen\": [154,205,50,1]}\n\nfunction clamp_css_byte(i) { // Clamp to integer 0 .. 255.\n i = Math.round(i); // Seems to be what Chrome does (vs truncation).\n return i < 0 ? 0 : i > 255 ? 255 : i;\n}\n\nfunction clamp_css_float(f) { // Clamp to float 0.0 .. 1.0.\n return f < 0 ? 0 : f > 1 ? 1 : f;\n}\n\nfunction parse_css_int(str) { // int or percentage.\n if (str[str.length - 1] === '%')\n return clamp_css_byte(parseFloat(str) / 100 * 255);\n return clamp_css_byte(parseInt(str));\n}\n\nfunction parse_css_float(str) { // float or percentage.\n if (str[str.length - 1] === '%')\n return clamp_css_float(parseFloat(str) / 100);\n return clamp_css_float(parseFloat(str));\n}\n\nfunction css_hue_to_rgb(m1, m2, h) {\n if (h < 0) h += 1;\n else if (h > 1) h -= 1;\n\n if (h * 6 < 1) return m1 + (m2 - m1) * h * 6;\n if (h * 2 < 1) return m2;\n if (h * 3 < 2) return m1 + (m2 - m1) * (2/3 - h) * 6;\n return m1;\n}\n\nfunction parseCSSColor(css_str) {\n // Remove all whitespace, not compliant, but should just be more accepting.\n var str = css_str.replace(/ /g, '').toLowerCase();\n\n // Color keywords (and transparent) lookup.\n if (str in kCSSColorTable) return kCSSColorTable[str].slice(); // dup.\n\n // #abc and #abc123 syntax.\n if (str[0] === '#') {\n if (str.length === 4) {\n var iv = parseInt(str.substr(1), 16); // TODO(deanm): Stricter parsing.\n if (!(iv >= 0 && iv <= 0xfff)) return null; // Covers NaN.\n return [((iv & 0xf00) >> 4) | ((iv & 0xf00) >> 8),\n (iv & 0xf0) | ((iv & 0xf0) >> 4),\n (iv & 0xf) | ((iv & 0xf) << 4),\n 1];\n } else if (str.length === 7) {\n var iv = parseInt(str.substr(1), 16); // TODO(deanm): Stricter parsing.\n if (!(iv >= 0 && iv <= 0xffffff)) return null; // Covers NaN.\n return [(iv & 0xff0000) >> 16,\n (iv & 0xff00) >> 8,\n iv & 0xff,\n 1];\n }\n\n return null;\n }\n\n var op = str.indexOf('('), ep = str.indexOf(')');\n if (op !== -1 && ep + 1 === str.length) {\n var fname = str.substr(0, op);\n var params = str.substr(op+1, ep-(op+1)).split(',');\n var alpha = 1; // To allow case fallthrough.\n switch (fname) {\n case 'rgba':\n if (params.length !== 4) return null;\n alpha = parse_css_float(params.pop());\n // Fall through.\n case 'rgb':\n if (params.length !== 3) return null;\n return [parse_css_int(params[0]),\n parse_css_int(params[1]),\n parse_css_int(params[2]),\n alpha];\n case 'hsla':\n if (params.length !== 4) return null;\n alpha = parse_css_float(params.pop());\n // Fall through.\n case 'hsl':\n if (params.length !== 3) return null;\n var h = (((parseFloat(params[0]) % 360) + 360) % 360) / 360; // 0 .. 1\n // NOTE(deanm): According to the CSS spec s/l should only be\n // percentages, but we don't bother and let float or percentage.\n var s = parse_css_float(params[1]);\n var l = parse_css_float(params[2]);\n var m2 = l <= 0.5 ? l * (s + 1) : l + s - l * s;\n var m1 = l * 2 - m2;\n return [clamp_css_byte(css_hue_to_rgb(m1, m2, h+1/3) * 255),\n clamp_css_byte(css_hue_to_rgb(m1, m2, h) * 255),\n clamp_css_byte(css_hue_to_rgb(m1, m2, h-1/3) * 255),\n alpha];\n default:\n return null;\n }\n }\n\n return null;\n}\n\ntry { exports.parseCSSColor = parseCSSColor } catch(e) { }\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom.js": {
"title": "$:/core/modules/utils/dom.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom.js\ntype: application/javascript\nmodule-type: utils\n\nVarious static DOM-related utility functions.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nDetermines whether element 'a' contains element 'b'\nCode thanks to John Resig, http://ejohn.org/blog/comparing-document-position/\n*/\nexports.domContains = function(a,b) {\n\treturn a.contains ?\n\t\ta !== b && a.contains(b) :\n\t\t!!(a.compareDocumentPosition(b) & 16);\n};\n\nexports.removeChildren = function(node) {\n\twhile(node.hasChildNodes()) {\n\t\tnode.removeChild(node.firstChild);\n\t}\n};\n\nexports.hasClass = function(el,className) {\n\treturn el && el.className && el.className.toString().split(\" \").indexOf(className) !== -1;\n};\n\nexports.addClass = function(el,className) {\n\tvar c = el.className.split(\" \");\n\tif(c.indexOf(className) === -1) {\n\t\tc.push(className);\n\t\tel.className = c.join(\" \");\n\t}\n};\n\nexports.removeClass = function(el,className) {\n\tvar c = el.className.split(\" \"),\n\t\tp = c.indexOf(className);\n\tif(p !== -1) {\n\t\tc.splice(p,1);\n\t\tel.className = c.join(\" \");\n\t}\n};\n\nexports.toggleClass = function(el,className,status) {\n\tif(status === undefined) {\n\t\tstatus = !exports.hasClass(el,className);\n\t}\n\tif(status) {\n\t\texports.addClass(el,className);\n\t} else {\n\t\texports.removeClass(el,className);\n\t}\n};\n\n/*\nGet the first parent element that has scrollbars or use the body as fallback.\n*/\nexports.getScrollContainer = function(el) {\n\tvar doc = el.ownerDocument;\n\twhile(el.parentNode) {\t\n\t\tel = el.parentNode;\n\t\tif(el.scrollTop) {\n\t\t\treturn el;\n\t\t}\n\t}\n\treturn doc.body;\n};\n\n/*\nGet the scroll position of the viewport\nReturns:\n\t{\n\t\tx: horizontal scroll position in pixels,\n\t\ty: vertical scroll position in pixels\n\t}\n*/\nexports.getScrollPosition = function(srcWindow) {\n\tvar scrollWindow = srcWindow || window;\n\tif(\"scrollX\" in scrollWindow) {\n\t\treturn {x: scrollWindow.scrollX, y: scrollWindow.scrollY};\n\t} else {\n\t\treturn {x: scrollWindow.document.documentElement.scrollLeft, y: scrollWindow.document.documentElement.scrollTop};\n\t}\n};\n\n/*\nAdjust the height of a textarea to fit its content, preserving scroll position, and return the height\n*/\nexports.resizeTextAreaToFit = function(domNode,minHeight) {\n\t// Get the scroll container and register the current scroll position\n\tvar container = $tw.utils.getScrollContainer(domNode),\n\t\tscrollTop = container.scrollTop;\n // Measure the specified minimum height\n\tdomNode.style.height = minHeight;\n\tvar measuredHeight = domNode.offsetHeight || parseInt(minHeight,10);\n\t// Set its height to auto so that it snaps to the correct height\n\tdomNode.style.height = \"auto\";\n\t// Calculate the revised height\n\tvar newHeight = Math.max(domNode.scrollHeight + domNode.offsetHeight - domNode.clientHeight,measuredHeight);\n\t// Only try to change the height if it has changed\n\tif(newHeight !== domNode.offsetHeight) {\n\t\tdomNode.style.height = newHeight + \"px\";\n\t\t// Make sure that the dimensions of the textarea are recalculated\n\t\t$tw.utils.forceLayout(domNode);\n\t\t// Set the container to the position we registered at the beginning\n\t\tcontainer.scrollTop = scrollTop;\n\t}\n\treturn newHeight;\n};\n\n/*\nGets the bounding rectangle of an element in absolute page coordinates\n*/\nexports.getBoundingPageRect = function(element) {\n\tvar scrollPos = $tw.utils.getScrollPosition(element.ownerDocument.defaultView),\n\t\tclientRect = element.getBoundingClientRect();\n\treturn {\n\t\tleft: clientRect.left + scrollPos.x,\n\t\twidth: clientRect.width,\n\t\tright: clientRect.right + scrollPos.x,\n\t\ttop: clientRect.top + scrollPos.y,\n\t\theight: clientRect.height,\n\t\tbottom: clientRect.bottom + scrollPos.y\n\t};\n};\n\n/*\nSaves a named password in the browser\n*/\nexports.savePassword = function(name,password) {\n\tvar done = false;\n\ttry {\n\t\twindow.localStorage.setItem(\"tw5-password-\" + name,password);\n\t\tdone = true;\n\t} catch(e) {\n\t}\n\tif(!done) {\n\t\t$tw.savedPasswords = $tw.savedPasswords || Object.create(null);\n\t\t$tw.savedPasswords[name] = password;\n\t}\n};\n\n/*\nRetrieve a named password from the browser\n*/\nexports.getPassword = function(name) {\n\tvar value;\n\ttry {\n\t\tvalue = window.localStorage.getItem(\"tw5-password-\" + name);\n\t} catch(e) {\n\t}\n\tif(value !== undefined) {\n\t\treturn value;\n\t} else {\n\t\treturn ($tw.savedPasswords || Object.create(null))[name] || \"\";\n\t}\n};\n\n/*\nForce layout of a dom node and its descendents\n*/\nexports.forceLayout = function(element) {\n\tvar dummy = element.offsetWidth;\n};\n\n/*\nPulse an element for debugging purposes\n*/\nexports.pulseElement = function(element) {\n\t// Event handler to remove the class at the end\n\telement.addEventListener($tw.browser.animationEnd,function handler(event) {\n\t\telement.removeEventListener($tw.browser.animationEnd,handler,false);\n\t\t$tw.utils.removeClass(element,\"pulse\");\n\t},false);\n\t// Apply the pulse class\n\t$tw.utils.removeClass(element,\"pulse\");\n\t$tw.utils.forceLayout(element);\n\t$tw.utils.addClass(element,\"pulse\");\n};\n\n/*\nAttach specified event handlers to a DOM node\ndomNode: where to attach the event handlers\nevents: array of event handlers to be added (see below)\nEach entry in the events array is an object with these properties:\nhandlerFunction: optional event handler function\nhandlerObject: optional event handler object\nhandlerMethod: optionally specifies object handler method name (defaults to `handleEvent`)\n*/\nexports.addEventListeners = function(domNode,events) {\n\t$tw.utils.each(events,function(eventInfo) {\n\t\tvar handler;\n\t\tif(eventInfo.handlerFunction) {\n\t\t\thandler = eventInfo.handlerFunction;\n\t\t} else if(eventInfo.handlerObject) {\n\t\t\tif(eventInfo.handlerMethod) {\n\t\t\t\thandler = function(event) {\n\t\t\t\t\teventInfo.handlerObject[eventInfo.handlerMethod].call(eventInfo.handlerObject,event);\n\t\t\t\t};\t\n\t\t\t} else {\n\t\t\t\thandler = eventInfo.handlerObject;\n\t\t\t}\n\t\t}\n\t\tdomNode.addEventListener(eventInfo.name,handler,false);\n\t});\n};\n\n/*\nGet the computed styles applied to an element as an array of strings of individual CSS properties\n*/\nexports.getComputedStyles = function(domNode) {\n\tvar textAreaStyles = window.getComputedStyle(domNode,null),\n\t\tstyleDefs = [],\n\t\tname;\n\tfor(var t=0; t<textAreaStyles.length; t++) {\n\t\tname = textAreaStyles[t];\n\t\tstyleDefs.push(name + \": \" + textAreaStyles.getPropertyValue(name) + \";\");\n\t}\n\treturn styleDefs;\n};\n\n/*\nApply a set of styles passed as an array of strings of individual CSS properties\n*/\nexports.setStyles = function(domNode,styleDefs) {\n\tdomNode.style.cssText = styleDefs.join(\"\");\n};\n\n/*\nCopy the computed styles from a source element to a destination element\n*/\nexports.copyStyles = function(srcDomNode,dstDomNode) {\n\t$tw.utils.setStyles(dstDomNode,$tw.utils.getComputedStyles(srcDomNode));\n};\n\n/*\nCopy plain text to the clipboard on browsers that support it\n*/\nexports.copyToClipboard = function(text,options) {\n\toptions = options || {};\n\tvar textArea = document.createElement(\"textarea\");\n\ttextArea.style.position = \"fixed\";\n\ttextArea.style.top = 0;\n\ttextArea.style.left = 0;\n\ttextArea.style.fontSize = \"12pt\";\n\ttextArea.style.width = \"2em\";\n\ttextArea.style.height = \"2em\";\n\ttextArea.style.padding = 0;\n\ttextArea.style.border = \"none\";\n\ttextArea.style.outline = \"none\";\n\ttextArea.style.boxShadow = \"none\";\n\ttextArea.style.background = \"transparent\";\n\ttextArea.value = text;\n\tdocument.body.appendChild(textArea);\n\ttextArea.select();\n\ttextArea.setSelectionRange(0,text.length);\n\tvar succeeded = false;\n\ttry {\n\t\tsucceeded = document.execCommand(\"copy\");\n\t} catch (err) {\n\t}\n\tif(!options.doNotNotify) {\n\t\t$tw.notifier.display(succeeded ? \"$:/language/Notifications/CopiedToClipboard/Succeeded\" : \"$:/language/Notifications/CopiedToClipboard/Failed\");\n\t}\n\tdocument.body.removeChild(textArea);\n};\n\nexports.getLocationPath = function() {\n\treturn window.location.toString().split(\"#\")[0];\n};\n\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom/dragndrop.js": {
"title": "$:/core/modules/utils/dom/dragndrop.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/dragndrop.js\ntype: application/javascript\nmodule-type: utils\n\nBrowser data transfer utilities, used with the clipboard and drag and drop\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nOptions:\n\ndomNode: dom node to make draggable\ndragImageType: \"pill\" or \"dom\"\ndragTiddlerFn: optional function to retrieve the title of tiddler to drag\ndragFilterFn: optional function to retreive the filter defining a list of tiddlers to drag\nwidget: widget to use as the contect for the filter\n*/\nexports.makeDraggable = function(options) {\n\tvar dragImageType = options.dragImageType || \"dom\",\n\t\tdragImage,\n\t\tdomNode = options.domNode;\n\t// Make the dom node draggable (not necessary for anchor tags)\n\tif((domNode.tagName || \"\").toLowerCase() !== \"a\") {\n\t\tdomNode.setAttribute(\"draggable\",\"true\");\t\t\n\t}\n\t// Add event handlers\n\t$tw.utils.addEventListeners(domNode,[\n\t\t{name: \"dragstart\", handlerFunction: function(event) {\n\t\t\tif(event.dataTransfer === undefined) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\t// Collect the tiddlers being dragged\n\t\t\tvar dragTiddler = options.dragTiddlerFn && options.dragTiddlerFn(),\n\t\t\t\tdragFilter = options.dragFilterFn && options.dragFilterFn(),\n\t\t\t\ttitles = dragTiddler ? [dragTiddler] : [],\n\t\t\t \tstartActions = options.startActions;\n\t\t\tif(dragFilter) {\n\t\t\t\ttitles.push.apply(titles,options.widget.wiki.filterTiddlers(dragFilter,options.widget));\n\t\t\t}\n\t\t\tvar titleString = $tw.utils.stringifyList(titles);\n\t\t\t// Check that we've something to drag\n\t\t\tif(titles.length > 0 && event.target === domNode) {\n\t\t\t\t// Mark the drag in progress\n\t\t\t\t$tw.dragInProgress = domNode;\n\t\t\t\t// Set the dragging class on the element being dragged\n\t\t\t\t$tw.utils.addClass(event.target,\"tc-dragging\");\n\t\t\t\t// Invoke drag-start actions if given\n\t\t\t\tif(startActions !== undefined) {\n\t\t\t\t\toptions.widget.invokeActionString(startActions,options.widget,event,{actionTiddler: titleString});\n\t\t\t\t}\n\t\t\t\t// Create the drag image elements\n\t\t\t\tdragImage = options.widget.document.createElement(\"div\");\n\t\t\t\tdragImage.className = \"tc-tiddler-dragger\";\n\t\t\t\tvar inner = options.widget.document.createElement(\"div\");\n\t\t\t\tinner.className = \"tc-tiddler-dragger-inner\";\n\t\t\t\tinner.appendChild(options.widget.document.createTextNode(\n\t\t\t\t\ttitles.length === 1 ? \n\t\t\t\t\t\ttitles[0] :\n\t\t\t\t\t\ttitles.length + \" tiddlers\"\n\t\t\t\t));\n\t\t\t\tdragImage.appendChild(inner);\n\t\t\t\toptions.widget.document.body.appendChild(dragImage);\n\t\t\t\t// Set the data transfer properties\n\t\t\t\tvar dataTransfer = event.dataTransfer;\n\t\t\t\t// Set up the image\n\t\t\t\tdataTransfer.effectAllowed = \"all\";\n\t\t\t\tif(dataTransfer.setDragImage) {\n\t\t\t\t\tif(dragImageType === \"pill\") {\n\t\t\t\t\t\tdataTransfer.setDragImage(dragImage.firstChild,-16,-16);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar r = domNode.getBoundingClientRect();\n\t\t\t\t\t\tdataTransfer.setDragImage(domNode,event.clientX-r.left,event.clientY-r.top);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// Set up the data transfer\n\t\t\t\tif(dataTransfer.clearData) {\n\t\t\t\t\tdataTransfer.clearData();\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\tvar jsonData = [];\n\t\t\t\tif(titles.length > 1) {\n\t\t\t\t\ttitles.forEach(function(title) {\n\t\t\t\t\t\tjsonData.push(options.widget.wiki.getTiddlerAsJson(title));\n\t\t\t\t\t});\n\t\t\t\t\tjsonData = \"[\" + jsonData.join(\",\") + \"]\";\n\t\t\t\t} else {\n\t\t\t\t\tjsonData = options.widget.wiki.getTiddlerAsJson(titles[0]);\n\t\t\t\t}\n\t\t\t\t// IE doesn't like these content types\n\t\t\t\tif(!$tw.browser.isIE) {\n\t\t\t\t\tdataTransfer.setData(\"text/vnd.tiddler\",jsonData);\n\t\t\t\t\tdataTransfer.setData(\"text/plain\",titleString);\n\t\t\t\t\tdataTransfer.setData(\"text/x-moz-url\",\"data:text/vnd.tiddler,\" + encodeURIComponent(jsonData));\n\t\t\t\t}\n\t\t\t\tdataTransfer.setData(\"URL\",\"data:text/vnd.tiddler,\" + encodeURIComponent(jsonData));\n\t\t\t\tdataTransfer.setData(\"Text\",titleString);\n\t\t\t\tevent.stopPropagation();\n\t\t\t}\n\t\t\treturn false;\n\t\t}},\n\t\t{name: \"dragend\", handlerFunction: function(event) {\n\t\t\tif(event.target === domNode) {\n\t\t\t\t// Collect the tiddlers being dragged\n\t\t\t\tvar dragTiddler = options.dragTiddlerFn && options.dragTiddlerFn(),\n\t\t\t\t\tdragFilter = options.dragFilterFn && options.dragFilterFn(),\n\t\t\t\t\ttitles = dragTiddler ? [dragTiddler] : [],\n\t\t\t \t\tendActions = options.endActions;\n\t\t\t\tif(dragFilter) {\n\t\t\t\t\ttitles.push.apply(titles,options.widget.wiki.filterTiddlers(dragFilter,options.widget));\n\t\t\t\t}\n\t\t\t\tvar titleString = $tw.utils.stringifyList(titles);\n\t\t\t\t$tw.dragInProgress = null;\n\t\t\t\t// Invoke drag-end actions if given\n\t\t\t\tif(endActions !== undefined) {\n\t\t\t\t\toptions.widget.invokeActionString(endActions,options.widget,event,{actionTiddler: titleString});\n\t\t\t\t}\n\t\t\t\t// Remove the dragging class on the element being dragged\n\t\t\t\t$tw.utils.removeClass(event.target,\"tc-dragging\");\n\t\t\t\t// Delete the drag image element\n\t\t\t\tif(dragImage) {\n\t\t\t\t\tdragImage.parentNode.removeChild(dragImage);\n\t\t\t\t\tdragImage = null;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t}}\n\t]);\n};\n\nexports.importDataTransfer = function(dataTransfer,fallbackTitle,callback) {\n\t// Try each provided data type in turn\n\tif($tw.log.IMPORT) {\n\t\tconsole.log(\"Available data types:\");\n\t\tfor(var type=0; type<dataTransfer.types.length; type++) {\n\t\t\tconsole.log(\"type\",dataTransfer.types[type],dataTransfer.getData(dataTransfer.types[type]))\n\t\t}\n\t}\n\tfor(var t=0; t<importDataTypes.length; t++) {\n\t\tif(!$tw.browser.isIE || importDataTypes[t].IECompatible) {\n\t\t\t// Get the data\n\t\t\tvar dataType = importDataTypes[t];\n\t\t\t\tvar data = dataTransfer.getData(dataType.type);\n\t\t\t// Import the tiddlers in the data\n\t\t\tif(data !== \"\" && data !== null) {\n\t\t\t\tif($tw.log.IMPORT) {\n\t\t\t\t\tconsole.log(\"Importing data type '\" + dataType.type + \"', data: '\" + data + \"'\")\n\t\t\t\t}\n\t\t\t\tvar tiddlerFields = dataType.toTiddlerFieldsArray(data,fallbackTitle);\n\t\t\t\tcallback(tiddlerFields);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t}\n};\n\nvar importDataTypes = [\n\t{type: \"text/vnd.tiddler\", IECompatible: false, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\treturn parseJSONTiddlers(data,fallbackTitle);\n\t}},\n\t{type: \"URL\", IECompatible: true, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\t// Check for tiddler data URI\n\t\tvar match = decodeURIComponent(data).match(/^data\\:text\\/vnd\\.tiddler,(.*)/i);\n\t\tif(match) {\n\t\t\treturn parseJSONTiddlers(match[1],fallbackTitle);\n\t\t} else {\n\t\t\treturn [{title: fallbackTitle, text: data}]; // As URL string\n\t\t}\n\t}},\n\t{type: \"text/x-moz-url\", IECompatible: false, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\t// Check for tiddler data URI\n\t\tvar match = decodeURIComponent(data).match(/^data\\:text\\/vnd\\.tiddler,(.*)/i);\n\t\tif(match) {\n\t\t\treturn parseJSONTiddlers(match[1],fallbackTitle);\n\t\t} else {\n\t\t\treturn [{title: fallbackTitle, text: data}]; // As URL string\n\t\t}\n\t}},\n\t{type: \"text/html\", IECompatible: false, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\treturn [{title: fallbackTitle, text: data}];\n\t}},\n\t{type: \"text/plain\", IECompatible: false, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\treturn [{title: fallbackTitle, text: data}];\n\t}},\n\t{type: \"Text\", IECompatible: true, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\treturn [{title: fallbackTitle, text: data}];\n\t}},\n\t{type: \"text/uri-list\", IECompatible: false, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\treturn [{title: fallbackTitle, text: data}];\n\t}}\n];\n\nfunction parseJSONTiddlers(json,fallbackTitle) {\n\tvar data = JSON.parse(json);\n\tif(!$tw.utils.isArray(data)) {\n\t\tdata = [data];\n\t}\n\tdata.forEach(function(fields) {\n\t\tfields.title = fields.title || fallbackTitle;\n\t});\n\treturn data;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom/http.js": {
"title": "$:/core/modules/utils/dom/http.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/http.js\ntype: application/javascript\nmodule-type: utils\n\nBrowser HTTP support\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nA quick and dirty HTTP function; to be refactored later. Options are:\n\turl: URL to retrieve\n\theaders: hashmap of headers to send\n\ttype: GET, PUT, POST etc\n\tcallback: function invoked with (err,data,xhr)\n\treturnProp: string name of the property to return as first argument of callback\n*/\nexports.httpRequest = function(options) {\n\tvar type = options.type || \"GET\",\n\t\turl = options.url,\n\t\theaders = options.headers || {accept: \"application/json\"},\n\t\treturnProp = options.returnProp || \"responseText\",\n\t\trequest = new XMLHttpRequest(),\n\t\tdata = \"\",\n\t\tf,results;\n\t// Massage the data hashmap into a string\n\tif(options.data) {\n\t\tif(typeof options.data === \"string\") { // Already a string\n\t\t\tdata = options.data;\n\t\t} else { // A hashmap of strings\n\t\t\tresults = [];\n\t\t\t$tw.utils.each(options.data,function(dataItem,dataItemTitle) {\n\t\t\t\tresults.push(dataItemTitle + \"=\" + encodeURIComponent(dataItem));\n\t\t\t});\n\t\t\tif(type === \"GET\" || type === \"HEAD\") {\n\t\t\t\turl += \"?\" + results.join(\"&\");\n\t\t\t} else {\n\t\t\t\tdata = results.join(\"&\");\n\t\t\t}\n\t\t}\n\t}\n\t// Set up the state change handler\n\trequest.onreadystatechange = function() {\n\t\tif(this.readyState === 4) {\n\t\t\tif(this.status === 200 || this.status === 201 || this.status === 204) {\n\t\t\t\t// Success!\n\t\t\t\toptions.callback(null,this[returnProp],this);\n\t\t\t\treturn;\n\t\t\t}\n\t\t// Something went wrong\n\t\toptions.callback($tw.language.getString(\"Error/XMLHttpRequest\") + \": \" + this.status,null,this);\n\t\t}\n\t};\n\t// Make the request\n\trequest.open(type,url,true);\n\tif(headers) {\n\t\t$tw.utils.each(headers,function(header,headerTitle,object) {\n\t\t\trequest.setRequestHeader(headerTitle,header);\n\t\t});\n\t}\n\tif(data && !$tw.utils.hop(headers,\"Content-type\")) {\n\t\trequest.setRequestHeader(\"Content-type\",\"application/x-www-form-urlencoded; charset=UTF-8\");\n\t}\n\tif(!$tw.utils.hop(headers,\"X-Requested-With\")) {\n\t\trequest.setRequestHeader(\"X-Requested-With\",\"TiddlyWiki\");\n\t}\n\ttry {\n\t\trequest.send(data);\n\t} catch(e) {\n\t\toptions.callback(e,null,this);\n\t}\n\treturn request;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom/keyboard.js": {
"title": "$:/core/modules/utils/dom/keyboard.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/keyboard.js\ntype: application/javascript\nmodule-type: utils\n\nKeyboard utilities; now deprecated. Instead, use $tw.keyboardManager\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n[\"parseKeyDescriptor\",\"checkKeyDescriptor\"].forEach(function(method) {\n\texports[method] = function() {\n\t\tif($tw.keyboardManager) {\n\t\t\treturn $tw.keyboardManager[method].apply($tw.keyboardManager,Array.prototype.slice.call(arguments,0));\n\t\t} else {\n\t\t\treturn null\n\t\t}\n\t};\n});\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom/modal.js": {
"title": "$:/core/modules/utils/dom/modal.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/modal.js\ntype: application/javascript\nmodule-type: utils\n\nModal message mechanism\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nvar Modal = function(wiki) {\n\tthis.wiki = wiki;\n\tthis.modalCount = 0;\n};\n\n/*\nDisplay a modal dialogue\n\ttitle: Title of tiddler to display\n\toptions: see below\nOptions include:\n\tdownloadLink: Text of a big download link to include\n*/\nModal.prototype.display = function(title,options) {\n\toptions = options || {};\n\tthis.srcDocument = options.variables && (options.variables.rootwindow === \"true\" ||\n\t\t\t\toptions.variables.rootwindow === \"yes\") ? document :\n\t\t\t\t(options.event.event && options.event.event.target ? options.event.event.target.ownerDocument : document);\n\tthis.srcWindow = this.srcDocument.defaultView;\n\tvar self = this,\n\t\trefreshHandler,\n\t\tduration = $tw.utils.getAnimationDuration(),\n\t\ttiddler = this.wiki.getTiddler(title);\n\t// Don't do anything if the tiddler doesn't exist\n\tif(!tiddler) {\n\t\treturn;\n\t}\n\t// Create the variables\n\tvar variables = $tw.utils.extend({currentTiddler: title},options.variables);\n\t// Create the wrapper divs\n\tvar wrapper = this.srcDocument.createElement(\"div\"),\n\t\tmodalBackdrop = this.srcDocument.createElement(\"div\"),\n\t\tmodalWrapper = this.srcDocument.createElement(\"div\"),\n\t\tmodalHeader = this.srcDocument.createElement(\"div\"),\n\t\theaderTitle = this.srcDocument.createElement(\"h3\"),\n\t\tmodalBody = this.srcDocument.createElement(\"div\"),\n\t\tmodalLink = this.srcDocument.createElement(\"a\"),\n\t\tmodalFooter = this.srcDocument.createElement(\"div\"),\n\t\tmodalFooterHelp = this.srcDocument.createElement(\"span\"),\n\t\tmodalFooterButtons = this.srcDocument.createElement(\"span\");\n\t// Up the modal count and adjust the body class\n\tthis.modalCount++;\n\tthis.adjustPageClass();\n\t// Add classes\n\t$tw.utils.addClass(wrapper,\"tc-modal-wrapper\");\n\tif(tiddler.fields && tiddler.fields.class) {\n\t\t$tw.utils.addClass(wrapper,tiddler.fields.class);\n\t}\n\t$tw.utils.addClass(modalBackdrop,\"tc-modal-backdrop\");\n\t$tw.utils.addClass(modalWrapper,\"tc-modal\");\n\t$tw.utils.addClass(modalHeader,\"tc-modal-header\");\n\t$tw.utils.addClass(modalBody,\"tc-modal-body\");\n\t$tw.utils.addClass(modalFooter,\"tc-modal-footer\");\n\t// Join them together\n\twrapper.appendChild(modalBackdrop);\n\twrapper.appendChild(modalWrapper);\n\tmodalHeader.appendChild(headerTitle);\n\tmodalWrapper.appendChild(modalHeader);\n\tmodalWrapper.appendChild(modalBody);\n\tmodalFooter.appendChild(modalFooterHelp);\n\tmodalFooter.appendChild(modalFooterButtons);\n\tmodalWrapper.appendChild(modalFooter);\n\t// Render the title of the message\n\tvar headerWidgetNode = this.wiki.makeTranscludeWidget(title,{\n\t\tfield: \"subtitle\",\n\t\tmode: \"inline\",\n\t\tchildren: [{\n\t\t\ttype: \"text\",\n\t\t\tattributes: {\n\t\t\t\ttext: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tvalue: title\n\t\t}}}],\n\t\tparentWidget: $tw.rootWidget,\n\t\tdocument: this.srcDocument,\n\t\tvariables: variables,\n\t\timportPageMacros: true\n\t});\n\theaderWidgetNode.render(headerTitle,null);\n\t// Render the body of the message\n\tvar bodyWidgetNode = this.wiki.makeTranscludeWidget(title,{\n\t\tparentWidget: $tw.rootWidget,\n\t\tdocument: this.srcDocument,\n\t\tvariables: variables,\n\t\timportPageMacros: true\n\t});\n\tbodyWidgetNode.render(modalBody,null);\n\t// Setup the link if present\n\tif(options.downloadLink) {\n\t\tmodalLink.href = options.downloadLink;\n\t\tmodalLink.appendChild(this.srcDocument.createTextNode(\"Right-click to save changes\"));\n\t\tmodalBody.appendChild(modalLink);\n\t}\n\t// Render the footer of the message\n\tif(tiddler.fields && tiddler.fields.help) {\n\t\tvar link = this.srcDocument.createElement(\"a\");\n\t\tlink.setAttribute(\"href\",tiddler.fields.help);\n\t\tlink.setAttribute(\"target\",\"_blank\");\n\t\tlink.setAttribute(\"rel\",\"noopener noreferrer\");\n\t\tlink.appendChild(this.srcDocument.createTextNode(\"Help\"));\n\t\tmodalFooterHelp.appendChild(link);\n\t\tmodalFooterHelp.style.float = \"left\";\n\t}\n\tvar footerWidgetNode = this.wiki.makeTranscludeWidget(title,{\n\t\tfield: \"footer\",\n\t\tmode: \"inline\",\n\t\tchildren: [{\n\t\t\ttype: \"button\",\n\t\t\tattributes: {\n\t\t\t\tmessage: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tvalue: \"tm-close-tiddler\"\n\t\t\t\t}\n\t\t\t},\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\",\n\t\t\t\tattributes: {\n\t\t\t\t\ttext: {\n\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\tvalue: $tw.language.getString(\"Buttons/Close/Caption\")\n\t\t\t}}}\n\t\t]}],\n\t\tparentWidget: $tw.rootWidget,\n\t\tdocument: this.srcDocument,\n\t\tvariables: variables,\n\t\timportPageMacros: true\n\t});\n\tfooterWidgetNode.render(modalFooterButtons,null);\n\t// Set up the refresh handler\n\trefreshHandler = function(changes) {\n\t\theaderWidgetNode.refresh(changes,modalHeader,null);\n\t\tbodyWidgetNode.refresh(changes,modalBody,null);\n\t\tfooterWidgetNode.refresh(changes,modalFooterButtons,null);\n\t};\n\tthis.wiki.addEventListener(\"change\",refreshHandler);\n\t// Add the close event handler\n\tvar closeHandler = function(event) {\n\t\t// Remove our refresh handler\n\t\tself.wiki.removeEventListener(\"change\",refreshHandler);\n\t\t// Decrease the modal count and adjust the body class\n\t\tself.modalCount--;\n\t\tself.adjustPageClass();\n\t\t// Force layout and animate the modal message away\n\t\t$tw.utils.forceLayout(modalBackdrop);\n\t\t$tw.utils.forceLayout(modalWrapper);\n\t\t$tw.utils.setStyle(modalBackdrop,[\n\t\t\t{opacity: \"0\"}\n\t\t]);\n\t\t$tw.utils.setStyle(modalWrapper,[\n\t\t\t{transform: \"translateY(\" + self.srcWindow.innerHeight + \"px)\"}\n\t\t]);\n\t\t// Set up an event for the transition end\n\t\tself.srcWindow.setTimeout(function() {\n\t\t\tif(wrapper.parentNode) {\n\t\t\t\t// Remove the modal message from the DOM\n\t\t\t\tself.srcDocument.body.removeChild(wrapper);\n\t\t\t}\n\t\t},duration);\n\t\t// Don't let anyone else handle the tm-close-tiddler message\n\t\treturn false;\n\t};\n\theaderWidgetNode.addEventListener(\"tm-close-tiddler\",closeHandler,false);\n\tbodyWidgetNode.addEventListener(\"tm-close-tiddler\",closeHandler,false);\n\tfooterWidgetNode.addEventListener(\"tm-close-tiddler\",closeHandler,false);\n\t// Set the initial styles for the message\n\t$tw.utils.setStyle(modalBackdrop,[\n\t\t{opacity: \"0\"}\n\t]);\n\t$tw.utils.setStyle(modalWrapper,[\n\t\t{transformOrigin: \"0% 0%\"},\n\t\t{transform: \"translateY(\" + (-this.srcWindow.innerHeight) + \"px)\"}\n\t]);\n\t// Put the message into the document\n\tthis.srcDocument.body.appendChild(wrapper);\n\t// Set up animation for the styles\n\t$tw.utils.setStyle(modalBackdrop,[\n\t\t{transition: \"opacity \" + duration + \"ms ease-out\"}\n\t]);\n\t$tw.utils.setStyle(modalWrapper,[\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms ease-in-out\"}\n\t]);\n\t// Force layout\n\t$tw.utils.forceLayout(modalBackdrop);\n\t$tw.utils.forceLayout(modalWrapper);\n\t// Set final animated styles\n\t$tw.utils.setStyle(modalBackdrop,[\n\t\t{opacity: \"0.7\"}\n\t]);\n\t$tw.utils.setStyle(modalWrapper,[\n\t\t{transform: \"translateY(0px)\"}\n\t]);\n};\n\nModal.prototype.adjustPageClass = function() {\n\tvar windowContainer = $tw.pageContainer ? ($tw.pageContainer === this.srcDocument.body.firstChild ? $tw.pageContainer : this.srcDocument.body.firstChild) : null;\n\tif(windowContainer) {\n\t\t$tw.utils.toggleClass(windowContainer,\"tc-modal-displayed\",this.modalCount > 0);\n\t}\n};\n\nexports.Modal = Modal;\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom/notifier.js": {
"title": "$:/core/modules/utils/dom/notifier.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/notifier.js\ntype: application/javascript\nmodule-type: utils\n\nNotifier mechanism\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nvar Notifier = function(wiki) {\n\tthis.wiki = wiki;\n};\n\n/*\nDisplay a notification\n\ttitle: Title of tiddler containing the notification text\n\toptions: see below\nOptions include:\n*/\nNotifier.prototype.display = function(title,options) {\n\toptions = options || {};\n\t// Create the wrapper divs\n\tvar self = this,\n\t\tnotification = document.createElement(\"div\"),\n\t\ttiddler = this.wiki.getTiddler(title),\n\t\tduration = $tw.utils.getAnimationDuration(),\n\t\trefreshHandler;\n\t// Don't do anything if the tiddler doesn't exist\n\tif(!tiddler) {\n\t\treturn;\n\t}\n\t// Add classes\n\t$tw.utils.addClass(notification,\"tc-notification\");\n\t// Create the variables\n\tvar variables = $tw.utils.extend({currentTiddler: title},options.variables);\n\t// Render the body of the notification\n\tvar widgetNode = this.wiki.makeTranscludeWidget(title,{\n\t\tparentWidget: $tw.rootWidget,\n\t\tdocument: document,\n\t\tvariables: variables,\n\t\timportPageMacros: true});\n\twidgetNode.render(notification,null);\n\trefreshHandler = function(changes) {\n\t\twidgetNode.refresh(changes,notification,null);\n\t};\n\tthis.wiki.addEventListener(\"change\",refreshHandler);\n\t// Set the initial styles for the notification\n\t$tw.utils.setStyle(notification,[\n\t\t{opacity: \"0\"},\n\t\t{transformOrigin: \"0% 0%\"},\n\t\t{transform: \"translateY(\" + (-window.innerHeight) + \"px)\"},\n\t\t{transition: \"opacity \" + duration + \"ms ease-out, \" + $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms ease-in-out\"}\n\t]);\n\t// Add the notification to the DOM\n\tdocument.body.appendChild(notification);\n\t// Force layout\n\t$tw.utils.forceLayout(notification);\n\t// Set final animated styles\n\t$tw.utils.setStyle(notification,[\n\t\t{opacity: \"1.0\"},\n\t\t{transform: \"translateY(0px)\"}\n\t]);\n\t// Set a timer to remove the notification\n\twindow.setTimeout(function() {\n\t\t// Remove our change event handler\n\t\tself.wiki.removeEventListener(\"change\",refreshHandler);\n\t\t// Force layout and animate the notification away\n\t\t$tw.utils.forceLayout(notification);\n\t\t$tw.utils.setStyle(notification,[\n\t\t\t{opacity: \"0.0\"},\n\t\t\t{transform: \"translateX(\" + (notification.offsetWidth) + \"px)\"}\n\t\t]);\n\t\t// Remove the modal message from the DOM once the transition ends\n\t\tsetTimeout(function() {\n\t\t\tif(notification.parentNode) {\n\t\t\t\tdocument.body.removeChild(notification);\n\t\t\t}\n\t\t},duration);\n\t},$tw.config.preferences.notificationDuration);\n};\n\nexports.Notifier = Notifier;\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom/popup.js": {
"title": "$:/core/modules/utils/dom/popup.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/popup.js\ntype: application/javascript\nmodule-type: utils\n\nModule that creates a $tw.utils.Popup object prototype that manages popups in the browser\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nCreates a Popup object with these options:\n\trootElement: the DOM element to which the popup zapper should be attached\n*/\nvar Popup = function(options) {\n\toptions = options || {};\n\tthis.rootElement = options.rootElement || document.documentElement;\n\tthis.popups = []; // Array of {title:,wiki:,domNode:} objects\n};\n\n/*\nTrigger a popup open or closed. Parameters are in a hashmap:\n\ttitle: title of the tiddler where the popup details are stored\n\tdomNode: dom node to which the popup will be positioned (one of domNode or domNodeRect is required)\n\tdomNodeRect: rectangle to which the popup will be positioned\n\twiki: wiki\n\tforce: if specified, forces the popup state to true or false (instead of toggling it)\n\tfloating: if true, skips registering the popup, meaning that it will need manually clearing\n*/\nPopup.prototype.triggerPopup = function(options) {\n\t// Check if this popup is already active\n\tvar index = this.findPopup(options.title);\n\t// Compute the new state\n\tvar state = index === -1;\n\tif(options.force !== undefined) {\n\t\tstate = options.force;\n\t}\n\t// Show or cancel the popup according to the new state\n\tif(state) {\n\t\tthis.show(options);\n\t} else {\n\t\tthis.cancel(index);\n\t}\n};\n\nPopup.prototype.findPopup = function(title) {\n\tvar index = -1;\n\tfor(var t=0; t<this.popups.length; t++) {\n\t\tif(this.popups[t].title === title) {\n\t\t\tindex = t;\n\t\t}\n\t}\n\treturn index;\n};\n\nPopup.prototype.handleEvent = function(event) {\n\tif(event.type === \"click\") {\n\t\t// Find out what was clicked on\n\t\tvar info = this.popupInfo(event.target),\n\t\t\tcancelLevel = info.popupLevel - 1;\n\t\t// Don't remove the level that was clicked on if we clicked on a handle\n\t\tif(info.isHandle) {\n\t\t\tcancelLevel++;\n\t\t}\n\t\t// Cancel\n\t\tthis.cancel(cancelLevel);\n\t}\n};\n\n/*\nFind the popup level containing a DOM node. Returns:\npopupLevel: count of the number of nested popups containing the specified element\nisHandle: true if the specified element is within a popup handle\n*/\nPopup.prototype.popupInfo = function(domNode) {\n\tvar isHandle = false,\n\t\tpopupCount = 0,\n\t\tnode = domNode;\n\t// First check ancestors to see if we're within a popup handle\n\twhile(node) {\n\t\tif($tw.utils.hasClass(node,\"tc-popup-handle\")) {\n\t\t\tisHandle = true;\n\t\t\tpopupCount++;\n\t\t}\n\t\tif($tw.utils.hasClass(node,\"tc-popup-keep\")) {\n\t\t\tisHandle = true;\n\t\t}\n\t\tnode = node.parentNode;\n\t}\n\t// Then count the number of ancestor popups\n\tnode = domNode;\n\twhile(node) {\n\t\tif($tw.utils.hasClass(node,\"tc-popup\")) {\n\t\t\tpopupCount++;\n\t\t}\n\t\tnode = node.parentNode;\n\t}\n\tvar info = {\n\t\tpopupLevel: popupCount,\n\t\tisHandle: isHandle\n\t};\n\treturn info;\n};\n\n/*\nDisplay a popup by adding it to the stack\n*/\nPopup.prototype.show = function(options) {\n\t// Find out what was clicked on\n\tvar info = this.popupInfo(options.domNode);\n\t// Cancel any higher level popups\n\tthis.cancel(info.popupLevel);\n\n\t// Store the popup details if not already there\n\tif(!options.floating && this.findPopup(options.title) === -1) {\n\t\tthis.popups.push({\n\t\t\ttitle: options.title,\n\t\t\twiki: options.wiki,\n\t\t\tdomNode: options.domNode,\n\t\t\tnoStateReference: options.noStateReference\n\t\t});\n\t}\n\t// Set the state tiddler\n\tvar rect;\n\tif(options.domNodeRect) {\n\t\trect = options.domNodeRect;\n\t} else {\n\t\trect = {\n\t\t\tleft: options.domNode.offsetLeft,\n\t\t\ttop: options.domNode.offsetTop,\n\t\t\twidth: options.domNode.offsetWidth,\n\t\t\theight: options.domNode.offsetHeight\n\t\t};\n\t}\n\tvar popupRect = \"(\" + rect.left + \",\" + rect.top + \",\" + \n\t\t\t\trect.width + \",\" + rect.height + \")\";\n\tif(options.noStateReference) {\n\t\toptions.wiki.setText(options.title,\"text\",undefined,popupRect);\n\t} else {\n\t\toptions.wiki.setTextReference(options.title,popupRect);\n\t}\n\t// Add the click handler if we have any popups\n\tif(this.popups.length > 0) {\n\t\tthis.rootElement.addEventListener(\"click\",this,true);\t\t\n\t}\n};\n\n/*\nCancel all popups at or above a specified level or DOM node\nlevel: popup level to cancel (0 cancels all popups)\n*/\nPopup.prototype.cancel = function(level) {\n\tvar numPopups = this.popups.length;\n\tlevel = Math.max(0,Math.min(level,numPopups));\n\tfor(var t=level; t<numPopups; t++) {\n\t\tvar popup = this.popups.pop();\n\t\tif(popup.title) {\n\t\t\tif(popup.noStateReference) {\n\t\t\t\tpopup.wiki.deleteTiddler(popup.title);\n\t\t\t} else {\n\t\t\t\tpopup.wiki.deleteTiddler($tw.utils.parseTextReference(popup.title).title);\n \t\t}\n\t\t}\n\t}\n\tif(this.popups.length === 0) {\n\t\tthis.rootElement.removeEventListener(\"click\",this,false);\n\t}\n};\n\n/*\nReturns true if the specified title and text identifies an active popup\n*/\nPopup.prototype.readPopupState = function(text) {\n\tvar popupLocationRegExp = /^\\((-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+)\\)$/;\n\treturn popupLocationRegExp.test(text);\n};\n\nexports.Popup = Popup;\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom/scroller.js": {
"title": "$:/core/modules/utils/dom/scroller.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/scroller.js\ntype: application/javascript\nmodule-type: utils\n\nModule that creates a $tw.utils.Scroller object prototype that manages scrolling in the browser\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nEvent handler for when the `tm-scroll` event hits the document body\n*/\nvar PageScroller = function() {\n\tthis.idRequestFrame = null;\n\tthis.requestAnimationFrame = window.requestAnimationFrame ||\n\t\twindow.webkitRequestAnimationFrame ||\n\t\twindow.mozRequestAnimationFrame ||\n\t\tfunction(callback) {\n\t\t\treturn window.setTimeout(callback, 1000/60);\n\t\t};\n\tthis.cancelAnimationFrame = window.cancelAnimationFrame ||\n\t\twindow.webkitCancelAnimationFrame ||\n\t\twindow.webkitCancelRequestAnimationFrame ||\n\t\twindow.mozCancelAnimationFrame ||\n\t\twindow.mozCancelRequestAnimationFrame ||\n\t\tfunction(id) {\n\t\t\twindow.clearTimeout(id);\n\t\t};\n};\n\nPageScroller.prototype.isScrolling = function() {\n\treturn this.idRequestFrame !== null;\n}\n\nPageScroller.prototype.cancelScroll = function(srcWindow) {\n\tif(this.idRequestFrame) {\n\t\tthis.cancelAnimationFrame.call(srcWindow,this.idRequestFrame);\n\t\tthis.idRequestFrame = null;\n\t}\n};\n\n/*\nHandle an event\n*/\nPageScroller.prototype.handleEvent = function(event) {\n\tif(event.type === \"tm-scroll\") {\n\t\treturn this.scrollIntoView(event.target);\n\t}\n\treturn true;\n};\n\n/*\nHandle a scroll event hitting the page document\n*/\nPageScroller.prototype.scrollIntoView = function(element,callback) {\n\tvar self = this,\n\t\tduration = $tw.utils.getAnimationDuration(),\n\t srcWindow = element ? element.ownerDocument.defaultView : window;\n\t// Now get ready to scroll the body\n\tthis.cancelScroll(srcWindow);\n\tthis.startTime = Date.now();\n\t// Get the height of any position:fixed toolbars\n\tvar toolbar = srcWindow.document.querySelector(\".tc-adjust-top-of-scroll\"),\n\t\toffset = 0;\n\tif(toolbar) {\n\t\toffset = toolbar.offsetHeight;\n\t}\n\t// Get the client bounds of the element and adjust by the scroll position\n\tvar getBounds = function() {\n\t\t\tvar clientBounds = typeof callback === 'function' ? callback() : element.getBoundingClientRect(),\n\t\t\t\tscrollPosition = $tw.utils.getScrollPosition(srcWindow);\n\t\t\treturn {\n\t\t\t\tleft: clientBounds.left + scrollPosition.x,\n\t\t\t\ttop: clientBounds.top + scrollPosition.y - offset,\n\t\t\t\twidth: clientBounds.width,\n\t\t\t\theight: clientBounds.height\n\t\t\t};\n\t\t},\n\t\t// We'll consider the horizontal and vertical scroll directions separately via this function\n\t\t// targetPos/targetSize - position and size of the target element\n\t\t// currentPos/currentSize - position and size of the current scroll viewport\n\t\t// returns: new position of the scroll viewport\n\t\tgetEndPos = function(targetPos,targetSize,currentPos,currentSize) {\n\t\t\tvar newPos = targetPos;\n\t\t\t// If we are scrolling within 50 pixels of the top/left then snap to zero\n\t\t\tif(newPos < 50) {\n\t\t\t\tnewPos = 0;\n\t\t\t}\n\t\t\treturn newPos;\n\t\t},\n\t\tdrawFrame = function drawFrame() {\n\t\t\tvar t;\n\t\t\tif(duration <= 0) {\n\t\t\t\tt = 1;\n\t\t\t} else {\n\t\t\t\tt = ((Date.now()) - self.startTime) / duration;\t\n\t\t\t}\n\t\t\tif(t >= 1) {\n\t\t\t\tself.cancelScroll(srcWindow);\n\t\t\t\tt = 1;\n\t\t\t}\n\t\t\tt = $tw.utils.slowInSlowOut(t);\n\t\t\tvar scrollPosition = $tw.utils.getScrollPosition(srcWindow),\n\t\t\t\tbounds = getBounds(),\n\t\t\t\tendX = getEndPos(bounds.left,bounds.width,scrollPosition.x,srcWindow.innerWidth),\n\t\t\t\tendY = getEndPos(bounds.top,bounds.height,scrollPosition.y,srcWindow.innerHeight);\n\t\t\tsrcWindow.scrollTo(scrollPosition.x + (endX - scrollPosition.x) * t,scrollPosition.y + (endY - scrollPosition.y) * t);\n\t\t\tif(t < 1) {\n\t\t\t\tself.idRequestFrame = self.requestAnimationFrame.call(srcWindow,drawFrame);\n\t\t\t}\n\t\t};\n\tdrawFrame();\n};\n\nexports.PageScroller = PageScroller;\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/edition-info.js": {
"title": "$:/core/modules/utils/edition-info.js",
"text": "/*\\\ntitle: $:/core/modules/utils/edition-info.js\ntype: application/javascript\nmodule-type: utils-node\n\nInformation about the available editions\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar fs = require(\"fs\"),\n\tpath = require(\"path\");\n\nvar editionInfo;\n\nexports.getEditionInfo = function() {\n\tif(!editionInfo) {\n\t\t// Enumerate the edition paths\n\t\tvar editionPaths = $tw.getLibraryItemSearchPaths($tw.config.editionsPath,$tw.config.editionsEnvVar);\n\t\teditionInfo = {};\n\t\tfor(var editionIndex=0; editionIndex<editionPaths.length; editionIndex++) {\n\t\t\tvar editionPath = editionPaths[editionIndex];\n\t\t\t// Enumerate the folders\n\t\t\tvar entries = fs.readdirSync(editionPath);\n\t\t\tfor(var entryIndex=0; entryIndex<entries.length; entryIndex++) {\n\t\t\t\tvar entry = entries[entryIndex];\n\t\t\t\t// Check if directories have a valid tiddlywiki.info\n\t\t\t\tif(!editionInfo[entry] && $tw.utils.isDirectory(path.resolve(editionPath,entry))) {\n\t\t\t\t\tvar info;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tinfo = JSON.parse(fs.readFileSync(path.resolve(editionPath,entry,\"tiddlywiki.info\"),\"utf8\"));\n\t\t\t\t\t} catch(ex) {\n\t\t\t\t\t}\n\t\t\t\t\tif(info) {\n\t\t\t\t\t\teditionInfo[entry] = info;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn editionInfo;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils-node"
},
"$:/core/modules/utils/fakedom.js": {
"title": "$:/core/modules/utils/fakedom.js",
"text": "/*\\\ntitle: $:/core/modules/utils/fakedom.js\ntype: application/javascript\nmodule-type: global\n\nA barebones implementation of DOM interfaces needed by the rendering mechanism.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Sequence number used to enable us to track objects for testing\nvar sequenceNumber = null;\n\nvar bumpSequenceNumber = function(object) {\n\tif(sequenceNumber !== null) {\n\t\tobject.sequenceNumber = sequenceNumber++;\n\t}\n};\n\nvar TW_TextNode = function(text) {\n\tbumpSequenceNumber(this);\n\tthis.textContent = text + \"\";\n};\n\nObject.defineProperty(TW_TextNode.prototype, \"nodeType\", {\n\tget: function() {\n\t\treturn 3;\n\t}\n});\n\nObject.defineProperty(TW_TextNode.prototype, \"formattedTextContent\", {\n\tget: function() {\n\t\treturn this.textContent.replace(/(\\r?\\n)/g,\"\");\n\t}\n});\n\nvar TW_Element = function(tag,namespace) {\n\tbumpSequenceNumber(this);\n\tthis.isTiddlyWikiFakeDom = true;\n\tthis.tag = tag;\n\tthis.attributes = {};\n\tthis.isRaw = false;\n\tthis.children = [];\n\tthis._style = {};\n\tthis.namespaceURI = namespace || \"http://www.w3.org/1999/xhtml\";\n};\n\nObject.defineProperty(TW_Element.prototype, \"style\", {\n\tget: function() {\n\t\treturn this._style;\n\t},\n\tset: function(str) {\n\t\tvar self = this;\n\t\tstr = str || \"\";\n\t\t$tw.utils.each(str.split(\";\"),function(declaration) {\n\t\t\tvar parts = declaration.split(\":\"),\n\t\t\t\tname = $tw.utils.trim(parts[0]),\n\t\t\t\tvalue = $tw.utils.trim(parts[1]);\n\t\t\tif(name && value) {\n\t\t\t\tself._style[$tw.utils.convertStyleNameToPropertyName(name)] = value;\n\t\t\t}\n\t\t});\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"nodeType\", {\n\tget: function() {\n\t\treturn 1;\n\t}\n});\n\nTW_Element.prototype.getAttribute = function(name) {\n\tif(this.isRaw) {\n\t\tthrow \"Cannot getAttribute on a raw TW_Element\";\n\t}\n\treturn this.attributes[name];\n};\n\nTW_Element.prototype.setAttribute = function(name,value) {\n\tif(this.isRaw) {\n\t\tthrow \"Cannot setAttribute on a raw TW_Element\";\n\t}\n\tthis.attributes[name] = value + \"\";\n};\n\nTW_Element.prototype.setAttributeNS = function(namespace,name,value) {\n\tthis.setAttribute(name,value);\n};\n\nTW_Element.prototype.removeAttribute = function(name) {\n\tif(this.isRaw) {\n\t\tthrow \"Cannot removeAttribute on a raw TW_Element\";\n\t}\n\tif($tw.utils.hop(this.attributes,name)) {\n\t\tdelete this.attributes[name];\n\t}\n};\n\nTW_Element.prototype.appendChild = function(node) {\n\tthis.children.push(node);\n\tnode.parentNode = this;\n};\n\nTW_Element.prototype.insertBefore = function(node,nextSibling) {\n\tif(nextSibling) {\n\t\tvar p = this.children.indexOf(nextSibling);\n\t\tif(p !== -1) {\n\t\t\tthis.children.splice(p,0,node);\n\t\t\tnode.parentNode = this;\n\t\t} else {\n\t\t\tthis.appendChild(node);\n\t\t}\n\t} else {\n\t\tthis.appendChild(node);\n\t}\n};\n\nTW_Element.prototype.removeChild = function(node) {\n\tvar p = this.children.indexOf(node);\n\tif(p !== -1) {\n\t\tthis.children.splice(p,1);\n\t}\n};\n\nTW_Element.prototype.hasChildNodes = function() {\n\treturn !!this.children.length;\n};\n\nObject.defineProperty(TW_Element.prototype, \"childNodes\", {\n\tget: function() {\n\t\treturn this.children;\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"firstChild\", {\n\tget: function() {\n\t\treturn this.children[0];\n\t}\n});\n\nTW_Element.prototype.addEventListener = function(type,listener,useCapture) {\n\t// Do nothing\n};\n\nObject.defineProperty(TW_Element.prototype, \"tagName\", {\n\tget: function() {\n\t\treturn this.tag || \"\";\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"className\", {\n\tget: function() {\n\t\treturn this.attributes[\"class\"] || \"\";\n\t},\n\tset: function(value) {\n\t\tthis.attributes[\"class\"] = value + \"\";\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"value\", {\n\tget: function() {\n\t\treturn this.attributes.value || \"\";\n\t},\n\tset: function(value) {\n\t\tthis.attributes.value = value + \"\";\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"outerHTML\", {\n\tget: function() {\n\t\tvar output = [],attr,a,v;\n\t\toutput.push(\"<\",this.tag);\n\t\tif(this.attributes) {\n\t\t\tattr = [];\n\t\t\tfor(a in this.attributes) {\n\t\t\t\tattr.push(a);\n\t\t\t}\n\t\t\tattr.sort();\n\t\t\tfor(a=0; a<attr.length; a++) {\n\t\t\t\tv = this.attributes[attr[a]];\n\t\t\t\tif(v !== undefined) {\n\t\t\t\t\toutput.push(\" \",attr[a],\"=\\\"\",$tw.utils.htmlEncode(v),\"\\\"\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif(this._style) {\n\t\t\tvar style = [];\n\t\t\tfor(var s in this._style) {\n\t\t\t\tstyle.push($tw.utils.convertPropertyNameToStyleName(s) + \":\" + this._style[s] + \";\");\n\t\t\t}\n\t\t\tif(style.length > 0) {\n\t\t\t\toutput.push(\" style=\\\"\",style.join(\"\"),\"\\\"\");\n\t\t\t}\n\t\t}\n\t\toutput.push(\">\");\n\t\tif($tw.config.htmlVoidElements.indexOf(this.tag) === -1) {\n\t\t\toutput.push(this.innerHTML);\n\t\t\toutput.push(\"</\",this.tag,\">\");\n\t\t}\n\t\treturn output.join(\"\");\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"innerHTML\", {\n\tget: function() {\n\t\tif(this.isRaw) {\n\t\t\treturn this.rawHTML;\n\t\t} else {\n\t\t\tvar b = [];\n\t\t\t$tw.utils.each(this.children,function(node) {\n\t\t\t\tif(node instanceof TW_Element) {\n\t\t\t\t\tb.push(node.outerHTML);\n\t\t\t\t} else if(node instanceof TW_TextNode) {\n\t\t\t\t\tb.push($tw.utils.htmlEncode(node.textContent));\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn b.join(\"\");\n\t\t}\n\t},\n\tset: function(value) {\n\t\tthis.isRaw = true;\n\t\tthis.rawHTML = value;\n\t\tthis.rawTextContent = null;\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"textInnerHTML\", {\n\tset: function(value) {\n\t\tif(this.isRaw) {\n\t\t\tthis.rawTextContent = value;\n\t\t} else {\n\t\t\tthrow \"Cannot set textInnerHTML of a non-raw TW_Element\";\n\t\t}\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"textContent\", {\n\tget: function() {\n\t\tif(this.isRaw) {\n\t\t\tif(this.rawTextContent === null) {\n\t\t\t\treturn \"\";\n\t\t\t} else {\n\t\t\t\treturn this.rawTextContent;\n\t\t\t}\n\t\t} else {\n\t\t\tvar b = [];\n\t\t\t$tw.utils.each(this.children,function(node) {\n\t\t\t\tb.push(node.textContent);\n\t\t\t});\n\t\t\treturn b.join(\"\");\n\t\t}\n\t},\n\tset: function(value) {\n\t\tthis.children = [new TW_TextNode(value)];\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"formattedTextContent\", {\n\tget: function() {\n\t\tif(this.isRaw) {\n\t\t\treturn \"\";\n\t\t} else {\n\t\t\tvar b = [],\n\t\t\t\tisBlock = $tw.config.htmlBlockElements.indexOf(this.tag) !== -1;\n\t\t\tif(isBlock) {\n\t\t\t\tb.push(\"\\n\");\n\t\t\t}\n\t\t\tif(this.tag === \"li\") {\n\t\t\t\tb.push(\"* \");\n\t\t\t}\n\t\t\t$tw.utils.each(this.children,function(node) {\n\t\t\t\tb.push(node.formattedTextContent);\n\t\t\t});\n\t\t\tif(isBlock) {\n\t\t\t\tb.push(\"\\n\");\n\t\t\t}\n\t\t\treturn b.join(\"\");\n\t\t}\n\t}\n});\n\nvar document = {\n\tsetSequenceNumber: function(value) {\n\t\tsequenceNumber = value;\n\t},\n\tcreateElementNS: function(namespace,tag) {\n\t\treturn new TW_Element(tag,namespace);\n\t},\n\tcreateElement: function(tag) {\n\t\treturn new TW_Element(tag);\n\t},\n\tcreateTextNode: function(text) {\n\t\treturn new TW_TextNode(text);\n\t},\n\tcompatMode: \"CSS1Compat\", // For KaTeX to know that we're not a browser in quirks mode\n\tisTiddlyWikiFakeDom: true\n};\n\nexports.fakeDocument = document;\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/utils/filesystem.js": {
"title": "$:/core/modules/utils/filesystem.js",
"text": "/*\\\ntitle: $:/core/modules/utils/filesystem.js\ntype: application/javascript\nmodule-type: utils-node\n\nFile system utilities\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar fs = require(\"fs\"),\n\tpath = require(\"path\");\n\n/*\nRecursively (and synchronously) copy a directory and all its content\n*/\nexports.copyDirectory = function(srcPath,dstPath) {\n\t// Remove any trailing path separators\n\tsrcPath = $tw.utils.removeTrailingSeparator(srcPath);\n\tdstPath = $tw.utils.removeTrailingSeparator(dstPath);\n\t// Create the destination directory\n\tvar err = $tw.utils.createDirectory(dstPath);\n\tif(err) {\n\t\treturn err;\n\t}\n\t// Function to copy a folder full of files\n\tvar copy = function(srcPath,dstPath) {\n\t\tvar srcStats = fs.lstatSync(srcPath),\n\t\t\tdstExists = fs.existsSync(dstPath);\n\t\tif(srcStats.isFile()) {\n\t\t\t$tw.utils.copyFile(srcPath,dstPath);\n\t\t} else if(srcStats.isDirectory()) {\n\t\t\tvar items = fs.readdirSync(srcPath);\n\t\t\tfor(var t=0; t<items.length; t++) {\n\t\t\t\tvar item = items[t],\n\t\t\t\t\terr = copy(srcPath + path.sep + item,dstPath + path.sep + item);\n\t\t\t\tif(err) {\n\t\t\t\t\treturn err;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\tcopy(srcPath,dstPath);\n\treturn null;\n};\n\n/*\nCopy a file\n*/\nvar FILE_BUFFER_LENGTH = 64 * 1024,\n\tfileBuffer;\n\nexports.copyFile = function(srcPath,dstPath) {\n\t// Create buffer if required\n\tif(!fileBuffer) {\n\t\tfileBuffer = Buffer.alloc(FILE_BUFFER_LENGTH);\n\t}\n\t// Create any directories in the destination\n\t$tw.utils.createDirectory(path.dirname(dstPath));\n\t// Copy the file\n\tvar srcFile = fs.openSync(srcPath,\"r\"),\n\t\tdstFile = fs.openSync(dstPath,\"w\"),\n\t\tbytesRead = 1,\n\t\tpos = 0;\n\twhile (bytesRead > 0) {\n\t\tbytesRead = fs.readSync(srcFile,fileBuffer,0,FILE_BUFFER_LENGTH,pos);\n\t\tfs.writeSync(dstFile,fileBuffer,0,bytesRead);\n\t\tpos += bytesRead;\n\t}\n\tfs.closeSync(srcFile);\n\tfs.closeSync(dstFile);\n\treturn null;\n};\n\n/*\nRemove trailing path separator\n*/\nexports.removeTrailingSeparator = function(dirPath) {\n\tvar len = dirPath.length;\n\tif(dirPath.charAt(len-1) === path.sep) {\n\t\tdirPath = dirPath.substr(0,len-1);\n\t}\n\treturn dirPath;\n};\n\n/*\nRecursively create a directory\n*/\nexports.createDirectory = function(dirPath) {\n\tif(dirPath.substr(dirPath.length-1,1) !== path.sep) {\n\t\tdirPath = dirPath + path.sep;\n\t}\n\tvar pos = 1;\n\tpos = dirPath.indexOf(path.sep,pos);\n\twhile(pos !== -1) {\n\t\tvar subDirPath = dirPath.substr(0,pos);\n\t\tif(!$tw.utils.isDirectory(subDirPath)) {\n\t\t\ttry {\n\t\t\t\tfs.mkdirSync(subDirPath);\n\t\t\t} catch(e) {\n\t\t\t\treturn \"Error creating directory '\" + subDirPath + \"'\";\n\t\t\t}\n\t\t}\n\t\tpos = dirPath.indexOf(path.sep,pos + 1);\n\t}\n\treturn null;\n};\n\n/*\nRecursively create directories needed to contain a specified file\n*/\nexports.createFileDirectories = function(filePath) {\n\treturn $tw.utils.createDirectory(path.dirname(filePath));\n};\n\n/*\nRecursively delete a directory\n*/\nexports.deleteDirectory = function(dirPath) {\n\tif(fs.existsSync(dirPath)) {\n\t\tvar entries = fs.readdirSync(dirPath);\n\t\tfor(var entryIndex=0; entryIndex<entries.length; entryIndex++) {\n\t\t\tvar currPath = dirPath + path.sep + entries[entryIndex];\n\t\t\tif(fs.lstatSync(currPath).isDirectory()) {\n\t\t\t\t$tw.utils.deleteDirectory(currPath);\n\t\t\t} else {\n\t\t\t\tfs.unlinkSync(currPath);\n\t\t\t}\n\t\t}\n\tfs.rmdirSync(dirPath);\n\t}\n\treturn null;\n};\n\n/*\nCheck if a path identifies a directory\n*/\nexports.isDirectory = function(dirPath) {\n\treturn fs.existsSync(dirPath) && fs.statSync(dirPath).isDirectory();\n};\n\n/*\nCheck if a path identifies a directory that is empty\n*/\nexports.isDirectoryEmpty = function(dirPath) {\n\tif(!$tw.utils.isDirectory(dirPath)) {\n\t\treturn false;\n\t}\n\tvar files = fs.readdirSync(dirPath),\n\t\tempty = true;\n\t$tw.utils.each(files,function(file,index) {\n\t\tif(file.charAt(0) !== \".\") {\n\t\t\tempty = false;\n\t\t}\n\t});\n\treturn empty;\n};\n\n/*\nRecursively delete a tree of empty directories\n*/\nexports.deleteEmptyDirs = function(dirpath,callback) {\n\tvar self = this;\n\tfs.readdir(dirpath,function(err,files) {\n\t\tif(err) {\n\t\t\treturn callback(err);\n\t\t}\n\t\tif(files.length > 0) {\n\t\t\treturn callback(null);\n\t\t}\n\t\tfs.rmdir(dirpath,function(err) {\n\t\t\tif(err) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tself.deleteEmptyDirs(path.dirname(dirpath),callback);\n\t\t});\n\t});\n};\n\n/*\nCreate a fileInfo object for saving a tiddler:\n\tfilepath: the absolute path to the file containing the tiddler\n\ttype: the type of the tiddler file (NOT the type of the tiddler)\n\thasMetaFile: true if the file also has a companion .meta file\nOptions include:\n\tdirectory: absolute path of root directory to which we are saving\n\tpathFilters: optional array of filters to be used to generate the base path\n\twiki: optional wiki for evaluating the pathFilters\n*/\nexports.generateTiddlerFileInfo = function(tiddler,options) {\n\tvar fileInfo = {};\n\t// Check if the tiddler has any unsafe fields that can't be expressed in a .tid or .meta file: containing control characters, or leading/trailing whitespace\n\tvar hasUnsafeFields = false;\n\t$tw.utils.each(tiddler.getFieldStrings(),function(value,fieldName) {\n\t\tif(fieldName !== \"text\") {\n\t\t\thasUnsafeFields = hasUnsafeFields || /[\\x00-\\x1F]/mg.test(value);\n\t\t\thasUnsafeFields = hasUnsafeFields || ($tw.utils.trim(value) !== value);\n\t\t}\n\t});\n\t// Check for field values \n\tif(hasUnsafeFields) {\n\t\t// Save as a JSON file\n\t\tfileInfo.type = \"application/json\";\n\t\tfileInfo.hasMetaFile = false;\n\t} else {\n\t\t// Save as a .tid or a text/binary file plus a .meta file\n\t\tvar tiddlerType = tiddler.fields.type || \"text/vnd.tiddlywiki\";\n\t\tif(tiddlerType === \"text/vnd.tiddlywiki\") {\n\t\t\t// Save as a .tid file\n\t\t\tfileInfo.type = \"application/x-tiddler\";\n\t\t\tfileInfo.hasMetaFile = false;\n\t\t} else {\n\t\t\t// Save as a text/binary file and a .meta file\n\t\t\tfileInfo.type = tiddlerType;\n\t\t\tfileInfo.hasMetaFile = true;\n\t\t}\n\t}\n\t// Take the file extension from the tiddler content type\n\tvar contentTypeInfo = $tw.config.contentTypeInfo[fileInfo.type] || {extension: \"\"};\n\t// Generate the filepath\n\tfileInfo.filepath = $tw.utils.generateTiddlerFilepath(tiddler.fields.title,{\n\t\textension: contentTypeInfo.extension,\n\t\tdirectory: options.directory,\n\t\tpathFilters: options.pathFilters,\n\t\twiki: options.wiki\n\t});\n\treturn fileInfo;\n};\n\n/*\nGenerate the filepath for saving a tiddler\nOptions include:\n\textension: file extension to be added the finished filepath\n\tdirectory: absolute path of root directory to which we are saving\n\tpathFilters: optional array of filters to be used to generate the base path\n\twiki: optional wiki for evaluating the pathFilters\n*/\nexports.generateTiddlerFilepath = function(title,options) {\n\tvar self = this,\n\t\tdirectory = options.directory || \"\",\n\t\textension = options.extension || \"\",\n\t\tfilepath;\n\t// Check if any of the pathFilters applies\n\tif(options.pathFilters && options.wiki) {\n\t\t$tw.utils.each(options.pathFilters,function(filter) {\n\t\t\tif(!filepath) {\n\t\t\t\tvar source = options.wiki.makeTiddlerIterator([title]),\n\t\t\t\t\tresult = options.wiki.filterTiddlers(filter,null,source);\n\t\t\t\tif(result.length > 0) {\n\t\t\t\t\tfilepath = result[0];\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\t// If not, generate a base pathname\n\tif(!filepath) {\n\t\tfilepath = title;\n\t\t// If the filepath already ends in the extension then remove it\n\t\tif(filepath.substring(filepath.length - extension.length) === extension) {\n\t\t\tfilepath = filepath.substring(0,filepath.length - extension.length);\n\t\t}\n\t\t// Remove any forward or backward slashes so we don't create directories\n\t\tfilepath = filepath.replace(/\\/|\\\\/g,\"_\");\n\t}\n\t// Don't let the filename start with a dot because such files are invisible on *nix\n\tfilepath = filepath.replace(/^\\./g,\"_\");\n\t// Remove any characters that can't be used in cross-platform filenames\n\tfilepath = $tw.utils.transliterate(filepath.replace(/<|>|\\:|\\\"|\\||\\?|\\*|\\^/g,\"_\"));\n\t// Truncate the filename if it is too long\n\tif(filepath.length > 200) {\n\t\tfilepath = filepath.substr(0,200);\n\t}\n\t// If the resulting filename is blank (eg because the title is just punctuation characters)\n\tif(!filepath) {\n\t\t// ...then just use the character codes of the title\n\t\tfilepath = \"\";\t\n\t\t$tw.utils.each(title.split(\"\"),function(char) {\n\t\t\tif(filepath) {\n\t\t\t\tfilepath += \"-\";\n\t\t\t}\n\t\t\tfilepath += char.charCodeAt(0).toString();\n\t\t});\n\t}\n\t// Add a uniquifier if the file already exists\n\tvar fullPath,\n\t\tcount = 0;\n\tdo {\n\t\tfullPath = path.resolve(directory,filepath + (count ? \"_\" + count : \"\") + extension);\n\t\tcount++;\n\t} while(fs.existsSync(fullPath));\n\t// Return the full path to the file\n\treturn fullPath;\n};\n\n/*\nSave a tiddler to a file described by the fileInfo:\n\tfilepath: the absolute path to the file containing the tiddler\n\ttype: the type of the tiddler file (NOT the type of the tiddler)\n\thasMetaFile: true if the file also has a companion .meta file\n*/\nexports.saveTiddlerToFile = function(tiddler,fileInfo,callback) {\n\t$tw.utils.createDirectory(path.dirname(fileInfo.filepath));\n\tif(fileInfo.hasMetaFile) {\n\t\t// Save the tiddler as a separate body and meta file\n\t\tvar typeInfo = $tw.config.contentTypeInfo[tiddler.fields.type || \"text/plain\"] || {encoding: \"utf8\"};\n\t\tfs.writeFile(fileInfo.filepath,tiddler.fields.text,typeInfo.encoding,function(err) {\n\t\t\tif(err) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tfs.writeFile(fileInfo.filepath + \".meta\",tiddler.getFieldStringBlock({exclude: [\"text\",\"bag\"]}),\"utf8\",callback);\n\t\t});\n\t} else {\n\t\t// Save the tiddler as a self contained templated file\n\t\tif(fileInfo.type === \"application/x-tiddler\") {\n\t\t\tfs.writeFile(fileInfo.filepath,tiddler.getFieldStringBlock({exclude: [\"text\",\"bag\"]}) + (!!tiddler.fields.text ? \"\\n\\n\" + tiddler.fields.text : \"\"),\"utf8\",callback);\n\t\t} else {\n\t\t\tfs.writeFile(fileInfo.filepath,JSON.stringify([tiddler.getFieldStrings({exclude: [\"bag\"]})],null,$tw.config.preferences.jsonSpaces),\"utf8\",callback);\n\t\t}\n\t}\n};\n\n/*\nSave a tiddler to a file described by the fileInfo:\n\tfilepath: the absolute path to the file containing the tiddler\n\ttype: the type of the tiddler file (NOT the type of the tiddler)\n\thasMetaFile: true if the file also has a companion .meta file\n*/\nexports.saveTiddlerToFileSync = function(tiddler,fileInfo) {\n\t$tw.utils.createDirectory(path.dirname(fileInfo.filepath));\n\tif(fileInfo.hasMetaFile) {\n\t\t// Save the tiddler as a separate body and meta file\n\t\tvar typeInfo = $tw.config.contentTypeInfo[tiddler.fields.type || \"text/plain\"] || {encoding: \"utf8\"};\n\t\tfs.writeFileSync(fileInfo.filepath,tiddler.fields.text,typeInfo.encoding);\n\t\tfs.writeFileSync(fileInfo.filepath + \".meta\",tiddler.getFieldStringBlock({exclude: [\"text\",\"bag\"]}),\"utf8\");\n\t} else {\n\t\t// Save the tiddler as a self contained templated file\n\t\tif(fileInfo.type === \"application/x-tiddler\") {\n\t\t\tfs.writeFileSync(fileInfo.filepath,tiddler.getFieldStringBlock({exclude: [\"text\",\"bag\"]}) + (!!tiddler.fields.text ? \"\\n\\n\" + tiddler.fields.text : \"\"),\"utf8\");\n\t\t} else {\n\t\t\tfs.writeFileSync(fileInfo.filepath,JSON.stringify([tiddler.getFieldStrings({exclude: [\"bag\"]})],null,$tw.config.preferences.jsonSpaces),\"utf8\");\n\t\t}\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils-node"
},
"$:/core/modules/utils/logger.js": {
"title": "$:/core/modules/utils/logger.js",
"text": "/*\\\ntitle: $:/core/modules/utils/logger.js\ntype: application/javascript\nmodule-type: utils\n\nA basic logging implementation\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar ALERT_TAG = \"$:/tags/Alert\";\n\n/*\nMake a new logger\n*/\nfunction Logger(componentName,options) {\n\toptions = options || {};\n\tthis.componentName = componentName || \"\";\n\tthis.colour = options.colour || \"white\";\n\tthis.enable = \"enable\" in options ? options.enable : true;\n\tthis.save = \"save\" in options ? options.save : true;\n\tthis.saveLimit = options.saveLimit || 100 * 1024;\n\tthis.saveBufferLogger = this;\n\tthis.buffer = \"\";\n\tthis.alertCount = 0;\n}\n\nLogger.prototype.setSaveBuffer = function(logger) {\n\tthis.saveBufferLogger = logger;\n};\n\n/*\nLog a message\n*/\nLogger.prototype.log = function(/* args */) {\n\tvar self = this;\n\tif(this.enable) {\n\t\tif(this.saveBufferLogger.save) {\n\t\t\tthis.saveBufferLogger.buffer += $tw.utils.formatDateString(new Date(),\"YYYY MM DD 0hh:0mm:0ss.0XXX\") + \":\";\n\t\t\t$tw.utils.each(Array.prototype.slice.call(arguments,0),function(arg,index) {\n\t\t\t\tself.saveBufferLogger.buffer += \" \" + arg;\n\t\t\t});\n\t\t\tthis.saveBufferLogger.buffer += \"\\n\";\n\t\t\tthis.saveBufferLogger.buffer = this.saveBufferLogger.buffer.slice(-this.saveBufferLogger.saveLimit);\t\t\t\n\t\t}\n\t\tif(console !== undefined && console.log !== undefined) {\n\t\t\treturn Function.apply.call(console.log, console, [$tw.utils.terminalColour(this.colour),this.componentName + \":\"].concat(Array.prototype.slice.call(arguments,0)).concat($tw.utils.terminalColour()));\n\t\t}\n\t} \n};\n\n/*\nRead the message buffer\n*/\nLogger.prototype.getBuffer = function() {\n\treturn this.saveBufferLogger.buffer;\n};\n\n/*\nLog a structure as a table\n*/\nLogger.prototype.table = function(value) {\n\t(console.table || console.log)(value);\n};\n\n/*\nAlert a message\n*/\nLogger.prototype.alert = function(/* args */) {\n\tif(this.enable) {\n\t\t// Prepare the text of the alert\n\t\tvar text = Array.prototype.join.call(arguments,\" \");\n\t\t// Create alert tiddlers in the browser\n\t\tif($tw.browser) {\n\t\t\t// Check if there is an existing alert with the same text and the same component\n\t\t\tvar existingAlerts = $tw.wiki.getTiddlersWithTag(ALERT_TAG),\n\t\t\t\talertFields,\n\t\t\t\texistingCount,\n\t\t\t\tself = this;\n\t\t\t$tw.utils.each(existingAlerts,function(title) {\n\t\t\t\tvar tiddler = $tw.wiki.getTiddler(title);\n\t\t\t\tif(tiddler.fields.text === text && tiddler.fields.component === self.componentName && tiddler.fields.modified && (!alertFields || tiddler.fields.modified < alertFields.modified)) {\n\t\t\t\t\t\talertFields = $tw.utils.extend({},tiddler.fields);\n\t\t\t\t}\n\t\t\t});\n\t\t\tif(alertFields) {\n\t\t\t\texistingCount = alertFields.count || 1;\n\t\t\t} else {\n\t\t\t\talertFields = {\n\t\t\t\t\ttitle: $tw.wiki.generateNewTitle(\"$:/temp/alerts/alert\",{prefix: \"\"}),\n\t\t\t\t\ttext: text,\n\t\t\t\t\ttags: [ALERT_TAG],\n\t\t\t\t\tcomponent: this.componentName\n\t\t\t\t};\n\t\t\t\texistingCount = 0;\n\t\t\t\tthis.alertCount += 1;\n\t\t\t}\n\t\t\talertFields.modified = new Date();\n\t\t\tif(++existingCount > 1) {\n\t\t\t\talertFields.count = existingCount;\n\t\t\t} else {\n\t\t\t\talertFields.count = undefined;\n\t\t\t}\n\t\t\t$tw.wiki.addTiddler(new $tw.Tiddler(alertFields));\n\t\t\t// Log the alert as well\n\t\t\tthis.log.apply(this,Array.prototype.slice.call(arguments,0));\n\t\t} else {\n\t\t\t// Print an orange message to the console if not in the browser\n\t\t\tconsole.error(\"\\x1b[1;33m\" + text + \"\\x1b[0m\");\n\t\t}\t\t\n\t}\n};\n\n/*\nClear outstanding alerts\n*/\nLogger.prototype.clearAlerts = function() {\n\tvar self = this;\n\tif($tw.browser && this.alertCount > 0) {\n\t\t$tw.utils.each($tw.wiki.getTiddlersWithTag(ALERT_TAG),function(title) {\n\t\t\tvar tiddler = $tw.wiki.getTiddler(title);\n\t\t\tif(tiddler.fields.component === self.componentName) {\n\t\t\t\t$tw.wiki.deleteTiddler(title);\n\t\t\t}\n\t\t});\n\t\tthis.alertCount = 0;\n\t}\n};\n\nexports.Logger = Logger;\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/parsetree.js": {
"title": "$:/core/modules/utils/parsetree.js",
"text": "/*\\\ntitle: $:/core/modules/utils/parsetree.js\ntype: application/javascript\nmodule-type: utils\n\nParse tree utility functions.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.addAttributeToParseTreeNode = function(node,name,value) {\n\tnode.attributes = node.attributes || {};\n\tnode.attributes[name] = {type: \"string\", value: value};\n};\n\nexports.getAttributeValueFromParseTreeNode = function(node,name,defaultValue) {\n\tif(node.attributes && node.attributes[name] && node.attributes[name].value !== undefined) {\n\t\treturn node.attributes[name].value;\n\t}\n\treturn defaultValue;\n};\n\nexports.addClassToParseTreeNode = function(node,classString) {\n\tvar classes = [];\n\tnode.attributes = node.attributes || {};\n\tnode.attributes[\"class\"] = node.attributes[\"class\"] || {type: \"string\", value: \"\"};\n\tif(node.attributes[\"class\"].type === \"string\") {\n\t\tif(node.attributes[\"class\"].value !== \"\") {\n\t\t\tclasses = node.attributes[\"class\"].value.split(\" \");\n\t\t}\n\t\tif(classString !== \"\") {\n\t\t\t$tw.utils.pushTop(classes,classString.split(\" \"));\n\t\t}\n\t\tnode.attributes[\"class\"].value = classes.join(\" \");\n\t}\n};\n\nexports.addStyleToParseTreeNode = function(node,name,value) {\n\t\tnode.attributes = node.attributes || {};\n\t\tnode.attributes.style = node.attributes.style || {type: \"string\", value: \"\"};\n\t\tif(node.attributes.style.type === \"string\") {\n\t\t\tnode.attributes.style.value += name + \":\" + value + \";\";\n\t\t}\n};\n\nexports.findParseTreeNode = function(nodeArray,search) {\n\tfor(var t=0; t<nodeArray.length; t++) {\n\t\tif(nodeArray[t].type === search.type && nodeArray[t].tag === search.tag) {\n\t\t\treturn nodeArray[t];\n\t\t}\n\t}\n\treturn undefined;\n};\n\n/*\nHelper to get the text of a parse tree node or array of nodes\n*/\nexports.getParseTreeText = function getParseTreeText(tree) {\n\tvar output = [];\n\tif($tw.utils.isArray(tree)) {\n\t\t$tw.utils.each(tree,function(node) {\n\t\t\toutput.push(getParseTreeText(node));\n\t\t});\n\t} else {\n\t\tif(tree.type === \"text\") {\n\t\t\toutput.push(tree.text);\n\t\t}\n\t\tif(tree.children) {\n\t\t\treturn getParseTreeText(tree.children);\n\t\t}\n\t}\n\treturn output.join(\"\");\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/performance.js": {
"title": "$:/core/modules/utils/performance.js",
"text": "/*\\\ntitle: $:/core/modules/utils/performance.js\ntype: application/javascript\nmodule-type: global\n\nPerformance measurement.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nfunction Performance(enabled) {\n\tthis.enabled = !!enabled;\n\tthis.measures = {}; // Hashmap by measurement name of {time:, invocations:}\n\tthis.logger = new $tw.utils.Logger(\"performance\");\n\tthis.showGreeting();\n}\n\nPerformance.prototype.showGreeting = function() {\n\tif($tw.browser) {\n\t\tthis.logger.log(\"Execute $tw.perf.log(); to see filter execution timings\");\t\t\n\t}\n};\n\n/*\nWrap performance reporting around a top level function\n*/\nPerformance.prototype.report = function(name,fn) {\n\tvar self = this;\n\tif(this.enabled) {\n\t\treturn function() {\n\t\t\tvar startTime = $tw.utils.timer(),\n\t\t\t\tresult = fn.apply(this,arguments);\n\t\t\tself.logger.log(name + \": \" + $tw.utils.timer(startTime).toFixed(2) + \"ms\");\n\t\t\treturn result;\n\t\t};\n\t} else {\n\t\treturn fn;\n\t}\n};\n\nPerformance.prototype.log = function() {\n\tvar self = this,\n\t\ttotalTime = 0,\n\t\torderedMeasures = Object.keys(this.measures).sort(function(a,b) {\n\t\t\tif(self.measures[a].time > self.measures[b].time) {\n\t\t\t\treturn -1;\n\t\t\t} else if (self.measures[a].time < self.measures[b].time) {\n\t\t\t\treturn + 1;\n\t\t\t} else {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t});\n\t$tw.utils.each(orderedMeasures,function(name) {\n\t\ttotalTime += self.measures[name].time;\n\t});\n\tvar results = []\n\t$tw.utils.each(orderedMeasures,function(name) {\n\t\tvar measure = self.measures[name];\n\t\tresults.push({name: name,invocations: measure.invocations, avgTime: measure.time / measure.invocations, totalTime: measure.time, percentTime: (measure.time / totalTime) * 100})\n\t});\n\tself.logger.table(results);\n};\n\n/*\nWrap performance measurements around a subfunction\n*/\nPerformance.prototype.measure = function(name,fn) {\n\tvar self = this;\n\tif(this.enabled) {\n\t\treturn function() {\n\t\t\tvar startTime = $tw.utils.timer(),\n\t\t\t\tresult = fn.apply(this,arguments);\n\t\t\tif(!(name in self.measures)) {\n\t\t\t\tself.measures[name] = {time: 0, invocations: 0};\n\t\t\t}\n\t\t\tself.measures[name].time += $tw.utils.timer(startTime);\n\t\t\tself.measures[name].invocations++;\n\t\t\treturn result;\n\t\t};\n\t} else {\n\t\treturn fn;\n\t}\n};\n\nexports.Performance = Performance;\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/utils/pluginmaker.js": {
"title": "$:/core/modules/utils/pluginmaker.js",
"text": "/*\\\ntitle: $:/core/modules/utils/pluginmaker.js\ntype: application/javascript\nmodule-type: utils\n\nA quick and dirty way to pack up plugins within the browser.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nRepack a plugin, and then delete any non-shadow payload tiddlers\n*/\nexports.repackPlugin = function(title,additionalTiddlers,excludeTiddlers) {\n\tadditionalTiddlers = additionalTiddlers || [];\n\texcludeTiddlers = excludeTiddlers || [];\n\t// Get the plugin tiddler\n\tvar pluginTiddler = $tw.wiki.getTiddler(title);\n\tif(!pluginTiddler) {\n\t\tthrow \"No such tiddler as \" + title;\n\t}\n\t// Extract the JSON\n\tvar jsonPluginTiddler;\n\ttry {\n\t\tjsonPluginTiddler = JSON.parse(pluginTiddler.fields.text);\n\t} catch(e) {\n\t\tthrow \"Cannot parse plugin tiddler \" + title + \"\\n\" + $tw.language.getString(\"Error/Caption\") + \": \" + e;\n\t}\n\t// Get the list of tiddlers\n\tvar tiddlers = Object.keys(jsonPluginTiddler.tiddlers);\n\t// Add the additional tiddlers\n\t$tw.utils.pushTop(tiddlers,additionalTiddlers);\n\t// Remove any excluded tiddlers\n\tfor(var t=tiddlers.length-1; t>=0; t--) {\n\t\tif(excludeTiddlers.indexOf(tiddlers[t]) !== -1) {\n\t\t\ttiddlers.splice(t,1);\n\t\t}\n\t}\n\t// Pack up the tiddlers into a block of JSON\n\tvar plugins = {};\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar tiddler = $tw.wiki.getTiddler(title),\n\t\t\tfields = {};\n\t\t$tw.utils.each(tiddler.fields,function (value,name) {\n\t\t\tfields[name] = tiddler.getFieldString(name);\n\t\t});\n\t\tplugins[title] = fields;\n\t});\n\t// Retrieve and bump the version number\n\tvar pluginVersion = $tw.utils.parseVersion(pluginTiddler.getFieldString(\"version\") || \"0.0.0\") || {\n\t\t\tmajor: \"0\",\n\t\t\tminor: \"0\",\n\t\t\tpatch: \"0\"\n\t\t};\n\tpluginVersion.patch++;\n\tvar version = pluginVersion.major + \".\" + pluginVersion.minor + \".\" + pluginVersion.patch;\n\tif(pluginVersion.prerelease) {\n\t\tversion += \"-\" + pluginVersion.prerelease;\n\t}\n\tif(pluginVersion.build) {\n\t\tversion += \"+\" + pluginVersion.build;\n\t}\n\t// Save the tiddler\n\t$tw.wiki.addTiddler(new $tw.Tiddler(pluginTiddler,{text: JSON.stringify({tiddlers: plugins},null,4), version: version}));\n\t// Delete any non-shadow constituent tiddlers\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tif($tw.wiki.tiddlerExists(title)) {\n\t\t\t$tw.wiki.deleteTiddler(title);\n\t\t}\n\t});\n\t// Trigger an autosave\n\t$tw.rootWidget.dispatchEvent({type: \"tm-auto-save-wiki\"});\n\t// Return a heartwarming confirmation\n\treturn \"Plugin \" + title + \" successfully saved\";\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/transliterate.js": {
"title": "$:/core/modules/utils/transliterate.js",
"text": "/*\\\ntitle: $:/core/modules/utils/transliterate.js\ntype: application/javascript\nmodule-type: utils\n\nTransliteration static utility functions.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nTransliterate string to ASCII\n\n(Some pairs taken from http://semplicewebsites.com/removing-accents-javascript)\n*/\nexports.transliterationPairs = {\n\t\"Á\":\"A\",\n\t\"Ă\":\"A\",\n\t\"Ắ\":\"A\",\n\t\"Ặ\":\"A\",\n\t\"Ằ\":\"A\",\n\t\"Ẳ\":\"A\",\n\t\"Ẵ\":\"A\",\n\t\"Ǎ\":\"A\",\n\t\"Â\":\"A\",\n\t\"Ấ\":\"A\",\n\t\"Ậ\":\"A\",\n\t\"Ầ\":\"A\",\n\t\"Ẩ\":\"A\",\n\t\"Ẫ\":\"A\",\n\t\"Ä\":\"A\",\n\t\"Ǟ\":\"A\",\n\t\"Ȧ\":\"A\",\n\t\"Ǡ\":\"A\",\n\t\"Ạ\":\"A\",\n\t\"Ȁ\":\"A\",\n\t\"À\":\"A\",\n\t\"Ả\":\"A\",\n\t\"Ȃ\":\"A\",\n\t\"Ā\":\"A\",\n\t\"Ą\":\"A\",\n\t\"Å\":\"A\",\n\t\"Ǻ\":\"A\",\n\t\"Ḁ\":\"A\",\n\t\"Ⱥ\":\"A\",\n\t\"Ã\":\"A\",\n\t\"Ꜳ\":\"AA\",\n\t\"Æ\":\"AE\",\n\t\"Ǽ\":\"AE\",\n\t\"Ǣ\":\"AE\",\n\t\"Ꜵ\":\"AO\",\n\t\"Ꜷ\":\"AU\",\n\t\"Ꜹ\":\"AV\",\n\t\"Ꜻ\":\"AV\",\n\t\"Ꜽ\":\"AY\",\n\t\"Ḃ\":\"B\",\n\t\"Ḅ\":\"B\",\n\t\"Ɓ\":\"B\",\n\t\"Ḇ\":\"B\",\n\t\"Ƀ\":\"B\",\n\t\"Ƃ\":\"B\",\n\t\"Ć\":\"C\",\n\t\"Č\":\"C\",\n\t\"Ç\":\"C\",\n\t\"Ḉ\":\"C\",\n\t\"Ĉ\":\"C\",\n\t\"Ċ\":\"C\",\n\t\"Ƈ\":\"C\",\n\t\"Ȼ\":\"C\",\n\t\"Ď\":\"D\",\n\t\"Ḑ\":\"D\",\n\t\"Ḓ\":\"D\",\n\t\"Ḋ\":\"D\",\n\t\"Ḍ\":\"D\",\n\t\"Ɗ\":\"D\",\n\t\"Ḏ\":\"D\",\n\t\"Dz\":\"D\",\n\t\"Dž\":\"D\",\n\t\"Đ\":\"D\",\n\t\"Ƌ\":\"D\",\n\t\"DZ\":\"DZ\",\n\t\"DŽ\":\"DZ\",\n\t\"É\":\"E\",\n\t\"Ĕ\":\"E\",\n\t\"Ě\":\"E\",\n\t\"Ȩ\":\"E\",\n\t\"Ḝ\":\"E\",\n\t\"Ê\":\"E\",\n\t\"Ế\":\"E\",\n\t\"Ệ\":\"E\",\n\t\"Ề\":\"E\",\n\t\"Ể\":\"E\",\n\t\"Ễ\":\"E\",\n\t\"Ḙ\":\"E\",\n\t\"Ë\":\"E\",\n\t\"Ė\":\"E\",\n\t\"Ẹ\":\"E\",\n\t\"Ȅ\":\"E\",\n\t\"È\":\"E\",\n\t\"Ẻ\":\"E\",\n\t\"Ȇ\":\"E\",\n\t\"Ē\":\"E\",\n\t\"Ḗ\":\"E\",\n\t\"Ḕ\":\"E\",\n\t\"Ę\":\"E\",\n\t\"Ɇ\":\"E\",\n\t\"Ẽ\":\"E\",\n\t\"Ḛ\":\"E\",\n\t\"Ꝫ\":\"ET\",\n\t\"Ḟ\":\"F\",\n\t\"Ƒ\":\"F\",\n\t\"Ǵ\":\"G\",\n\t\"Ğ\":\"G\",\n\t\"Ǧ\":\"G\",\n\t\"Ģ\":\"G\",\n\t\"Ĝ\":\"G\",\n\t\"Ġ\":\"G\",\n\t\"Ɠ\":\"G\",\n\t\"Ḡ\":\"G\",\n\t\"Ǥ\":\"G\",\n\t\"Ḫ\":\"H\",\n\t\"Ȟ\":\"H\",\n\t\"Ḩ\":\"H\",\n\t\"Ĥ\":\"H\",\n\t\"Ⱨ\":\"H\",\n\t\"Ḧ\":\"H\",\n\t\"Ḣ\":\"H\",\n\t\"Ḥ\":\"H\",\n\t\"Ħ\":\"H\",\n\t\"Í\":\"I\",\n\t\"Ĭ\":\"I\",\n\t\"Ǐ\":\"I\",\n\t\"Î\":\"I\",\n\t\"Ï\":\"I\",\n\t\"Ḯ\":\"I\",\n\t\"İ\":\"I\",\n\t\"Ị\":\"I\",\n\t\"Ȉ\":\"I\",\n\t\"Ì\":\"I\",\n\t\"Ỉ\":\"I\",\n\t\"Ȋ\":\"I\",\n\t\"Ī\":\"I\",\n\t\"Į\":\"I\",\n\t\"Ɨ\":\"I\",\n\t\"Ĩ\":\"I\",\n\t\"Ḭ\":\"I\",\n\t\"Ꝺ\":\"D\",\n\t\"Ꝼ\":\"F\",\n\t\"Ᵹ\":\"G\",\n\t\"Ꞃ\":\"R\",\n\t\"Ꞅ\":\"S\",\n\t\"Ꞇ\":\"T\",\n\t\"Ꝭ\":\"IS\",\n\t\"Ĵ\":\"J\",\n\t\"Ɉ\":\"J\",\n\t\"Ḱ\":\"K\",\n\t\"Ǩ\":\"K\",\n\t\"Ķ\":\"K\",\n\t\"Ⱪ\":\"K\",\n\t\"Ꝃ\":\"K\",\n\t\"Ḳ\":\"K\",\n\t\"Ƙ\":\"K\",\n\t\"Ḵ\":\"K\",\n\t\"Ꝁ\":\"K\",\n\t\"Ꝅ\":\"K\",\n\t\"Ĺ\":\"L\",\n\t\"Ƚ\":\"L\",\n\t\"Ľ\":\"L\",\n\t\"Ļ\":\"L\",\n\t\"Ḽ\":\"L\",\n\t\"Ḷ\":\"L\",\n\t\"Ḹ\":\"L\",\n\t\"Ⱡ\":\"L\",\n\t\"Ꝉ\":\"L\",\n\t\"Ḻ\":\"L\",\n\t\"Ŀ\":\"L\",\n\t\"Ɫ\":\"L\",\n\t\"Lj\":\"L\",\n\t\"Ł\":\"L\",\n\t\"LJ\":\"LJ\",\n\t\"Ḿ\":\"M\",\n\t\"Ṁ\":\"M\",\n\t\"Ṃ\":\"M\",\n\t\"Ɱ\":\"M\",\n\t\"Ń\":\"N\",\n\t\"Ň\":\"N\",\n\t\"Ņ\":\"N\",\n\t\"Ṋ\":\"N\",\n\t\"Ṅ\":\"N\",\n\t\"Ṇ\":\"N\",\n\t\"Ǹ\":\"N\",\n\t\"Ɲ\":\"N\",\n\t\"Ṉ\":\"N\",\n\t\"Ƞ\":\"N\",\n\t\"Nj\":\"N\",\n\t\"Ñ\":\"N\",\n\t\"NJ\":\"NJ\",\n\t\"Ó\":\"O\",\n\t\"Ŏ\":\"O\",\n\t\"Ǒ\":\"O\",\n\t\"Ô\":\"O\",\n\t\"Ố\":\"O\",\n\t\"Ộ\":\"O\",\n\t\"Ồ\":\"O\",\n\t\"Ổ\":\"O\",\n\t\"Ỗ\":\"O\",\n\t\"Ö\":\"O\",\n\t\"Ȫ\":\"O\",\n\t\"Ȯ\":\"O\",\n\t\"Ȱ\":\"O\",\n\t\"Ọ\":\"O\",\n\t\"Ő\":\"O\",\n\t\"Ȍ\":\"O\",\n\t\"Ò\":\"O\",\n\t\"Ỏ\":\"O\",\n\t\"Ơ\":\"O\",\n\t\"Ớ\":\"O\",\n\t\"Ợ\":\"O\",\n\t\"Ờ\":\"O\",\n\t\"Ở\":\"O\",\n\t\"Ỡ\":\"O\",\n\t\"Ȏ\":\"O\",\n\t\"Ꝋ\":\"O\",\n\t\"Ꝍ\":\"O\",\n\t\"Ō\":\"O\",\n\t\"Ṓ\":\"O\",\n\t\"Ṑ\":\"O\",\n\t\"Ɵ\":\"O\",\n\t\"Ǫ\":\"O\",\n\t\"Ǭ\":\"O\",\n\t\"Ø\":\"O\",\n\t\"Ǿ\":\"O\",\n\t\"Õ\":\"O\",\n\t\"Ṍ\":\"O\",\n\t\"Ṏ\":\"O\",\n\t\"Ȭ\":\"O\",\n\t\"Ƣ\":\"OI\",\n\t\"Ꝏ\":\"OO\",\n\t\"Ɛ\":\"E\",\n\t\"Ɔ\":\"O\",\n\t\"Ȣ\":\"OU\",\n\t\"Ṕ\":\"P\",\n\t\"Ṗ\":\"P\",\n\t\"Ꝓ\":\"P\",\n\t\"Ƥ\":\"P\",\n\t\"Ꝕ\":\"P\",\n\t\"Ᵽ\":\"P\",\n\t\"Ꝑ\":\"P\",\n\t\"Ꝙ\":\"Q\",\n\t\"Ꝗ\":\"Q\",\n\t\"Ŕ\":\"R\",\n\t\"Ř\":\"R\",\n\t\"Ŗ\":\"R\",\n\t\"Ṙ\":\"R\",\n\t\"Ṛ\":\"R\",\n\t\"Ṝ\":\"R\",\n\t\"Ȑ\":\"R\",\n\t\"Ȓ\":\"R\",\n\t\"Ṟ\":\"R\",\n\t\"Ɍ\":\"R\",\n\t\"Ɽ\":\"R\",\n\t\"Ꜿ\":\"C\",\n\t\"Ǝ\":\"E\",\n\t\"Ś\":\"S\",\n\t\"Ṥ\":\"S\",\n\t\"Š\":\"S\",\n\t\"Ṧ\":\"S\",\n\t\"Ş\":\"S\",\n\t\"Ŝ\":\"S\",\n\t\"Ș\":\"S\",\n\t\"Ṡ\":\"S\",\n\t\"Ṣ\":\"S\",\n\t\"Ṩ\":\"S\",\n\t\"Ť\":\"T\",\n\t\"Ţ\":\"T\",\n\t\"Ṱ\":\"T\",\n\t\"Ț\":\"T\",\n\t\"Ⱦ\":\"T\",\n\t\"Ṫ\":\"T\",\n\t\"Ṭ\":\"T\",\n\t\"Ƭ\":\"T\",\n\t\"Ṯ\":\"T\",\n\t\"Ʈ\":\"T\",\n\t\"Ŧ\":\"T\",\n\t\"Ɐ\":\"A\",\n\t\"Ꞁ\":\"L\",\n\t\"Ɯ\":\"M\",\n\t\"Ʌ\":\"V\",\n\t\"Ꜩ\":\"TZ\",\n\t\"Ú\":\"U\",\n\t\"Ŭ\":\"U\",\n\t\"Ǔ\":\"U\",\n\t\"Û\":\"U\",\n\t\"Ṷ\":\"U\",\n\t\"Ü\":\"U\",\n\t\"Ǘ\":\"U\",\n\t\"Ǚ\":\"U\",\n\t\"Ǜ\":\"U\",\n\t\"Ǖ\":\"U\",\n\t\"Ṳ\":\"U\",\n\t\"Ụ\":\"U\",\n\t\"Ű\":\"U\",\n\t\"Ȕ\":\"U\",\n\t\"Ù\":\"U\",\n\t\"Ủ\":\"U\",\n\t\"Ư\":\"U\",\n\t\"Ứ\":\"U\",\n\t\"Ự\":\"U\",\n\t\"Ừ\":\"U\",\n\t\"Ử\":\"U\",\n\t\"Ữ\":\"U\",\n\t\"Ȗ\":\"U\",\n\t\"Ū\":\"U\",\n\t\"Ṻ\":\"U\",\n\t\"Ų\":\"U\",\n\t\"Ů\":\"U\",\n\t\"Ũ\":\"U\",\n\t\"Ṹ\":\"U\",\n\t\"Ṵ\":\"U\",\n\t\"Ꝟ\":\"V\",\n\t\"Ṿ\":\"V\",\n\t\"Ʋ\":\"V\",\n\t\"Ṽ\":\"V\",\n\t\"Ꝡ\":\"VY\",\n\t\"Ẃ\":\"W\",\n\t\"Ŵ\":\"W\",\n\t\"Ẅ\":\"W\",\n\t\"Ẇ\":\"W\",\n\t\"Ẉ\":\"W\",\n\t\"Ẁ\":\"W\",\n\t\"Ⱳ\":\"W\",\n\t\"Ẍ\":\"X\",\n\t\"Ẋ\":\"X\",\n\t\"Ý\":\"Y\",\n\t\"Ŷ\":\"Y\",\n\t\"Ÿ\":\"Y\",\n\t\"Ẏ\":\"Y\",\n\t\"Ỵ\":\"Y\",\n\t\"Ỳ\":\"Y\",\n\t\"Ƴ\":\"Y\",\n\t\"Ỷ\":\"Y\",\n\t\"Ỿ\":\"Y\",\n\t\"Ȳ\":\"Y\",\n\t\"Ɏ\":\"Y\",\n\t\"Ỹ\":\"Y\",\n\t\"Ź\":\"Z\",\n\t\"Ž\":\"Z\",\n\t\"Ẑ\":\"Z\",\n\t\"Ⱬ\":\"Z\",\n\t\"Ż\":\"Z\",\n\t\"Ẓ\":\"Z\",\n\t\"Ȥ\":\"Z\",\n\t\"Ẕ\":\"Z\",\n\t\"Ƶ\":\"Z\",\n\t\"IJ\":\"IJ\",\n\t\"Œ\":\"OE\",\n\t\"ᴀ\":\"A\",\n\t\"ᴁ\":\"AE\",\n\t\"ʙ\":\"B\",\n\t\"ᴃ\":\"B\",\n\t\"ᴄ\":\"C\",\n\t\"ᴅ\":\"D\",\n\t\"ᴇ\":\"E\",\n\t\"ꜰ\":\"F\",\n\t\"ɢ\":\"G\",\n\t\"ʛ\":\"G\",\n\t\"ʜ\":\"H\",\n\t\"ɪ\":\"I\",\n\t\"ʁ\":\"R\",\n\t\"ᴊ\":\"J\",\n\t\"ᴋ\":\"K\",\n\t\"ʟ\":\"L\",\n\t\"ᴌ\":\"L\",\n\t\"ᴍ\":\"M\",\n\t\"ɴ\":\"N\",\n\t\"ᴏ\":\"O\",\n\t\"ɶ\":\"OE\",\n\t\"ᴐ\":\"O\",\n\t\"ᴕ\":\"OU\",\n\t\"ᴘ\":\"P\",\n\t\"ʀ\":\"R\",\n\t\"ᴎ\":\"N\",\n\t\"ᴙ\":\"R\",\n\t\"ꜱ\":\"S\",\n\t\"ᴛ\":\"T\",\n\t\"ⱻ\":\"E\",\n\t\"ᴚ\":\"R\",\n\t\"ᴜ\":\"U\",\n\t\"ᴠ\":\"V\",\n\t\"ᴡ\":\"W\",\n\t\"ʏ\":\"Y\",\n\t\"ᴢ\":\"Z\",\n\t\"á\":\"a\",\n\t\"ă\":\"a\",\n\t\"ắ\":\"a\",\n\t\"ặ\":\"a\",\n\t\"ằ\":\"a\",\n\t\"ẳ\":\"a\",\n\t\"ẵ\":\"a\",\n\t\"ǎ\":\"a\",\n\t\"â\":\"a\",\n\t\"ấ\":\"a\",\n\t\"ậ\":\"a\",\n\t\"ầ\":\"a\",\n\t\"ẩ\":\"a\",\n\t\"ẫ\":\"a\",\n\t\"ä\":\"a\",\n\t\"ǟ\":\"a\",\n\t\"ȧ\":\"a\",\n\t\"ǡ\":\"a\",\n\t\"ạ\":\"a\",\n\t\"ȁ\":\"a\",\n\t\"à\":\"a\",\n\t\"ả\":\"a\",\n\t\"ȃ\":\"a\",\n\t\"ā\":\"a\",\n\t\"ą\":\"a\",\n\t\"ᶏ\":\"a\",\n\t\"ẚ\":\"a\",\n\t\"å\":\"a\",\n\t\"ǻ\":\"a\",\n\t\"ḁ\":\"a\",\n\t\"ⱥ\":\"a\",\n\t\"ã\":\"a\",\n\t\"ꜳ\":\"aa\",\n\t\"æ\":\"ae\",\n\t\"ǽ\":\"ae\",\n\t\"ǣ\":\"ae\",\n\t\"ꜵ\":\"ao\",\n\t\"ꜷ\":\"au\",\n\t\"ꜹ\":\"av\",\n\t\"ꜻ\":\"av\",\n\t\"ꜽ\":\"ay\",\n\t\"ḃ\":\"b\",\n\t\"ḅ\":\"b\",\n\t\"ɓ\":\"b\",\n\t\"ḇ\":\"b\",\n\t\"ᵬ\":\"b\",\n\t\"ᶀ\":\"b\",\n\t\"ƀ\":\"b\",\n\t\"ƃ\":\"b\",\n\t\"ɵ\":\"o\",\n\t\"ć\":\"c\",\n\t\"č\":\"c\",\n\t\"ç\":\"c\",\n\t\"ḉ\":\"c\",\n\t\"ĉ\":\"c\",\n\t\"ɕ\":\"c\",\n\t\"ċ\":\"c\",\n\t\"ƈ\":\"c\",\n\t\"ȼ\":\"c\",\n\t\"ď\":\"d\",\n\t\"ḑ\":\"d\",\n\t\"ḓ\":\"d\",\n\t\"ȡ\":\"d\",\n\t\"ḋ\":\"d\",\n\t\"ḍ\":\"d\",\n\t\"ɗ\":\"d\",\n\t\"ᶑ\":\"d\",\n\t\"ḏ\":\"d\",\n\t\"ᵭ\":\"d\",\n\t\"ᶁ\":\"d\",\n\t\"đ\":\"d\",\n\t\"ɖ\":\"d\",\n\t\"ƌ\":\"d\",\n\t\"ı\":\"i\",\n\t\"ȷ\":\"j\",\n\t\"ɟ\":\"j\",\n\t\"ʄ\":\"j\",\n\t\"dz\":\"dz\",\n\t\"dž\":\"dz\",\n\t\"é\":\"e\",\n\t\"ĕ\":\"e\",\n\t\"ě\":\"e\",\n\t\"ȩ\":\"e\",\n\t\"ḝ\":\"e\",\n\t\"ê\":\"e\",\n\t\"ế\":\"e\",\n\t\"ệ\":\"e\",\n\t\"ề\":\"e\",\n\t\"ể\":\"e\",\n\t\"ễ\":\"e\",\n\t\"ḙ\":\"e\",\n\t\"ë\":\"e\",\n\t\"ė\":\"e\",\n\t\"ẹ\":\"e\",\n\t\"ȅ\":\"e\",\n\t\"è\":\"e\",\n\t\"ẻ\":\"e\",\n\t\"ȇ\":\"e\",\n\t\"ē\":\"e\",\n\t\"ḗ\":\"e\",\n\t\"ḕ\":\"e\",\n\t\"ⱸ\":\"e\",\n\t\"ę\":\"e\",\n\t\"ᶒ\":\"e\",\n\t\"ɇ\":\"e\",\n\t\"ẽ\":\"e\",\n\t\"ḛ\":\"e\",\n\t\"ꝫ\":\"et\",\n\t\"ḟ\":\"f\",\n\t\"ƒ\":\"f\",\n\t\"ᵮ\":\"f\",\n\t\"ᶂ\":\"f\",\n\t\"ǵ\":\"g\",\n\t\"ğ\":\"g\",\n\t\"ǧ\":\"g\",\n\t\"ģ\":\"g\",\n\t\"ĝ\":\"g\",\n\t\"ġ\":\"g\",\n\t\"ɠ\":\"g\",\n\t\"ḡ\":\"g\",\n\t\"ᶃ\":\"g\",\n\t\"ǥ\":\"g\",\n\t\"ḫ\":\"h\",\n\t\"ȟ\":\"h\",\n\t\"ḩ\":\"h\",\n\t\"ĥ\":\"h\",\n\t\"ⱨ\":\"h\",\n\t\"ḧ\":\"h\",\n\t\"ḣ\":\"h\",\n\t\"ḥ\":\"h\",\n\t\"ɦ\":\"h\",\n\t\"ẖ\":\"h\",\n\t\"ħ\":\"h\",\n\t\"ƕ\":\"hv\",\n\t\"í\":\"i\",\n\t\"ĭ\":\"i\",\n\t\"ǐ\":\"i\",\n\t\"î\":\"i\",\n\t\"ï\":\"i\",\n\t\"ḯ\":\"i\",\n\t\"ị\":\"i\",\n\t\"ȉ\":\"i\",\n\t\"ì\":\"i\",\n\t\"ỉ\":\"i\",\n\t\"ȋ\":\"i\",\n\t\"ī\":\"i\",\n\t\"į\":\"i\",\n\t\"ᶖ\":\"i\",\n\t\"ɨ\":\"i\",\n\t\"ĩ\":\"i\",\n\t\"ḭ\":\"i\",\n\t\"ꝺ\":\"d\",\n\t\"ꝼ\":\"f\",\n\t\"ᵹ\":\"g\",\n\t\"ꞃ\":\"r\",\n\t\"ꞅ\":\"s\",\n\t\"ꞇ\":\"t\",\n\t\"ꝭ\":\"is\",\n\t\"ǰ\":\"j\",\n\t\"ĵ\":\"j\",\n\t\"ʝ\":\"j\",\n\t\"ɉ\":\"j\",\n\t\"ḱ\":\"k\",\n\t\"ǩ\":\"k\",\n\t\"ķ\":\"k\",\n\t\"ⱪ\":\"k\",\n\t\"ꝃ\":\"k\",\n\t\"ḳ\":\"k\",\n\t\"ƙ\":\"k\",\n\t\"ḵ\":\"k\",\n\t\"ᶄ\":\"k\",\n\t\"ꝁ\":\"k\",\n\t\"ꝅ\":\"k\",\n\t\"ĺ\":\"l\",\n\t\"ƚ\":\"l\",\n\t\"ɬ\":\"l\",\n\t\"ľ\":\"l\",\n\t\"ļ\":\"l\",\n\t\"ḽ\":\"l\",\n\t\"ȴ\":\"l\",\n\t\"ḷ\":\"l\",\n\t\"ḹ\":\"l\",\n\t\"ⱡ\":\"l\",\n\t\"ꝉ\":\"l\",\n\t\"ḻ\":\"l\",\n\t\"ŀ\":\"l\",\n\t\"ɫ\":\"l\",\n\t\"ᶅ\":\"l\",\n\t\"ɭ\":\"l\",\n\t\"ł\":\"l\",\n\t\"lj\":\"lj\",\n\t\"ſ\":\"s\",\n\t\"ẜ\":\"s\",\n\t\"ẛ\":\"s\",\n\t\"ẝ\":\"s\",\n\t\"ḿ\":\"m\",\n\t\"ṁ\":\"m\",\n\t\"ṃ\":\"m\",\n\t\"ɱ\":\"m\",\n\t\"ᵯ\":\"m\",\n\t\"ᶆ\":\"m\",\n\t\"ń\":\"n\",\n\t\"ň\":\"n\",\n\t\"ņ\":\"n\",\n\t\"ṋ\":\"n\",\n\t\"ȵ\":\"n\",\n\t\"ṅ\":\"n\",\n\t\"ṇ\":\"n\",\n\t\"ǹ\":\"n\",\n\t\"ɲ\":\"n\",\n\t\"ṉ\":\"n\",\n\t\"ƞ\":\"n\",\n\t\"ᵰ\":\"n\",\n\t\"ᶇ\":\"n\",\n\t\"ɳ\":\"n\",\n\t\"ñ\":\"n\",\n\t\"nj\":\"nj\",\n\t\"ó\":\"o\",\n\t\"ŏ\":\"o\",\n\t\"ǒ\":\"o\",\n\t\"ô\":\"o\",\n\t\"ố\":\"o\",\n\t\"ộ\":\"o\",\n\t\"ồ\":\"o\",\n\t\"ổ\":\"o\",\n\t\"ỗ\":\"o\",\n\t\"ö\":\"o\",\n\t\"ȫ\":\"o\",\n\t\"ȯ\":\"o\",\n\t\"ȱ\":\"o\",\n\t\"ọ\":\"o\",\n\t\"ő\":\"o\",\n\t\"ȍ\":\"o\",\n\t\"ò\":\"o\",\n\t\"ỏ\":\"o\",\n\t\"ơ\":\"o\",\n\t\"ớ\":\"o\",\n\t\"ợ\":\"o\",\n\t\"ờ\":\"o\",\n\t\"ở\":\"o\",\n\t\"ỡ\":\"o\",\n\t\"ȏ\":\"o\",\n\t\"ꝋ\":\"o\",\n\t\"ꝍ\":\"o\",\n\t\"ⱺ\":\"o\",\n\t\"ō\":\"o\",\n\t\"ṓ\":\"o\",\n\t\"ṑ\":\"o\",\n\t\"ǫ\":\"o\",\n\t\"ǭ\":\"o\",\n\t\"ø\":\"o\",\n\t\"ǿ\":\"o\",\n\t\"õ\":\"o\",\n\t\"ṍ\":\"o\",\n\t\"ṏ\":\"o\",\n\t\"ȭ\":\"o\",\n\t\"ƣ\":\"oi\",\n\t\"ꝏ\":\"oo\",\n\t\"ɛ\":\"e\",\n\t\"ᶓ\":\"e\",\n\t\"ɔ\":\"o\",\n\t\"ᶗ\":\"o\",\n\t\"ȣ\":\"ou\",\n\t\"ṕ\":\"p\",\n\t\"ṗ\":\"p\",\n\t\"ꝓ\":\"p\",\n\t\"ƥ\":\"p\",\n\t\"ᵱ\":\"p\",\n\t\"ᶈ\":\"p\",\n\t\"ꝕ\":\"p\",\n\t\"ᵽ\":\"p\",\n\t\"ꝑ\":\"p\",\n\t\"ꝙ\":\"q\",\n\t\"ʠ\":\"q\",\n\t\"ɋ\":\"q\",\n\t\"ꝗ\":\"q\",\n\t\"ŕ\":\"r\",\n\t\"ř\":\"r\",\n\t\"ŗ\":\"r\",\n\t\"ṙ\":\"r\",\n\t\"ṛ\":\"r\",\n\t\"ṝ\":\"r\",\n\t\"ȑ\":\"r\",\n\t\"ɾ\":\"r\",\n\t\"ᵳ\":\"r\",\n\t\"ȓ\":\"r\",\n\t\"ṟ\":\"r\",\n\t\"ɼ\":\"r\",\n\t\"ᵲ\":\"r\",\n\t\"ᶉ\":\"r\",\n\t\"ɍ\":\"r\",\n\t\"ɽ\":\"r\",\n\t\"ↄ\":\"c\",\n\t\"ꜿ\":\"c\",\n\t\"ɘ\":\"e\",\n\t\"ɿ\":\"r\",\n\t\"ś\":\"s\",\n\t\"ṥ\":\"s\",\n\t\"š\":\"s\",\n\t\"ṧ\":\"s\",\n\t\"ş\":\"s\",\n\t\"ŝ\":\"s\",\n\t\"ș\":\"s\",\n\t\"ṡ\":\"s\",\n\t\"ṣ\":\"s\",\n\t\"ṩ\":\"s\",\n\t\"ʂ\":\"s\",\n\t\"ᵴ\":\"s\",\n\t\"ᶊ\":\"s\",\n\t\"ȿ\":\"s\",\n\t\"ɡ\":\"g\",\n\t\"ᴑ\":\"o\",\n\t\"ᴓ\":\"o\",\n\t\"ᴝ\":\"u\",\n\t\"ť\":\"t\",\n\t\"ţ\":\"t\",\n\t\"ṱ\":\"t\",\n\t\"ț\":\"t\",\n\t\"ȶ\":\"t\",\n\t\"ẗ\":\"t\",\n\t\"ⱦ\":\"t\",\n\t\"ṫ\":\"t\",\n\t\"ṭ\":\"t\",\n\t\"ƭ\":\"t\",\n\t\"ṯ\":\"t\",\n\t\"ᵵ\":\"t\",\n\t\"ƫ\":\"t\",\n\t\"ʈ\":\"t\",\n\t\"ŧ\":\"t\",\n\t\"ᵺ\":\"th\",\n\t\"ɐ\":\"a\",\n\t\"ᴂ\":\"ae\",\n\t\"ǝ\":\"e\",\n\t\"ᵷ\":\"g\",\n\t\"ɥ\":\"h\",\n\t\"ʮ\":\"h\",\n\t\"ʯ\":\"h\",\n\t\"ᴉ\":\"i\",\n\t\"ʞ\":\"k\",\n\t\"ꞁ\":\"l\",\n\t\"ɯ\":\"m\",\n\t\"ɰ\":\"m\",\n\t\"ᴔ\":\"oe\",\n\t\"ɹ\":\"r\",\n\t\"ɻ\":\"r\",\n\t\"ɺ\":\"r\",\n\t\"ⱹ\":\"r\",\n\t\"ʇ\":\"t\",\n\t\"ʌ\":\"v\",\n\t\"ʍ\":\"w\",\n\t\"ʎ\":\"y\",\n\t\"ꜩ\":\"tz\",\n\t\"ú\":\"u\",\n\t\"ŭ\":\"u\",\n\t\"ǔ\":\"u\",\n\t\"û\":\"u\",\n\t\"ṷ\":\"u\",\n\t\"ü\":\"u\",\n\t\"ǘ\":\"u\",\n\t\"ǚ\":\"u\",\n\t\"ǜ\":\"u\",\n\t\"ǖ\":\"u\",\n\t\"ṳ\":\"u\",\n\t\"ụ\":\"u\",\n\t\"ű\":\"u\",\n\t\"ȕ\":\"u\",\n\t\"ù\":\"u\",\n\t\"ủ\":\"u\",\n\t\"ư\":\"u\",\n\t\"ứ\":\"u\",\n\t\"ự\":\"u\",\n\t\"ừ\":\"u\",\n\t\"ử\":\"u\",\n\t\"ữ\":\"u\",\n\t\"ȗ\":\"u\",\n\t\"ū\":\"u\",\n\t\"ṻ\":\"u\",\n\t\"ų\":\"u\",\n\t\"ᶙ\":\"u\",\n\t\"ů\":\"u\",\n\t\"ũ\":\"u\",\n\t\"ṹ\":\"u\",\n\t\"ṵ\":\"u\",\n\t\"ᵫ\":\"ue\",\n\t\"ꝸ\":\"um\",\n\t\"ⱴ\":\"v\",\n\t\"ꝟ\":\"v\",\n\t\"ṿ\":\"v\",\n\t\"ʋ\":\"v\",\n\t\"ᶌ\":\"v\",\n\t\"ⱱ\":\"v\",\n\t\"ṽ\":\"v\",\n\t\"ꝡ\":\"vy\",\n\t\"ẃ\":\"w\",\n\t\"ŵ\":\"w\",\n\t\"ẅ\":\"w\",\n\t\"ẇ\":\"w\",\n\t\"ẉ\":\"w\",\n\t\"ẁ\":\"w\",\n\t\"ⱳ\":\"w\",\n\t\"ẘ\":\"w\",\n\t\"ẍ\":\"x\",\n\t\"ẋ\":\"x\",\n\t\"ᶍ\":\"x\",\n\t\"ý\":\"y\",\n\t\"ŷ\":\"y\",\n\t\"ÿ\":\"y\",\n\t\"ẏ\":\"y\",\n\t\"ỵ\":\"y\",\n\t\"ỳ\":\"y\",\n\t\"ƴ\":\"y\",\n\t\"ỷ\":\"y\",\n\t\"ỿ\":\"y\",\n\t\"ȳ\":\"y\",\n\t\"ẙ\":\"y\",\n\t\"ɏ\":\"y\",\n\t\"ỹ\":\"y\",\n\t\"ź\":\"z\",\n\t\"ž\":\"z\",\n\t\"ẑ\":\"z\",\n\t\"ʑ\":\"z\",\n\t\"ⱬ\":\"z\",\n\t\"ż\":\"z\",\n\t\"ẓ\":\"z\",\n\t\"ȥ\":\"z\",\n\t\"ẕ\":\"z\",\n\t\"ᵶ\":\"z\",\n\t\"ᶎ\":\"z\",\n\t\"ʐ\":\"z\",\n\t\"ƶ\":\"z\",\n\t\"ɀ\":\"z\",\n\t\"ff\":\"ff\",\n\t\"ffi\":\"ffi\",\n\t\"ffl\":\"ffl\",\n\t\"fi\":\"fi\",\n\t\"fl\":\"fl\",\n\t\"ij\":\"ij\",\n\t\"œ\":\"oe\",\n\t\"st\":\"st\",\n\t\"ₐ\":\"a\",\n\t\"ₑ\":\"e\",\n\t\"ᵢ\":\"i\",\n\t\"ⱼ\":\"j\",\n\t\"ₒ\":\"o\",\n\t\"ᵣ\":\"r\",\n\t\"ᵤ\":\"u\",\n\t\"ᵥ\":\"v\",\n\t\"ₓ\":\"x\",\n\t\"Ё\":\"YO\",\n\t\"Й\":\"I\",\n\t\"Ц\":\"TS\",\n\t\"У\":\"U\",\n\t\"К\":\"K\",\n\t\"Е\":\"E\",\n\t\"Н\":\"N\",\n\t\"Г\":\"G\",\n\t\"Ш\":\"SH\",\n\t\"Щ\":\"SCH\",\n\t\"З\":\"Z\",\n\t\"Х\":\"H\",\n\t\"Ъ\":\"'\",\n\t\"ё\":\"yo\",\n\t\"й\":\"i\",\n\t\"ц\":\"ts\",\n\t\"у\":\"u\",\n\t\"к\":\"k\",\n\t\"е\":\"e\",\n\t\"н\":\"n\",\n\t\"г\":\"g\",\n\t\"ш\":\"sh\",\n\t\"щ\":\"sch\",\n\t\"з\":\"z\",\n\t\"х\":\"h\",\n\t\"ъ\":\"'\",\n\t\"Ф\":\"F\",\n\t\"Ы\":\"I\",\n\t\"В\":\"V\",\n\t\"А\":\"a\",\n\t\"П\":\"P\",\n\t\"Р\":\"R\",\n\t\"О\":\"O\",\n\t\"Л\":\"L\",\n\t\"Д\":\"D\",\n\t\"Ж\":\"ZH\",\n\t\"Э\":\"E\",\n\t\"ф\":\"f\",\n\t\"ы\":\"i\",\n\t\"в\":\"v\",\n\t\"а\":\"a\",\n\t\"п\":\"p\",\n\t\"р\":\"r\",\n\t\"о\":\"o\",\n\t\"л\":\"l\",\n\t\"д\":\"d\",\n\t\"ж\":\"zh\",\n\t\"э\":\"e\",\n\t\"Я\":\"Ya\",\n\t\"Ч\":\"CH\",\n\t\"С\":\"S\",\n\t\"М\":\"M\",\n\t\"И\":\"I\",\n\t\"Т\":\"T\",\n\t\"Ь\":\"'\",\n\t\"Б\":\"B\",\n\t\"Ю\":\"YU\",\n\t\"я\":\"ya\",\n\t\"ч\":\"ch\",\n\t\"с\":\"s\",\n\t\"м\":\"m\",\n\t\"и\":\"i\",\n\t\"т\":\"t\",\n\t\"ь\":\"'\",\n\t\"б\":\"b\",\n\t\"ю\":\"yu\"\n};\n\nexports.transliterate = function(str) {\n\treturn str.replace(/[^A-Za-z0-9\\[\\] ]/g,function(ch) {\n\t\treturn exports.transliterationPairs[ch] || ch\n\t});\n};\n\nexports.transliterateToSafeASCII = function(str) {\n\treturn str.replace(/[^\\x00-\\x7F]/g,function(ch) {\n\t\treturn exports.transliterationPairs[ch] || \"\"\n\t});\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/utils.js": {
"title": "$:/core/modules/utils/utils.js",
"text": "/*\\\ntitle: $:/core/modules/utils/utils.js\ntype: application/javascript\nmodule-type: utils\n\nVarious static utility functions.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar base64utf8 = require(\"$:/core/modules/utils/base64-utf8/base64-utf8.module.js\");\n\n/*\nDisplay a message, in colour if we're on a terminal\n*/\nexports.log = function(text,colour) {\n\tconsole.log($tw.node ? exports.terminalColour(colour) + text + exports.terminalColour() : text);\n};\n\nexports.terminalColour = function(colour) {\n\tif(!$tw.browser && $tw.node && process.stdout.isTTY) {\n\t\tif(colour) {\n\t\t\tvar code = exports.terminalColourLookup[colour];\n\t\t\tif(code) {\n\t\t\t\treturn \"\\x1b[\" + code + \"m\";\n\t\t\t}\n\t\t} else {\n\t\t\treturn \"\\x1b[0m\"; // Cancel colour\n\t\t}\n\t}\n\treturn \"\";\n};\n\nexports.terminalColourLookup = {\n\t\"black\": \"0;30\",\n\t\"red\": \"0;31\",\n\t\"green\": \"0;32\",\n\t\"brown/orange\": \"0;33\",\n\t\"blue\": \"0;34\",\n\t\"purple\": \"0;35\",\n\t\"cyan\": \"0;36\",\n\t\"light gray\": \"0;37\"\n};\n\n/*\nDisplay a warning, in colour if we're on a terminal\n*/\nexports.warning = function(text) {\n\texports.log(text,\"brown/orange\");\n};\n\n/*\nReturn the integer represented by the str (string).\nReturn the dflt (default) parameter if str is not a base-10 number.\n*/\nexports.getInt = function(str,deflt) {\n\tvar i = parseInt(str,10);\n\treturn isNaN(i) ? deflt : i;\n}\n\n/*\nRepeatedly replaces a substring within a string. Like String.prototype.replace, but without any of the default special handling of $ sequences in the replace string\n*/\nexports.replaceString = function(text,search,replace) {\n\treturn text.replace(search,function() {\n\t\treturn replace;\n\t});\n};\n\n/*\nRepeats a string\n*/\nexports.repeat = function(str,count) {\n\tvar result = \"\";\n\tfor(var t=0;t<count;t++) {\n\t\tresult += str;\n\t}\n\treturn result;\n};\n\n/*\nTrim whitespace from the start and end of a string\nThanks to Steven Levithan, http://blog.stevenlevithan.com/archives/faster-trim-javascript\n*/\nexports.trim = function(str) {\n\tif(typeof str === \"string\") {\n\t\treturn str.replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, '');\n\t} else {\n\t\treturn str;\n\t}\n};\n\n/*\nConvert a string to sentence case (ie capitalise first letter)\n*/\nexports.toSentenceCase = function(str) {\n\treturn (str || \"\").replace(/^\\S/, function(c) {return c.toUpperCase();});\n}\n\n/*\nConvert a string to title case (ie capitalise each initial letter)\n*/\nexports.toTitleCase = function(str) {\n\treturn (str || \"\").replace(/(^|\\s)\\S/g, function(c) {return c.toUpperCase();});\n}\n\t\n/*\nFind the line break preceding a given position in a string\nReturns position immediately after that line break, or the start of the string\n*/\nexports.findPrecedingLineBreak = function(text,pos) {\n\tvar result = text.lastIndexOf(\"\\n\",pos - 1);\n\tif(result === -1) {\n\t\tresult = 0;\n\t} else {\n\t\tresult++;\n\t\tif(text.charAt(result) === \"\\r\") {\n\t\t\tresult++;\n\t\t}\n\t}\n\treturn result;\n};\n\n/*\nFind the line break following a given position in a string\n*/\nexports.findFollowingLineBreak = function(text,pos) {\n\t// Cut to just past the following line break, or to the end of the text\n\tvar result = text.indexOf(\"\\n\",pos);\n\tif(result === -1) {\n\t\tresult = text.length;\n\t} else {\n\t\tif(text.charAt(result) === \"\\r\") {\n\t\t\tresult++;\n\t\t}\n\t}\n\treturn result;\n};\n\n/*\nReturn the number of keys in an object\n*/\nexports.count = function(object) {\n\treturn Object.keys(object || {}).length;\n};\n\n/*\nDetermine whether an array-item is an object-property\n*/\nexports.hopArray = function(object,array) {\n\tfor(var i=0; i<array.length; i++) {\n\t\tif($tw.utils.hop(object,array[i])) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n\n/*\nRemove entries from an array\n\tarray: array to modify\n\tvalue: a single value to remove, or an array of values to remove\n*/\nexports.removeArrayEntries = function(array,value) {\n\tvar t,p;\n\tif($tw.utils.isArray(value)) {\n\t\tfor(t=0; t<value.length; t++) {\n\t\t\tp = array.indexOf(value[t]);\n\t\t\tif(p !== -1) {\n\t\t\t\tarray.splice(p,1);\n\t\t\t}\n\t\t}\n\t} else {\n\t\tp = array.indexOf(value);\n\t\tif(p !== -1) {\n\t\t\tarray.splice(p,1);\n\t\t}\n\t}\n};\n\n/*\nCheck whether any members of a hashmap are present in another hashmap\n*/\nexports.checkDependencies = function(dependencies,changes) {\n\tvar hit = false;\n\t$tw.utils.each(changes,function(change,title) {\n\t\tif($tw.utils.hop(dependencies,title)) {\n\t\t\thit = true;\n\t\t}\n\t});\n\treturn hit;\n};\n\nexports.extend = function(object /* [, src] */) {\n\t$tw.utils.each(Array.prototype.slice.call(arguments, 1), function(source) {\n\t\tif(source) {\n\t\t\tfor(var property in source) {\n\t\t\t\tobject[property] = source[property];\n\t\t\t}\n\t\t}\n\t});\n\treturn object;\n};\n\nexports.deepCopy = function(object) {\n\tvar result,t;\n\tif($tw.utils.isArray(object)) {\n\t\t// Copy arrays\n\t\tresult = object.slice(0);\n\t} else if(typeof object === \"object\") {\n\t\tresult = {};\n\t\tfor(t in object) {\n\t\t\tif(object[t] !== undefined) {\n\t\t\t\tresult[t] = $tw.utils.deepCopy(object[t]);\n\t\t\t}\n\t\t}\n\t} else {\n\t\tresult = object;\n\t}\n\treturn result;\n};\n\nexports.extendDeepCopy = function(object,extendedProperties) {\n\tvar result = $tw.utils.deepCopy(object),t;\n\tfor(t in extendedProperties) {\n\t\tif(extendedProperties[t] !== undefined) {\n\t\t\tresult[t] = $tw.utils.deepCopy(extendedProperties[t]);\n\t\t}\n\t}\n\treturn result;\n};\n\nexports.deepFreeze = function deepFreeze(object) {\n\tvar property, key;\n\tif(object) {\n\t\tObject.freeze(object);\n\t\tfor(key in object) {\n\t\t\tproperty = object[key];\n\t\t\tif($tw.utils.hop(object,key) && (typeof property === \"object\") && !Object.isFrozen(property)) {\n\t\t\t\tdeepFreeze(property);\n\t\t\t}\n\t\t}\n\t}\n};\n\nexports.slowInSlowOut = function(t) {\n\treturn (1 - ((Math.cos(t * Math.PI) + 1) / 2));\n};\n\nexports.formatDateString = function(date,template) {\n\tvar result = \"\",\n\t\tt = template,\n\t\tmatches = [\n\t\t\t[/^0hh12/, function() {\n\t\t\t\treturn $tw.utils.pad($tw.utils.getHours12(date));\n\t\t\t}],\n\t\t\t[/^wYYYY/, function() {\n\t\t\t\treturn $tw.utils.getYearForWeekNo(date);\n\t\t\t}],\n\t\t\t[/^hh12/, function() {\n\t\t\t\treturn $tw.utils.getHours12(date);\n\t\t\t}],\n\t\t\t[/^DDth/, function() {\n\t\t\t\treturn date.getDate() + $tw.utils.getDaySuffix(date);\n\t\t\t}],\n\t\t\t[/^YYYY/, function() {\n\t\t\t\treturn date.getFullYear();\n\t\t\t}],\n\t\t\t[/^0hh/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getHours());\n\t\t\t}],\n\t\t\t[/^0mm/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getMinutes());\n\t\t\t}],\n\t\t\t[/^0ss/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getSeconds());\n\t\t\t}],\n\t\t\t[/^0XXX/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getMilliseconds(),3);\n\t\t\t}],\n\t\t\t[/^0DD/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getDate());\n\t\t\t}],\n\t\t\t[/^0MM/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getMonth()+1);\n\t\t\t}],\n\t\t\t[/^0WW/, function() {\n\t\t\t\treturn $tw.utils.pad($tw.utils.getWeek(date));\n\t\t\t}],\n\t\t\t[/^ddd/, function() {\n\t\t\t\treturn $tw.language.getString(\"Date/Short/Day/\" + date.getDay());\n\t\t\t}],\n\t\t\t[/^mmm/, function() {\n\t\t\t\treturn $tw.language.getString(\"Date/Short/Month/\" + (date.getMonth() + 1));\n\t\t\t}],\n\t\t\t[/^DDD/, function() {\n\t\t\t\treturn $tw.language.getString(\"Date/Long/Day/\" + date.getDay());\n\t\t\t}],\n\t\t\t[/^MMM/, function() {\n\t\t\t\treturn $tw.language.getString(\"Date/Long/Month/\" + (date.getMonth() + 1));\n\t\t\t}],\n\t\t\t[/^TZD/, function() {\n\t\t\t\tvar tz = date.getTimezoneOffset(),\n\t\t\t\tatz = Math.abs(tz);\n\t\t\t\treturn (tz < 0 ? '+' : '-') + $tw.utils.pad(Math.floor(atz / 60)) + ':' + $tw.utils.pad(atz % 60);\n\t\t\t}],\n\t\t\t[/^wYY/, function() {\n\t\t\t\treturn $tw.utils.pad($tw.utils.getYearForWeekNo(date) - 2000);\n\t\t\t}],\n\t\t\t[/^[ap]m/, function() {\n\t\t\t\treturn $tw.utils.getAmPm(date).toLowerCase();\n\t\t\t}],\n\t\t\t[/^hh/, function() {\n\t\t\t\treturn date.getHours();\n\t\t\t}],\n\t\t\t[/^mm/, function() {\n\t\t\t\treturn date.getMinutes();\n\t\t\t}],\n\t\t\t[/^ss/, function() {\n\t\t\t\treturn date.getSeconds();\n\t\t\t}],\n\t\t\t[/^XXX/, function() {\n\t\t\t\treturn date.getMilliseconds();\n\t\t\t}],\n\t\t\t[/^[AP]M/, function() {\n\t\t\t\treturn $tw.utils.getAmPm(date).toUpperCase();\n\t\t\t}],\n\t\t\t[/^DD/, function() {\n\t\t\t\treturn date.getDate();\n\t\t\t}],\n\t\t\t[/^MM/, function() {\n\t\t\t\treturn date.getMonth() + 1;\n\t\t\t}],\n\t\t\t[/^WW/, function() {\n\t\t\t\treturn $tw.utils.getWeek(date);\n\t\t\t}],\n\t\t\t[/^YY/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getFullYear() - 2000);\n\t\t\t}]\n\t\t];\n\t// If the user wants everything in UTC, shift the datestamp\n\t// Optimize for format string that essentially means\n\t// 'return raw UTC (tiddlywiki style) date string.'\n\tif(t.indexOf(\"[UTC]\") == 0 ) {\n\t\tif(t == \"[UTC]YYYY0MM0DD0hh0mm0ssXXX\")\n\t\t\treturn $tw.utils.stringifyDate(new Date());\n\t\tvar offset = date.getTimezoneOffset() ; // in minutes\n\t\tdate = new Date(date.getTime()+offset*60*1000) ;\n\t\tt = t.substr(5) ;\n\t}\n\twhile(t.length){\n\t\tvar matchString = \"\";\n\t\t$tw.utils.each(matches, function(m) {\n\t\t\tvar match = m[0].exec(t);\n\t\t\tif(match) {\n\t\t\t\tmatchString = m[1].call();\n\t\t\t\tt = t.substr(match[0].length);\n\t\t\t\treturn false;\n\t\t\t}\n\t\t});\n\t\tif(matchString) {\n\t\t\tresult += matchString;\n\t\t} else {\n\t\t\tresult += t.charAt(0);\n\t\t\tt = t.substr(1);\n\t\t}\n\t}\n\tresult = result.replace(/\\\\(.)/g,\"$1\");\n\treturn result;\n};\n\nexports.getAmPm = function(date) {\n\treturn $tw.language.getString(\"Date/Period/\" + (date.getHours() >= 12 ? \"pm\" : \"am\"));\n};\n\nexports.getDaySuffix = function(date) {\n\treturn $tw.language.getString(\"Date/DaySuffix/\" + date.getDate());\n};\n\nexports.getWeek = function(date) {\n\tvar dt = new Date(date.getTime());\n\tvar d = dt.getDay();\n\tif(d === 0) {\n\t\td = 7; // JavaScript Sun=0, ISO Sun=7\n\t}\n\tdt.setTime(dt.getTime() + (4 - d) * 86400000);// shift day to Thurs of same week to calculate weekNo\n\tvar x = new Date(dt.getFullYear(),0,1);\n\tvar n = Math.floor((dt.getTime() - x.getTime()) / 86400000);\n\treturn Math.floor(n / 7) + 1;\n};\n\nexports.getYearForWeekNo = function(date) {\n\tvar dt = new Date(date.getTime());\n\tvar d = dt.getDay();\n\tif(d === 0) {\n\t\td = 7; // JavaScript Sun=0, ISO Sun=7\n\t}\n\tdt.setTime(dt.getTime() + (4 - d) * 86400000);// shift day to Thurs of same week\n\treturn dt.getFullYear();\n};\n\nexports.getHours12 = function(date) {\n\tvar h = date.getHours();\n\treturn h > 12 ? h-12 : ( h > 0 ? h : 12 );\n};\n\n/*\nConvert a date delta in milliseconds into a string representation of \"23 seconds ago\", \"27 minutes ago\" etc.\n\tdelta: delta in milliseconds\nReturns an object with these members:\n\tdescription: string describing the delta period\n\tupdatePeriod: time in millisecond until the string will be inaccurate\n*/\nexports.getRelativeDate = function(delta) {\n\tvar futurep = false;\n\tif(delta < 0) {\n\t\tdelta = -1 * delta;\n\t\tfuturep = true;\n\t}\n\tvar units = [\n\t\t{name: \"Years\", duration: 365 * 24 * 60 * 60 * 1000},\n\t\t{name: \"Months\", duration: (365/12) * 24 * 60 * 60 * 1000},\n\t\t{name: \"Days\", duration: 24 * 60 * 60 * 1000},\n\t\t{name: \"Hours\", duration: 60 * 60 * 1000},\n\t\t{name: \"Minutes\", duration: 60 * 1000},\n\t\t{name: \"Seconds\", duration: 1000}\n\t];\n\tfor(var t=0; t<units.length; t++) {\n\t\tvar result = Math.floor(delta / units[t].duration);\n\t\tif(result >= 2) {\n\t\t\treturn {\n\t\t\t\tdelta: delta,\n\t\t\t\tdescription: $tw.language.getString(\n\t\t\t\t\t\"RelativeDate/\" + (futurep ? \"Future\" : \"Past\") + \"/\" + units[t].name,\n\t\t\t\t\t{variables:\n\t\t\t\t\t\t{period: result.toString()}\n\t\t\t\t\t}\n\t\t\t\t),\n\t\t\t\tupdatePeriod: units[t].duration\n\t\t\t};\n\t\t}\n\t}\n\treturn {\n\t\tdelta: delta,\n\t\tdescription: $tw.language.getString(\n\t\t\t\"RelativeDate/\" + (futurep ? \"Future\" : \"Past\") + \"/Second\",\n\t\t\t{variables:\n\t\t\t\t{period: \"1\"}\n\t\t\t}\n\t\t),\n\t\tupdatePeriod: 1000\n\t};\n};\n\n// Convert & to \"&\", < to \"<\", > to \">\", \" to \""\"\nexports.htmlEncode = function(s) {\n\tif(s) {\n\t\treturn s.toString().replace(/&/mg,\"&\").replace(/</mg,\"<\").replace(/>/mg,\">\").replace(/\\\"/mg,\""\");\n\t} else {\n\t\treturn \"\";\n\t}\n};\n\n// Converts all HTML entities to their character equivalents\nexports.entityDecode = function(s) {\n\tvar converter = String.fromCodePoint || String.fromCharCode,\n\t\te = s.substr(1,s.length-2), // Strip the & and the ;\n\t\tc;\n\tif(e.charAt(0) === \"#\") {\n\t\tif(e.charAt(1) === \"x\" || e.charAt(1) === \"X\") {\n\t\t\tc = parseInt(e.substr(2),16);\n\t\t} else {\n\t\t\tc = parseInt(e.substr(1),10);\n\t\t}\n\t\tif(isNaN(c)) {\n\t\t\treturn s;\n\t\t} else {\n\t\t\treturn converter(c);\n\t\t}\n\t} else {\n\t\tc = $tw.config.htmlEntities[e];\n\t\tif(c) {\n\t\t\treturn converter(c);\n\t\t} else {\n\t\t\treturn s; // Couldn't convert it as an entity, just return it raw\n\t\t}\n\t}\n};\n\nexports.unescapeLineBreaks = function(s) {\n\treturn s.replace(/\\\\n/mg,\"\\n\").replace(/\\\\b/mg,\" \").replace(/\\\\s/mg,\"\\\\\").replace(/\\r/mg,\"\");\n};\n\n/*\n * Returns an escape sequence for given character. Uses \\x for characters <=\n * 0xFF to save space, \\u for the rest.\n *\n * The code needs to be in sync with th code template in the compilation\n * function for \"action\" nodes.\n */\n// Copied from peg.js, thanks to David Majda\nexports.escape = function(ch) {\n\tvar charCode = ch.charCodeAt(0);\n\tif(charCode <= 0xFF) {\n\t\treturn '\\\\x' + $tw.utils.pad(charCode.toString(16).toUpperCase());\n\t} else {\n\t\treturn '\\\\u' + $tw.utils.pad(charCode.toString(16).toUpperCase(),4);\n\t}\n};\n\n// Turns a string into a legal JavaScript string\n// Copied from peg.js, thanks to David Majda\nexports.stringify = function(s) {\n\t/*\n\t* ECMA-262, 5th ed., 7.8.4: All characters may appear literally in a string\n\t* literal except for the closing quote character, backslash, carriage return,\n\t* line separator, paragraph separator, and line feed. Any character may\n\t* appear in the form of an escape sequence.\n\t*\n\t* For portability, we also escape all non-ASCII characters.\n\t*/\n\treturn (s || \"\")\n\t\t.replace(/\\\\/g, '\\\\\\\\') // backslash\n\t\t.replace(/\"/g, '\\\\\"') // double quote character\n\t\t.replace(/'/g, \"\\\\'\") // single quote character\n\t\t.replace(/\\r/g, '\\\\r') // carriage return\n\t\t.replace(/\\n/g, '\\\\n') // line feed\n\t\t.replace(/[\\x00-\\x1f\\x80-\\uFFFF]/g, exports.escape); // non-ASCII characters\n};\n\n// Turns a string into a legal JSON string\n// Derived from peg.js, thanks to David Majda\nexports.jsonStringify = function(s) {\n\t// See http://www.json.org/\n\treturn (s || \"\")\n\t\t.replace(/\\\\/g, '\\\\\\\\') // backslash\n\t\t.replace(/\"/g, '\\\\\"') // double quote character\n\t\t.replace(/\\r/g, '\\\\r') // carriage return\n\t\t.replace(/\\n/g, '\\\\n') // line feed\n\t\t.replace(/\\x08/g, '\\\\b') // backspace\n\t\t.replace(/\\x0c/g, '\\\\f') // formfeed\n\t\t.replace(/\\t/g, '\\\\t') // tab\n\t\t.replace(/[\\x00-\\x1f\\x80-\\uFFFF]/g,function(s) {\n\t\t\treturn '\\\\u' + $tw.utils.pad(s.charCodeAt(0).toString(16).toUpperCase(),4);\n\t\t}); // non-ASCII characters\n};\n\n/*\nEscape the RegExp special characters with a preceding backslash\n*/\nexports.escapeRegExp = function(s) {\n return s.replace(/[\\-\\/\\\\\\^\\$\\*\\+\\?\\.\\(\\)\\|\\[\\]\\{\\}]/g, '\\\\$&');\n};\n\n// Checks whether a link target is external, i.e. not a tiddler title\nexports.isLinkExternal = function(to) {\n\tvar externalRegExp = /^(?:file|http|https|mailto|ftp|irc|news|data|skype):[^\\s<>{}\\[\\]`|\"\\\\^]+(?:\\/|\\b)/i;\n\treturn externalRegExp.test(to);\n};\n\nexports.nextTick = function(fn) {\n/*global window: false */\n\tif(typeof process === \"undefined\") {\n\t\t// Apparently it would be faster to use postMessage - http://dbaron.org/log/20100309-faster-timeouts\n\t\twindow.setTimeout(fn,4);\n\t} else {\n\t\tprocess.nextTick(fn);\n\t}\n};\n\n/*\nConvert a hyphenated CSS property name into a camel case one\n*/\nexports.unHyphenateCss = function(propName) {\n\treturn propName.replace(/-([a-z])/gi, function(match0,match1) {\n\t\treturn match1.toUpperCase();\n\t});\n};\n\n/*\nConvert a camelcase CSS property name into a dashed one (\"backgroundColor\" --> \"background-color\")\n*/\nexports.hyphenateCss = function(propName) {\n\treturn propName.replace(/([A-Z])/g, function(match0,match1) {\n\t\treturn \"-\" + match1.toLowerCase();\n\t});\n};\n\n/*\nParse a text reference of one of these forms:\n* title\n* !!field\n* title!!field\n* title##index\n* etc\nReturns an object with the following fields, all optional:\n* title: tiddler title\n* field: tiddler field name\n* index: JSON property index\n*/\nexports.parseTextReference = function(textRef) {\n\t// Separate out the title, field name and/or JSON indices\n\tvar reTextRef = /(?:(.*?)!!(.+))|(?:(.*?)##(.+))|(.*)/mg,\n\t\tmatch = reTextRef.exec(textRef),\n\t\tresult = {};\n\tif(match && reTextRef.lastIndex === textRef.length) {\n\t\t// Return the parts\n\t\tif(match[1]) {\n\t\t\tresult.title = match[1];\n\t\t}\n\t\tif(match[2]) {\n\t\t\tresult.field = match[2];\n\t\t}\n\t\tif(match[3]) {\n\t\t\tresult.title = match[3];\n\t\t}\n\t\tif(match[4]) {\n\t\t\tresult.index = match[4];\n\t\t}\n\t\tif(match[5]) {\n\t\t\tresult.title = match[5];\n\t\t}\n\t} else {\n\t\t// If we couldn't parse it\n\t\tresult.title = textRef\n\t}\n\treturn result;\n};\n\n/*\nChecks whether a string is a valid fieldname\n*/\nexports.isValidFieldName = function(name) {\n\tif(!name || typeof name !== \"string\") {\n\t\treturn false;\n\t}\n\tname = name.toLowerCase().trim();\n\tvar fieldValidatorRegEx = /^[a-z0-9\\-\\._]+$/mg;\n\treturn fieldValidatorRegEx.test(name);\n};\n\n/*\nExtract the version number from the meta tag or from the boot file\n*/\n\n// Browser version\nexports.extractVersionInfo = function() {\n\tif($tw.packageInfo) {\n\t\treturn $tw.packageInfo.version;\n\t} else {\n\t\tvar metatags = document.getElementsByTagName(\"meta\");\n\t\tfor(var t=0; t<metatags.length; t++) {\n\t\t\tvar m = metatags[t];\n\t\t\tif(m.name === \"tiddlywiki-version\") {\n\t\t\t\treturn m.content;\n\t\t\t}\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nGet the animation duration in ms\n*/\nexports.getAnimationDuration = function() {\n\treturn parseInt($tw.wiki.getTiddlerText(\"$:/config/AnimationDuration\",\"400\"),10) || 0;\n};\n\n/*\nHash a string to a number\nDerived from http://stackoverflow.com/a/15710692\n*/\nexports.hashString = function(str) {\n\treturn str.split(\"\").reduce(function(a,b) {\n\t\ta = ((a << 5) - a) + b.charCodeAt(0);\n\t\treturn a & a;\n\t},0);\n};\n\n/*\nDecode a base64 string\n*/\nexports.base64Decode = function(string64) {\n\treturn base64utf8.base64.decode.call(base64utf8,string64);\n};\n\n/*\nEncode a string to base64\n*/\nexports.base64Encode = function(string64) {\n\treturn base64utf8.base64.encode.call(base64utf8,string64);\n};\n\n/*\nConvert a hashmap into a tiddler dictionary format sequence of name:value pairs\n*/\nexports.makeTiddlerDictionary = function(data) {\n\tvar output = [];\n\tfor(var name in data) {\n\t\toutput.push(name + \": \" + data[name]);\n\t}\n\treturn output.join(\"\\n\");\n};\n\n/*\nHigh resolution microsecond timer for profiling\n*/\nexports.timer = function(base) {\n\tvar m;\n\tif($tw.node) {\n\t\tvar r = process.hrtime();\n\t\tm = r[0] * 1e3 + (r[1] / 1e6);\n\t} else if(window.performance) {\n\t\tm = performance.now();\n\t} else {\n\t\tm = Date.now();\n\t}\n\tif(typeof base !== \"undefined\") {\n\t\tm = m - base;\n\t}\n\treturn m;\n};\n\n/*\nConvert text and content type to a data URI\n*/\nexports.makeDataUri = function(text,type,_canonical_uri) {\n\ttype = type || \"text/vnd.tiddlywiki\";\n\tvar typeInfo = $tw.config.contentTypeInfo[type] || $tw.config.contentTypeInfo[\"text/plain\"],\n\t\tisBase64 = typeInfo.encoding === \"base64\",\n\t\tparts = [];\n\tif(_canonical_uri) {\n\t\tparts.push(_canonical_uri);\n\t} else {\n\t\tparts.push(\"data:\");\n\t\tparts.push(type);\n\t\tparts.push(isBase64 ? \";base64\" : \"\");\n\t\tparts.push(\",\");\n\t\tparts.push(isBase64 ? text : encodeURIComponent(text));\t\t\n\t}\n\treturn parts.join(\"\");\n};\n\n/*\nUseful for finding out the fully escaped CSS selector equivalent to a given tag. For example:\n\n$tw.utils.tagToCssSelector(\"$:/tags/Stylesheet\") --> tc-tagged-\\%24\\%3A\\%2Ftags\\%2FStylesheet\n*/\nexports.tagToCssSelector = function(tagName) {\n\treturn \"tc-tagged-\" + encodeURIComponent(tagName).replace(/[!\"#$%&'()*+,\\-./:;<=>?@[\\\\\\]^`{\\|}~,]/mg,function(c) {\n\t\treturn \"\\\\\" + c;\n\t});\n};\n\n/*\nIE does not have sign function\n*/\nexports.sign = Math.sign || function(x) {\n\tx = +x; // convert to a number\n\tif (x === 0 || isNaN(x)) {\n\t\treturn x;\n\t}\n\treturn x > 0 ? 1 : -1;\n};\n\n/*\nIE does not have an endsWith function\n*/\nexports.strEndsWith = function(str,ending,position) {\n\tif(str.endsWith) {\n\t\treturn str.endsWith(ending,position);\n\t} else {\n\t\tif (typeof position !== 'number' || !isFinite(position) || Math.floor(position) !== position || position > str.length) {\n\t\t\tposition = str.length;\n\t\t}\n\t\tposition -= ending.length;\n\t\tvar lastIndex = str.indexOf(ending, position);\n\t\treturn lastIndex !== -1 && lastIndex === position;\n\t}\n};\n\n/*\nReturn system information useful for debugging\n*/\nexports.getSystemInfo = function(str,ending,position) {\n\tvar results = [],\n\t\tsave = function(desc,value) {\n\t\t\tresults.push(desc + \": \" + value);\n\t\t};\n\tif($tw.browser) {\n\t\tsave(\"User Agent\",navigator.userAgent);\n\t\tsave(\"Online Status\",window.navigator.onLine);\n\t}\n\tif($tw.node) {\n\t\tsave(\"Node Version\",process.version);\n\t}\n\treturn results.join(\"\\n\");\n};\n\nexports.parseNumber = function(str) {\n\treturn parseFloat(str) || 0;\n};\n\nexports.parseInt = function(str) {\n\treturn parseInt(str,10) || 0;\n};\n\nexports.stringifyNumber = function(num) {\n\treturn num + \"\";\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/widgets/action-createtiddler.js": {
"title": "$:/core/modules/widgets/action-createtiddler.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/action-createtiddler.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to create a new tiddler with a unique name and specified fields.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw:false, require:false, exports:false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar CreateTiddlerWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nCreateTiddlerWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nCreateTiddlerWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nCreateTiddlerWidget.prototype.execute = function() {\n\tthis.actionBaseTitle = this.getAttribute(\"$basetitle\");\n\tthis.hasBase = !!this.actionBaseTitle;\n\tthis.actionSaveTitle = this.getAttribute(\"$savetitle\");\n\tthis.actionSaveDraftTitle = this.getAttribute(\"$savedrafttitle\");\n\tthis.actionTimestamp = this.getAttribute(\"$timestamp\",\"yes\") === \"yes\";\n\t//Following params are new since 5.1.22\n\tthis.actionTemplate = this.getAttribute(\"$template\");\n\tthis.useTemplate = !!this.actionTemplate;\n\tthis.actionOverwrite = this.getAttribute(\"$overwrite\",\"no\");\n\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nCreateTiddlerWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif($tw.utils.count(changedAttributes) > 0) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nCreateTiddlerWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tvar title = this.wiki.getTiddlerText(\"$:/language/DefaultNewTiddlerTitle\"), // Get the initial new-tiddler title\n\t\tfields = {},\n\t\tcreationFields,\n\t\tmodificationFields;\n\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\tif(name.charAt(0) !== \"$\") {\n\t\t\tfields[name] = attribute;\n\t\t}\n\t});\n\tif(this.actionTimestamp) {\n\t\tcreationFields = this.wiki.getCreationFields();\n\t\tmodificationFields = this.wiki.getModificationFields();\n\t}\n\tif(this.hasBase && this.actionOverwrite === \"no\") {\n\t\ttitle = this.wiki.generateNewTitle(this.actionBaseTitle);\n\t} else if (this.hasBase && this.actionOverwrite === \"yes\") {\n\t\ttitle = this.actionBaseTitle\n\t}\n\t// NO $basetitle BUT $template parameter is available\n\t// the title MUST be unique, otherwise the template would be overwritten\n\tif (!this.hasBase && this.useTemplate) {\n\t\ttitle = this.wiki.generateNewTitle(this.actionTemplate);\n\t} else if (!this.hasBase && !this.useTemplate) {\n\t\t// If NO $basetitle AND NO $template use initial title\n\t\t// DON'T overwrite any stuff\n\t\ttitle = this.wiki.generateNewTitle(title);\n\t}\n\tvar templateTiddler = this.wiki.getTiddler(this.actionTemplate) || {};\n\tvar tiddler = this.wiki.addTiddler(new $tw.Tiddler(templateTiddler.fields,creationFields,fields,modificationFields,{title: title}));\n\tif(this.actionSaveTitle) {\n\t\tthis.wiki.setTextReference(this.actionSaveTitle,title,this.getVariable(\"currentTiddler\"));\n\t}\n\tif(this.actionSaveDraftTitle) {\n\t\tthis.wiki.setTextReference(this.actionSaveDraftTitle,this.wiki.generateDraftTitle(title),this.getVariable(\"currentTiddler\"));\n\t}\n\treturn true; // Action was invoked\n};\n\nexports[\"action-createtiddler\"] = CreateTiddlerWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/action-deletefield.js": {
"title": "$:/core/modules/widgets/action-deletefield.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/action-deletefield.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to delete fields of a tiddler.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar DeleteFieldWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDeleteFieldWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nDeleteFieldWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nDeleteFieldWidget.prototype.execute = function() {\n\tthis.actionTiddler = this.getAttribute(\"$tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.actionField = this.getAttribute(\"$field\");\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nDeleteFieldWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"$tiddler\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nDeleteFieldWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tvar self = this,\n\t\ttiddler = this.wiki.getTiddler(self.actionTiddler),\n\t\tremoveFields = {},\n\t\thasChanged = false;\n\tif(this.actionField && tiddler) {\n\t\tremoveFields[this.actionField] = undefined;\n\t\tif(this.actionField in tiddler.fields) {\n\t\t\thasChanged = true;\n\t\t}\n\t}\n\tif(tiddler) {\n\t\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\t\tif(name.charAt(0) !== \"$\" && name !== \"title\") {\n\t\t\t\tremoveFields[name] = undefined;\n\t\t\t\thasChanged = true;\n\t\t\t}\n\t\t});\n\t\tif(hasChanged) {\n\t\t\tthis.wiki.addTiddler(new $tw.Tiddler(this.wiki.getCreationFields(),tiddler,removeFields,this.wiki.getModificationFields()));\t\t\t\n\t\t}\n\t}\n\treturn true; // Action was invoked\n};\n\nexports[\"action-deletefield\"] = DeleteFieldWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/action-deletetiddler.js": {
"title": "$:/core/modules/widgets/action-deletetiddler.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/action-deletetiddler.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to delete a tiddler.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar DeleteTiddlerWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDeleteTiddlerWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nDeleteTiddlerWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nDeleteTiddlerWidget.prototype.execute = function() {\n\tthis.actionFilter = this.getAttribute(\"$filter\");\n\tthis.actionTiddler = this.getAttribute(\"$tiddler\");\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nDeleteTiddlerWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"$filter\"] || changedAttributes[\"$tiddler\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nDeleteTiddlerWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tvar tiddlers = [];\n\tif(this.actionFilter) {\n\t\ttiddlers = this.wiki.filterTiddlers(this.actionFilter,this);\n\t}\n\tif(this.actionTiddler) {\n\t\ttiddlers.push(this.actionTiddler);\n\t}\n\tfor(var t=0; t<tiddlers.length; t++) {\n\t\tthis.wiki.deleteTiddler(tiddlers[t]);\n\t}\n\treturn true; // Action was invoked\n};\n\nexports[\"action-deletetiddler\"] = DeleteTiddlerWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/action-listops.js": {
"title": "$:/core/modules/widgets/action-listops.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/action-listops.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to apply list operations to any tiddler field (defaults to the 'list' field of the current tiddler)\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\nvar ActionListopsWidget = function(parseTreeNode, options) {\n\tthis.initialise(parseTreeNode, options);\n};\n/**\n * Inherit from the base widget class\n */\nActionListopsWidget.prototype = new Widget();\n/**\n * Render this widget into the DOM\n */\nActionListopsWidget.prototype.render = function(parent, nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n/**\n * Compute the internal state of the widget\n */\nActionListopsWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.target = this.getAttribute(\"$tiddler\", this.getVariable(\n\t\t\"currentTiddler\"));\n\tthis.filter = this.getAttribute(\"$filter\");\n\tthis.subfilter = this.getAttribute(\"$subfilter\");\n\tthis.listField = this.getAttribute(\"$field\", \"list\");\n\tthis.listIndex = this.getAttribute(\"$index\");\n\tthis.filtertags = this.getAttribute(\"$tags\");\n};\n/**\n * \tRefresh the widget by ensuring our attributes are up to date\n */\nActionListopsWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.$tiddler || changedAttributes.$filter ||\n\t\tchangedAttributes.$subfilter || changedAttributes.$field ||\n\t\tchangedAttributes.$index || changedAttributes.$tags) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n/**\n * \tInvoke the action associated with this widget\n */\nActionListopsWidget.prototype.invokeAction = function(triggeringWidget,\n\tevent) {\n\t//Apply the specified filters to the lists\n\tvar field = this.listField,\n\t\tindex,\n\t\ttype = \"!!\",\n\t\tlist = this.listField;\n\tif(this.listIndex) {\n\t\tfield = undefined;\n\t\tindex = this.listIndex;\n\t\ttype = \"##\";\n\t\tlist = this.listIndex;\n\t}\n\tif(this.filter) {\n\t\tthis.wiki.setText(this.target, field, index, $tw.utils.stringifyList(\n\t\t\tthis.wiki\n\t\t\t.filterTiddlers(this.filter, this)));\n\t}\n\tif(this.subfilter) {\n\t\tvar subfilter = \"[list[\" + this.target + type + list + \"]] \" + this.subfilter;\n\t\tthis.wiki.setText(this.target, field, index, $tw.utils.stringifyList(\n\t\t\tthis.wiki\n\t\t\t.filterTiddlers(subfilter, this)));\n\t}\n\tif(this.filtertags) {\n\t\tvar tiddler = this.wiki.getTiddler(this.target),\n\t\t\toldtags = tiddler ? (tiddler.fields.tags || []).slice(0) : [],\n\t\t\ttagfilter = \"[list[\" + this.target + \"!!tags]] \" + this.filtertags,\n\t\t\tnewtags = this.wiki.filterTiddlers(tagfilter,this);\n\t\tif($tw.utils.stringifyList(oldtags.sort()) !== $tw.utils.stringifyList(newtags.sort())) {\n\t\t\tthis.wiki.setText(this.target,\"tags\",undefined,$tw.utils.stringifyList(newtags));\t\t\t\n\t\t}\n\t}\n\treturn true; // Action was invoked\n};\n\nexports[\"action-listops\"] = ActionListopsWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/action-navigate.js": {
"title": "$:/core/modules/widgets/action-navigate.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/action-navigate.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to navigate to a tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar NavigateWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nNavigateWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nNavigateWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nNavigateWidget.prototype.execute = function() {\n\tthis.actionTo = this.getAttribute(\"$to\");\n\tthis.actionScroll = this.getAttribute(\"$scroll\");\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nNavigateWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"$to\"] || changedAttributes[\"$scroll\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nNavigateWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tevent = event || {};\n\tvar bounds = triggeringWidget && triggeringWidget.getBoundingClientRect && triggeringWidget.getBoundingClientRect(),\n\t\tsuppressNavigation = event.metaKey || event.ctrlKey || (event.button === 1);\n\tif(this.actionScroll === \"yes\") {\n\t\tsuppressNavigation = false;\n\t} else if(this.actionScroll === \"no\") {\n\t\tsuppressNavigation = true;\n\t}\n\tthis.dispatchEvent({\n\t\ttype: \"tm-navigate\",\n\t\tnavigateTo: this.actionTo === undefined ? this.getVariable(\"currentTiddler\") : this.actionTo,\n\t\tnavigateFromTitle: this.getVariable(\"storyTiddler\"),\n\t\tnavigateFromNode: triggeringWidget,\n\t\tnavigateFromClientRect: bounds && { top: bounds.top, left: bounds.left, width: bounds.width, right: bounds.right, bottom: bounds.bottom, height: bounds.height\n\t\t},\n\t\tnavigateSuppressNavigation: suppressNavigation\n\t});\n\treturn true; // Action was invoked\n};\n\nexports[\"action-navigate\"] = NavigateWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/action-popup.js": {
"title": "$:/core/modules/widgets/action-popup.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/action-popup.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to trigger a popup.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ActionPopupWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nActionPopupWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nActionPopupWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nActionPopupWidget.prototype.execute = function() {\n\tthis.actionState = this.getAttribute(\"$state\");\n\tthis.actionCoords = this.getAttribute(\"$coords\");\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nActionPopupWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"$state\"] || changedAttributes[\"$coords\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nActionPopupWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\t// Trigger the popup\n\tvar popupLocationRegExp = /^\\((-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+)\\)$/,\n\t\tmatch = popupLocationRegExp.exec(this.actionCoords);\n\tif(match) {\n\t\t$tw.popup.triggerPopup({\n\t\t\tdomNode: null,\n\t\t\tdomNodeRect: {\n\t\t\t\tleft: parseFloat(match[1]),\n\t\t\t\ttop: parseFloat(match[2]),\n\t\t\t\twidth: parseFloat(match[3]),\n\t\t\t\theight: parseFloat(match[4])\n\t\t\t},\n\t\t\ttitle: this.actionState,\n\t\t\twiki: this.wiki\n\t\t});\n\t}\n\treturn true; // Action was invoked\n};\n\nexports[\"action-popup\"] = ActionPopupWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/action-sendmessage.js": {
"title": "$:/core/modules/widgets/action-sendmessage.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/action-sendmessage.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to send a message\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar SendMessageWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nSendMessageWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nSendMessageWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nSendMessageWidget.prototype.execute = function() {\n\tthis.actionMessage = this.getAttribute(\"$message\");\n\tthis.actionParam = this.getAttribute(\"$param\");\n\tthis.actionName = this.getAttribute(\"$name\");\n\tthis.actionValue = this.getAttribute(\"$value\",\"\");\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nSendMessageWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(Object.keys(changedAttributes).length) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nSendMessageWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\t// Get the string parameter\n\tvar param = this.actionParam;\n\t// Assemble the attributes as a hashmap\n\tvar paramObject = Object.create(null);\n\tvar count = 0;\n\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\tif(name.charAt(0) !== \"$\") {\n\t\t\tparamObject[name] = attribute;\n\t\t\tcount++;\n\t\t}\n\t});\n\t// Add name/value pair if present\n\tif(this.actionName) {\n\t\tparamObject[this.actionName] = this.actionValue;\n\t}\n\t// Dispatch the message\n\tthis.dispatchEvent({\n\t\ttype: this.actionMessage,\n\t\tparam: param,\n\t\tparamObject: paramObject,\n\t\ttiddlerTitle: this.getVariable(\"currentTiddler\"),\n\t\tnavigateFromTitle: this.getVariable(\"storyTiddler\"),\n\t\tevent: event\n\t});\n\treturn true; // Action was invoked\n};\n\nexports[\"action-sendmessage\"] = SendMessageWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/action-setfield.js": {
"title": "$:/core/modules/widgets/action-setfield.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/action-setfield.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to set a single field or index on a tiddler.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar SetFieldWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nSetFieldWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nSetFieldWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nSetFieldWidget.prototype.execute = function() {\n\tthis.actionTiddler = this.getAttribute(\"$tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.actionField = this.getAttribute(\"$field\");\n\tthis.actionIndex = this.getAttribute(\"$index\");\n\tthis.actionValue = this.getAttribute(\"$value\");\n\tthis.actionTimestamp = this.getAttribute(\"$timestamp\",\"yes\") === \"yes\";\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nSetFieldWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"$tiddler\"] || changedAttributes[\"$field\"] || changedAttributes[\"$index\"] || changedAttributes[\"$value\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nSetFieldWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tvar self = this,\n\t\toptions = {};\n\toptions.suppressTimestamp = !this.actionTimestamp;\n\tif((typeof this.actionField == \"string\") || (typeof this.actionIndex == \"string\") || (typeof this.actionValue == \"string\")) {\n\t\tthis.wiki.setText(this.actionTiddler,this.actionField,this.actionIndex,this.actionValue,options);\n\t}\n\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\tif(name.charAt(0) !== \"$\") {\n\t\t\tself.wiki.setText(self.actionTiddler,name,undefined,attribute,options);\n\t\t}\n\t});\n\treturn true; // Action was invoked\n};\n\nexports[\"action-setfield\"] = SetFieldWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/browse.js": {
"title": "$:/core/modules/widgets/browse.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/browse.js\ntype: application/javascript\nmodule-type: widget\n\nBrowse widget for browsing for files to import\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar BrowseWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nBrowseWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nBrowseWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create element\n\tvar domNode = this.document.createElement(\"input\");\n\tdomNode.setAttribute(\"type\",\"file\");\n\tif(this.browseMultiple) {\n\t\tdomNode.setAttribute(\"multiple\",\"multiple\");\n\t}\n\tif(this.tooltip) {\n\t\tdomNode.setAttribute(\"title\",this.tooltip);\n\t}\n\t// Nw.js supports \"nwsaveas\" to force a \"save as\" dialogue that allows a new or existing file to be selected\n\tif(this.nwsaveas) {\n\t\tdomNode.setAttribute(\"nwsaveas\",this.nwsaveas);\n\t}\n\t// Nw.js supports \"webkitdirectory\" and \"nwdirectory\" to allow a directory to be selected\n\tif(this.webkitdirectory) {\n\t\tdomNode.setAttribute(\"webkitdirectory\",this.webkitdirectory);\n\t}\n\tif(this.nwdirectory) {\n\t\tdomNode.setAttribute(\"nwdirectory\",this.nwdirectory);\n\t}\n\t// Add a click event handler\n\tdomNode.addEventListener(\"change\",function (event) {\n\t\tif(self.message) {\n\t\t\tself.dispatchEvent({type: self.message, param: self.param, files: event.target.files});\n\t\t} else {\n\t\t\tself.wiki.readFiles(event.target.files,{\n\t\t\t\tcallback: function(tiddlerFieldsArray) {\n\t\t\t\t\tself.dispatchEvent({type: \"tm-import-tiddlers\", param: JSON.stringify(tiddlerFieldsArray)});\n\t\t\t\t},\n\t\t\t\tdeserializer: self.deserializer\n\t\t\t});\n\t\t}\n\t\treturn false;\n\t},false);\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nBrowseWidget.prototype.execute = function() {\n\tthis.browseMultiple = this.getAttribute(\"multiple\");\n\tthis.deserializer = this.getAttribute(\"deserializer\");\n\tthis.message = this.getAttribute(\"message\");\n\tthis.param = this.getAttribute(\"param\");\n\tthis.tooltip = this.getAttribute(\"tooltip\");\n\tthis.nwsaveas = this.getAttribute(\"nwsaveas\");\n\tthis.webkitdirectory = this.getAttribute(\"webkitdirectory\");\n\tthis.nwdirectory = this.getAttribute(\"nwdirectory\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nBrowseWidget.prototype.refresh = function(changedTiddlers) {\n\treturn false;\n};\n\nexports.browse = BrowseWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/button.js": {
"title": "$:/core/modules/widgets/button.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/button.js\ntype: application/javascript\nmodule-type: widget\n\nButton widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ButtonWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nButtonWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nButtonWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create element\n\tvar tag = \"button\";\n\tif(this.buttonTag && $tw.config.htmlUnsafeElements.indexOf(this.buttonTag) === -1) {\n\t\ttag = this.buttonTag;\n\t}\n\tvar domNode = this.document.createElement(tag);\n\t// Assign classes\n\tvar classes = this[\"class\"].split(\" \") || [],\n\t\tisPoppedUp = (this.popup || this.popupTitle) && this.isPoppedUp();\n\tif(this.selectedClass) {\n\t\tif((this.set || this.setTitle) && this.setTo && this.isSelected()) {\n\t\t\t$tw.utils.pushTop(classes,this.selectedClass.split(\" \"));\n\t\t}\n\t\tif(isPoppedUp) {\n\t\t\t$tw.utils.pushTop(classes,this.selectedClass.split(\" \"));\n\t\t}\n\t}\n\tif(isPoppedUp) {\n\t\t$tw.utils.pushTop(classes,\"tc-popup-handle\");\n\t}\n\tdomNode.className = classes.join(\" \");\n\t// Assign other attributes\n\tif(this.style) {\n\t\tdomNode.setAttribute(\"style\",this.style);\n\t}\n\tif(this.tooltip) {\n\t\tdomNode.setAttribute(\"title\",this.tooltip);\n\t}\n\tif(this[\"aria-label\"]) {\n\t\tdomNode.setAttribute(\"aria-label\",this[\"aria-label\"]);\n\t}\n\t// Set the tabindex\n\tif(this.tabIndex) {\n\t\tdomNode.setAttribute(\"tabindex\",this.tabIndex);\n\t}\t\n\t// Add a click event handler\n\tdomNode.addEventListener(\"click\",function (event) {\n\t\tvar handled = false;\n\t\tif(self.invokeActions(self,event)) {\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.to) {\n\t\t\tself.navigateTo(event);\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.message) {\n\t\t\tself.dispatchMessage(event);\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.popup || self.popupTitle) {\n\t\t\tself.triggerPopup(event);\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.set || self.setTitle) {\n\t\t\tself.setTiddler();\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.actions) {\n\t\t\tself.invokeActionString(self.actions,self,event);\n\t\t}\n\t\tif(handled) {\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t}\n\t\treturn handled;\n\t},false);\n\t// Make it draggable if required\n\tif(this.dragTiddler || this.dragFilter) {\n\t\t$tw.utils.makeDraggable({\n\t\t\tdomNode: domNode,\n\t\t\tdragTiddlerFn: function() {return self.dragTiddler;},\n\t\t\tdragFilterFn: function() {return self.dragFilter;},\n\t\t\twidget: this\n\t\t});\n\t}\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nWe don't allow actions to propagate because we trigger actions ourselves\n*/\nButtonWidget.prototype.allowActionPropagation = function() {\n\treturn false;\n};\n\nButtonWidget.prototype.getBoundingClientRect = function() {\n\treturn this.domNodes[0].getBoundingClientRect();\n};\n\nButtonWidget.prototype.isSelected = function() {\n return this.setTitle ? (this.setField ? this.wiki.getTiddler(this.setTitle).getFieldString(this.setField) === this.setTo :\n\t\t(this.setIndex ? this.wiki.extractTiddlerDataItem(this.setTitle,this.setIndex) === this.setTo :\n\t\t\tthis.wiki.getTiddlerText(this.setTitle))) || this.defaultSetValue || this.getVariable(\"currentTiddler\") :\n\t\tthis.wiki.getTextReference(this.set,this.defaultSetValue,this.getVariable(\"currentTiddler\")) === this.setTo;\n};\n\nButtonWidget.prototype.isPoppedUp = function() {\n\tvar tiddler = this.popupTitle ? this.wiki.getTiddler(this.popupTitle) : this.wiki.getTiddler(this.popup);\n\tvar result = tiddler && tiddler.fields.text ? $tw.popup.readPopupState(tiddler.fields.text) : false;\n\treturn result;\n};\n\nButtonWidget.prototype.navigateTo = function(event) {\n\tvar bounds = this.getBoundingClientRect();\n\tthis.dispatchEvent({\n\t\ttype: \"tm-navigate\",\n\t\tnavigateTo: this.to,\n\t\tnavigateFromTitle: this.getVariable(\"storyTiddler\"),\n\t\tnavigateFromNode: this,\n\t\tnavigateFromClientRect: { top: bounds.top, left: bounds.left, width: bounds.width, right: bounds.right, bottom: bounds.bottom, height: bounds.height\n\t\t},\n\t\tnavigateSuppressNavigation: event.metaKey || event.ctrlKey || (event.button === 1),\n\t\tevent: event\n\t});\n};\n\nButtonWidget.prototype.dispatchMessage = function(event) {\n\tthis.dispatchEvent({type: this.message, param: this.param, tiddlerTitle: this.getVariable(\"currentTiddler\"), event: event});\n};\n\nButtonWidget.prototype.triggerPopup = function(event) {\n\tif(this.popupTitle) {\n\t\t$tw.popup.triggerPopup({\n\t\t\tdomNode: this.domNodes[0],\n\t\t\ttitle: this.popupTitle,\n\t\t\twiki: this.wiki,\n\t\t\tnoStateReference: true\n\t\t});\n\t} else {\n\t\t$tw.popup.triggerPopup({\n\t\t\tdomNode: this.domNodes[0],\n\t\t\ttitle: this.popup,\n\t\t\twiki: this.wiki\n\t\t});\n\t}\n};\n\nButtonWidget.prototype.setTiddler = function() {\n\tif(this.setTitle) {\n\t\tthis.setField ? this.wiki.setText(this.setTitle,this.setField,undefined,this.setTo) :\n\t\t\t\t(this.setIndex ? this.wiki.setText(this.setTitle,undefined,this.setIndex,this.setTo) :\n\t\t\t\tthis.wiki.setText(this.setTitle,\"text\",undefined,this.setTo));\n\t} else {\n\t\tthis.wiki.setTextReference(this.set,this.setTo,this.getVariable(\"currentTiddler\"));\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nButtonWidget.prototype.execute = function() {\n\t// Get attributes\n\tthis.actions = this.getAttribute(\"actions\");\n\tthis.to = this.getAttribute(\"to\");\n\tthis.message = this.getAttribute(\"message\");\n\tthis.param = this.getAttribute(\"param\");\n\tthis.set = this.getAttribute(\"set\");\n\tthis.setTo = this.getAttribute(\"setTo\");\n\tthis.popup = this.getAttribute(\"popup\");\n\tthis.hover = this.getAttribute(\"hover\");\n\tthis[\"class\"] = this.getAttribute(\"class\",\"\");\n\tthis[\"aria-label\"] = this.getAttribute(\"aria-label\");\n\tthis.tooltip = this.getAttribute(\"tooltip\");\n\tthis.style = this.getAttribute(\"style\");\n\tthis.selectedClass = this.getAttribute(\"selectedClass\");\n\tthis.defaultSetValue = this.getAttribute(\"default\",\"\");\n\tthis.buttonTag = this.getAttribute(\"tag\");\n\tthis.dragTiddler = this.getAttribute(\"dragTiddler\");\n\tthis.dragFilter = this.getAttribute(\"dragFilter\");\n\tthis.setTitle = this.getAttribute(\"setTitle\");\n\tthis.setField = this.getAttribute(\"setField\");\n\tthis.setIndex = this.getAttribute(\"setIndex\");\n\tthis.popupTitle = this.getAttribute(\"popupTitle\");\n\tthis.tabIndex = this.getAttribute(\"tabindex\");\n\t// Make child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nButtonWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.actions || changedAttributes.to || changedAttributes.message || changedAttributes.param || changedAttributes.set || changedAttributes.setTo || changedAttributes.popup || changedAttributes.hover || changedAttributes[\"class\"] || changedAttributes.selectedClass || changedAttributes.style || changedAttributes.dragFilter || changedAttributes.dragTiddler || (this.set && changedTiddlers[this.set]) || (this.popup && changedTiddlers[this.popup]) || (this.popupTitle && changedTiddlers[this.popupTitle]) || changedAttributes.setTitle || changedAttributes.setField || changedAttributes.setIndex || changedAttributes.popupTitle) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.button = ButtonWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/checkbox.js": {
"title": "$:/core/modules/widgets/checkbox.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/checkbox.js\ntype: application/javascript\nmodule-type: widget\n\nCheckbox widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar CheckboxWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nCheckboxWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nCheckboxWidget.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Create our elements\n\tthis.labelDomNode = this.document.createElement(\"label\");\n\tthis.labelDomNode.setAttribute(\"class\",this.checkboxClass);\n\tthis.inputDomNode = this.document.createElement(\"input\");\n\tthis.inputDomNode.setAttribute(\"type\",\"checkbox\");\n\tif(this.getValue()) {\n\t\tthis.inputDomNode.setAttribute(\"checked\",\"true\");\n\t}\n\tthis.labelDomNode.appendChild(this.inputDomNode);\n\tthis.spanDomNode = this.document.createElement(\"span\");\n\tthis.labelDomNode.appendChild(this.spanDomNode);\n\t// Add a click event handler\n\t$tw.utils.addEventListeners(this.inputDomNode,[\n\t\t{name: \"change\", handlerObject: this, handlerMethod: \"handleChangeEvent\"}\n\t]);\n\t// Insert the label into the DOM and render any children\n\tparent.insertBefore(this.labelDomNode,nextSibling);\n\tthis.renderChildren(this.spanDomNode,null);\n\tthis.domNodes.push(this.labelDomNode);\n};\n\nCheckboxWidget.prototype.getValue = function() {\n\tvar tiddler = this.wiki.getTiddler(this.checkboxTitle);\n\tif(tiddler) {\n\t\tif(this.checkboxTag) {\n\t\t\tif(this.checkboxInvertTag) {\n\t\t\t\treturn !tiddler.hasTag(this.checkboxTag);\n\t\t\t} else {\n\t\t\t\treturn tiddler.hasTag(this.checkboxTag);\n\t\t\t}\n\t\t}\n\t\tif(this.checkboxField) {\n\t\t\tvar value;\n\t\t\tif($tw.utils.hop(tiddler.fields,this.checkboxField)) {\n\t\t\t\tvalue = tiddler.fields[this.checkboxField] || \"\";\n\t\t\t} else {\n\t\t\t\tvalue = this.checkboxDefault || \"\";\n\t\t\t}\n\t\t\tif(value === this.checkboxChecked) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tif(value === this.checkboxUnchecked) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\tif(this.checkboxIndex) {\n\t\t\tvar value = this.wiki.extractTiddlerDataItem(tiddler,this.checkboxIndex,this.checkboxDefault || \"\");\n\t\t\tif(value === this.checkboxChecked) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tif(value === this.checkboxUnchecked) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif(this.checkboxTag) {\n\t\t\treturn false;\n\t\t}\n\t\tif(this.checkboxField) {\n\t\t\tif(this.checkboxDefault === this.checkboxChecked) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tif(this.checkboxDefault === this.checkboxUnchecked) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n};\n\nCheckboxWidget.prototype.handleChangeEvent = function(event) {\n\tvar checked = this.inputDomNode.checked,\n\t\ttiddler = this.wiki.getTiddler(this.checkboxTitle),\n\t\tfallbackFields = {text: \"\"},\n\t\tnewFields = {title: this.checkboxTitle},\n\t\thasChanged = false,\n\t\ttagCheck = false,\n\t\thasTag = tiddler && tiddler.hasTag(this.checkboxTag),\n\t\tvalue = checked ? this.checkboxChecked : this.checkboxUnchecked;\n\tif(this.checkboxTag && this.checkboxInvertTag === \"yes\") {\n\t\ttagCheck = hasTag === checked;\n\t} else {\n\t\ttagCheck = hasTag !== checked;\n\t}\n\t// Set the tag if specified\n\tif(this.checkboxTag && (!tiddler || tagCheck)) {\n\t\tnewFields.tags = tiddler ? (tiddler.fields.tags || []).slice(0) : [];\n\t\tvar pos = newFields.tags.indexOf(this.checkboxTag);\n\t\tif(pos !== -1) {\n\t\t\tnewFields.tags.splice(pos,1);\n\t\t}\n\t\tif(this.checkboxInvertTag === \"yes\" && !checked) {\n\t\t\tnewFields.tags.push(this.checkboxTag);\n\t\t} else if(this.checkboxInvertTag !== \"yes\" && checked) {\n\t\t\tnewFields.tags.push(this.checkboxTag);\n\t\t}\n\t\thasChanged = true;\n\t}\n\t// Set the field if specified\n\tif(this.checkboxField) {\n\t\tif(!tiddler || tiddler.fields[this.checkboxField] !== value) {\n\t\t\tnewFields[this.checkboxField] = value;\n\t\t\thasChanged = true;\n\t\t}\n\t}\n\t// Set the index if specified\n\tif(this.checkboxIndex) {\n\t\tvar indexValue = this.wiki.extractTiddlerDataItem(this.checkboxTitle,this.checkboxIndex);\n\t\tif(!tiddler || indexValue !== value) {\n\t\t\thasChanged = true;\n\t\t}\n\t}\n\tif(hasChanged) {\n\t\tif(this.checkboxIndex) {\n\t\t\tthis.wiki.setText(this.checkboxTitle,\"\",this.checkboxIndex,value);\n\t\t} else {\n\t\t\tthis.wiki.addTiddler(new $tw.Tiddler(this.wiki.getCreationFields(),fallbackFields,tiddler,newFields,this.wiki.getModificationFields()));\n\t\t}\n\t}\n\t// Trigger actions\n\tif(this.checkboxActions) {\n\t\tthis.invokeActionString(this.checkboxActions,this,event);\n\t}\n\tif(this.checkboxCheckActions && checked) {\n\t\tthis.invokeActionString(this.checkboxCheckActions,this,event);\n\t}\n\tif(this.checkboxUncheckActions && !checked) {\n\t\tthis.invokeActionString(this.checkboxUncheckActions,this,event);\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nCheckboxWidget.prototype.execute = function() {\n\t// Get the parameters from the attributes\n\tthis.checkboxActions = this.getAttribute(\"actions\");\n\tthis.checkboxCheckActions = this.getAttribute(\"checkactions\");\n\tthis.checkboxUncheckActions = this.getAttribute(\"uncheckactions\");\n\tthis.checkboxTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.checkboxTag = this.getAttribute(\"tag\");\n\tthis.checkboxField = this.getAttribute(\"field\");\n\tthis.checkboxIndex = this.getAttribute(\"index\");\n\tthis.checkboxChecked = this.getAttribute(\"checked\");\n\tthis.checkboxUnchecked = this.getAttribute(\"unchecked\");\n\tthis.checkboxDefault = this.getAttribute(\"default\");\n\tthis.checkboxClass = this.getAttribute(\"class\",\"\");\n\tthis.checkboxInvertTag = this.getAttribute(\"invertTag\",\"\");\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nCheckboxWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.tag || changedAttributes.invertTag || changedAttributes.field || changedAttributes.index || changedAttributes.checked || changedAttributes.unchecked || changedAttributes[\"default\"] || changedAttributes[\"class\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\tvar refreshed = false;\n\t\tif(changedTiddlers[this.checkboxTitle]) {\n\t\t\tthis.inputDomNode.checked = this.getValue();\n\t\t\trefreshed = true;\n\t\t}\n\t\treturn this.refreshChildren(changedTiddlers) || refreshed;\n\t}\n};\n\nexports.checkbox = CheckboxWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/codeblock.js": {
"title": "$:/core/modules/widgets/codeblock.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/codeblock.js\ntype: application/javascript\nmodule-type: widget\n\nCode block node widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar CodeBlockWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nCodeBlockWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nCodeBlockWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar codeNode = this.document.createElement(\"code\"),\n\t\tdomNode = this.document.createElement(\"pre\");\n\tcodeNode.appendChild(this.document.createTextNode(this.getAttribute(\"code\")));\n\tdomNode.appendChild(codeNode);\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.domNodes.push(domNode);\n\tif(this.postRender) {\n\t\tthis.postRender();\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nCodeBlockWidget.prototype.execute = function() {\n\tthis.language = this.getAttribute(\"language\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nCodeBlockWidget.prototype.refresh = function(changedTiddlers) {\n\treturn false;\n};\n\nexports.codeblock = CodeBlockWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/count.js": {
"title": "$:/core/modules/widgets/count.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/count.js\ntype: application/javascript\nmodule-type: widget\n\nCount widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar CountWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nCountWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nCountWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar textNode = this.document.createTextNode(this.currentCount);\n\tparent.insertBefore(textNode,nextSibling);\n\tthis.domNodes.push(textNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nCountWidget.prototype.execute = function() {\n\t// Get parameters from our attributes\n\tthis.filter = this.getAttribute(\"filter\");\n\t// Execute the filter\n\tif(this.filter) {\n\t\tthis.currentCount = this.wiki.filterTiddlers(this.filter,this).length;\n\t} else {\n\t\tthis.currentCount = \"0\";\n\t}\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nCountWidget.prototype.refresh = function(changedTiddlers) {\n\t// Re-execute the filter to get the count\n\tthis.computeAttributes();\n\tvar oldCount = this.currentCount;\n\tthis.execute();\n\tif(this.currentCount !== oldCount) {\n\t\t// Regenerate and rerender the widget and replace the existing DOM node\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\n\t}\n\n};\n\nexports.count = CountWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/diff-text.js": {
"title": "$:/core/modules/widgets/diff-text.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/diff-text.js\ntype: application/javascript\nmodule-type: widget\n\nWidget to display a diff between two texts\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget,\n\tdmp = require(\"$:/core/modules/utils/diff-match-patch/diff_match_patch.js\");\n\nvar DiffTextWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDiffTextWidget.prototype = new Widget();\n\nDiffTextWidget.prototype.invisibleCharacters = {\n\t\"\\n\": \"↩︎\\n\",\n\t\"\\r\": \"⇠\",\n\t\"\\t\": \"⇥\\t\"\n};\n\n/*\nRender this widget into the DOM\n*/\nDiffTextWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create the diff\n\tvar dmpObject = new dmp.diff_match_patch(),\n\t\tdiffs = dmpObject.diff_main(this.getAttribute(\"source\"),this.getAttribute(\"dest\"));\n\t// Apply required cleanup\n\tswitch(this.getAttribute(\"cleanup\",\"semantic\")) {\n\t\tcase \"none\":\n\t\t\t// No cleanup\n\t\t\tbreak;\n\t\tcase \"efficiency\":\n\t\t\tdmpObject.diff_cleanupEfficiency(diffs);\n\t\t\tbreak;\n\t\tdefault: // case \"semantic\"\n\t\t\tdmpObject.diff_cleanupSemantic(diffs);\n\t\t\tbreak;\n\t}\n\t// Create the elements\n\tvar domContainer = this.document.createElement(\"div\"), \n\t\tdomDiff = this.createDiffDom(diffs);\n\tparent.insertBefore(domContainer,nextSibling);\n\t// Set variables\n\tthis.setVariable(\"diff-count\",diffs.reduce(function(acc,diff) {\n\t\tif(diff[0] !== dmp.DIFF_EQUAL) {\n\t\t\tacc++;\n\t\t}\n\t\treturn acc;\n\t},0).toString());\n\t// Render child widgets\n\tthis.renderChildren(domContainer,null);\n\t// Render the diff\n\tdomContainer.appendChild(domDiff);\n\t// Save our container\n\tthis.domNodes.push(domContainer);\n};\n\n/*\nCreate DOM elements representing a list of diffs\n*/\nDiffTextWidget.prototype.createDiffDom = function(diffs) {\n\tvar self = this;\n\t// Create the element and assign the attributes\n\tvar domPre = this.document.createElement(\"pre\"),\n\t\tdomCode = this.document.createElement(\"code\");\n\t$tw.utils.each(diffs,function(diff) {\n\t\tvar tag = diff[0] === dmp.DIFF_INSERT ? \"ins\" : (diff[0] === dmp.DIFF_DELETE ? \"del\" : \"span\"),\n\t\t\tclassName = diff[0] === dmp.DIFF_INSERT ? \"tc-diff-insert\" : (diff[0] === dmp.DIFF_DELETE ? \"tc-diff-delete\" : \"tc-diff-equal\"),\n\t\t\tdom = self.document.createElement(tag),\n\t\t\ttext = diff[1],\n\t\t\tcurrPos = 0,\n\t\t\tre = /([\\x00-\\x1F])/mg,\n\t\t\tmatch = re.exec(text),\n\t\t\tspan,\n\t\t\tprintable;\n\t\tdom.className = className;\n\t\twhile(match) {\n\t\t\tif(currPos < match.index) {\n\t\t\t\tdom.appendChild(self.document.createTextNode(text.slice(currPos,match.index)));\n\t\t\t}\n\t\t\tspan = self.document.createElement(\"span\");\n\t\t\tspan.className = \"tc-diff-invisible\";\n\t\t\tprintable = self.invisibleCharacters[match[0]] || (\"[0x\" + match[0].charCodeAt(0).toString(16) + \"]\");\n\t\t\tspan.appendChild(self.document.createTextNode(printable));\n\t\t\tdom.appendChild(span);\n\t\t\tcurrPos = match.index + match[0].length;\n\t\t\tmatch = re.exec(text);\n\t\t}\n\t\tif(currPos < text.length) {\n\t\t\tdom.appendChild(self.document.createTextNode(text.slice(currPos)));\n\t\t}\n\t\tdomCode.appendChild(dom);\n\t});\n\tdomPre.appendChild(domCode);\n\treturn domPre;\n};\n\n/*\nCompute the internal state of the widget\n*/\nDiffTextWidget.prototype.execute = function() {\n\t// Make child widgets\n\tvar parseTreeNodes;\n\tif(this.parseTreeNode && this.parseTreeNode.children && this.parseTreeNode.children.length > 0) {\n\t\tparseTreeNodes = this.parseTreeNode.children;\n\t} else {\n\t\tparseTreeNodes = [{\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: \"$:/language/Diffs/CountMessage\"}\n\t\t\t}\n\t\t}];\n\t}\n\tthis.makeChildWidgets(parseTreeNodes);\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nDiffTextWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.source || changedAttributes.dest || changedAttributes.cleanup) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports[\"diff-text\"] = DiffTextWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/draggable.js": {
"title": "$:/core/modules/widgets/draggable.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/draggable.js\ntype: application/javascript\nmodule-type: widget\n\nDraggable widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar DraggableWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDraggableWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nDraggableWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Sanitise the specified tag\n\tvar tag = this.draggableTag;\n\tif($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) {\n\t\ttag = \"div\";\n\t}\n\t// Create our element\n\tvar domNode = this.document.createElement(tag);\n\t// Assign classes\n\tvar classes = [\"tc-draggable\"];\n\tif(this.draggableClasses) {\n\t\tclasses.push(this.draggableClasses);\n\t}\n\tdomNode.setAttribute(\"class\",classes.join(\" \"));\n\t// Add event handlers\n\t$tw.utils.makeDraggable({\n\t\tdomNode: domNode,\n\t\tdragTiddlerFn: function() {return self.getAttribute(\"tiddler\");},\n\t\tdragFilterFn: function() {return self.getAttribute(\"filter\");},\n\t\tstartActions: self.startActions,\n\t\tendActions: self.endActions,\n\t\twidget: this\n\t});\n\t// Insert the link into the DOM and render any children\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nDraggableWidget.prototype.execute = function() {\n\t// Pick up our attributes\n\tthis.draggableTag = this.getAttribute(\"tag\",\"div\");\n\tthis.draggableClasses = this.getAttribute(\"class\");\n\tthis.startActions = this.getAttribute(\"startactions\");\n\tthis.endActions = this.getAttribute(\"endactions\");\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nDraggableWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tag || changedAttributes[\"class\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.draggable = DraggableWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/droppable.js": {
"title": "$:/core/modules/widgets/droppable.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/droppable.js\ntype: application/javascript\nmodule-type: widget\n\nDroppable widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar DroppableWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDroppableWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nDroppableWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar tag = this.parseTreeNode.isBlock ? \"div\" : \"span\";\n\tif(this.droppableTag && $tw.config.htmlUnsafeElements.indexOf(this.droppableTag) === -1) {\n\t\ttag = this.droppableTag;\n\t}\n\t// Create element and assign classes\n\tvar domNode = this.document.createElement(tag),\n\t\tclasses = (this[\"class\"] || \"\").split(\" \");\n\tclasses.push(\"tc-droppable\");\n\tdomNode.className = classes.join(\" \");\n\t// Add event handlers\n\tif(this.droppableEnable) {\n\t\t$tw.utils.addEventListeners(domNode,[\n\t\t\t{name: \"dragenter\", handlerObject: this, handlerMethod: \"handleDragEnterEvent\"},\n\t\t\t{name: \"dragover\", handlerObject: this, handlerMethod: \"handleDragOverEvent\"},\n\t\t\t{name: \"dragleave\", handlerObject: this, handlerMethod: \"handleDragLeaveEvent\"},\n\t\t\t{name: \"drop\", handlerObject: this, handlerMethod: \"handleDropEvent\"}\n\t\t]);\t\t\n\t}\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n\t// Stack of outstanding enter/leave events\n\tthis.currentlyEntered = [];\n};\n\nDroppableWidget.prototype.enterDrag = function(event) {\n\tif(this.currentlyEntered.indexOf(event.target) === -1) {\n\t\tthis.currentlyEntered.push(event.target);\n\t}\n\t// If we're entering for the first time we need to apply highlighting\n\t$tw.utils.addClass(this.domNodes[0],\"tc-dragover\");\n};\n\nDroppableWidget.prototype.leaveDrag = function(event) {\n\tvar pos = this.currentlyEntered.indexOf(event.target);\n\tif(pos !== -1) {\n\t\tthis.currentlyEntered.splice(pos,1);\n\t}\n\t// Remove highlighting if we're leaving externally. The hacky second condition is to resolve a problem with Firefox whereby there is an erroneous dragenter event if the node being dragged is within the dropzone\n\tif(this.currentlyEntered.length === 0 || (this.currentlyEntered.length === 1 && this.currentlyEntered[0] === $tw.dragInProgress)) {\n\t\tthis.currentlyEntered = [];\n\t\t$tw.utils.removeClass(this.domNodes[0],\"tc-dragover\");\n\t}\n};\n\nDroppableWidget.prototype.handleDragEnterEvent = function(event) {\n\tthis.enterDrag(event);\n\t// Tell the browser that we're ready to handle the drop\n\tevent.preventDefault();\n\t// Tell the browser not to ripple the drag up to any parent drop handlers\n\tevent.stopPropagation();\n\treturn false;\n};\n\nDroppableWidget.prototype.handleDragOverEvent = function(event) {\n\t// Check for being over a TEXTAREA or INPUT\n\tif([\"TEXTAREA\",\"INPUT\"].indexOf(event.target.tagName) !== -1) {\n\t\treturn false;\n\t}\n\t// Tell the browser that we're still interested in the drop\n\tevent.preventDefault();\n\t// Set the drop effect\n\tevent.dataTransfer.dropEffect = this.droppableEffect;\n\treturn false;\n};\n\nDroppableWidget.prototype.handleDragLeaveEvent = function(event) {\n\tthis.leaveDrag(event);\n\treturn false;\n};\n\nDroppableWidget.prototype.handleDropEvent = function(event) {\n\tvar self = this;\n\tthis.leaveDrag(event);\n\t// Check for being over a TEXTAREA or INPUT\n\tif([\"TEXTAREA\",\"INPUT\"].indexOf(event.target.tagName) !== -1) {\n\t\treturn false;\n\t}\n\tvar dataTransfer = event.dataTransfer;\n\t// Remove highlighting\n\t$tw.utils.removeClass(this.domNodes[0],\"tc-dragover\");\n\t// Try to import the various data types we understand\n\t$tw.utils.importDataTransfer(dataTransfer,null,function(fieldsArray) {\n\t\tfieldsArray.forEach(function(fields) {\n\t\t\tself.performActions(fields.title || fields.text,event);\n\t\t});\n\t});\n\t// Tell the browser that we handled the drop\n\tevent.preventDefault();\n\t// Stop the drop ripple up to any parent handlers\n\tevent.stopPropagation();\n\treturn false;\n};\n\nDroppableWidget.prototype.performActions = function(title,event) {\n\tif(this.droppableActions) {\n\t\tvar modifierKey = event.ctrlKey && ! event.shiftKey ? \"ctrl\" : event.shiftKey && !event.ctrlKey ? \"shift\" : \n\t\t\t\tevent.ctrlKey && event.shiftKey ? \"ctrl-shift\" : \"normal\" ;\n\t\tthis.invokeActionString(this.droppableActions,this,event,{actionTiddler: title, modifier: modifierKey});\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nDroppableWidget.prototype.execute = function() {\n\tthis.droppableActions = this.getAttribute(\"actions\");\n\tthis.droppableEffect = this.getAttribute(\"effect\",\"copy\");\n\tthis.droppableTag = this.getAttribute(\"tag\");\n\tthis.droppableClass = this.getAttribute(\"class\");\n\tthis.droppableEnable = (this.getAttribute(\"enable\") || \"yes\") === \"yes\";\n\t// Make child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nDroppableWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"class\"] || changedAttributes.tag || changedAttributes.enable) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.droppable = DroppableWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/dropzone.js": {
"title": "$:/core/modules/widgets/dropzone.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/dropzone.js\ntype: application/javascript\nmodule-type: widget\n\nDropzone widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar DropZoneWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDropZoneWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nDropZoneWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create element\n\tvar domNode = this.document.createElement(\"div\");\n\tdomNode.className = this.dropzoneClass || \"tc-dropzone\";\n\t// Add event handlers\n\tif(this.dropzoneEnable) {\n\t\t$tw.utils.addEventListeners(domNode,[\n\t\t\t{name: \"dragenter\", handlerObject: this, handlerMethod: \"handleDragEnterEvent\"},\n\t\t\t{name: \"dragover\", handlerObject: this, handlerMethod: \"handleDragOverEvent\"},\n\t\t\t{name: \"dragleave\", handlerObject: this, handlerMethod: \"handleDragLeaveEvent\"},\n\t\t\t{name: \"drop\", handlerObject: this, handlerMethod: \"handleDropEvent\"},\n\t\t\t{name: \"paste\", handlerObject: this, handlerMethod: \"handlePasteEvent\"},\n\t\t\t{name: \"dragend\", handlerObject: this, handlerMethod: \"handleDragEndEvent\"}\n\t\t]);\t\t\n\t}\n\tdomNode.addEventListener(\"click\",function (event) {\n\t},false);\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n\t// Stack of outstanding enter/leave events\n\tthis.currentlyEntered = [];\n};\n\nDropZoneWidget.prototype.enterDrag = function(event) {\n\tif(this.currentlyEntered.indexOf(event.target) === -1) {\n\t\tthis.currentlyEntered.push(event.target);\n\t}\n\t// If we're entering for the first time we need to apply highlighting\n\t$tw.utils.addClass(this.domNodes[0],\"tc-dragover\");\n};\n\nDropZoneWidget.prototype.leaveDrag = function(event) {\n\tvar pos = this.currentlyEntered.indexOf(event.target);\n\tif(pos !== -1) {\n\t\tthis.currentlyEntered.splice(pos,1);\n\t}\n\t// Remove highlighting if we're leaving externally\n\tif(this.currentlyEntered.length === 0) {\n\t\t$tw.utils.removeClass(this.domNodes[0],\"tc-dragover\");\n\t}\n};\n\nDropZoneWidget.prototype.handleDragEnterEvent = function(event) {\n\t// Check for this window being the source of the drag\n\tif($tw.dragInProgress) {\n\t\treturn false;\n\t}\n\tthis.enterDrag(event);\n\t// Tell the browser that we're ready to handle the drop\n\tevent.preventDefault();\n\t// Tell the browser not to ripple the drag up to any parent drop handlers\n\tevent.stopPropagation();\n};\n\nDropZoneWidget.prototype.handleDragOverEvent = function(event) {\n\t// Check for being over a TEXTAREA or INPUT\n\tif([\"TEXTAREA\",\"INPUT\"].indexOf(event.target.tagName) !== -1) {\n\t\treturn false;\n\t}\n\t// Check for this window being the source of the drag\n\tif($tw.dragInProgress) {\n\t\treturn false;\n\t}\n\t// Tell the browser that we're still interested in the drop\n\tevent.preventDefault();\n\tevent.dataTransfer.dropEffect = \"copy\"; // Explicitly show this is a copy\n};\n\nDropZoneWidget.prototype.handleDragLeaveEvent = function(event) {\n\tthis.leaveDrag(event);\n};\n\nDropZoneWidget.prototype.handleDragEndEvent = function(event) {\n\t$tw.utils.removeClass(this.domNodes[0],\"tc-dragover\");\n};\n\nDropZoneWidget.prototype.handleDropEvent = function(event) {\n\tvar self = this,\n\t\treadFileCallback = function(tiddlerFieldsArray) {\n\t\t\tself.dispatchEvent({type: \"tm-import-tiddlers\", param: JSON.stringify(tiddlerFieldsArray)});\n\t\t};\n\tthis.leaveDrag(event);\n\t// Check for being over a TEXTAREA or INPUT\n\tif([\"TEXTAREA\",\"INPUT\"].indexOf(event.target.tagName) !== -1) {\n\t\treturn false;\n\t}\n\t// Check for this window being the source of the drag\n\tif($tw.dragInProgress) {\n\t\treturn false;\n\t}\n\tvar self = this,\n\t\tdataTransfer = event.dataTransfer;\n\t// Remove highlighting\n\t$tw.utils.removeClass(this.domNodes[0],\"tc-dragover\");\n\t// Import any files in the drop\n\tvar numFiles = 0;\n\tif(dataTransfer.files) {\n\t\tnumFiles = this.wiki.readFiles(dataTransfer.files,{\n\t\t\tcallback: readFileCallback,\n\t\t\tdeserializer: this.dropzoneDeserializer\n\t\t});\n\t}\n\t// Try to import the various data types we understand\n\tif(numFiles === 0) {\n\t\t$tw.utils.importDataTransfer(dataTransfer,this.wiki.generateNewTitle(\"Untitled\"),readFileCallback);\n\t}\n\t// Tell the browser that we handled the drop\n\tevent.preventDefault();\n\t// Stop the drop ripple up to any parent handlers\n\tevent.stopPropagation();\n};\n\nDropZoneWidget.prototype.handlePasteEvent = function(event) {\n\tvar self = this,\n\t\treadFileCallback = function(tiddlerFieldsArray) {\n\t\t\tself.dispatchEvent({type: \"tm-import-tiddlers\", param: JSON.stringify(tiddlerFieldsArray)});\n\t\t};\n\t// Let the browser handle it if we're in a textarea or input box\n\tif([\"TEXTAREA\",\"INPUT\"].indexOf(event.target.tagName) == -1 && !event.target.isContentEditable) {\n\t\tvar self = this,\n\t\t\titems = event.clipboardData.items;\n\t\t// Enumerate the clipboard items\n\t\tfor(var t = 0; t<items.length; t++) {\n\t\t\tvar item = items[t];\n\t\t\tif(item.kind === \"file\") {\n\t\t\t\t// Import any files\n\t\t\t\tthis.wiki.readFile(item.getAsFile(),{\n\t\t\t\t\tcallback: readFileCallback,\n\t\t\t\t\tdeserializer: this.dropzoneDeserializer\n\t\t\t\t});\n\t\t\t} else if(item.kind === \"string\") {\n\t\t\t\t// Create tiddlers from string items\n\t\t\t\tvar type = item.type;\n\t\t\t\titem.getAsString(function(str) {\n\t\t\t\t\tvar tiddlerFields = {\n\t\t\t\t\t\ttitle: self.wiki.generateNewTitle(\"Untitled\"),\n\t\t\t\t\t\ttext: str,\n\t\t\t\t\t\ttype: type\n\t\t\t\t\t};\n\t\t\t\t\tif($tw.log.IMPORT) {\n\t\t\t\t\t\tconsole.log(\"Importing string '\" + str + \"', type: '\" + type + \"'\");\n\t\t\t\t\t}\n\t\t\t\t\tself.dispatchEvent({type: \"tm-import-tiddlers\", param: JSON.stringify([tiddlerFields])});\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\t// Tell the browser that we've handled the paste\n\t\tevent.stopPropagation();\n\t\tevent.preventDefault();\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nDropZoneWidget.prototype.execute = function() {\n\tthis.dropzoneClass = this.getAttribute(\"class\");\n\tthis.dropzoneDeserializer = this.getAttribute(\"deserializer\");\n\tthis.dropzoneEnable = (this.getAttribute(\"enable\") || \"yes\") === \"yes\";\n\t// Make child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nDropZoneWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.enable) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.dropzone = DropZoneWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/edit-binary.js": {
"title": "$:/core/modules/widgets/edit-binary.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/edit-binary.js\ntype: application/javascript\nmodule-type: widget\n\nEdit-binary widget; placeholder for editing binary tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar BINARY_WARNING_MESSAGE = \"$:/core/ui/BinaryWarning\";\nvar EXPORT_BUTTON_IMAGE = \"$:/core/images/export-button\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EditBinaryWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEditBinaryWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEditBinaryWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nEditBinaryWidget.prototype.execute = function() {\n\t// Get our parameters\n\tvar editTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tvar tiddler = this.wiki.getTiddler(editTitle);\n\tvar type = tiddler.fields.type;\n\tvar text = tiddler.fields.text;\n\t// Transclude the binary data tiddler warning message\n\tvar warn = {\n\t\ttype: \"element\",\n\t\ttag: \"p\",\n\t\tchildren: [{\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: BINARY_WARNING_MESSAGE}\n\t\t\t}\n\t\t}]\n\t};\n\t// Create download link based on draft tiddler title\n\tvar link = {\n\t\ttype: \"element\",\n\t\ttag: \"a\",\n\t\tattributes: {\n\t\t\ttitle: {type: \"indirect\", textReference: \"!!draft.title\"},\n\t\t\tdownload: {type: \"indirect\", textReference: \"!!draft.title\"}\n\t\t},\n\t\tchildren: [{\n\t\ttype: \"transclude\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: EXPORT_BUTTON_IMAGE}\n\t\t\t}\n\t\t}]\n\t};\n\t// Set the link href to internal data URI (no external)\n\tif(text) {\n\t\tlink.attributes.href = {\n\t\t\ttype: \"string\", \n\t\t\tvalue: \"data:\" + type + \";base64,\" + text\n\t\t};\n\t}\n\t// Combine warning message and download link in a div\n\tvar element = {\n\t\ttype: \"element\",\n\t\ttag: \"div\",\n\t\tattributes: {\n\t\t\tclass: {type: \"string\", value: \"tc-binary-warning\"}\n\t\t},\n\t\tchildren: [warn, link]\n\t}\n\t// Construct the child widgets\n\tthis.makeChildWidgets([element]);\n};\n\n/*\nRefresh by refreshing our child widget\n*/\nEditBinaryWidget.prototype.refresh = function(changedTiddlers) {\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports[\"edit-binary\"] = EditBinaryWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/edit-bitmap.js": {
"title": "$:/core/modules/widgets/edit-bitmap.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/edit-bitmap.js\ntype: application/javascript\nmodule-type: widget\n\nEdit-bitmap widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Default image sizes\nvar DEFAULT_IMAGE_WIDTH = 600,\n\tDEFAULT_IMAGE_HEIGHT = 370,\n\tDEFAULT_IMAGE_TYPE = \"image/png\";\n\n// Configuration tiddlers\nvar LINE_WIDTH_TITLE = \"$:/config/BitmapEditor/LineWidth\",\n\tLINE_COLOUR_TITLE = \"$:/config/BitmapEditor/Colour\",\n\tLINE_OPACITY_TITLE = \"$:/config/BitmapEditor/Opacity\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EditBitmapWidget = function(parseTreeNode,options) {\n\t// Initialise the editor operations if they've not been done already\n\tif(!this.editorOperations) {\n\t\tEditBitmapWidget.prototype.editorOperations = {};\n\t\t$tw.modules.applyMethods(\"bitmapeditoroperation\",this.editorOperations);\n\t}\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEditBitmapWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEditBitmapWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Create the wrapper for the toolbar and render its content\n\tthis.toolbarNode = this.document.createElement(\"div\");\n\tthis.toolbarNode.className = \"tc-editor-toolbar\";\n\tparent.insertBefore(this.toolbarNode,nextSibling);\n\tthis.domNodes.push(this.toolbarNode);\n\t// Create the on-screen canvas\n\tthis.canvasDomNode = $tw.utils.domMaker(\"canvas\",{\n\t\tdocument: this.document,\n\t\t\"class\":\"tc-edit-bitmapeditor\",\n\t\teventListeners: [{\n\t\t\tname: \"touchstart\", handlerObject: this, handlerMethod: \"handleTouchStartEvent\"\n\t\t},{\n\t\t\tname: \"touchmove\", handlerObject: this, handlerMethod: \"handleTouchMoveEvent\"\n\t\t},{\n\t\t\tname: \"touchend\", handlerObject: this, handlerMethod: \"handleTouchEndEvent\"\n\t\t},{\n\t\t\tname: \"mousedown\", handlerObject: this, handlerMethod: \"handleMouseDownEvent\"\n\t\t},{\n\t\t\tname: \"mousemove\", handlerObject: this, handlerMethod: \"handleMouseMoveEvent\"\n\t\t},{\n\t\t\tname: \"mouseup\", handlerObject: this, handlerMethod: \"handleMouseUpEvent\"\n\t\t}]\n\t});\n\t// Set the width and height variables\n\tthis.setVariable(\"tv-bitmap-editor-width\",this.canvasDomNode.width + \"px\");\n\tthis.setVariable(\"tv-bitmap-editor-height\",this.canvasDomNode.height + \"px\");\n\t// Render toolbar child widgets\n\tthis.renderChildren(this.toolbarNode,null);\n\t// // Insert the elements into the DOM\n\tparent.insertBefore(this.canvasDomNode,nextSibling);\n\tthis.domNodes.push(this.canvasDomNode);\n\t// Load the image into the canvas\n\tif($tw.browser) {\n\t\tthis.loadCanvas();\n\t}\n\t// Add widget message listeners\n\tthis.addEventListeners([\n\t\t{type: \"tm-edit-bitmap-operation\", handler: \"handleEditBitmapOperationMessage\"}\n\t]);\n};\n\n/*\nHandle an edit bitmap operation message from the toolbar\n*/\nEditBitmapWidget.prototype.handleEditBitmapOperationMessage = function(event) {\n\t// Invoke the handler\n\tvar handler = this.editorOperations[event.param];\n\tif(handler) {\n\t\thandler.call(this,event);\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nEditBitmapWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.editTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nJust refresh the toolbar\n*/\nEditBitmapWidget.prototype.refresh = function(changedTiddlers) {\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nSet the bitmap size variables and refresh the toolbar\n*/\nEditBitmapWidget.prototype.refreshToolbar = function() {\n\t// Set the width and height variables\n\tthis.setVariable(\"tv-bitmap-editor-width\",this.canvasDomNode.width + \"px\");\n\tthis.setVariable(\"tv-bitmap-editor-height\",this.canvasDomNode.height + \"px\");\n\t// Refresh each of our child widgets\n\t$tw.utils.each(this.children,function(childWidget) {\n\t\tchildWidget.refreshSelf();\n\t});\n};\n\nEditBitmapWidget.prototype.loadCanvas = function() {\n\tvar tiddler = this.wiki.getTiddler(this.editTitle),\n\t\tcurrImage = new Image();\n\t// Set up event handlers for loading the image\n\tvar self = this;\n\tcurrImage.onload = function() {\n\t\t// Copy the image to the on-screen canvas\n\t\tself.initCanvas(self.canvasDomNode,currImage.width,currImage.height,currImage);\n\t\t// And also copy the current bitmap to the off-screen canvas\n\t\tself.currCanvas = self.document.createElement(\"canvas\");\n\t\tself.initCanvas(self.currCanvas,currImage.width,currImage.height,currImage);\n\t\t// Set the width and height input boxes\n\t\tself.refreshToolbar();\n\t};\n\tcurrImage.onerror = function() {\n\t\t// Set the on-screen canvas size and clear it\n\t\tself.initCanvas(self.canvasDomNode,DEFAULT_IMAGE_WIDTH,DEFAULT_IMAGE_HEIGHT);\n\t\t// Set the off-screen canvas size and clear it\n\t\tself.currCanvas = self.document.createElement(\"canvas\");\n\t\tself.initCanvas(self.currCanvas,DEFAULT_IMAGE_WIDTH,DEFAULT_IMAGE_HEIGHT);\n\t\t// Set the width and height input boxes\n\t\tself.refreshToolbar();\n\t};\n\t// Get the current bitmap into an image object\n\tif(tiddler && tiddler.fields.type && tiddler.fields.text) {\n\t\tcurrImage.src = \"data:\" + tiddler.fields.type + \";base64,\" + tiddler.fields.text;\t\t\n\t} else {\n\t\tcurrImage.width = DEFAULT_IMAGE_WIDTH;\n\t\tcurrImage.height = DEFAULT_IMAGE_HEIGHT;\n\t\tcurrImage.onerror();\n\t}\n};\n\nEditBitmapWidget.prototype.initCanvas = function(canvas,width,height,image) {\n\tcanvas.width = width;\n\tcanvas.height = height;\n\tvar ctx = canvas.getContext(\"2d\");\n\tif(image) {\n\t\tctx.drawImage(image,0,0);\n\t} else {\n\t\tctx.fillStyle = \"#fff\";\n\t\tctx.fillRect(0,0,canvas.width,canvas.height);\n\t}\n};\n\n/*\n** Change the size of the canvas, preserving the current image\n*/\nEditBitmapWidget.prototype.changeCanvasSize = function(newWidth,newHeight) {\n\t// Create and size a new canvas\n\tvar newCanvas = this.document.createElement(\"canvas\");\n\tthis.initCanvas(newCanvas,newWidth,newHeight);\n\t// Copy the old image\n\tvar ctx = newCanvas.getContext(\"2d\");\n\tctx.drawImage(this.currCanvas,0,0);\n\t// Set the new canvas as the current one\n\tthis.currCanvas = newCanvas;\n\t// Set the size of the onscreen canvas\n\tthis.canvasDomNode.width = newWidth;\n\tthis.canvasDomNode.height = newHeight;\n\t// Paint the onscreen canvas with the offscreen canvas\n\tctx = this.canvasDomNode.getContext(\"2d\");\n\tctx.drawImage(this.currCanvas,0,0);\n};\n\n/*\n** Rotate the canvas left by 90 degrees\n*/\nEditBitmapWidget.prototype.rotateCanvasLeft = function() {\n\t// Get the current size of the image\n\tvar origWidth = this.currCanvas.width,\n\t\torigHeight = this.currCanvas.height;\n\t// Create and size a new canvas\n\tvar newCanvas = this.document.createElement(\"canvas\"),\n\t\tnewWidth = origHeight,\n\t\tnewHeight = origWidth;\n\tthis.initCanvas(newCanvas,newWidth,newHeight);\n\t// Copy the old image\n\tvar ctx = newCanvas.getContext(\"2d\");\n\tctx.save();\n\tctx.translate(newWidth / 2,newHeight / 2);\n\tctx.rotate(-Math.PI / 2);\n\tctx.drawImage(this.currCanvas,-origWidth / 2,-origHeight / 2);\n\tctx.restore();\n\t// Set the new canvas as the current one\n\tthis.currCanvas = newCanvas;\n\t// Set the size of the onscreen canvas\n\tthis.canvasDomNode.width = newWidth;\n\tthis.canvasDomNode.height = newHeight;\n\t// Paint the onscreen canvas with the offscreen canvas\n\tctx = this.canvasDomNode.getContext(\"2d\");\n\tctx.drawImage(this.currCanvas,0,0);\n};\n\nEditBitmapWidget.prototype.handleTouchStartEvent = function(event) {\n\tthis.brushDown = true;\n\tthis.strokeStart(event.touches[0].clientX,event.touches[0].clientY);\n\tevent.preventDefault();\n\tevent.stopPropagation();\n\treturn false;\n};\n\nEditBitmapWidget.prototype.handleTouchMoveEvent = function(event) {\n\tif(this.brushDown) {\n\t\tthis.strokeMove(event.touches[0].clientX,event.touches[0].clientY);\n\t}\n\tevent.preventDefault();\n\tevent.stopPropagation();\n\treturn false;\n};\n\nEditBitmapWidget.prototype.handleTouchEndEvent = function(event) {\n\tif(this.brushDown) {\n\t\tthis.brushDown = false;\n\t\tthis.strokeEnd();\n\t}\n\tevent.preventDefault();\n\tevent.stopPropagation();\n\treturn false;\n};\n\nEditBitmapWidget.prototype.handleMouseDownEvent = function(event) {\n\tthis.strokeStart(event.clientX,event.clientY);\n\tthis.brushDown = true;\n\tevent.preventDefault();\n\tevent.stopPropagation();\n\treturn false;\n};\n\nEditBitmapWidget.prototype.handleMouseMoveEvent = function(event) {\n\tif(this.brushDown) {\n\t\tthis.strokeMove(event.clientX,event.clientY);\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t\treturn false;\n\t}\n\treturn true;\n};\n\nEditBitmapWidget.prototype.handleMouseUpEvent = function(event) {\n\tif(this.brushDown) {\n\t\tthis.brushDown = false;\n\t\tthis.strokeEnd();\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t\treturn false;\n\t}\n\treturn true;\n};\n\nEditBitmapWidget.prototype.adjustCoordinates = function(x,y) {\n\tvar canvasRect = this.canvasDomNode.getBoundingClientRect(),\n\t\tscale = this.canvasDomNode.width/canvasRect.width;\n\treturn {x: (x - canvasRect.left) * scale, y: (y - canvasRect.top) * scale};\n};\n\nEditBitmapWidget.prototype.strokeStart = function(x,y) {\n\t// Start off a new stroke\n\tthis.stroke = [this.adjustCoordinates(x,y)];\n};\n\nEditBitmapWidget.prototype.strokeMove = function(x,y) {\n\tvar ctx = this.canvasDomNode.getContext(\"2d\"),\n\t\tt;\n\t// Add the new position to the end of the stroke\n\tthis.stroke.push(this.adjustCoordinates(x,y));\n\t// Redraw the previous image\n\tctx.drawImage(this.currCanvas,0,0);\n\t// Render the stroke\n\tctx.globalAlpha = parseFloat(this.wiki.getTiddlerText(LINE_OPACITY_TITLE,\"1.0\"));\n\tctx.strokeStyle = this.wiki.getTiddlerText(LINE_COLOUR_TITLE,\"#ff0\");\n\tctx.lineWidth = parseFloat(this.wiki.getTiddlerText(LINE_WIDTH_TITLE,\"3\"));\n\tctx.lineCap = \"round\";\n\tctx.lineJoin = \"round\";\n\tctx.beginPath();\n\tctx.moveTo(this.stroke[0].x,this.stroke[0].y);\n\tfor(t=1; t<this.stroke.length-1; t++) {\n\t\tvar s1 = this.stroke[t],\n\t\t\ts2 = this.stroke[t-1],\n\t\t\ttx = (s1.x + s2.x)/2,\n\t\t\tty = (s1.y + s2.y)/2;\n\t\tctx.quadraticCurveTo(s2.x,s2.y,tx,ty);\n\t}\n\tctx.stroke();\n};\n\nEditBitmapWidget.prototype.strokeEnd = function() {\n\t// Copy the bitmap to the off-screen canvas\n\tvar ctx = this.currCanvas.getContext(\"2d\");\n\tctx.drawImage(this.canvasDomNode,0,0);\n\t// Save the image into the tiddler\n\tthis.saveChanges();\n};\n\nEditBitmapWidget.prototype.saveChanges = function() {\n\tvar tiddler = this.wiki.getTiddler(this.editTitle) || new $tw.Tiddler({title: this.editTitle,type: DEFAULT_IMAGE_TYPE});\n\t// data URIs look like \"data:<type>;base64,<text>\"\n\tvar dataURL = this.canvasDomNode.toDataURL(tiddler.fields.type),\n\t\tposColon = dataURL.indexOf(\":\"),\n\t\tposSemiColon = dataURL.indexOf(\";\"),\n\t\tposComma = dataURL.indexOf(\",\"),\n\t\ttype = dataURL.substring(posColon+1,posSemiColon),\n\t\ttext = dataURL.substring(posComma+1);\n\tvar update = {type: type, text: text};\n\tthis.wiki.addTiddler(new $tw.Tiddler(this.wiki.getModificationFields(),tiddler,update,this.wiki.getCreationFields()));\n};\n\nexports[\"edit-bitmap\"] = EditBitmapWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/edit-shortcut.js": {
"title": "$:/core/modules/widgets/edit-shortcut.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/edit-shortcut.js\ntype: application/javascript\nmodule-type: widget\n\nWidget to display an editable keyboard shortcut\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EditShortcutWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEditShortcutWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEditShortcutWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.inputNode = this.document.createElement(\"input\");\n\t// Assign classes\n\tif(this.shortcutClass) {\n\t\tthis.inputNode.className = this.shortcutClass;\t\t\n\t}\n\t// Assign other attributes\n\tif(this.shortcutStyle) {\n\t\tthis.inputNode.setAttribute(\"style\",this.shortcutStyle);\n\t}\n\tif(this.shortcutTooltip) {\n\t\tthis.inputNode.setAttribute(\"title\",this.shortcutTooltip);\n\t}\n\tif(this.shortcutPlaceholder) {\n\t\tthis.inputNode.setAttribute(\"placeholder\",this.shortcutPlaceholder);\n\t}\n\tif(this.shortcutAriaLabel) {\n\t\tthis.inputNode.setAttribute(\"aria-label\",this.shortcutAriaLabel);\n\t}\n\t// Assign the current shortcut\n\tthis.updateInputNode();\n\t// Add event handlers\n\t$tw.utils.addEventListeners(this.inputNode,[\n\t\t{name: \"keydown\", handlerObject: this, handlerMethod: \"handleKeydownEvent\"}\n\t]);\n\t// Link into the DOM\n\tparent.insertBefore(this.inputNode,nextSibling);\n\tthis.domNodes.push(this.inputNode);\n\t// Focus the input Node if focus === \"yes\" or focus === \"true\"\n\tif(this.shortcutFocus === \"yes\" || this.shortcutFocus === \"true\") {\n\t\tthis.focus();\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nEditShortcutWidget.prototype.execute = function() {\n\tthis.shortcutTiddler = this.getAttribute(\"tiddler\");\n\tthis.shortcutField = this.getAttribute(\"field\");\n\tthis.shortcutIndex = this.getAttribute(\"index\");\n\tthis.shortcutPlaceholder = this.getAttribute(\"placeholder\");\n\tthis.shortcutDefault = this.getAttribute(\"default\",\"\");\n\tthis.shortcutClass = this.getAttribute(\"class\");\n\tthis.shortcutStyle = this.getAttribute(\"style\");\n\tthis.shortcutTooltip = this.getAttribute(\"tooltip\");\n\tthis.shortcutAriaLabel = this.getAttribute(\"aria-label\");\n\tthis.shortcutFocus = this.getAttribute(\"focus\");\n};\n\n/*\nUpdate the value of the input node\n*/\nEditShortcutWidget.prototype.updateInputNode = function() {\n\tif(this.shortcutField) {\n\t\tvar tiddler = this.wiki.getTiddler(this.shortcutTiddler);\n\t\tif(tiddler && $tw.utils.hop(tiddler.fields,this.shortcutField)) {\n\t\t\tthis.inputNode.value = tiddler.getFieldString(this.shortcutField);\n\t\t} else {\n\t\t\tthis.inputNode.value = this.shortcutDefault;\n\t\t}\n\t} else if(this.shortcutIndex) {\n\t\tthis.inputNode.value = this.wiki.extractTiddlerDataItem(this.shortcutTiddler,this.shortcutIndex,this.shortcutDefault);\n\t} else {\n\t\tthis.inputNode.value = this.wiki.getTiddlerText(this.shortcutTiddler,this.shortcutDefault);\n\t}\n};\n\n/*\nHandle a dom \"keydown\" event\n*/\nEditShortcutWidget.prototype.handleKeydownEvent = function(event) {\n\t// Ignore shift, ctrl, meta, alt\n\tif(event.keyCode && $tw.keyboardManager.getModifierKeys().indexOf(event.keyCode) === -1) {\n\t\t// Get the shortcut text representation\n\t\tvar value = $tw.keyboardManager.getPrintableShortcuts([{\n\t\t\tctrlKey: event.ctrlKey,\n\t\t\tshiftKey: event.shiftKey,\n\t\t\taltKey: event.altKey,\n\t\t\tmetaKey: event.metaKey,\n\t\t\tkeyCode: event.keyCode\n\t\t}]);\n\t\tif(value.length > 0) {\n\t\t\tthis.wiki.setText(this.shortcutTiddler,this.shortcutField,this.shortcutIndex,value[0]);\n\t\t}\n\t\t// Ignore the keydown if it was already handled\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t\treturn true;\t\t\n\t} else {\n\t\treturn false;\n\t}\n};\n\n/*\nfocus the input node\n*/\nEditShortcutWidget.prototype.focus = function() {\n\tif(this.inputNode.focus && this.inputNode.select) {\n\t\tthis.inputNode.focus();\n\t\tthis.inputNode.select();\n\t}\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget needed re-rendering\n*/\nEditShortcutWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes.placeholder || changedAttributes[\"default\"] || changedAttributes[\"class\"] || changedAttributes.style || changedAttributes.tooltip || changedAttributes[\"aria-label\"] || changedAttributes.focus) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else if(changedTiddlers[this.shortcutTiddler]) {\n\t\tthis.updateInputNode();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\n\t}\n};\n\nexports[\"edit-shortcut\"] = EditShortcutWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/edit-text.js": {
"title": "$:/core/modules/widgets/edit-text.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/edit-text.js\ntype: application/javascript\nmodule-type: widget\n\nEdit-text widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar editTextWidgetFactory = require(\"$:/core/modules/editor/factory.js\").editTextWidgetFactory,\n\tFramedEngine = require(\"$:/core/modules/editor/engines/framed.js\").FramedEngine,\n\tSimpleEngine = require(\"$:/core/modules/editor/engines/simple.js\").SimpleEngine;\n\nexports[\"edit-text\"] = editTextWidgetFactory(FramedEngine,SimpleEngine);\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/edit.js": {
"title": "$:/core/modules/widgets/edit.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/edit.js\ntype: application/javascript\nmodule-type: widget\n\nEdit widget is a meta-widget chooses the appropriate actual editting widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EditWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEditWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEditWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n// Mappings from content type to editor type are stored in tiddlers with this prefix\nvar EDITOR_MAPPING_PREFIX = \"$:/config/EditorTypeMappings/\";\n\n/*\nCompute the internal state of the widget\n*/\nEditWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.editTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.editField = this.getAttribute(\"field\",\"text\");\n\tthis.editIndex = this.getAttribute(\"index\");\n\tthis.editClass = this.getAttribute(\"class\");\n\tthis.editPlaceholder = this.getAttribute(\"placeholder\");\n\tthis.editTabIndex = this.getAttribute(\"tabindex\");\n\tthis.editFocus = this.getAttribute(\"focus\",\"\");\n\t// Choose the appropriate edit widget\n\tthis.editorType = this.getEditorType();\n\t// Make the child widgets\n\tthis.makeChildWidgets([{\n\t\ttype: \"edit-\" + this.editorType,\n\t\tattributes: {\n\t\t\ttiddler: {type: \"string\", value: this.editTitle},\n\t\t\tfield: {type: \"string\", value: this.editField},\n\t\t\tindex: {type: \"string\", value: this.editIndex},\n\t\t\t\"class\": {type: \"string\", value: this.editClass},\n\t\t\t\"placeholder\": {type: \"string\", value: this.editPlaceholder},\n\t\t\t\"tabindex\": {type: \"string\", value: this.editTabIndex},\n\t\t\t\"focus\": {type: \"string\", value: this.editFocus}\n\t\t},\n\t\tchildren: this.parseTreeNode.children\n\t}]);\n};\n\nEditWidget.prototype.getEditorType = function() {\n\t// Get the content type of the thing we're editing\n\tvar type;\n\tif(this.editField === \"text\") {\n\t\tvar tiddler = this.wiki.getTiddler(this.editTitle);\n\t\tif(tiddler) {\n\t\t\ttype = tiddler.fields.type;\n\t\t}\n\t}\n\ttype = type || \"text/vnd.tiddlywiki\";\n\tvar editorType = this.wiki.getTiddlerText(EDITOR_MAPPING_PREFIX + type);\n\tif(!editorType) {\n\t\tvar typeInfo = $tw.config.contentTypeInfo[type];\n\t\tif(typeInfo && typeInfo.encoding === \"base64\") {\n\t\t\teditorType = \"binary\";\n\t\t} else {\n\t\t\teditorType = \"text\";\n\t\t}\n\t}\n\treturn editorType;\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nEditWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\t// Refresh if an attribute has changed, or the type associated with the target tiddler has changed\n\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes.tabindex || (changedTiddlers[this.editTitle] && this.getEditorType() !== this.editorType)) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.edit = EditWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/element.js": {
"title": "$:/core/modules/widgets/element.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/element.js\ntype: application/javascript\nmodule-type: widget\n\nElement widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ElementWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nElementWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nElementWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Neuter blacklisted elements\n\tvar tag = this.parseTreeNode.tag;\n\tif($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) {\n\t\ttag = \"safe-\" + tag;\n\t}\n\t// Adjust headings by the current base level\n\tvar headingLevel = [\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\"].indexOf(tag);\n\tif(headingLevel !== -1) {\n\t\tvar baseLevel = parseInt(this.getVariable(\"tv-adjust-heading-level\",\"0\"),10) || 0;\n\t\theadingLevel = Math.min(Math.max(headingLevel + 1 + baseLevel,1),6);\n\t\ttag = \"h\" + headingLevel;\n\t}\n\t// Create the DOM node\n\tvar domNode = this.document.createElementNS(this.namespace,tag);\n\tthis.assignAttributes(domNode,{excludeEventAttributes: true});\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nElementWidget.prototype.execute = function() {\n\t// Select the namespace for the tag\n\tvar tagNamespaces = {\n\t\t\tsvg: \"http://www.w3.org/2000/svg\",\n\t\t\tmath: \"http://www.w3.org/1998/Math/MathML\",\n\t\t\tbody: \"http://www.w3.org/1999/xhtml\"\n\t\t};\n\tthis.namespace = tagNamespaces[this.parseTreeNode.tag];\n\tif(this.namespace) {\n\t\tthis.setVariable(\"namespace\",this.namespace);\n\t} else {\n\t\tthis.namespace = this.getVariable(\"namespace\",{defaultValue: \"http://www.w3.org/1999/xhtml\"});\n\t}\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nElementWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes(),\n\t\thasChangedAttributes = $tw.utils.count(changedAttributes) > 0;\n\tif(hasChangedAttributes) {\n\t\t// Update our attributes\n\t\tthis.assignAttributes(this.domNodes[0],{excludeEventAttributes: true});\n\t}\n\treturn this.refreshChildren(changedTiddlers) || hasChangedAttributes;\n};\n\nexports.element = ElementWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/encrypt.js": {
"title": "$:/core/modules/widgets/encrypt.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/encrypt.js\ntype: application/javascript\nmodule-type: widget\n\nEncrypt widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EncryptWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEncryptWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEncryptWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar textNode = this.document.createTextNode(this.encryptedText);\n\tparent.insertBefore(textNode,nextSibling);\n\tthis.domNodes.push(textNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nEncryptWidget.prototype.execute = function() {\n\t// Get parameters from our attributes\n\tthis.filter = this.getAttribute(\"filter\",\"[!is[system]]\");\n\t// Encrypt the filtered tiddlers\n\tvar tiddlers = this.wiki.filterTiddlers(this.filter),\n\t\tjson = {},\n\t\tself = this;\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar tiddler = self.wiki.getTiddler(title),\n\t\t\tjsonTiddler = {};\n\t\tfor(var f in tiddler.fields) {\n\t\t\tjsonTiddler[f] = tiddler.getFieldString(f);\n\t\t}\n\t\tjson[title] = jsonTiddler;\n\t});\n\tthis.encryptedText = $tw.utils.htmlEncode($tw.crypto.encrypt(JSON.stringify(json)));\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nEncryptWidget.prototype.refresh = function(changedTiddlers) {\n\t// We don't need to worry about refreshing because the encrypt widget isn't for interactive use\n\treturn false;\n};\n\nexports.encrypt = EncryptWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/entity.js": {
"title": "$:/core/modules/widgets/entity.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/entity.js\ntype: application/javascript\nmodule-type: widget\n\nHTML entity widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EntityWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEntityWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEntityWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.execute();\n\tvar entityString = this.getAttribute(\"entity\",this.parseTreeNode.entity || \"\"),\n\t\ttextNode = this.document.createTextNode($tw.utils.entityDecode(entityString));\n\tparent.insertBefore(textNode,nextSibling);\n\tthis.domNodes.push(textNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nEntityWidget.prototype.execute = function() {\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nEntityWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.entity) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\n\t}\n};\n\nexports.entity = EntityWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/fieldmangler.js": {
"title": "$:/core/modules/widgets/fieldmangler.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/fieldmangler.js\ntype: application/javascript\nmodule-type: widget\n\nField mangler widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar FieldManglerWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n\tthis.addEventListeners([\n\t\t{type: \"tm-remove-field\", handler: \"handleRemoveFieldEvent\"},\n\t\t{type: \"tm-add-field\", handler: \"handleAddFieldEvent\"},\n\t\t{type: \"tm-remove-tag\", handler: \"handleRemoveTagEvent\"},\n\t\t{type: \"tm-add-tag\", handler: \"handleAddTagEvent\"}\n\t]);\n};\n\n/*\nInherit from the base widget class\n*/\nFieldManglerWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nFieldManglerWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nFieldManglerWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.mangleTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nFieldManglerWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\nFieldManglerWidget.prototype.handleRemoveFieldEvent = function(event) {\n\tvar tiddler = this.wiki.getTiddler(this.mangleTitle),\n\t\tdeletion = {};\n\tdeletion[event.param] = undefined;\n\tthis.wiki.addTiddler(new $tw.Tiddler(tiddler,deletion));\n\treturn true;\n};\n\nFieldManglerWidget.prototype.handleAddFieldEvent = function(event) {\n\tvar tiddler = this.wiki.getTiddler(this.mangleTitle),\n\t\taddition = this.wiki.getModificationFields(),\n\t\thadInvalidFieldName = false,\n\t\taddField = function(name,value) {\n\t\t\tvar trimmedName = name.toLowerCase().trim();\n\t\t\tif(!$tw.utils.isValidFieldName(trimmedName)) {\n\t\t\t\tif(!hadInvalidFieldName) {\n\t\t\t\t\talert($tw.language.getString(\n\t\t\t\t\t\t\"InvalidFieldName\",\n\t\t\t\t\t\t{variables:\n\t\t\t\t\t\t\t{fieldName: trimmedName}\n\t\t\t\t\t\t}\n\t\t\t\t\t));\n\t\t\t\t\thadInvalidFieldName = true;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif(!value && tiddler) {\n\t\t\t\t\tvalue = tiddler.fields[trimmedName];\n\t\t\t\t}\n\t\t\t\taddition[trimmedName] = value || \"\";\n\t\t\t}\n\t\t\treturn;\n\t\t};\n\taddition.title = this.mangleTitle;\n\tif(typeof event.param === \"string\") {\n\t\taddField(event.param,\"\");\n\t}\n\tif(typeof event.paramObject === \"object\") {\n\t\tfor(var name in event.paramObject) {\n\t\t\taddField(name,event.paramObject[name]);\n\t\t}\n\t}\n\tthis.wiki.addTiddler(new $tw.Tiddler(tiddler,addition));\n\treturn true;\n};\n\nFieldManglerWidget.prototype.handleRemoveTagEvent = function(event) {\n\tvar tiddler = this.wiki.getTiddler(this.mangleTitle),\n\t\tmodification = this.wiki.getModificationFields();\n\tif(tiddler && tiddler.fields.tags) {\n\t\tvar p = tiddler.fields.tags.indexOf(event.param);\n\t\tif(p !== -1) {\n\t\t\tmodification.tags = (tiddler.fields.tags || []).slice(0);\n\t\t\tmodification.tags.splice(p,1);\n\t\t\tif(modification.tags.length === 0) {\n\t\t\t\tmodification.tags = undefined;\n\t\t\t}\n\t\t\tthis.wiki.addTiddler(new $tw.Tiddler(tiddler,modification));\n\t\t}\n\t}\n\treturn true;\n};\n\nFieldManglerWidget.prototype.handleAddTagEvent = function(event) {\n\tvar tiddler = this.wiki.getTiddler(this.mangleTitle),\n\t\tmodification = this.wiki.getModificationFields();\n\tif(tiddler && typeof event.param === \"string\") {\n\t\tvar tag = event.param.trim();\n\t\tif(tag !== \"\") {\n\t\t\tmodification.tags = (tiddler.fields.tags || []).slice(0);\n\t\t\t$tw.utils.pushTop(modification.tags,tag);\n\t\t\tthis.wiki.addTiddler(new $tw.Tiddler(tiddler,modification));\t\t\t\n\t\t}\n\t} else if(typeof event.param === \"string\" && event.param.trim() !== \"\" && this.mangleTitle.trim() !== \"\") {\n\t\tvar tag = [];\n\t\ttag.push(event.param.trim());\n\t\tthis.wiki.addTiddler(new $tw.Tiddler({title: this.mangleTitle, tags: tag},modification));\n\t}\n\treturn true;\n};\n\nexports.fieldmangler = FieldManglerWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/fields.js": {
"title": "$:/core/modules/widgets/fields.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/fields.js\ntype: application/javascript\nmodule-type: widget\n\nFields widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar FieldsWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nFieldsWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nFieldsWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar textNode = this.document.createTextNode(this.text);\n\tparent.insertBefore(textNode,nextSibling);\n\tthis.domNodes.push(textNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nFieldsWidget.prototype.execute = function() {\n\t// Get parameters from our attributes\n\tthis.tiddlerTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.template = this.getAttribute(\"template\");\n\tthis.sort = this.getAttribute(\"sort\",\"yes\") === \"yes\";\n\tthis.sortReverse = this.getAttribute(\"sortReverse\",\"no\") === \"yes\";\n\tthis.exclude = this.getAttribute(\"exclude\");\n\tthis.include = this.getAttribute(\"include\",null);\n\tthis.stripTitlePrefix = this.getAttribute(\"stripTitlePrefix\",\"no\") === \"yes\";\n\t// Get the value to display\n\tvar tiddler = this.wiki.getTiddler(this.tiddlerTitle);\n\n\t// Get the inclusion and exclusion list\n\tvar excludeArr = (this.exclude) ? this.exclude.split(\" \") : [\"text\"];\n\t// Include takes precedence\n\tvar includeArr = (this.include) ? this.include.split(\" \") : null;\n\n\t// Compose the template\n\tvar text = [];\n\tif(this.template && tiddler) {\n\t\tvar fields = [];\n\t\tif (includeArr) { // Include takes precedence\n\t\t\tfor(var i=0; i<includeArr.length; i++) {\n\t\t\t\tif(tiddler.fields[includeArr[i]]) {\n\t\t\t\t\tfields.push(includeArr[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor(var fieldName in tiddler.fields) {\n\t\t\t\tif(excludeArr.indexOf(fieldName) === -1) {\n\t\t\t\t\tfields.push(fieldName);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (this.sort) fields.sort();\n\t\tif (this.sortReverse) fields.reverse();\n\t\tfor(var f=0, fmax=fields.length; f<fmax; f++) {\n\t\t\tfieldName = fields[f];\n\t\t\tvar row = this.template,\n\t\t\t\tvalue = tiddler.getFieldString(fieldName);\n\t\t\tif(this.stripTitlePrefix && fieldName === \"title\") {\n\t\t\t\tvar reStrip = /^\\{[^\\}]+\\}(.+)/mg,\n\t\t\t\t\treMatch = reStrip.exec(value);\n\t\t\t\tif(reMatch) {\n\t\t\t\t\tvalue = reMatch[1];\n\t\t\t\t}\n\t\t\t}\n\t\t\trow = $tw.utils.replaceString(row,\"$name$\",fieldName);\n\t\t\trow = $tw.utils.replaceString(row,\"$value$\",value);\n\t\t\trow = $tw.utils.replaceString(row,\"$encoded_value$\",$tw.utils.htmlEncode(value));\n\t\t\ttext.push(row);\n\t\t}\n\t}\n\tthis.text = text.join(\"\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nFieldsWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif( changedAttributes.tiddler || changedAttributes.template || changedAttributes.exclude ||\n\t\tchangedAttributes.include || changedAttributes.sort || changedAttributes.sortReverse ||\n\t\tchangedTiddlers[this.tiddlerTitle] || changedAttributes.stripTitlePrefix) {\n\t\t\tthis.refreshSelf();\n\t\t\treturn true;\n\t} else {\n\t\treturn false;\n\t}\n};\n\nexports.fields = FieldsWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/image.js": {
"title": "$:/core/modules/widgets/image.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/image.js\ntype: application/javascript\nmodule-type: widget\n\nThe image widget displays an image referenced with an external URI or with a local tiddler title.\n\n```\n<$image src=\"TiddlerTitle\" width=\"320\" height=\"400\" class=\"classnames\">\n```\n\nThe image source can be the title of an existing tiddler or the URL of an external image.\n\nExternal images always generate an HTML `<img>` tag.\n\nTiddlers that have a _canonical_uri field generate an HTML `<img>` tag with the src attribute containing the URI.\n\nTiddlers that contain image data generate an HTML `<img>` tag with the src attribute containing a base64 representation of the image.\n\nTiddlers that contain wikitext could be rendered to a DIV of the usual size of a tiddler, and then transformed to the size requested.\n\nThe width and height attributes are interpreted as a number of pixels, and do not need to include the \"px\" suffix.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ImageWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nImageWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nImageWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create element\n\t// Determine what type of image it is\n\tvar tag = \"img\", src = \"\",\n\t\ttiddler = this.wiki.getTiddler(this.imageSource);\n\tif(!tiddler) {\n\t\t// The source isn't the title of a tiddler, so we'll assume it's a URL\n\t\tsrc = this.getVariable(\"tv-get-export-image-link\",{params: [{name: \"src\",value: this.imageSource}],defaultValue: this.imageSource});\n\t} else {\n\t\t// Check if it is an image tiddler\n\t\tif(this.wiki.isImageTiddler(this.imageSource)) {\n\t\t\tvar type = tiddler.fields.type,\n\t\t\t\ttext = tiddler.fields.text,\n\t\t\t\t_canonical_uri = tiddler.fields._canonical_uri;\n\t\t\t// If the tiddler has body text then it doesn't need to be lazily loaded\n\t\t\tif(text) {\n\t\t\t\t// Render the appropriate element for the image type\n\t\t\t\tswitch(type) {\n\t\t\t\t\tcase \"application/pdf\":\n\t\t\t\t\t\ttag = \"embed\";\n\t\t\t\t\t\tsrc = \"data:application/pdf;base64,\" + text;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"image/svg+xml\":\n\t\t\t\t\t\tsrc = \"data:image/svg+xml,\" + encodeURIComponent(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tsrc = \"data:\" + type + \";base64,\" + text;\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else if(_canonical_uri) {\n\t\t\t\tswitch(type) {\n\t\t\t\t\tcase \"application/pdf\":\n\t\t\t\t\t\ttag = \"embed\";\n\t\t\t\t\t\tsrc = _canonical_uri;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"image/svg+xml\":\n\t\t\t\t\t\tsrc = _canonical_uri;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tsrc = _canonical_uri;\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\t\n\t\t\t} else {\n\t\t\t\t// Just trigger loading of the tiddler\n\t\t\t\tthis.wiki.getTiddlerText(this.imageSource);\n\t\t\t}\n\t\t}\n\t}\n\t// Create the element and assign the attributes\n\tvar domNode = this.document.createElement(tag);\n\tdomNode.setAttribute(\"src\",src);\n\tif(this.imageClass) {\n\t\tdomNode.setAttribute(\"class\",this.imageClass);\t\t\n\t}\n\tif(this.imageWidth) {\n\t\tdomNode.setAttribute(\"width\",this.imageWidth);\n\t}\n\tif(this.imageHeight) {\n\t\tdomNode.setAttribute(\"height\",this.imageHeight);\n\t}\n\tif(this.imageTooltip) {\n\t\tdomNode.setAttribute(\"title\",this.imageTooltip);\t\t\n\t}\n\tif(this.imageAlt) {\n\t\tdomNode.setAttribute(\"alt\",this.imageAlt);\t\t\n\t}\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nImageWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.imageSource = this.getAttribute(\"source\");\n\tthis.imageWidth = this.getAttribute(\"width\");\n\tthis.imageHeight = this.getAttribute(\"height\");\n\tthis.imageClass = this.getAttribute(\"class\");\n\tthis.imageTooltip = this.getAttribute(\"tooltip\");\n\tthis.imageAlt = this.getAttribute(\"alt\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nImageWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.source || changedAttributes.width || changedAttributes.height || changedAttributes[\"class\"] || changedAttributes.tooltip || changedTiddlers[this.imageSource]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\t\n\t}\n};\n\nexports.image = ImageWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/importvariables.js": {
"title": "$:/core/modules/widgets/importvariables.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/importvariables.js\ntype: application/javascript\nmodule-type: widget\n\nImport variable definitions from other tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ImportVariablesWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nImportVariablesWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nImportVariablesWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nImportVariablesWidget.prototype.execute = function(tiddlerList) {\n\tvar widgetPointer = this;\n\t// Get our parameters\n\tthis.filter = this.getAttribute(\"filter\");\n\t// Compute the filter\n\tthis.tiddlerList = tiddlerList || this.wiki.filterTiddlers(this.filter,this);\n\t// Accumulate the <$set> widgets from each tiddler\n\t$tw.utils.each(this.tiddlerList,function(title) {\n\t\tvar parser = widgetPointer.wiki.parseTiddler(title);\n\t\tif(parser) {\n\t\t\tvar parseTreeNode = parser.tree[0];\n\t\t\twhile(parseTreeNode && parseTreeNode.type === \"set\") {\n\t\t\t\tvar node = {\n\t\t\t\t\ttype: \"set\",\n\t\t\t\t\tattributes: parseTreeNode.attributes,\n\t\t\t\t\tparams: parseTreeNode.params,\n\t\t\t\t\tisMacroDefinition: parseTreeNode.isMacroDefinition\n\t\t\t\t};\n\t\t\t\tif (parseTreeNode.isMacroDefinition) {\n\t\t\t\t\t// Macro definitions can be folded into\n\t\t\t\t\t// current widget instead of adding\n\t\t\t\t\t// another link to the chain.\n\t\t\t\t\tvar widget = widgetPointer.makeChildWidget(node);\n\t\t\t\t\twidget.computeAttributes();\n\t\t\t\t\twidget.execute();\n\t\t\t\t\t// We SHALLOW copy over all variables\n\t\t\t\t\t// in widget. We can't use\n\t\t\t\t\t// $tw.utils.assign, because that copies\n\t\t\t\t\t// up the prototype chain, which we\n\t\t\t\t\t// don't want.\n\t\t\t\t\t$tw.utils.each(Object.keys(widget.variables), function(key) {\n\t\t\t\t\t\twidgetPointer.variables[key] = widget.variables[key];\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\twidgetPointer.makeChildWidgets([node]);\n\t\t\t\t\twidgetPointer = widgetPointer.children[0];\n\t\t\t\t}\n\t\t\t\tparseTreeNode = parseTreeNode.children && parseTreeNode.children[0];\n\t\t\t}\n\t\t} \n\t});\n\n\tif (widgetPointer != this) {\n\t\twidgetPointer.parseTreeNode.children = this.parseTreeNode.children;\n\t} else {\n\t\twidgetPointer.makeChildWidgets();\n\t}\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nImportVariablesWidget.prototype.refresh = function(changedTiddlers) {\n\t// Recompute our attributes and the filter list\n\tvar changedAttributes = this.computeAttributes(),\n\t\ttiddlerList = this.wiki.filterTiddlers(this.getAttribute(\"filter\"),this);\n\t// Refresh if the filter has changed, or the list of tiddlers has changed, or any of the tiddlers in the list has changed\n\tfunction haveListedTiddlersChanged() {\n\t\tvar changed = false;\n\t\ttiddlerList.forEach(function(title) {\n\t\t\tif(changedTiddlers[title]) {\n\t\t\t\tchanged = true;\n\t\t\t}\n\t\t});\n\t\treturn changed;\n\t}\n\tif(changedAttributes.filter || !$tw.utils.isArrayEqual(this.tiddlerList,tiddlerList) || haveListedTiddlersChanged()) {\n\t\t// Compute the filter\n\t\tthis.removeChildDomNodes();\n\t\tthis.execute(tiddlerList);\n\t\tthis.renderChildren(this.parentDomNode,this.findNextSiblingDomNode());\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\nexports.importvariables = ImportVariablesWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/keyboard.js": {
"title": "$:/core/modules/widgets/keyboard.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/keyboard.js\ntype: application/javascript\nmodule-type: widget\n\nKeyboard shortcut widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar KeyboardWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nKeyboardWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nKeyboardWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar tag = this.parseTreeNode.isBlock ? \"div\" : \"span\";\n\tif(this.tag && $tw.config.htmlUnsafeElements.indexOf(this.tag) === -1) {\n\t\ttag = this.tag;\n\t}\n\t// Create element\n\tvar domNode = this.document.createElement(tag);\n\t// Assign classes\n\tvar classes = (this[\"class\"] || \"\").split(\" \");\n\tclasses.push(\"tc-keyboard\");\n\tdomNode.className = classes.join(\" \");\n\t// Add a keyboard event handler\n\tdomNode.addEventListener(\"keydown\",function (event) {\n\t\tif($tw.keyboardManager.checkKeyDescriptors(event,self.keyInfoArray)) {\n\t\t\tself.invokeActions(self,event);\n\t\t\tif(self.actions) {\n\t\t\t\tself.invokeActionString(self.actions,self,event);\n\t\t\t}\n\t\t\tself.dispatchMessage(event);\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t},false);\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\nKeyboardWidget.prototype.dispatchMessage = function(event) {\n\tthis.dispatchEvent({type: this.message, param: this.param, tiddlerTitle: this.getVariable(\"currentTiddler\")});\n};\n\n/*\nCompute the internal state of the widget\n*/\nKeyboardWidget.prototype.execute = function() {\n\tvar self = this;\n\t// Get attributes\n\tthis.actions = this.getAttribute(\"actions\",\"\");\n\tthis.message = this.getAttribute(\"message\",\"\");\n\tthis.param = this.getAttribute(\"param\",\"\");\n\tthis.key = this.getAttribute(\"key\",\"\");\n\tthis.tag = this.getAttribute(\"tag\",\"\");\n\tthis.keyInfoArray = $tw.keyboardManager.parseKeyDescriptors(this.key);\n\tthis[\"class\"] = this.getAttribute(\"class\",\"\");\n\tif(this.key.substr(0,2) === \"((\" && this.key.substr(-2,2) === \"))\") {\n\t\tthis.shortcutTiddlers = [];\n\t\tvar name = this.key.substring(2,this.key.length -2);\n\t\t$tw.utils.each($tw.keyboardManager.lookupNames,function(platformDescriptor) {\n\t\t\tself.shortcutTiddlers.push(\"$:/config/\" + platformDescriptor + \"/\" + name);\n\t\t});\n\t}\n\t// Make child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nKeyboardWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.message || changedAttributes.param || changedAttributes.key || changedAttributes[\"class\"] || changedAttributes.tag) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\t// Update the keyInfoArray if one of its shortcut-config-tiddlers has changed\n\tif(this.shortcutTiddlers && $tw.utils.hopArray(changedTiddlers,this.shortcutTiddlers)) {\n\t\tthis.keyInfoArray = $tw.keyboardManager.parseKeyDescriptors(this.key);\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.keyboard = KeyboardWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/link.js": {
"title": "$:/core/modules/widgets/link.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/link.js\ntype: application/javascript\nmodule-type: widget\n\nLink widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar LinkWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nLinkWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nLinkWidget.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Get the value of the tv-wikilinks configuration macro\n\tvar wikiLinksMacro = this.getVariable(\"tv-wikilinks\"),\n\t\tuseWikiLinks = wikiLinksMacro ? (wikiLinksMacro.trim() !== \"no\") : true,\n\t\tmissingLinksEnabled = !(this.hideMissingLinks && this.isMissing && !this.isShadow);\n\t// Render the link if required\n\tif(useWikiLinks && missingLinksEnabled) {\n\t\tthis.renderLink(parent,nextSibling);\n\t} else {\n\t\t// Just insert the link text\n\t\tvar domNode = this.document.createElement(\"span\");\n\t\tparent.insertBefore(domNode,nextSibling);\n\t\tthis.renderChildren(domNode,null);\n\t\tthis.domNodes.push(domNode);\n\t}\n};\n\n/*\nRender this widget into the DOM\n*/\nLinkWidget.prototype.renderLink = function(parent,nextSibling) {\n\tvar self = this;\n\t// Sanitise the specified tag\n\tvar tag = this.linkTag;\n\tif($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) {\n\t\ttag = \"a\";\n\t}\n\t// Create our element\n\tvar domNode = this.document.createElement(tag);\n\t// Assign classes\n\tvar classes = [];\n\tif(this.overrideClasses === undefined) {\n\t\tclasses.push(\"tc-tiddlylink\");\n\t\tif(this.isShadow) {\n\t\t\tclasses.push(\"tc-tiddlylink-shadow\");\n\t\t}\n\t\tif(this.isMissing && !this.isShadow) {\n\t\t\tclasses.push(\"tc-tiddlylink-missing\");\n\t\t} else {\n\t\t\tif(!this.isMissing) {\n\t\t\t\tclasses.push(\"tc-tiddlylink-resolves\");\n\t\t\t}\n\t\t}\n\t\tif(this.linkClasses) {\n\t\t\tclasses.push(this.linkClasses);\t\t\t\n\t\t}\n\t} else if(this.overrideClasses !== \"\") {\n\t\tclasses.push(this.overrideClasses)\n\t}\n\tif(classes.length > 0) {\n\t\tdomNode.setAttribute(\"class\",classes.join(\" \"));\n\t}\n\t// Set an href\n\tvar wikilinkTransformFilter = this.getVariable(\"tv-filter-export-link\"),\n\t\twikiLinkText;\n\tif(wikilinkTransformFilter) {\n\t\t// Use the filter to construct the href\n\t\twikiLinkText = this.wiki.filterTiddlers(wikilinkTransformFilter,this,function(iterator) {\n\t\t\titerator(self.wiki.getTiddler(self.to),self.to)\n\t\t})[0];\n\t} else {\n\t\t// Expand the tv-wikilink-template variable to construct the href\n\t\tvar wikiLinkTemplateMacro = this.getVariable(\"tv-wikilink-template\"),\n\t\t\twikiLinkTemplate = wikiLinkTemplateMacro ? wikiLinkTemplateMacro.trim() : \"#$uri_encoded$\";\n\t\twikiLinkText = $tw.utils.replaceString(wikiLinkTemplate,\"$uri_encoded$\",encodeURIComponent(this.to));\n\t\twikiLinkText = $tw.utils.replaceString(wikiLinkText,\"$uri_doubleencoded$\",encodeURIComponent(encodeURIComponent(this.to)));\n\t}\n\t// Override with the value of tv-get-export-link if defined\n\twikiLinkText = this.getVariable(\"tv-get-export-link\",{params: [{name: \"to\",value: this.to}],defaultValue: wikiLinkText});\n\tif(tag === \"a\") {\n\t\tdomNode.setAttribute(\"href\",wikiLinkText);\n\t}\n\t// Set the tabindex\n\tif(this.tabIndex) {\n\t\tdomNode.setAttribute(\"tabindex\",this.tabIndex);\n\t}\n\t// Set the tooltip\n\t// HACK: Performance issues with re-parsing the tooltip prevent us defaulting the tooltip to \"<$transclude field='tooltip'><$transclude field='title'/></$transclude>\"\n\tvar tooltipWikiText = this.tooltip || this.getVariable(\"tv-wikilink-tooltip\");\n\tif(tooltipWikiText) {\n\t\tvar tooltipText = this.wiki.renderText(\"text/plain\",\"text/vnd.tiddlywiki\",tooltipWikiText,{\n\t\t\t\tparseAsInline: true,\n\t\t\t\tvariables: {\n\t\t\t\t\tcurrentTiddler: this.to\n\t\t\t\t},\n\t\t\t\tparentWidget: this\n\t\t\t});\n\t\tdomNode.setAttribute(\"title\",tooltipText);\n\t}\n\tif(this[\"aria-label\"]) {\n\t\tdomNode.setAttribute(\"aria-label\",this[\"aria-label\"]);\n\t}\n\t// Add a click event handler\n\t$tw.utils.addEventListeners(domNode,[\n\t\t{name: \"click\", handlerObject: this, handlerMethod: \"handleClickEvent\"},\n\t]);\n\t// Make the link draggable if required\n\tif(this.draggable === \"yes\") {\n\t\t$tw.utils.makeDraggable({\n\t\t\tdomNode: domNode,\n\t\t\tdragTiddlerFn: function() {return self.to;},\n\t\t\twidget: this\n\t\t});\n\t}\n\t// Insert the link into the DOM and render any children\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\nLinkWidget.prototype.handleClickEvent = function(event) {\n\t// Send the click on its way as a navigate event\n\tvar bounds = this.domNodes[0].getBoundingClientRect();\n\tthis.dispatchEvent({\n\t\ttype: \"tm-navigate\",\n\t\tnavigateTo: this.to,\n\t\tnavigateFromTitle: this.getVariable(\"storyTiddler\"),\n\t\tnavigateFromNode: this,\n\t\tnavigateFromClientRect: { top: bounds.top, left: bounds.left, width: bounds.width, right: bounds.right, bottom: bounds.bottom, height: bounds.height\n\t\t},\n\t\tnavigateSuppressNavigation: event.metaKey || event.ctrlKey || (event.button === 1),\n\t\tmetaKey: event.metaKey,\n\t\tctrlKey: event.ctrlKey,\n\t\taltKey: event.altKey,\n\t\tshiftKey: event.shiftKey\n\t});\n\tif(this.domNodes[0].hasAttribute(\"href\")) {\n\t\tevent.preventDefault();\n\t}\n\tevent.stopPropagation();\n\treturn false;\n};\n\n/*\nCompute the internal state of the widget\n*/\nLinkWidget.prototype.execute = function() {\n\t// Pick up our attributes\n\tthis.to = this.getAttribute(\"to\",this.getVariable(\"currentTiddler\"));\n\tthis.tooltip = this.getAttribute(\"tooltip\");\n\tthis[\"aria-label\"] = this.getAttribute(\"aria-label\");\n\tthis.linkClasses = this.getAttribute(\"class\");\n\tthis.overrideClasses = this.getAttribute(\"overrideClass\");\n\tthis.tabIndex = this.getAttribute(\"tabindex\");\n\tthis.draggable = this.getAttribute(\"draggable\",\"yes\");\n\tthis.linkTag = this.getAttribute(\"tag\",\"a\");\n\t// Determine the link characteristics\n\tthis.isMissing = !this.wiki.tiddlerExists(this.to);\n\tthis.isShadow = this.wiki.isShadowTiddler(this.to);\n\tthis.hideMissingLinks = (this.getVariable(\"tv-show-missing-links\") || \"yes\") === \"no\";\n\t// Make the child widgets\n\tvar templateTree;\n\tif(this.parseTreeNode.children && this.parseTreeNode.children.length > 0) {\n\t\ttemplateTree = this.parseTreeNode.children;\n\t} else {\n\t\t// Default template is a link to the title\n\t\ttemplateTree = [{type: \"text\", text: this.to}];\n\t}\n\tthis.makeChildWidgets(templateTree);\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nLinkWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.to || changedTiddlers[this.to] || changedAttributes[\"aria-label\"] || changedAttributes.tooltip) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.link = LinkWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/linkcatcher.js": {
"title": "$:/core/modules/widgets/linkcatcher.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/linkcatcher.js\ntype: application/javascript\nmodule-type: widget\n\nLinkcatcher widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar LinkCatcherWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n\tthis.addEventListeners([\n\t\t{type: \"tm-navigate\", handler: \"handleNavigateEvent\"}\n\t]);\n};\n\n/*\nInherit from the base widget class\n*/\nLinkCatcherWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nLinkCatcherWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nLinkCatcherWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.catchTo = this.getAttribute(\"to\");\n\tthis.catchMessage = this.getAttribute(\"message\");\n\tthis.catchSet = this.getAttribute(\"set\");\n\tthis.catchSetTo = this.getAttribute(\"setTo\");\n\tthis.catchActions = this.getAttribute(\"actions\");\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n\t// When executing actions we avoid trapping navigate events, so that we don't trigger ourselves recursively\n\tthis.executingActions = false;\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nLinkCatcherWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.to || changedAttributes.message || changedAttributes.set || changedAttributes.setTo) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\n/*\nHandle a tm-navigate event\n*/\nLinkCatcherWidget.prototype.handleNavigateEvent = function(event) {\n\tif(!this.executingActions) {\n\t\t// Execute the actions\n\t\tif(this.catchTo) {\n\t\t\tthis.wiki.setTextReference(this.catchTo,event.navigateTo,this.getVariable(\"currentTiddler\"));\n\t\t}\n\t\tif(this.catchMessage && this.parentWidget) {\n\t\t\tthis.parentWidget.dispatchEvent({\n\t\t\t\ttype: this.catchMessage,\n\t\t\t\tparam: event.navigateTo,\n\t\t\t\tnavigateTo: event.navigateTo\n\t\t\t});\n\t\t}\n\t\tif(this.catchSet) {\n\t\t\tvar tiddler = this.wiki.getTiddler(this.catchSet);\n\t\t\tthis.wiki.addTiddler(new $tw.Tiddler(tiddler,{title: this.catchSet, text: this.catchSetTo}));\n\t\t}\n\t\tif(this.catchActions) {\n\t\t\tthis.executingActions = true;\n\t\t\tthis.invokeActionString(this.catchActions,this,event,{navigateTo: event.navigateTo});\n\t\t\tthis.executingActions = false;\n\t\t}\n\t} else {\n\t\t// This is a navigate event generated by the actions of this linkcatcher, so we don't trap it again, but just pass it to the parent\n\t\tthis.parentWidget.dispatchEvent({\n\t\t\ttype: \"tm-navigate\",\n\t\t\tparam: event.navigateTo,\n\t\t\tnavigateTo: event.navigateTo\n\t\t});\n\t}\n\treturn false;\n};\n\nexports.linkcatcher = LinkCatcherWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/list.js": {
"title": "$:/core/modules/widgets/list.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/list.js\ntype: application/javascript\nmodule-type: widget\n\nList and list item widgets\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\n/*\nThe list widget creates list element sub-widgets that reach back into the list widget for their configuration\n*/\n\nvar ListWidget = function(parseTreeNode,options) {\n\t// Initialise the storyviews if they've not been done already\n\tif(!this.storyViews) {\n\t\tListWidget.prototype.storyViews = {};\n\t\t$tw.modules.applyMethods(\"storyview\",this.storyViews);\n\t}\n\t// Main initialisation inherited from widget.js\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nListWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nListWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n\t// Construct the storyview\n\tvar StoryView = this.storyViews[this.storyViewName];\n\tif(this.storyViewName && !StoryView) {\n\t\tStoryView = this.storyViews[\"classic\"];\n\t}\n\tif(StoryView && !this.document.isTiddlyWikiFakeDom) {\n\t\tthis.storyview = new StoryView(this);\n\t} else {\n\t\tthis.storyview = null;\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nListWidget.prototype.execute = function() {\n\t// Get our attributes\n\tthis.template = this.getAttribute(\"template\");\n\tthis.editTemplate = this.getAttribute(\"editTemplate\");\n\tthis.variableName = this.getAttribute(\"variable\",\"currentTiddler\");\n\tthis.storyViewName = this.getAttribute(\"storyview\");\n\tthis.historyTitle = this.getAttribute(\"history\");\n\t// Compose the list elements\n\tthis.list = this.getTiddlerList();\n\tvar members = [],\n\t\tself = this;\n\t// Check for an empty list\n\tif(this.list.length === 0) {\n\t\tmembers = this.getEmptyMessage();\n\t} else {\n\t\t$tw.utils.each(this.list,function(title,index) {\n\t\t\tmembers.push(self.makeItemTemplate(title));\n\t\t});\n\t}\n\t// Construct the child widgets\n\tthis.makeChildWidgets(members);\n\t// Clear the last history\n\tthis.history = [];\n};\n\nListWidget.prototype.getTiddlerList = function() {\n\tvar defaultFilter = \"[!is[system]sort[title]]\";\n\treturn this.wiki.filterTiddlers(this.getAttribute(\"filter\",defaultFilter),this);\n};\n\nListWidget.prototype.getEmptyMessage = function() {\n\tvar emptyMessage = this.getAttribute(\"emptyMessage\",\"\"),\n\t\tparser = this.wiki.parseText(\"text/vnd.tiddlywiki\",emptyMessage,{parseAsInline: true});\n\tif(parser) {\n\t\treturn parser.tree;\n\t} else {\n\t\treturn [];\n\t}\n};\n\n/*\nCompose the template for a list item\n*/\nListWidget.prototype.makeItemTemplate = function(title) {\n\t// Check if the tiddler is a draft\n\tvar tiddler = this.wiki.getTiddler(title),\n\t\tisDraft = tiddler && tiddler.hasField(\"draft.of\"),\n\t\ttemplate = this.template,\n\t\ttemplateTree;\n\tif(isDraft && this.editTemplate) {\n\t\ttemplate = this.editTemplate;\n\t}\n\t// Compose the transclusion of the template\n\tif(template) {\n\t\ttemplateTree = [{type: \"transclude\", attributes: {tiddler: {type: \"string\", value: template}}}];\n\t} else {\n\t\tif(this.parseTreeNode.children && this.parseTreeNode.children.length > 0) {\n\t\t\ttemplateTree = this.parseTreeNode.children;\n\t\t} else {\n\t\t\t// Default template is a link to the title\n\t\t\ttemplateTree = [{type: \"element\", tag: this.parseTreeNode.isBlock ? \"div\" : \"span\", children: [{type: \"link\", attributes: {to: {type: \"string\", value: title}}, children: [\n\t\t\t\t\t{type: \"text\", text: title}\n\t\t\t]}]}];\n\t\t}\n\t}\n\t// Return the list item\n\treturn {type: \"listitem\", itemTitle: title, variableName: this.variableName, children: templateTree};\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nListWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes(),\n\t\tresult;\n\t// Call the storyview\n\tif(this.storyview && this.storyview.refreshStart) {\n\t\tthis.storyview.refreshStart(changedTiddlers,changedAttributes);\n\t}\n\t// Completely refresh if any of our attributes have changed\n\tif(changedAttributes.filter || changedAttributes.template || changedAttributes.editTemplate || changedAttributes.emptyMessage || changedAttributes.storyview || changedAttributes.history) {\n\t\tthis.refreshSelf();\n\t\tresult = true;\n\t} else {\n\t\t// Handle any changes to the list\n\t\tresult = this.handleListChanges(changedTiddlers);\n\t\t// Handle any changes to the history stack\n\t\tif(this.historyTitle && changedTiddlers[this.historyTitle]) {\n\t\t\tthis.handleHistoryChanges();\n\t\t}\n\t}\n\t// Call the storyview\n\tif(this.storyview && this.storyview.refreshEnd) {\n\t\tthis.storyview.refreshEnd(changedTiddlers,changedAttributes);\n\t}\n\treturn result;\n};\n\n/*\nHandle any changes to the history list\n*/\nListWidget.prototype.handleHistoryChanges = function() {\n\t// Get the history data\n\tvar newHistory = this.wiki.getTiddlerDataCached(this.historyTitle,[]);\n\t// Ignore any entries of the history that match the previous history\n\tvar entry = 0;\n\twhile(entry < newHistory.length && entry < this.history.length && newHistory[entry].title === this.history[entry].title) {\n\t\tentry++;\n\t}\n\t// Navigate forwards to each of the new tiddlers\n\twhile(entry < newHistory.length) {\n\t\tif(this.storyview && this.storyview.navigateTo) {\n\t\t\tthis.storyview.navigateTo(newHistory[entry]);\n\t\t}\n\t\tentry++;\n\t}\n\t// Update the history\n\tthis.history = newHistory;\n};\n\n/*\nProcess any changes to the list\n*/\nListWidget.prototype.handleListChanges = function(changedTiddlers) {\n\t// Get the new list\n\tvar prevList = this.list;\n\tthis.list = this.getTiddlerList();\n\t// Check for an empty list\n\tif(this.list.length === 0) {\n\t\t// Check if it was empty before\n\t\tif(prevList.length === 0) {\n\t\t\t// If so, just refresh the empty message\n\t\t\treturn this.refreshChildren(changedTiddlers);\n\t\t} else {\n\t\t\t// Replace the previous content with the empty message\n\t\t\tfor(t=this.children.length-1; t>=0; t--) {\n\t\t\t\tthis.removeListItem(t);\n\t\t\t}\n\t\t\tvar nextSibling = this.findNextSiblingDomNode();\n\t\t\tthis.makeChildWidgets(this.getEmptyMessage());\n\t\t\tthis.renderChildren(this.parentDomNode,nextSibling);\n\t\t\treturn true;\n\t\t}\n\t} else {\n\t\t// If the list was empty then we need to remove the empty message\n\t\tif(prevList.length === 0) {\n\t\t\tthis.removeChildDomNodes();\n\t\t\tthis.children = [];\n\t\t}\n\t\t// Cycle through the list, inserting and removing list items as needed\n\t\tvar hasRefreshed = false;\n\t\tfor(var t=0; t<this.list.length; t++) {\n\t\t\tvar index = this.findListItem(t,this.list[t]);\n\t\t\tif(index === undefined) {\n\t\t\t\t// The list item must be inserted\n\t\t\t\tthis.insertListItem(t,this.list[t]);\n\t\t\t\thasRefreshed = true;\n\t\t\t} else {\n\t\t\t\t// There are intervening list items that must be removed\n\t\t\t\tfor(var n=index-1; n>=t; n--) {\n\t\t\t\t\tthis.removeListItem(n);\n\t\t\t\t\thasRefreshed = true;\n\t\t\t\t}\n\t\t\t\t// Refresh the item we're reusing\n\t\t\t\tvar refreshed = this.children[t].refresh(changedTiddlers);\n\t\t\t\thasRefreshed = hasRefreshed || refreshed;\n\t\t\t}\n\t\t}\n\t\t// Remove any left over items\n\t\tfor(t=this.children.length-1; t>=this.list.length; t--) {\n\t\t\tthis.removeListItem(t);\n\t\t\thasRefreshed = true;\n\t\t}\n\t\treturn hasRefreshed;\n\t}\n};\n\n/*\nFind the list item with a given title, starting from a specified position\n*/\nListWidget.prototype.findListItem = function(startIndex,title) {\n\twhile(startIndex < this.children.length) {\n\t\tif(this.children[startIndex].parseTreeNode.itemTitle === title) {\n\t\t\treturn startIndex;\n\t\t}\n\t\tstartIndex++;\n\t}\n\treturn undefined;\n};\n\n/*\nInsert a new list item at the specified index\n*/\nListWidget.prototype.insertListItem = function(index,title) {\n\t// Create, insert and render the new child widgets\n\tvar widget = this.makeChildWidget(this.makeItemTemplate(title));\n\twidget.parentDomNode = this.parentDomNode; // Hack to enable findNextSiblingDomNode() to work\n\tthis.children.splice(index,0,widget);\n\tvar nextSibling = widget.findNextSiblingDomNode();\n\twidget.render(this.parentDomNode,nextSibling);\n\t// Animate the insertion if required\n\tif(this.storyview && this.storyview.insert) {\n\t\tthis.storyview.insert(widget);\n\t}\n\treturn true;\n};\n\n/*\nRemove the specified list item\n*/\nListWidget.prototype.removeListItem = function(index) {\n\tvar widget = this.children[index];\n\t// Animate the removal if required\n\tif(this.storyview && this.storyview.remove) {\n\t\tthis.storyview.remove(widget);\n\t} else {\n\t\twidget.removeChildDomNodes();\n\t}\n\t// Remove the child widget\n\tthis.children.splice(index,1);\n};\n\nexports.list = ListWidget;\n\nvar ListItemWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nListItemWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nListItemWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nListItemWidget.prototype.execute = function() {\n\t// Set the current list item title\n\tthis.setVariable(this.parseTreeNode.variableName,this.parseTreeNode.itemTitle);\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nListItemWidget.prototype.refresh = function(changedTiddlers) {\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.listitem = ListItemWidget;\n\n})();",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/macrocall.js": {
"title": "$:/core/modules/widgets/macrocall.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/macrocall.js\ntype: application/javascript\nmodule-type: widget\n\nMacrocall widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar MacroCallWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nMacroCallWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nMacroCallWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nMacroCallWidget.prototype.execute = function() {\n\t// Get the parse type if specified\n\tthis.parseType = this.getAttribute(\"$type\",\"text/vnd.tiddlywiki\");\n\tthis.renderOutput = this.getAttribute(\"$output\",\"text/html\");\n\t// Merge together the parameters specified in the parse tree with the specified attributes\n\tvar params = this.parseTreeNode.params ? this.parseTreeNode.params.slice(0) : [];\n\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\tif(name.charAt(0) !== \"$\") {\n\t\t\tparams.push({name: name, value: attribute});\t\t\t\n\t\t}\n\t});\n\t// Get the macro value\n\tvar macroName = this.parseTreeNode.name || this.getAttribute(\"$name\"),\n\t\tvariableInfo = this.getVariableInfo(macroName,{params: params}),\n\t\ttext = variableInfo.text,\n\t\tparseTreeNodes;\n\t// Are we rendering to HTML?\n\tif(this.renderOutput === \"text/html\") {\n\t\t// If so we'll return the parsed macro\n\t\tvar parser = this.wiki.parseText(this.parseType,text,\n\t\t\t\t\t\t\t{parseAsInline: !this.parseTreeNode.isBlock});\n\t\tparseTreeNodes = parser ? parser.tree : [];\n\t\t// Wrap the parse tree in a vars widget assigning the parameters to variables named \"__paramname__\"\n\t\tvar attributes = {};\n\t\t$tw.utils.each(variableInfo.params,function(param) {\n\t\t\tvar name = \"__\" + param.name + \"__\";\n\t\t\tattributes[name] = {\n\t\t\t\tname: name,\n\t\t\t\ttype: \"string\",\n\t\t\t\tvalue: param.value\n\t\t\t};\n\t\t});\n\t\tparseTreeNodes = [{\n\t\t\ttype: \"vars\",\n\t\t\tattributes: attributes,\n\t\t\tchildren: parseTreeNodes\n\t\t}];\n\t} else {\n\t\t// Otherwise, we'll render the text\n\t\tvar plainText = this.wiki.renderText(\"text/plain\",this.parseType,text,{parentWidget: this});\n\t\tparseTreeNodes = [{type: \"text\", text: plainText}];\n\t}\n\t// Construct the child widgets\n\tthis.makeChildWidgets(parseTreeNodes);\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nMacroCallWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif($tw.utils.count(changedAttributes) > 0) {\n\t\t// Rerender ourselves\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.macrocall = MacroCallWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/navigator.js": {
"title": "$:/core/modules/widgets/navigator.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/navigator.js\ntype: application/javascript\nmodule-type: widget\n\nNavigator widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar IMPORT_TITLE = \"$:/Import\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar NavigatorWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n\tthis.addEventListeners([\n\t\t{type: \"tm-navigate\", handler: \"handleNavigateEvent\"},\n\t\t{type: \"tm-edit-tiddler\", handler: \"handleEditTiddlerEvent\"},\n\t\t{type: \"tm-delete-tiddler\", handler: \"handleDeleteTiddlerEvent\"},\n\t\t{type: \"tm-save-tiddler\", handler: \"handleSaveTiddlerEvent\"},\n\t\t{type: \"tm-cancel-tiddler\", handler: \"handleCancelTiddlerEvent\"},\n\t\t{type: \"tm-close-tiddler\", handler: \"handleCloseTiddlerEvent\"},\n\t\t{type: \"tm-close-all-tiddlers\", handler: \"handleCloseAllTiddlersEvent\"},\n\t\t{type: \"tm-close-other-tiddlers\", handler: \"handleCloseOtherTiddlersEvent\"},\n\t\t{type: \"tm-new-tiddler\", handler: \"handleNewTiddlerEvent\"},\n\t\t{type: \"tm-import-tiddlers\", handler: \"handleImportTiddlersEvent\"},\n\t\t{type: \"tm-perform-import\", handler: \"handlePerformImportEvent\"},\n\t\t{type: \"tm-fold-tiddler\", handler: \"handleFoldTiddlerEvent\"},\n\t\t{type: \"tm-fold-other-tiddlers\", handler: \"handleFoldOtherTiddlersEvent\"},\n\t\t{type: \"tm-fold-all-tiddlers\", handler: \"handleFoldAllTiddlersEvent\"},\n\t\t{type: \"tm-unfold-all-tiddlers\", handler: \"handleUnfoldAllTiddlersEvent\"},\n\t\t{type: \"tm-rename-tiddler\", handler: \"handleRenameTiddlerEvent\"}\n\t]);\n};\n\n/*\nInherit from the base widget class\n*/\nNavigatorWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nNavigatorWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nNavigatorWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.storyTitle = this.getAttribute(\"story\");\n\tthis.historyTitle = this.getAttribute(\"history\");\n\tthis.setVariable(\"tv-story-list\",this.storyTitle);\n\tthis.setVariable(\"tv-history-list\",this.historyTitle);\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nNavigatorWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.story || changedAttributes.history) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nNavigatorWidget.prototype.getStoryList = function() {\n\treturn this.storyTitle ? this.wiki.getTiddlerList(this.storyTitle) : null;\n};\n\nNavigatorWidget.prototype.saveStoryList = function(storyList) {\n\tif(this.storyTitle) {\n\t\tvar storyTiddler = this.wiki.getTiddler(this.storyTitle);\n\t\tthis.wiki.addTiddler(new $tw.Tiddler(\n\t\t\t{title: this.storyTitle},\n\t\t\tstoryTiddler,\n\t\t\t{list: storyList}\n\t\t));\t\t\n\t}\n};\n\nNavigatorWidget.prototype.removeTitleFromStory = function(storyList,title) {\n\tif(storyList) {\n\t\tvar p = storyList.indexOf(title);\n\t\twhile(p !== -1) {\n\t\t\tstoryList.splice(p,1);\n\t\t\tp = storyList.indexOf(title);\n\t\t}\t\t\n\t}\n};\n\nNavigatorWidget.prototype.replaceFirstTitleInStory = function(storyList,oldTitle,newTitle) {\n\tif(storyList) {\n\t\tvar pos = storyList.indexOf(oldTitle);\n\t\tif(pos !== -1) {\n\t\t\tstoryList[pos] = newTitle;\n\t\t\tdo {\n\t\t\t\tpos = storyList.indexOf(oldTitle,pos + 1);\n\t\t\t\tif(pos !== -1) {\n\t\t\t\t\tstoryList.splice(pos,1);\n\t\t\t\t}\n\t\t\t} while(pos !== -1);\n\t\t} else {\n\t\t\tstoryList.splice(0,0,newTitle);\n\t\t}\t\t\n\t}\n};\n\nNavigatorWidget.prototype.addToStory = function(title,fromTitle) {\n\tif(this.storyTitle) {\n\t\tthis.wiki.addToStory(title,fromTitle,this.storyTitle,{\n\t\t\topenLinkFromInsideRiver: this.getAttribute(\"openLinkFromInsideRiver\",\"top\"),\n\t\t\topenLinkFromOutsideRiver: this.getAttribute(\"openLinkFromOutsideRiver\",\"top\")\n\t\t});\n\t}\n};\n\n/*\nAdd a new record to the top of the history stack\ntitle: a title string or an array of title strings\nfromPageRect: page coordinates of the origin of the navigation\n*/\nNavigatorWidget.prototype.addToHistory = function(title,fromPageRect) {\n\tthis.wiki.addToHistory(title,fromPageRect,this.historyTitle);\n};\n\n/*\nHandle a tm-navigate event\n*/\nNavigatorWidget.prototype.handleNavigateEvent = function(event) {\n\tevent = $tw.hooks.invokeHook(\"th-navigating\",event);\n\tif(event.navigateTo) {\n\t\tthis.addToStory(event.navigateTo,event.navigateFromTitle);\n\t\tif(!event.navigateSuppressNavigation) {\n\t\t\tthis.addToHistory(event.navigateTo,event.navigateFromClientRect);\n\t\t}\n\t}\n\treturn false;\n};\n\n// Close a specified tiddler\nNavigatorWidget.prototype.handleCloseTiddlerEvent = function(event) {\n\tvar title = event.param || event.tiddlerTitle,\n\t\tstoryList = this.getStoryList();\n\t// Look for tiddlers with this title to close\n\tthis.removeTitleFromStory(storyList,title);\n\tthis.saveStoryList(storyList);\n\treturn false;\n};\n\n// Close all tiddlers\nNavigatorWidget.prototype.handleCloseAllTiddlersEvent = function(event) {\n\tthis.saveStoryList([]);\n\treturn false;\n};\n\n// Close other tiddlers\nNavigatorWidget.prototype.handleCloseOtherTiddlersEvent = function(event) {\n\tvar title = event.param || event.tiddlerTitle;\n\tthis.saveStoryList([title]);\n\treturn false;\n};\n\n// Place a tiddler in edit mode\nNavigatorWidget.prototype.handleEditTiddlerEvent = function(event) {\n\tvar editTiddler = $tw.hooks.invokeHook(\"th-editing-tiddler\",event);\n\tif(!editTiddler) {\n\t\treturn false;\n\t}\n\tvar self = this;\n\tfunction isUnmodifiedShadow(title) {\n\t\treturn self.wiki.isShadowTiddler(title) && !self.wiki.tiddlerExists(title);\n\t}\n\tfunction confirmEditShadow(title) {\n\t\treturn confirm($tw.language.getString(\n\t\t\t\"ConfirmEditShadowTiddler\",\n\t\t\t{variables:\n\t\t\t\t{title: title}\n\t\t\t}\n\t\t));\n\t}\n\tvar title = event.param || event.tiddlerTitle;\n\tif(isUnmodifiedShadow(title) && !confirmEditShadow(title)) {\n\t\treturn false;\n\t}\n\t// Replace the specified tiddler with a draft in edit mode\n\tvar draftTiddler = this.makeDraftTiddler(title);\n\t// Update the story and history if required\n\tif(!event.paramObject || event.paramObject.suppressNavigation !== \"yes\") {\n\t\tvar draftTitle = draftTiddler.fields.title,\n\t\t\tstoryList = this.getStoryList();\n\t\tthis.removeTitleFromStory(storyList,draftTitle);\n\t\tthis.replaceFirstTitleInStory(storyList,title,draftTitle);\n\t\tthis.addToHistory(draftTitle,event.navigateFromClientRect);\n\t\tthis.saveStoryList(storyList);\n\t\treturn false;\n\t}\n};\n\n// Delete a tiddler\nNavigatorWidget.prototype.handleDeleteTiddlerEvent = function(event) {\n\t// Get the tiddler we're deleting\n\tvar title = event.param || event.tiddlerTitle,\n\t\ttiddler = this.wiki.getTiddler(title),\n\t\tstoryList = this.getStoryList(),\n\t\toriginalTitle = tiddler ? tiddler.fields[\"draft.of\"] : \"\",\n\t\toriginalTiddler = originalTitle ? this.wiki.getTiddler(originalTitle) : undefined,\n\t\tconfirmationTitle;\n\tif(!tiddler) {\n\t\treturn false;\n\t}\n\t// Check if the tiddler we're deleting is in draft mode\n\tif(originalTitle) {\n\t\t// If so, we'll prompt for confirmation referencing the original tiddler\n\t\tconfirmationTitle = originalTitle;\n\t} else {\n\t\t// If not a draft, then prompt for confirmation referencing the specified tiddler\n\t\tconfirmationTitle = title;\n\t}\n\t// Seek confirmation\n\tif((this.wiki.getTiddler(originalTitle) || (tiddler.fields.text || \"\") !== \"\") && !confirm($tw.language.getString(\n\t\t\t\t\"ConfirmDeleteTiddler\",\n\t\t\t\t{variables:\n\t\t\t\t\t{title: confirmationTitle}\n\t\t\t\t}\n\t\t\t))) {\n\t\treturn false;\n\t}\n\t// Delete the original tiddler\n\tif(originalTitle) {\n\t\tif(originalTiddler) {\n\t\t\t$tw.hooks.invokeHook(\"th-deleting-tiddler\",originalTiddler);\n\t\t}\n\t\tthis.wiki.deleteTiddler(originalTitle);\n\t\tthis.removeTitleFromStory(storyList,originalTitle);\n\t}\n\t// Invoke the hook function and delete this tiddler\n\t$tw.hooks.invokeHook(\"th-deleting-tiddler\",tiddler);\n\tthis.wiki.deleteTiddler(title);\n\t// Remove the closed tiddler from the story\n\tthis.removeTitleFromStory(storyList,title);\n\tthis.saveStoryList(storyList);\n\t// Trigger an autosave\n\t$tw.rootWidget.dispatchEvent({type: \"tm-auto-save-wiki\"});\n\treturn false;\n};\n\n/*\nCreate/reuse the draft tiddler for a given title\n*/\nNavigatorWidget.prototype.makeDraftTiddler = function(targetTitle) {\n\t// See if there is already a draft tiddler for this tiddler\n\tvar draftTitle = this.wiki.findDraft(targetTitle);\n\tif(draftTitle) {\n\t\treturn this.wiki.getTiddler(draftTitle);\n\t}\n\t// Get the current value of the tiddler we're editing\n\tvar tiddler = this.wiki.getTiddler(targetTitle);\n\t// Save the initial value of the draft tiddler\n\tdraftTitle = this.generateDraftTitle(targetTitle);\n\tvar draftTiddler = new $tw.Tiddler(\n\t\t\ttiddler,\n\t\t\t{\n\t\t\t\ttitle: draftTitle,\n\t\t\t\t\"draft.title\": targetTitle,\n\t\t\t\t\"draft.of\": targetTitle\n\t\t\t},\n\t\t\tthis.wiki.getModificationFields()\n\t\t);\n\tthis.wiki.addTiddler(draftTiddler);\n\treturn draftTiddler;\n};\n\n/*\nGenerate a title for the draft of a given tiddler\n*/\nNavigatorWidget.prototype.generateDraftTitle = function(title) {\n\treturn this.wiki.generateDraftTitle(title);\n};\n\n// Take a tiddler out of edit mode, saving the changes\nNavigatorWidget.prototype.handleSaveTiddlerEvent = function(event) {\n\tvar title = event.param || event.tiddlerTitle,\n\t\ttiddler = this.wiki.getTiddler(title),\n\t\tstoryList = this.getStoryList();\n\t// Replace the original tiddler with the draft\n\tif(tiddler) {\n\t\tvar draftTitle = (tiddler.fields[\"draft.title\"] || \"\").trim(),\n\t\t\tdraftOf = (tiddler.fields[\"draft.of\"] || \"\").trim();\n\t\tif(draftTitle) {\n\t\t\tvar isRename = draftOf !== draftTitle,\n\t\t\t\tisConfirmed = true;\n\t\t\tif(isRename && this.wiki.tiddlerExists(draftTitle)) {\n\t\t\t\tisConfirmed = confirm($tw.language.getString(\n\t\t\t\t\t\"ConfirmOverwriteTiddler\",\n\t\t\t\t\t{variables:\n\t\t\t\t\t\t{title: draftTitle}\n\t\t\t\t\t}\n\t\t\t\t));\n\t\t\t}\n\t\t\tif(isConfirmed) {\n\t\t\t\t// Create the new tiddler and pass it through the th-saving-tiddler hook\n\t\t\t\tvar newTiddler = new $tw.Tiddler(this.wiki.getCreationFields(),tiddler,{\n\t\t\t\t\ttitle: draftTitle,\n\t\t\t\t\t\"draft.title\": undefined,\n\t\t\t\t\t\"draft.of\": undefined\n\t\t\t\t},this.wiki.getModificationFields());\n\t\t\t\tnewTiddler = $tw.hooks.invokeHook(\"th-saving-tiddler\",newTiddler);\n\t\t\t\tthis.wiki.addTiddler(newTiddler);\n\t\t\t\t// If enabled, relink references to renamed tiddler\n\t\t\t\tvar shouldRelink = this.getAttribute(\"relinkOnRename\",\"no\").toLowerCase().trim() === \"yes\";\n\t\t\t\tif(isRename && shouldRelink && this.wiki.tiddlerExists(draftOf)) {\nconsole.log(\"Relinking '\" + draftOf + \"' to '\" + draftTitle + \"'\");\n\t\t\t\t\tthis.wiki.relinkTiddler(draftOf,draftTitle);\n\t\t\t\t}\n\t\t\t\t// Remove the draft tiddler\n\t\t\t\tthis.wiki.deleteTiddler(title);\n\t\t\t\t// Remove the original tiddler if we're renaming it\n\t\t\t\tif(isRename) {\n\t\t\t\t\tthis.wiki.deleteTiddler(draftOf);\n\t\t\t\t}\n\t\t\t\t// #2381 always remove new title & old\n\t\t\t\tthis.removeTitleFromStory(storyList,draftTitle);\n\t\t\t\tthis.removeTitleFromStory(storyList,draftOf);\n\t\t\t\tif(!event.paramObject || event.paramObject.suppressNavigation !== \"yes\") {\n\t\t\t\t\t// Replace the draft in the story with the original\n\t\t\t\t\tthis.replaceFirstTitleInStory(storyList,title,draftTitle);\n\t\t\t\t\tthis.addToHistory(draftTitle,event.navigateFromClientRect);\n\t\t\t\t\tif(draftTitle !== this.storyTitle) {\n\t\t\t\t\t\tthis.saveStoryList(storyList);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// Trigger an autosave\n\t\t\t\t$tw.rootWidget.dispatchEvent({type: \"tm-auto-save-wiki\"});\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n};\n\n// Take a tiddler out of edit mode without saving the changes\nNavigatorWidget.prototype.handleCancelTiddlerEvent = function(event) {\n\tevent = $tw.hooks.invokeHook(\"th-cancelling-tiddler\", event);\n\t// Flip the specified tiddler from draft back to the original\n\tvar draftTitle = event.param || event.tiddlerTitle,\n\t\tdraftTiddler = this.wiki.getTiddler(draftTitle),\n\t\toriginalTitle = draftTiddler && draftTiddler.fields[\"draft.of\"];\n\tif(draftTiddler && originalTitle) {\n\t\t// Ask for confirmation if the tiddler text has changed\n\t\tvar isConfirmed = true,\n\t\t\toriginalTiddler = this.wiki.getTiddler(originalTitle),\n\t\t\tstoryList = this.getStoryList();\n\t\tif(this.wiki.isDraftModified(draftTitle)) {\n\t\t\tisConfirmed = confirm($tw.language.getString(\n\t\t\t\t\"ConfirmCancelTiddler\",\n\t\t\t\t{variables:\n\t\t\t\t\t{title: draftTitle}\n\t\t\t\t}\n\t\t\t));\n\t\t}\n\t\t// Remove the draft tiddler\n\t\tif(isConfirmed) {\n\t\t\tthis.wiki.deleteTiddler(draftTitle);\n\t\t\tif(!event.paramObject || event.paramObject.suppressNavigation !== \"yes\") {\n\t\t\t\tif(originalTiddler) {\n\t\t\t\t\tthis.replaceFirstTitleInStory(storyList,draftTitle,originalTitle);\n\t\t\t\t\tthis.addToHistory(originalTitle,event.navigateFromClientRect);\n\t\t\t\t} else {\n\t\t\t\t\tthis.removeTitleFromStory(storyList,draftTitle);\n\t\t\t\t}\n\t\t\t\tthis.saveStoryList(storyList);\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n};\n\n// Create a new draft tiddler\n// event.param can either be the title of a template tiddler, or a hashmap of fields.\n//\n// The title of the newly created tiddler follows these rules:\n// * If a hashmap was used and a title field was specified, use that title\n// * If a hashmap was used without a title field, use a default title, if necessary making it unique with a numeric suffix\n// * If a template tiddler was used, use the title of the template, if necessary making it unique with a numeric suffix\n//\n// If a draft of the target tiddler already exists then it is reused\nNavigatorWidget.prototype.handleNewTiddlerEvent = function(event) {\n\tevent = $tw.hooks.invokeHook(\"th-new-tiddler\", event);\n\t// Get the story details\n\tvar storyList = this.getStoryList(),\n\t\ttemplateTiddler, additionalFields, title, draftTitle, existingTiddler;\n\t// Get the template tiddler (if any)\n\tif(typeof event.param === \"string\") {\n\t\t// Get the template tiddler\n\t\ttemplateTiddler = this.wiki.getTiddler(event.param);\n\t\t// Generate a new title\n\t\ttitle = this.wiki.generateNewTitle(event.param || $tw.language.getString(\"DefaultNewTiddlerTitle\"));\n\t}\n\t// Get the specified additional fields\n\tif(typeof event.paramObject === \"object\") {\n\t\tadditionalFields = event.paramObject;\n\t}\n\tif(typeof event.param === \"object\") { // Backwards compatibility with 5.1.3\n\t\tadditionalFields = event.param;\n\t}\n\tif(additionalFields && additionalFields.title) {\n\t\ttitle = additionalFields.title;\n\t}\n\t// Make a copy of the additional fields excluding any blank ones\n\tvar filteredAdditionalFields = $tw.utils.extend({},additionalFields);\n\tObject.keys(filteredAdditionalFields).forEach(function(fieldName) {\n\t\tif(filteredAdditionalFields[fieldName] === \"\") {\n\t\t\tdelete filteredAdditionalFields[fieldName];\n\t\t}\n\t});\n\t// Generate a title if we don't have one\n\ttitle = title || this.wiki.generateNewTitle($tw.language.getString(\"DefaultNewTiddlerTitle\"));\n\t// Find any existing draft for this tiddler\n\tdraftTitle = this.wiki.findDraft(title);\n\t// Pull in any existing tiddler\n\tif(draftTitle) {\n\t\texistingTiddler = this.wiki.getTiddler(draftTitle);\n\t} else {\n\t\tdraftTitle = this.generateDraftTitle(title);\n\t\texistingTiddler = this.wiki.getTiddler(title);\n\t}\n\t// Merge the tags\n\tvar mergedTags = [];\n\tif(existingTiddler && existingTiddler.fields.tags) {\n\t\t$tw.utils.pushTop(mergedTags,existingTiddler.fields.tags);\n\t}\n\tif(additionalFields && additionalFields.tags) {\n\t\t// Merge tags\n\t\tmergedTags = $tw.utils.pushTop(mergedTags,$tw.utils.parseStringArray(additionalFields.tags));\n\t}\n\tif(templateTiddler && templateTiddler.fields.tags) {\n\t\t// Merge tags\n\t\tmergedTags = $tw.utils.pushTop(mergedTags,templateTiddler.fields.tags);\n\t}\n\t// Save the draft tiddler\n\tvar draftTiddler = new $tw.Tiddler({\n\t\t\ttext: \"\",\n\t\t\t\"draft.title\": title\n\t\t},\n\t\ttemplateTiddler,\n\t\tadditionalFields,\n\t\tthis.wiki.getCreationFields(),\n\t\texistingTiddler,\n\t\tfilteredAdditionalFields,\n\t\t{\n\t\t\ttitle: draftTitle,\n\t\t\t\"draft.of\": title,\n\t\t\ttags: mergedTags\n\t\t},this.wiki.getModificationFields());\n\tthis.wiki.addTiddler(draftTiddler);\n\t// Update the story to insert the new draft at the top and remove any existing tiddler\n\tif(storyList && storyList.indexOf(draftTitle) === -1) {\n\t\tvar slot = storyList.indexOf(event.navigateFromTitle);\n\t\tif(slot === -1) {\n\t\t\tslot = this.getAttribute(\"openLinkFromOutsideRiver\",\"top\") === \"bottom\" ? storyList.length - 1 : slot;\n\t\t}\n\t\tstoryList.splice(slot + 1,0,draftTitle);\n\t}\n\tif(storyList && storyList.indexOf(title) !== -1) {\n\t\tstoryList.splice(storyList.indexOf(title),1);\n\t}\n\tthis.saveStoryList(storyList);\n\t// Add a new record to the top of the history stack\n\tthis.addToHistory(draftTitle);\n\treturn false;\n};\n\n// Import JSON tiddlers into a pending import tiddler\nNavigatorWidget.prototype.handleImportTiddlersEvent = function(event) {\n\t// Get the tiddlers\n\tvar tiddlers = [];\n\ttry {\n\t\ttiddlers = JSON.parse(event.param);\n\t} catch(e) {\n\t}\n\t// Get the current $:/Import tiddler\n\tvar importTiddler = this.wiki.getTiddler(IMPORT_TITLE),\n\t\timportData = this.wiki.getTiddlerData(IMPORT_TITLE,{}),\n\t\tnewFields = new Object({\n\t\t\ttitle: IMPORT_TITLE,\n\t\t\ttype: \"application/json\",\n\t\t\t\"plugin-type\": \"import\",\n\t\t\t\"status\": \"pending\"\n\t\t}),\n\t\tincomingTiddlers = [];\n\t// Process each tiddler\n\timportData.tiddlers = importData.tiddlers || {};\n\t$tw.utils.each(tiddlers,function(tiddlerFields) {\n\t\ttiddlerFields.title = $tw.utils.trim(tiddlerFields.title);\n\t\tvar title = tiddlerFields.title;\n\t\tif(title) {\n\t\t\tincomingTiddlers.push(title);\n\t\t\timportData.tiddlers[title] = tiddlerFields;\n\t\t}\n\t});\n\t// Give the active upgrader modules a chance to process the incoming tiddlers\n\tvar messages = this.wiki.invokeUpgraders(incomingTiddlers,importData.tiddlers);\n\t$tw.utils.each(messages,function(message,title) {\n\t\tnewFields[\"message-\" + title] = message;\n\t});\n\t// Deselect any suppressed tiddlers\n\t$tw.utils.each(importData.tiddlers,function(tiddler,title) {\n\t\tif($tw.utils.count(tiddler) === 0) {\n\t\t\tnewFields[\"selection-\" + title] = \"unchecked\";\n\t\t}\n\t});\n\t// Save the $:/Import tiddler\n\tnewFields.text = JSON.stringify(importData,null,$tw.config.preferences.jsonSpaces);\n\tthis.wiki.addTiddler(new $tw.Tiddler(importTiddler,newFields));\n\t// Update the story and history details\n\tif(this.getVariable(\"tv-auto-open-on-import\") !== \"no\") {\n\t\tvar storyList = this.getStoryList(),\n\t\t\thistory = [];\n\t\t// Add it to the story\n\t\tif(storyList && storyList.indexOf(IMPORT_TITLE) === -1) {\n\t\t\tstoryList.unshift(IMPORT_TITLE);\n\t\t}\n\t\t// And to history\n\t\thistory.push(IMPORT_TITLE);\n\t\t// Save the updated story and history\n\t\tthis.saveStoryList(storyList);\n\t\tthis.addToHistory(history);\n\t}\n\treturn false;\n};\n\n//\nNavigatorWidget.prototype.handlePerformImportEvent = function(event) {\n\tvar self = this,\n\t\timportTiddler = this.wiki.getTiddler(event.param),\n\t\timportData = this.wiki.getTiddlerDataCached(event.param,{tiddlers: {}}),\n\t\timportReport = [];\n\t// Add the tiddlers to the store\n\timportReport.push($tw.language.getString(\"Import/Imported/Hint\") + \"\\n\");\n\t$tw.utils.each(importData.tiddlers,function(tiddlerFields) {\n\t\tvar title = tiddlerFields.title;\n\t\tif(title && importTiddler && importTiddler.fields[\"selection-\" + title] !== \"unchecked\") {\n\t\t\tvar tiddler = new $tw.Tiddler(tiddlerFields);\n\t\t\ttiddler = $tw.hooks.invokeHook(\"th-importing-tiddler\",tiddler);\n\t\t\tself.wiki.addTiddler(tiddler);\n\t\t\timportReport.push(\"# [[\" + tiddlerFields.title + \"]]\");\n\t\t}\n\t});\n\t// Replace the $:/Import tiddler with an import report\n\tthis.wiki.addTiddler(new $tw.Tiddler({\n\t\ttitle: event.param,\n\t\ttext: importReport.join(\"\\n\"),\n\t\t\"status\": \"complete\"\n\t}));\n\t// Navigate to the $:/Import tiddler\n\tthis.addToHistory([event.param]);\n\t// Trigger an autosave\n\t$tw.rootWidget.dispatchEvent({type: \"tm-auto-save-wiki\"});\n};\n\nNavigatorWidget.prototype.handleFoldTiddlerEvent = function(event) {\n\tvar paramObject = event.paramObject || {};\n\tif(paramObject.foldedState) {\n\t\tvar foldedState = this.wiki.getTiddlerText(paramObject.foldedState,\"show\") === \"show\" ? \"hide\" : \"show\";\n\t\tthis.wiki.setText(paramObject.foldedState,\"text\",null,foldedState);\n\t}\n};\n\nNavigatorWidget.prototype.handleFoldOtherTiddlersEvent = function(event) {\n\tvar self = this,\n\t\tparamObject = event.paramObject || {},\n\t\tprefix = paramObject.foldedStatePrefix;\n\t$tw.utils.each(this.getStoryList(),function(title) {\n\t\tself.wiki.setText(prefix + title,\"text\",null,event.param === title ? \"show\" : \"hide\");\n\t});\n};\n\nNavigatorWidget.prototype.handleFoldAllTiddlersEvent = function(event) {\n\tvar self = this,\n\t\tparamObject = event.paramObject || {},\n\t\tprefix = paramObject.foldedStatePrefix || \"$:/state/folded/\";\n\t$tw.utils.each(this.getStoryList(),function(title) {\n\t\tself.wiki.setText(prefix + title,\"text\",null,\"hide\");\n\t});\n};\n\nNavigatorWidget.prototype.handleUnfoldAllTiddlersEvent = function(event) {\n\tvar self = this,\n\t\tparamObject = event.paramObject || {},\n\t\tprefix = paramObject.foldedStatePrefix;\n\t$tw.utils.each(this.getStoryList(),function(title) {\n\t\tself.wiki.setText(prefix + title,\"text\",null,\"show\");\n\t});\n};\n\nNavigatorWidget.prototype.handleRenameTiddlerEvent = function(event) {\n\tvar paramObject = event.paramObject || {},\n\t\tfrom = paramObject.from || event.tiddlerTitle,\n\t\tto = paramObject.to;\n\tthis.wiki.renameTiddler(from,to);\n};\n\nexports.navigator = NavigatorWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/password.js": {
"title": "$:/core/modules/widgets/password.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/password.js\ntype: application/javascript\nmodule-type: widget\n\nPassword widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar PasswordWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nPasswordWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nPasswordWidget.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Get the current password\n\tvar password = $tw.browser ? $tw.utils.getPassword(this.passwordName) || \"\" : \"\";\n\t// Create our element\n\tvar domNode = this.document.createElement(\"input\");\n\tdomNode.setAttribute(\"type\",\"password\");\n\tdomNode.setAttribute(\"value\",password);\n\t// Add a click event handler\n\t$tw.utils.addEventListeners(domNode,[\n\t\t{name: \"change\", handlerObject: this, handlerMethod: \"handleChangeEvent\"}\n\t]);\n\t// Insert the label into the DOM and render any children\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\nPasswordWidget.prototype.handleChangeEvent = function(event) {\n\tvar password = this.domNodes[0].value;\n\treturn $tw.utils.savePassword(this.passwordName,password);\n};\n\n/*\nCompute the internal state of the widget\n*/\nPasswordWidget.prototype.execute = function() {\n\t// Get the parameters from the attributes\n\tthis.passwordName = this.getAttribute(\"name\",\"\");\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nPasswordWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.name) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.password = PasswordWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/qualify.js": {
"title": "$:/core/modules/widgets/qualify.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/qualify.js\ntype: application/javascript\nmodule-type: widget\n\nQualify text to a variable \n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar QualifyWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nQualifyWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nQualifyWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nQualifyWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.qualifyName = this.getAttribute(\"name\");\n\tthis.qualifyTitle = this.getAttribute(\"title\");\n\t// Set context variable\n\tif(this.qualifyName) {\n\t\tthis.setVariable(this.qualifyName,this.qualifyTitle + \"-\" + this.getStateQualifier());\n\t}\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nQualifyWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.name || changedAttributes.title) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.qualify = QualifyWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/radio.js": {
"title": "$:/core/modules/widgets/radio.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/radio.js\ntype: application/javascript\nmodule-type: widget\n\nSet a field or index at a given tiddler via radio buttons\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar RadioWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nRadioWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nRadioWidget.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\tvar isChecked = this.getValue() === this.radioValue;\n\t// Create our elements\n\tthis.labelDomNode = this.document.createElement(\"label\");\n\tthis.labelDomNode.setAttribute(\"class\",\n \t\t\"tc-radio \" + this.radioClass + (isChecked ? \" tc-radio-selected\" : \"\")\n \t);\n\tthis.inputDomNode = this.document.createElement(\"input\");\n\tthis.inputDomNode.setAttribute(\"type\",\"radio\");\n\tif(isChecked) {\n\t\tthis.inputDomNode.setAttribute(\"checked\",\"true\");\n\t}\n\tthis.labelDomNode.appendChild(this.inputDomNode);\n\tthis.spanDomNode = this.document.createElement(\"span\");\n\tthis.labelDomNode.appendChild(this.spanDomNode);\n\t// Add a click event handler\n\t$tw.utils.addEventListeners(this.inputDomNode,[\n\t\t{name: \"change\", handlerObject: this, handlerMethod: \"handleChangeEvent\"}\n\t]);\n\t// Insert the label into the DOM and render any children\n\tparent.insertBefore(this.labelDomNode,nextSibling);\n\tthis.renderChildren(this.spanDomNode,null);\n\tthis.domNodes.push(this.labelDomNode);\n};\n\nRadioWidget.prototype.getValue = function() {\n\tvar value,\n\t\ttiddler = this.wiki.getTiddler(this.radioTitle);\n\tif (this.radioIndex) {\n\t\tvalue = this.wiki.extractTiddlerDataItem(this.radioTitle,this.radioIndex);\n\t} else {\n\t\tvalue = tiddler && tiddler.getFieldString(this.radioField);\n\t}\n\treturn value;\n};\n\nRadioWidget.prototype.setValue = function() {\n\tif(this.radioIndex) {\n\t\tthis.wiki.setText(this.radioTitle,\"\",this.radioIndex,this.radioValue);\n\t} else {\n\t\tvar tiddler = this.wiki.getTiddler(this.radioTitle),\n\t\t\taddition = {};\n\t\taddition[this.radioField] = this.radioValue;\n\t\tthis.wiki.addTiddler(new $tw.Tiddler(this.wiki.getCreationFields(),{title: this.radioTitle},tiddler,addition,this.wiki.getModificationFields()));\n\t}\n};\n\nRadioWidget.prototype.handleChangeEvent = function(event) {\n\tif(this.inputDomNode.checked) {\n\t\tthis.setValue();\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nRadioWidget.prototype.execute = function() {\n\t// Get the parameters from the attributes\n\tthis.radioTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.radioField = this.getAttribute(\"field\",\"text\");\n\tthis.radioIndex = this.getAttribute(\"index\");\n\tthis.radioValue = this.getAttribute(\"value\");\n\tthis.radioClass = this.getAttribute(\"class\",\"\");\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nRadioWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes.value || changedAttributes[\"class\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\tvar refreshed = false;\n\t\tif(changedTiddlers[this.radioTitle]) {\n\t\t\tthis.inputDomNode.checked = this.getValue() === this.radioValue;\n\t\t\trefreshed = true;\n\t\t}\n\t\treturn this.refreshChildren(changedTiddlers) || refreshed;\n\t}\n};\n\nexports.radio = RadioWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/range.js": {
"title": "$:/core/modules/widgets/range.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/range.js\ntype: application/javascript\nmodule-type: widget\n\nRange widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar RangeWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nRangeWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nRangeWidget.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Create our elements\n\tthis.inputDomNode = this.document.createElement(\"input\");\n\tthis.inputDomNode.setAttribute(\"type\",\"range\");\n\tthis.inputDomNode.setAttribute(\"class\",this.elementClass);\n\tif(this.minValue){\n\t\tthis.inputDomNode.setAttribute(\"min\", this.minValue);\n\t}\n\tif(this.maxValue){\n\t\tthis.inputDomNode.setAttribute(\"max\", this.maxValue);\n\t}\n\tif(this.increment){\n\t\tthis.inputDomNode.setAttribute(\"step\", this.increment);\n\t}\n\tthis.inputDomNode.value = this.getValue();\n\t// Add a click event handler\n\t$tw.utils.addEventListeners(this.inputDomNode,[\n\t\t{name: \"input\", handlerObject: this, handlerMethod: \"handleInputEvent\"},\n\t\t{name: \"change\", handlerObject: this, handlerMethod: \"handleInputEvent\"}\t\t\n\t]);\n\t// Insert the label into the DOM and render any children\n\tparent.insertBefore(this.inputDomNode,nextSibling);\n\tthis.domNodes.push(this.inputDomNode);\n};\n\nRangeWidget.prototype.getValue = function() {\n\tvar tiddler = this.wiki.getTiddler(this.tiddlerTitle),\n\t\tfieldName = this.tiddlerField || \"text\",\n\t\tvalue = this.defaultValue;\n\tif(tiddler) {\n\t\tif(this.tiddlerIndex) {\n\t\t\tvalue = this.wiki.extractTiddlerDataItem(tiddler,this.tiddlerIndex,this.defaultValue || \"\");\n\t\t} else {\n\t\t\tif($tw.utils.hop(tiddler.fields,fieldName)) {\n\t\t\t\tvalue = tiddler.fields[fieldName] || \"\";\n\t\t\t} else {\n\t\t\t\tvalue = this.defaultValue || \"\";\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n\nRangeWidget.prototype.handleInputEvent = function(event) {\n\tif(this.getValue() !== this.inputDomNode.value) {\n\t\tif(this.tiddlerIndex) {\n\t\t\tthis.wiki.setText(this.tiddlerTitle,\"\",this.tiddlerIndex,this.inputDomNode.value);\n\t\t} else {\n\t\t\tthis.wiki.setText(this.tiddlerTitle,this.tiddlerField,null,this.inputDomNode.value);\n\t\t}\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nRangeWidget.prototype.execute = function() {\n\t// Get the parameters from the attributes\n\tthis.tiddlerTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.tiddlerField = this.getAttribute(\"field\");\n\tthis.tiddlerIndex = this.getAttribute(\"index\");\n\tthis.minValue = this.getAttribute(\"min\");\n\tthis.maxValue = this.getAttribute(\"max\");\n\tthis.increment = this.getAttribute(\"increment\");\n\tthis.defaultValue = this.getAttribute(\"default\");\n\tthis.elementClass = this.getAttribute(\"class\",\"\");\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nRangeWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes['min'] || changedAttributes['max'] || changedAttributes['increment'] || changedAttributes[\"default\"] || changedAttributes[\"class\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\tvar refreshed = false;\n\t\tif(changedTiddlers[this.tiddlerTitle]) {\n\t\t\tvar value = this.getValue();\n\t\t\tif(this.inputDomNode.value !== value) {\n\t\t\t\tthis.inputDomNode.value = value;\t\t\t\t\n\t\t\t}\n\t\t\trefreshed = true;\n\t\t}\n\t\treturn this.refreshChildren(changedTiddlers) || refreshed;\n\t}\n};\n\nexports.range = RangeWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/raw.js": {
"title": "$:/core/modules/widgets/raw.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/raw.js\ntype: application/javascript\nmodule-type: widget\n\nRaw widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar RawWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nRawWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nRawWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.execute();\n\tvar div = this.document.createElement(\"div\");\n\tdiv.innerHTML=this.parseTreeNode.html;\n\tparent.insertBefore(div,nextSibling);\n\tthis.domNodes.push(div);\t\n};\n\n/*\nCompute the internal state of the widget\n*/\nRawWidget.prototype.execute = function() {\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nRawWidget.prototype.refresh = function(changedTiddlers) {\n\treturn false;\n};\n\nexports.raw = RawWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/reveal.js": {
"title": "$:/core/modules/widgets/reveal.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/reveal.js\ntype: application/javascript\nmodule-type: widget\n\nReveal widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar RevealWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nRevealWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nRevealWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar tag = this.parseTreeNode.isBlock ? \"div\" : \"span\";\n\tif(this.revealTag && $tw.config.htmlUnsafeElements.indexOf(this.revealTag) === -1) {\n\t\ttag = this.revealTag;\n\t}\n\tvar domNode = this.document.createElement(tag);\n\tvar classes = this[\"class\"].split(\" \") || [];\n\tclasses.push(\"tc-reveal\");\n\tdomNode.className = classes.join(\" \");\n\tif(this.style) {\n\t\tdomNode.setAttribute(\"style\",this.style);\n\t}\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tif(!domNode.isTiddlyWikiFakeDom && this.type === \"popup\" && this.isOpen) {\n\t\tthis.positionPopup(domNode);\n\t\t$tw.utils.addClass(domNode,\"tc-popup\"); // Make sure that clicks don't dismiss popups within the revealed content\n\t}\n\tif(!this.isOpen) {\n\t\tdomNode.setAttribute(\"hidden\",\"true\");\n\t}\n\tthis.domNodes.push(domNode);\n};\n\nRevealWidget.prototype.positionPopup = function(domNode) {\n\tdomNode.style.position = \"absolute\";\n\tdomNode.style.zIndex = \"1000\";\n\tvar left,top;\n\tswitch(this.position) {\n\t\tcase \"left\":\n\t\t\tleft = this.popup.left - domNode.offsetWidth;\n\t\t\ttop = this.popup.top;\n\t\t\tbreak;\n\t\tcase \"above\":\n\t\t\tleft = this.popup.left;\n\t\t\ttop = this.popup.top - domNode.offsetHeight;\n\t\t\tbreak;\n\t\tcase \"aboveright\":\n\t\t\tleft = this.popup.left + this.popup.width;\n\t\t\ttop = this.popup.top + this.popup.height - domNode.offsetHeight;\n\t\t\tbreak;\n\t\tcase \"right\":\n\t\t\tleft = this.popup.left + this.popup.width;\n\t\t\ttop = this.popup.top;\n\t\t\tbreak;\n\t\tcase \"belowleft\":\n\t\t\tleft = this.popup.left + this.popup.width - domNode.offsetWidth;\n\t\t\ttop = this.popup.top + this.popup.height;\n\t\t\tbreak;\n\t\tdefault: // Below\n\t\t\tleft = this.popup.left;\n\t\t\ttop = this.popup.top + this.popup.height;\n\t\t\tbreak;\n\t}\n\tif(!this.positionAllowNegative) {\n\t\tleft = Math.max(0,left);\n\t\ttop = Math.max(0,top);\n\t}\n\tdomNode.style.left = left + \"px\";\n\tdomNode.style.top = top + \"px\";\n};\n\n/*\nCompute the internal state of the widget\n*/\nRevealWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.state = this.getAttribute(\"state\");\n\tthis.revealTag = this.getAttribute(\"tag\");\n\tthis.type = this.getAttribute(\"type\");\n\tthis.text = this.getAttribute(\"text\");\n\tthis.position = this.getAttribute(\"position\");\n\tthis.positionAllowNegative = this.getAttribute(\"positionAllowNegative\") === \"yes\";\n\tthis[\"class\"] = this.getAttribute(\"class\",\"\");\n\tthis.style = this.getAttribute(\"style\",\"\");\n\tthis[\"default\"] = this.getAttribute(\"default\",\"\");\n\tthis.animate = this.getAttribute(\"animate\",\"no\");\n\tthis.retain = this.getAttribute(\"retain\",\"no\");\n\tthis.openAnimation = this.animate === \"no\" ? undefined : \"open\";\n\tthis.closeAnimation = this.animate === \"no\" ? undefined : \"close\";\n\t// Compute the title of the state tiddler and read it\n\tthis.stateTiddlerTitle = this.state;\n\tthis.stateTitle = this.getAttribute(\"stateTitle\");\n\tthis.stateField = this.getAttribute(\"stateField\");\n\tthis.stateIndex = this.getAttribute(\"stateIndex\");\n\tthis.readState();\n\t// Construct the child widgets\n\tvar childNodes = this.isOpen ? this.parseTreeNode.children : [];\n\tthis.hasChildNodes = this.isOpen;\n\tthis.makeChildWidgets(childNodes);\n};\n\n/*\nRead the state tiddler\n*/\nRevealWidget.prototype.readState = function() {\n\t// Read the information from the state tiddler\n\tvar state,\n\t defaultState = this[\"default\"];\n\tif(this.stateTitle) {\n\t\tvar stateTitleTiddler = this.wiki.getTiddler(this.stateTitle);\n\t\tif(this.stateField) {\n\t\t\tstate = stateTitleTiddler ? stateTitleTiddler.getFieldString(this.stateField) || defaultState : defaultState;\n\t\t} else if(this.stateIndex) {\n\t\t\tstate = stateTitleTiddler ? this.wiki.extractTiddlerDataItem(this.stateTitle,this.stateIndex) || defaultState : defaultState;\n\t\t} else if(stateTitleTiddler) {\n\t\t\tstate = this.wiki.getTiddlerText(this.stateTitle) || defaultState;\n\t\t} else {\n\t\t\tstate = defaultState;\n\t\t}\n\t} else {\n\t\tstate = this.stateTiddlerTitle ? this.wiki.getTextReference(this.state,this[\"default\"],this.getVariable(\"currentTiddler\")) : this[\"default\"];\n\t}\n\tif(state === null) {\n\t\tstate = this[\"default\"];\n\t}\n\tswitch(this.type) {\n\t\tcase \"popup\":\n\t\t\tthis.readPopupState(state);\n\t\t\tbreak;\n\t\tcase \"match\":\n\t\t\tthis.isOpen = this.text === state;\n\t\t\tbreak;\n\t\tcase \"nomatch\":\n\t\t\tthis.isOpen = this.text !== state;\n\t\t\tbreak;\n\t\tcase \"lt\":\n\t\t\tthis.isOpen = !!(this.compareStateText(state) < 0);\n\t\t\tbreak;\n\t\tcase \"gt\":\n\t\t\tthis.isOpen = !!(this.compareStateText(state) > 0);\n\t\t\tbreak;\n\t\tcase \"lteq\":\n\t\t\tthis.isOpen = !(this.compareStateText(state) > 0);\n\t\t\tbreak;\n\t\tcase \"gteq\":\n\t\t\tthis.isOpen = !(this.compareStateText(state) < 0);\n\t\t\tbreak;\n\t}\n};\n\nRevealWidget.prototype.compareStateText = function(state) {\n\treturn state.localeCompare(this.text,undefined,{numeric: true,sensitivity: \"case\"});\n};\n\nRevealWidget.prototype.readPopupState = function(state) {\n\tvar popupLocationRegExp = /^\\((-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+)\\)$/,\n\t\tmatch = popupLocationRegExp.exec(state);\n\t// Check if the state matches the location regexp\n\tif(match) {\n\t\t// If so, we're open\n\t\tthis.isOpen = true;\n\t\t// Get the location\n\t\tthis.popup = {\n\t\t\tleft: parseFloat(match[1]),\n\t\t\ttop: parseFloat(match[2]),\n\t\t\twidth: parseFloat(match[3]),\n\t\t\theight: parseFloat(match[4])\n\t\t};\n\t} else {\n\t\t// If not, we're closed\n\t\tthis.isOpen = false;\n\t}\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nRevealWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.state || changedAttributes.type || changedAttributes.text || changedAttributes.position || changedAttributes.positionAllowNegative || changedAttributes[\"default\"] || changedAttributes.animate || changedAttributes.stateTitle || changedAttributes.stateField || changedAttributes.stateIndex) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\tvar currentlyOpen = this.isOpen;\n\t\tthis.readState();\n\t\tif(this.isOpen !== currentlyOpen) {\n\t\t\tif(this.retain === \"yes\") {\n\t\t\t\tthis.updateState();\n\t\t\t} else {\n\t\t\t\tthis.refreshSelf();\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\n/*\nCalled by refresh() to dynamically show or hide the content\n*/\nRevealWidget.prototype.updateState = function() {\n\tvar self = this;\n\t// Read the current state\n\tthis.readState();\n\t// Construct the child nodes if needed\n\tvar domNode = this.domNodes[0];\n\tif(this.isOpen && !this.hasChildNodes) {\n\t\tthis.hasChildNodes = true;\n\t\tthis.makeChildWidgets(this.parseTreeNode.children);\n\t\tthis.renderChildren(domNode,null);\n\t}\n\t// Animate our DOM node\n\tif(!domNode.isTiddlyWikiFakeDom && this.type === \"popup\" && this.isOpen) {\n\t\tthis.positionPopup(domNode);\n\t\t$tw.utils.addClass(domNode,\"tc-popup\"); // Make sure that clicks don't dismiss popups within the revealed content\n\n\t}\n\tif(this.isOpen) {\n\t\tdomNode.removeAttribute(\"hidden\");\n $tw.anim.perform(this.openAnimation,domNode);\n\t} else {\n\t\t$tw.anim.perform(this.closeAnimation,domNode,{callback: function() {\n\t\t\t//make sure that the state hasn't changed during the close animation\n\t\t\tself.readState()\n\t\t\tif(!self.isOpen) {\n\t\t\t\tdomNode.setAttribute(\"hidden\",\"true\");\n\t\t\t}\n\t\t}});\n\t}\n};\n\nexports.reveal = RevealWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/scrollable.js": {
"title": "$:/core/modules/widgets/scrollable.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/scrollable.js\ntype: application/javascript\nmodule-type: widget\n\nScrollable widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ScrollableWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n\tthis.scaleFactor = 1;\n\tthis.addEventListeners([\n\t\t{type: \"tm-scroll\", handler: \"handleScrollEvent\"}\n\t]);\n\tif($tw.browser) {\n\t\tthis.requestAnimationFrame = window.requestAnimationFrame ||\n\t\t\twindow.webkitRequestAnimationFrame ||\n\t\t\twindow.mozRequestAnimationFrame ||\n\t\t\tfunction(callback) {\n\t\t\t\treturn window.setTimeout(callback, 1000/60);\n\t\t\t};\n\t\tthis.cancelAnimationFrame = window.cancelAnimationFrame ||\n\t\t\twindow.webkitCancelAnimationFrame ||\n\t\t\twindow.webkitCancelRequestAnimationFrame ||\n\t\t\twindow.mozCancelAnimationFrame ||\n\t\t\twindow.mozCancelRequestAnimationFrame ||\n\t\t\tfunction(id) {\n\t\t\t\twindow.clearTimeout(id);\n\t\t\t};\n\t}\n};\n\n/*\nInherit from the base widget class\n*/\nScrollableWidget.prototype = new Widget();\n\nScrollableWidget.prototype.cancelScroll = function() {\n\tif(this.idRequestFrame) {\n\t\tthis.cancelAnimationFrame.call(window,this.idRequestFrame);\n\t\tthis.idRequestFrame = null;\n\t}\n};\n\n/*\nHandle a scroll event\n*/\nScrollableWidget.prototype.handleScrollEvent = function(event) {\n\t// Pass the scroll event through if our offsetsize is larger than our scrollsize\n\tif(this.outerDomNode.scrollWidth <= this.outerDomNode.offsetWidth && this.outerDomNode.scrollHeight <= this.outerDomNode.offsetHeight && this.fallthrough === \"yes\") {\n\t\treturn true;\n\t}\n\tthis.scrollIntoView(event.target);\n\treturn false; // Handled event\n};\n\n/*\nScroll an element into view\n*/\nScrollableWidget.prototype.scrollIntoView = function(element) {\n\tvar duration = $tw.utils.getAnimationDuration();\n\tthis.cancelScroll();\n\tthis.startTime = Date.now();\n\tvar scrollPosition = {\n\t\tx: this.outerDomNode.scrollLeft,\n\t\ty: this.outerDomNode.scrollTop\n\t};\n\t// Get the client bounds of the element and adjust by the scroll position\n\tvar scrollableBounds = this.outerDomNode.getBoundingClientRect(),\n\t\tclientTargetBounds = element.getBoundingClientRect(),\n\t\tbounds = {\n\t\t\tleft: clientTargetBounds.left + scrollPosition.x - scrollableBounds.left,\n\t\t\ttop: clientTargetBounds.top + scrollPosition.y - scrollableBounds.top,\n\t\t\twidth: clientTargetBounds.width,\n\t\t\theight: clientTargetBounds.height\n\t\t};\n\t// We'll consider the horizontal and vertical scroll directions separately via this function\n\tvar getEndPos = function(targetPos,targetSize,currentPos,currentSize) {\n\t\t\t// If the target is already visible then stay where we are\n\t\t\tif(targetPos >= currentPos && (targetPos + targetSize) <= (currentPos + currentSize)) {\n\t\t\t\treturn currentPos;\n\t\t\t// If the target is above/left of the current view, then scroll to its top/left\n\t\t\t} else if(targetPos <= currentPos) {\n\t\t\t\treturn targetPos;\n\t\t\t// If the target is smaller than the window and the scroll position is too far up, then scroll till the target is at the bottom of the window\n\t\t\t} else if(targetSize < currentSize && currentPos < (targetPos + targetSize - currentSize)) {\n\t\t\t\treturn targetPos + targetSize - currentSize;\n\t\t\t// If the target is big, then just scroll to the top\n\t\t\t} else if(currentPos < targetPos) {\n\t\t\t\treturn targetPos;\n\t\t\t// Otherwise, stay where we are\n\t\t\t} else {\n\t\t\t\treturn currentPos;\n\t\t\t}\n\t\t},\n\t\tendX = getEndPos(bounds.left,bounds.width,scrollPosition.x,this.outerDomNode.offsetWidth),\n\t\tendY = getEndPos(bounds.top,bounds.height,scrollPosition.y,this.outerDomNode.offsetHeight);\n\t// Only scroll if necessary\n\tif(endX !== scrollPosition.x || endY !== scrollPosition.y) {\n\t\tvar self = this,\n\t\t\tdrawFrame;\n\t\tdrawFrame = function () {\n\t\t\tvar t;\n\t\t\tif(duration <= 0) {\n\t\t\t\tt = 1;\n\t\t\t} else {\n\t\t\t\tt = ((Date.now()) - self.startTime) / duration;\t\n\t\t\t}\n\t\t\tif(t >= 1) {\n\t\t\t\tself.cancelScroll();\n\t\t\t\tt = 1;\n\t\t\t}\n\t\t\tt = $tw.utils.slowInSlowOut(t);\n\t\t\tself.outerDomNode.scrollLeft = scrollPosition.x + (endX - scrollPosition.x) * t;\n\t\t\tself.outerDomNode.scrollTop = scrollPosition.y + (endY - scrollPosition.y) * t;\n\t\t\tif(t < 1) {\n\t\t\t\tself.idRequestFrame = self.requestAnimationFrame.call(window,drawFrame);\n\t\t\t}\n\t\t};\n\t\tdrawFrame();\n\t}\n};\n\n/*\nRender this widget into the DOM\n*/\nScrollableWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create elements\n\tthis.outerDomNode = this.document.createElement(\"div\");\n\t$tw.utils.setStyle(this.outerDomNode,[\n\t\t{overflowY: \"auto\"},\n\t\t{overflowX: \"auto\"},\n\t\t{webkitOverflowScrolling: \"touch\"}\n\t]);\n\tthis.innerDomNode = this.document.createElement(\"div\");\n\tthis.outerDomNode.appendChild(this.innerDomNode);\n\t// Assign classes\n\tthis.outerDomNode.className = this[\"class\"] || \"\";\n\t// Insert element\n\tparent.insertBefore(this.outerDomNode,nextSibling);\n\tthis.renderChildren(this.innerDomNode,null);\n\tthis.domNodes.push(this.outerDomNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nScrollableWidget.prototype.execute = function() {\n\t// Get attributes\n\tthis.fallthrough = this.getAttribute(\"fallthrough\",\"yes\");\n\tthis[\"class\"] = this.getAttribute(\"class\");\n\t// Make child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nScrollableWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"class\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.scrollable = ScrollableWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/select.js": {
"title": "$:/core/modules/widgets/select.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/select.js\ntype: application/javascript\nmodule-type: widget\n\nSelect widget:\n\n```\n<$select tiddler=\"MyTiddler\" field=\"text\">\n<$list filter=\"[tag[chapter]]\">\n<option value=<<currentTiddler>>>\n<$view field=\"description\"/>\n</option>\n</$list>\n</$select>\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar SelectWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nSelectWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nSelectWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n\tthis.setSelectValue();\n\t$tw.utils.addEventListeners(this.getSelectDomNode(),[\n\t\t{name: \"change\", handlerObject: this, handlerMethod: \"handleChangeEvent\"}\n\t]);\n};\n\n/*\nHandle a change event\n*/\nSelectWidget.prototype.handleChangeEvent = function(event) {\n\t// Get the new value and assign it to the tiddler\n\tif(this.selectMultiple == false) {\n\t\tvar value = this.getSelectDomNode().value;\n\t} else {\n\t\tvar value = this.getSelectValues()\n\t\t\t\tvalue = $tw.utils.stringifyList(value);\n\t}\n\tthis.wiki.setText(this.selectTitle,this.selectField,this.selectIndex,value);\n\t// Trigger actions\n\tif(this.selectActions) {\n\t\tthis.invokeActionString(this.selectActions,this,event);\n\t}\n};\n\n/*\nIf necessary, set the value of the select element to the current value\n*/\nSelectWidget.prototype.setSelectValue = function() {\n\tvar value = this.selectDefault;\n\t// Get the value\n\tif(this.selectIndex) {\n\t\tvalue = this.wiki.extractTiddlerDataItem(this.selectTitle,this.selectIndex,value);\n\t} else {\n\t\tvar tiddler = this.wiki.getTiddler(this.selectTitle);\n\t\tif(tiddler) {\n\t\t\tif(this.selectField === \"text\") {\n\t\t\t\t// Calling getTiddlerText() triggers lazy loading of skinny tiddlers\n\t\t\t\tvalue = this.wiki.getTiddlerText(this.selectTitle);\n\t\t\t} else {\n\t\t\t\tif($tw.utils.hop(tiddler.fields,this.selectField)) {\n\t\t\t\t\tvalue = tiddler.getFieldString(this.selectField);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif(this.selectField === \"title\") {\n\t\t\t\tvalue = this.selectTitle;\n\t\t\t}\n\t\t}\n\t}\n\t// Assign it to the select element if it's different than the current value\n\tif (this.selectMultiple) {\n\t\tvalue = value === undefined ? \"\" : value;\n\t\tvar select = this.getSelectDomNode();\n\t\tvar values = Array.isArray(value) ? value : $tw.utils.parseStringArray(value);\n\t\tfor(var i=0; i < select.children.length; i++){\n\t\t\tselect.children[i].selected = values.indexOf(select.children[i].value) !== -1\n\t\t}\n\t} else {\n\t\tvar domNode = this.getSelectDomNode();\n\t\tif(domNode.value !== value) {\n\t\t\tdomNode.value = value;\n\t\t}\n\t}\n};\n\n/*\nGet the DOM node of the select element\n*/\nSelectWidget.prototype.getSelectDomNode = function() {\n\treturn this.children[0].domNodes[0];\n};\n\n// Return an array of the selected opion values\n// select is an HTML select element\nSelectWidget.prototype.getSelectValues = function() {\n\tvar select, result, options, opt;\n\tselect = this.getSelectDomNode();\n\tresult = [];\n\toptions = select && select.options;\n\tfor (var i=0; i<options.length; i++) {\n\t\topt = options[i];\n\t\tif (opt.selected) {\n\t\t\tresult.push(opt.value || opt.text);\n\t\t}\n\t}\n\treturn result;\n}\n\n/*\nCompute the internal state of the widget\n*/\nSelectWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.selectActions = this.getAttribute(\"actions\");\n\tthis.selectTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.selectField = this.getAttribute(\"field\",\"text\");\n\tthis.selectIndex = this.getAttribute(\"index\");\n\tthis.selectClass = this.getAttribute(\"class\");\n\tthis.selectDefault = this.getAttribute(\"default\");\n\tthis.selectMultiple = this.getAttribute(\"multiple\", false);\n\tthis.selectSize = this.getAttribute(\"size\");\n\tthis.selectTooltip = this.getAttribute(\"tooltip\");\n\t// Make the child widgets\n\tvar selectNode = {\n\t\ttype: \"element\",\n\t\ttag: \"select\",\n\t\tchildren: this.parseTreeNode.children\n\t};\n\tif(this.selectClass) {\n\t\t$tw.utils.addAttributeToParseTreeNode(selectNode,\"class\",this.selectClass);\n\t}\n\tif(this.selectMultiple) {\n\t\t$tw.utils.addAttributeToParseTreeNode(selectNode,\"multiple\",\"multiple\");\n\t}\n\tif(this.selectSize) {\n\t\t$tw.utils.addAttributeToParseTreeNode(selectNode,\"size\",this.selectSize);\n\t}\n\tif(this.selectTooltip) {\n\t\t$tw.utils.addAttributeToParseTreeNode(selectNode,\"title\",this.selectTooltip);\n\t}\n\tthis.makeChildWidgets([selectNode]);\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nSelectWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\t// If we're using a different tiddler/field/index then completely refresh ourselves\n\tif(changedAttributes.selectTitle || changedAttributes.selectField || changedAttributes.selectIndex || changedAttributes.selectTooltip) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t// If the target tiddler value has changed, just update setting and refresh the children\n\t} else {\n\t\tvar childrenRefreshed = this.refreshChildren(changedTiddlers);\n\t\tif(changedTiddlers[this.selectTitle] || childrenRefreshed) {\n\t\t\tthis.setSelectValue();\n\t\t} \n\t\treturn childrenRefreshed;\n\t}\n};\n\nexports.select = SelectWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/set.js": {
"title": "$:/core/modules/widgets/set.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/set.js\ntype: application/javascript\nmodule-type: widget\n\nSet variable widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar SetWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nSetWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nSetWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nSetWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.setName = this.getAttribute(\"name\",\"currentTiddler\");\n\tthis.setFilter = this.getAttribute(\"filter\");\n\tthis.setSelect = this.getAttribute(\"select\");\n\tthis.setTiddler = this.getAttribute(\"tiddler\");\n\tthis.setSubTiddler = this.getAttribute(\"subtiddler\");\n\tthis.setField = this.getAttribute(\"field\");\n\tthis.setIndex = this.getAttribute(\"index\");\n\tthis.setValue = this.getAttribute(\"value\");\n\tthis.setEmptyValue = this.getAttribute(\"emptyValue\");\n\t// Set context variable\n\tthis.setVariable(this.setName,this.getValue(),this.parseTreeNode.params,!!this.parseTreeNode.isMacroDefinition);\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nGet the value to be assigned\n*/\nSetWidget.prototype.getValue = function() {\n\tvar value = this.setValue;\n\tif(this.setTiddler) {\n\t\tvar tiddler;\n\t\tif(this.setSubTiddler) {\n\t\t\ttiddler = this.wiki.getSubTiddler(this.setTiddler,this.setSubTiddler);\n\t\t} else {\n\t\t\ttiddler = this.wiki.getTiddler(this.setTiddler);\t\t\t\n\t\t}\n\t\tif(!tiddler) {\n\t\t\tvalue = this.setEmptyValue;\n\t\t} else if(this.setField) {\n\t\t\tvalue = tiddler.getFieldString(this.setField) || this.setEmptyValue;\n\t\t} else if(this.setIndex) {\n\t\t\tvalue = this.wiki.extractTiddlerDataItem(this.setTiddler,this.setIndex,this.setEmptyValue);\n\t\t} else {\n\t\t\tvalue = tiddler.fields.text || this.setEmptyValue ;\n\t\t}\n\t} else if(this.setFilter) {\n\t\tvar results = this.wiki.filterTiddlers(this.setFilter,this);\n\t\tif(this.setValue == null) {\n\t\t\tvar select;\n\t\t\tif(this.setSelect) {\n\t\t\t\tselect = parseInt(this.setSelect,10);\n\t\t\t}\n\t\t\tif(select !== undefined) {\n\t\t\t\tvalue = results[select] || \"\";\n\t\t\t} else {\n\t\t\t\tvalue = $tw.utils.stringifyList(results);\t\t\t\n\t\t\t}\n\t\t}\n\t\tif(results.length === 0 && this.setEmptyValue !== undefined) {\n\t\t\tvalue = this.setEmptyValue;\n\t\t}\n\t} else if(!value && this.setEmptyValue) {\n\t\tvalue = this.setEmptyValue;\n\t}\n\treturn value || \"\";\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nSetWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.name || changedAttributes.filter || changedAttributes.select || changedAttributes.tiddler || (this.setTiddler && changedTiddlers[this.setTiddler]) || changedAttributes.field || changedAttributes.index || changedAttributes.value || changedAttributes.emptyValue ||\n\t (this.setFilter && this.getValue() != this.variables[this.setName].value)) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.setvariable = SetWidget;\nexports.set = SetWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/text.js": {
"title": "$:/core/modules/widgets/text.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/text.js\ntype: application/javascript\nmodule-type: widget\n\nText node widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar TextNodeWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nTextNodeWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nTextNodeWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar text = this.getAttribute(\"text\",this.parseTreeNode.text || \"\");\n\ttext = text.replace(/\\r/mg,\"\");\n\tvar textNode = this.document.createTextNode(text);\n\tparent.insertBefore(textNode,nextSibling);\n\tthis.domNodes.push(textNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nTextNodeWidget.prototype.execute = function() {\n\t// Nothing to do for a text node\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nTextNodeWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.text) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\n\t}\n};\n\nexports.text = TextNodeWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/tiddler.js": {
"title": "$:/core/modules/widgets/tiddler.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/tiddler.js\ntype: application/javascript\nmodule-type: widget\n\nTiddler widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar TiddlerWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nTiddlerWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nTiddlerWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nTiddlerWidget.prototype.execute = function() {\n\tthis.tiddlerState = this.computeTiddlerState();\n\tthis.setVariable(\"currentTiddler\",this.tiddlerState.currentTiddler);\n\tthis.setVariable(\"missingTiddlerClass\",this.tiddlerState.missingTiddlerClass);\n\tthis.setVariable(\"shadowTiddlerClass\",this.tiddlerState.shadowTiddlerClass);\n\tthis.setVariable(\"systemTiddlerClass\",this.tiddlerState.systemTiddlerClass);\n\tthis.setVariable(\"tiddlerTagClasses\",this.tiddlerState.tiddlerTagClasses);\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nCompute the tiddler state flags\n*/\nTiddlerWidget.prototype.computeTiddlerState = function() {\n\t// Get our parameters\n\tthis.tiddlerTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\t// Compute the state\n\tvar state = {\n\t\tcurrentTiddler: this.tiddlerTitle || \"\",\n\t\tmissingTiddlerClass: (this.wiki.tiddlerExists(this.tiddlerTitle) || this.wiki.isShadowTiddler(this.tiddlerTitle)) ? \"tc-tiddler-exists\" : \"tc-tiddler-missing\",\n\t\tshadowTiddlerClass: this.wiki.isShadowTiddler(this.tiddlerTitle) ? \"tc-tiddler-shadow\" : \"\",\n\t\tsystemTiddlerClass: this.wiki.isSystemTiddler(this.tiddlerTitle) ? \"tc-tiddler-system\" : \"\",\n\t\ttiddlerTagClasses: this.getTagClasses()\n\t};\n\t// Compute a simple hash to make it easier to detect changes\n\tstate.hash = state.currentTiddler + state.missingTiddlerClass + state.shadowTiddlerClass + state.systemTiddlerClass + state.tiddlerTagClasses;\n\treturn state;\n};\n\n/*\nCreate a string of CSS classes derived from the tags of the current tiddler\n*/\nTiddlerWidget.prototype.getTagClasses = function() {\n\tvar tiddler = this.wiki.getTiddler(this.tiddlerTitle);\n\tif(tiddler) {\n\t\tvar tags = [];\n\t\t$tw.utils.each(tiddler.fields.tags,function(tag) {\n\t\t\ttags.push(\"tc-tagged-\" + encodeURIComponent(tag));\n\t\t});\n\t\treturn tags.join(\" \");\n\t} else {\n\t\treturn \"\";\n\t}\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nTiddlerWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes(),\n\t\tnewTiddlerState = this.computeTiddlerState();\n\tif(changedAttributes.tiddler || newTiddlerState.hash !== this.tiddlerState.hash) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\nexports.tiddler = TiddlerWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/transclude.js": {
"title": "$:/core/modules/widgets/transclude.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/transclude.js\ntype: application/javascript\nmodule-type: widget\n\nTransclude widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar TranscludeWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nTranscludeWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nTranscludeWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nTranscludeWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.transcludeTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.transcludeSubTiddler = this.getAttribute(\"subtiddler\");\n\tthis.transcludeField = this.getAttribute(\"field\");\n\tthis.transcludeIndex = this.getAttribute(\"index\");\n\tthis.transcludeMode = this.getAttribute(\"mode\");\n\t// Parse the text reference\n\tvar parseAsInline = !this.parseTreeNode.isBlock;\n\tif(this.transcludeMode === \"inline\") {\n\t\tparseAsInline = true;\n\t} else if(this.transcludeMode === \"block\") {\n\t\tparseAsInline = false;\n\t}\n\tvar parser = this.wiki.parseTextReference(\n\t\t\t\t\t\tthis.transcludeTitle,\n\t\t\t\t\t\tthis.transcludeField,\n\t\t\t\t\t\tthis.transcludeIndex,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tparseAsInline: parseAsInline,\n\t\t\t\t\t\t\tsubTiddler: this.transcludeSubTiddler\n\t\t\t\t\t\t}),\n\t\tparseTreeNodes = parser ? parser.tree : this.parseTreeNode.children;\n\t// Set context variables for recursion detection\n\tvar recursionMarker = this.makeRecursionMarker();\n\tthis.setVariable(\"transclusion\",recursionMarker);\n\t// Check for recursion\n\tif(parser) {\n\t\tif(this.parentWidget && this.parentWidget.hasVariable(\"transclusion\",recursionMarker)) {\n\t\t\tparseTreeNodes = [{type: \"element\", tag: \"span\", attributes: {\n\t\t\t\t\"class\": {type: \"string\", value: \"tc-error\"}\n\t\t\t}, children: [\n\t\t\t\t{type: \"text\", text: $tw.language.getString(\"Error/RecursiveTransclusion\")}\n\t\t\t]}];\n\t\t}\n\t}\n\t// Construct the child widgets\n\tthis.makeChildWidgets(parseTreeNodes);\n};\n\n/*\nCompose a string comprising the title, field and/or index to identify this transclusion for recursion detection\n*/\nTranscludeWidget.prototype.makeRecursionMarker = function() {\n\tvar output = [];\n\toutput.push(\"{\");\n\toutput.push(this.getVariable(\"currentTiddler\",{defaultValue: \"\"}));\n\toutput.push(\"|\");\n\toutput.push(this.transcludeTitle || \"\");\n\toutput.push(\"|\");\n\toutput.push(this.transcludeField || \"\");\n\toutput.push(\"|\");\n\toutput.push(this.transcludeIndex || \"\");\n\toutput.push(\"|\");\n\toutput.push(this.transcludeSubTiddler || \"\");\n\toutput.push(\"}\");\n\treturn output.join(\"\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nTranscludeWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedTiddlers[this.transcludeTitle]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\nexports.transclude = TranscludeWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/vars.js": {
"title": "$:/core/modules/widgets/vars.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/vars.js\ntype: application/javascript\nmodule-type: widget\n\nThis widget allows multiple variables to be set in one go:\n\n```\n\\define helloworld() Hello world!\n<$vars greeting=\"Hi\" me={{!!title}} sentence=<<helloworld>>>\n <<greeting>>! I am <<me>> and I say: <<sentence>>\n</$vars>\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar VarsWidget = function(parseTreeNode,options) {\n\t// Call the constructor\n\tWidget.call(this);\n\t// Initialise\t\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nVarsWidget.prototype = Object.create(Widget.prototype);\n\n/*\nRender this widget into the DOM\n*/\nVarsWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nVarsWidget.prototype.execute = function() {\n\t// Parse variables\n\tvar self = this;\n\t$tw.utils.each(this.attributes,function(val,key) {\n\t\tif(key.charAt(0) !== \"$\") {\n\t\t\tself.setVariable(key,val);\n\t\t}\n\t});\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nVarsWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(Object.keys(changedAttributes).length) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports[\"vars\"] = VarsWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/view.js": {
"title": "$:/core/modules/widgets/view.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/view.js\ntype: application/javascript\nmodule-type: widget\n\nView widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ViewWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nViewWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nViewWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tif(this.text) {\n\t\tvar textNode = this.document.createTextNode(this.text);\n\t\tparent.insertBefore(textNode,nextSibling);\n\t\tthis.domNodes.push(textNode);\n\t} else {\n\t\tthis.makeChildWidgets();\n\t\tthis.renderChildren(parent,nextSibling);\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nViewWidget.prototype.execute = function() {\n\t// Get parameters from our attributes\n\tthis.viewTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.viewSubtiddler = this.getAttribute(\"subtiddler\");\n\tthis.viewField = this.getAttribute(\"field\",\"text\");\n\tthis.viewIndex = this.getAttribute(\"index\");\n\tthis.viewFormat = this.getAttribute(\"format\",\"text\");\n\tthis.viewTemplate = this.getAttribute(\"template\",\"\");\n\tthis.viewMode = this.getAttribute(\"mode\",\"block\");\n\tswitch(this.viewFormat) {\n\t\tcase \"htmlwikified\":\n\t\t\tthis.text = this.getValueAsHtmlWikified(this.viewMode);\n\t\t\tbreak;\n\t\tcase \"plainwikified\":\n\t\t\tthis.text = this.getValueAsPlainWikified(this.viewMode);\n\t\t\tbreak;\n\t\tcase \"htmlencodedplainwikified\":\n\t\t\tthis.text = this.getValueAsHtmlEncodedPlainWikified(this.viewMode);\n\t\t\tbreak;\n\t\tcase \"htmlencoded\":\n\t\t\tthis.text = this.getValueAsHtmlEncoded();\n\t\t\tbreak;\n\t\tcase \"urlencoded\":\n\t\t\tthis.text = this.getValueAsUrlEncoded();\n\t\t\tbreak;\n\t\tcase \"doubleurlencoded\":\n\t\t\tthis.text = this.getValueAsDoubleUrlEncoded();\n\t\t\tbreak;\n\t\tcase \"date\":\n\t\t\tthis.text = this.getValueAsDate(this.viewTemplate);\n\t\t\tbreak;\n\t\tcase \"relativedate\":\n\t\t\tthis.text = this.getValueAsRelativeDate();\n\t\t\tbreak;\n\t\tcase \"stripcomments\":\n\t\t\tthis.text = this.getValueAsStrippedComments();\n\t\t\tbreak;\n\t\tcase \"jsencoded\":\n\t\t\tthis.text = this.getValueAsJsEncoded();\n\t\t\tbreak;\n\t\tdefault: // \"text\"\n\t\t\tthis.text = this.getValueAsText();\n\t\t\tbreak;\n\t}\n};\n\n/*\nThe various formatter functions are baked into this widget for the moment. Eventually they will be replaced by macro functions\n*/\n\n/*\nRetrieve the value of the widget. Options are:\nasString: Optionally return the value as a string\n*/\nViewWidget.prototype.getValue = function(options) {\n\toptions = options || {};\n\tvar value = options.asString ? \"\" : undefined;\n\tif(this.viewIndex) {\n\t\tvalue = this.wiki.extractTiddlerDataItem(this.viewTitle,this.viewIndex);\n\t} else {\n\t\tvar tiddler;\n\t\tif(this.viewSubtiddler) {\n\t\t\ttiddler = this.wiki.getSubTiddler(this.viewTitle,this.viewSubtiddler);\t\n\t\t} else {\n\t\t\ttiddler = this.wiki.getTiddler(this.viewTitle);\n\t\t}\n\t\tif(tiddler) {\n\t\t\tif(this.viewField === \"text\" && !this.viewSubtiddler) {\n\t\t\t\t// Calling getTiddlerText() triggers lazy loading of skinny tiddlers\n\t\t\t\tvalue = this.wiki.getTiddlerText(this.viewTitle);\n\t\t\t} else {\n\t\t\t\tif($tw.utils.hop(tiddler.fields,this.viewField)) {\n\t\t\t\t\tif(options.asString) {\n\t\t\t\t\t\tvalue = tiddler.getFieldString(this.viewField);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvalue = tiddler.fields[this.viewField];\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif(this.viewField === \"title\") {\n\t\t\t\tvalue = this.viewTitle;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n\nViewWidget.prototype.getValueAsText = function() {\n\treturn this.getValue({asString: true});\n};\n\nViewWidget.prototype.getValueAsHtmlWikified = function(mode) {\n\treturn this.wiki.renderText(\"text/html\",\"text/vnd.tiddlywiki\",this.getValueAsText(),{\n\t\tparseAsInline: mode !== \"block\",\n\t\tparentWidget: this\n\t});\n};\n\nViewWidget.prototype.getValueAsPlainWikified = function(mode) {\n\treturn this.wiki.renderText(\"text/plain\",\"text/vnd.tiddlywiki\",this.getValueAsText(),{\n\t\tparseAsInline: mode !== \"block\",\n\t\tparentWidget: this\n\t});\n};\n\nViewWidget.prototype.getValueAsHtmlEncodedPlainWikified = function(mode) {\n\treturn $tw.utils.htmlEncode(this.wiki.renderText(\"text/plain\",\"text/vnd.tiddlywiki\",this.getValueAsText(),{\n\t\tparseAsInline: mode !== \"block\",\n\t\tparentWidget: this\n\t}));\n};\n\nViewWidget.prototype.getValueAsHtmlEncoded = function() {\n\treturn $tw.utils.htmlEncode(this.getValueAsText());\n};\n\nViewWidget.prototype.getValueAsUrlEncoded = function() {\n\treturn encodeURIComponent(this.getValueAsText());\n};\n\nViewWidget.prototype.getValueAsDoubleUrlEncoded = function() {\n\treturn encodeURIComponent(encodeURIComponent(this.getValueAsText()));\n};\n\nViewWidget.prototype.getValueAsDate = function(format) {\n\tformat = format || \"YYYY MM DD 0hh:0mm\";\n\tvar value = $tw.utils.parseDate(this.getValue());\n\tif(value && $tw.utils.isDate(value) && value.toString() !== \"Invalid Date\") {\n\t\treturn $tw.utils.formatDateString(value,format);\n\t} else {\n\t\treturn \"\";\n\t}\n};\n\nViewWidget.prototype.getValueAsRelativeDate = function(format) {\n\tvar value = $tw.utils.parseDate(this.getValue());\n\tif(value && $tw.utils.isDate(value) && value.toString() !== \"Invalid Date\") {\n\t\treturn $tw.utils.getRelativeDate((new Date()) - (new Date(value))).description;\n\t} else {\n\t\treturn \"\";\n\t}\n};\n\nViewWidget.prototype.getValueAsStrippedComments = function() {\n\tvar lines = this.getValueAsText().split(\"\\n\"),\n\t\tout = [];\n\tfor(var line=0; line<lines.length; line++) {\n\t\tvar text = lines[line];\n\t\tif(!/^\\s*\\/\\/#/.test(text)) {\n\t\t\tout.push(text);\n\t\t}\n\t}\n\treturn out.join(\"\\n\");\n};\n\nViewWidget.prototype.getValueAsJsEncoded = function() {\n\treturn $tw.utils.stringify(this.getValueAsText());\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nViewWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes.template || changedAttributes.format || changedTiddlers[this.viewTitle]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\n\t}\n};\n\nexports.view = ViewWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/widget.js": {
"title": "$:/core/modules/widgets/widget.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/widget.js\ntype: application/javascript\nmodule-type: widget\n\nWidget base class\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nCreate a widget object for a parse tree node\n\tparseTreeNode: reference to the parse tree node to be rendered\n\toptions: see below\nOptions include:\n\twiki: mandatory reference to wiki associated with this render tree\n\tparentWidget: optional reference to a parent renderer node for the context chain\n\tdocument: optional document object to use instead of global document\n*/\nvar Widget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInitialise widget properties. These steps are pulled out of the constructor so that we can reuse them in subclasses\n*/\nWidget.prototype.initialise = function(parseTreeNode,options) {\n\t// Bail if parseTreeNode is undefined, meaning that the widget constructor was called without any arguments so that it can be subclassed\n\tif(parseTreeNode === undefined) {\n\t\treturn;\n\t}\n\toptions = options || {};\n\t// Save widget info\n\tthis.parseTreeNode = parseTreeNode;\n\tthis.wiki = options.wiki;\n\tthis.parentWidget = options.parentWidget;\n\tthis.variablesConstructor = function() {};\n\tthis.variablesConstructor.prototype = this.parentWidget ? this.parentWidget.variables : {};\n\tthis.variables = new this.variablesConstructor();\n\tthis.document = options.document;\n\tthis.attributes = {};\n\tthis.children = [];\n\tthis.domNodes = [];\n\tthis.eventListeners = {};\n\t// Hashmap of the widget classes\n\tif(!this.widgetClasses) {\n\t\t// Get widget classes\n\t\tWidget.prototype.widgetClasses = $tw.modules.applyMethods(\"widget\");\n\t\t// Process any subclasses\n\t\t$tw.modules.forEachModuleOfType(\"widget-subclass\",function(title,module) {\n\t\t\tif(module.baseClass) {\n\t\t\t\tvar baseClass = Widget.prototype.widgetClasses[module.baseClass];\n\t\t\t\tif(!baseClass) {\n\t\t\t\t\tthrow \"Module '\" + title + \"' is attemping to extend a non-existent base class '\" + module.baseClass + \"'\";\n\t\t\t\t}\n\t\t\t\tvar subClass = module.constructor;\n\t\t\t\tsubClass.prototype = new baseClass();\n\t\t\t\t$tw.utils.extend(subClass.prototype,module.prototype);\n\t\t\t\tWidget.prototype.widgetClasses[module.name || module.baseClass] = subClass;\n\t\t\t}\n\t\t});\n\t}\n};\n\n/*\nRender this widget into the DOM\n*/\nWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nWidget.prototype.execute = function() {\n\tthis.makeChildWidgets();\n};\n\n/*\nSet the value of a context variable\nname: name of the variable\nvalue: value of the variable\nparams: array of {name:, default:} for each parameter\nisMacroDefinition: true if the variable is set via a \\define macro pragma (and hence should have variable substitution performed)\n*/\nWidget.prototype.setVariable = function(name,value,params,isMacroDefinition) {\n\tthis.variables[name] = {value: value, params: params, isMacroDefinition: !!isMacroDefinition};\n};\n\n/*\nGet the prevailing value of a context variable\nname: name of variable\noptions: see below\nOptions include\nparams: array of {name:, value:} for each parameter\ndefaultValue: default value if the variable is not defined\n\nReturns an object with the following fields:\n\nparams: array of {name:,value:} of parameters passed to wikitext variables\ntext: text of variable, with parameters properly substituted\n*/\nWidget.prototype.getVariableInfo = function(name,options) {\n\toptions = options || {};\n\tvar actualParams = options.params || [],\n\t\tparentWidget = this.parentWidget;\n\t// Check for the variable defined in the parent widget (or an ancestor in the prototype chain)\n\tif(parentWidget && name in parentWidget.variables) {\n\t\tvar variable = parentWidget.variables[name],\n\t\t\tvalue = variable.value,\n\t\t\tparams = this.resolveVariableParameters(variable.params,actualParams);\n\t\t// Substitute any parameters specified in the definition\n\t\t$tw.utils.each(params,function(param) {\n\t\t\tvalue = $tw.utils.replaceString(value,new RegExp(\"\\\\$\" + $tw.utils.escapeRegExp(param.name) + \"\\\\$\",\"mg\"),param.value);\n\t\t});\n\t\t// Only substitute variable references if this variable was defined with the \\define pragma\n\t\tif(variable.isMacroDefinition) {\n\t\t\tvalue = this.substituteVariableReferences(value);\t\t\t\n\t\t}\n\t\treturn {\n\t\t\ttext: value,\n\t\t\tparams: params\n\t\t};\n\t}\n\t// If the variable doesn't exist in the parent widget then look for a macro module\n\treturn {\n\t\ttext: this.evaluateMacroModule(name,actualParams,options.defaultValue)\n\t};\n};\n\n/*\nSimplified version of getVariableInfo() that just returns the text\n*/\nWidget.prototype.getVariable = function(name,options) {\n\treturn this.getVariableInfo(name,options).text;\n};\n\nWidget.prototype.resolveVariableParameters = function(formalParams,actualParams) {\n\tformalParams = formalParams || [];\n\tactualParams = actualParams || [];\n\tvar nextAnonParameter = 0, // Next candidate anonymous parameter in macro call\n\t\tparamInfo, paramValue,\n\t\tresults = [];\n\t// Step through each of the parameters in the macro definition\n\tfor(var p=0; p<formalParams.length; p++) {\n\t\t// Check if we've got a macro call parameter with the same name\n\t\tparamInfo = formalParams[p];\n\t\tparamValue = undefined;\n\t\tfor(var m=0; m<actualParams.length; m++) {\n\t\t\tif(actualParams[m].name === paramInfo.name) {\n\t\t\t\tparamValue = actualParams[m].value;\n\t\t\t}\n\t\t}\n\t\t// If not, use the next available anonymous macro call parameter\n\t\twhile(nextAnonParameter < actualParams.length && actualParams[nextAnonParameter].name) {\n\t\t\tnextAnonParameter++;\n\t\t}\n\t\tif(paramValue === undefined && nextAnonParameter < actualParams.length) {\n\t\t\tparamValue = actualParams[nextAnonParameter++].value;\n\t\t}\n\t\t// If we've still not got a value, use the default, if any\n\t\tparamValue = paramValue || paramInfo[\"default\"] || \"\";\n\t\t// Store the parameter name and value\n\t\tresults.push({name: paramInfo.name, value: paramValue});\n\t}\n\treturn results;\n};\n\nWidget.prototype.substituteVariableReferences = function(text) {\n\tvar self = this;\n\treturn (text || \"\").replace(/\\$\\(([^\\)\\$]+)\\)\\$/g,function(match,p1,offset,string) {\n\t\treturn self.getVariable(p1,{defaultValue: \"\"});\n\t});\n};\n\nWidget.prototype.evaluateMacroModule = function(name,actualParams,defaultValue) {\n\tif($tw.utils.hop($tw.macros,name)) {\n\t\tvar macro = $tw.macros[name],\n\t\t\targs = [];\n\t\tif(macro.params.length > 0) {\n\t\t\tvar nextAnonParameter = 0, // Next candidate anonymous parameter in macro call\n\t\t\t\tparamInfo, paramValue;\n\t\t\t// Step through each of the parameters in the macro definition\n\t\t\tfor(var p=0; p<macro.params.length; p++) {\n\t\t\t\t// Check if we've got a macro call parameter with the same name\n\t\t\t\tparamInfo = macro.params[p];\n\t\t\t\tparamValue = undefined;\n\t\t\t\tfor(var m=0; m<actualParams.length; m++) {\n\t\t\t\t\tif(actualParams[m].name === paramInfo.name) {\n\t\t\t\t\t\tparamValue = actualParams[m].value;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// If not, use the next available anonymous macro call parameter\n\t\t\t\twhile(nextAnonParameter < actualParams.length && actualParams[nextAnonParameter].name) {\n\t\t\t\t\tnextAnonParameter++;\n\t\t\t\t}\n\t\t\t\tif(paramValue === undefined && nextAnonParameter < actualParams.length) {\n\t\t\t\t\tparamValue = actualParams[nextAnonParameter++].value;\n\t\t\t\t}\n\t\t\t\t// If we've still not got a value, use the default, if any\n\t\t\t\tparamValue = paramValue || paramInfo[\"default\"] || \"\";\n\t\t\t\t// Save the parameter\n\t\t\t\targs.push(paramValue);\n\t\t\t}\n\t\t}\n\t\telse for(var i=0; i<actualParams.length; ++i) {\n\t\t\targs.push(actualParams[i].value);\n\t\t}\n\t\treturn (macro.run.apply(this,args) || \"\").toString();\n\t} else {\n\t\treturn defaultValue;\n\t}\n};\n\n/*\nCheck whether a given context variable value exists in the parent chain\n*/\nWidget.prototype.hasVariable = function(name,value) {\n\tvar node = this;\n\twhile(node) {\n\t\tif($tw.utils.hop(node.variables,name) && node.variables[name].value === value) {\n\t\t\treturn true;\n\t\t}\n\t\tnode = node.parentWidget;\n\t}\n\treturn false;\n};\n\n/*\nConstruct a qualifying string based on a hash of concatenating the values of a given variable in the parent chain\n*/\nWidget.prototype.getStateQualifier = function(name) {\n\tthis.qualifiers = this.qualifiers || Object.create(null);\n\tname = name || \"transclusion\";\n\tif(this.qualifiers[name]) {\n\t\treturn this.qualifiers[name];\n\t} else {\n\t\tvar output = [],\n\t\t\tnode = this;\n\t\twhile(node && node.parentWidget) {\n\t\t\tif($tw.utils.hop(node.parentWidget.variables,name)) {\n\t\t\t\toutput.push(node.getVariable(name));\n\t\t\t}\n\t\t\tnode = node.parentWidget;\n\t\t}\n\t\tvar value = $tw.utils.hashString(output.join(\"\"));\n\t\tthis.qualifiers[name] = value;\n\t\treturn value;\n\t}\n};\n\n/*\nCompute the current values of the attributes of the widget. Returns a hashmap of the names of the attributes that have changed\n*/\nWidget.prototype.computeAttributes = function() {\n\tvar changedAttributes = {},\n\t\tself = this,\n\t\tvalue;\n\t$tw.utils.each(this.parseTreeNode.attributes,function(attribute,name) {\n\t\tif(attribute.type === \"filtered\") {\n\t\t\tvalue = self.wiki.filterTiddlers(attribute.filter,self)[0] || \"\";\n\t\t} else if(attribute.type === \"indirect\") {\n\t\t\tvalue = self.wiki.getTextReference(attribute.textReference,\"\",self.getVariable(\"currentTiddler\"));\n\t\t} else if(attribute.type === \"macro\") {\n\t\t\tvalue = self.getVariable(attribute.value.name,{params: attribute.value.params});\n\t\t} else { // String attribute\n\t\t\tvalue = attribute.value;\n\t\t}\n\t\t// Check whether the attribute has changed\n\t\tif(self.attributes[name] !== value) {\n\t\t\tself.attributes[name] = value;\n\t\t\tchangedAttributes[name] = true;\n\t\t}\n\t});\n\treturn changedAttributes;\n};\n\n/*\nCheck for the presence of an attribute\n*/\nWidget.prototype.hasAttribute = function(name) {\n\treturn $tw.utils.hop(this.attributes,name);\n};\n\n/*\nGet the value of an attribute\n*/\nWidget.prototype.getAttribute = function(name,defaultText) {\n\tif($tw.utils.hop(this.attributes,name)) {\n\t\treturn this.attributes[name];\n\t} else {\n\t\treturn defaultText;\n\t}\n};\n\n/*\nAssign the computed attributes of the widget to a domNode\noptions include:\nexcludeEventAttributes: ignores attributes whose name begins with \"on\"\n*/\nWidget.prototype.assignAttributes = function(domNode,options) {\n\toptions = options || {};\n\tvar self = this;\n\t$tw.utils.each(this.attributes,function(v,a) {\n\t\t// Check exclusions\n\t\tif(options.excludeEventAttributes && a.substr(0,2) === \"on\") {\n\t\t\tv = undefined;\n\t\t}\n\t\tif(v !== undefined) {\n\t\t\tvar b = a.split(\":\");\n\t\t\t// Setting certain attributes can cause a DOM error (eg xmlns on the svg element)\n\t\t\ttry {\n\t\t\t\tif (b.length == 2 && b[0] == \"xlink\"){\n\t\t\t\t\tdomNode.setAttributeNS(\"http://www.w3.org/1999/xlink\",b[1],v);\n\t\t\t\t} else {\n\t\t\t\t\tdomNode.setAttributeNS(null,a,v);\n\t\t\t\t}\n\t\t\t} catch(e) {\n\t\t\t}\n\t\t}\n\t});\n};\n\n/*\nMake child widgets correspondng to specified parseTreeNodes\n*/\nWidget.prototype.makeChildWidgets = function(parseTreeNodes) {\n\tthis.children = [];\n\tvar self = this;\n\t$tw.utils.each(parseTreeNodes || (this.parseTreeNode && this.parseTreeNode.children),function(childNode) {\n\t\tself.children.push(self.makeChildWidget(childNode));\n\t});\n};\n\n/*\nConstruct the widget object for a parse tree node\n*/\nWidget.prototype.makeChildWidget = function(parseTreeNode) {\n\tvar WidgetClass = this.widgetClasses[parseTreeNode.type];\n\tif(!WidgetClass) {\n\t\tWidgetClass = this.widgetClasses.text;\n\t\tparseTreeNode = {type: \"text\", text: \"Undefined widget '\" + parseTreeNode.type + \"'\"};\n\t}\n\treturn new WidgetClass(parseTreeNode,{\n\t\twiki: this.wiki,\n\t\tvariables: {},\n\t\tparentWidget: this,\n\t\tdocument: this.document\n\t});\n};\n\n/*\nGet the next sibling of this widget\n*/\nWidget.prototype.nextSibling = function() {\n\tif(this.parentWidget) {\n\t\tvar index = this.parentWidget.children.indexOf(this);\n\t\tif(index !== -1 && index < this.parentWidget.children.length-1) {\n\t\t\treturn this.parentWidget.children[index+1];\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nGet the previous sibling of this widget\n*/\nWidget.prototype.previousSibling = function() {\n\tif(this.parentWidget) {\n\t\tvar index = this.parentWidget.children.indexOf(this);\n\t\tif(index !== -1 && index > 0) {\n\t\t\treturn this.parentWidget.children[index-1];\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nRender the children of this widget into the DOM\n*/\nWidget.prototype.renderChildren = function(parent,nextSibling) {\n\tvar children = this.children;\n\tfor(var i = 0; i < children.length; i++) {\n\t\tchildren[i].render(parent,nextSibling);\n\t};\n};\n\n/*\nAdd a list of event listeners from an array [{type:,handler:},...]\n*/\nWidget.prototype.addEventListeners = function(listeners) {\n\tvar self = this;\n\t$tw.utils.each(listeners,function(listenerInfo) {\n\t\tself.addEventListener(listenerInfo.type,listenerInfo.handler);\n\t});\n};\n\n/*\nAdd an event listener\n*/\nWidget.prototype.addEventListener = function(type,handler) {\n\tvar self = this;\n\tif(typeof handler === \"string\") { // The handler is a method name on this widget\n\t\tthis.eventListeners[type] = function(event) {\n\t\t\treturn self[handler].call(self,event);\n\t\t};\n\t} else { // The handler is a function\n\t\tthis.eventListeners[type] = function(event) {\n\t\t\treturn handler.call(self,event);\n\t\t};\n\t}\n};\n\n/*\nDispatch an event to a widget. If the widget doesn't handle the event then it is also dispatched to the parent widget\n*/\nWidget.prototype.dispatchEvent = function(event) {\n\t// Dispatch the event if this widget handles it\n\tvar listener = this.eventListeners[event.type];\n\tif(listener) {\n\t\t// Don't propagate the event if the listener returned false\n\t\tif(!listener(event)) {\n\t\t\treturn false;\n\t\t}\n\t}\n\t// Dispatch the event to the parent widget\n\tif(this.parentWidget) {\n\t\treturn this.parentWidget.dispatchEvent(event);\n\t}\n\treturn true;\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nWidget.prototype.refresh = function(changedTiddlers) {\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nRebuild a previously rendered widget\n*/\nWidget.prototype.refreshSelf = function() {\n\tvar nextSibling = this.findNextSiblingDomNode();\n\tthis.removeChildDomNodes();\n\tthis.render(this.parentDomNode,nextSibling);\n};\n\n/*\nRefresh all the children of a widget\n*/\nWidget.prototype.refreshChildren = function(changedTiddlers) {\n\tvar children = this.children,\n\t\trefreshed = false;\n\tfor (var i = 0; i < children.length; i++) {\n\t\trefreshed = children[i].refresh(changedTiddlers) || refreshed;\n\t}\n\treturn refreshed;\n};\n\n/*\nFind the next sibling in the DOM to this widget. This is done by scanning the widget tree through all next siblings and their descendents that share the same parent DOM node\n*/\nWidget.prototype.findNextSiblingDomNode = function(startIndex) {\n\t// Refer to this widget by its index within its parents children\n\tvar parent = this.parentWidget,\n\t\tindex = startIndex !== undefined ? startIndex : parent.children.indexOf(this);\nif(index === -1) {\n\tthrow \"node not found in parents children\";\n}\n\t// Look for a DOM node in the later siblings\n\twhile(++index < parent.children.length) {\n\t\tvar domNode = parent.children[index].findFirstDomNode();\n\t\tif(domNode) {\n\t\t\treturn domNode;\n\t\t}\n\t}\n\t// Go back and look for later siblings of our parent if it has the same parent dom node\n\tvar grandParent = parent.parentWidget;\n\tif(grandParent && parent.parentDomNode === this.parentDomNode) {\n\t\tindex = grandParent.children.indexOf(parent);\n\t\tif(index !== -1) {\n\t\t\treturn parent.findNextSiblingDomNode(index);\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nFind the first DOM node generated by a widget or its children\n*/\nWidget.prototype.findFirstDomNode = function() {\n\t// Return the first dom node of this widget, if we've got one\n\tif(this.domNodes.length > 0) {\n\t\treturn this.domNodes[0];\n\t}\n\t// Otherwise, recursively call our children\n\tfor(var t=0; t<this.children.length; t++) {\n\t\tvar domNode = this.children[t].findFirstDomNode();\n\t\tif(domNode) {\n\t\t\treturn domNode;\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nRemove any DOM nodes created by this widget or its children\n*/\nWidget.prototype.removeChildDomNodes = function() {\n\t// If this widget has directly created DOM nodes, delete them and exit. This assumes that any child widgets are contained within the created DOM nodes, which would normally be the case\n\tif(this.domNodes.length > 0) {\n\t\t$tw.utils.each(this.domNodes,function(domNode) {\n\t\t\tdomNode.parentNode.removeChild(domNode);\n\t\t});\n\t\tthis.domNodes = [];\n\t} else {\n\t\t// Otherwise, ask the child widgets to delete their DOM nodes\n\t\t$tw.utils.each(this.children,function(childWidget) {\n\t\t\tchildWidget.removeChildDomNodes();\n\t\t});\n\t}\n};\n\n/*\nInvoke the action widgets that are descendents of the current widget.\n*/\nWidget.prototype.invokeActions = function(triggeringWidget,event) {\n\tvar handled = false;\n\t// For each child widget\n\tfor(var t=0; t<this.children.length; t++) {\n\t\tvar child = this.children[t];\n\t\t// Invoke the child if it is an action widget\n\t\tif(child.invokeAction) {\n\t\t\tchild.refreshSelf();\n\t\t\tif(child.invokeAction(triggeringWidget,event)) {\n\t\t\t\thandled = true;\n\t\t\t}\n\t\t}\n\t\t// Propagate through through the child if it permits it\n\t\tif(child.allowActionPropagation() && child.invokeActions(triggeringWidget,event)) {\n\t\t\thandled = true;\n\t\t}\n\t}\n\treturn handled;\n};\n\n/*\nInvoke the action widgets defined in a string\n*/\nWidget.prototype.invokeActionString = function(actions,triggeringWidget,event,variables) {\n\tactions = actions || \"\";\n\tvar parser = this.wiki.parseText(\"text/vnd.tiddlywiki\",actions,{\n\t\t\tparentWidget: this,\n\t\t\tdocument: this.document\n\t\t}),\n\t\twidgetNode = this.wiki.makeWidget(parser,{\n\t\t\tparentWidget: this,\n\t\t\tdocument: this.document,\n\t\t\tvariables: variables\n\t\t});\n\tvar container = this.document.createElement(\"div\");\n\twidgetNode.render(container,null);\n\treturn widgetNode.invokeActions(this,event);\n};\n\nWidget.prototype.allowActionPropagation = function() {\n\treturn true;\n};\n\nexports.widget = Widget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/wikify.js": {
"title": "$:/core/modules/widgets/wikify.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/wikify.js\ntype: application/javascript\nmodule-type: widget\n\nWidget to wikify text into a variable\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar WikifyWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nWikifyWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nWikifyWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nWikifyWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.wikifyName = this.getAttribute(\"name\");\n\tthis.wikifyText = this.getAttribute(\"text\");\n\tthis.wikifyType = this.getAttribute(\"type\");\n\tthis.wikifyMode = this.getAttribute(\"mode\",\"block\");\n\tthis.wikifyOutput = this.getAttribute(\"output\",\"text\");\n\t// Create the parse tree\n\tthis.wikifyParser = this.wiki.parseText(this.wikifyType,this.wikifyText,{\n\t\t\tparseAsInline: this.wikifyMode === \"inline\"\n\t\t});\n\t// Create the widget tree \n\tthis.wikifyWidgetNode = this.wiki.makeWidget(this.wikifyParser,{\n\t\t\tdocument: $tw.fakeDocument,\n\t\t\tparentWidget: this\n\t\t});\n\t// Render the widget tree to the container\n\tthis.wikifyContainer = $tw.fakeDocument.createElement(\"div\");\n\tthis.wikifyWidgetNode.render(this.wikifyContainer,null);\n\tthis.wikifyResult = this.getResult();\n\t// Set context variable\n\tthis.setVariable(this.wikifyName,this.wikifyResult);\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nReturn the result string\n*/\nWikifyWidget.prototype.getResult = function() {\n\tvar result;\n\tswitch(this.wikifyOutput) {\n\t\tcase \"text\":\n\t\t\tresult = this.wikifyContainer.textContent;\n\t\t\tbreak;\n\t\tcase \"formattedtext\":\n\t\t\tresult = this.wikifyContainer.formattedTextContent;\n\t\t\tbreak;\n\t\tcase \"html\":\n\t\t\tresult = this.wikifyContainer.innerHTML;\n\t\t\tbreak;\n\t\tcase \"parsetree\":\n\t\t\tresult = JSON.stringify(this.wikifyParser.tree,0,$tw.config.preferences.jsonSpaces);\n\t\t\tbreak;\n\t\tcase \"widgettree\":\n\t\t\tresult = JSON.stringify(this.getWidgetTree(),0,$tw.config.preferences.jsonSpaces);\n\t\t\tbreak;\n\t}\n\treturn result;\n};\n\n/*\nReturn a string of the widget tree\n*/\nWikifyWidget.prototype.getWidgetTree = function() {\n\tvar copyNode = function(widgetNode,resultNode) {\n\t\t\tvar type = widgetNode.parseTreeNode.type;\n\t\t\tresultNode.type = type;\n\t\t\tswitch(type) {\n\t\t\t\tcase \"element\":\n\t\t\t\t\tresultNode.tag = widgetNode.parseTreeNode.tag;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"text\":\n\t\t\t\t\tresultNode.text = widgetNode.parseTreeNode.text;\n\t\t\t\t\tbreak;\t\n\t\t\t}\n\t\t\tif(Object.keys(widgetNode.attributes || {}).length > 0) {\n\t\t\t\tresultNode.attributes = {};\n\t\t\t\t$tw.utils.each(widgetNode.attributes,function(attr,attrName) {\n\t\t\t\t\tresultNode.attributes[attrName] = widgetNode.getAttribute(attrName);\n\t\t\t\t});\n\t\t\t}\n\t\t\tif(Object.keys(widgetNode.children || {}).length > 0) {\n\t\t\t\tresultNode.children = [];\n\t\t\t\t$tw.utils.each(widgetNode.children,function(widgetChildNode) {\n\t\t\t\t\tvar node = {};\n\t\t\t\t\tresultNode.children.push(node);\n\t\t\t\t\tcopyNode(widgetChildNode,node);\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tresults = {};\n\tcopyNode(this.wikifyWidgetNode,results);\n\treturn results;\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nWikifyWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\t// Refresh ourselves entirely if any of our attributes have changed\n\tif(changedAttributes.name || changedAttributes.text || changedAttributes.type || changedAttributes.mode || changedAttributes.output) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\t// Refresh the widget tree\n\t\tif(this.wikifyWidgetNode.refresh(changedTiddlers)) {\n\t\t\t// Check if there was any change\n\t\t\tvar result = this.getResult();\n\t\t\tif(result !== this.wikifyResult) {\n\t\t\t\t// If so, save the change\n\t\t\t\tthis.wikifyResult = result;\n\t\t\t\tthis.setVariable(this.wikifyName,this.wikifyResult);\n\t\t\t\t// Refresh each of our child widgets\n\t\t\t\t$tw.utils.each(this.children,function(childWidget) {\n\t\t\t\t\tchildWidget.refreshSelf();\n\t\t\t\t});\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\t// Just refresh the children\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.wikify = WikifyWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/wiki-bulkops.js": {
"title": "$:/core/modules/wiki-bulkops.js",
"text": "/*\\\ntitle: $:/core/modules/wiki-bulkops.js\ntype: application/javascript\nmodule-type: wikimethod\n\nBulk tiddler operations such as rename.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nRename a tiddler, and relink any tags or lists that reference it.\n*/\nfunction renameTiddler(fromTitle,toTitle,options) {\n\tfromTitle = (fromTitle || \"\").trim();\n\ttoTitle = (toTitle || \"\").trim();\n\toptions = options || {};\n\tif(fromTitle && toTitle && fromTitle !== toTitle) {\n\t\t// Rename the tiddler itself\n\t\tvar oldTiddler = this.getTiddler(fromTitle),\n\t\t\tnewTiddler = new $tw.Tiddler(oldTiddler,{title: toTitle},this.getModificationFields());\n\t\tnewTiddler = $tw.hooks.invokeHook(\"th-renaming-tiddler\",newTiddler,oldTiddler);\n\t\tthis.addTiddler(newTiddler);\n\t\tthis.deleteTiddler(fromTitle);\n\t\t// Rename any tags or lists that reference it\n\t\tthis.relinkTiddler(fromTitle,toTitle,options)\n\t}\n}\n\n/*\nRelink any tags or lists that reference a given tiddler\n*/\nfunction relinkTiddler(fromTitle,toTitle,options) {\n\tvar self = this;\n\tfromTitle = (fromTitle || \"\").trim();\n\ttoTitle = (toTitle || \"\").trim();\n\toptions = options || {};\n\tif(fromTitle && toTitle && fromTitle !== toTitle) {\n\t\tthis.each(function(tiddler,title) {\n\t\t\tvar type = tiddler.fields.type || \"\";\n\t\t\t// Don't touch plugins or JavaScript modules\n\t\t\tif(!tiddler.fields[\"plugin-type\"] && type !== \"application/javascript\") {\n\t\t\t\tvar tags = tiddler.fields.tags ? tiddler.fields.tags.slice(0) : undefined,\n\t\t\t\t\tlist = tiddler.fields.list ? tiddler.fields.list.slice(0) : undefined,\n\t\t\t\t\tisModified = false;\n\t\t\t\tif(!options.dontRenameInTags) {\n\t\t\t\t\t// Rename tags\n\t\t\t\t\t$tw.utils.each(tags,function (title,index) {\n\t\t\t\t\t\tif(title === fromTitle) {\nconsole.log(\"Renaming tag '\" + tags[index] + \"' to '\" + toTitle + \"' of tiddler '\" + tiddler.fields.title + \"'\");\n\t\t\t\t\t\t\ttags[index] = toTitle;\n\t\t\t\t\t\t\tisModified = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif(!options.dontRenameInLists) {\n\t\t\t\t\t// Rename lists\n\t\t\t\t\t$tw.utils.each(list,function (title,index) {\n\t\t\t\t\t\tif(title === fromTitle) {\nconsole.log(\"Renaming list item '\" + list[index] + \"' to '\" + toTitle + \"' of tiddler '\" + tiddler.fields.title + \"'\");\n\t\t\t\t\t\t\tlist[index] = toTitle;\n\t\t\t\t\t\t\tisModified = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif(isModified) {\n\t\t\t\t\tvar newTiddler = new $tw.Tiddler(tiddler,{tags: tags, list: list},self.getModificationFields())\n\t\t\t\t\tnewTiddler = $tw.hooks.invokeHook(\"th-relinking-tiddler\",newTiddler,tiddler);\n\t\t\t\t\tself.addTiddler(newTiddler);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n};\n\nexports.renameTiddler = renameTiddler;\nexports.relinkTiddler = relinkTiddler;\n\n})();\n",
"type": "application/javascript",
"module-type": "wikimethod"
},
"$:/core/modules/wiki.js": {
"title": "$:/core/modules/wiki.js",
"text": "/*\\\ntitle: $:/core/modules/wiki.js\ntype: application/javascript\nmodule-type: wikimethod\n\nExtension methods for the $tw.Wiki object\n\nAdds the following properties to the wiki object:\n\n* `eventListeners` is a hashmap by type of arrays of listener functions\n* `changedTiddlers` is a hashmap describing changes to named tiddlers since wiki change events were last dispatched. Each entry is a hashmap containing two fields:\n\tmodified: true/false\n\tdeleted: true/false\n* `changeCount` is a hashmap by tiddler title containing a numerical index that starts at zero and is incremented each time a tiddler is created changed or deleted\n* `caches` is a hashmap by tiddler title containing a further hashmap of named cache objects. Caches are automatically cleared when a tiddler is modified or deleted\n* `globalCache` is a hashmap by cache name of cache objects that are cleared whenever any tiddler change occurs\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nvar USER_NAME_TITLE = \"$:/status/UserName\",\n\tTIMESTAMP_DISABLE_TITLE = \"$:/config/TimestampDisable\";\n\n/*\nAdd available indexers to this wiki\n*/\nexports.addIndexersToWiki = function() {\n\tvar self = this;\n\t$tw.utils.each($tw.modules.applyMethods(\"indexer\"),function(Indexer,name) {\n\t\tself.addIndexer(new Indexer(self),name);\n\t});\n};\n\n/*\nGet the value of a text reference. Text references can have any of these forms:\n\t<tiddlertitle>\n\t<tiddlertitle>!!<fieldname>\n\t!!<fieldname> - specifies a field of the current tiddlers\n\t<tiddlertitle>##<index>\n*/\nexports.getTextReference = function(textRef,defaultText,currTiddlerTitle) {\n\tvar tr = $tw.utils.parseTextReference(textRef),\n\t\ttitle = tr.title || currTiddlerTitle;\n\tif(tr.field) {\n\t\tvar tiddler = this.getTiddler(title);\n\t\tif(tr.field === \"title\") { // Special case so we can return the title of a non-existent tiddler\n\t\t\treturn title;\n\t\t} else if(tiddler && $tw.utils.hop(tiddler.fields,tr.field)) {\n\t\t\treturn tiddler.getFieldString(tr.field);\n\t\t} else {\n\t\t\treturn defaultText;\n\t\t}\n\t} else if(tr.index) {\n\t\treturn this.extractTiddlerDataItem(title,tr.index,defaultText);\n\t} else {\n\t\treturn this.getTiddlerText(title,defaultText);\n\t}\n};\n\nexports.setTextReference = function(textRef,value,currTiddlerTitle) {\n\tvar tr = $tw.utils.parseTextReference(textRef),\n\t\ttitle = tr.title || currTiddlerTitle;\n\tthis.setText(title,tr.field,tr.index,value);\n};\n\nexports.setText = function(title,field,index,value,options) {\n\toptions = options || {};\n\tvar creationFields = options.suppressTimestamp ? {} : this.getCreationFields(),\n\t\tmodificationFields = options.suppressTimestamp ? {} : this.getModificationFields();\n\t// Check if it is a reference to a tiddler field\n\tif(index) {\n\t\tvar data = this.getTiddlerData(title,Object.create(null));\n\t\tif(value !== undefined) {\n\t\t\tdata[index] = value;\n\t\t} else {\n\t\t\tdelete data[index];\n\t\t}\n\t\tthis.setTiddlerData(title,data,modificationFields);\n\t} else {\n\t\tvar tiddler = this.getTiddler(title),\n\t\t\tfields = {title: title};\n\t\tfields[field || \"text\"] = value;\n\t\tthis.addTiddler(new $tw.Tiddler(creationFields,tiddler,fields,modificationFields));\n\t}\n};\n\nexports.deleteTextReference = function(textRef,currTiddlerTitle) {\n\tvar tr = $tw.utils.parseTextReference(textRef),\n\t\ttitle,tiddler,fields;\n\t// Check if it is a reference to a tiddler\n\tif(tr.title && !tr.field) {\n\t\tthis.deleteTiddler(tr.title);\n\t// Else check for a field reference\n\t} else if(tr.field) {\n\t\ttitle = tr.title || currTiddlerTitle;\n\t\ttiddler = this.getTiddler(title);\n\t\tif(tiddler && $tw.utils.hop(tiddler.fields,tr.field)) {\n\t\t\tfields = Object.create(null);\n\t\t\tfields[tr.field] = undefined;\n\t\t\tthis.addTiddler(new $tw.Tiddler(tiddler,fields,this.getModificationFields()));\n\t\t}\n\t}\n};\n\nexports.addEventListener = function(type,listener) {\n\tthis.eventListeners = this.eventListeners || {};\n\tthis.eventListeners[type] = this.eventListeners[type] || [];\n\tthis.eventListeners[type].push(listener);\t\n};\n\nexports.removeEventListener = function(type,listener) {\n\tvar listeners = this.eventListeners[type];\n\tif(listeners) {\n\t\tvar p = listeners.indexOf(listener);\n\t\tif(p !== -1) {\n\t\t\tlisteners.splice(p,1);\n\t\t}\n\t}\n};\n\nexports.dispatchEvent = function(type /*, args */) {\n\tvar args = Array.prototype.slice.call(arguments,1),\n\t\tlisteners = this.eventListeners[type];\n\tif(listeners) {\n\t\tfor(var p=0; p<listeners.length; p++) {\n\t\t\tvar listener = listeners[p];\n\t\t\tlistener.apply(listener,args);\n\t\t}\n\t}\n};\n\n/*\nCauses a tiddler to be marked as changed, incrementing the change count, and triggers event handlers.\nThis method should be called after the changes it describes have been made to the wiki.tiddlers[] array.\n\ttitle: Title of tiddler\n\tisDeleted: defaults to false (meaning the tiddler has been created or modified),\n\t\ttrue if the tiddler has been deleted\n*/\nexports.enqueueTiddlerEvent = function(title,isDeleted) {\n\t// Record the touch in the list of changed tiddlers\n\tthis.changedTiddlers = this.changedTiddlers || Object.create(null);\n\tthis.changedTiddlers[title] = this.changedTiddlers[title] || Object.create(null);\n\tthis.changedTiddlers[title][isDeleted ? \"deleted\" : \"modified\"] = true;\n\t// Increment the change count\n\tthis.changeCount = this.changeCount || Object.create(null);\n\tif($tw.utils.hop(this.changeCount,title)) {\n\t\tthis.changeCount[title]++;\n\t} else {\n\t\tthis.changeCount[title] = 1;\n\t}\n\t// Trigger events\n\tthis.eventListeners = this.eventListeners || {};\n\tif(!this.eventsTriggered) {\n\t\tvar self = this;\n\t\t$tw.utils.nextTick(function() {\n\t\t\tvar changes = self.changedTiddlers;\n\t\t\tself.changedTiddlers = Object.create(null);\n\t\t\tself.eventsTriggered = false;\n\t\t\tif($tw.utils.count(changes) > 0) {\n\t\t\t\tself.dispatchEvent(\"change\",changes);\n\t\t\t}\n\t\t});\n\t\tthis.eventsTriggered = true;\n\t}\n};\n\nexports.getSizeOfTiddlerEventQueue = function() {\n\treturn $tw.utils.count(this.changedTiddlers);\n};\n\nexports.clearTiddlerEventQueue = function() {\n\tthis.changedTiddlers = Object.create(null);\n\tthis.changeCount = Object.create(null);\n};\n\nexports.getChangeCount = function(title) {\n\tthis.changeCount = this.changeCount || Object.create(null);\n\tif($tw.utils.hop(this.changeCount,title)) {\n\t\treturn this.changeCount[title];\n\t} else {\n\t\treturn 0;\n\t}\n};\n\n/*\nGenerate an unused title from the specified base\n*/\nexports.generateNewTitle = function(baseTitle,options) {\n\toptions = options || {};\n\tvar c = 0,\n\t\ttitle = baseTitle;\n\twhile(this.tiddlerExists(title) || this.isShadowTiddler(title) || this.findDraft(title)) {\n\t\ttitle = baseTitle + \n\t\t\t(options.prefix || \" \") + \n\t\t\t(++c);\n\t}\n\treturn title;\n};\n\nexports.isSystemTiddler = function(title) {\n\treturn title && title.indexOf(\"$:/\") === 0;\n};\n\nexports.isTemporaryTiddler = function(title) {\n\treturn title && title.indexOf(\"$:/temp/\") === 0;\n};\n\nexports.isImageTiddler = function(title) {\n\tvar tiddler = this.getTiddler(title);\n\tif(tiddler) {\t\t\n\t\tvar contentTypeInfo = $tw.config.contentTypeInfo[tiddler.fields.type || \"text/vnd.tiddlywiki\"];\n\t\treturn !!contentTypeInfo && contentTypeInfo.flags.indexOf(\"image\") !== -1;\n\t} else {\n\t\treturn null;\n\t}\n};\n\nexports.isBinaryTiddler = function(title) {\n\tvar tiddler = this.getTiddler(title);\n\tif(tiddler) {\t\t\n\t\tvar contentTypeInfo = $tw.config.contentTypeInfo[tiddler.fields.type || \"text/vnd.tiddlywiki\"];\n\t\treturn !!contentTypeInfo && contentTypeInfo.encoding === \"base64\";\n\t} else {\n\t\treturn null;\n\t}\n};\n\n/*\nLike addTiddler() except it will silently reject any plugin tiddlers that are older than the currently loaded version. Returns true if the tiddler was imported\n*/\nexports.importTiddler = function(tiddler) {\n\tvar existingTiddler = this.getTiddler(tiddler.fields.title);\n\t// Check if we're dealing with a plugin\n\tif(tiddler && tiddler.hasField(\"plugin-type\") && tiddler.hasField(\"version\") && existingTiddler && existingTiddler.hasField(\"plugin-type\") && existingTiddler.hasField(\"version\")) {\n\t\t// Reject the incoming plugin if it is older\n\t\tif(!$tw.utils.checkVersions(tiddler.fields.version,existingTiddler.fields.version)) {\n\t\t\treturn false;\n\t\t}\n\t}\n\t// Fall through to adding the tiddler\n\tthis.addTiddler(tiddler);\n\treturn true;\n};\n\n/*\nReturn a hashmap of the fields that should be set when a tiddler is created\n*/\nexports.getCreationFields = function() {\n\tif(this.getTiddlerText(TIMESTAMP_DISABLE_TITLE,\"\").toLowerCase() !== \"yes\") {\n\t\tvar fields = {\n\t\t\t\tcreated: new Date()\n\t\t\t},\n\t\t\tcreator = this.getTiddlerText(USER_NAME_TITLE);\n\t\tif(creator) {\n\t\t\tfields.creator = creator;\n\t\t}\n\t\treturn fields;\n\t} else {\n\t\treturn {};\n\t}\n};\n\n/*\nReturn a hashmap of the fields that should be set when a tiddler is modified\n*/\nexports.getModificationFields = function() {\n\tif(this.getTiddlerText(TIMESTAMP_DISABLE_TITLE,\"\").toLowerCase() !== \"yes\") {\n\t\tvar fields = Object.create(null),\n\t\t\tmodifier = this.getTiddlerText(USER_NAME_TITLE);\n\t\tfields.modified = new Date();\n\t\tif(modifier) {\n\t\t\tfields.modifier = modifier;\n\t\t}\n\t\treturn fields;\n\t} else {\n\t\treturn {};\n\t}\n};\n\n/*\nReturn a sorted array of tiddler titles. Options include:\nsortField: field to sort by\nexcludeTag: tag to exclude\nincludeSystem: whether to include system tiddlers (defaults to false)\n*/\nexports.getTiddlers = function(options) {\n\toptions = options || Object.create(null);\n\tvar self = this,\n\t\tsortField = options.sortField || \"title\",\n\t\ttiddlers = [], t, titles = [];\n\tthis.each(function(tiddler,title) {\n\t\tif(options.includeSystem || !self.isSystemTiddler(title)) {\n\t\t\tif(!options.excludeTag || !tiddler.hasTag(options.excludeTag)) {\n\t\t\t\ttiddlers.push(tiddler);\n\t\t\t}\n\t\t}\n\t});\n\ttiddlers.sort(function(a,b) {\n\t\tvar aa = a.fields[sortField].toLowerCase() || \"\",\n\t\t\tbb = b.fields[sortField].toLowerCase() || \"\";\n\t\tif(aa < bb) {\n\t\t\treturn -1;\n\t\t} else {\n\t\t\tif(aa > bb) {\n\t\t\t\treturn 1;\n\t\t\t} else {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t}\n\t});\n\tfor(t=0; t<tiddlers.length; t++) {\n\t\ttitles.push(tiddlers[t].fields.title);\n\t}\n\treturn titles;\n};\n\nexports.countTiddlers = function(excludeTag) {\n\tvar tiddlers = this.getTiddlers({excludeTag: excludeTag});\n\treturn $tw.utils.count(tiddlers);\n};\n\n/*\nReturns a function iterator(callback) that iterates through the specified titles, and invokes the callback with callback(tiddler,title)\n*/\nexports.makeTiddlerIterator = function(titles) {\n\tvar self = this;\n\tif(!$tw.utils.isArray(titles)) {\n\t\ttitles = Object.keys(titles);\n\t} else {\n\t\ttitles = titles.slice(0);\n\t}\n\treturn function(callback) {\n\t\ttitles.forEach(function(title) {\n\t\t\tcallback(self.getTiddler(title),title);\n\t\t});\n\t};\n};\n\n/*\nSort an array of tiddler titles by a specified field\n\ttitles: array of titles (sorted in place)\n\tsortField: name of field to sort by\n\tisDescending: true if the sort should be descending\n\tisCaseSensitive: true if the sort should consider upper and lower case letters to be different\n*/\nexports.sortTiddlers = function(titles,sortField,isDescending,isCaseSensitive,isNumeric,isAlphaNumeric) {\n\tvar self = this;\n\ttitles.sort(function(a,b) {\n\t\tvar x,y,\n\t\t\tcompareNumbers = function(x,y) {\n\t\t\t\tvar result = \n\t\t\t\t\tisNaN(x) && !isNaN(y) ? (isDescending ? -1 : 1) :\n\t\t\t\t\t!isNaN(x) && isNaN(y) ? (isDescending ? 1 : -1) :\n\t\t\t\t\t\t\t\t\t\t\t(isDescending ? y - x : x - y);\n\t\t\t\treturn result;\n\t\t\t};\n\t\tif(sortField !== \"title\") {\n\t\t\tvar tiddlerA = self.getTiddler(a),\n\t\t\t\ttiddlerB = self.getTiddler(b);\n\t\t\tif(tiddlerA) {\n\t\t\t\ta = tiddlerA.fields[sortField] || \"\";\n\t\t\t} else {\n\t\t\t\ta = \"\";\n\t\t\t}\n\t\t\tif(tiddlerB) {\n\t\t\t\tb = tiddlerB.fields[sortField] || \"\";\n\t\t\t} else {\n\t\t\t\tb = \"\";\n\t\t\t}\n\t\t}\n\t\tx = Number(a);\n\t\ty = Number(b);\n\t\tif(isNumeric && (!isNaN(x) || !isNaN(y))) {\n\t\t\treturn compareNumbers(x,y);\n\t\t} else if(isAlphaNumeric) {\n\t\t\treturn isDescending ? b.localeCompare(a,undefined,{numeric: true,sensitivity: \"base\"}) : a.localeCompare(b,undefined,{numeric: true,sensitivity: \"base\"});\n\t\t} else if($tw.utils.isDate(a) && $tw.utils.isDate(b)) {\n\t\t\treturn isDescending ? b - a : a - b;\n\t\t} else {\n\t\t\ta = String(a);\n\t\t\tb = String(b);\n\t\t\tif(!isCaseSensitive) {\n\t\t\t\ta = a.toLowerCase();\n\t\t\t\tb = b.toLowerCase();\n\t\t\t}\n\t\t\treturn isDescending ? b.localeCompare(a) : a.localeCompare(b);\n\t\t}\n\t});\n};\n\n/*\nFor every tiddler invoke a callback(title,tiddler) with `this` set to the wiki object. Options include:\nsortField: field to sort by\nexcludeTag: tag to exclude\nincludeSystem: whether to include system tiddlers (defaults to false)\n*/\nexports.forEachTiddler = function(/* [options,]callback */) {\n\tvar arg = 0,\n\t\toptions = arguments.length >= 2 ? arguments[arg++] : {},\n\t\tcallback = arguments[arg++],\n\t\ttitles = this.getTiddlers(options),\n\t\tt, tiddler;\n\tfor(t=0; t<titles.length; t++) {\n\t\ttiddler = this.getTiddler(titles[t]);\n\t\tif(tiddler) {\n\t\t\tcallback.call(this,tiddler.fields.title,tiddler);\n\t\t}\n\t}\n};\n\n/*\nReturn an array of tiddler titles that are directly linked within the given parse tree\n */\nexports.extractLinks = function(parseTreeRoot) {\n\t// Count up the links\n\tvar links = [],\n\t\tcheckParseTree = function(parseTree) {\n\t\t\tfor(var t=0; t<parseTree.length; t++) {\n\t\t\t\tvar parseTreeNode = parseTree[t];\n\t\t\t\tif(parseTreeNode.type === \"link\" && parseTreeNode.attributes.to && parseTreeNode.attributes.to.type === \"string\") {\n\t\t\t\t\tvar value = parseTreeNode.attributes.to.value;\n\t\t\t\t\tif(links.indexOf(value) === -1) {\n\t\t\t\t\t\tlinks.push(value);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(parseTreeNode.children) {\n\t\t\t\t\tcheckParseTree(parseTreeNode.children);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\tcheckParseTree(parseTreeRoot);\n\treturn links;\n};\n\n/*\nReturn an array of tiddler titles that are directly linked from the specified tiddler\n*/\nexports.getTiddlerLinks = function(title) {\n\tvar self = this;\n\t// We'll cache the links so they only get computed if the tiddler changes\n\treturn this.getCacheForTiddler(title,\"links\",function() {\n\t\t// Parse the tiddler\n\t\tvar parser = self.parseTiddler(title);\n\t\tif(parser) {\n\t\t\treturn self.extractLinks(parser.tree);\n\t\t}\n\t\treturn [];\n\t});\n};\n\n/*\nReturn an array of tiddler titles that link to the specified tiddler\n*/\nexports.getTiddlerBacklinks = function(targetTitle) {\n\tvar self = this,\n\t\tbacklinksIndexer = this.getIndexer(\"BacklinksIndexer\"),\n\t\tbacklinks = backlinksIndexer && backlinksIndexer.lookup(targetTitle);\n\n\tif(!backlinks) {\n\t\tbacklinks = [];\n\t\tthis.forEachTiddler(function(title,tiddler) {\n\t\t\tvar links = self.getTiddlerLinks(title);\n\t\t\tif(links.indexOf(targetTitle) !== -1) {\n\t\t\t\tbacklinks.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn backlinks;\n};\n\n/*\nReturn a hashmap of tiddler titles that are referenced but not defined. Each value is the number of times the missing tiddler is referenced\n*/\nexports.getMissingTitles = function() {\n\tvar self = this,\n\t\tmissing = [];\n// We should cache the missing tiddler list, even if we recreate it every time any tiddler is modified\n\tthis.forEachTiddler(function(title,tiddler) {\n\t\tvar links = self.getTiddlerLinks(title);\n\t\t$tw.utils.each(links,function(link) {\n\t\t\tif((!self.tiddlerExists(link) && !self.isShadowTiddler(link)) && missing.indexOf(link) === -1) {\n\t\t\t\tmissing.push(link);\n\t\t\t}\n\t\t});\n\t});\n\treturn missing;\n};\n\nexports.getOrphanTitles = function() {\n\tvar self = this,\n\t\torphans = this.getTiddlers();\n\tthis.forEachTiddler(function(title,tiddler) {\n\t\tvar links = self.getTiddlerLinks(title);\n\t\t$tw.utils.each(links,function(link) {\n\t\t\tvar p = orphans.indexOf(link);\n\t\t\tif(p !== -1) {\n\t\t\t\torphans.splice(p,1);\n\t\t\t}\n\t\t});\n\t});\n\treturn orphans; // Todo\n};\n\n/*\nRetrieves a list of the tiddler titles that are tagged with a given tag\n*/\nexports.getTiddlersWithTag = function(tag) {\n\t// Try to use the indexer\n\tvar self = this,\n\t\ttagIndexer = this.getIndexer(\"TagIndexer\"),\n\t\tresults = tagIndexer && tagIndexer.subIndexers[3].lookup(tag);\n\tif(!results) {\n\t\t// If not available, perform a manual scan\n\t\tresults = this.getGlobalCache(\"taglist-\" + tag,function() {\n\t\t\tvar tagmap = self.getTagMap();\n\t\t\treturn self.sortByList(tagmap[tag],tag);\n\t\t});\n\t}\n\treturn results;\n};\n\n/*\nGet a hashmap by tag of arrays of tiddler titles\n*/\nexports.getTagMap = function() {\n\tvar self = this;\n\treturn this.getGlobalCache(\"tagmap\",function() {\n\t\tvar tags = Object.create(null),\n\t\t\tstoreTags = function(tagArray,title) {\n\t\t\t\tif(tagArray) {\n\t\t\t\t\tfor(var index=0; index<tagArray.length; index++) {\n\t\t\t\t\t\tvar tag = tagArray[index];\n\t\t\t\t\t\tif($tw.utils.hop(tags,tag)) {\n\t\t\t\t\t\t\ttags[tag].push(title);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttags[tag] = [title];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\ttitle, tiddler;\n\t\t// Collect up all the tags\n\t\tself.eachShadow(function(tiddler,title) {\n\t\t\tif(!self.tiddlerExists(title)) {\n\t\t\t\ttiddler = self.getTiddler(title);\n\t\t\t\tstoreTags(tiddler.fields.tags,title);\n\t\t\t}\n\t\t});\n\t\tself.each(function(tiddler,title) {\n\t\t\tstoreTags(tiddler.fields.tags,title);\n\t\t});\n\t\treturn tags;\n\t});\n};\n\n/*\nLookup a given tiddler and return a list of all the tiddlers that include it in the specified list field\n*/\nexports.findListingsOfTiddler = function(targetTitle,fieldName) {\n\tfieldName = fieldName || \"list\";\n\tvar titles = [];\n\tthis.each(function(tiddler,title) {\n\t\tvar list = $tw.utils.parseStringArray(tiddler.fields[fieldName]);\n\t\tif(list && list.indexOf(targetTitle) !== -1) {\n\t\t\ttitles.push(title);\n\t\t}\n\t});\n\treturn titles;\n};\n\n/*\nSorts an array of tiddler titles according to an ordered list\n*/\nexports.sortByList = function(array,listTitle) {\n\tvar self = this,\n\t\treplacedTitles = Object.create(null);\n\t// Given a title, this function will place it in the correct location\n\t// within titles.\n\tfunction moveItemInList(title) {\n\t\tif(!$tw.utils.hop(replacedTitles, title)) {\n\t\t\treplacedTitles[title] = true;\n\t\t\tvar newPos = -1,\n\t\t\t\ttiddler = self.getTiddler(title);\n\t\t\tif(tiddler) {\n\t\t\t\tvar beforeTitle = tiddler.fields[\"list-before\"],\n\t\t\t\t\tafterTitle = tiddler.fields[\"list-after\"];\n\t\t\t\tif(beforeTitle === \"\") {\n\t\t\t\t\tnewPos = 0;\n\t\t\t\t} else if(afterTitle === \"\") {\n\t\t\t\t\tnewPos = titles.length;\n\t\t\t\t} else if(beforeTitle) {\n\t\t\t\t\t// if this title is placed relative\n\t\t\t\t\t// to another title, make sure that\n\t\t\t\t\t// title is placed before we place\n\t\t\t\t\t// this one.\n\t\t\t\t\tmoveItemInList(beforeTitle);\n\t\t\t\t\tnewPos = titles.indexOf(beforeTitle);\n\t\t\t\t} else if(afterTitle) {\n\t\t\t\t\t// Same deal\n\t\t\t\t\tmoveItemInList(afterTitle);\n\t\t\t\t\tnewPos = titles.indexOf(afterTitle);\n\t\t\t\t\tif(newPos >= 0) {\n\t\t\t\t\t\t++newPos;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// If a new position is specified, let's move it\n\t\t\t\tif (newPos !== -1) {\n\t\t\t\t\t// get its current Pos, and make sure\n\t\t\t\t\t// sure that it's _actually_ in the list\n\t\t\t\t\t// and that it would _actually_ move\n\t\t\t\t\t// (#4275) We don't bother calling\n\t\t\t\t\t// indexOf unless we have a new\n\t\t\t\t\t// position to work with\n\t\t\t\t\tvar currPos = titles.indexOf(title);\n\t\t\t\t\tif(currPos >= 0 && newPos !== currPos) {\n\t\t\t\t\t\t// move it!\n\t\t\t\t\t\ttitles.splice(currPos,1);\n\t\t\t\t\t\tif(newPos >= currPos) {\n\t\t\t\t\t\t\tnewPos--;\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttitles.splice(newPos,0,title);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tvar list = this.getTiddlerList(listTitle);\n\tif(!array || array.length === 0) {\n\t\treturn [];\n\t} else {\n\t\tvar titles = [], t, title;\n\t\t// First place any entries that are present in the list\n\t\tfor(t=0; t<list.length; t++) {\n\t\t\ttitle = list[t];\n\t\t\tif(array.indexOf(title) !== -1) {\n\t\t\t\ttitles.push(title);\n\t\t\t}\n\t\t}\n\t\t// Then place any remaining entries\n\t\tfor(t=0; t<array.length; t++) {\n\t\t\ttitle = array[t];\n\t\t\tif(list.indexOf(title) === -1) {\n\t\t\t\ttitles.push(title);\n\t\t\t}\n\t\t}\n\t\t// Finally obey the list-before and list-after fields of each tiddler in turn\n\t\tvar sortedTitles = titles.slice(0);\n\t\tfor(t=0; t<sortedTitles.length; t++) {\n\t\t\ttitle = sortedTitles[t];\n\t\t\tmoveItemInList(title);\n\t\t}\n\t\treturn titles;\n\t}\n};\n\nexports.getSubTiddler = function(title,subTiddlerTitle) {\n\tvar bundleInfo = this.getPluginInfo(title) || this.getTiddlerDataCached(title);\n\tif(bundleInfo && bundleInfo.tiddlers) {\n\t\tvar subTiddler = bundleInfo.tiddlers[subTiddlerTitle];\n\t\tif(subTiddler) {\n\t\t\treturn new $tw.Tiddler(subTiddler);\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nRetrieve a tiddler as a JSON string of the fields\n*/\nexports.getTiddlerAsJson = function(title) {\n\tvar tiddler = this.getTiddler(title);\n\tif(tiddler) {\n\t\tvar fields = Object.create(null);\n\t\t$tw.utils.each(tiddler.fields,function(value,name) {\n\t\t\tfields[name] = tiddler.getFieldString(name);\n\t\t});\n\t\treturn JSON.stringify(fields);\n\t} else {\n\t\treturn JSON.stringify({title: title});\n\t}\n};\n\nexports.getTiddlersAsJson = function(filter,spaces) {\n\tvar tiddlers = this.filterTiddlers(filter),\n\t\tspaces = (spaces === undefined) ? $tw.config.preferences.jsonSpaces : spaces,\n\t\tdata = [];\n\tfor(var t=0;t<tiddlers.length; t++) {\n\t\tvar tiddler = this.getTiddler(tiddlers[t]);\n\t\tif(tiddler) {\n\t\t\tvar fields = new Object();\n\t\t\tfor(var field in tiddler.fields) {\n\t\t\t\tfields[field] = tiddler.getFieldString(field);\n\t\t\t}\n\t\t\tdata.push(fields);\n\t\t}\n\t}\n\treturn JSON.stringify(data,null,spaces);\n};\n\n/*\nGet the content of a tiddler as a JavaScript object. How this is done depends on the type of the tiddler:\n\napplication/json: the tiddler JSON is parsed into an object\napplication/x-tiddler-dictionary: the tiddler is parsed as sequence of name:value pairs\n\nOther types currently just return null.\n\ntitleOrTiddler: string tiddler title or a tiddler object\ndefaultData: default data to be returned if the tiddler is missing or doesn't contain data\n\nNote that the same value is returned for repeated calls for the same tiddler data. The value is frozen to prevent modification; otherwise modifications would be visible to all callers\n*/\nexports.getTiddlerDataCached = function(titleOrTiddler,defaultData) {\n\tvar self = this,\n\t\ttiddler = titleOrTiddler;\n\tif(!(tiddler instanceof $tw.Tiddler)) {\n\t\ttiddler = this.getTiddler(tiddler);\t\n\t}\n\tif(tiddler) {\n\t\treturn this.getCacheForTiddler(tiddler.fields.title,\"data\",function() {\n\t\t\t// Return the frozen value\n\t\t\tvar value = self.getTiddlerData(tiddler.fields.title,undefined);\n\t\t\t$tw.utils.deepFreeze(value);\n\t\t\treturn value;\n\t\t}) || defaultData;\n\t} else {\n\t\treturn defaultData;\n\t}\n};\n\n/*\nAlternative, uncached version of getTiddlerDataCached(). The return value can be mutated freely and reused\n*/\nexports.getTiddlerData = function(titleOrTiddler,defaultData) {\n\tvar tiddler = titleOrTiddler,\n\t\tdata;\n\tif(!(tiddler instanceof $tw.Tiddler)) {\n\t\ttiddler = this.getTiddler(tiddler);\t\n\t}\n\tif(tiddler && tiddler.fields.text) {\n\t\tswitch(tiddler.fields.type) {\n\t\t\tcase \"application/json\":\n\t\t\t\t// JSON tiddler\n\t\t\t\ttry {\n\t\t\t\t\tdata = JSON.parse(tiddler.fields.text);\n\t\t\t\t} catch(ex) {\n\t\t\t\t\treturn defaultData;\n\t\t\t\t}\n\t\t\t\treturn data;\n\t\t\tcase \"application/x-tiddler-dictionary\":\n\t\t\t\treturn $tw.utils.parseFields(tiddler.fields.text);\n\t\t}\n\t}\n\treturn defaultData;\n};\n\n/*\nExtract an indexed field from within a data tiddler\n*/\nexports.extractTiddlerDataItem = function(titleOrTiddler,index,defaultText) {\n\tvar data = this.getTiddlerDataCached(titleOrTiddler,Object.create(null)),\n\t\ttext;\n\tif(data && $tw.utils.hop(data,index)) {\n\t\ttext = data[index];\n\t}\n\tif(typeof text === \"string\" || typeof text === \"number\") {\n\t\treturn text.toString();\n\t} else {\n\t\treturn defaultText;\n\t}\n};\n\n/*\nSet a tiddlers content to a JavaScript object. Currently this is done by setting the tiddler's type to \"application/json\" and setting the text to the JSON text of the data.\ntitle: title of tiddler\ndata: object that can be serialised to JSON\nfields: optional hashmap of additional tiddler fields to be set\n*/\nexports.setTiddlerData = function(title,data,fields) {\n\tvar existingTiddler = this.getTiddler(title),\n\t\tnewFields = {\n\t\t\ttitle: title\n\t};\n\tif(existingTiddler && existingTiddler.fields.type === \"application/x-tiddler-dictionary\") {\n\t\tnewFields.text = $tw.utils.makeTiddlerDictionary(data);\n\t} else {\n\t\tnewFields.type = \"application/json\";\n\t\tnewFields.text = JSON.stringify(data,null,$tw.config.preferences.jsonSpaces);\n\t}\n\tthis.addTiddler(new $tw.Tiddler(this.getCreationFields(),existingTiddler,fields,newFields,this.getModificationFields()));\n};\n\n/*\nReturn the content of a tiddler as an array containing each line\n*/\nexports.getTiddlerList = function(title,field,index) {\n\tif(index) {\n\t\treturn $tw.utils.parseStringArray(this.extractTiddlerDataItem(title,index,\"\"));\n\t}\n\tfield = field || \"list\";\n\tvar tiddler = this.getTiddler(title);\n\tif(tiddler) {\n\t\treturn ($tw.utils.parseStringArray(tiddler.fields[field]) || []).slice(0);\n\t}\n\treturn [];\n};\n\n// Return a named global cache object. Global cache objects are cleared whenever a tiddler change occurs\nexports.getGlobalCache = function(cacheName,initializer) {\n\tthis.globalCache = this.globalCache || Object.create(null);\n\tif($tw.utils.hop(this.globalCache,cacheName)) {\n\t\treturn this.globalCache[cacheName];\n\t} else {\n\t\tthis.globalCache[cacheName] = initializer();\n\t\treturn this.globalCache[cacheName];\n\t}\n};\n\nexports.clearGlobalCache = function() {\n\tthis.globalCache = Object.create(null);\n};\n\n// Return the named cache object for a tiddler. If the cache doesn't exist then the initializer function is invoked to create it\nexports.getCacheForTiddler = function(title,cacheName,initializer) {\n\tthis.caches = this.caches || Object.create(null);\n\tvar caches = this.caches[title];\n\tif(caches && caches[cacheName]) {\n\t\treturn caches[cacheName];\n\t} else {\n\t\tif(!caches) {\n\t\t\tcaches = Object.create(null);\n\t\t\tthis.caches[title] = caches;\n\t\t}\n\t\tcaches[cacheName] = initializer();\n\t\treturn caches[cacheName];\n\t}\n};\n\n// Clear all caches associated with a particular tiddler, or, if the title is null, clear all the caches for all the tiddlers\nexports.clearCache = function(title) {\n\tif(title) {\n\t\tthis.caches = this.caches || Object.create(null);\n\t\tif($tw.utils.hop(this.caches,title)) {\n\t\t\tdelete this.caches[title];\n\t\t}\n\t} else {\n\t\tthis.caches = Object.create(null);\n\t}\n};\n\nexports.initParsers = function(moduleType) {\n\t// Install the parser modules\n\t$tw.Wiki.parsers = {};\n\tvar self = this;\n\t$tw.modules.forEachModuleOfType(\"parser\",function(title,module) {\n\t\tfor(var f in module) {\n\t\t\tif($tw.utils.hop(module,f)) {\n\t\t\t\t$tw.Wiki.parsers[f] = module[f]; // Store the parser class\n\t\t\t}\n\t\t}\n\t});\n\t// Use the generic binary parser for any binary types not registered so far\n\tif($tw.Wiki.parsers[\"application/octet-stream\"]) {\n\t\tObject.keys($tw.config.contentTypeInfo).forEach(function(type) {\n\t\t\tif(!$tw.utils.hop($tw.Wiki.parsers,type) && $tw.config.contentTypeInfo[type].encoding === \"base64\") {\n\t\t\t\t$tw.Wiki.parsers[type] = $tw.Wiki.parsers[\"application/octet-stream\"];\n\t\t\t}\n\t\t});\t\t\n\t}\n};\n\n/*\nParse a block of text of a specified MIME type\n\ttype: content type of text to be parsed\n\ttext: text\n\toptions: see below\nOptions include:\n\tparseAsInline: if true, the text of the tiddler will be parsed as an inline run\n\t_canonical_uri: optional string of the canonical URI of this content\n*/\nexports.parseText = function(type,text,options) {\n\ttext = text || \"\";\n\toptions = options || {};\n\t// Select a parser\n\tvar Parser = $tw.Wiki.parsers[type];\n\tif(!Parser && $tw.utils.getFileExtensionInfo(type)) {\n\t\tParser = $tw.Wiki.parsers[$tw.utils.getFileExtensionInfo(type).type];\n\t}\n\tif(!Parser) {\n\t\tParser = $tw.Wiki.parsers[options.defaultType || \"text/vnd.tiddlywiki\"];\n\t}\n\tif(!Parser) {\n\t\treturn null;\n\t}\n\t// Return the parser instance\n\treturn new Parser(type,text,{\n\t\tparseAsInline: options.parseAsInline,\n\t\twiki: this,\n\t\t_canonical_uri: options._canonical_uri\n\t});\n};\n\n/*\nParse a tiddler according to its MIME type\n*/\nexports.parseTiddler = function(title,options) {\n\toptions = $tw.utils.extend({},options);\n\tvar cacheType = options.parseAsInline ? \"inlineParseTree\" : \"blockParseTree\",\n\t\ttiddler = this.getTiddler(title),\n\t\tself = this;\n\treturn tiddler ? this.getCacheForTiddler(title,cacheType,function() {\n\t\t\tif(tiddler.hasField(\"_canonical_uri\")) {\n\t\t\t\toptions._canonical_uri = tiddler.fields._canonical_uri;\n\t\t\t}\n\t\t\treturn self.parseText(tiddler.fields.type,tiddler.fields.text,options);\n\t\t}) : null;\n};\n\nexports.parseTextReference = function(title,field,index,options) {\n\tvar tiddler,text;\n\tif(options.subTiddler) {\n\t\ttiddler = this.getSubTiddler(title,options.subTiddler);\n\t} else {\n\t\ttiddler = this.getTiddler(title);\n\t\tif(field === \"text\" || (!field && !index)) {\n\t\t\tthis.getTiddlerText(title); // Force the tiddler to be lazily loaded\n\t\t\treturn this.parseTiddler(title,options);\n\t\t}\n\t}\n\tif(field === \"text\" || (!field && !index)) {\n\t\tif(tiddler && tiddler.fields) {\n\t\t\treturn this.parseText(tiddler.fields.type,tiddler.fields.text,options);\t\t\t\n\t\t} else {\n\t\t\treturn null;\n\t\t}\n\t} else if(field) {\n\t\tif(field === \"title\") {\n\t\t\ttext = title;\n\t\t} else {\n\t\t\tif(!tiddler || !tiddler.hasField(field)) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\ttext = tiddler.fields[field];\n\t\t}\n\t\treturn this.parseText(\"text/vnd.tiddlywiki\",text.toString(),options);\n\t} else if(index) {\n\t\tthis.getTiddlerText(title); // Force the tiddler to be lazily loaded\n\t\ttext = this.extractTiddlerDataItem(tiddler,index,undefined);\n\t\tif(text === undefined) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this.parseText(\"text/vnd.tiddlywiki\",text,options);\n\t}\n};\n\n/*\nMake a widget tree for a parse tree\nparser: parser object\noptions: see below\nOptions include:\ndocument: optional document to use\nvariables: hashmap of variables to set\nparentWidget: optional parent widget for the root node\n*/\nexports.makeWidget = function(parser,options) {\n\toptions = options || {};\n\tvar widgetNode = {\n\t\t\ttype: \"widget\",\n\t\t\tchildren: []\n\t\t},\n\t\tcurrWidgetNode = widgetNode;\n\t// Create set variable widgets for each variable\n\t$tw.utils.each(options.variables,function(value,name) {\n\t\tvar setVariableWidget = {\n\t\t\ttype: \"set\",\n\t\t\tattributes: {\n\t\t\t\tname: {type: \"string\", value: name},\n\t\t\t\tvalue: {type: \"string\", value: value}\n\t\t\t},\n\t\t\tchildren: []\n\t\t};\n\t\tcurrWidgetNode.children = [setVariableWidget];\n\t\tcurrWidgetNode = setVariableWidget;\n\t});\n\t// Add in the supplied parse tree nodes\n\tcurrWidgetNode.children = parser ? parser.tree : [];\n\t// Create the widget\n\treturn new widget.widget(widgetNode,{\n\t\twiki: this,\n\t\tdocument: options.document || $tw.fakeDocument,\n\t\tparentWidget: options.parentWidget\n\t});\n};\n\n/*\nMake a widget tree for transclusion\ntitle: target tiddler title\noptions: as for wiki.makeWidget() plus:\noptions.field: optional field to transclude (defaults to \"text\")\noptions.mode: transclusion mode \"inline\" or \"block\"\noptions.children: optional array of children for the transclude widget\noptions.importVariables: optional importvariables filter string for macros to be included\noptions.importPageMacros: optional boolean; if true, equivalent to passing \"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\" to options.importVariables\n*/\nexports.makeTranscludeWidget = function(title,options) {\n\toptions = options || {};\n\tvar parseTreeDiv = {tree: [{\n\t\t\ttype: \"element\",\n\t\t\ttag: \"div\",\n\t\t\tchildren: []}]},\n\t\tparseTreeImportVariables = {\n\t\t\ttype: \"importvariables\",\n\t\t\tattributes: {\n\t\t\t\tfilter: {\n\t\t\t\t\tname: \"filter\",\n\t\t\t\t\ttype: \"string\"\n\t\t\t\t}\n\t\t\t},\n\t\t\tisBlock: false,\n\t\t\tchildren: []},\n\t\tparseTreeTransclude = {\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {\n\t\t\t\t\tname: \"tiddler\",\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tvalue: title}},\n\t\t\tisBlock: !options.parseAsInline};\n\tif(options.importVariables || options.importPageMacros) {\n\t\tif(options.importVariables) {\n\t\t\tparseTreeImportVariables.attributes.filter.value = options.importVariables;\n\t\t} else if(options.importPageMacros) {\n\t\t\tparseTreeImportVariables.attributes.filter.value = \"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\";\n\t\t}\n\t\tparseTreeDiv.tree[0].children.push(parseTreeImportVariables);\n\t\tparseTreeImportVariables.children.push(parseTreeTransclude);\n\t} else {\n\t\tparseTreeDiv.tree[0].children.push(parseTreeTransclude);\n\t}\n\tif(options.field) {\n\t\tparseTreeTransclude.attributes.field = {type: \"string\", value: options.field};\n\t}\n\tif(options.mode) {\n\t\tparseTreeTransclude.attributes.mode = {type: \"string\", value: options.mode};\n\t}\n\tif(options.children) {\n\t\tparseTreeTransclude.children = options.children;\n\t}\n\treturn $tw.wiki.makeWidget(parseTreeDiv,options);\n};\n\n/*\nParse text in a specified format and render it into another format\n\toutputType: content type for the output\n\ttextType: content type of the input text\n\ttext: input text\n\toptions: see below\nOptions include:\nvariables: hashmap of variables to set\nparentWidget: optional parent widget for the root node\n*/\nexports.renderText = function(outputType,textType,text,options) {\n\toptions = options || {};\n\tvar parser = this.parseText(textType,text,options),\n\t\twidgetNode = this.makeWidget(parser,options);\n\tvar container = $tw.fakeDocument.createElement(\"div\");\n\twidgetNode.render(container,null);\n\treturn outputType === \"text/html\" ? container.innerHTML : container.textContent;\n};\n\n/*\nParse text from a tiddler and render it into another format\n\toutputType: content type for the output\n\ttitle: title of the tiddler to be rendered\n\toptions: see below\nOptions include:\nvariables: hashmap of variables to set\nparentWidget: optional parent widget for the root node\n*/\nexports.renderTiddler = function(outputType,title,options) {\n\toptions = options || {};\n\tvar parser = this.parseTiddler(title,options),\n\t\twidgetNode = this.makeWidget(parser,options);\n\tvar container = $tw.fakeDocument.createElement(\"div\");\n\twidgetNode.render(container,null);\n\treturn outputType === \"text/html\" ? container.innerHTML : (outputType === \"text/plain-formatted\" ? container.formattedTextContent : container.textContent);\n};\n\n/*\nReturn an array of tiddler titles that match a search string\n\ttext: The text string to search for\n\toptions: see below\nOptions available:\n\tsource: an iterator function for the source tiddlers, called source(iterator), where iterator is called as iterator(tiddler,title)\n\texclude: An array of tiddler titles to exclude from the search\n\tinvert: If true returns tiddlers that do not contain the specified string\n\tcaseSensitive: If true forces a case sensitive search\n\tfield: If specified, restricts the search to the specified field, or an array of field names\n\tanchored: If true, forces all but regexp searches to be anchored to the start of text\n\texcludeField: If true, the field options are inverted to specify the fields that are not to be searched\n\tThe search mode is determined by the first of these boolean flags to be true\n\t\tliteral: searches for literal string\n\t\twhitespace: same as literal except runs of whitespace are treated as a single space\n\t\tregexp: treats the search term as a regular expression\n\t\twords: (default) treats search string as a list of tokens, and matches if all tokens are found, regardless of adjacency or ordering\n*/\nexports.search = function(text,options) {\n\toptions = options || {};\n\tvar self = this,\n\t\tt,\n\t\tinvert = !!options.invert;\n\t// Convert the search string into a regexp for each term\n\tvar terms, searchTermsRegExps,\n\t\tflags = options.caseSensitive ? \"\" : \"i\",\n\t\tanchor = options.anchored ? \"^\" : \"\";\n\tif(options.literal) {\n\t\tif(text.length === 0) {\n\t\t\tsearchTermsRegExps = null;\n\t\t} else {\n\t\t\tsearchTermsRegExps = [new RegExp(\"(\" + anchor + $tw.utils.escapeRegExp(text) + \")\",flags)];\n\t\t}\n\t} else if(options.whitespace) {\n\t\tterms = [];\n\t\t$tw.utils.each(text.split(/\\s+/g),function(term) {\n\t\t\tif(term) {\n\t\t\t\tterms.push($tw.utils.escapeRegExp(term));\n\t\t\t}\n\t\t});\n\t\tsearchTermsRegExps = [new RegExp(\"(\" + anchor + terms.join(\"\\\\s+\") + \")\",flags)];\n\t} else if(options.regexp) {\n\t\ttry {\n\t\t\tsearchTermsRegExps = [new RegExp(\"(\" + text + \")\",flags)];\t\t\t\n\t\t} catch(e) {\n\t\t\tsearchTermsRegExps = null;\n\t\t\tconsole.log(\"Regexp error parsing /(\" + text + \")/\" + flags + \": \",e);\n\t\t}\n\t} else {\n\t\tterms = text.split(/ +/);\n\t\tif(terms.length === 1 && terms[0] === \"\") {\n\t\t\tsearchTermsRegExps = null;\n\t\t} else {\n\t\t\tsearchTermsRegExps = [];\n\t\t\tfor(t=0; t<terms.length; t++) {\n\t\t\t\tsearchTermsRegExps.push(new RegExp(\"(\" + anchor + $tw.utils.escapeRegExp(terms[t]) + \")\",flags));\n\t\t\t}\n\t\t}\n\t}\n\t// Accumulate the array of fields to be searched or excluded from the search\n\tvar fields = [];\n\tif(options.field) {\n\t\tif($tw.utils.isArray(options.field)) {\n\t\t\t$tw.utils.each(options.field,function(fieldName) {\n\t\t\t\tif(fieldName) {\n\t\t\t\t\tfields.push(fieldName);\t\t\t\t\t\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tfields.push(options.field);\n\t\t}\n\t}\n\t// Use default fields if none specified and we're not excluding fields (excluding fields with an empty field array is the same as searching all fields)\n\tif(fields.length === 0 && !options.excludeField) {\n\t\tfields.push(\"title\");\n\t\tfields.push(\"tags\");\n\t\tfields.push(\"text\");\n\t}\n\t// Function to check a given tiddler for the search term\n\tvar searchTiddler = function(title) {\n\t\tif(!searchTermsRegExps) {\n\t\t\treturn true;\n\t\t}\n\t\tvar notYetFound = searchTermsRegExps.slice();\n\n\t\tvar tiddler = self.getTiddler(title);\n\t\tif(!tiddler) {\n\t\t\ttiddler = new $tw.Tiddler({title: title, text: \"\", type: \"text/vnd.tiddlywiki\"});\n\t\t}\n\t\tvar contentTypeInfo = $tw.config.contentTypeInfo[tiddler.fields.type] || $tw.config.contentTypeInfo[\"text/vnd.tiddlywiki\"],\n\t\t\tsearchFields;\n\t\t// Get the list of fields we're searching\n\t\tif(options.excludeField) {\n\t\t\tsearchFields = Object.keys(tiddler.fields);\n\t\t\t$tw.utils.each(fields,function(fieldName) {\n\t\t\t\tvar p = searchFields.indexOf(fieldName);\n\t\t\t\tif(p !== -1) {\n\t\t\t\t\tsearchFields.splice(p,1);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsearchFields = fields;\n\t\t}\n\t\tfor(var fieldIndex=0; notYetFound.length>0 && fieldIndex<searchFields.length; fieldIndex++) {\n\t\t\t// Don't search the text field if the content type is binary\n\t\t\tvar fieldName = searchFields[fieldIndex];\n\t\t\tif(fieldName === \"text\" && contentTypeInfo.encoding !== \"utf8\") {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tvar str = tiddler.fields[fieldName],\n\t\t\t\tt;\n\t\t\tif(str) {\n\t\t\t\tif($tw.utils.isArray(str)) {\n\t\t\t\t\t// If the field value is an array, test each regexp against each field array entry and fail if each regexp doesn't match at least one field array entry\n\t\t\t\t\tfor(var s=0; s<str.length; s++) {\n\t\t\t\t\t\tfor(t=0; t<notYetFound.length;) {\n\t\t\t\t\t\t\tif(notYetFound[t].test(str[s])) {\n\t\t\t\t\t\t\t\tnotYetFound.splice(t, 1);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tt++;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// If the field isn't an array, force it to a string and test each regexp against it and fail if any do not match\n\t\t\t\t\tstr = tiddler.getFieldString(fieldName);\n\t\t\t\t\tfor(t=0; t<notYetFound.length;) {\n\t\t\t\t\t\tif(notYetFound[t].test(str)) {\n\t\t\t\t\t\t\tnotYetFound.splice(t, 1);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tt++;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\treturn notYetFound.length == 0;\n\t};\n\t// Loop through all the tiddlers doing the search\n\tvar results = [],\n\t\tsource = options.source || this.each;\n\tsource(function(tiddler,title) {\n\t\tif(searchTiddler(title) !== options.invert) {\n\t\t\tresults.push(title);\n\t\t}\n\t});\n\t// Remove any of the results we have to exclude\n\tif(options.exclude) {\n\t\tfor(t=0; t<options.exclude.length; t++) {\n\t\t\tvar p = results.indexOf(options.exclude[t]);\n\t\t\tif(p !== -1) {\n\t\t\t\tresults.splice(p,1);\n\t\t\t}\n\t\t}\n\t}\n\treturn results;\n};\n\n/*\nTrigger a load for a tiddler if it is skinny. Returns the text, or undefined if the tiddler is missing, null if the tiddler is being lazily loaded.\n*/\nexports.getTiddlerText = function(title,defaultText) {\n\tvar tiddler = this.getTiddler(title);\n\t// Return undefined if the tiddler isn't found\n\tif(!tiddler) {\n\t\treturn defaultText;\n\t}\n\tif(!tiddler.hasField(\"_is_skinny\")) {\n\t\t// Just return the text if we've got it\n\t\treturn tiddler.fields.text || \"\";\n\t} else {\n\t\t// Tell any listeners about the need to lazily load this tiddler\n\t\tthis.dispatchEvent(\"lazyLoad\",title);\n\t\t// Indicate that the text is being loaded\n\t\treturn null;\n\t}\n};\n\n/*\nCheck whether the text of a tiddler matches a given value. By default, the comparison is case insensitive, and any spaces at either end of the tiddler text is trimmed\n*/\nexports.checkTiddlerText = function(title,targetText,options) {\n\toptions = options || {};\n\tvar text = this.getTiddlerText(title,\"\");\n\tif(!options.noTrim) {\n\t\ttext = text.trim();\n\t}\n\tif(!options.caseSensitive) {\n\t\ttext = text.toLowerCase();\n\t\ttargetText = targetText.toLowerCase();\n\t}\n\treturn text === targetText;\n}\n\n/*\nRead an array of browser File objects, invoking callback(tiddlerFieldsArray) once they're all read\n*/\nexports.readFiles = function(files,options) {\n\tvar callback;\n\tif(typeof options === \"function\") {\n\t\tcallback = options;\n\t\toptions = {};\n\t} else {\n\t\tcallback = options.callback;\n\t}\n\tvar result = [],\n\t\toutstanding = files.length,\n\t\treadFileCallback = function(tiddlerFieldsArray) {\n\t\t\tresult.push.apply(result,tiddlerFieldsArray);\n\t\t\tif(--outstanding === 0) {\n\t\t\t\tcallback(result);\n\t\t\t}\n\t\t};\n\tfor(var f=0; f<files.length; f++) {\n\t\tthis.readFile(files[f],$tw.utils.extend({},options,{callback: readFileCallback}));\n\t}\n\treturn files.length;\n};\n\n/*\nRead a browser File object, invoking callback(tiddlerFieldsArray) with an array of tiddler fields objects\n*/\nexports.readFile = function(file,options) {\n\tvar callback;\n\tif(typeof options === \"function\") {\n\t\tcallback = options;\n\t\toptions = {};\n\t} else {\n\t\tcallback = options.callback;\n\t}\n\t// Get the type, falling back to the filename extension\n\tvar self = this,\n\t\ttype = file.type;\n\tif(type === \"\" || !type) {\n\t\tvar dotPos = file.name.lastIndexOf(\".\");\n\t\tif(dotPos !== -1) {\n\t\t\tvar fileExtensionInfo = $tw.utils.getFileExtensionInfo(file.name.substr(dotPos));\n\t\t\tif(fileExtensionInfo) {\n\t\t\t\ttype = fileExtensionInfo.type;\n\t\t\t}\n\t\t}\n\t}\n\t// Figure out if we're reading a binary file\n\tvar contentTypeInfo = $tw.config.contentTypeInfo[type],\n\t\tisBinary = contentTypeInfo ? contentTypeInfo.encoding === \"base64\" : false;\n\t// Log some debugging information\n\tif($tw.log.IMPORT) {\n\t\tconsole.log(\"Importing file '\" + file.name + \"', type: '\" + type + \"', isBinary: \" + isBinary);\n\t}\n\t// Give the hook a chance to process the drag\n\tif($tw.hooks.invokeHook(\"th-importing-file\",{\n\t\tfile: file,\n\t\ttype: type,\n\t\tisBinary: isBinary,\n\t\tcallback: callback\n\t}) !== true) {\n\t\tthis.readFileContent(file,type,isBinary,options.deserializer,callback);\n\t}\n};\n\n/*\nLower level utility to read the content of a browser File object, invoking callback(tiddlerFieldsArray) with an array of tiddler fields objects\n*/\nexports.readFileContent = function(file,type,isBinary,deserializer,callback) {\n\tvar self = this;\n\t// Create the FileReader\n\tvar reader = new FileReader();\n\t// Onload\n\treader.onload = function(event) {\n\t\tvar text = event.target.result,\n\t\t\ttiddlerFields = {title: file.name || \"Untitled\", type: type};\n\t\tif(isBinary) {\n\t\t\tvar commaPos = text.indexOf(\",\");\n\t\t\tif(commaPos !== -1) {\n\t\t\t\ttext = text.substr(commaPos + 1);\n\t\t\t}\n\t\t}\n\t\t// Check whether this is an encrypted TiddlyWiki file\n\t\tvar encryptedJson = $tw.utils.extractEncryptedStoreArea(text);\n\t\tif(encryptedJson) {\n\t\t\t// If so, attempt to decrypt it with the current password\n\t\t\t$tw.utils.decryptStoreAreaInteractive(encryptedJson,function(tiddlers) {\n\t\t\t\tcallback(tiddlers);\n\t\t\t});\n\t\t} else {\n\t\t\t// Otherwise, just try to deserialise any tiddlers in the file\n\t\t\tcallback(self.deserializeTiddlers(type,text,tiddlerFields,{deserializer: deserializer}));\n\t\t}\n\t};\n\t// Kick off the read\n\tif(isBinary) {\n\t\treader.readAsDataURL(file);\n\t} else {\n\t\treader.readAsText(file);\n\t}\n};\n\n/*\nFind any existing draft of a specified tiddler\n*/\nexports.findDraft = function(targetTitle) {\n\tvar draftTitle = undefined;\n\tthis.forEachTiddler({includeSystem: true},function(title,tiddler) {\n\t\tif(tiddler.fields[\"draft.title\"] && tiddler.fields[\"draft.of\"] === targetTitle) {\n\t\t\tdraftTitle = title;\n\t\t}\n\t});\n\treturn draftTitle;\n}\n\n/*\nCheck whether the specified draft tiddler has been modified.\nIf the original tiddler doesn't exist, create a vanilla tiddler variable,\nto check if additional fields have been added.\n*/\nexports.isDraftModified = function(title) {\n\tvar tiddler = this.getTiddler(title);\n\tif(!tiddler.isDraft()) {\n\t\treturn false;\n\t}\n\tvar ignoredFields = [\"created\", \"modified\", \"title\", \"draft.title\", \"draft.of\"],\n\t\torigTiddler = this.getTiddler(tiddler.fields[\"draft.of\"]) || new $tw.Tiddler({text:\"\", tags:[]}),\n\t\ttitleModified = tiddler.fields[\"draft.title\"] !== tiddler.fields[\"draft.of\"];\n\treturn titleModified || !tiddler.isEqual(origTiddler,ignoredFields);\n};\n\n/*\nAdd a new record to the top of the history stack\ntitle: a title string or an array of title strings\nfromPageRect: page coordinates of the origin of the navigation\nhistoryTitle: title of history tiddler (defaults to $:/HistoryList)\n*/\nexports.addToHistory = function(title,fromPageRect,historyTitle) {\n\tvar story = new $tw.Story({wiki: this, historyTitle: historyTitle});\n\tstory.addToHistory(title,fromPageRect);\t\t\n};\n\n/*\nAdd a new tiddler to the story river\ntitle: a title string or an array of title strings\nfromTitle: the title of the tiddler from which the navigation originated\nstoryTitle: title of story tiddler (defaults to $:/StoryList)\noptions: see story.js\n*/\nexports.addToStory = function(title,fromTitle,storyTitle,options) {\n\tvar story = new $tw.Story({wiki: this, storyTitle: storyTitle});\n\tstory.addToStory(title,fromTitle,options);\t\t\n};\n\n/*\nGenerate a title for the draft of a given tiddler\n*/\nexports.generateDraftTitle = function(title) {\n\tvar c = 0,\n\t\tdraftTitle,\n\t\tusername = this.getTiddlerText(\"$:/status/UserName\"),\n\t\tattribution = username ? \" by \" + username : \"\";\n\tdo {\n\t\tdraftTitle = \"Draft \" + (c ? (c + 1) + \" \" : \"\") + \"of '\" + title + \"'\" + attribution;\n\t\tc++;\n\t} while(this.tiddlerExists(draftTitle));\n\treturn draftTitle;\n};\n\n/*\nInvoke the available upgrader modules\ntitles: array of tiddler titles to be processed\ntiddlers: hashmap by title of tiddler fields of pending import tiddlers. These can be modified by the upgraders. An entry with no fields indicates a tiddler that was pending import has been suppressed. When entries are added to the pending import the tiddlers hashmap may have entries that are not present in the titles array\nReturns a hashmap of messages keyed by tiddler title.\n*/\nexports.invokeUpgraders = function(titles,tiddlers) {\n\t// Collect up the available upgrader modules\n\tvar self = this;\n\tif(!this.upgraderModules) {\n\t\tthis.upgraderModules = [];\n\t\t$tw.modules.forEachModuleOfType(\"upgrader\",function(title,module) {\n\t\t\tif(module.upgrade) {\n\t\t\t\tself.upgraderModules.push(module);\n\t\t\t}\n\t\t});\n\t}\n\t// Invoke each upgrader in turn\n\tvar messages = {};\n\tfor(var t=0; t<this.upgraderModules.length; t++) {\n\t\tvar upgrader = this.upgraderModules[t],\n\t\t\tupgraderMessages = upgrader.upgrade(this,titles,tiddlers);\n\t\t$tw.utils.extend(messages,upgraderMessages);\n\t}\n\treturn messages;\n};\n\n// Determine whether a plugin by title is dynamically loadable\nexports.doesPluginRequireReload = function(title) {\n\treturn this.doesPluginInfoRequireReload(this.getPluginInfo(title) || this.getTiddlerDataCached(title));\n};\n\n// Determine whether a plugin info structure is dynamically loadable\nexports.doesPluginInfoRequireReload = function(pluginInfo) {\n\tif(pluginInfo) {\n\t\tvar foundModule = false;\n\t\t$tw.utils.each(pluginInfo.tiddlers,function(tiddler) {\n\t\t\tif(tiddler.type === \"application/javascript\" && $tw.utils.hop(tiddler,\"module-type\")) {\n\t\t\t\tfoundModule = true;\n\t\t\t}\n\t\t});\n\t\treturn foundModule;\n\t} else {\n\t\treturn null;\n\t}\n};\n\n})();\n\n",
"type": "application/javascript",
"module-type": "wikimethod"
},
"$:/palettes/Blanca": {
"title": "$:/palettes/Blanca",
"name": "Blanca",
"description": "A clean white palette to let you focus",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #66cccc\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #999999\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #ffffff\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #7897f3\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #ccc\nsidebar-foreground-shadow: rgba(255,255,255, 0.8)\nsidebar-foreground: #acacac\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: #ffffff\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #444444\nsidebar-tiddler-link-foreground: #7897f3\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #eeeeee\ntab-border-selected: #cccccc\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #ffeedd\ntag-foreground: #000\ntiddler-background: <<colour background>>\ntiddler-border: #eee\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #ff9900\ntoolbar-new-button:\ntoolbar-options-button:\ntoolbar-save-button:\ntoolbar-info-button:\ntoolbar-edit-button:\ntoolbar-close-button:\ntoolbar-delete-button:\ntoolbar-cancel-button:\ntoolbar-done-button:\nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
},
"$:/palettes/Blue": {
"title": "$:/palettes/Blue",
"name": "Blue",
"description": "A blue theme",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #fff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour foreground>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333353\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #999999\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #ddddff\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #5778d8\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #ffffff\nsidebar-foreground-shadow: rgba(255,255,255, 0.8)\nsidebar-foreground: #acacac\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: <<colour page-background>>\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #444444\nsidebar-tiddler-link-foreground: #5959c0\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: <<colour background>>\ntab-background: #ccccdd\ntab-border-selected: #ccccdd\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #eeeeff\ntag-foreground: #000\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #666666\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #ffffff\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #ffffff\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #5959c0\ntoolbar-new-button: #5eb95e\ntoolbar-options-button: rgb(128, 88, 165)\ntoolbar-save-button: #0e90d2\ntoolbar-info-button: #0e90d2\ntoolbar-edit-button: rgb(243, 123, 29)\ntoolbar-close-button: #dd514c\ntoolbar-delete-button: #dd514c\ntoolbar-cancel-button: rgb(243, 123, 29)\ntoolbar-done-button: #5eb95e\nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
},
"$:/palettes/Muted": {
"title": "$:/palettes/Muted",
"name": "Muted",
"description": "Bright tiddlers on a muted background",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #bbb\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #6f6f70\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #29a6ee\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #c2c1c2\nsidebar-foreground-shadow: rgba(255,255,255,0)\nsidebar-foreground: #d3d2d4\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: #6f6f70\nsidebar-tab-background: #666667\nsidebar-tab-border-selected: #999\nsidebar-tab-border: #515151\nsidebar-tab-divider: #999\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: #999\nsidebar-tiddler-link-foreground-hover: #444444\nsidebar-tiddler-link-foreground: #d1d0d2\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #d8d8d8\ntab-border-selected: #d8d8d8\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #d5ad34\ntag-foreground: #ffffff\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #182955\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
},
"$:/palettes/ContrastLight": {
"title": "$:/palettes/ContrastLight",
"name": "Contrast (Light)",
"description": "High contrast and unambiguous (light version)",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"text": "alert-background: #f00\nalert-border: <<colour background>>\nalert-highlight: <<colour foreground>>\nalert-muted-foreground: #800\nbackground: #fff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background: <<colour background>>\nbutton-foreground: <<colour foreground>>\nbutton-border: <<colour foreground>>\ncode-background: <<colour background>>\ncode-border: <<colour foreground>>\ncode-foreground: <<colour foreground>>\ndirty-indicator: #f00\ndownload-background: #080\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: <<colour foreground>>\ndropdown-tab-background: <<colour foreground>>\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #00a\nexternal-link-foreground: #00e\nforeground: #000\nmessage-background: <<colour foreground>>\nmessage-border: <<colour background>>\nmessage-foreground: <<colour background>>\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: <<colour foreground>>\nmodal-footer-background: <<colour background>>\nmodal-footer-border: <<colour foreground>>\nmodal-header-border: <<colour foreground>>\nmuted-foreground: <<colour foreground>>\nnotification-background: <<colour background>>\nnotification-border: <<colour foreground>>\npage-background: <<colour background>>\npre-background: <<colour background>>\npre-border: <<colour foreground>>\nprimary: #00f\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: <<colour background>>\nsidebar-controls-foreground: <<colour foreground>>\nsidebar-foreground-shadow: rgba(0,0,0, 0)\nsidebar-foreground: <<colour foreground>>\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: <<colour foreground>>\nsidebar-tab-background-selected: <<colour background>>\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: <<colour foreground>>\nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: <<colour foreground>>\nsidebar-tiddler-link-foreground: <<colour primary>>\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: <<colour background>>\ntab-background: <<colour foreground>>\ntab-border-selected: <<colour foreground>>\ntab-border: <<colour foreground>>\ntab-divider: <<colour foreground>>\ntab-foreground-selected: <<colour foreground>>\ntab-foreground: <<colour background>>\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #000\ntag-foreground: #fff\ntiddler-background: <<colour background>>\ntiddler-border: <<colour foreground>>\ntiddler-controls-foreground-hover: #ddd\ntiddler-controls-foreground-selected: #fdd\ntiddler-controls-foreground: <<colour foreground>>\ntiddler-editor-background: <<colour background>>\ntiddler-editor-border-image: <<colour foreground>>\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: <<colour background>>\ntiddler-editor-fields-odd: <<colour background>>\ntiddler-info-background: <<colour background>>\ntiddler-info-border: <<colour foreground>>\ntiddler-info-tab-background: <<colour background>>\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: <<colour foreground>>\ntiddler-title-foreground: <<colour foreground>>\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: <<colour foreground>>\nvery-muted-foreground: #888888\n"
},
"$:/palettes/ContrastDark": {
"title": "$:/palettes/ContrastDark",
"name": "Contrast (Dark)",
"description": "High contrast and unambiguous (dark version)",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"text": "alert-background: #f00\nalert-border: <<colour background>>\nalert-highlight: <<colour foreground>>\nalert-muted-foreground: #800\nbackground: #000\nblockquote-bar: <<colour muted-foreground>>\nbutton-background: <<colour background>>\nbutton-foreground: <<colour foreground>>\nbutton-border: <<colour foreground>>\ncode-background: <<colour background>>\ncode-border: <<colour foreground>>\ncode-foreground: <<colour foreground>>\ndirty-indicator: #f00\ndownload-background: #080\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: <<colour foreground>>\ndropdown-tab-background: <<colour foreground>>\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #00a\nexternal-link-foreground: #00e\nforeground: #fff\nmessage-background: <<colour foreground>>\nmessage-border: <<colour background>>\nmessage-foreground: <<colour background>>\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: <<colour foreground>>\nmodal-footer-background: <<colour background>>\nmodal-footer-border: <<colour foreground>>\nmodal-header-border: <<colour foreground>>\nmuted-foreground: <<colour foreground>>\nnotification-background: <<colour background>>\nnotification-border: <<colour foreground>>\npage-background: <<colour background>>\npre-background: <<colour background>>\npre-border: <<colour foreground>>\nprimary: #00f\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: <<colour background>>\nsidebar-controls-foreground: <<colour foreground>>\nsidebar-foreground-shadow: rgba(0,0,0, 0)\nsidebar-foreground: <<colour foreground>>\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: <<colour foreground>>\nsidebar-tab-background-selected: <<colour background>>\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: <<colour foreground>>\nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: <<colour foreground>>\nsidebar-tiddler-link-foreground: <<colour primary>>\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: <<colour background>>\ntab-background: <<colour foreground>>\ntab-border-selected: <<colour foreground>>\ntab-border: <<colour foreground>>\ntab-divider: <<colour foreground>>\ntab-foreground-selected: <<colour foreground>>\ntab-foreground: <<colour background>>\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #fff\ntag-foreground: #000\ntiddler-background: <<colour background>>\ntiddler-border: <<colour foreground>>\ntiddler-controls-foreground-hover: #ddd\ntiddler-controls-foreground-selected: #fdd\ntiddler-controls-foreground: <<colour foreground>>\ntiddler-editor-background: <<colour background>>\ntiddler-editor-border-image: <<colour foreground>>\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: <<colour background>>\ntiddler-editor-fields-odd: <<colour background>>\ntiddler-info-background: <<colour background>>\ntiddler-info-border: <<colour foreground>>\ntiddler-info-tab-background: <<colour background>>\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: <<colour foreground>>\ntiddler-title-foreground: <<colour foreground>>\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: <<colour foreground>>\nvery-muted-foreground: #888888\n"
},
"$:/palettes/DarkPhotos": {
"title": "$:/palettes/DarkPhotos",
"created": "20150402111612188",
"description": "Good with dark photo backgrounds",
"modified": "20150402112344080",
"name": "DarkPhotos",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background: \nbutton-foreground: \nbutton-border: \ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #ddd\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #336438\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #5778d8\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #ccf\nsidebar-controls-foreground: #fff\nsidebar-foreground-shadow: rgba(0,0,0, 0.5)\nsidebar-foreground: #fff\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #eee\nsidebar-tab-background-selected: rgba(255,255,255, 0.8)\nsidebar-tab-background: rgba(255,255,255, 0.4)\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: rgba(255,255,255, 0.2)\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #aaf\nsidebar-tiddler-link-foreground: #ddf\nsite-title-foreground: #fff\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #d8d8d8\ntab-border-selected: #d8d8d8\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #ec6\ntag-foreground: #ffffff\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #182955\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
},
"$:/palettes/GruvboxDark": {
"title": "$:/palettes/GruvboxDark",
"name": "Gruvbox Dark",
"description": "Retro groove color scheme",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"license": "https://github.com/morhetz/gruvbox",
"text": "alert-background: #cc241d\nalert-border: #cc241d\nalert-highlight: #d79921\nalert-muted-foreground: #504945\nbackground: #3c3836\nblockquote-bar: <<colour muted-foreground>>\nbutton-background: #504945\nbutton-foreground: #fbf1c7\nbutton-border: transparent\ncode-background: #504945\ncode-border: #504945\ncode-foreground: #fb4934\ndiff-delete-background: #fb4934\ndiff-delete-foreground: <<colour foreground>>\ndiff-equal-background: \ndiff-equal-foreground: <<colour foreground>>\ndiff-insert-background: #b8bb26\ndiff-insert-foreground: <<colour foreground>>\ndiff-invisible-background: \ndiff-invisible-foreground: <<colour muted-foreground>>\ndirty-indicator: #fb4934\ndownload-background: #b8bb26\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: #665c54\ndropdown-border: <<colour background>>\ndropdown-tab-background-selected: #ebdbb2\ndropdown-tab-background: #665c54\ndropzone-background: #98971a\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #d3869b\nexternal-link-foreground: #8ec07c\nforeground: #fbf1c7\nmenubar-background: #504945\nmenubar-foreground: <<colour foreground>>\nmessage-background: #83a598\nmessage-border: #83a598\nmessage-foreground: #3c3836\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #504945\nmodal-footer-background: #3c3836\nmodal-footer-border: #3c3836\nmodal-header-border: #3c3836\nmuted-foreground: #d5c4a1\nnotification-background: <<colour primary>>\nnotification-border: <<colour primary>>\npage-background: #282828\npre-background: #504945\npre-border: #504945\nprimary: #d79921\nselect-tag-background: #665c54\nselect-tag-foreground: <<colour foreground>>\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #7c6f64\nsidebar-controls-foreground: #504945\nsidebar-foreground-shadow: transparent\nsidebar-foreground: #fbf1c7\nsidebar-muted-foreground-hover: #7c6f64\nsidebar-muted-foreground: #504945\nsidebar-tab-background-selected: #bdae93\nsidebar-tab-background: #3c3836\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: #bdae93\nsidebar-tab-divider: <<colour page-background>>\nsidebar-tab-foreground-selected: #282828\nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #458588\nsidebar-tiddler-link-foreground: #98971a\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #B48EAD\ntab-background-selected: #ebdbb2\ntab-background: #665c54\ntab-border-selected: #665c54\ntab-border: #665c54\ntab-divider: #bdae93\ntab-foreground-selected: #282828\ntab-foreground: #ebdbb2\ntable-border: #7c6f64\ntable-footer-background: #665c54\ntable-header-background: #504945\ntag-background: #d3869b\ntag-foreground: #282828\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #7c6f64\ntiddler-controls-foreground-selected: #7c6f64\ntiddler-controls-foreground: #665c54\ntiddler-editor-background: #282828\ntiddler-editor-border-image: #282828\ntiddler-editor-border: #282828\ntiddler-editor-fields-even: #504945\ntiddler-editor-fields-odd: #7c6f64\ntiddler-info-background: #32302f\ntiddler-info-border: #ebdbb2\ntiddler-info-tab-background: #ebdbb2\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #7c6f64\ntiddler-title-foreground: #a89984\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: #504945\nvery-muted-foreground: #bdae93\nwikilist-background: <<colour page-background>>\nwikilist-button-background: <<colour button-background>>\nwikilist-button-foreground: <<colour button-foreground>>\nwikilist-item: <<colour background>>\nwikilist-toolbar-background: <<colour background>>\nwikilist-toolbar-foreground: <<colour foreground>>\nwikilist-title: <<colour foreground>>\nwikilist-title-svg: <<colour wikilist-title>>\nwikilist-url: <<colour muted-foreground>>\nwikilist-button-open-hover: <<colour primary>>\nwikilist-button-open: <<colour dropzone-background>>\nwikilist-button-remove: <<colour dirty-indicator>>\nwikilist-button-remove-hover: <<colour alert-background>>\nwikilist-droplink-dragover: <<colour dropzone-background>>\nwikilist-button-reveal: <<colour sidebar-tiddler-link-foreground-hover>>\nwikilist-button-reveal-hover: <<colour message-background>>"
},
"$:/palettes/Nord": {
"title": "$:/palettes/Nord",
"name": "Nord",
"description": "An arctic, north-bluish color palette.",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"license": "MIT, arcticicestudio, https://github.com/arcticicestudio/nord/blob/develop/LICENSE.md",
"text": "alert-background: #D08770\nalert-border: #D08770\nalert-highlight: #B48EAD\nalert-muted-foreground: #4C566A\nbackground: #3b4252\nblockquote-bar: <<colour muted-foreground>>\nbutton-background: #4C566A\nbutton-foreground: #D8DEE9\nbutton-border: transparent\ncode-background: #2E3440\ncode-border: #2E3440\ncode-foreground: #BF616A\ndiff-delete-background: #BF616A\ndiff-delete-foreground: <<colour foreground>>\ndiff-equal-background: \ndiff-equal-foreground: <<colour foreground>>\ndiff-insert-background: #A3BE8C\ndiff-insert-foreground: <<colour foreground>>\ndiff-invisible-background: \ndiff-invisible-foreground: <<colour muted-foreground>>\ndirty-indicator: #BF616A\ndownload-background: #A3BE8C\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour background>>\ndropdown-tab-background-selected: #ECEFF4\ndropdown-tab-background: #4C566A\ndropzone-background: #A3BE8C\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #5E81AC\nexternal-link-foreground: #8FBCBB\nforeground: #d8dee9\nmenubar-background: #2E3440\nmenubar-foreground: #d8dee9\nmessage-background: #2E3440\nmessage-border: #2E3440\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #3b4252\nmodal-footer-background: #3b4252\nmodal-footer-border: #3b4252\nmodal-header-border: #3b4252\nmuted-foreground: #4C566A\nnotification-background: <<colour primary>>\nnotification-border: #EBCB8B\npage-background: #2e3440\npre-background: #2E3440\npre-border: #2E3440\nprimary: #5E81AC\nselect-tag-background: #3b4252\nselect-tag-foreground: <<colour foreground>>\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #D8DEE9\nsidebar-controls-foreground: #4C566A\nsidebar-foreground-shadow: transparent\nsidebar-foreground: #D8DEE9\nsidebar-muted-foreground-hover: #4C566A\nsidebar-muted-foreground: #4C566A\nsidebar-tab-background-selected: #ECEFF4\nsidebar-tab-background: #4C566A\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: #4C566A\nsidebar-tab-divider: <<colour page-background>>\nsidebar-tab-foreground-selected: #4C566A\nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #A3BE8C\nsidebar-tiddler-link-foreground: #81A1C1\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #B48EAD\ntab-background-selected: #ECEFF4\ntab-background: #4C566A\ntab-border-selected: #4C566A\ntab-border: #4C566A\ntab-divider: #4C566A\ntab-foreground-selected: #4C566A\ntab-foreground: #D8DEE9\ntable-border: #4C566A\ntable-footer-background: #2e3440\ntable-header-background: #2e3440\ntag-background: #A3BE8C\ntag-foreground: #4C566A\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: \ntiddler-controls-foreground-selected: #EBCB8B\ntiddler-controls-foreground: #4C566A\ntiddler-editor-background: #2e3440\ntiddler-editor-border-image: #2e3440\ntiddler-editor-border: #2e3440\ntiddler-editor-fields-even: #2e3440\ntiddler-editor-fields-odd: #2e3440\ntiddler-info-background: #2e3440\ntiddler-info-border: #2e3440\ntiddler-info-tab-background: #2e3440\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #4C566A\ntiddler-title-foreground: #81A1C1\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: #2d3038\nvery-muted-foreground: #2d3038\n"
},
"$:/palettes/Rocker": {
"title": "$:/palettes/Rocker",
"name": "Rocker",
"description": "A dark theme",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #999999\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #000\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #cc0000\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #ffffff\nsidebar-foreground-shadow: rgba(255,255,255, 0.0)\nsidebar-foreground: #acacac\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: #000\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #ffbb99\nsidebar-tiddler-link-foreground: #cc0000\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #d8d8d8\ntab-border-selected: #d8d8d8\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #ffbb99\ntag-foreground: #000\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #cc0000\ntoolbar-new-button:\ntoolbar-options-button:\ntoolbar-save-button:\ntoolbar-info-button:\ntoolbar-edit-button:\ntoolbar-close-button:\ntoolbar-delete-button:\ntoolbar-cancel-button:\ntoolbar-done-button:\nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
},
"$:/palettes/SolarFlare": {
"title": "$:/palettes/SolarFlare",
"name": "Solar Flare",
"description": "Warm, relaxing earth colours",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"text": ": Background Tones\n\nbase03: #002b36\nbase02: #073642\n\n: Content Tones\n\nbase01: #586e75\nbase00: #657b83\nbase0: #839496\nbase1: #93a1a1\n\n: Background Tones\n\nbase2: #eee8d5\nbase3: #fdf6e3\n\n: Accent Colors\n\nyellow: #b58900\norange: #cb4b16\nred: #dc322f\nmagenta: #d33682\nviolet: #6c71c4\nblue: #268bd2\ncyan: #2aa198\ngreen: #859900\n\n: Additional Tones (RA)\n\nbase10: #c0c4bb\nviolet-muted: #7c81b0\nblue-muted: #4e7baa\n\nyellow-hot: #ffcc44\norange-hot: #eb6d20\nred-hot: #ff2222\nblue-hot: #2298ee\ngreen-hot: #98ee22\n\n: Palette\n\n: Do not use colour macro for background and foreground\nbackground: #fdf6e3\n download-foreground: <<colour background>>\n dragger-foreground: <<colour background>>\n dropdown-background: <<colour background>>\n modal-background: <<colour background>>\n sidebar-foreground-shadow: <<colour background>>\n tiddler-background: <<colour background>>\n tiddler-border: <<colour background>>\n tiddler-link-background: <<colour background>>\n tab-background-selected: <<colour background>>\n dropdown-tab-background-selected: <<colour tab-background-selected>>\nforeground: #657b83\n dragger-background: <<colour foreground>>\n tab-foreground: <<colour foreground>>\n tab-foreground-selected: <<colour tab-foreground>>\n sidebar-tab-foreground-selected: <<colour tab-foreground-selected>>\n sidebar-tab-foreground: <<colour tab-foreground>>\n sidebar-button-foreground: <<colour foreground>>\n sidebar-controls-foreground: <<colour foreground>>\n sidebar-foreground: <<colour foreground>>\n: base03\n: base02\n: base01\n alert-muted-foreground: <<colour base01>>\n: base00\n code-foreground: <<colour base00>>\n message-foreground: <<colour base00>>\n tag-foreground: <<colour base00>>\n: base0\n sidebar-tiddler-link-foreground: <<colour base0>>\n: base1\n muted-foreground: <<colour base1>>\n blockquote-bar: <<colour muted-foreground>>\n dropdown-border: <<colour muted-foreground>>\n sidebar-muted-foreground: <<colour muted-foreground>>\n tiddler-title-foreground: <<colour muted-foreground>>\n site-title-foreground: <<colour tiddler-title-foreground>>\n: base2\n modal-footer-background: <<colour base2>>\n page-background: <<colour base2>>\n modal-backdrop: <<colour page-background>>\n notification-background: <<colour page-background>>\n code-background: <<colour page-background>>\n code-border: <<colour code-background>>\n pre-background: <<colour page-background>>\n pre-border: <<colour pre-background>>\n sidebar-tab-background-selected: <<colour page-background>>\n table-header-background: <<colour base2>>\n tag-background: <<colour base2>>\n tiddler-editor-background: <<colour base2>>\n tiddler-info-background: <<colour base2>>\n tiddler-info-tab-background: <<colour base2>>\n tab-background: <<colour base2>>\n dropdown-tab-background: <<colour tab-background>>\n: base3\n alert-background: <<colour base3>>\n message-background: <<colour base3>>\n: yellow\n: orange\n: red\n: magenta\n alert-highlight: <<colour magenta>>\n: violet\n external-link-foreground: <<colour violet>>\n: blue\n: cyan\n: green\n: base10\n tiddler-controls-foreground: <<colour base10>>\n: violet-muted\n external-link-foreground-visited: <<colour violet-muted>>\n: blue-muted\n primary: <<colour blue-muted>>\n download-background: <<colour primary>>\n tiddler-link-foreground: <<colour primary>>\n\nalert-border: #b99e2f\ndirty-indicator: #ff0000\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nmessage-border: #cfd6e6\nmodal-border: #999999\nselect-tag-background:\nselect-tag-foreground:\nsidebar-controls-foreground-hover:\nsidebar-muted-foreground-hover:\nsidebar-tab-background: #ded8c5\nsidebar-tiddler-link-foreground-hover:\nstatic-alert-foreground: #aaaaaa\ntab-border: #cccccc\n modal-footer-border: <<colour tab-border>>\n modal-header-border: <<colour tab-border>>\n notification-border: <<colour tab-border>>\n sidebar-tab-border: <<colour tab-border>>\n tab-border-selected: <<colour tab-border>>\n sidebar-tab-border-selected: <<colour tab-border-selected>>\ntab-divider: #d8d8d8\n sidebar-tab-divider: <<colour tab-divider>>\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-border: #dddddd\ntiddler-subtitle-foreground: #c0c0c0\ntoolbar-new-button:\ntoolbar-options-button:\ntoolbar-save-button:\ntoolbar-info-button:\ntoolbar-edit-button:\ntoolbar-close-button:\ntoolbar-delete-button:\ntoolbar-cancel-button:\ntoolbar-done-button:\nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
},
"$:/palettes/SolarizedLight": {
"title": "$:/palettes/SolarizedLight",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"description": "Precision colors for machines and people",
"license": "MIT, Ethan Schoonover, https://github.com/altercation/solarized/blob/master/LICENSE",
"name": "SolarizedLight",
"text": "alert-background: #eee8d5\nalert-border: #073642\nalert-highlight: #cb4b16\nalert-muted-foreground: #586e75\nbackground: #fdf6e3\nblockquote-bar: <<colour muted-foreground>>\nbutton-background: #cb4b16\nbutton-foreground: #fdf6e3\nbutton-border: transparent\ncode-background: #eee8d5\ncode-border: #93a1a1\ncode-foreground: #d33682\ndiff-delete-background: #BF616A\ndiff-delete-foreground: <<colour foreground>>\ndiff-equal-background: \ndiff-equal-foreground: <<colour foreground>>\ndiff-insert-background: #859900\ndiff-insert-foreground: <<colour foreground>>\ndiff-invisible-background: \ndiff-invisible-foreground: <<colour muted-foreground>>\ndirty-indicator: #D08770\ndownload-background: #859900\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour background>>\ndropdown-tab-background-selected: #fdf6e3\ndropdown-tab-background: #93a1a1\ndropzone-background: #859900\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: #d33682\nexternal-link-foreground-visited: #b58900\nexternal-link-foreground: #cb4b16\nforeground: #839496\nmessage-background: #586e75\nmessage-border: #586e75\nmessage-foreground: #eee8d5\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #eee8d5\nmodal-footer-background: #eee8d5\nmodal-footer-border: #eee8d5\nmodal-header-border: #eee8d5\nmuted-foreground: #93a1a1\nnotification-background: #EBCB8B\nnotification-border: #D08770\npage-background: #eee8d5\npre-background: #eee8d5\npre-border: #93a1a1\nprimary: #2aa198\nselect-tag-background: #eee8d5\nselect-tag-foreground: <<colour foreground>>\nsidebar-button-foreground: #eee8d5\nsidebar-controls-foreground-hover: #268bd2\nsidebar-controls-foreground: #586e75\nsidebar-foreground-shadow: transparent\nsidebar-foreground: #839496\nsidebar-muted-foreground-hover: #657b83\nsidebar-muted-foreground: #93a1a1\nsidebar-tab-background-selected: #eee8d5\nsidebar-tab-background: #839496\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: #657b83\nsidebar-tab-divider: <<colour page-background>>\nsidebar-tab-foreground-selected: #839496\nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #859900\nsidebar-tiddler-link-foreground: #268bd2\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #dc322f\ntab-background-selected: #fdf6e3\ntab-background: #839496\ntab-border-selected: #93a1a1\ntab-border: #93a1a1\ntab-divider: #fdf6e3\ntab-foreground-selected: #839496\ntab-foreground: #eee8d5\ntable-border: #657b83\ntable-footer-background: #657b83\ntable-header-background: #93a1a1\ntag-background: #6c71c4\ntag-foreground: #eee8d5\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #b58900\ntiddler-controls-foreground-selected: #b58900\ntiddler-controls-foreground: #073642\ntiddler-editor-background: #eee8d5\ntiddler-editor-border-image: #eee8d5\ntiddler-editor-border: #eee8d5\ntiddler-editor-fields-even: #eee8d5\ntiddler-editor-fields-odd: #fdf6e3\ntiddler-info-background: #eee8d5\ntiddler-info-border: #eee8d5\ntiddler-info-tab-background: #586e75\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #586e75\ntiddler-title-foreground: #073642\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: #839496\nvery-muted-foreground: #93a1a1\n"
},
"$:/palettes/SpartanDay": {
"title": "$:/palettes/SpartanDay",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"description": "Cold, spartan day colors",
"name": "Spartan Day",
"text": "alert-background: <<colour background>>\nalert-border: <<colour very-muted-foreground>>\nalert-highlight: <<colour very-muted-foreground>>\nalert-muted-foreground: <<colour muted-foreground>>\nbackground: #FAFAFA\nblockquote-bar: <<colour page-background>>\nbutton-background: transparent\nbutton-foreground: inherit\nbutton-border: <<colour tag-background>>\ncode-background: #ececec\ncode-border: #ececec\ncode-foreground: \ndirty-indicator: #c80000\ndownload-background: <<colour primary>>\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: #FFFFFF\ndropdown-border: <<colour dropdown-background>>\ndropdown-tab-background-selected: <<colour dropdown-background>>\ndropdown-tab-background: #F5F5F5\ndropzone-background: <<colour tag-background>>\nexternal-link-background-hover: transparent\nexternal-link-background-visited: transparent\nexternal-link-background: transparent\nexternal-link-foreground-hover: \nexternal-link-foreground-visited: \nexternal-link-foreground: \nforeground: rgba(0, 0, 0, 0.87)\nmessage-background: <<colour background>>\nmessage-border: <<colour very-muted-foreground>>\nmessage-foreground: rgba(0, 0, 0, 0.54)\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: <<colour very-muted-foreground>>\nmodal-footer-background: <<colour background>>\nmodal-footer-border: <<colour very-muted-foreground>>\nmodal-header-border: <<colour very-muted-foreground>>\nmuted-foreground: rgba(0, 0, 0, 0.54)\nnotification-background: <<colour dropdown-background>>\nnotification-border: <<colour dropdown-background>>\npage-background: #f4f4f4\npre-background: #ececec\npre-border: #ececec\nprimary: #3949ab\nselect-tag-background: <<colour background>>\nselect-tag-foreground: <<colour foreground>>\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #aeaeae\nsidebar-controls-foreground: #c6c6c6\nsidebar-foreground-shadow: transparent\nsidebar-foreground: rgba(0, 0, 0, 0.54)\nsidebar-muted-foreground-hover: rgba(0, 0, 0, 0.54)\nsidebar-muted-foreground: rgba(0, 0, 0, 0.38)\nsidebar-tab-background-selected: <<colour page-background>>\nsidebar-tab-background: transparent\nsidebar-tab-border-selected: <<colour table-border>>\nsidebar-tab-border: transparent\nsidebar-tab-divider: <<colour table-border>>\nsidebar-tab-foreground-selected: rgba(0, 0, 0, 0.87)\nsidebar-tab-foreground: rgba(0, 0, 0, 0.54)\nsidebar-tiddler-link-foreground-hover: rgba(0, 0, 0, 0.87)\nsidebar-tiddler-link-foreground: rgba(0, 0, 0, 0.54)\nsite-title-foreground: rgba(0, 0, 0, 0.87)\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: <<colour background>>\ntab-background: transparent\ntab-border-selected: <<colour table-border>>\ntab-border: transparent\ntab-divider: <<colour table-border>>\ntab-foreground-selected: rgba(0, 0, 0, 0.87)\ntab-foreground: rgba(0, 0, 0, 0.54)\ntable-border: #d8d8d8\ntable-footer-background: <<colour tiddler-editor-fields-odd>>\ntable-header-background: <<colour tiddler-editor-fields-even>>\ntag-background: #ec6\ntag-foreground: <<colour button-foreground>>\ntiddler-background: <<colour background>>\ntiddler-border: #f9f9f9\ntiddler-controls-foreground-hover: <<colour sidebar-controls-foreground-hover>>\ntiddler-controls-foreground-selected: <<colour sidebar-controls-foreground-hover>>\ntiddler-controls-foreground: <<colour sidebar-controls-foreground>>\ntiddler-editor-background: transparent\ntiddler-editor-border-image: \ntiddler-editor-border: #e8e7e7\ntiddler-editor-fields-even: rgba(0, 0, 0, 0.1)\ntiddler-editor-fields-odd: rgba(0, 0, 0, 0.04)\ntiddler-info-background: #F5F5F5\ntiddler-info-border: #F5F5F5\ntiddler-info-tab-background: <<colour tiddler-editor-fields-odd>>\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: <<colour muted-foreground>>\ntiddler-title-foreground: #000000\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: <<colour very-muted-foreground>>\nvery-muted-foreground: rgba(0, 0, 0, 0.12)\n"
},
"$:/palettes/SpartanNight": {
"title": "$:/palettes/SpartanNight",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"description": "Dark spartan colors",
"name": "Spartan Night",
"text": "alert-background: <<colour background>>\nalert-border: <<colour very-muted-foreground>>\nalert-highlight: <<colour very-muted-foreground>>\nalert-muted-foreground: <<colour muted-foreground>>\nbackground: #303030\nblockquote-bar: <<colour page-background>>\nbutton-background: transparent\nbutton-foreground: inherit\nbutton-border: <<colour tag-background>>\ncode-background: <<colour pre-background>>\ncode-border: <<colour pre-border>>\ncode-foreground: rgba(255, 255, 255, 0.54)\ndirty-indicator: #c80000\ndownload-background: <<colour primary>>\ndownload-foreground: <<colour foreground>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: #424242\ndropdown-border: <<colour dropdown-background>>\ndropdown-tab-background-selected: <<colour dropdown-background>>\ndropdown-tab-background: #050505\ndropzone-background: <<colour tag-background>>\nexternal-link-background-hover: transparent\nexternal-link-background-visited: transparent\nexternal-link-background: transparent\nexternal-link-foreground-hover: \nexternal-link-foreground-visited: #7c318c\nexternal-link-foreground: #9e3eb3\nforeground: rgba(255, 255, 255, 0.7)\nmessage-background: <<colour background>>\nmessage-border: <<colour very-muted-foreground>>\nmessage-foreground: rgba(255, 255, 255, 0.54)\nmodal-backdrop: <<colour page-background>>\nmodal-background: <<colour background>>\nmodal-border: <<colour very-muted-foreground>>\nmodal-footer-background: <<colour background>>\nmodal-footer-border: <<colour background>>\nmodal-header-border: <<colour very-muted-foreground>>\nmuted-foreground: rgba(255, 255, 255, 0.54)\nnotification-background: <<colour dropdown-background>>\nnotification-border: <<colour dropdown-background>>\npage-background: #212121\npre-background: #2a2a2a\npre-border: transparent\nprimary: #5656f3\nselect-tag-background: <<colour background>>\nselect-tag-foreground: <<colour foreground>>\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #494949\nsidebar-controls-foreground: #5d5d5d\nsidebar-foreground-shadow: transparent\nsidebar-foreground: rgba(255, 255, 255, 0.54)\nsidebar-muted-foreground-hover: rgba(255, 255, 255, 0.54)\nsidebar-muted-foreground: rgba(255, 255, 255, 0.38)\nsidebar-tab-background-selected: <<colour page-background>>\nsidebar-tab-background: transparent\nsidebar-tab-border-selected: <<colour table-border>>\nsidebar-tab-border: transparent\nsidebar-tab-divider: <<colour table-border>>\nsidebar-tab-foreground-selected: rgba(255, 255, 255, 0.87)\nsidebar-tab-foreground: rgba(255, 255, 255, 0.54)\nsidebar-tiddler-link-foreground-hover: rgba(255, 255, 255, 0.7)\nsidebar-tiddler-link-foreground: rgba(255, 255, 255, 0.54)\nsite-title-foreground: rgba(255, 255, 255, 0.7)\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: <<colour background>>\ntab-background: transparent\ntab-border-selected: <<colour table-border>>\ntab-border: transparent\ntab-divider: <<colour table-border>>\ntab-foreground-selected: rgba(255, 255, 255, 0.87)\ntab-foreground: rgba(255, 255, 255, 0.54)\ntable-border: #3a3a3a\ntable-footer-background: <<colour tiddler-editor-fields-odd>>\ntable-header-background: <<colour tiddler-editor-fields-even>>\ntag-background: #ec6\ntag-foreground: <<colour button-foreground>>\ntiddler-background: <<colour background>>\ntiddler-border: rgb(55,55,55)\ntiddler-controls-foreground-hover: <<colour sidebar-controls-foreground-hover>>\ntiddler-controls-foreground-selected: <<colour sidebar-controls-foreground-hover>>\ntiddler-controls-foreground: <<colour sidebar-controls-foreground>>\ntiddler-editor-background: transparent\ntiddler-editor-border-image: \ntiddler-editor-border: rgba(255, 255, 255, 0.08)\ntiddler-editor-fields-even: rgba(255, 255, 255, 0.1)\ntiddler-editor-fields-odd: rgba(255, 255, 255, 0.04)\ntiddler-info-background: #454545\ntiddler-info-border: #454545\ntiddler-info-tab-background: <<colour tiddler-editor-fields-odd>>\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: <<colour muted-foreground>>\ntiddler-title-foreground: #FFFFFF\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: <<colour very-muted-foreground>>\nvery-muted-foreground: rgba(255, 255, 255, 0.12)\n"
},
"$:/palettes/Twilight": {
"title": "$:/palettes/Twilight",
"tags": "$:/tags/Palette",
"author": "Thomas Elmiger",
"type": "application/x-tiddler-dictionary",
"name": "Twilight",
"description": "Delightful, soft darkness.",
"text": "alert-background: rgb(255, 255, 102)\nalert-border: rgb(232, 232, 125)\nalert-highlight: rgb(255, 51, 51)\nalert-muted-foreground: rgb(224, 82, 82)\nbackground: rgb(38, 38, 38)\nblockquote-bar: rgba(240, 196, 117, 0.7)\nbutton-background: rgb(63, 63, 63)\nbutton-border: rgb(127, 127, 127)\nbutton-foreground: rgb(179, 179, 179)\ncode-background: rgba(0,0,0,0.03)\ncode-border: rgba(0,0,0,0.08)\ncode-foreground: rgb(255, 94, 94)\ndiff-delete-background: #ffc9c9\ndiff-delete-foreground: <<colour foreground>>\ndiff-equal-background: \ndiff-equal-foreground: <<colour foreground>>\ndiff-insert-background: #aaefad\ndiff-insert-foreground: <<colour foreground>>\ndiff-invisible-background: \ndiff-invisible-foreground: <<colour muted-foreground>>\ndirty-indicator: rgb(255, 94, 94)\ndownload-background: #19a974\ndownload-foreground: rgb(38, 38, 38)\ndragger-background: rgb(179, 179, 179)\ndragger-foreground: rgb(38, 38, 38)\ndropdown-background: rgb(38, 38, 38)\ndropdown-border: rgb(255, 255, 255)\ndropdown-tab-background: rgba(0,0,0,.1)\ndropdown-tab-background-selected: rgba(255,255,255,1)\ndropzone-background: #9eebcf\nexternal-link-background: inherit\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-foreground: rgb(179, 179, 255)\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: rgb(153, 153, 255)\nforeground: rgb(179, 179, 179)\nmessage-background: <<colour tag-foreground>>\nmessage-border: #96ccff\nmessage-foreground: <<colour tag-background>>\nmodal-backdrop: rgb(179, 179, 179)\nmodal-background: rgb(38, 38, 38)\nmodal-border: rgba(0,0,0,.5)\nmodal-footer-background: #f4f4f4\nmodal-footer-border: rgba(0,0,0,.1)\nmodal-header-border: rgba(0,0,0,.2)\nmuted-foreground: rgb(255, 255, 255)\nnotification-background: <<colour tag-foreground>>\nnotification-border: <<colour tag-background>>\npage-background: rgb(26, 26, 26)\npre-background: rgb(25, 25, 25)\npre-border: rgba(0,0,0,.2)\nprimary: rgb(255, 201, 102)\nselect-tag-background: \nselect-tag-foreground: \nsidebar-button-foreground: rgb(179, 179, 179)\nsidebar-controls-foreground: rgb(153, 153, 153)\nsidebar-controls-foreground-hover: <<colour tiddler-controls-foreground-hover>>\nsidebar-foreground: rgb(141, 141, 141)\nsidebar-foreground-shadow: transparent\nsidebar-muted-foreground: rgba(0, 0, 0, 0.5)\nsidebar-muted-foreground-hover: rgb(141, 141, 141)\nsidebar-tab-background: rgba(141, 141, 141, 0.2)\nsidebar-tab-background-selected: rgb(26, 26, 26)\nsidebar-tab-border: rgb(127, 127, 127)\nsidebar-tab-border-selected: rgb(127, 127, 127)\nsidebar-tab-divider: rgb(127, 127, 127)\nsidebar-tab-foreground: rgb(179, 179, 179)\nsidebar-tab-foreground-selected: rgb(179, 179, 179)\nsidebar-tiddler-link-foreground: rgb(179, 179, 179)\nsidebar-tiddler-link-foreground-hover: rgb(115, 115, 115)\nsite-title-foreground: rgb(255, 201, 102)\nstatic-alert-foreground: rgba(0,0,0,.3)\ntab-background: rgba(0,0,0,0.125)\ntab-background-selected: rgb(38, 38, 38)\ntab-border: rgb(255, 201, 102)\ntab-border-selected: rgb(255, 201, 102)\ntab-divider: rgb(255, 201, 102)\ntab-foreground: rgb(179, 179, 179)\ntab-foreground-selected: rgb(179, 179, 179)\ntable-border: rgba(255,255,255,.3)\ntable-footer-background: rgba(0,0,0,.4)\ntable-header-background: rgba(0,0,0,.1)\ntag-background: rgb(255, 201, 102)\ntag-foreground: rgb(25, 25, 25)\ntiddler-background: rgb(38, 38, 38)\ntiddler-border: rgba(240, 196, 117, 0.7)\ntiddler-controls-foreground: rgb(128, 128, 128)\ntiddler-controls-foreground-hover: rgba(255, 255, 255, 0.8)\ntiddler-controls-foreground-selected: rgba(255, 255, 255, 0.9)\ntiddler-editor-background: rgb(33, 33, 33)\ntiddler-editor-border: rgb(63, 63, 63)\ntiddler-editor-border-image: rgb(25, 25, 25)\ntiddler-editor-fields-even: rgb(33, 33, 33)\ntiddler-editor-fields-odd: rgb(28, 28, 28)\ntiddler-info-background: rgb(43, 43, 43)\ntiddler-info-border: rgb(25, 25, 25)\ntiddler-info-tab-background: rgb(43, 43, 43)\ntiddler-link-background: rgb(38, 38, 38)\ntiddler-link-foreground: rgb(204, 204, 255)\ntiddler-subtitle-foreground: rgb(255, 255, 255)\ntiddler-title-foreground: rgb(255, 192, 76)\ntoolbar-cancel-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-done-button: \ntoolbar-edit-button: \ntoolbar-info-button: \ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \nuntagged-background: rgb(255, 255, 255)\nvery-muted-foreground: rgba(240, 196, 117, 0.7)\n"
},
"$:/palettes/Vanilla": {
"title": "$:/palettes/Vanilla",
"name": "Vanilla",
"description": "Pale and unobtrusive",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndiff-delete-background: #ffc9c9\ndiff-delete-foreground: <<colour foreground>>\ndiff-equal-background: \ndiff-equal-foreground: <<colour foreground>>\ndiff-insert-background: #aaefad\ndiff-insert-foreground: <<colour foreground>>\ndiff-invisible-background: \ndiff-invisible-foreground: <<colour muted-foreground>>\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #bbb\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #f4f4f4\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #5778d8\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #aaaaaa\nsidebar-foreground-shadow: rgba(255,255,255, 0.8)\nsidebar-foreground: #acacac\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: #f4f4f4\nsidebar-tab-background: #e0e0e0\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: #e4e4e4\nsidebar-tab-foreground-selected:\nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #444444\nsidebar-tiddler-link-foreground: #999999\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #d8d8d8\ntab-border-selected: #d8d8d8\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #ec6\ntag-foreground: #ffffff\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #182955\ntoolbar-new-button:\ntoolbar-options-button:\ntoolbar-save-button:\ntoolbar-info-button:\ntoolbar-edit-button:\ntoolbar-close-button:\ntoolbar-delete-button:\ntoolbar-cancel-button:\ntoolbar-done-button:\nuntagged-background: #999999\nvery-muted-foreground: #888888\nwikilist-background: #e5e5e5\nwikilist-item: #fff\nwikilist-info: #000\nwikilist-title: #666\nwikilist-title-svg: <<colour wikilist-title>>\nwikilist-url: #aaa\nwikilist-button-open: #4fb82b\nwikilist-button-open-hover: green\nwikilist-button-reveal: #5778d8\nwikilist-button-reveal-hover: blue\nwikilist-button-remove: #d85778\nwikilist-button-remove-hover: red\nwikilist-toolbar-background: #d3d3d3\nwikilist-toolbar-foreground: #888\nwikilist-droplink-dragover: rgba(255,192,192,0.5)\nwikilist-button-background: #acacac\nwikilist-button-foreground: #000\n"
},
"$:/core/readme": {
"title": "$:/core/readme",
"text": "This plugin contains TiddlyWiki's core components, comprising:\n\n* JavaScript code modules\n* Icons\n* Templates needed to create TiddlyWiki's user interface\n* British English (''en-GB'') translations of the localisable strings used by the core\n"
},
"$:/library/sjcl.js/license": {
"title": "$:/library/sjcl.js/license",
"type": "text/plain",
"text": "SJCL is open. You can use, modify and redistribute it under a BSD\nlicense or under the GNU GPL, version 2.0.\n\n---------------------------------------------------------------------\n\nhttp://opensource.org/licenses/BSD-2-Clause\n\nCopyright (c) 2009-2015, Emily Stark, Mike Hamburg and Dan Boneh at\nStanford University. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n1. Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright\nnotice, this list of conditions and the following disclaimer in the\ndocumentation and/or other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS\nIS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED\nTO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A\nPARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nHOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED\nTO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\nPROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\nLIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\nNEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n---------------------------------------------------------------------\n\nhttp://opensource.org/licenses/GPL-2.0\n\nThe Stanford Javascript Crypto Library (hosted here on GitHub) is a\nproject by the Stanford Computer Security Lab to build a secure,\npowerful, fast, small, easy-to-use, cross-browser library for\ncryptography in Javascript.\n\nCopyright (c) 2009-2015, Emily Stark, Mike Hamburg and Dan Boneh at\nStanford University.\n\nThis program is free software; you can redistribute it and/or modify it\nunder the terms of the GNU General Public License as published by the\nFree Software Foundation; either version 2 of the License, or (at your\noption) any later version.\n\nThis program is distributed in the hope that it will be useful, but\nWITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General\nPublic License for more details.\n\nYou should have received a copy of the GNU General Public License along\nwith this program; if not, write to the Free Software Foundation, Inc.,\n59 Temple Place, Suite 330, Boston, MA 02111-1307 USA"
},
"$:/core/templates/MOTW.html": {
"title": "$:/core/templates/MOTW.html",
"text": "\\rules only filteredtranscludeinline transcludeinline entity\n<!-- The following comment is called a MOTW comment and is necessary for the TiddlyIE Internet Explorer extension -->\n<!-- saved from url=(0021)https://tiddlywiki.com --> "
},
"$:/core/templates/alltiddlers.template.html": {
"title": "$:/core/templates/alltiddlers.template.html",
"type": "text/vnd.tiddlywiki-html",
"text": "<!-- This template is provided for backwards compatibility with older versions of TiddlyWiki -->\n\n<$set name=\"exportFilter\" value=\"[!is[system]sort[title]]\">\n\n{{$:/core/templates/exporters/StaticRiver}}\n\n</$set>\n"
},
"$:/core/templates/canonical-uri-external-image": {
"title": "$:/core/templates/canonical-uri-external-image",
"text": "<!--\n\nThis template is used to assign the ''_canonical_uri'' field to external images.\n\nChange the `./images/` part to a different base URI. The URI can be relative or absolute.\n\n-->\n./images/<$view field=\"title\" format=\"doubleurlencoded\"/>"
},
"$:/core/templates/canonical-uri-external-raw": {
"title": "$:/core/templates/canonical-uri-external-raw",
"text": "<!--\n\nThis template is used to assign the ''_canonical_uri'' field to external raw files that are stored in the same directory\n\n-->\n<$view field=\"title\" format=\"doubleurlencoded\"/>"
},
"$:/core/templates/canonical-uri-external-text": {
"title": "$:/core/templates/canonical-uri-external-text",
"text": "<!--\n\nThis template is used to assign the ''_canonical_uri'' field to external text files.\n\nChange the `./text/` part to a different base URI. The URI can be relative or absolute.\n\n-->\n./text/<$view field=\"title\" format=\"doubleurlencoded\"/>.tid"
},
"$:/core/templates/css-tiddler": {
"title": "$:/core/templates/css-tiddler",
"text": "<!--\n\nThis template is used for saving CSS tiddlers as a style tag with data attributes representing the tiddler fields.\n\n-->`<style`<$fields template=' data-tiddler-$name$=\"$encoded_value$\"'></$fields>` type=\"text/css\">`<$view field=\"text\" format=\"text\" />`</style>`"
},
"$:/core/templates/exporters/CsvFile": {
"title": "$:/core/templates/exporters/CsvFile",
"tags": "$:/tags/Exporter",
"description": "{{$:/language/Exporters/CsvFile}}",
"extension": ".csv",
"text": "\\define renderContent()\n<$text text=<<csvtiddlers filter:\"\"\"$(exportFilter)$\"\"\" format:\"quoted-comma-sep\">>/>\n\\end\n<<renderContent>>\n"
},
"$:/core/templates/exporters/JsonFile": {
"title": "$:/core/templates/exporters/JsonFile",
"tags": "$:/tags/Exporter",
"description": "{{$:/language/Exporters/JsonFile}}",
"extension": ".json",
"text": "\\define renderContent()\n<$text text=<<jsontiddlers filter:\"\"\"$(exportFilter)$\"\"\">>/>\n\\end\n<<renderContent>>\n"
},
"$:/core/templates/exporters/StaticRiver": {
"title": "$:/core/templates/exporters/StaticRiver",
"tags": "$:/tags/Exporter",
"description": "{{$:/language/Exporters/StaticRiver}}",
"extension": ".html",
"text": "\\define tv-wikilink-template() #$uri_encoded$\n\\define tv-config-toolbar-icons() no\n\\define tv-config-toolbar-text() no\n\\define tv-config-toolbar-class() tc-btn-invisible\n\\rules only filteredtranscludeinline transcludeinline\n<!doctype html>\n<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content=\"{{$:/core/templates/version}}\" />\n<meta name=\"format-detection\" content=\"telephone=no\">\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<title>{{$:/core/wiki/title}}</title>\n<div id=\"styleArea\">\n{{$:/boot/boot.css||$:/core/templates/css-tiddler}}\n</div>\n<style type=\"text/css\">\n{{$:/core/ui/PageStylesheet||$:/core/templates/wikified-tiddler}}\n</style>\n</head>\n<body class=\"tc-body\">\n{{$:/StaticBanner||$:/core/templates/html-tiddler}}\n<section class=\"tc-story-river\">\n{{$:/core/templates/exporters/StaticRiver/Content||$:/core/templates/html-tiddler}}\n</section>\n</body>\n</html>\n"
},
"$:/core/templates/exporters/StaticRiver/Content": {
"title": "$:/core/templates/exporters/StaticRiver/Content",
"text": "\\define renderContent()\n{{{ $(exportFilter)$ ||$:/core/templates/static-tiddler}}}\n\\end\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n<<renderContent>>\n"
},
"$:/core/templates/exporters/TidFile": {
"title": "$:/core/templates/exporters/TidFile",
"tags": "$:/tags/Exporter",
"description": "{{$:/language/Exporters/TidFile}}",
"extension": ".tid",
"text": "\\define renderContent()\n{{{ $(exportFilter)$ +[limit[1]] ||$:/core/templates/tid-tiddler}}}\n\\end\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n<<renderContent>>"
},
"$:/core/save/all-external-js": {
"title": "$:/core/save/all-external-js",
"text": "\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n\\define saveTiddlerFilter()\n[is[tiddler]] -[prefix[$:/state/popup/]] -[[$:/HistoryList]] -[[$:/core]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] +[sort[title]] $(publishFilter)$\n\\end\n{{$:/core/templates/tiddlywiki5-external-js.html}}\n"
},
"$:/core/templates/tiddlywiki5.js": {
"title": "$:/core/templates/tiddlywiki5.js",
"text": "\\rules only filteredtranscludeinline transcludeinline codeinline\n\n/*\n{{ $:/core/copyright.txt ||$:/core/templates/plain-text-tiddler}}\n`*/\n`<!--~~ Library modules ~~-->\n{{{ [is[system]type[application/javascript]library[yes]] ||$:/core/templates/plain-text-tiddler}}}\n<!--~~ Boot prefix ~~-->\n{{ $:/boot/bootprefix.js ||$:/core/templates/plain-text-tiddler}}\n<!--~~ Core plugin ~~-->\n{{$:/core/templates/tiddlywiki5.js/tiddlers}}\n<!--~~ Boot kernel ~~-->\n{{ $:/boot/boot.js ||$:/core/templates/plain-text-tiddler}}\n"
},
"$:/core/templates/tiddlywiki5.js/tiddlers": {
"title": "$:/core/templates/tiddlywiki5.js/tiddlers",
"text": "`\n$tw.preloadTiddlerArray(`<$text text=<<jsontiddlers \"[[$:/core]]\">>/>`);\n$tw.preloadTiddlerArray([{\n\ttitle: \"$:/config/SaveWikiButton/Template\",\n\ttext: \"$:/core/save/all-external-js\"\n}]);\n`\n"
},
"$:/core/templates/tiddlywiki5-external-js.html": {
"title": "$:/core/templates/tiddlywiki5-external-js.html",
"text": "\\rules only filteredtranscludeinline transcludeinline\n<!doctype html>\n{{$:/core/templates/MOTW.html}}<html lang=\"`<$text text={{{ [{$:/language}get[name]] }}}/>`\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<!--~~ Raw markup for the top of the head section ~~-->\n{{{ [all[shadows+tiddlers]tag[$:/tags/RawMarkupWikified/TopHead]] ||$:/core/templates/raw-static-tiddler}}}\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=Edge\"/>\n<meta name=\"application-name\" content=\"TiddlyWiki\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content=\"{{$:/core/templates/version}}\" />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\" />\n<meta name=\"mobile-web-app-capable\" content=\"yes\"/>\n<meta name=\"format-detection\" content=\"telephone=no\" />\n<meta name=\"copyright\" content=\"{{$:/core/copyright.txt}}\" />\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<title>{{$:/core/wiki/title}}</title>\n<!--~~ This is a Tiddlywiki file. The points of interest in the file are marked with this pattern ~~-->\n\n<!--~~ Raw markup ~~-->\n{{{ [all[shadows+tiddlers]tag[$:/core/wiki/rawmarkup]] [all[shadows+tiddlers]tag[$:/tags/RawMarkup]] ||$:/core/templates/plain-text-tiddler}}}\n{{{ [all[shadows+tiddlers]tag[$:/tags/RawMarkupWikified]] ||$:/core/templates/raw-static-tiddler}}}\n</head>\n<body class=\"tc-body\">\n<!--~~ Raw markup for the top of the body section ~~-->\n{{{ [all[shadows+tiddlers]tag[$:/tags/RawMarkupWikified/TopBody]] ||$:/core/templates/raw-static-tiddler}}}\n<!--~~ Static styles ~~-->\n<div id=\"styleArea\">\n{{$:/boot/boot.css||$:/core/templates/css-tiddler}}\n</div>\n<!--~~ Static content for Google and browsers without JavaScript ~~-->\n<noscript>\n<div id=\"splashArea\">\n{{$:/core/templates/static.area}}\n</div>\n</noscript>\n<!--~~ Ordinary tiddlers ~~-->\n{{$:/core/templates/store.area.template.html}}\n<!--~~ Raw markup for the bottom of the body section ~~-->\n{{{ [all[shadows+tiddlers]tag[$:/tags/RawMarkupWikified/BottomBody]] ||$:/core/templates/raw-static-tiddler}}}\n</body>\n<script src=\"%24%3A%2Fcore%2Ftemplates%2Ftiddlywiki5.js\" onerror=\"alert('Error: Cannot load tiddlywiki.js');\"></script>\n</html>\n"
},
"$:/core/templates/html-div-skinny-tiddler": {
"title": "$:/core/templates/html-div-skinny-tiddler",
"text": "<!--\n\nThis template is a variant of $:/core/templates/html-div-tiddler used for saving skinny tiddlers (with no text field)\n\n-->`<div`<$fields template=' $name$=\"$encoded_value$\"'></$fields>`>\n<pre></pre>\n</div>`\n"
},
"$:/core/templates/html-div-tiddler": {
"title": "$:/core/templates/html-div-tiddler",
"text": "<!--\n\nThis template is used for saving tiddlers as an HTML DIV tag with attributes representing the tiddler fields.\n\n-->`<div`<$fields template=' $name$=\"$encoded_value$\"'></$fields>`>\n<pre>`<$view field=\"text\" format=\"htmlencoded\" />`</pre>\n</div>`\n"
},
"$:/core/templates/html-tiddler": {
"title": "$:/core/templates/html-tiddler",
"text": "<!--\n\nThis template is used for saving tiddlers as raw HTML\n\n--><$view field=\"text\" format=\"htmlwikified\" />"
},
"$:/core/templates/javascript-tiddler": {
"title": "$:/core/templates/javascript-tiddler",
"text": "<!--\n\nThis template is used for saving JavaScript tiddlers as a script tag with data attributes representing the tiddler fields.\n\n-->`<script`<$fields template=' data-tiddler-$name$=\"$encoded_value$\"'></$fields>` type=\"text/javascript\">`<$view field=\"text\" format=\"text\" />`</script>`"
},
"$:/core/templates/json-tiddler": {
"title": "$:/core/templates/json-tiddler",
"text": "<!--\n\nThis template is used for saving tiddlers as raw JSON\n\n--><$text text=<<jsontiddler>>/>"
},
"$:/core/templates/module-tiddler": {
"title": "$:/core/templates/module-tiddler",
"text": "<!--\n\nThis template is used for saving JavaScript tiddlers as a script tag with data attributes representing the tiddler fields. The body of the tiddler is wrapped in a call to the `$tw.modules.define` function in order to define the body of the tiddler as a module\n\n-->`<script`<$fields template=' data-tiddler-$name$=\"$encoded_value$\"'></$fields>` type=\"text/javascript\" data-module=\"yes\">$tw.modules.define(\"`<$view field=\"title\" format=\"jsencoded\" />`\",\"`<$view field=\"module-type\" format=\"jsencoded\" />`\",function(module,exports,require) {`<$view field=\"text\" format=\"text\" />`});\n</script>`"
},
"$:/core/templates/plain-text-tiddler": {
"title": "$:/core/templates/plain-text-tiddler",
"text": "<$view field=\"text\" format=\"text\" />"
},
"$:/core/templates/raw-static-tiddler": {
"title": "$:/core/templates/raw-static-tiddler",
"text": "<!--\n\nThis template is used for saving tiddlers as static HTML\n\n--><$view field=\"text\" format=\"plainwikified\" />"
},
"$:/core/save/all": {
"title": "$:/core/save/all",
"text": "\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n\\define saveTiddlerFilter()\n[is[tiddler]] -[prefix[$:/state/popup/]] -[[$:/HistoryList]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] +[sort[title]] $(publishFilter)$\n\\end\n{{$:/core/templates/tiddlywiki5.html}}\n"
},
"$:/core/save/empty": {
"title": "$:/core/save/empty",
"text": "\\define saveTiddlerFilter()\n[is[system]] -[prefix[$:/state/popup/]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] +[sort[title]]\n\\end\n{{$:/core/templates/tiddlywiki5.html}}\n"
},
"$:/core/save/lazy-all": {
"title": "$:/core/save/lazy-all",
"text": "\\define saveTiddlerFilter()\n[is[system]] -[prefix[$:/state/popup/]] -[[$:/HistoryList]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] +[sort[title]] \n\\end\n\\define skinnySaveTiddlerFilter()\n[!is[system]]\n\\end\n{{$:/core/templates/tiddlywiki5.html}}\n"
},
"$:/core/save/lazy-images": {
"title": "$:/core/save/lazy-images",
"text": "\\define saveTiddlerFilter()\n[is[tiddler]] -[prefix[$:/state/popup/]] -[[$:/HistoryList]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] -[!is[system]is[image]] +[sort[title]] \n\\end\n\\define skinnySaveTiddlerFilter()\n[is[image]]\n\\end\n{{$:/core/templates/tiddlywiki5.html}}\n"
},
"$:/core/templates/server/static.sidebar.wikitext": {
"title": "$:/core/templates/server/static.sidebar.wikitext",
"text": "\\whitespace trim\n<div class=\"tc-sidebar-scrollable\" style=\"overflow: auto;\">\n<div class=\"tc-sidebar-header\">\n<h1 class=\"tc-site-title\">\n<$transclude tiddler=\"$:/SiteTitle\"/>\n</h1>\n<div class=\"tc-site-subtitle\">\n<$transclude tiddler=\"$:/SiteSubtitle\"/>\n</div>\n<h2>\n</h2>\n<div class=\"tc-sidebar-lists\">\n<$list filter={{$:/DefaultTiddlers}}>\n<div class=\"tc-menu-list-subitem\">\n<$link><$text text=<<currentTiddler>>/></$link>\n</div>\n</$list>\n</div>\n<!-- Currently disabled the recent list as it is unweildy when the responsive narrow view kicks in\n<h2>\n{{$:/language/SideBar/Recent/Caption}}\n</h2>\n<div class=\"tc-sidebar-lists\">\n<$macrocall $name=\"timeline\" format={{$:/language/RecentChanges/DateFormat}}/>\n</div>\n</div>\n</div>\n-->\n"
},
"$:/core/templates/server/static.tiddler.html": {
"title": "$:/core/templates/server/static.tiddler.html",
"text": "\\whitespace trim\n\\define tv-wikilink-template() $uri_encoded$\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content={{$:/core/templates/version}} />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\" />\n<meta name=\"mobile-web-app-capable\" content=\"yes\"/>\n<meta name=\"format-detection\" content=\"telephone=no\">\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<link rel=\"stylesheet\" href=\"%24%3A%2Fcore%2Ftemplates%2Fstatic.template.css\">\n<title><$view field=\"caption\" format=\"plainwikified\"><$view field=\"title\"/></$view>: <$view tiddler=\"$:/core/wiki/title\" format=\"plainwikified\"/></title>\n</head>\n<body class=\"tc-body\">\n<$transclude tiddler=\"$:/core/templates/server/static.sidebar.wikitext\" mode=\"inline\"/>\n<section class=\"tc-story-river\">\n<div class=\"tc-tiddler-frame\">\n<$transclude tiddler=\"$:/core/templates/server/static.tiddler.wikitext\" mode=\"inline\"/>\n</div>\n</section>\n</body>\n</html>"
},
"$:/core/templates/server/static.tiddler.wikitext": {
"title": "$:/core/templates/server/static.tiddler.wikitext",
"text": "\\whitespace trim\n<div class=\"tc-tiddler-title\">\n<div class=\"tc-titlebar\">\n<h2><$text text=<<currentTiddler>>/></h2>\n</div>\n</div>\n<div class=\"tc-subtitle\">\n<$link to={{!!modifier}}>\n<$view field=\"modifier\"/>\n</$link> <$view field=\"modified\" format=\"date\" template={{$:/language/Tiddler/DateFormat}}/>\n</div>\n<div class=\"tc-tags-wrapper\">\n<$list filter=\"[all[current]tags[]sort[title]]\">\n<a href={{{ [<currentTiddler>encodeuricomponent[]] }}}>\n<$macrocall $name=\"tag-pill\" tag=<<currentTiddler>>/>\n</a>\n</$list>\n</div>\n<div class=\"tc-tiddler-body\">\n<$transclude mode=\"block\"/>\n</div>\n"
},
"$:/core/templates/single.tiddler.window": {
"title": "$:/core/templates/single.tiddler.window",
"text": "\\whitespace trim\n\\define containerClasses()\ntc-page-container tc-page-view-$(storyviewTitle)$ tc-language-$(languageTitle)$\n\\end\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n\n<$set name=\"tv-config-toolbar-icons\" value={{$:/config/Toolbar/Icons}}>\n\n<$set name=\"tv-config-toolbar-text\" value={{$:/config/Toolbar/Text}}>\n\n<$set name=\"tv-config-toolbar-class\" value={{$:/config/Toolbar/ButtonClass}}>\n\n<$set name=\"tv-show-missing-links\" value={{$:/config/MissingLinks}}>\n\n<$set name=\"storyviewTitle\" value={{$:/view}}>\n\n<$set name=\"languageTitle\" value={{{ [{$:/language}get[name]] }}}>\n\n<div class=<<containerClasses>>>\n\n<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\">\n\n<$transclude mode=\"block\"/>\n\n</$navigator>\n\n</div>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n"
},
"$:/core/templates/split-recipe": {
"title": "$:/core/templates/split-recipe",
"text": "<$list filter=\"[!is[system]]\">\ntiddler: <$view field=\"title\" format=\"urlencoded\"/>.tid\n</$list>\n"
},
"$:/core/templates/static-tiddler": {
"title": "$:/core/templates/static-tiddler",
"text": "<a name=<<currentTiddler>>>\n<$transclude tiddler=\"$:/core/ui/ViewTemplate\"/>\n</a>"
},
"$:/core/templates/static.area": {
"title": "$:/core/templates/static.area",
"text": "<$reveal type=\"nomatch\" state=\"$:/isEncrypted\" text=\"yes\">\n{{{ [all[shadows+tiddlers]tag[$:/tags/RawStaticContent]!has[draft.of]] ||$:/core/templates/raw-static-tiddler}}}\n{{$:/core/templates/static.content||$:/core/templates/html-tiddler}}\n</$reveal>\n<$reveal type=\"match\" state=\"$:/isEncrypted\" text=\"yes\">\nThis file contains an encrypted ~TiddlyWiki. Enable ~JavaScript and enter the decryption password when prompted.\n</$reveal>\n<!-- ensure splash screen isn't shown when JS is disabled -->\n`<style>\n.tc-remove-when-wiki-loaded {display: none;}\n</style>`\n"
},
"$:/core/templates/static.content": {
"title": "$:/core/templates/static.content",
"text": "<!-- For Google, and people without JavaScript-->\nThis [[TiddlyWiki|https://tiddlywiki.com]] contains the following tiddlers:\n\n<ul>\n<$list filter=<<saveTiddlerFilter>>>\n<li><$view field=\"title\" format=\"text\"></$view></li>\n</$list>\n</ul>\n"
},
"$:/core/templates/static.template.css": {
"title": "$:/core/templates/static.template.css",
"text": "{{$:/boot/boot.css||$:/core/templates/plain-text-tiddler}}\n\n{{$:/core/ui/PageStylesheet||$:/core/templates/wikified-tiddler}}\n"
},
"$:/core/templates/static.template.html": {
"title": "$:/core/templates/static.template.html",
"type": "text/vnd.tiddlywiki-html",
"text": "\\define tv-wikilink-template() static/$uri_doubleencoded$.html\n\\define tv-config-toolbar-icons() no\n\\define tv-config-toolbar-text() no\n\\define tv-config-toolbar-class() tc-btn-invisible\n\\rules only filteredtranscludeinline transcludeinline\n<!doctype html>\n<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content=\"{{$:/core/templates/version}}\" />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\" />\n<meta name=\"mobile-web-app-capable\" content=\"yes\"/>\n<meta name=\"format-detection\" content=\"telephone=no\">\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<title>{{$:/core/wiki/title}}</title>\n<div id=\"styleArea\">\n{{$:/boot/boot.css||$:/core/templates/css-tiddler}}\n</div>\n<style type=\"text/css\">\n{{$:/core/ui/PageStylesheet||$:/core/templates/wikified-tiddler}}\n</style>\n</head>\n<body class=\"tc-body\">\n{{$:/StaticBanner||$:/core/templates/html-tiddler}}\n{{$:/core/ui/PageTemplate||$:/core/templates/html-tiddler}}\n</body>\n</html>\n"
},
"$:/core/templates/static.tiddler.html": {
"title": "$:/core/templates/static.tiddler.html",
"text": "\\define tv-wikilink-template() $uri_doubleencoded$.html\n\\define tv-config-toolbar-icons() no\n\\define tv-config-toolbar-text() no\n\\define tv-config-toolbar-class() tc-btn-invisible\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n`<!doctype html>\n<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content=\"`{{$:/core/templates/version}}`\" />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\" />\n<meta name=\"mobile-web-app-capable\" content=\"yes\"/>\n<meta name=\"format-detection\" content=\"telephone=no\">\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<link rel=\"stylesheet\" href=\"static.css\">\n<title>`<$view field=\"caption\"><$view field=\"title\"/></$view>: {{$:/core/wiki/title}}`</title>\n</head>\n<body class=\"tc-body\">\n`{{$:/StaticBanner||$:/core/templates/html-tiddler}}`\n<section class=\"tc-story-river\">\n`<$view tiddler=\"$:/core/ui/ViewTemplate\" format=\"htmlwikified\"/>`\n</section>\n</body>\n</html>\n`"
},
"$:/core/templates/store.area.template.html": {
"title": "$:/core/templates/store.area.template.html",
"text": "<$reveal type=\"nomatch\" state=\"$:/isEncrypted\" text=\"yes\">\n`<div id=\"storeArea\" style=\"display:none;\">`\n<$list filter=<<saveTiddlerFilter>> template=\"$:/core/templates/html-div-tiddler\"/>\n<$list filter={{{ [<skinnySaveTiddlerFilter>] }}} template=\"$:/core/templates/html-div-skinny-tiddler\"/>\n`</div>`\n</$reveal>\n<$reveal type=\"match\" state=\"$:/isEncrypted\" text=\"yes\">\n`<!--~~ Encrypted tiddlers ~~-->`\n`<pre id=\"encryptedStoreArea\" type=\"text/plain\" style=\"display:none;\">`\n<$encrypt filter=<<saveTiddlerFilter>>/>\n`</pre>`\n</$reveal>"
},
"$:/core/templates/tid-tiddler": {
"title": "$:/core/templates/tid-tiddler",
"text": "<!--\n\nThis template is used for saving tiddlers in TiddlyWeb *.tid format\n\n--><$fields exclude='text bag' template='$name$: $value$\n'></$fields>`\n`<$view field=\"text\" format=\"text\" />"
},
"$:/core/templates/tiddler-metadata": {
"title": "$:/core/templates/tiddler-metadata",
"text": "<!--\n\nThis template is used for saving tiddler metadata *.meta files\n\n--><$fields exclude='text bag' template='$name$: $value$\n'></$fields>"
},
"$:/core/templates/tiddlywiki5.html": {
"title": "$:/core/templates/tiddlywiki5.html",
"text": "<$set name=\"saveTiddlerAndShadowsFilter\" filter=\"[subfilter<saveTiddlerFilter>] [subfilter<saveTiddlerFilter>plugintiddlers[]]\">\n`<!doctype html>\n`{{$:/core/templates/MOTW.html}}`<html lang=\"`<$text text={{{ [{$:/language}get[name]] }}}/>`\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<!--~~ Raw markup for the top of the head section ~~-->\n`{{{ [<saveTiddlerAndShadowsFilter>tag[$:/tags/RawMarkupWikified/TopHead]] ||$:/core/templates/raw-static-tiddler}}}`\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=Edge\"/>\n<meta name=\"application-name\" content=\"TiddlyWiki\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content=\"`{{$:/core/templates/version}}`\" />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\" />\n<meta name=\"mobile-web-app-capable\" content=\"yes\"/>\n<meta name=\"format-detection\" content=\"telephone=no\" />\n<meta name=\"copyright\" content=\"`{{$:/core/copyright.txt}}`\" />\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<title>`{{$:/core/wiki/title}}`</title>\n<!--~~ This is a Tiddlywiki file. The points of interest in the file are marked with this pattern ~~-->\n\n<!--~~ Raw markup ~~-->\n`{{{ [enlist<saveTiddlerAndShadowsFilter>tag[$:/core/wiki/rawmarkup]] ||$:/core/templates/plain-text-tiddler}}}\n{{{ [enlist<saveTiddlerAndShadowsFilter>tag[$:/tags/RawMarkup]] ||$:/core/templates/plain-text-tiddler}}}\n{{{ [enlist<saveTiddlerAndShadowsFilter>tag[$:/tags/RawMarkupWikified]] ||$:/core/templates/raw-static-tiddler}}}`\n</head>\n<body class=\"tc-body\">\n<!--~~ Raw markup for the top of the body section ~~-->\n`{{{ [enlist<saveTiddlerAndShadowsFilter>tag[$:/tags/RawMarkupWikified/TopBody]] ||$:/core/templates/raw-static-tiddler}}}`\n<!--~~ Static styles ~~-->\n<div id=\"styleArea\">\n`{{$:/boot/boot.css||$:/core/templates/css-tiddler}}`\n</div>\n<!--~~ Static content for Google and browsers without JavaScript ~~-->\n<noscript>\n<div id=\"splashArea\">\n`{{$:/core/templates/static.area}}`\n</div>\n</noscript>\n<!--~~ Ordinary tiddlers ~~-->\n`{{$:/core/templates/store.area.template.html}}`\n<!--~~ Library modules ~~-->\n<div id=\"libraryModules\" style=\"display:none;\">\n`{{{ [is[system]type[application/javascript]library[yes]] ||$:/core/templates/javascript-tiddler}}}`\n</div>\n<!--~~ Boot kernel prologue ~~-->\n<div id=\"bootKernelPrefix\" style=\"display:none;\">\n`{{ $:/boot/bootprefix.js ||$:/core/templates/javascript-tiddler}}`\n</div>\n<!--~~ Boot kernel ~~-->\n<div id=\"bootKernel\" style=\"display:none;\">\n`{{ $:/boot/boot.js ||$:/core/templates/javascript-tiddler}}`\n</div>\n<!--~~ Raw markup for the bottom of the body section ~~-->\n`{{{ [enlist<saveTiddlerAndShadowsFilter>tag[$:/tags/RawMarkupWikified/BottomBody]] ||$:/core/templates/raw-static-tiddler}}}`\n</body>\n</html>`\n"
},
"$:/core/templates/version": {
"title": "$:/core/templates/version",
"text": "<<version>>"
},
"$:/core/templates/wikified-tiddler": {
"title": "$:/core/templates/wikified-tiddler",
"text": "<$transclude />"
},
"$:/core/ui/AboveStory/tw2-plugin-check": {
"title": "$:/core/ui/AboveStory/tw2-plugin-check",
"tags": "$:/tags/AboveStory",
"text": "\\define lingo-base() $:/language/AboveStory/ClassicPlugin/\n<$list filter=\"[all[system+tiddlers]tag[systemConfig]limit[1]]\">\n\n<div class=\"tc-message-box\">\n\n<<lingo Warning>>\n\n<ul>\n\n<$list filter=\"[all[system+tiddlers]tag[systemConfig]]\">\n\n<li>\n\n<$link><$view field=\"title\"/></$link>\n\n</li>\n\n</$list>\n\n</ul>\n\n</div>\n\n</$list>\n"
},
"$:/core/ui/Actions/new-image": {
"title": "$:/core/ui/Actions/new-image",
"tags": "$:/tags/Actions",
"description": "create a new image tiddler",
"text": "\\define get-type()\nimage/$(imageType)$\n\\end\n<$vars imageType={{$:/config/NewImageType}}>\n<$action-sendmessage $message=\"tm-new-tiddler\" type=<<get-type>> tags={{$:/config/NewTiddler/Tags!!tags}}/>\n</$vars>\n"
},
"$:/core/ui/Actions/new-journal": {
"title": "$:/core/ui/Actions/new-journal",
"tags": "$:/tags/Actions",
"description": "create a new journal tiddler",
"text": "<$vars journalTitleTemplate={{$:/config/NewJournal/Title}} journalTags={{$:/config/NewJournal/Tags!!tags}} journalText={{$:/config/NewJournal/Text}}>\n<$wikify name=\"journalTitle\" text=\"\"\"<$macrocall $name=\"now\" format=<<journalTitleTemplate>>/>\"\"\">\n<$reveal type=\"nomatch\" state=<<journalTitle>> text=\"\">\n<$action-sendmessage $message=\"tm-new-tiddler\" title=<<journalTitle>> tags=<<journalTags>> text={{{ [<journalTitle>get[]] }}}/>\n</$reveal>\n<$reveal type=\"match\" state=<<journalTitle>> text=\"\">\n<$action-sendmessage $message=\"tm-new-tiddler\" title=<<journalTitle>> tags=<<journalTags>> text=<<journalText>>/>\n</$reveal>\n</$wikify>\n</$vars>\n"
},
"$:/core/ui/Actions/new-tiddler": {
"title": "$:/core/ui/Actions/new-tiddler",
"tags": "$:/tags/Actions",
"description": "create a new empty tiddler",
"text": "<$action-sendmessage $message=\"tm-new-tiddler\" tags={{$:/config/NewTiddler/Tags!!tags}}/>\n"
},
"$:/core/ui/AdvancedSearch/Filter": {
"title": "$:/core/ui/AdvancedSearch/Filter",
"tags": "$:/tags/AdvancedSearch",
"caption": "{{$:/language/Search/Filter/Caption}}",
"text": "\\define lingo-base() $:/language/Search/\n<<lingo Filter/Hint>>\n\n<div class=\"tc-search tc-advanced-search\">\n<$edit-text tiddler=\"$:/temp/advancedsearch\" type=\"search\" tag=\"input\" focus={{$:/config/Search/AutoFocus}}/>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/AdvancedSearch/FilterButton]!has[draft.of]]\"><$transclude/></$list>\n</div>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$set name=\"resultCount\" value=\"\"\"<$count filter={{$:/temp/advancedsearch}}/>\"\"\">\n<div class=\"tc-search-results\">\n<<lingo Filter/Matches>>\n<$list filter={{$:/temp/advancedsearch}} template=\"$:/core/ui/ListItemTemplate\"/>\n</div>\n</$set>\n</$reveal>\n"
},
"$:/core/ui/AdvancedSearch/Filter/FilterButtons/clear": {
"title": "$:/core/ui/AdvancedSearch/Filter/FilterButtons/clear",
"tags": "$:/tags/AdvancedSearch/FilterButton",
"text": "<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/advancedsearch\" $field=\"text\" $value=\"\"/>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n"
},
"$:/core/ui/AdvancedSearch/Filter/FilterButtons/delete": {
"title": "$:/core/ui/AdvancedSearch/Filter/FilterButtons/delete",
"tags": "$:/tags/AdvancedSearch/FilterButton",
"text": "<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button popup=<<qualify \"$:/state/filterDeleteDropdown\">> class=\"tc-btn-invisible\">\n{{$:/core/images/delete-button}}\n</$button>\n</$reveal>\n\n<$reveal state=<<qualify \"$:/state/filterDeleteDropdown\">> type=\"popup\" position=\"belowleft\" animate=\"yes\">\n<div class=\"tc-block-dropdown-wrapper\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<div class=\"tc-dropdown-item-plain\">\n<$set name=\"resultCount\" value=\"\"\"<$count filter={{$:/temp/advancedsearch}}/>\"\"\">\nAre you sure you wish to delete <<resultCount>> tiddler(s)?\n</$set>\n</div>\n<div class=\"tc-dropdown-item-plain\">\n<$button class=\"tc-btn\">\n<$action-deletetiddler $filter={{$:/temp/advancedsearch}}/>\nDelete these tiddlers\n</$button>\n</div>\n</div>\n</div>\n</$reveal>\n"
},
"$:/core/ui/AdvancedSearch/Filter/FilterButtons/dropdown": {
"title": "$:/core/ui/AdvancedSearch/Filter/FilterButtons/dropdown",
"tags": "$:/tags/AdvancedSearch/FilterButton",
"text": "<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/filterDropdown\">> class=\"tc-btn-invisible\">\n{{$:/core/images/down-arrow}}\n</$button>\n</span>\n\n<$reveal state=<<qualify \"$:/state/filterDropdown\">> type=\"popup\" position=\"belowleft\" animate=\"yes\">\n<$set name=\"tv-show-missing-links\" value=\"yes\">\n<$linkcatcher to=\"$:/temp/advancedsearch\">\n<div class=\"tc-block-dropdown-wrapper\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Filter]]\"><$link to={{!!filter}}><$transclude field=\"description\"/></$link>\n</$list>\n</div>\n</div>\n</$linkcatcher>\n</$set>\n</$reveal>\n"
},
"$:/core/ui/AdvancedSearch/Filter/FilterButtons/export": {
"title": "$:/core/ui/AdvancedSearch/Filter/FilterButtons/export",
"tags": "$:/tags/AdvancedSearch/FilterButton",
"text": "<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$macrocall $name=\"exportButton\" exportFilter={{$:/temp/advancedsearch}} lingoBase=\"$:/language/Buttons/ExportTiddlers/\"/>\n</$reveal>\n"
},
"$:/core/ui/AdvancedSearch/Shadows": {
"title": "$:/core/ui/AdvancedSearch/Shadows",
"tags": "$:/tags/AdvancedSearch",
"caption": "{{$:/language/Search/Shadows/Caption}}",
"text": "\\define lingo-base() $:/language/Search/\n<$linkcatcher to=\"$:/temp/advancedsearch\">\n\n<<lingo Shadows/Hint>>\n\n<div class=\"tc-search\">\n<$edit-text tiddler=\"$:/temp/advancedsearch\" type=\"search\" tag=\"input\" focus={{$:/config/Search/AutoFocus}}/>\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/advancedsearch\" $field=\"text\" $value=\"\"/>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</div>\n\n</$linkcatcher>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n\n<$list filter=\"[{$:/temp/advancedsearch}minlength{$:/config/Search/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n\n<$set name=\"resultCount\" value=\"\"\"<$count filter=\"[all[shadows]search{$:/temp/advancedsearch}] -[[$:/temp/advancedsearch]]\"/>\"\"\">\n\n<div class=\"tc-search-results\">\n\n<<lingo Shadows/Matches>>\n\n<$list filter=\"[all[shadows]search{$:/temp/advancedsearch}sort[title]limit[250]] -[[$:/temp/advancedsearch]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n\n</div>\n\n</$set>\n\n</$list>\n\n</$reveal>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"match\" text=\"\">\n\n</$reveal>\n"
},
"$:/core/ui/AdvancedSearch/Standard": {
"title": "$:/core/ui/AdvancedSearch/Standard",
"tags": "$:/tags/AdvancedSearch",
"caption": "{{$:/language/Search/Standard/Caption}}",
"text": "\\define lingo-base() $:/language/Search/\n<$linkcatcher to=\"$:/temp/advancedsearch\">\n\n<<lingo Standard/Hint>>\n\n<div class=\"tc-search\">\n<$edit-text tiddler=\"$:/temp/advancedsearch\" type=\"search\" tag=\"input\" focus={{$:/config/Search/AutoFocus}}/>\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/advancedsearch\" $field=\"text\" $value=\"\"/>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</div>\n\n</$linkcatcher>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$list filter=\"[{$:/temp/advancedsearch}minlength{$:/config/Search/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n<$set name=\"searchTiddler\" value=\"$:/temp/advancedsearch\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]butfirst[]limit[1]]\" emptyMessage=\"\"\"\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]]\">\n<$transclude/>\n</$list>\n\"\"\">\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]]\" default={{$:/config/SearchResults/Default}}/>\n</$list>\n</$set>\n</$list>\n</$reveal>\n"
},
"$:/core/ui/AdvancedSearch/System": {
"title": "$:/core/ui/AdvancedSearch/System",
"tags": "$:/tags/AdvancedSearch",
"caption": "{{$:/language/Search/System/Caption}}",
"text": "\\define lingo-base() $:/language/Search/\n<$linkcatcher to=\"$:/temp/advancedsearch\">\n\n<<lingo System/Hint>>\n\n<div class=\"tc-search\">\n<$edit-text tiddler=\"$:/temp/advancedsearch\" type=\"search\" tag=\"input\" focus={{$:/config/Search/AutoFocus}}/>\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/advancedsearch\" $field=\"text\" $value=\"\"/>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</div>\n\n</$linkcatcher>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n\n<$list filter=\"[{$:/temp/advancedsearch}minlength{$:/config/Search/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n\n<$set name=\"resultCount\" value=\"\"\"<$count filter=\"[is[system]search{$:/temp/advancedsearch}] -[[$:/temp/advancedsearch]]\"/>\"\"\">\n\n<div class=\"tc-search-results\">\n\n<<lingo System/Matches>>\n\n<$list filter=\"[is[system]search{$:/temp/advancedsearch}sort[title]limit[250]] -[[$:/temp/advancedsearch]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n\n</div>\n\n</$set>\n\n</$list>\n\n</$reveal>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"match\" text=\"\">\n\n</$reveal>\n"
},
"$:/AdvancedSearch": {
"title": "$:/AdvancedSearch",
"icon": "$:/core/images/advanced-search-button",
"color": "#bbb",
"text": "<div class=\"tc-advanced-search\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/AdvancedSearch]!has[draft.of]]\" \"$:/core/ui/AdvancedSearch/System\">>\n</div>\n"
},
"$:/core/ui/AlertTemplate": {
"title": "$:/core/ui/AlertTemplate",
"text": "<div class=\"tc-alert\">\n<div class=\"tc-alert-toolbar\">\n<$button class=\"tc-btn-invisible\"><$action-deletetiddler $tiddler=<<currentTiddler>>/>{{$:/core/images/cancel-button}}</$button>\n</div>\n<div class=\"tc-alert-subtitle\">\n<$wikify name=\"format\" text=<<lingo Tiddler/DateFormat>>>\n<$view field=\"component\"/> - <$view field=\"modified\" format=\"date\" template=<<format>>/> <$reveal type=\"nomatch\" state=\"!!count\" text=\"\"><span class=\"tc-alert-highlight\">({{$:/language/Count}}: <$view field=\"count\"/>)</span></$reveal>\n</$wikify>\n</div>\n<div class=\"tc-alert-body\">\n\n<$transclude/>\n\n</div>\n</div>\n"
},
"$:/core/ui/BinaryWarning": {
"title": "$:/core/ui/BinaryWarning",
"text": "\\define lingo-base() $:/language/BinaryWarning/\n<<lingo Prompt>>\n"
},
"$:/core/ui/Components/plugin-info": {
"title": "$:/core/ui/Components/plugin-info",
"text": "\\define lingo-base() $:/language/ControlPanel/Plugins/\n\n\\define popup-state-macro()\n$(qualified-state)$-$(currentTiddler)$\n\\end\n\n\\define tabs-state-macro()\n$(popup-state)$-$(pluginInfoType)$\n\\end\n\n\\define plugin-icon-title()\n$(currentTiddler)$/icon\n\\end\n\n\\define plugin-disable-title()\n$:/config/Plugins/Disabled/$(currentTiddler)$\n\\end\n\n\\define plugin-table-body(type,disabledMessage,default-popup-state)\n<div class=\"tc-plugin-info-chunk tc-plugin-info-toggle\">\n<$reveal type=\"nomatch\" state=<<popup-state>> text=\"yes\" default=\"\"\"$default-popup-state$\"\"\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<popup-state>> setTo=\"yes\">\n{{$:/core/images/chevron-right}}\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<popup-state>> text=\"yes\" default=\"\"\"$default-popup-state$\"\"\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<popup-state>> setTo=\"no\">\n{{$:/core/images/chevron-down}}\n</$button>\n</$reveal>\n</div>\n<div class=\"tc-plugin-info-chunk tc-plugin-info-icon\">\n<$transclude tiddler=<<currentTiddler>> subtiddler=<<plugin-icon-title>>>\n<$transclude tiddler=\"$:/core/images/plugin-generic-$type$\"/>\n</$transclude>\n</div>\n<div class=\"tc-plugin-info-chunk tc-plugin-info-description\">\n<h1>\n''<$text text={{{ [<currentTiddler>get[name]] ~[<currentTiddler>split[/]last[1]] }}}/>'': <$view field=\"description\"><$view field=\"title\"/></$view> $disabledMessage$\n</h1>\n<h2>\n<$view field=\"title\"/>\n</h2>\n<h2>\n<div><em><$view field=\"version\"/></em></div>\n</h2>\n</div>\n\\end\n\n\\define plugin-info(type,default-popup-state)\n<$set name=\"popup-state\" value=<<popup-state-macro>>>\n<$reveal type=\"nomatch\" state=<<plugin-disable-title>> text=\"yes\">\n<$link to={{!!title}} class=\"tc-plugin-info\">\n<<plugin-table-body type:\"$type$\" default-popup-state:\"\"\"$default-popup-state$\"\"\">>\n</$link>\n</$reveal>\n<$reveal type=\"match\" state=<<plugin-disable-title>> text=\"yes\">\n<$link to={{!!title}} class=\"tc-plugin-info tc-plugin-info-disabled\">\n<<plugin-table-body type:\"$type$\" default-popup-state:\"\"\"$default-popup-state$\"\"\" disabledMessage:\"<$macrocall $name='lingo' title='Disabled/Status'/>\">>\n</$link>\n</$reveal>\n<$reveal type=\"match\" text=\"yes\" state=<<popup-state>> default=\"\"\"$default-popup-state$\"\"\">\n<div class=\"tc-plugin-info-dropdown\">\n<div class=\"tc-plugin-info-dropdown-body\">\n<$list filter=\"[all[current]] -[[$:/core]]\">\n<div style=\"float:right;\">\n<$reveal type=\"nomatch\" state=<<plugin-disable-title>> text=\"yes\">\n<$button set=<<plugin-disable-title>> setTo=\"yes\" tooltip={{$:/language/ControlPanel/Plugins/Disable/Hint}} aria-label={{$:/language/ControlPanel/Plugins/Disable/Caption}}>\n<<lingo Disable/Caption>>\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<plugin-disable-title>> text=\"yes\">\n<$button set=<<plugin-disable-title>> setTo=\"no\" tooltip={{$:/language/ControlPanel/Plugins/Enable/Hint}} aria-label={{$:/language/ControlPanel/Plugins/Enable/Caption}}>\n<<lingo Enable/Caption>>\n</$button>\n</$reveal>\n</div>\n</$list>\n<$set name=\"tabsList\" filter=\"[<currentTiddler>list[]] contents\">\n<$macrocall $name=\"tabs\" state=<<tabs-state-macro>> tabsList=<<tabsList>> default={{{ [enlist<tabsList>] }}} template=\"$:/core/ui/PluginInfo\"/>\n</$set>\n</div>\n</div>\n</$reveal>\n</$set>\n\\end\n\n<$macrocall $name=\"plugin-info\" type=<<plugin-type>> default-popup-state=<<default-popup-state>>/>\n"
},
"$:/core/ui/Components/tag-link": {
"title": "$:/core/ui/Components/tag-link",
"text": "<$link>\n<$set name=\"backgroundColor\" value={{!!color}}>\n<span style=<<tag-styles>> class=\"tc-tag-label\">\n<$view field=\"title\" format=\"text\"/>\n</span>\n</$set>\n</$link>"
},
"$:/core/ui/ControlPanel/Advanced": {
"title": "$:/core/ui/ControlPanel/Advanced",
"tags": "$:/tags/ControlPanel/Info",
"caption": "{{$:/language/ControlPanel/Advanced/Caption}}",
"text": "{{$:/language/ControlPanel/Advanced/Hint}}\n\n<div class=\"tc-control-panel\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Advanced]!has[draft.of]]\" \"$:/core/ui/ControlPanel/TiddlerFields\">>\n</div>\n"
},
"$:/core/ui/ControlPanel/Appearance": {
"title": "$:/core/ui/ControlPanel/Appearance",
"tags": "$:/tags/ControlPanel",
"caption": "{{$:/language/ControlPanel/Appearance/Caption}}",
"text": "{{$:/language/ControlPanel/Appearance/Hint}}\n\n<div class=\"tc-control-panel\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Appearance]!has[draft.of]]\" \"$:/core/ui/ControlPanel/Theme\">>\n</div>\n"
},
"$:/core/ui/ControlPanel/Basics": {
"title": "$:/core/ui/ControlPanel/Basics",
"tags": "$:/tags/ControlPanel/Info",
"caption": "{{$:/language/ControlPanel/Basics/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Basics/\n\n\\define show-filter-count(filter)\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/advancedsearch\" $value=\"\"\"$filter$\"\"\"/>\n<$action-setfield $tiddler=\"$:/state/tab--1498284803\" $value=\"$:/core/ui/AdvancedSearch/Filter\"/>\n<$action-navigate $to=\"$:/AdvancedSearch\"/>\n''<$count filter=\"\"\"$filter$\"\"\"/>''\n{{$:/core/images/advanced-search-button}}\n</$button>\n\\end\n\n|<<lingo Version/Prompt>> |''<<version>>'' |\n|<$link to=\"$:/SiteTitle\"><<lingo Title/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteTitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/SiteSubtitle\"><<lingo Subtitle/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteSubtitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/status/UserName\"><<lingo Username/Prompt>></$link> |<$edit-text tiddler=\"$:/status/UserName\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/config/AnimationDuration\"><<lingo AnimDuration/Prompt>></$link> |<$edit-text tiddler=\"$:/config/AnimationDuration\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/DefaultTiddlers\"><<lingo DefaultTiddlers/Prompt>></$link> |<<lingo DefaultTiddlers/TopHint>><br> <$edit tag=\"textarea\" tiddler=\"$:/DefaultTiddlers\" class=\"tc-edit-texteditor\"/><br>//<<lingo DefaultTiddlers/BottomHint>>// |\n|<$link to=\"$:/language/DefaultNewTiddlerTitle\"><<lingo NewTiddler/Title/Prompt>></$link> |<$edit-text tiddler=\"$:/language/DefaultNewTiddlerTitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/config/NewJournal/Title\"><<lingo NewJournal/Title/Prompt>></$link> |<$edit-text tiddler=\"$:/config/NewJournal/Title\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/config/NewJournal/Text\"><<lingo NewJournal/Text/Prompt>></$link> |<$edit tiddler=\"$:/config/NewJournal/Text\" tag=\"textarea\" class=\"tc-edit-texteditor\" default=\"\"/> |\n|<$link to=\"$:/config/NewTiddler/Tags\"><<lingo NewTiddler/Tags/Prompt>></$link> |<$list filter=\"[[$:/config/NewTiddler/Tags]]\" template=\"$:/core/ui/EditTemplate/tags\"/> |\n|<$link to=\"$:/config/NewJournal/Tags\"><<lingo NewJournal/Tags/Prompt>></$link> |<$list filter=\"[[$:/config/NewJournal/Tags]]\" template=\"$:/core/ui/EditTemplate/tags\"/> |\n|<$link to=\"$:/config/AutoFocus\"><<lingo AutoFocus/Prompt>></$link> |{{$:/snippets/minifocusswitcher}} |\n|<<lingo Language/Prompt>> |{{$:/snippets/minilanguageswitcher}} |\n|<<lingo Tiddlers/Prompt>> |<<show-filter-count \"[!is[system]sort[title]]\">> |\n|<<lingo Tags/Prompt>> |<<show-filter-count \"[tags[]sort[title]]\">> |\n|<<lingo SystemTiddlers/Prompt>> |<<show-filter-count \"[is[system]sort[title]]\">> |\n|<<lingo ShadowTiddlers/Prompt>> |<<show-filter-count \"[all[shadows]sort[title]]\">> |\n|<<lingo OverriddenShadowTiddlers/Prompt>> |<<show-filter-count \"[is[tiddler]is[shadow]sort[title]]\">> |\n"
},
"$:/core/ui/ControlPanel/EditorTypes": {
"title": "$:/core/ui/ControlPanel/EditorTypes",
"tags": "$:/tags/ControlPanel/Advanced",
"caption": "{{$:/language/ControlPanel/EditorTypes/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/EditorTypes/\n\n<<lingo Hint>>\n\n<table>\n<tbody>\n<tr>\n<th><<lingo Type/Caption>></th>\n<th><<lingo Editor/Caption>></th>\n</tr>\n<$list filter=\"[all[shadows+tiddlers]prefix[$:/config/EditorTypeMappings/]sort[title]]\">\n<tr>\n<td>\n<$link>\n<$list filter=\"[all[current]removeprefix[$:/config/EditorTypeMappings/]]\">\n<$text text={{!!title}}/>\n</$list>\n</$link>\n</td>\n<td>\n<$view field=\"text\"/>\n</td>\n</tr>\n</$list>\n</tbody>\n</table>\n"
},
"$:/core/ui/ControlPanel/Info": {
"title": "$:/core/ui/ControlPanel/Info",
"tags": "$:/tags/ControlPanel",
"caption": "{{$:/language/ControlPanel/Info/Caption}}",
"text": "{{$:/language/ControlPanel/Info/Hint}}\n\n<div class=\"tc-control-panel\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Info]!has[draft.of]]\" \"$:/core/ui/ControlPanel/Basics\">>\n</div>\n"
},
"$:/core/ui/ControlPanel/KeyboardShortcuts": {
"title": "$:/core/ui/ControlPanel/KeyboardShortcuts",
"tags": "$:/tags/ControlPanel",
"caption": "{{$:/language/ControlPanel/KeyboardShortcuts/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/KeyboardShortcuts/\n\n\\define new-shortcut(title)\n<div class=\"tc-dropdown-item-plain\">\n<$edit-shortcut tiddler=\"$title$\" placeholder={{$:/language/ControlPanel/KeyboardShortcuts/Add/Prompt}} focus=\"true\" style=\"width:auto;\"/> <$button>\n<<lingo Add/Caption>>\n<$action-listops\n\t$tiddler=\"$(shortcutTitle)$\"\n\t$field=\"text\"\n\t$subfilter=\"[{$title$}]\"\n/>\n<$action-deletetiddler\n\t$tiddler=\"$title$\"\n/>\n</$button>\n</div>\n\\end\n\n\\define shortcut-list-item(caption)\n<td>\n</td>\n<td style=\"text-align:right;font-size:0.7em;\">\n<<lingo Platform/$caption$>>\n</td>\n<td>\n<div style=\"position:relative;\">\n<$button popup=<<qualify \"$:/state/dropdown/$(shortcutTitle)$\">> class=\"tc-btn-invisible\">\n{{$:/core/images/edit-button}}\n</$button>\n<$macrocall $name=\"displayshortcuts\" $output=\"text/html\" shortcuts={{$(shortcutTitle)$}} prefix=\"<kbd>\" separator=\"</kbd> <kbd>\" suffix=\"</kbd>\"/>\n\n<$reveal state=<<qualify \"$:/state/dropdown/$(shortcutTitle)$\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-block-dropdown-wrapper\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown tc-popup-keep\">\n<$list filter=\"[list[$(shortcutTitle)$!!text]sort[title]]\" variable=\"shortcut\" emptyMessage=\"\"\"\n<div class=\"tc-dropdown-item-plain\">\n//<<lingo NoShortcuts/Caption>>//\n</div>\n\"\"\">\n<div class=\"tc-dropdown-item-plain\">\n<$button class=\"tc-btn-invisible\" tooltip={{$:/language/ControlPanel/KeyboardShortcuts/Remove/Hint}}>\n<$action-listops\n\t$tiddler=\"$(shortcutTitle)$\"\n\t$field=\"text\"\n\t$subfilter=\"+[remove<shortcut>]\"\n/>\n<small>{{$:/core/images/close-button}}</small>\n</$button>\n<kbd>\n<$macrocall $name=\"displayshortcuts\" $output=\"text/html\" shortcuts=<<shortcut>>/>\n</kbd>\n</div>\n</$list>\n<hr/>\n<$macrocall $name=\"new-shortcut\" title=<<qualify \"$:/state/new-shortcut/$(shortcutTitle)$\">>/>\n</div>\n</div>\n</$reveal>\n</div>\n</td>\n\\end\n\n\\define shortcut-list(caption,prefix)\n<tr>\n<$list filter=\"[[$prefix$$(shortcutName)$]]\" variable=\"shortcutTitle\">\n<<shortcut-list-item \"$caption$\">>\n</$list>\n</tr>\n\\end\n\n\\define shortcut-editor()\n<<shortcut-list \"All\" \"$:/config/shortcuts/\">>\n<<shortcut-list \"Mac\" \"$:/config/shortcuts-mac/\">>\n<<shortcut-list \"NonMac\" \"$:/config/shortcuts-not-mac/\">>\n<<shortcut-list \"Linux\" \"$:/config/shortcuts-linux/\">>\n<<shortcut-list \"NonLinux\" \"$:/config/shortcuts-not-linux/\">>\n<<shortcut-list \"Windows\" \"$:/config/shortcuts-windows/\">>\n<<shortcut-list \"NonWindows\" \"$:/config/shortcuts-not-windows/\">>\n\\end\n\n\\define shortcut-preview()\n<$macrocall $name=\"displayshortcuts\" $output=\"text/html\" shortcuts={{$(shortcutPrefix)$$(shortcutName)$}} prefix=\"<kbd>\" separator=\"</kbd> <kbd>\" suffix=\"</kbd>\"/>\n\\end\n\n\\define shortcut-item-inner()\n<tr>\n<td>\n<$reveal type=\"nomatch\" state=<<dropdownStateTitle>> text=\"open\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield\n\t$tiddler=<<dropdownStateTitle>>\n\t$value=\"open\"\n/>\n{{$:/core/images/right-arrow}}\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<dropdownStateTitle>> text=\"open\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield\n\t$tiddler=<<dropdownStateTitle>>\n\t$value=\"close\"\n/>\n{{$:/core/images/down-arrow}}\n</$button>\n</$reveal>\n''<$text text=<<shortcutName>>/>''\n</td>\n<td>\n<$transclude tiddler=\"$:/config/ShortcutInfo/$(shortcutName)$\"/>\n</td>\n<td>\n<$list filter=\"$:/config/shortcuts/ $:/config/shortcuts-mac/ $:/config/shortcuts-not-mac/ $:/config/shortcuts-linux/ $:/config/shortcuts-not-linux/ $:/config/shortcuts-windows/ $:/config/shortcuts-not-windows/\" variable=\"shortcutPrefix\">\n<<shortcut-preview>>\n</$list>\n</td>\n</tr>\n<$set name=\"dropdownState\" value={{$(dropdownStateTitle)$}}>\n<$list filter=\"[<dropdownState>match[open]]\" variable=\"listItem\">\n<<shortcut-editor>>\n</$list>\n</$set>\n\\end\n\n\\define shortcut-item()\n<$set name=\"dropdownStateTitle\" value=<<qualify \"$:/state/dropdown/keyboardshortcut/$(shortcutName)$\">>>\n<<shortcut-item-inner>>\n</$set>\n\\end\n\n<table>\n<tbody>\n<$list filter=\"[all[shadows+tiddlers]removeprefix[$:/config/ShortcutInfo/]]\" variable=\"shortcutName\">\n<<shortcut-item>>\n</$list>\n</tbody>\n</table>\n"
},
"$:/core/ui/ControlPanel/LoadedModules": {
"title": "$:/core/ui/ControlPanel/LoadedModules",
"tags": "$:/tags/ControlPanel/Advanced",
"caption": "{{$:/language/ControlPanel/LoadedModules/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/\n<<lingo LoadedModules/Hint>>\n\n{{$:/snippets/modules}}\n"
},
"$:/core/ui/ControlPanel/Modals/AddPlugins": {
"title": "$:/core/ui/ControlPanel/Modals/AddPlugins",
"subtitle": "{{$:/core/images/download-button}} {{$:/language/ControlPanel/Plugins/Add/Caption}}",
"text": "\\define install-plugin-actions()\n<$action-sendmessage $message=\"tm-load-plugin-from-library\" url={{!!url}} title={{$(assetInfo)$!!original-title}}/>\n<$set name=\"url\" value={{!!url}}>\n<$set name=\"currentTiddler\" value=<<assetInfo>>>\n<$list filter=\"[enlist{!!dependents}] [{!!parent-plugin}] +[sort[title]]\" variable=\"dependency\">\n<$action-sendmessage $message=\"tm-load-plugin-from-library\" url=<<url>> title=<<dependency>>/>\n</$list>\n</$set>\n</$set>\n\\end\n\n\\define install-plugin-button()\n<div>\n<$set name=\"libraryVersion\" value={{{ [<assetInfo>get[version]] }}}>\n<$set name=\"installedVersion\" value={{{ [<assetInfo>get[original-title]get[version]] }}}>\n<$set name=\"reinstall-type\" value={{{ [<libraryVersion>compare:version:eq<installedVersion>then[tc-reinstall]] [<libraryVersion>compare:version:gt<installedVersion>then[tc-reinstall-upgrade]] [<libraryVersion>compare:version:lt<installedVersion>then[tc-reinstall-downgrade]] }}}>\n<$button actions=<<install-plugin-actions>> class={{{ [<assetInfo>get[original-title]has[version]then<reinstall-type>] tc-btn-invisible tc-install-plugin +[join[ ]] }}}>\n{{$:/core/images/download-button}}\n<$list filter=\"[<assetInfo>get[original-title]get[version]]\" variable=\"ignore\" emptyMessage=\"{{$:/language/ControlPanel/Plugins/Install/Caption}}\">\n<$list filter=\"[<libraryVersion>compare:version:gt<installedVersion>]\" variable=\"ignore\" emptyMessage=\"\"\"\n<$list filter=\"[<libraryVersion>compare:version:lt<installedVersion>]\" variable=\"ignore\" emptyMessage=\"{{$:/language/ControlPanel/Plugins/Reinstall/Caption}}\">\n{{$:/language/ControlPanel/Plugins/Downgrade/Caption}}\n</$list>\n\"\"\">\n{{$:/language/ControlPanel/Plugins/Update/Caption}}\n</$list>\n</$list>\n</$button>\n<div>\n</div>\n<$reveal stateTitle=<<assetInfo>> stateField=\"requires-reload\" type=\"match\" text=\"yes\">{{$:/language/ControlPanel/Plugins/PluginWillRequireReload}}</$reveal>\n</$set>\n</$set>\n</$set>\n</div>\n\\end\n\n\\define popup-state-macro()\n$:/state/add-plugin-info/$(connectionTiddler)$/$(assetInfo)$\n\\end\n\n\\define display-plugin-info(type)\n<$set name=\"popup-state\" value=<<popup-state-macro>>>\n<div class=\"tc-plugin-info\">\n<div class=\"tc-plugin-info-chunk tc-plugin-info-toggle\">\n<$reveal type=\"nomatch\" state=<<popup-state>> text=\"yes\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<popup-state>> setTo=\"yes\">\n{{$:/core/images/chevron-right}}\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<popup-state>> text=\"yes\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<popup-state>> setTo=\"no\">\n{{$:/core/images/chevron-down}}\n</$button>\n</$reveal>\n</div>\n<div class=\"tc-plugin-info-chunk tc-plugin-info-icon\">\n<$list filter=\"[<assetInfo>has[icon]]\" emptyMessage=\"\"\"<$transclude tiddler=\"$:/core/images/plugin-generic-$type$\"/>\"\"\">\n<img src={{$(assetInfo)$!!icon}}/>\n</$list>\n</div>\n<div class=\"tc-plugin-info-chunk tc-plugin-info-description\">\n<h1><strong><$text text={{{ [<assetInfo>get[name]] ~[<assetInfo>get[original-title]split[/]last[1]] }}}/></strong>: <$view tiddler=<<assetInfo>> field=\"description\"/></h1>\n<h2><$view tiddler=<<assetInfo>> field=\"original-title\"/></h2>\n<div><em><$view tiddler=<<assetInfo>> field=\"version\"/></em></div>\n<$list filter=\"[<assetInfo>get[original-title]get[version]]\" variable=\"installedVersion\"><div><em>{{$:/language/ControlPanel/Plugins/AlreadyInstalled/Hint}}</em></div></$list>\n</div>\n<div class=\"tc-plugin-info-chunk tc-plugin-info-buttons\">\n<<install-plugin-button>>\n</div>\n</div>\n<$set name=\"original-title\" value={{{ [<assetInfo>get[original-title]] }}}>\n<$reveal type=\"match\" text=\"yes\" state=<<popup-state>>>\n<div class=\"tc-plugin-info-dropdown\">\n<$list filter=\"[enlist{!!dependents}] [<currentTiddler>get[parent-plugin]] +[limit[1]] ~[<assetInfo>get[original-title]!is[tiddler]]\" variable=\"ignore\">\n<div class=\"tc-plugin-info-dropdown-message\">\n<$list filter=\"[<assetInfo>get[original-title]!is[tiddler]]\">\n{{$:/language/ControlPanel/Plugins/NotInstalled/Hint}}\n</$list>\n<$set name=\"currentTiddler\" value=<<assetInfo>>>\n<$list filter=\"[enlist{!!dependents}] [<currentTiddler>get[parent-plugin]] +[limit[1]]\" variable=\"ignore\">\n<div>\n{{$:/language/ControlPanel/Plugins/AlsoRequires}}\n<$list filter=\"[enlist{!!dependents}] [{!!parent-plugin}] +[sort[title]]\" variable=\"dependency\">\n<$text text=<<dependency>>/>\n</$list>\n</div>\n</$list>\n</$set>\n</div>\n</$list>\n<div class=\"tc-plugin-info-dropdown-body\">\n<$transclude tiddler=<<assetInfo>> field=\"readme\" mode=\"block\"/>\n</div>\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[$type$]has[parent-plugin]parent-plugin<original-title>limit[1]]\" variable=\"ignore\">\n<div class=\"tc-plugin-info-sub-plugins\">\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[$type$]has[parent-plugin]parent-plugin<original-title>sort[title]]\" variable=\"assetInfo\">\n<<display-plugin-info \"$type$\">>\n</$list>\n</div>\n</$list>\n</div>\n</$reveal>\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[$type$]has[parent-plugin]parent-plugin<original-title>limit[1]]\" variable=\"ignore\">\n<$reveal type=\"nomatch\" text=\"yes\" state=<<popup-state>> tag=\"div\" class=\"tc-plugin-info-sub-plugin-indicator\">\n<$wikify name=\"count\" text=\"\"\"<$count filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[$type$]has[parent-plugin]parent-plugin<original-title>]\"/>\"\"\">\n<$button class=\"tc-btn-invisible\" set=<<popup-state>> setTo=\"yes\">\n{{$:/language/ControlPanel/Plugins/SubPluginPrompt}}\n</$button>\n</$wikify>\n</$reveal>\n</$list>\n</$set>\n</$set>\n\\end\n\n\\define load-plugin-library-button()\n<$button class=\"tc-btn-big-green\">\n<$action-sendmessage $message=\"tm-load-plugin-library\" url={{!!url}} infoTitlePrefix=\"$:/temp/RemoteAssetInfo/\"/>\n{{$:/core/images/chevron-right}} {{$:/language/ControlPanel/Plugins/OpenPluginLibrary}}\n</$button>\n\\end\n\n\\define display-server-assets(type)\n{{$:/language/Search/Search}}: <$edit-text tiddler=\"\"\"$:/temp/RemoteAssetSearch/$(currentTiddler)$\"\"\" default=\"\" type=\"search\" tag=\"input\"/>\n<$reveal state=\"\"\"$:/temp/RemoteAssetSearch/$(currentTiddler)$\"\"\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"\"\"$:/temp/RemoteAssetSearch/$(currentTiddler)$\"\"\" $field=\"text\" $value=\"\"/>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n<div class=\"tc-plugin-library-listing\">\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[$type$]search:author,description,original-title,readme,title{$:/temp/RemoteAssetSearch/$(currentTiddler)$}sort[title]]\" variable=\"assetInfo\">\n<$list filter=\"[[$:/temp/RemoteAssetSearch/$(currentTiddler)$]has[text]] ~[<assetInfo>!has[parent-plugin]]\" variable=\"ignore\"><!-- Hide sub-plugins if we're not searching -->\n<<display-plugin-info \"$type$\">>\n</$list>\n</$list>\n</div>\n\\end\n\n\\define display-server-connection()\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/ServerConnection]suffix{!!url}]\" variable=\"connectionTiddler\" emptyMessage=<<load-plugin-library-button>>>\n\n<$set name=\"transclusion\" value=<<connectionTiddler>>>\n\n<<tabs \"[[$:/core/ui/ControlPanel/Plugins/Add/Updates]] [[$:/core/ui/ControlPanel/Plugins/Add/Plugins]] [[$:/core/ui/ControlPanel/Plugins/Add/Themes]] [[$:/core/ui/ControlPanel/Plugins/Add/Languages]]\" \"$:/core/ui/ControlPanel/Plugins/Add/Plugins\">>\n\n</$set>\n\n</$list>\n\\end\n\n\\define close-library-button()\n<$reveal type='nomatch' state='$:/temp/ServerConnection/$(PluginLibraryURL)$' text=''>\n<$button class='tc-btn-big-green'>\n<$action-sendmessage $message=\"tm-unload-plugin-library\" url={{!!url}}/>\n{{$:/core/images/chevron-left}} {{$:/language/ControlPanel/Plugins/ClosePluginLibrary}}\n<$action-deletetiddler $filter=\"[prefix[$:/temp/ServerConnection/$(PluginLibraryURL)$]][prefix[$:/temp/RemoteAssetInfo/$(PluginLibraryURL)$]]\"/>\n</$button>\n</$reveal>\n\\end\n\n\\define plugin-library-listing()\n<div class=\"tc-tab-set\">\n<$set name=\"defaultTab\" value={{{ [all[tiddlers+shadows]tag[$:/tags/PluginLibrary]] }}}>\n<div class=\"tc-tab-buttons\">\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/PluginLibrary]]\">\n<$button set=<<qualify \"$:/state/addplugins/tab\">> setTo=<<currentTiddler>> default=<<defaultTab>> selectedClass=\"tc-tab-selected\">\n<$set name=\"tv-wikilinks\" value=\"no\">\n<$transclude field=\"caption\"/>\n</$set>\n</$button>\n</$list>\n</div>\n<div class=\"tc-tab-divider\"/>\n<div class=\"tc-tab-content\">\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/PluginLibrary]]\">\n<$reveal type=\"match\" state=<<qualify \"$:/state/addplugins/tab\">> text=<<currentTiddler>> default=<<defaultTab>>>\n<h2><$link><$transclude field=\"caption\"><$view field=\"title\"/></$transclude></$link></h2>\n//<$view field=\"url\"/>//\n<$transclude mode=\"block\"/>\n<$set name=PluginLibraryURL value={{!!url}}>\n<<close-library-button>>\n</$set>\n<<display-server-connection>>\n</$reveal>\n</$list>\n</div>\n</$set>\n</div>\n\\end\n\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n\n<div>\n<<plugin-library-listing>>\n</div>\n"
},
"$:/core/ui/ControlPanel/Palette": {
"title": "$:/core/ui/ControlPanel/Palette",
"tags": "$:/tags/ControlPanel/Appearance",
"caption": "{{$:/language/ControlPanel/Palette/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Palette/\n\n{{$:/snippets/paletteswitcher}}\n\n<$reveal type=\"nomatch\" state=\"$:/state/ShowPaletteEditor\" text=\"yes\">\n\n<$button set=\"$:/state/ShowPaletteEditor\" setTo=\"yes\"><<lingo ShowEditor/Caption>></$button>\n\n</$reveal>\n\n<$reveal type=\"match\" state=\"$:/state/ShowPaletteEditor\" text=\"yes\">\n\n<$button set=\"$:/state/ShowPaletteEditor\" setTo=\"no\"><<lingo HideEditor/Caption>></$button>\n{{$:/PaletteManager}}\n\n</$reveal>\n\n"
},
"$:/core/ui/ControlPanel/Parsing": {
"title": "$:/core/ui/ControlPanel/Parsing",
"tags": "$:/tags/ControlPanel/Advanced",
"caption": "{{$:/language/ControlPanel/Parsing/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Parsing/\n\n\\define toggle(Type)\n<$checkbox\ntiddler=\"\"\"$:/config/WikiParserRules/$Type$/$(rule)$\"\"\"\nfield=\"text\"\nchecked=\"enable\"\nunchecked=\"disable\"\ndefault=\"enable\">\n<<rule>>\n</$checkbox>\n\\end\n\n\\define rules(type,Type)\n<$list filter=\"[wikiparserrules[$type$]]\" variable=\"rule\">\n<dd><<toggle $Type$>></dd>\n</$list>\n\\end\n\n<<lingo Hint>>\n\n<dl>\n<dt><<lingo Pragma/Caption>></dt>\n<<rules pragma Pragma>>\n<dt><<lingo Inline/Caption>></dt>\n<<rules inline Inline>>\n<dt><<lingo Block/Caption>></dt>\n<<rules block Block>>\n</dl>"
},
"$:/core/ui/ControlPanel/Plugins/Add/Languages": {
"title": "$:/core/ui/ControlPanel/Plugins/Add/Languages",
"caption": "{{$:/language/ControlPanel/Plugins/Languages/Caption}} (<$count filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[language]]\"/>)",
"text": "<<display-server-assets language>>\n"
},
"$:/core/ui/ControlPanel/Plugins/Add/Plugins": {
"title": "$:/core/ui/ControlPanel/Plugins/Add/Plugins",
"caption": "{{$:/language/ControlPanel/Plugins/Plugins/Caption}} (<$count filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[plugin]]\"/>)",
"text": "<<display-server-assets plugin>>\n"
},
"$:/core/ui/ControlPanel/Plugins/Add/Themes": {
"title": "$:/core/ui/ControlPanel/Plugins/Add/Themes",
"caption": "{{$:/language/ControlPanel/Plugins/Themes/Caption}} (<$count filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[theme]]\"/>)",
"text": "<<display-server-assets theme>>\n"
},
"$:/core/ui/ControlPanel/Plugins/Add/Updates": {
"title": "$:/core/ui/ControlPanel/Plugins/Add/Updates",
"caption": "<$importvariables filter=\"$:/core/ui/ControlPanel/Plugins/Add/Updates\">{{$:/language/ControlPanel/Plugins/Updates/Caption}} (<<update-count>>)</$importvariables>",
"text": "\\define each-updateable-plugin(body)\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}sort[title]]\" variable=\"assetInfo\">\n<$set name=\"libraryVersion\" value={{{ [<assetInfo>get[version]] }}}>\n<$list filter=\"[<assetInfo>get[original-title]has[version]!version<libraryVersion>]\" variable=\"ignore\">\n<$set name=\"installedVersion\" value={{{ [<assetInfo>get[original-title]get[version]] }}}>\n<$list filter=\"[<installedversion>!match<libraryVersion>]\" variable=\"ignore\">\n$body$\n</$list>\n</$set>\n</$list>\n</$set>\n</$list>\n\\end\n\n\\define update-all-actions()\n<$macrocall $name=\"each-updateable-plugin\" body=\"\"\"\n<<install-plugin-actions>>\n\"\"\"/>\n\\end\n\n\\define update-count()\n<$wikify name=\"count-filter\" text=<<each-updateable-plugin \"[[<$text text=<<assetInfo>>/>]]\">>><$count filter=<<count-filter>>/></$wikify>\n\\end\n\n<$button actions=<<update-all-actions>> class=\"tc-btn-invisible tc-install-plugin tc-reinstall-upgrade\">\n{{$:/core/images/download-button}} {{||$:/language/ControlPanel/Plugins/Updates/UpdateAll/Caption}}\n</$button>\n\n<div class=\"tc-plugin-library-listing\">\n<$macrocall $name=\"each-updateable-plugin\" body=\"\"\"\n<$macrocall $name=\"display-plugin-info\" type={{{ [<assetInfo>get[original-plugin-type]] }}}/>\n\"\"\"/>\n</div>\n"
},
"$:/core/ui/ControlPanel/Plugins/AddPlugins": {
"title": "$:/core/ui/ControlPanel/Plugins/AddPlugins",
"text": "\\define lingo-base() $:/language/ControlPanel/Plugins/\n\n<$button message=\"tm-modal\" param=\"$:/core/ui/ControlPanel/Modals/AddPlugins\" tooltip={{$:/language/ControlPanel/Plugins/Add/Hint}} class=\"tc-btn-big-green tc-primary-btn\">\n{{$:/core/images/download-button}} <<lingo Add/Caption>>\n</$button>\n"
},
"$:/core/ui/ControlPanel/Plugins/Installed/Languages": {
"title": "$:/core/ui/ControlPanel/Plugins/Installed/Languages",
"caption": "{{$:/language/ControlPanel/Plugins/Languages/Caption}} (<$count filter=\"[!has[draft.of]plugin-type[language]]\"/>)",
"text": "<<plugin-table language>>\n"
},
"$:/core/ui/ControlPanel/Plugins/Installed/Plugins": {
"title": "$:/core/ui/ControlPanel/Plugins/Installed/Plugins",
"caption": "{{$:/language/ControlPanel/Plugins/Plugins/Caption}} (<$count filter=\"[!has[draft.of]plugin-type[plugin]]\"/>)",
"text": "<<plugin-table plugin>>\n"
},
"$:/core/ui/ControlPanel/Plugins/Installed/Themes": {
"title": "$:/core/ui/ControlPanel/Plugins/Installed/Themes",
"caption": "{{$:/language/ControlPanel/Plugins/Themes/Caption}} (<$count filter=\"[!has[draft.of]plugin-type[theme]]\"/>)",
"text": "<<plugin-table theme>>\n"
},
"$:/core/ui/ControlPanel/Plugins": {
"title": "$:/core/ui/ControlPanel/Plugins",
"tags": "$:/tags/ControlPanel",
"caption": "{{$:/language/ControlPanel/Plugins/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Plugins/\n\n\\define plugin-table(type)\n<$set name=\"plugin-type\" value=\"\"\"$type$\"\"\">\n<$set name=\"qualified-state\" value=<<qualify \"$:/state/plugin-info\">>>\n<$list filter=\"[!has[draft.of]plugin-type[$type$]sort[title]]\" emptyMessage=<<lingo \"Empty/Hint\">> template=\"$:/core/ui/Components/plugin-info\"/>\n</$set>\n</$set>\n\\end\n\n{{$:/core/ui/ControlPanel/Plugins/AddPlugins}}\n\n<<lingo Installed/Hint>>\n\n<<tabs \"[[$:/core/ui/ControlPanel/Plugins/Installed/Plugins]] [[$:/core/ui/ControlPanel/Plugins/Installed/Themes]] [[$:/core/ui/ControlPanel/Plugins/Installed/Languages]]\" \"$:/core/ui/ControlPanel/Plugins/Installed/Plugins\">>\n"
},
"$:/core/ui/ControlPanel/Saving/DownloadSaver": {
"title": "$:/core/ui/ControlPanel/Saving/DownloadSaver",
"tags": "$:/tags/ControlPanel/Saving",
"caption": "{{$:/language/ControlPanel/Saving/DownloadSaver/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Saving/DownloadSaver/\n\n<<lingo Hint>>\n\n!! <$link to=\"$:/config/DownloadSaver/AutoSave\"><<lingo AutoSave/Hint>></$link>\n\n<$checkbox tiddler=\"$:/config/DownloadSaver/AutoSave\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> <<lingo AutoSave/Description>> </$checkbox>\n"
},
"$:/core/ui/ControlPanel/Saving/General": {
"title": "$:/core/ui/ControlPanel/Saving/General",
"tags": "$:/tags/ControlPanel/Saving",
"caption": "{{$:/language/ControlPanel/Saving/General/Caption}}",
"list-before": "",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/\n\n{{$:/language/ControlPanel/Saving/General/Hint}}\n\n!! <$link to=\"$:/config/AutoSave\"><<lingo AutoSave/Caption>></$link>\n\n<<lingo AutoSave/Hint>>\n\n<$radio tiddler=\"$:/config/AutoSave\" value=\"yes\"> <<lingo AutoSave/Enabled/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/AutoSave\" value=\"no\"> <<lingo AutoSave/Disabled/Description>> </$radio>\n"
},
"$:/core/ui/ControlPanel/Saving/GitHub": {
"title": "$:/core/ui/ControlPanel/Saving/GitHub",
"tags": "$:/tags/ControlPanel/Saving",
"caption": "{{$:/language/ControlPanel/Saving/GitService/GitHub/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Saving/GitService/\n\\define service-name() ~GitHub\n\n<<lingo Description>>\n\n|<<lingo UserName>> |<$edit-text tiddler=\"$:/GitHub/Username\" default=\"\" tag=\"input\"/> |\n|<<lingo GitHub/Password>> |<$password name=\"github\"/> |\n|<<lingo Repo>> |<$edit-text tiddler=\"$:/GitHub/Repo\" default=\"\" tag=\"input\"/> |\n|<<lingo Branch>> |<$edit-text tiddler=\"$:/GitHub/Branch\" default=\"master\" tag=\"input\"/> |\n|<<lingo Path>> |<$edit-text tiddler=\"$:/GitHub/Path\" default=\"\" tag=\"input\"/> |\n|<<lingo Filename>> |<$edit-text tiddler=\"$:/GitHub/Filename\" default=\"\" tag=\"input\"/> |\n|<<lingo ServerURL>> |<$edit-text tiddler=\"$:/GitHub/ServerURL\" default=\"https://api.github.com\" tag=\"input\"/> |"
},
"$:/core/ui/ControlPanel/Saving/GitLab": {
"title": "$:/core/ui/ControlPanel/Saving/GitLab",
"tags": "$:/tags/ControlPanel/Saving",
"caption": "{{$:/language/ControlPanel/Saving/GitService/GitLab/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Saving/GitService/\n\\define service-name() ~GitLab\n\n<<lingo Description>>\n\n|<<lingo UserName>> |<$edit-text tiddler=\"$:/GitLab/Username\" default=\"\" tag=\"input\"/> |\n|<<lingo GitLab/Password>> |<$password name=\"gitlab\"/> |\n|<<lingo Repo>> |<$edit-text tiddler=\"$:/GitLab/Repo\" default=\"\" tag=\"input\"/> |\n|<<lingo Branch>> |<$edit-text tiddler=\"$:/GitLab/Branch\" default=\"master\" tag=\"input\"/> |\n|<<lingo Path>> |<$edit-text tiddler=\"$:/GitLab/Path\" default=\"\" tag=\"input\"/> |\n|<<lingo Filename>> |<$edit-text tiddler=\"$:/GitLab/Filename\" default=\"\" tag=\"input\"/> |\n|<<lingo ServerURL>> |<$edit-text tiddler=\"$:/GitLab/ServerURL\" default=\"https://gitlab.com/api/v4\" tag=\"input\"/> |"
},
"$:/core/ui/ControlPanel/Saving/TiddlySpot": {
"title": "$:/core/ui/ControlPanel/Saving/TiddlySpot",
"tags": "$:/tags/ControlPanel/Saving",
"caption": "{{$:/language/ControlPanel/Saving/TiddlySpot/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Saving/TiddlySpot/\n\n\\define backupURL()\nhttp://$(userName)$.tiddlyspot.com/backup/\n\\end\n\\define backupLink()\n<$reveal type=\"nomatch\" state=\"$:/UploadName\" text=\"\">\n<$set name=\"userName\" value={{$:/UploadName}}>\n<$reveal type=\"match\" state=\"$:/UploadURL\" text=\"\">\n<<backupURL>>\n</$reveal>\n<$reveal type=\"nomatch\" state=\"$:/UploadURL\" text=\"\">\n<$macrocall $name=resolvePath source={{$:/UploadBackupDir}} root={{$:/UploadURL}}>>\n</$reveal>\n</$set>\n</$reveal>\n\\end\n\n<<lingo Description>>\n\n|<<lingo UserName>> |<$edit-text tiddler=\"$:/UploadName\" default=\"\" tag=\"input\"/> |\n|<<lingo Password>> |<$password name=\"upload\"/> |\n|<<lingo Backups>> |<<backupLink>> |\n\n''<<lingo Advanced/Heading>>''\n\n|<<lingo ServerURL>> |<$edit-text tiddler=\"$:/UploadURL\" default=\"\" tag=\"input\"/> |\n|<<lingo Filename>> |<$edit-text tiddler=\"$:/UploadFilename\" default=\"index.html\" tag=\"input\"/> |\n|<<lingo UploadDir>> |<$edit-text tiddler=\"$:/UploadDir\" default=\".\" tag=\"input\"/> |\n|<<lingo BackupDir>> |<$edit-text tiddler=\"$:/UploadBackupDir\" default=\".\" tag=\"input\"/> |\n\n<<lingo TiddlySpot/Hint>>"
},
"$:/core/ui/ControlPanel/Saving/Gitea": {
"title": "$:/core/ui/ControlPanel/Saving/Gitea",
"tags": "$:/tags/ControlPanel/Saving",
"caption": "{{$:/language/ControlPanel/Saving/GitService/Gitea/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Saving/GitService/\n\\define service-name() ~Gitea\n\n<<lingo Description>>\n\n|<<lingo UserName>> |<$edit-text tiddler=\"$:/Gitea/Username\" default=\"\" tag=\"input\"/> |\n|<<lingo Gitea/Password>> |<$password name=\"Gitea\"/> |\n|<<lingo Repo>> |<$edit-text tiddler=\"$:/Gitea/Repo\" default=\"\" tag=\"input\"/> |\n|<<lingo Branch>> |<$edit-text tiddler=\"$:/Gitea/Branch\" default=\"master\" tag=\"input\"/> |\n|<<lingo Path>> |<$edit-text tiddler=\"$:/Gitea/Path\" default=\"\" tag=\"input\"/> |\n|<<lingo Filename>> |<$edit-text tiddler=\"$:/Gitea/Filename\" default=\"\" tag=\"input\"/> |\n|<<lingo ServerURL>> |<$edit-text tiddler=\"$:/Gitea/ServerURL\" default=\"https://gitea/api/v1\" tag=\"input\"/> |\n"
},
"$:/core/ui/ControlPanel/Saving": {
"title": "$:/core/ui/ControlPanel/Saving",
"tags": "$:/tags/ControlPanel",
"caption": "{{$:/language/ControlPanel/Saving/Caption}}",
"text": "{{$:/language/ControlPanel/Saving/Hint}}\n\n<div class=\"tc-control-panel\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Saving]!has[draft.of]]\" \"$:/core/ui/ControlPanel/Saving/General\">>\n</div>\n"
},
"$:/core/buttonstyles/Borderless": {
"title": "$:/core/buttonstyles/Borderless",
"tags": "$:/tags/ToolbarButtonStyle",
"caption": "{{$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Borderless}}",
"text": "tc-btn-invisible"
},
"$:/core/buttonstyles/Boxed": {
"title": "$:/core/buttonstyles/Boxed",
"tags": "$:/tags/ToolbarButtonStyle",
"caption": "{{$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Boxed}}",
"text": "tc-btn-boxed"
},
"$:/core/buttonstyles/Rounded": {
"title": "$:/core/buttonstyles/Rounded",
"tags": "$:/tags/ToolbarButtonStyle",
"caption": "{{$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Rounded}}",
"text": "tc-btn-rounded"
},
"$:/core/ui/ControlPanel/Settings/CamelCase": {
"title": "$:/core/ui/ControlPanel/Settings/CamelCase",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/CamelCase/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/CamelCase/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/WikiParserRules/Inline/wikilink\" field=\"text\" checked=\"enable\" unchecked=\"disable\" default=\"enable\"> <$link to=\"$:/config/WikiParserRules/Inline/wikilink\"><<lingo Description>></$link> </$checkbox>\n"
},
"$:/core/ui/ControlPanel/Settings/DefaultMoreSidebarTab": {
"title": "$:/core/ui/ControlPanel/Settings/DefaultMoreSidebarTab",
"caption": "{{$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Caption}}",
"tags": "$:/tags/ControlPanel/Settings",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/DefaultMoreSidebarTab/\n\n<$link to=\"$:/config/DefaultMoreSidebarTab\"><<lingo Hint>></$link>\n\n<$select tiddler=\"$:/config/DefaultMoreSidebarTab\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/MoreSideBar]!has[draft.of]]\">\n<option value=<<currentTiddler>>><$transclude field=\"caption\"><$text text=<<currentTiddler>>/></$transclude></option>\n</$list>\n</$select>\n"
},
"$:/core/ui/ControlPanel/Settings/DefaultSidebarTab": {
"title": "$:/core/ui/ControlPanel/Settings/DefaultSidebarTab",
"caption": "{{$:/language/ControlPanel/Settings/DefaultSidebarTab/Caption}}",
"tags": "$:/tags/ControlPanel/Settings",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/DefaultSidebarTab/\n\n<$link to=\"$:/config/DefaultSidebarTab\"><<lingo Hint>></$link>\n\n<$select tiddler=\"$:/config/DefaultSidebarTab\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SideBar]!has[draft.of]]\">\n<option value=<<currentTiddler>>><$transclude field=\"caption\"><$text text=<<currentTiddler>>/></$transclude></option>\n</$list>\n</$select>\n"
},
"$:/core/ui/ControlPanel/Settings/EditorToolbar": {
"title": "$:/core/ui/ControlPanel/Settings/EditorToolbar",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/EditorToolbar/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/EditorToolbar/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/TextEditor/EnableToolbar\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\"> <$link to=\"$:/config/TextEditor/EnableToolbar\"><<lingo Description>></$link> </$checkbox>\n\n"
},
"$:/core/ui/ControlPanel/Settings/InfoPanelMode": {
"title": "$:/core/ui/ControlPanel/Settings/InfoPanelMode",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/InfoPanelMode/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/InfoPanelMode/\n<$link to=\"$:/config/TiddlerInfo/Mode\"><<lingo Hint>></$link>\n\n<$radio tiddler=\"$:/config/TiddlerInfo/Mode\" value=\"popup\"> <<lingo Popup/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/TiddlerInfo/Mode\" value=\"sticky\"> <<lingo Sticky/Description>> </$radio>\n"
},
"$:/core/ui/ControlPanel/Settings/LinkToBehaviour": {
"title": "$:/core/ui/ControlPanel/Settings/LinkToBehaviour",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/LinkToBehaviour/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/LinkToBehaviour/\n\n<$link to=\"$:/config/Navigation/openLinkFromInsideRiver\"><<lingo \"InsideRiver/Hint\">></$link>\n\n<$select tiddler=\"$:/config/Navigation/openLinkFromInsideRiver\">\n <option value=\"above\"><<lingo \"OpenAbove\">></option>\n <option value=\"below\"><<lingo \"OpenBelow\">></option>\n <option value=\"top\"><<lingo \"OpenAtTop\">></option>\n <option value=\"bottom\"><<lingo \"OpenAtBottom\">></option>\n</$select>\n\n<$link to=\"$:/config/Navigation/openLinkFromOutsideRiver\"><<lingo \"OutsideRiver/Hint\">></$link>\n\n<$select tiddler=\"$:/config/Navigation/openLinkFromOutsideRiver\">\n <option value=\"top\"><<lingo \"OpenAtTop\">></option>\n <option value=\"bottom\"><<lingo \"OpenAtBottom\">></option>\n</$select>\n"
},
"$:/core/ui/ControlPanel/Settings/MissingLinks": {
"title": "$:/core/ui/ControlPanel/Settings/MissingLinks",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/MissingLinks/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/MissingLinks/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/MissingLinks\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\"> <$link to=\"$:/config/MissingLinks\"><<lingo Description>></$link> </$checkbox>\n\n"
},
"$:/core/ui/ControlPanel/Settings/NavigationAddressBar": {
"title": "$:/core/ui/ControlPanel/Settings/NavigationAddressBar",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/NavigationAddressBar/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/NavigationAddressBar/\n\n<$link to=\"$:/config/Navigation/UpdateAddressBar\"><<lingo Hint>></$link>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateAddressBar\" value=\"permaview\"> <<lingo Permaview/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateAddressBar\" value=\"permalink\"> <<lingo Permalink/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateAddressBar\" value=\"no\"> <<lingo No/Description>> </$radio>\n"
},
"$:/core/ui/ControlPanel/Settings/NavigationHistory": {
"title": "$:/core/ui/ControlPanel/Settings/NavigationHistory",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/NavigationHistory/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/NavigationHistory/\n<$link to=\"$:/config/Navigation/UpdateHistory\"><<lingo Hint>></$link>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateHistory\" value=\"yes\"> <<lingo Yes/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateHistory\" value=\"no\"> <<lingo No/Description>> </$radio>\n"
},
"$:/core/ui/ControlPanel/Settings/NavigationPermalinkviewMode": {
"title": "$:/core/ui/ControlPanel/Settings/NavigationPermalinkviewMode",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/NavigationPermalinkviewMode/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/Navigation/Permalinkview/CopyToClipboard\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\"> <$link to=\"$:/config/Navigation/Permalinkview/CopyToClipboard\"><<lingo CopyToClipboard/Description>></$link> </$checkbox>\n\n<$checkbox tiddler=\"$:/config/Navigation/Permalinkview/UpdateAddressBar\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\"> <$link to=\"$:/config/Navigation/Permalinkview/UpdateAddressBar\"><<lingo UpdateAddressBar/Description>></$link> </$checkbox>\n"
},
"$:/core/ui/ControlPanel/Settings/PerformanceInstrumentation": {
"title": "$:/core/ui/ControlPanel/Settings/PerformanceInstrumentation",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/PerformanceInstrumentation/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/PerformanceInstrumentation/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/Performance/Instrumentation\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> <$link to=\"$:/config/Performance/Instrumentation\"><<lingo Description>></$link> </$checkbox>\n"
},
"$:/core/ui/ControlPanel/Settings/TitleLinks": {
"title": "$:/core/ui/ControlPanel/Settings/TitleLinks",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/TitleLinks/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/TitleLinks/\n<$link to=\"$:/config/Tiddlers/TitleLinks\"><<lingo Hint>></$link>\n\n<$radio tiddler=\"$:/config/Tiddlers/TitleLinks\" value=\"yes\"> <<lingo Yes/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/Tiddlers/TitleLinks\" value=\"no\"> <<lingo No/Description>> </$radio>\n"
},
"$:/core/ui/ControlPanel/Settings/ToolbarButtonStyle": {
"title": "$:/core/ui/ControlPanel/Settings/ToolbarButtonStyle",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/ToolbarButtonStyle/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/ToolbarButtonStyle/\n<$link to=\"$:/config/Toolbar/ButtonClass\"><<lingo \"Hint\">></$link>\n\n<$select tiddler=\"$:/config/Toolbar/ButtonClass\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ToolbarButtonStyle]]\">\n<option value={{!!text}}>{{!!caption}}</option>\n</$list>\n</$select>\n"
},
"$:/core/ui/ControlPanel/Settings/ToolbarButtons": {
"title": "$:/core/ui/ControlPanel/Settings/ToolbarButtons",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/ToolbarButtons/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/ToolbarButtons/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/Toolbar/Icons\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\"> <$link to=\"$:/config/Toolbar/Icons\"><<lingo Icons/Description>></$link> </$checkbox>\n\n<$checkbox tiddler=\"$:/config/Toolbar/Text\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> <$link to=\"$:/config/Toolbar/Text\"><<lingo Text/Description>></$link> </$checkbox>\n"
},
"$:/core/ui/ControlPanel/Settings": {
"title": "$:/core/ui/ControlPanel/Settings",
"tags": "$:/tags/ControlPanel",
"caption": "{{$:/language/ControlPanel/Settings/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/\n\n<<lingo Hint>>\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Settings]]\">\n\n<div style=\"border-top:1px solid #eee;\">\n\n!! <$link><$transclude field=\"caption\"/></$link>\n\n<$transclude/>\n\n</div>\n\n</$list>\n"
},
"$:/core/ui/ControlPanel/StoryView": {
"title": "$:/core/ui/ControlPanel/StoryView",
"tags": "$:/tags/ControlPanel/Appearance",
"caption": "{{$:/language/ControlPanel/StoryView/Caption}}",
"text": "{{$:/snippets/viewswitcher}}\n"
},
"$:/core/ui/ControlPanel/Stylesheets": {
"title": "$:/core/ui/ControlPanel/Stylesheets",
"tags": "$:/tags/ControlPanel/Advanced",
"caption": "{{$:/language/ControlPanel/Stylesheets/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/\n\n<<lingo Stylesheets/Hint>>\n\n{{$:/snippets/peek-stylesheets}}\n"
},
"$:/core/ui/ControlPanel/Theme": {
"title": "$:/core/ui/ControlPanel/Theme",
"tags": "$:/tags/ControlPanel/Appearance",
"caption": "{{$:/language/ControlPanel/Theme/Caption}}",
"text": "{{$:/snippets/themeswitcher}}\n"
},
"$:/core/ui/ControlPanel/TiddlerFields": {
"title": "$:/core/ui/ControlPanel/TiddlerFields",
"tags": "$:/tags/ControlPanel/Advanced",
"caption": "{{$:/language/ControlPanel/TiddlerFields/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/\n\n<<lingo TiddlerFields/Hint>>\n\n{{$:/snippets/allfields}}"
},
"$:/core/ui/ControlPanel/Toolbars/EditToolbar": {
"title": "$:/core/ui/ControlPanel/Toolbars/EditToolbar",
"tags": "$:/tags/ControlPanel/Toolbars",
"caption": "{{$:/language/ControlPanel/Toolbars/EditToolbar/Caption}}",
"text": "\\define lingo-base() $:/language/TiddlerInfo/\n\n\\define config-base() $:/config/EditToolbarButtons/Visibility/\n\n{{$:/language/ControlPanel/Toolbars/EditToolbar/Hint}}\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$macrocall $name=\"list-tagged-draggable\" tag=\"$:/tags/EditToolbar\" itemTemplate=\"$:/core/ui/ControlPanel/Toolbars/ItemTemplate\"/>\n\n</$set>\n\n</$set>"
},
"$:/core/ui/ControlPanel/Toolbars/EditorItemTemplate": {
"title": "$:/core/ui/ControlPanel/Toolbars/EditorItemTemplate",
"text": "\\define config-title()\n$(config-base)$$(currentTiddler)$\n\\end\n\n<$draggable tiddler=<<currentTiddler>>>\n<$checkbox tiddler=<<config-title>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\"/> <span class=\"tc-icon-wrapper\"><$transclude tiddler={{!!icon}}/></span> <$transclude field=\"caption\"/> -- <i class=\"tc-muted\"><$transclude field=\"description\"/></i>\n</$draggable>\n"
},
"$:/core/ui/ControlPanel/Toolbars/EditorToolbar": {
"title": "$:/core/ui/ControlPanel/Toolbars/EditorToolbar",
"tags": "$:/tags/ControlPanel/Toolbars",
"caption": "{{$:/language/ControlPanel/Toolbars/EditorToolbar/Caption}}",
"text": "\\define lingo-base() $:/language/TiddlerInfo/\n\n\\define config-base() $:/config/EditorToolbarButtons/Visibility/\n\n{{$:/language/ControlPanel/Toolbars/EditorToolbar/Hint}}\n\n<$macrocall $name=\"list-tagged-draggable\" tag=\"$:/tags/EditorToolbar\" itemTemplate=\"$:/core/ui/ControlPanel/Toolbars/EditorItemTemplate\"/>\n"
},
"$:/core/ui/ControlPanel/Toolbars/ItemTemplate": {
"title": "$:/core/ui/ControlPanel/Toolbars/ItemTemplate",
"text": "\\define config-title()\n$(config-base)$$(currentTiddler)$\n\\end\n\n<$draggable tiddler=<<currentTiddler>>>\n<$checkbox tiddler=<<config-title>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\"/> <span class=\"tc-icon-wrapper\"> <$transclude field=\"caption\"/> <i class=\"tc-muted\">-- <$transclude field=\"description\"/></i></span>\n</$draggable>\n"
},
"$:/core/ui/ControlPanel/Toolbars/PageControls": {
"title": "$:/core/ui/ControlPanel/Toolbars/PageControls",
"tags": "$:/tags/ControlPanel/Toolbars",
"caption": "{{$:/language/ControlPanel/Toolbars/PageControls/Caption}}",
"text": "\\define lingo-base() $:/language/TiddlerInfo/\n\n\\define config-base() $:/config/PageControlButtons/Visibility/\n\n{{$:/language/ControlPanel/Toolbars/PageControls/Hint}}\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$macrocall $name=\"list-tagged-draggable\" tag=\"$:/tags/PageControls\" itemTemplate=\"$:/core/ui/ControlPanel/Toolbars/ItemTemplate\"/>\n\n</$set>\n\n</$set>\n"
},
"$:/core/ui/ControlPanel/Toolbars/ViewToolbar": {
"title": "$:/core/ui/ControlPanel/Toolbars/ViewToolbar",
"tags": "$:/tags/ControlPanel/Toolbars",
"caption": "{{$:/language/ControlPanel/Toolbars/ViewToolbar/Caption}}",
"text": "\\define lingo-base() $:/language/TiddlerInfo/\n\n\\define config-base() $:/config/ViewToolbarButtons/Visibility/\n\n{{$:/language/ControlPanel/Toolbars/ViewToolbar/Hint}}\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$macrocall $name=\"list-tagged-draggable\" tag=\"$:/tags/ViewToolbar\" itemTemplate=\"$:/core/ui/ControlPanel/Toolbars/ItemTemplate\"/>\n\n</$set>\n\n</$set>\n"
},
"$:/core/ui/ControlPanel/Toolbars": {
"title": "$:/core/ui/ControlPanel/Toolbars",
"tags": "$:/tags/ControlPanel/Appearance",
"caption": "{{$:/language/ControlPanel/Toolbars/Caption}}",
"text": "{{$:/language/ControlPanel/Toolbars/Hint}}\n\n<div class=\"tc-control-panel\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Toolbars]!has[draft.of]]\" \"$:/core/ui/ControlPanel/Toolbars/ViewToolbar\" \"$:/state/tabs/controlpanel/toolbars\" \"tc-vertical\">>\n</div>\n"
},
"$:/ControlPanel": {
"title": "$:/ControlPanel",
"icon": "$:/core/images/options-button",
"color": "#bbb",
"text": "<div class=\"tc-control-panel\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/ControlPanel]!has[draft.of]]\" \"$:/core/ui/ControlPanel/Info\">>\n</div>\n"
},
"$:/core/ui/DefaultSearchResultList": {
"title": "$:/core/ui/DefaultSearchResultList",
"tags": "$:/tags/SearchResults",
"caption": "{{$:/language/Search/DefaultResults/Caption}}",
"text": "\\define searchResultList()\n//<small>{{$:/language/Search/Matches/Title}}</small>//\n\n<$list filter=\"[!is[system]search:title{$(searchTiddler)$}sort[title]limit[250]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n\n//<small>{{$:/language/Search/Matches/All}}</small>//\n\n<$list filter=\"[!is[system]search{$(searchTiddler)$}sort[title]limit[250]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n\n\\end\n<<searchResultList>>\n"
},
"$:/core/ui/EditTemplate/body/preview/diffs-current": {
"title": "$:/core/ui/EditTemplate/body/preview/diffs-current",
"tags": "$:/tags/EditPreview",
"caption": "differences from current",
"list-after": "$:/core/ui/EditTemplate/body/preview/output",
"text": "<$list filter=\"[<currentTiddler>!is[image]]\" emptyMessage={{$:/core/ui/EditTemplate/body/preview/output}}>\n\n<$macrocall $name=\"compareTiddlerText\" sourceTiddlerTitle={{!!draft.of}} destTiddlerTitle=<<currentTiddler>>/>\n\n</$list>\n\n"
},
"$:/core/ui/EditTemplate/body/preview/diffs-shadow": {
"title": "$:/core/ui/EditTemplate/body/preview/diffs-shadow",
"tags": "$:/tags/EditPreview",
"caption": "differences from shadow (if any)",
"list-after": "$:/core/ui/EditTemplate/body/preview/output",
"text": "<$list filter=\"[<currentTiddler>!is[image]]\" emptyMessage={{$:/core/ui/EditTemplate/body/preview/output}}>\n\n<$macrocall $name=\"compareTiddlerText\" sourceTiddlerTitle={{{ [{!!draft.of}shadowsource[]] }}} sourceSubTiddlerTitle={{!!draft.of}} destTiddlerTitle=<<currentTiddler>>/>\n\n</$list>\n\n"
},
"$:/core/ui/EditTemplate/body/preview/output": {
"title": "$:/core/ui/EditTemplate/body/preview/output",
"tags": "$:/tags/EditPreview",
"caption": "{{$:/language/EditTemplate/Body/Preview/Type/Output}}",
"text": "\\import [all[shadows+tiddlers]tag[$:/tags/Macro/View]!has[draft.of]]\n<$set name=\"tv-tiddler-preview\" value=\"yes\">\n\n<$transclude />\n\n</$set>\n"
},
"$:/state/showeditpreview": {
"title": "$:/state/showeditpreview",
"text": "no"
},
"$:/core/ui/EditTemplate/body/editor": {
"title": "$:/core/ui/EditTemplate/body/editor",
"text": "<$edit\n\n field=\"text\"\n class=\"tc-edit-texteditor tc-edit-texteditor-body\"\n placeholder={{$:/language/EditTemplate/Body/Placeholder}}\n tabindex={{$:/config/EditTabIndex}}\n focus={{{ [{$:/config/AutoFocus}match[text]then[true]] ~[[false]] }}}\n\n><$set\n\n name=\"targetTiddler\"\n value=<<currentTiddler>>\n\n><$list\n\n filter=\"[all[shadows+tiddlers]tag[$:/tags/EditorToolbar]!has[draft.of]]\"\n\n><$reveal\n\n type=\"nomatch\"\n state=<<config-visibility-title>>\n text=\"hide\"\n class=\"tc-text-editor-toolbar-item-wrapper\"\n\n><$transclude\n\n tiddler=\"$:/core/ui/EditTemplate/body/toolbar/button\"\n mode=\"inline\"\n\n/></$reveal></$list></$set></$edit>\n"
},
"$:/core/ui/EditTemplate/body/toolbar/button": {
"title": "$:/core/ui/EditTemplate/body/toolbar/button",
"text": "\\define toolbar-button-icon()\n<$list\n\n filter=\"[all[current]!has[custom-icon]]\"\n variable=\"no-custom-icon\"\n\n><$transclude\n\n tiddler={{!!icon}}\n\n/></$list>\n\\end\n\n\\define toolbar-button-tooltip()\n{{!!description}}<$macrocall $name=\"displayshortcuts\" $output=\"text/plain\" shortcuts={{!!shortcuts}} prefix=\"` - [\" separator=\"] [\" suffix=\"]`\"/>\n\\end\n\n\\define toolbar-button()\n<$list\n\n filter={{!!condition}}\n variable=\"list-condition\"\n\n><$wikify\n\n name=\"tooltip-text\"\n text=<<toolbar-button-tooltip>>\n mode=\"inline\"\n output=\"text\"\n\n><$list\n\n filter=\"[all[current]!has[dropdown]]\"\n variable=\"no-dropdown\"\n\n><$button\n\n class=\"tc-btn-invisible $(buttonClasses)$\"\n tooltip=<<tooltip-text>>\n actions={{!!actions}}\n\n><span\n\n data-tw-keyboard-shortcut={{!!shortcuts}}\n\n/><<toolbar-button-icon>><$transclude\n\n tiddler=<<currentTiddler>>\n field=\"text\"\n\n/></$button></$list><$list\n\n filter=\"[all[current]has[dropdown]]\"\n variable=\"dropdown\"\n\n><$set\n\n name=\"dropdown-state\"\n value=<<qualify \"$:/state/EditorToolbarDropdown\">>\n\n><$button\n\n popup=<<dropdown-state>>\n class=\"tc-popup-keep tc-btn-invisible $(buttonClasses)$\"\n selectedClass=\"tc-selected\"\n tooltip=<<tooltip-text>>\n actions={{!!actions}}\n\n><span\n\n data-tw-keyboard-shortcut={{!!shortcuts}}\n\n/><<toolbar-button-icon>><$transclude\n\n tiddler=<<currentTiddler>>\n field=\"text\"\n\n/></$button><$reveal\n\n state=<<dropdown-state>>\n type=\"popup\"\n position=\"below\"\n animate=\"yes\"\n tag=\"span\"\n\n><div\n\n class=\"tc-drop-down tc-popup-keep\"\n\n><$transclude\n\n tiddler={{!!dropdown}}\n mode=\"block\"\n\n/></div></$reveal></$set></$list></$wikify></$list>\n\\end\n\n\\define toolbar-button-outer()\n<$set\n\n name=\"buttonClasses\"\n value={{!!button-classes}}\n\n><<toolbar-button>></$set>\n\\end\n\n<<toolbar-button-outer>>"
},
"$:/core/ui/EditTemplate/body": {
"title": "$:/core/ui/EditTemplate/body",
"tags": "$:/tags/EditTemplate",
"text": "\\define lingo-base() $:/language/EditTemplate/Body/\n\\define config-visibility-title()\n$:/config/EditorToolbarButtons/Visibility/$(currentTiddler)$\n\\end\n<$list filter=\"[all[current]has[_canonical_uri]]\">\n\n<div class=\"tc-message-box\">\n\n<<lingo External/Hint>>\n\n<a href={{!!_canonical_uri}}><$text text={{!!_canonical_uri}}/></a>\n\n<$edit-text field=\"_canonical_uri\" class=\"tc-edit-fields\" tabindex={{$:/config/EditTabIndex}}></$edit-text>\n\n</div>\n\n</$list>\n\n<$list filter=\"[all[current]!has[_canonical_uri]]\">\n\n<$reveal state=\"$:/state/showeditpreview\" type=\"match\" text=\"yes\">\n\n<div class=\"tc-tiddler-preview\">\n\n<$transclude tiddler=\"$:/core/ui/EditTemplate/body/editor\" mode=\"inline\"/>\n\n<div class=\"tc-tiddler-preview-preview\">\n\n<$transclude tiddler={{$:/state/editpreviewtype}} mode=\"inline\">\n\n<$transclude tiddler=\"$:/core/ui/EditTemplate/body/preview/output\" mode=\"inline\"/>\n\n</$transclude>\n\n</div>\n\n</div>\n\n</$reveal>\n\n<$reveal state=\"$:/state/showeditpreview\" type=\"nomatch\" text=\"yes\">\n\n<$transclude tiddler=\"$:/core/ui/EditTemplate/body/editor\" mode=\"inline\"/>\n\n</$reveal>\n\n</$list>\n"
},
"$:/core/ui/EditTemplate/controls": {
"title": "$:/core/ui/EditTemplate/controls",
"tags": "$:/tags/EditTemplate",
"text": "\\define config-title()\n$:/config/EditToolbarButtons/Visibility/$(listItem)$\n\\end\n<div class=\"tc-tiddler-title tc-tiddler-edit-title\">\n<$view field=\"title\"/>\n<span class=\"tc-tiddler-controls tc-titlebar\"><$list filter=\"[all[shadows+tiddlers]tag[$:/tags/EditToolbar]!has[draft.of]]\" variable=\"listItem\"><$reveal type=\"nomatch\" state=<<config-title>> text=\"hide\"><$transclude tiddler=<<listItem>>/></$reveal></$list></span>\n<div style=\"clear: both;\"></div>\n</div>\n"
},
"$:/core/ui/EditTemplate/fields": {
"title": "$:/core/ui/EditTemplate/fields",
"tags": "$:/tags/EditTemplate",
"text": "\\define lingo-base() $:/language/EditTemplate/\n\\define config-title()\n$:/config/EditTemplateFields/Visibility/$(currentField)$\n\\end\n\n\\define config-filter()\n[[hide]] -[title{$(config-title)$}]\n\\end\n\n\\define current-tiddler-new-field-selector()\n[data-tiddler-title=\"$(currentTiddlerCSSescaped)$\"] .tc-edit-field-add-name input\n\\end\n\n\\define new-field-actions()\n<$action-sendmessage $message=\"tm-add-field\" $name={{{ [<newFieldNameTiddler>get[text]] }}} $value={{{ [<newFieldValueTiddler>get[text]] }}}/>\n<$action-deletetiddler $tiddler=<<newFieldNameTiddler>>/>\n<$action-deletetiddler $tiddler=<<newFieldValueTiddler>>/>\n<$action-sendmessage $message=\"tm-focus-selector\" $param=<<current-tiddler-new-field-selector>>/>\n\\end\n\n\\define new-field()\n<$vars name={{{ [<newFieldNameTiddler>get[text]] }}}>\n<$reveal type=\"nomatch\" text=\"\" default=<<name>>>\n<$button tooltip=<<lingo Fields/Add/Button/Hint>>>\n<$action-sendmessage $message=\"tm-add-field\"\n$name=<<name>>\n$value={{{ [<newFieldValueTiddler>get[text]] }}}/>\n<$action-deletetiddler $tiddler=<<newFieldNameTiddler>>/>\n<$action-deletetiddler $tiddler=<<newFieldValueTiddler>>/>\n<<lingo Fields/Add/Button>>\n</$button>\n</$reveal>\n<$reveal type=\"match\" text=\"\" default=<<name>>>\n<$button>\n<<lingo Fields/Add/Button>>\n</$button>\n</$reveal>\n</$vars>\n\\end\n\\whitespace trim\n\n<div class=\"tc-edit-fields\">\n<table class=\"tc-edit-fields\">\n<tbody>\n<$list filter=\"[all[current]fields[]] +[sort[title]]\" variable=\"currentField\" storyview=\"pop\">\n<$list filter=<<config-filter>> variable=\"temp\">\n<tr class=\"tc-edit-field\">\n<td class=\"tc-edit-field-name\">\n<$text text=<<currentField>>/>:</td>\n<td class=\"tc-edit-field-value\">\n<$edit-text tiddler=<<currentTiddler>> field=<<currentField>> placeholder={{$:/language/EditTemplate/Fields/Add/Value/Placeholder}} tabindex={{$:/config/EditTabIndex}}/>\n</td>\n<td class=\"tc-edit-field-remove\">\n<$button class=\"tc-btn-invisible\" tooltip={{$:/language/EditTemplate/Field/Remove/Hint}} aria-label={{$:/language/EditTemplate/Field/Remove/Caption}}>\n<$action-deletefield $field=<<currentField>>/>\n{{$:/core/images/delete-button}}\n</$button>\n</td>\n</tr>\n</$list>\n</$list>\n</tbody>\n</table>\n</div>\n\n<$fieldmangler>\n<div class=\"tc-edit-field-add\">\n<em class=\"tc-edit\">\n<<lingo Fields/Add/Prompt>> \n</em>\n<span class=\"tc-edit-field-add-name\">\n<$edit-text tiddler=<<newFieldNameTiddler>> tag=\"input\" default=\"\" placeholder={{$:/language/EditTemplate/Fields/Add/Name/Placeholder}} focusPopup=<<qualify \"$:/state/popup/field-dropdown\">> class=\"tc-edit-texteditor tc-popup-handle\" tabindex={{$:/config/EditTabIndex}} focus={{{ [{$:/config/AutoFocus}match[fields]then[true]] ~[[false]] }}}/>\n</span> \n<$button popup=<<qualify \"$:/state/popup/field-dropdown\">> class=\"tc-btn-invisible tc-btn-dropdown\" tooltip={{$:/language/EditTemplate/Field/Dropdown/Hint}} aria-label={{$:/language/EditTemplate/Field/Dropdown/Caption}}>{{$:/core/images/down-arrow}}</$button> \n<$reveal state=<<qualify \"$:/state/popup/field-dropdown\">> type=\"nomatch\" text=\"\" default=\"\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<$set name=\"tv-show-missing-links\" value=\"yes\">\n<$linkcatcher to=<<newFieldNameTiddler>>>\n<div class=\"tc-dropdown-item\">\n<<lingo Fields/Add/Dropdown/User>>\n</div>\n<$set name=\"newFieldName\" value={{{ [<newFieldNameTiddler>get[text]] }}}>\n<$list filter=\"[!is[shadow]!is[system]fields[]search:title<newFieldName>sort[]] -created -creator -draft.of -draft.title -modified -modifier -tags -text -title -type\" variable=\"currentField\">\n<$link to=<<currentField>>>\n<$text text=<<currentField>>/>\n</$link>\n</$list>\n<div class=\"tc-dropdown-item\">\n<<lingo Fields/Add/Dropdown/System>>\n</div>\n<$list filter=\"[fields[]search:title<newFieldName>sort[]] -[!is[shadow]!is[system]fields[]]\" variable=\"currentField\">\n<$link to=<<currentField>>>\n<$text text=<<currentField>>/>\n</$link>\n</$list>\n</$set>\n</$linkcatcher>\n</$set>\n</div>\n</$reveal>\n<span class=\"tc-edit-field-add-value\">\n<$set name=\"currentTiddlerCSSescaped\" value={{{ [<currentTiddler>escapecss[]] }}}>\n<$keyboard key=\"((add-field))\" actions=<<new-field-actions>>>\n<$edit-text tiddler=<<newFieldValueTiddler>> tag=\"input\" default=\"\" placeholder={{$:/language/EditTemplate/Fields/Add/Value/Placeholder}} class=\"tc-edit-texteditor\" tabindex={{$:/config/EditTabIndex}}/>\n</$keyboard>\n</$set>\n</span> \n<span class=\"tc-edit-field-add-button\">\n<$macrocall $name=\"new-field\"/>\n</span>\n</div>\n</$fieldmangler>\n"
},
"$:/core/ui/EditTemplate/shadow": {
"title": "$:/core/ui/EditTemplate/shadow",
"tags": "$:/tags/EditTemplate",
"text": "\\define lingo-base() $:/language/EditTemplate/Shadow/\n\\define pluginLinkBody()\n<$link to=\"\"\"$(pluginTitle)$\"\"\">\n<$text text=\"\"\"$(pluginTitle)$\"\"\"/>\n</$link>\n\\end\n<$list filter=\"[all[current]get[draft.of]is[shadow]!is[tiddler]]\">\n\n<$list filter=\"[all[current]shadowsource[]]\" variable=\"pluginTitle\">\n\n<$set name=\"pluginLink\" value=<<pluginLinkBody>>>\n<div class=\"tc-message-box\">\n\n<<lingo Warning>>\n\n</div>\n</$set>\n</$list>\n\n</$list>\n\n<$list filter=\"[all[current]get[draft.of]is[shadow]is[tiddler]]\">\n\n<$list filter=\"[all[current]shadowsource[]]\" variable=\"pluginTitle\">\n\n<$set name=\"pluginLink\" value=<<pluginLinkBody>>>\n<div class=\"tc-message-box\">\n\n<<lingo OverriddenWarning>>\n\n</div>\n</$set>\n</$list>\n\n</$list>"
},
"$:/core/ui/EditTemplate/tags": {
"title": "$:/core/ui/EditTemplate/tags",
"tags": "$:/tags/EditTemplate",
"text": "\\whitespace trim\n\n\\define lingo-base() $:/language/EditTemplate/\n\n\\define tag-styles()\nbackground-color:$(backgroundColor)$;\nfill:$(foregroundColor)$;\ncolor:$(foregroundColor)$;\n\\end\n\n\\define tag-body-inner(colour,fallbackTarget,colourA,colourB,icon)\n\\whitespace trim\n<$vars foregroundColor=<<contrastcolour target:\"\"\"$colour$\"\"\" fallbackTarget:\"\"\"$fallbackTarget$\"\"\" colourA:\"\"\"$colourA$\"\"\" colourB:\"\"\"$colourB$\"\"\">> backgroundColor=\"\"\"$colour$\"\"\">\n<span style=<<tag-styles>> class=\"tc-tag-label tc-tag-list-item\">\n<$transclude tiddler=\"\"\"$icon$\"\"\"/><$view field=\"title\" format=\"text\" />\n<$button message=\"tm-remove-tag\" param={{!!title}} class=\"tc-btn-invisible tc-remove-tag-button\">{{$:/core/images/close-button}}</$button>\n</span>\n</$vars>\n\\end\n\n\\define tag-body(colour,palette,icon)\n<$macrocall $name=\"tag-body-inner\" colour=\"\"\"$colour$\"\"\" fallbackTarget={{$palette$##tag-background}} colourA={{$palette$##foreground}} colourB={{$palette$##background}} icon=\"\"\"$icon$\"\"\"/>\n\\end\n\n<div class=\"tc-edit-tags\">\n<$fieldmangler>\n<$list filter=\"[all[current]tags[]sort[title]]\" storyview=\"pop\">\n<$macrocall $name=\"tag-body\" colour={{!!color}} palette={{$:/palette}} icon={{!!icon}}/>\n</$list>\n<$set name=\"tabIndex\" value={{$:/config/EditTabIndex}}>\n<$macrocall $name=\"tag-picker\"/>\n</$set>\n</$fieldmangler>\n</div>\n"
},
"$:/core/ui/EditTemplate/title": {
"title": "$:/core/ui/EditTemplate/title",
"tags": "$:/tags/EditTemplate",
"text": "<$edit-text field=\"draft.title\" class=\"tc-titlebar tc-edit-texteditor\" focus={{{ [{$:/config/AutoFocus}match[title]then[true]] ~[[false]] }}} tabindex={{$:/config/EditTabIndex}}/>\n\n<$vars pattern=\"\"\"[\\|\\[\\]{}]\"\"\" bad-chars=\"\"\"`| [ ] { }`\"\"\">\n\n<$list filter=\"[all[current]regexp:draft.title<pattern>]\" variable=\"listItem\">\n\n<div class=\"tc-message-box\">\n\n{{$:/core/images/warning}} {{$:/language/EditTemplate/Title/BadCharacterWarning}}\n\n</div>\n\n</$list>\n\n</$vars>\n\n<$reveal state=\"!!draft.title\" type=\"nomatch\" text={{!!draft.of}} tag=\"div\">\n\n<$list filter=\"[{!!draft.title}!is[missing]]\" variable=\"listItem\">\n\n<div class=\"tc-message-box\">\n\n{{$:/core/images/warning}} {{$:/language/EditTemplate/Title/Exists/Prompt}}\n\n</div>\n\n</$list>\n\n<$list filter=\"[{!!draft.of}!is[missing]]\" variable=\"listItem\">\n\n<$vars fromTitle={{!!draft.of}} toTitle={{!!draft.title}}>\n\n<$checkbox tiddler=\"$:/config/RelinkOnRename\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> {{$:/language/EditTemplate/Title/Relink/Prompt}}</$checkbox>\n\n<$list filter=\"[title<fromTitle>backlinks[]limit[1]]\" variable=\"listItem\">\n\n<$vars stateTiddler=<<qualify \"$:/state/edit/references\">> >\n\n<$reveal type=\"nomatch\" state=<<stateTiddler>> text=\"show\">\n<$button set=<<stateTiddler>> setTo=\"show\" class=\"tc-btn-invisible\">{{$:/core/images/right-arrow}} \n<<lingo EditTemplate/Title/References/Prompt>></$button>\n</$reveal>\n<$reveal type=\"match\" state=<<stateTiddler>> text=\"show\">\n<$button set=<<stateTiddler>> setTo=\"hide\" class=\"tc-btn-invisible\">{{$:/core/images/down-arrow}} \n<<lingo EditTemplate/Title/References/Prompt>></$button>\n</$reveal>\n\n<$reveal type=\"match\" state=<<stateTiddler>> text=\"show\">\n<$tiddler tiddler=<<fromTitle>> >\n<$transclude tiddler=\"$:/core/ui/TiddlerInfo/References\"/>\n</$tiddler>\n</$reveal>\n\n</$vars>\n\n</$list>\n\n</$vars>\n\n</$list>\n\n</$reveal>\n"
},
"$:/core/ui/EditTemplate/type": {
"title": "$:/core/ui/EditTemplate/type",
"tags": "$:/tags/EditTemplate",
"text": "\\define lingo-base() $:/language/EditTemplate/\n\\whitespace trim\n<div class=\"tc-type-selector\"><$fieldmangler>\n<em class=\"tc-edit\"><<lingo Type/Prompt>></em> <$edit-text field=\"type\" tag=\"input\" default=\"\" placeholder={{$:/language/EditTemplate/Type/Placeholder}} focusPopup=<<qualify \"$:/state/popup/type-dropdown\">> class=\"tc-edit-typeeditor tc-edit-texteditor tc-popup-handle\" tabindex={{$:/config/EditTabIndex}} focus={{{ [{$:/config/AutoFocus}match[type]then[true]] ~[[false]] }}}/> <$button popup=<<qualify \"$:/state/popup/type-dropdown\">> class=\"tc-btn-invisible tc-btn-dropdown\" tooltip={{$:/language/EditTemplate/Type/Dropdown/Hint}} aria-label={{$:/language/EditTemplate/Type/Dropdown/Caption}}>{{$:/core/images/down-arrow}}</$button> <$button message=\"tm-remove-field\" param=\"type\" class=\"tc-btn-invisible tc-btn-icon\" tooltip={{$:/language/EditTemplate/Type/Delete/Hint}} aria-label={{$:/language/EditTemplate/Type/Delete/Caption}}>{{$:/core/images/delete-button}}</$button>\n</$fieldmangler></div>\n\n<div class=\"tc-block-dropdown-wrapper\">\n<$set name=\"tv-show-missing-links\" value=\"yes\">\n<$reveal state=<<qualify \"$:/state/popup/type-dropdown\">> type=\"nomatch\" text=\"\" default=\"\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<$linkcatcher to=\"!!type\">\n<$list filter='[all[shadows+tiddlers]prefix[$:/language/Docs/Types/]each[group]sort[group-sort]]'>\n<div class=\"tc-dropdown-item\">\n<$text text={{!!group}}/>\n</div>\n<$list filter=\"[all[shadows+tiddlers]prefix[$:/language/Docs/Types/]group{!!group}] +[sort[description]]\"><$link to={{!!name}}><$view field=\"description\"/> (<$view field=\"name\"/>)</$link>\n</$list>\n</$list>\n</$linkcatcher>\n</div>\n</$reveal>\n</$set>\n</div>\n"
},
"$:/core/ui/EditTemplate": {
"title": "$:/core/ui/EditTemplate",
"text": "\\define save-tiddler-actions()\n<$action-sendmessage $message=\"tm-add-tag\" $param={{{ [<newTagNameTiddler>get[text]] }}}/>\n<$action-deletetiddler $tiddler=<<newTagNameTiddler>>/>\n<$action-sendmessage $message=\"tm-add-field\" $name={{{ [<newFieldNameTiddler>get[text]] }}} $value={{{ [<newFieldValueTiddler>get[text]] }}}/>\n<$action-deletetiddler $tiddler=<<newFieldNameTiddler>>/>\n<$action-deletetiddler $tiddler=<<newFieldValueTiddler>>/>\n<$action-sendmessage $message=\"tm-save-tiddler\"/>\n\\end\n<div data-tiddler-title=<<currentTiddler>> data-tags={{!!tags}} class={{{ tc-tiddler-frame tc-tiddler-edit-frame [<currentTiddler>is[tiddler]then[tc-tiddler-exists]] [<currentTiddler>is[missing]!is[shadow]then[tc-tiddler-missing]] [<currentTiddler>is[shadow]then[tc-tiddler-exists tc-tiddler-shadow]] [<currentTiddler>is[system]then[tc-tiddler-system]] [{!!class}] [<currentTiddler>tags[]encodeuricomponent[]addprefix[tc-tagged-]] +[join[ ]] }}}>\n<$fieldmangler>\n<$vars storyTiddler=<<currentTiddler>> newTagNameTiddler=<<qualify \"$:/temp/NewTagName\">> newFieldNameTiddler=<<qualify \"$:/temp/NewFieldName\">> newFieldValueTiddler=<<qualify \"$:/temp/NewFieldValue\">>>\n<$keyboard key=\"((cancel-edit-tiddler))\" message=\"tm-cancel-tiddler\">\n<$keyboard key=\"((save-tiddler))\" actions=<<save-tiddler-actions>>>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/EditTemplate]!has[draft.of]]\" variable=\"listItem\">\n<$set name=\"tv-config-toolbar-class\" filter=\"[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]\">\n<$transclude tiddler=<<listItem>>/>\n</$set>\n</$list>\n</$keyboard>\n</$keyboard>\n</$vars>\n</$fieldmangler>\n</div>\n"
},
"$:/core/ui/Buttons/cancel": {
"title": "$:/core/ui/Buttons/cancel",
"tags": "$:/tags/EditToolbar",
"caption": "{{$:/core/images/cancel-button}} {{$:/language/Buttons/Cancel/Caption}}",
"description": "{{$:/language/Buttons/Cancel/Hint}}",
"text": "<$button message=\"tm-cancel-tiddler\" tooltip={{$:/language/Buttons/Cancel/Hint}} aria-label={{$:/language/Buttons/Cancel/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/cancel-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Cancel/Caption}}/></span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/delete": {
"title": "$:/core/ui/Buttons/delete",
"tags": "$:/tags/EditToolbar $:/tags/ViewToolbar",
"caption": "{{$:/core/images/delete-button}} {{$:/language/Buttons/Delete/Caption}}",
"description": "{{$:/language/Buttons/Delete/Hint}}",
"text": "<$button message=\"tm-delete-tiddler\" tooltip={{$:/language/Buttons/Delete/Hint}} aria-label={{$:/language/Buttons/Delete/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/delete-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Delete/Caption}}/></span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/save": {
"title": "$:/core/ui/Buttons/save",
"tags": "$:/tags/EditToolbar",
"caption": "{{$:/core/images/done-button}} {{$:/language/Buttons/Save/Caption}}",
"description": "{{$:/language/Buttons/Save/Hint}}",
"text": "\\define save-tiddler-button()\n<$fieldmangler><$button tooltip={{$:/language/Buttons/Save/Hint}} aria-label={{$:/language/Buttons/Save/Caption}} class=<<tv-config-toolbar-class>>>\n<<save-tiddler-actions>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/done-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Save/Caption}}/></span>\n</$list>\n</$button></$fieldmangler>\n\\end\n<<save-tiddler-button>>\n"
},
"$:/core/ui/EditorToolbar/bold": {
"title": "$:/core/ui/EditorToolbar/bold",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/bold",
"caption": "{{$:/language/Buttons/Bold/Caption}}",
"description": "{{$:/language/Buttons/Bold/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((bold))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"''\"\n\tsuffix=\"''\"\n/>\n"
},
"$:/core/ui/EditorToolbar/clear-dropdown": {
"title": "$:/core/ui/EditorToolbar/clear-dropdown",
"text": "''{{$:/language/Buttons/Clear/Hint}}''\n\n<div class=\"tc-colour-chooser\">\n\n<$macrocall $name=\"colour-picker\" actions=\"\"\"\n\n<$action-sendmessage\n\t$message=\"tm-edit-bitmap-operation\"\n\t$param=\"clear\"\n\tcolour=<<colour-picker-value>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n\"\"\"/>\n\n</div>\n"
},
"$:/core/ui/EditorToolbar/clear": {
"title": "$:/core/ui/EditorToolbar/clear",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/erase",
"caption": "{{$:/language/Buttons/Clear/Caption}}",
"description": "{{$:/language/Buttons/Clear/Hint}}",
"condition": "[<targetTiddler>is[image]]",
"dropdown": "$:/core/ui/EditorToolbar/clear-dropdown",
"text": ""
},
"$:/core/ui/EditorToolbar/editor-height-dropdown": {
"title": "$:/core/ui/EditorToolbar/editor-height-dropdown",
"text": "\\define lingo-base() $:/language/Buttons/EditorHeight/\n''<<lingo Hint>>''\n\n<$radio tiddler=\"$:/config/TextEditor/EditorHeight/Mode\" value=\"auto\"> {{$:/core/images/auto-height}} <<lingo Caption/Auto>></$radio>\n\n<$radio tiddler=\"$:/config/TextEditor/EditorHeight/Mode\" value=\"fixed\"> {{$:/core/images/fixed-height}} <<lingo Caption/Fixed>> <$edit-text tag=\"input\" tiddler=\"$:/config/TextEditor/EditorHeight/Height\" default=\"100px\"/></$radio>\n"
},
"$:/core/ui/EditorToolbar/editor-height": {
"title": "$:/core/ui/EditorToolbar/editor-height",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/fixed-height",
"custom-icon": "yes",
"caption": "{{$:/language/Buttons/EditorHeight/Caption}}",
"description": "{{$:/language/Buttons/EditorHeight/Hint}}",
"condition": "[<targetTiddler>type[]] [<targetTiddler>get[type]prefix[text/]] +[first[]]",
"dropdown": "$:/core/ui/EditorToolbar/editor-height-dropdown",
"text": "<$reveal tag=\"span\" state=\"$:/config/TextEditor/EditorHeight/Mode\" type=\"match\" text=\"fixed\">\n{{$:/core/images/fixed-height}}\n</$reveal>\n<$reveal tag=\"span\" state=\"$:/config/TextEditor/EditorHeight/Mode\" type=\"match\" text=\"auto\">\n{{$:/core/images/auto-height}}\n</$reveal>\n"
},
"$:/core/ui/EditorToolbar/excise-dropdown": {
"title": "$:/core/ui/EditorToolbar/excise-dropdown",
"text": "\\define lingo-base() $:/language/Buttons/Excise/\n\n\\define body(config-title)\n''<<lingo Hint>>''\n\n<<lingo Caption/NewTitle>> <$edit-text tag=\"input\" tiddler=\"$config-title$/new-title\" default=\"\" focus=\"true\"/>\n\n<$set name=\"new-title\" value={{$config-title$/new-title}}>\n<$list filter=\"\"\"[<new-title>is[tiddler]]\"\"\">\n<div class=\"tc-error\">\n<<lingo Caption/TiddlerExists>>\n</div>\n</$list>\n</$set>\n\n<$checkbox tiddler=\"\"\"$config-title$/tagnew\"\"\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"false\"> <<lingo Caption/Tag>></$checkbox>\n\n<<lingo Caption/Replace>> <$select tiddler=\"\"\"$config-title$/type\"\"\" default=\"transclude\">\n<option value=\"link\"><<lingo Caption/Replace/Link>></option>\n<option value=\"transclude\"><<lingo Caption/Replace/Transclusion>></option>\n<option value=\"macro\"><<lingo Caption/Replace/Macro>></option>\n</$select>\n\n<$reveal state=\"\"\"$config-title$/type\"\"\" type=\"match\" text=\"macro\">\n<<lingo Caption/MacroName>> <$edit-text tag=\"input\" tiddler=\"\"\"$config-title$/macro-title\"\"\" default=\"translink\"/>\n</$reveal>\n\n<$button>\n<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"excise\"\n\ttitle={{$config-title$/new-title}}\n\ttype={{$config-title$/type}}\n\tmacro={{$config-title$/macro-title}}\n\ttagnew={{$config-title$/tagnew}}\n/>\n<$action-deletetiddler\n\t$tiddler=\"$config-title$/new-title\"\n/>\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n<<lingo Caption/Excise>>\n</$button>\n\\end\n\n<$macrocall $name=\"body\" config-title=<<qualify \"$:/state/Excise/\">>/>\n"
},
"$:/core/ui/EditorToolbar/excise": {
"title": "$:/core/ui/EditorToolbar/excise",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/excise",
"caption": "{{$:/language/Buttons/Excise/Caption}}",
"description": "{{$:/language/Buttons/Excise/Hint}}",
"condition": "[<targetTiddler>type[]] [<targetTiddler>type[text/vnd.tiddlywiki]] +[first[]]",
"shortcuts": "((excise))",
"dropdown": "$:/core/ui/EditorToolbar/excise-dropdown",
"text": ""
},
"$:/core/ui/EditorToolbar/heading-1": {
"title": "$:/core/ui/EditorToolbar/heading-1",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/heading-1",
"caption": "{{$:/language/Buttons/Heading1/Caption}}",
"description": "{{$:/language/Buttons/Heading1/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"button-classes": "tc-text-editor-toolbar-item-start-group",
"shortcuts": "((heading-1))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"1\"\n/>\n"
},
"$:/core/ui/EditorToolbar/heading-2": {
"title": "$:/core/ui/EditorToolbar/heading-2",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/heading-2",
"caption": "{{$:/language/Buttons/Heading2/Caption}}",
"description": "{{$:/language/Buttons/Heading2/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((heading-2))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"2\"\n/>\n"
},
"$:/core/ui/EditorToolbar/heading-3": {
"title": "$:/core/ui/EditorToolbar/heading-3",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/heading-3",
"caption": "{{$:/language/Buttons/Heading3/Caption}}",
"description": "{{$:/language/Buttons/Heading3/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((heading-3))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"3\"\n/>\n"
},
"$:/core/ui/EditorToolbar/heading-4": {
"title": "$:/core/ui/EditorToolbar/heading-4",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/heading-4",
"caption": "{{$:/language/Buttons/Heading4/Caption}}",
"description": "{{$:/language/Buttons/Heading4/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((heading-4))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"4\"\n/>\n"
},
"$:/core/ui/EditorToolbar/heading-5": {
"title": "$:/core/ui/EditorToolbar/heading-5",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/heading-5",
"caption": "{{$:/language/Buttons/Heading5/Caption}}",
"description": "{{$:/language/Buttons/Heading5/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((heading-5))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"5\"\n/>\n"
},
"$:/core/ui/EditorToolbar/heading-6": {
"title": "$:/core/ui/EditorToolbar/heading-6",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/heading-6",
"caption": "{{$:/language/Buttons/Heading6/Caption}}",
"description": "{{$:/language/Buttons/Heading6/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((heading-6))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"6\"\n/>\n"
},
"$:/core/ui/EditorToolbar/italic": {
"title": "$:/core/ui/EditorToolbar/italic",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/italic",
"caption": "{{$:/language/Buttons/Italic/Caption}}",
"description": "{{$:/language/Buttons/Italic/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((italic))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"//\"\n\tsuffix=\"//\"\n/>\n"
},
"$:/core/ui/EditorToolbar/line-width-dropdown": {
"title": "$:/core/ui/EditorToolbar/line-width-dropdown",
"text": "\\define lingo-base() $:/language/Buttons/LineWidth/\n\n\\define toolbar-line-width-inner()\n<$button tag=\"a\" tooltip=\"\"\"$(line-width)$\"\"\">\n\n<$action-setfield\n\t$tiddler=\"$:/config/BitmapEditor/LineWidth\"\n\t$value=\"$(line-width)$\"\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<div style=\"display: inline-block; margin: 4px calc(80px - $(line-width)$); background-color: #000; width: calc(100px + $(line-width)$ * 2); height: $(line-width)$; border-radius: 120px; vertical-align: middle;\"/>\n\n<span style=\"margin-left: 8px;\">\n\n<$text text=\"\"\"$(line-width)$\"\"\"/>\n\n<$reveal state=\"$:/config/BitmapEditor/LineWidth\" type=\"match\" text=\"\"\"$(line-width)$\"\"\" tag=\"span\">\n\n<$entity entity=\" \"/>\n\n<$entity entity=\"✓\"/>\n\n</$reveal>\n\n</span>\n\n</$button>\n\\end\n\n''<<lingo Hint>>''\n\n<$list filter={{$:/config/BitmapEditor/LineWidths}} variable=\"line-width\">\n\n<<toolbar-line-width-inner>>\n\n</$list>\n"
},
"$:/core/ui/EditorToolbar/line-width": {
"title": "$:/core/ui/EditorToolbar/line-width",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/line-width",
"caption": "{{$:/language/Buttons/LineWidth/Caption}}",
"description": "{{$:/language/Buttons/LineWidth/Hint}}",
"condition": "[<targetTiddler>is[image]]",
"dropdown": "$:/core/ui/EditorToolbar/line-width-dropdown",
"text": "<$text text={{$:/config/BitmapEditor/LineWidth}}/>"
},
"$:/core/ui/EditorToolbar/link-dropdown": {
"title": "$:/core/ui/EditorToolbar/link-dropdown",
"text": "\\define lingo-base() $:/language/Buttons/Link/\n\n\\define add-link-actions()\n<$action-sendmessage $message=\"tm-edit-text-operation\" $param=\"make-link\" text={{$(linkTiddler)$}} />\n<$action-deletetiddler $tiddler=<<dropdown-state>> />\n<$action-deletetiddler $tiddler=<<searchTiddler>> />\n<$action-deletetiddler $tiddler=<<linkTiddler>> />\n\\end\n\n\\define external-link()\n<$button class=\"tc-btn-invisible\" style=\"width: auto; display: inline-block; background-colour: inherit;\" actions=<<add-link-actions>>>\n{{$:/core/images/chevron-right}}\n</$button>\n\\end\n\n\\define body(config-title)\n''<<lingo Hint>>''\n\n<$vars searchTiddler=\"\"\"$config-title$/search\"\"\" linkTiddler=\"\"\"$config-title$/link\"\"\" linktext=\"\" >\n\n<$vars linkTiddler=<<searchTiddler>>>\n<$keyboard key=\"ENTER\" actions=<<add-link-actions>>>\n<$edit-text tiddler=<<searchTiddler>> type=\"search\" tag=\"input\" focus=\"true\" placeholder={{$:/language/Search/Search}} default=\"\"/>\n<$reveal tag=\"span\" state=<<searchTiddler>> type=\"nomatch\" text=\"\">\n<<external-link>>\n<$button class=\"tc-btn-invisible\" style=\"width: auto; display: inline-block; background-colour: inherit;\">\n<$action-setfield $tiddler=<<searchTiddler>> text=\"\" />\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</$keyboard>\n</$vars>\n\n<$reveal tag=\"div\" state=<<searchTiddler>> type=\"nomatch\" text=\"\">\n\n<$linkcatcher actions=<<add-link-actions>> to=<<linkTiddler>>>\n\n{{$:/core/ui/SearchResults}}\n\n</$linkcatcher>\n\n</$reveal>\n\n</$vars>\n\n\\end\n\n<$macrocall $name=\"body\" config-title=<<qualify \"$:/state/Link/\">>/>"
},
"$:/core/ui/EditorToolbar/link": {
"title": "$:/core/ui/EditorToolbar/link",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/link",
"caption": "{{$:/language/Buttons/Link/Caption}}",
"description": "{{$:/language/Buttons/Link/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"button-classes": "tc-text-editor-toolbar-item-start-group",
"shortcuts": "((link))",
"dropdown": "$:/core/ui/EditorToolbar/link-dropdown",
"text": ""
},
"$:/core/ui/EditorToolbar/linkify": {
"title": "$:/core/ui/EditorToolbar/linkify",
"caption": "{{$:/language/Buttons/Linkify/Caption}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"description": "{{$:/language/Buttons/Linkify/Hint}}",
"icon": "$:/core/images/linkify",
"list-before": "$:/core/ui/EditorToolbar/mono-block",
"shortcuts": "((linkify))",
"tags": "$:/tags/EditorToolbar",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"[[\"\n\tsuffix=\"]]\"\n/>\n"
},
"$:/core/ui/EditorToolbar/list-bullet": {
"title": "$:/core/ui/EditorToolbar/list-bullet",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/list-bullet",
"caption": "{{$:/language/Buttons/ListBullet/Caption}}",
"description": "{{$:/language/Buttons/ListBullet/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((list-bullet))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"*\"\n\tcount=\"1\"\n/>\n"
},
"$:/core/ui/EditorToolbar/list-number": {
"title": "$:/core/ui/EditorToolbar/list-number",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/list-number",
"caption": "{{$:/language/Buttons/ListNumber/Caption}}",
"description": "{{$:/language/Buttons/ListNumber/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((list-number))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"#\"\n\tcount=\"1\"\n/>\n"
},
"$:/core/ui/EditorToolbar/mono-block": {
"title": "$:/core/ui/EditorToolbar/mono-block",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/mono-block",
"caption": "{{$:/language/Buttons/MonoBlock/Caption}}",
"description": "{{$:/language/Buttons/MonoBlock/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"button-classes": "tc-text-editor-toolbar-item-start-group",
"shortcuts": "((mono-block))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-lines\"\n\tprefix=\"\n```\"\n\tsuffix=\"```\"\n/>\n"
},
"$:/core/ui/EditorToolbar/mono-line": {
"title": "$:/core/ui/EditorToolbar/mono-line",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/mono-line",
"caption": "{{$:/language/Buttons/MonoLine/Caption}}",
"description": "{{$:/language/Buttons/MonoLine/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((mono-line))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"`\"\n\tsuffix=\"`\"\n/>\n"
},
"$:/core/ui/EditorToolbar/more-dropdown": {
"title": "$:/core/ui/EditorToolbar/more-dropdown",
"text": "\\define config-title()\n$:/config/EditorToolbarButtons/Visibility/$(toolbarItem)$\n\\end\n\n\\define conditional-button()\n<$list filter={{$(toolbarItem)$!!condition}} variable=\"condition\">\n<$transclude tiddler=\"$:/core/ui/EditTemplate/body/toolbar/button\" mode=\"inline\"/> <$transclude tiddler=<<toolbarItem>> field=\"description\"/>\n</$list>\n\\end\n\n<div class=\"tc-text-editor-toolbar-more\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/EditorToolbar]!has[draft.of]] -[[$:/core/ui/EditorToolbar/more]]\">\n<$reveal type=\"match\" state=<<config-visibility-title>> text=\"hide\" tag=\"div\">\n<<conditional-button>>\n</$reveal>\n</$list>\n</div>\n"
},
"$:/core/ui/EditorToolbar/more": {
"title": "$:/core/ui/EditorToolbar/more",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/down-arrow",
"caption": "{{$:/language/Buttons/More/Caption}}",
"description": "{{$:/language/Buttons/More/Hint}}",
"condition": "[<targetTiddler>]",
"dropdown": "$:/core/ui/EditorToolbar/more-dropdown",
"text": ""
},
"$:/core/ui/EditorToolbar/opacity-dropdown": {
"title": "$:/core/ui/EditorToolbar/opacity-dropdown",
"text": "\\define lingo-base() $:/language/Buttons/Opacity/\n\n\\define toolbar-opacity-inner()\n<$button tag=\"a\" tooltip=\"\"\"$(opacity)$\"\"\">\n\n<$action-setfield\n\t$tiddler=\"$:/config/BitmapEditor/Opacity\"\n\t$value=\"$(opacity)$\"\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<div style=\"display: inline-block; vertical-align: middle; background-color: $(current-paint-colour)$; opacity: $(opacity)$; width: 1em; height: 1em; border-radius: 50%;\"/>\n\n<span style=\"margin-left: 8px;\">\n\n<$text text=\"\"\"$(opacity)$\"\"\"/>\n\n<$reveal state=\"$:/config/BitmapEditor/Opacity\" type=\"match\" text=\"\"\"$(opacity)$\"\"\" tag=\"span\">\n\n<$entity entity=\" \"/>\n\n<$entity entity=\"✓\"/>\n\n</$reveal>\n\n</span>\n\n</$button>\n\\end\n\n\\define toolbar-opacity()\n''<<lingo Hint>>''\n\n<$list filter={{$:/config/BitmapEditor/Opacities}} variable=\"opacity\">\n\n<<toolbar-opacity-inner>>\n\n</$list>\n\\end\n\n<$set name=\"current-paint-colour\" value={{$:/config/BitmapEditor/Colour}}>\n\n<$set name=\"current-opacity\" value={{$:/config/BitmapEditor/Opacity}}>\n\n<<toolbar-opacity>>\n\n</$set>\n\n</$set>\n"
},
"$:/core/ui/EditorToolbar/opacity": {
"title": "$:/core/ui/EditorToolbar/opacity",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/opacity",
"caption": "{{$:/language/Buttons/Opacity/Caption}}",
"description": "{{$:/language/Buttons/Opacity/Hint}}",
"condition": "[<targetTiddler>is[image]]",
"dropdown": "$:/core/ui/EditorToolbar/opacity-dropdown",
"text": "<$text text={{$:/config/BitmapEditor/Opacity}}/>\n"
},
"$:/core/ui/EditorToolbar/paint-dropdown": {
"title": "$:/core/ui/EditorToolbar/paint-dropdown",
"text": "''{{$:/language/Buttons/Paint/Hint}}''\n\n<$macrocall $name=\"colour-picker\" actions=\"\"\"\n\n<$action-setfield\n\t$tiddler=\"$:/config/BitmapEditor/Colour\"\n\t$value=<<colour-picker-value>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n\"\"\"/>\n"
},
"$:/core/ui/EditorToolbar/paint": {
"title": "$:/core/ui/EditorToolbar/paint",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/paint",
"caption": "{{$:/language/Buttons/Paint/Caption}}",
"description": "{{$:/language/Buttons/Paint/Hint}}",
"condition": "[<targetTiddler>is[image]]",
"dropdown": "$:/core/ui/EditorToolbar/paint-dropdown",
"text": "\\define toolbar-paint()\n<div style=\"display: inline-block; vertical-align: middle; background-color: $(colour-picker-value)$; width: 1em; height: 1em; border-radius: 50%;\"/>\n\\end\n<$set name=\"colour-picker-value\" value={{$:/config/BitmapEditor/Colour}}>\n<<toolbar-paint>>\n</$set>\n"
},
"$:/core/ui/EditorToolbar/picture-dropdown": {
"title": "$:/core/ui/EditorToolbar/picture-dropdown",
"text": "\\define replacement-text()\n[img[$(imageTitle)$]]\n\\end\n\n''{{$:/language/Buttons/Picture/Hint}}''\n\n<$macrocall $name=\"image-picker\" actions=\"\"\"\n\n<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"replace-selection\"\n\ttext=<<replacement-text>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n\"\"\"/>\n"
},
"$:/core/ui/EditorToolbar/picture": {
"title": "$:/core/ui/EditorToolbar/picture",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/picture",
"caption": "{{$:/language/Buttons/Picture/Caption}}",
"description": "{{$:/language/Buttons/Picture/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((picture))",
"dropdown": "$:/core/ui/EditorToolbar/picture-dropdown",
"text": ""
},
"$:/core/ui/EditorToolbar/preview-type-dropdown": {
"title": "$:/core/ui/EditorToolbar/preview-type-dropdown",
"text": "\\define preview-type-button()\n<$button tag=\"a\">\n\n<$action-setfield $tiddler=\"$:/state/editpreviewtype\" $value=\"$(previewType)$\"/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<$transclude tiddler=<<previewType>> field=\"caption\" mode=\"inline\">\n\n<$view tiddler=<<previewType>> field=\"title\" mode=\"inline\"/>\n\n</$transclude> \n\n<$reveal tag=\"span\" state=\"$:/state/editpreviewtype\" type=\"match\" text=<<previewType>> default=\"$:/core/ui/EditTemplate/body/preview/output\">\n\n<$entity entity=\" \"/>\n\n<$entity entity=\"✓\"/>\n\n</$reveal>\n\n</$button>\n\\end\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/EditPreview]!has[draft.of]]\" variable=\"previewType\">\n\n<<preview-type-button>>\n\n</$list>\n"
},
"$:/core/ui/EditorToolbar/preview-type": {
"title": "$:/core/ui/EditorToolbar/preview-type",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/chevron-down",
"caption": "{{$:/language/Buttons/PreviewType/Caption}}",
"description": "{{$:/language/Buttons/PreviewType/Hint}}",
"condition": "[all[shadows+tiddlers]tag[$:/tags/EditPreview]!has[draft.of]butfirst[]limit[1]]",
"button-classes": "tc-text-editor-toolbar-item-adjunct",
"dropdown": "$:/core/ui/EditorToolbar/preview-type-dropdown"
},
"$:/core/ui/EditorToolbar/preview": {
"title": "$:/core/ui/EditorToolbar/preview",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/preview-open",
"custom-icon": "yes",
"caption": "{{$:/language/Buttons/Preview/Caption}}",
"description": "{{$:/language/Buttons/Preview/Hint}}",
"condition": "[<targetTiddler>]",
"button-classes": "tc-text-editor-toolbar-item-start-group",
"shortcuts": "((preview))",
"text": "<$reveal state=\"$:/state/showeditpreview\" type=\"match\" text=\"yes\" tag=\"span\">\n{{$:/core/images/preview-open}}\n<$action-setfield $tiddler=\"$:/state/showeditpreview\" $value=\"no\"/>\n</$reveal>\n<$reveal state=\"$:/state/showeditpreview\" type=\"nomatch\" text=\"yes\" tag=\"span\">\n{{$:/core/images/preview-closed}}\n<$action-setfield $tiddler=\"$:/state/showeditpreview\" $value=\"yes\"/>\n</$reveal>\n"
},
"$:/core/ui/EditorToolbar/quote": {
"title": "$:/core/ui/EditorToolbar/quote",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/quote",
"caption": "{{$:/language/Buttons/Quote/Caption}}",
"description": "{{$:/language/Buttons/Quote/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((quote))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-lines\"\n\tprefix=\"\n<<<\"\n\tsuffix=\"<<<\"\n/>\n"
},
"$:/core/ui/EditorToolbar/rotate-left": {
"title": "$:/core/ui/EditorToolbar/rotate-left",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/rotate-left",
"caption": "{{$:/language/Buttons/RotateLeft/Caption}}",
"description": "{{$:/language/Buttons/RotateLeft/Hint}}",
"condition": "[<targetTiddler>is[image]]",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-bitmap-operation\"\n\t$param=\"rotate-left\"\n/>\n"
},
"$:/core/ui/EditorToolbar/size-dropdown": {
"title": "$:/core/ui/EditorToolbar/size-dropdown",
"text": "\\define lingo-base() $:/language/Buttons/Size/\n\n\\define toolbar-button-size-preset(config-title)\n<$set name=\"width\" filter=\"$(sizePair)$ +[first[]]\">\n\n<$set name=\"height\" filter=\"$(sizePair)$ +[last[]]\">\n\n<$button tag=\"a\">\n\n<$action-setfield\n\t$tiddler=\"\"\"$config-title$/new-width\"\"\"\n\t$value=<<width>>\n/>\n\n<$action-setfield\n\t$tiddler=\"\"\"$config-title$/new-height\"\"\"\n\t$value=<<height>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=\"\"\"$config-title$/presets-popup\"\"\"\n/>\n\n<$text text=<<width>>/> × <$text text=<<height>>/>\n\n</$button>\n\n</$set>\n\n</$set>\n\\end\n\n\\define toolbar-button-size(config-title)\n''{{$:/language/Buttons/Size/Hint}}''\n\n<<lingo Caption/Width>> <$edit-text tag=\"input\" tiddler=\"\"\"$config-title$/new-width\"\"\" default=<<tv-bitmap-editor-width>> focus=\"true\" size=\"8\"/> <<lingo Caption/Height>> <$edit-text tag=\"input\" tiddler=\"\"\"$config-title$/new-height\"\"\" default=<<tv-bitmap-editor-height>> size=\"8\"/> <$button popup=\"\"\"$config-title$/presets-popup\"\"\" class=\"tc-btn-invisible tc-popup-keep\" style=\"width: auto; display: inline-block; background-colour: inherit;\" selectedClass=\"tc-selected\">\n{{$:/core/images/down-arrow}}\n</$button>\n\n<$reveal tag=\"span\" state=\"\"\"$config-title$/presets-popup\"\"\" type=\"popup\" position=\"belowleft\" animate=\"yes\">\n\n<div class=\"tc-drop-down tc-popup-keep\">\n\n<$list filter={{$:/config/BitmapEditor/ImageSizes}} variable=\"sizePair\">\n\n<$macrocall $name=\"toolbar-button-size-preset\" config-title=\"$config-title$\"/>\n\n</$list>\n\n</div>\n\n</$reveal>\n\n<$button>\n<$action-sendmessage\n\t$message=\"tm-edit-bitmap-operation\"\n\t$param=\"resize\"\n\twidth={{$config-title$/new-width}}\n\theight={{$config-title$/new-height}}\n/>\n<$action-deletetiddler\n\t$tiddler=\"\"\"$config-title$/new-width\"\"\"\n/>\n<$action-deletetiddler\n\t$tiddler=\"\"\"$config-title$/new-height\"\"\"\n/>\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n<<lingo Caption/Resize>>\n</$button>\n\\end\n\n<$macrocall $name=\"toolbar-button-size\" config-title=<<qualify \"$:/state/Size/\">>/>\n"
},
"$:/core/ui/EditorToolbar/size": {
"title": "$:/core/ui/EditorToolbar/size",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/size",
"caption": "{{$:/language/Buttons/Size/Caption}}",
"description": "{{$:/language/Buttons/Size/Hint}}",
"condition": "[<targetTiddler>is[image]]",
"dropdown": "$:/core/ui/EditorToolbar/size-dropdown",
"text": ""
},
"$:/core/ui/EditorToolbar/stamp-dropdown": {
"title": "$:/core/ui/EditorToolbar/stamp-dropdown",
"text": "\\define toolbar-button-stamp-inner()\n<$button tag=\"a\">\n\n<$list filter=\"[[$(snippetTitle)$]addsuffix[/prefix]is[missing]removesuffix[/prefix]addsuffix[/suffix]is[missing]]\">\n\n<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"replace-selection\"\n\ttext={{$(snippetTitle)$}}\n/>\n\n</$list>\n\n\n<$list filter=\"[[$(snippetTitle)$]addsuffix[/prefix]is[missing]removesuffix[/prefix]addsuffix[/suffix]!is[missing]] [[$(snippetTitle)$]addsuffix[/prefix]!is[missing]removesuffix[/prefix]addsuffix[/suffix]is[missing]] [[$(snippetTitle)$]addsuffix[/prefix]!is[missing]removesuffix[/prefix]addsuffix[/suffix]!is[missing]]\">\n\n<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix={{{ [[$(snippetTitle)$]addsuffix[/prefix]get[text]] }}}\nsuffix={{{ [[$(snippetTitle)$]addsuffix[/suffix]get[text]] }}}\n/>\n\n</$list>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<$transclude tiddler=<<snippetTitle>> field=\"caption\" mode=\"inline\">\n\n<$view tiddler=<<snippetTitle>> field=\"title\" />\n\n</$transclude>\n\n</$button>\n\\end\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TextEditor/Snippet]!has[draft.of]sort[caption]]\" variable=\"snippetTitle\">\n\n<<toolbar-button-stamp-inner>>\n\n</$list>\n\n----\n\n<$button tag=\"a\">\n\n<$action-sendmessage\n\t$message=\"tm-new-tiddler\"\n\ttags=\"$:/tags/TextEditor/Snippet\"\n\tcaption={{$:/language/Buttons/Stamp/New/Title}}\n\ttext={{$:/language/Buttons/Stamp/New/Text}}\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<em>\n\n<$text text={{$:/language/Buttons/Stamp/Caption/New}}/>\n\n</em>\n\n</$button>\n"
},
"$:/core/ui/EditorToolbar/stamp": {
"title": "$:/core/ui/EditorToolbar/stamp",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/stamp",
"caption": "{{$:/language/Buttons/Stamp/Caption}}",
"description": "{{$:/language/Buttons/Stamp/Hint}}",
"condition": "[<targetTiddler>type[]] [<targetTiddler>get[type]prefix[text/]] +[first[]]",
"shortcuts": "((stamp))",
"dropdown": "$:/core/ui/EditorToolbar/stamp-dropdown",
"text": ""
},
"$:/core/ui/EditorToolbar/strikethrough": {
"title": "$:/core/ui/EditorToolbar/strikethrough",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/strikethrough",
"caption": "{{$:/language/Buttons/Strikethrough/Caption}}",
"description": "{{$:/language/Buttons/Strikethrough/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((strikethrough))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"~~\"\n\tsuffix=\"~~\"\n/>\n"
},
"$:/core/ui/EditorToolbar/subscript": {
"title": "$:/core/ui/EditorToolbar/subscript",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/subscript",
"caption": "{{$:/language/Buttons/Subscript/Caption}}",
"description": "{{$:/language/Buttons/Subscript/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((subscript))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\",,\"\n\tsuffix=\",,\"\n/>\n"
},
"$:/core/ui/EditorToolbar/superscript": {
"title": "$:/core/ui/EditorToolbar/superscript",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/superscript",
"caption": "{{$:/language/Buttons/Superscript/Caption}}",
"description": "{{$:/language/Buttons/Superscript/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((superscript))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"^^\"\n\tsuffix=\"^^\"\n/>\n"
},
"$:/core/ui/EditorToolbar/transcludify": {
"title": "$:/core/ui/EditorToolbar/transcludify",
"caption": "{{$:/language/Buttons/Transcludify/Caption}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"description": "{{$:/language/Buttons/Transcludify/Hint}}",
"icon": "$:/core/images/transcludify",
"list-before": "$:/core/ui/EditorToolbar/mono-block",
"shortcuts": "((transcludify))",
"tags": "$:/tags/EditorToolbar",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"{{\"\n\tsuffix=\"}}\"\n/>\n"
},
"$:/core/ui/EditorToolbar/underline": {
"title": "$:/core/ui/EditorToolbar/underline",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/underline",
"caption": "{{$:/language/Buttons/Underline/Caption}}",
"description": "{{$:/language/Buttons/Underline/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((underline))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"__\"\n\tsuffix=\"__\"\n/>\n"
},
"$:/core/Filters/AllTags": {
"title": "$:/core/Filters/AllTags",
"tags": "$:/tags/Filter",
"filter": "[tags[]!is[system]sort[title]]",
"description": "{{$:/language/Filters/AllTags}}",
"text": ""
},
"$:/core/Filters/AllTiddlers": {
"title": "$:/core/Filters/AllTiddlers",
"tags": "$:/tags/Filter",
"filter": "[!is[system]sort[title]]",
"description": "{{$:/language/Filters/AllTiddlers}}",
"text": ""
},
"$:/core/Filters/Drafts": {
"title": "$:/core/Filters/Drafts",
"tags": "$:/tags/Filter",
"filter": "[has[draft.of]sort[title]]",
"description": "{{$:/language/Filters/Drafts}}",
"text": ""
},
"$:/core/Filters/Missing": {
"title": "$:/core/Filters/Missing",
"tags": "$:/tags/Filter",
"filter": "[all[missing]sort[title]]",
"description": "{{$:/language/Filters/Missing}}",
"text": ""
},
"$:/core/Filters/Orphans": {
"title": "$:/core/Filters/Orphans",
"tags": "$:/tags/Filter",
"filter": "[all[orphans]sort[title]]",
"description": "{{$:/language/Filters/Orphans}}",
"text": ""
},
"$:/core/Filters/OverriddenShadowTiddlers": {
"title": "$:/core/Filters/OverriddenShadowTiddlers",
"tags": "$:/tags/Filter",
"filter": "[is[shadow]]",
"description": "{{$:/language/Filters/OverriddenShadowTiddlers}}",
"text": ""
},
"$:/core/Filters/RecentSystemTiddlers": {
"title": "$:/core/Filters/RecentSystemTiddlers",
"tags": "$:/tags/Filter",
"filter": "[has[modified]!sort[modified]limit[50]]",
"description": "{{$:/language/Filters/RecentSystemTiddlers}}",
"text": ""
},
"$:/core/Filters/RecentTiddlers": {
"title": "$:/core/Filters/RecentTiddlers",
"tags": "$:/tags/Filter",
"filter": "[!is[system]has[modified]!sort[modified]limit[50]]",
"description": "{{$:/language/Filters/RecentTiddlers}}",
"text": ""
},
"$:/core/Filters/SessionTiddlers": {
"title": "$:/core/Filters/SessionTiddlers",
"tags": "$:/tags/Filter",
"filter": "[haschanged[]]",
"description": "{{$:/language/Filters/SessionTiddlers}}",
"text": ""
},
"$:/core/Filters/ShadowTiddlers": {
"title": "$:/core/Filters/ShadowTiddlers",
"tags": "$:/tags/Filter",
"filter": "[all[shadows]sort[title]]",
"description": "{{$:/language/Filters/ShadowTiddlers}}",
"text": ""
},
"$:/core/Filters/StoryList": {
"title": "$:/core/Filters/StoryList",
"tags": "$:/tags/Filter",
"filter": "[list[$:/StoryList]] -$:/AdvancedSearch",
"description": "{{$:/language/Filters/StoryList}}",
"text": ""
},
"$:/core/Filters/SystemTags": {
"title": "$:/core/Filters/SystemTags",
"tags": "$:/tags/Filter",
"filter": "[all[shadows+tiddlers]tags[]is[system]sort[title]]",
"description": "{{$:/language/Filters/SystemTags}}",
"text": ""
},
"$:/core/Filters/SystemTiddlers": {
"title": "$:/core/Filters/SystemTiddlers",
"tags": "$:/tags/Filter",
"filter": "[is[system]sort[title]]",
"description": "{{$:/language/Filters/SystemTiddlers}}",
"text": ""
},
"$:/core/Filters/TypedTiddlers": {
"title": "$:/core/Filters/TypedTiddlers",
"tags": "$:/tags/Filter",
"filter": "[!is[system]has[type]each[type]sort[type]] -[type[text/vnd.tiddlywiki]]",
"description": "{{$:/language/Filters/TypedTiddlers}}",
"text": ""
},
"$:/core/ui/ImportListing": {
"title": "$:/core/ui/ImportListing",
"text": "\\define lingo-base() $:/language/Import/\n\n\\define messageField()\nmessage-$(payloadTiddler)$\n\\end\n\n\\define selectionField()\nselection-$(payloadTiddler)$\n\\end\n\n\\define previewPopupState()\n$(currentTiddler)$!!popup-$(payloadTiddler)$\n\\end\n\n\\define select-all-actions()\n<$list filter=\"[all[current]plugintiddlers[]sort[title]]\" variable=\"payloadTiddler\">\n<$action-setfield $field={{{ [<payloadTiddler>addprefix[selection-]] }}} $value={{$:/state/import/select-all}}/>\n</$list>\n\\end\n\n<table>\n<tbody>\n<tr>\n<th>\n<$checkbox tiddler=\"$:/state/import/select-all\" field=\"text\" checked=\"checked\" unchecked=\"unchecked\" default=\"checked\" actions=<<select-all-actions>>>\n<<lingo Listing/Select/Caption>>\n</$checkbox>\n</th>\n<th>\n<<lingo Listing/Title/Caption>>\n</th>\n<th>\n<<lingo Listing/Status/Caption>>\n</th>\n</tr>\n<$list filter=\"[all[current]plugintiddlers[]sort[title]]\" variable=\"payloadTiddler\">\n<tr>\n<td>\n<$checkbox field=<<selectionField>> checked=\"checked\" unchecked=\"unchecked\" default=\"checked\"/>\n</td>\n<td>\n<$reveal type=\"nomatch\" stateTitle=<<previewPopupState>> text=\"yes\" tag=\"div\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" setTitle=<<previewPopupState>> setTo=\"yes\">\n{{$:/core/images/right-arrow}} <$text text=<<payloadTiddler>>/>\n</$button>\n</$reveal>\n<$reveal type=\"match\" stateTitle=<<previewPopupState>> text=\"yes\" tag=\"div\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" setTitle=<<previewPopupState>> setTo=\"no\">\n{{$:/core/images/down-arrow}} <$text text=<<payloadTiddler>>/>\n</$button>\n</$reveal>\n</td>\n<td>\n<$view field=<<messageField>>/>\n</td>\n</tr>\n<tr>\n<td colspan=\"3\">\n<$reveal type=\"match\" text=\"yes\" stateTitle=<<previewPopupState>> tag=\"div\">\n<$list filter=\"[{$:/state/importpreviewtype}has[text]]\" variable=\"listItem\" emptyMessage={{$:/core/ui/ImportPreviews/Text}}>\n<$transclude tiddler={{$:/state/importpreviewtype}}/>\n</$list>\n</$reveal>\n</td>\n</tr>\n</$list>\n</tbody>\n</table>\n"
},
"$:/core/ui/ImportPreviews/Diff": {
"title": "$:/core/ui/ImportPreviews/Diff",
"tags": "$:/tags/ImportPreview",
"caption": "{{$:/language/Import/Listing/Preview/Diff}}",
"text": "<$macrocall $name=\"compareTiddlerText\" sourceTiddlerTitle=<<payloadTiddler>> destTiddlerTitle=<<currentTiddler>> destSubTiddlerTitle=<<payloadTiddler>>/>\n"
},
"$:/core/ui/ImportPreviews/DiffFields": {
"title": "$:/core/ui/ImportPreviews/DiffFields",
"tags": "$:/tags/ImportPreview",
"caption": "{{$:/language/Import/Listing/Preview/DiffFields}}",
"text": "<$macrocall $name=\"compareTiddlers\" sourceTiddlerTitle=<<payloadTiddler>> destTiddlerTitle=<<currentTiddler>> destSubTiddlerTitle=<<payloadTiddler>> exclude=\"text\"/>\n"
},
"$:/core/ui/ImportPreviews/Fields": {
"title": "$:/core/ui/ImportPreviews/Fields",
"tags": "$:/tags/ImportPreview",
"caption": "{{$:/language/Import/Listing/Preview/Fields}}",
"text": "<table class=\"tc-view-field-table\">\n<tbody>\n<$list filter=\"[<payloadTiddler>subtiddlerfields<currentTiddler>sort[]] -text\" variable=\"fieldName\">\n<tr class=\"tc-view-field\">\n<td class=\"tc-view-field-name\">\n<$text text=<<fieldName>>/>\n</td>\n<td class=\"tc-view-field-value\">\n<$view field=<<fieldName>> tiddler=<<currentTiddler>> subtiddler=<<payloadTiddler>>/>\n</td>\n</tr>\n</$list>\n</tbody>\n</table>\n"
},
"$:/core/ui/ImportPreviews/Text": {
"title": "$:/core/ui/ImportPreviews/Text",
"tags": "$:/tags/ImportPreview",
"caption": "{{$:/language/Import/Listing/Preview/Text}}",
"text": "<$transclude tiddler=<<currentTiddler>> subtiddler=<<payloadTiddler>> mode=\"block\"/>\n"
},
"$:/core/ui/ImportPreviews/TextRaw": {
"title": "$:/core/ui/ImportPreviews/TextRaw",
"tags": "$:/tags/ImportPreview",
"caption": "{{$:/language/Import/Listing/Preview/TextRaw}}",
"text": "<pre><code><$view tiddler=<<currentTiddler>> subtiddler=<<payloadTiddler>> /></code></pre>"
},
"$:/core/ui/KeyboardShortcuts/advanced-search": {
"title": "$:/core/ui/KeyboardShortcuts/advanced-search",
"tags": "$:/tags/KeyboardShortcut",
"key": "((advanced-search))",
"text": "<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\">\n<$action-navigate $to=\"$:/AdvancedSearch\"/>\n<$action-sendmessage $message=\"tm-focus-selector\" $param=\"\"\"[data-tiddler-title=\"$:/AdvancedSearch\"] .tc-search input\"\"\"/>\n</$navigator>\n"
},
"$:/core/ui/KeyboardShortcuts/new-image": {
"title": "$:/core/ui/KeyboardShortcuts/new-image",
"tags": "$:/tags/KeyboardShortcut",
"key": "((new-image))",
"text": "<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\" openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\n{{$:/core/ui/Actions/new-image}}\n</$navigator>\n"
},
"$:/core/ui/KeyboardShortcuts/new-journal": {
"title": "$:/core/ui/KeyboardShortcuts/new-journal",
"tags": "$:/tags/KeyboardShortcut",
"key": "((new-journal))",
"text": "<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\" openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\n{{$:/core/ui/Actions/new-journal}}\n</$navigator>\n"
},
"$:/core/ui/KeyboardShortcuts/new-tiddler": {
"title": "$:/core/ui/KeyboardShortcuts/new-tiddler",
"tags": "$:/tags/KeyboardShortcut",
"key": "((new-tiddler))",
"text": "<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\" openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\n{{$:/core/ui/Actions/new-tiddler}}\n</$navigator>\n"
},
"$:/core/ui/KeyboardShortcuts/sidebar-search": {
"title": "$:/core/ui/KeyboardShortcuts/sidebar-search",
"tags": "$:/tags/KeyboardShortcut",
"key": "((sidebar-search))",
"text": "<$action-sendmessage $message=\"tm-focus-selector\" $param=\".tc-search input\"/>\n"
},
"$:/core/ui/KeyboardShortcut/toggle-sidebar": {
"title": "$:/core/ui/KeyboardShortcut/toggle-sidebar",
"tags": "$:/tags/KeyboardShortcut",
"key": "((toggle-sidebar))",
"text": "<$list filter=\"[[$:/state/sidebar]is[missing]] [{$:/state/sidebar}removeprefix[yes]]\" emptyMessage=\"\"\"\n<$action-setfield $tiddler=\"$:/state/sidebar\" text=\"yes\"/>\n\"\"\">\n<$action-setfield $tiddler=\"$:/state/sidebar\" text=\"no\"/>\n</$list>\n"
},
"$:/core/ui/ListItemTemplate": {
"title": "$:/core/ui/ListItemTemplate",
"text": "<div class=\"tc-menu-list-item\">\n<$link />\n</div>"
},
"$:/Manager/ItemMain/Fields": {
"title": "$:/Manager/ItemMain/Fields",
"tags": "$:/tags/Manager/ItemMain",
"caption": "{{$:/language/Manager/Item/Fields}}",
"text": "<table>\n<tbody>\n<$list filter=\"[all[current]fields[]sort[title]] -text\" template=\"$:/core/ui/TiddlerFieldTemplate\" variable=\"listItem\"/>\n</tbody>\n</table>\n"
},
"$:/Manager/ItemMain/RawText": {
"title": "$:/Manager/ItemMain/RawText",
"tags": "$:/tags/Manager/ItemMain",
"caption": "{{$:/language/Manager/Item/RawText}}",
"text": "<pre><code><$view/></code></pre>\n"
},
"$:/Manager/ItemMain/WikifiedText": {
"title": "$:/Manager/ItemMain/WikifiedText",
"tags": "$:/tags/Manager/ItemMain",
"caption": "{{$:/language/Manager/Item/WikifiedText}}",
"text": "<$transclude mode=\"block\"/>\n"
},
"$:/Manager/ItemSidebar/Colour": {
"title": "$:/Manager/ItemSidebar/Colour",
"tags": "$:/tags/Manager/ItemSidebar",
"caption": "{{$:/language/Manager/Item/Colour}}",
"text": "\\define swatch-styles()\nheight: 1em;\nbackground-color: $(colour)$\n\\end\n\n<$vars colour={{!!color}}>\n<p style=<<swatch-styles>>/>\n</$vars>\n<p>\n<$edit-text field=\"color\" tag=\"input\" type=\"color\"/> / <$edit-text field=\"color\" tag=\"input\" type=\"text\" size=\"9\"/>\n</p>\n"
},
"$:/Manager/ItemSidebar/Icon": {
"title": "$:/Manager/ItemSidebar/Icon",
"tags": "$:/tags/Manager/ItemSidebar",
"caption": "{{$:/language/Manager/Item/Icon}}",
"text": "<p>\n<div class=\"tc-manager-icon-editor\">\n<$button popup=<<qualify \"$:/state/popup/image-picker\">> class=\"tc-btn-invisible\">\n<$transclude tiddler={{!!icon}}>\n{{$:/language/Manager/Item/Icon/None}}\n</$transclude>\n</$button>\n<div class=\"tc-block-dropdown-wrapper\" style=\"position: static;\">\n<$reveal state=<<qualify \"$:/state/popup/image-picker\">> type=\"nomatch\" text=\"\" default=\"\" tag=\"div\" class=\"tc-popup\">\n<div class=\"tc-block-dropdown tc-popup-keep\" style=\"width: 80%; left: 10%; right: 10%; padding: 0.5em;\">\n<$macrocall $name=\"image-picker-include-tagged-images\" actions=\"\"\"\n<$action-setfield $field=\"icon\" $value=<<imageTitle>>/>\n<$action-deletetiddler $tiddler=<<qualify \"$:/state/popup/image-picker\">>/>\n\"\"\"/>\n</div>\n</$reveal>\n</div>\n</div>\n</p>\n"
},
"$:/Manager/ItemSidebar/Tags": {
"title": "$:/Manager/ItemSidebar/Tags",
"tags": "$:/tags/Manager/ItemSidebar",
"caption": "{{$:/language/Manager/Item/Tags}}",
"text": "\\define tag-checkbox-actions()\n<$action-listops\n\t$tiddler=\"$:/config/Manager/RecentTags\"\n\t$subfilter=\"[<tag>] [list[$:/config/Manager/RecentTags]] +[limit[12]]\"\n/>\n\\end\n\n\\define tag-picker-actions()\n<<tag-checkbox-actions>>\n<$action-listops\n\t$tiddler=<<currentTiddler>>\n\t$field=\"tags\"\n\t$subfilter=\"[<tag>] [all[current]tags[]]\"\n/>\n\\end\n\n<p>\n<$list filter=\"[all[current]tags[]] [list[$:/config/Manager/RecentTags]] +[sort[title]] \" variable=\"tag\">\n<div>\n<$checkbox tiddler=<<currentTiddler>> tag=<<tag>> actions=<<tag-checkbox-actions>>>\n<$macrocall $name=\"tag-pill\" tag=<<tag>>/>\n</$checkbox>\n</div>\n</$list>\n</p>\n<p>\n<$macrocall $name=\"tag-picker\" actions=<<tag-picker-actions>>/>\n</p>\n"
},
"$:/Manager/ItemSidebar/Tools": {
"title": "$:/Manager/ItemSidebar/Tools",
"tags": "$:/tags/Manager/ItemSidebar",
"caption": "{{$:/language/Manager/Item/Tools}}",
"text": "<p>\n<$button to=<<currentTiddler>>>{{$:/core/images/link}} open</$button>\n</p>\n<p>\n<$button message=\"tm-edit-tiddler\" param=<<currentTiddler>>>{{$:/core/images/edit-button}} edit</$button>\n</p>\n"
},
"$:/Manager": {
"title": "$:/Manager",
"icon": "$:/core/images/list",
"color": "#bbb",
"text": "\\define lingo-base() $:/language/Manager/\n\n\\define list-item-content-item()\n<div class=\"tc-manager-list-item-content-item\">\n\t<$vars state-title=\"\"\"$:/state/popup/manager/item/$(listItem)$\"\"\">\n\t\t<$reveal state=<<state-title>> type=\"match\" text=\"show\" default=\"show\" tag=\"div\">\n\t\t\t<$button set=<<state-title>> setTo=\"hide\" class=\"tc-btn-invisible tc-manager-list-item-content-item-heading\">\n\t\t\t\t{{$:/core/images/down-arrow}} <$transclude tiddler=<<listItem>> field=\"caption\"/>\n\t\t\t</$button>\n\t\t</$reveal>\n\t\t<$reveal state=<<state-title>> type=\"nomatch\" text=\"show\" default=\"show\" tag=\"div\">\n\t\t\t<$button set=<<state-title>> setTo=\"show\" class=\"tc-btn-invisible tc-manager-list-item-content-item-heading\">\n\t\t\t\t{{$:/core/images/right-arrow}} <$transclude tiddler=<<listItem>> field=\"caption\"/>\n\t\t\t</$button>\n\t\t</$reveal>\n\t\t<$reveal state=<<state-title>> type=\"match\" text=\"show\" default=\"show\" tag=\"div\" class=\"tc-manager-list-item-content-item-body\">\n\t\t\t<$transclude tiddler=<<listItem>>/>\n\t\t</$reveal>\n\t</$vars>\n</div>\n\\end\n\n<div class=\"tc-manager-wrapper\">\n\t<div class=\"tc-manager-controls\">\n\t\t<div class=\"tc-manager-control\">\n\t\t\t<<lingo Controls/Show/Prompt>> <$select tiddler=\"$:/config/Manager/Show\" default=\"tiddlers\">\n\t\t\t\t<option value=\"tiddlers\"><<lingo Controls/Show/Option/Tiddlers>></option>\n\t\t\t\t<option value=\"tags\"><<lingo Controls/Show/Option/Tags>></option>\n\t\t\t</$select>\n\t\t</div>\n\t\t<div class=\"tc-manager-control\">\n\t\t\t<<lingo Controls/Search/Prompt>> <$edit-text tiddler=\"$:/config/Manager/Filter\" tag=\"input\" default=\"\" placeholder={{$:/language/Manager/Controls/Search/Placeholder}}/>\n\t\t</div>\n\t\t<div class=\"tc-manager-control\">\n\t\t\t<<lingo Controls/FilterByTag/Prompt>> <$select tiddler=\"$:/config/Manager/Tag\" default=\"\">\n\t\t\t\t<option value=\"\"><<lingo Controls/FilterByTag/None>></option>\n\t\t\t\t<$list filter=\"[!is{$:/config/Manager/System}tags[]!is[system]sort[title]]\" variable=\"tag\">\n\t\t\t\t\t<option value=<<tag>>><$text text=<<tag>>/></option>\n\t\t\t\t</$list>\n\t\t\t</$select>\n\t\t</div>\n\t\t<div class=\"tc-manager-control\">\n\t\t\t<<lingo Controls/Sort/Prompt>> <$select tiddler=\"$:/config/Manager/Sort\" default=\"title\">\n\t\t\t\t<optgroup label=\"Common\">\n\t\t\t\t\t<$list filter=\"title modified modifier created creator created\" variable=\"field\">\n\t\t\t\t\t\t<option value=<<field>>><$text text=<<field>>/></option>\n\t\t\t\t\t</$list>\n\t\t\t\t</optgroup>\n\t\t\t\t<optgroup label=\"All\">\n\t\t\t\t\t<$list filter=\"[all{$:/config/Manager/Show}!is{$:/config/Manager/System}fields[]sort[title]] -title -modified -modifier -created -creator -created\" variable=\"field\">\n\t\t\t\t\t\t<option value=<<field>>><$text text=<<field>>/></option>\n\t\t\t\t\t</$list>\n\t\t\t\t</optgroup>\n\t\t\t</$select>\n\t\t\t<$checkbox tiddler=\"$:/config/Manager/Order\" field=\"text\" checked=\"reverse\" unchecked=\"forward\" default=\"forward\">\n\t\t\t\t<<lingo Controls/Order/Prompt>>\n\t\t\t</$checkbox>\n\t\t</div>\n\t\t<div class=\"tc-manager-control\">\n\t\t\t<$checkbox tiddler=\"$:/config/Manager/System\" field=\"text\" checked=\"\" unchecked=\"system\" default=\"system\">\n\t\t\t\t{{$:/language/SystemTiddlers/Include/Prompt}}\n\t\t\t</$checkbox>\n\t\t</div>\n\t</div>\n\t<div class=\"tc-manager-list\">\n\t\t<$list filter=\"[all{$:/config/Manager/Show}!is{$:/config/Manager/System}search{$:/config/Manager/Filter}tag:strict{$:/config/Manager/Tag}sort{$:/config/Manager/Sort}order{$:/config/Manager/Order}]\">\n\t\t\t<$vars transclusion=<<currentTiddler>>>\n\t\t\t\t<div style=\"tc-manager-list-item\">\n\t\t\t\t\t<$button popup=<<qualify \"$:/state/manager/popup\">> class=\"tc-btn-invisible tc-manager-list-item-heading\" selectedClass=\"tc-manager-list-item-heading-selected\">\n\t\t\t\t\t\t<$text text=<<currentTiddler>>/>\n\t\t\t\t\t</$button>\n\t\t\t\t\t<$reveal state=<<qualify \"$:/state/manager/popup\">> type=\"nomatch\" text=\"\" default=\"\" tag=\"div\" class=\"tc-manager-list-item-content tc-popup-handle\">\n\t\t\t\t\t\t<div class=\"tc-manager-list-item-content-tiddler\">\n\t\t\t\t\t\t\t<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Manager/ItemMain]!has[draft.of]]\" variable=\"listItem\">\n\t\t\t\t\t\t\t\t<<list-item-content-item>>\n\t\t\t\t\t\t\t</$list>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class=\"tc-manager-list-item-content-sidebar\">\n\t\t\t\t\t\t\t<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Manager/ItemSidebar]!has[draft.of]]\" variable=\"listItem\">\n\t\t\t\t\t\t\t\t<<list-item-content-item>>\n\t\t\t\t\t\t\t</$list>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</$reveal>\n\t\t\t\t</div>\n\t\t\t</$vars>\n\t\t</$list>\n\t</div>\n</div>\n"
},
"$:/core/ui/MissingTemplate": {
"title": "$:/core/ui/MissingTemplate",
"text": "<div class=\"tc-tiddler-missing\">\n<$button popup=<<qualify \"$:/state/popup/missing\">> class=\"tc-btn-invisible tc-missing-tiddler-label\">\n<$view field=\"title\" format=\"text\" />\n</$button>\n<$reveal state=<<qualify \"$:/state/popup/missing\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n<$transclude tiddler=\"$:/core/ui/ListItemTemplate\"/>\n<hr>\n<$list filter=\"[all[current]backlinks[]sort[title]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n</div>\n</$reveal>\n</div>\n"
},
"$:/core/ui/MoreSideBar/All": {
"title": "$:/core/ui/MoreSideBar/All",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/All/Caption}}",
"text": "<$list filter={{$:/core/Filters/AllTiddlers!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n"
},
"$:/core/ui/MoreSideBar/Drafts": {
"title": "$:/core/ui/MoreSideBar/Drafts",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/Drafts/Caption}}",
"text": "<$list filter={{$:/core/Filters/Drafts!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n"
},
"$:/core/ui/MoreSideBar/Explorer": {
"title": "$:/core/ui/MoreSideBar/Explorer",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/Explorer/Caption}}",
"text": "<<tree \"$:/\">>\n"
},
"$:/core/ui/MoreSideBar/Missing": {
"title": "$:/core/ui/MoreSideBar/Missing",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/Missing/Caption}}",
"text": "<$list filter={{$:/core/Filters/Missing!!filter}} template=\"$:/core/ui/MissingTemplate\"/>\n"
},
"$:/core/ui/MoreSideBar/Orphans": {
"title": "$:/core/ui/MoreSideBar/Orphans",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/Orphans/Caption}}",
"text": "<$list filter={{$:/core/Filters/Orphans!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n"
},
"$:/core/ui/MoreSideBar/Plugins": {
"title": "$:/core/ui/MoreSideBar/Plugins",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/ControlPanel/Plugins/Caption}}",
"text": "\n{{$:/language/ControlPanel/Plugins/Installed/Hint}}\n\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/MoreSideBar/Plugins]!has[draft.of]]\" \"$:/core/ui/MoreSideBar/Plugins/Plugins\">>\n"
},
"$:/core/ui/MoreSideBar/Recent": {
"title": "$:/core/ui/MoreSideBar/Recent",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/Recent/Caption}}",
"text": "<$macrocall $name=\"timeline\" format={{$:/language/RecentChanges/DateFormat}}/>\n"
},
"$:/core/ui/MoreSideBar/Shadows": {
"title": "$:/core/ui/MoreSideBar/Shadows",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/Shadows/Caption}}",
"text": "<$list filter={{$:/core/Filters/ShadowTiddlers!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n"
},
"$:/core/ui/MoreSideBar/System": {
"title": "$:/core/ui/MoreSideBar/System",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/System/Caption}}",
"text": "<$list filter={{$:/core/Filters/SystemTiddlers!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n"
},
"$:/core/ui/MoreSideBar/Tags": {
"title": "$:/core/ui/MoreSideBar/Tags",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/Tags/Caption}}",
"text": "<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"\">\n\n{{$:/core/ui/Buttons/tag-manager}}\n\n</$set>\n\n</$set>\n\n</$set>\n\n<$list filter={{$:/core/Filters/AllTags!!filter}}>\n\n<$transclude tiddler=\"$:/core/ui/TagTemplate\"/>\n\n</$list>\n\n<hr class=\"tc-untagged-separator\">\n\n{{$:/core/ui/UntaggedTemplate}}\n"
},
"$:/core/ui/MoreSideBar/Types": {
"title": "$:/core/ui/MoreSideBar/Types",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/Types/Caption}}",
"text": "<$list filter={{$:/core/Filters/TypedTiddlers!!filter}}>\n<div class=\"tc-menu-list-item\">\n<$view field=\"type\"/>\n<$list filter=\"[type{!!type}!is[system]sort[title]]\">\n<div class=\"tc-menu-list-subitem\">\n<$link to={{!!title}}><$view field=\"title\"/></$link>\n</div>\n</$list>\n</div>\n</$list>\n"
},
"$:/core/ui/MoreSideBar/Plugins/Languages": {
"title": "$:/core/ui/MoreSideBar/Plugins/Languages",
"tags": "$:/tags/MoreSideBar/Plugins",
"caption": "{{$:/language/ControlPanel/Plugins/Languages/Caption}}",
"text": "<$list filter=\"[!has[draft.of]plugin-type[language]sort[description]]\" template=\"$:/core/ui/PluginListItemTemplate\" emptyMessage={{$:/language/ControlPanel/Plugins/Empty/Hint}}/>\n"
},
"$:/core/ui/MoreSideBar/Plugins/Plugins": {
"title": "$:/core/ui/MoreSideBar/Plugins/Plugins",
"tags": "$:/tags/MoreSideBar/Plugins",
"caption": "{{$:/language/ControlPanel/Plugins/Plugins/Caption}}",
"text": "<$list filter=\"[!has[draft.of]plugin-type[plugin]sort[description]]\" template=\"$:/core/ui/PluginListItemTemplate\" emptyMessage={{$:/language/ControlPanel/Plugins/Empty/Hint}}>>/>\n"
},
"$:/core/ui/MoreSideBar/Plugins/Theme": {
"title": "$:/core/ui/MoreSideBar/Plugins/Theme",
"tags": "$:/tags/MoreSideBar/Plugins",
"caption": "{{$:/language/ControlPanel/Plugins/Themes/Caption}}",
"text": "<$list filter=\"[!has[draft.of]plugin-type[theme]sort[description]]\" template=\"$:/core/ui/PluginListItemTemplate\" emptyMessage={{$:/language/ControlPanel/Plugins/Empty/Hint}}/>\n"
},
"$:/core/ui/Buttons/advanced-search": {
"title": "$:/core/ui/Buttons/advanced-search",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/advanced-search-button}} {{$:/language/Buttons/AdvancedSearch/Caption}}",
"description": "{{$:/language/Buttons/AdvancedSearch/Hint}}",
"text": "\\whitespace trim\n\\define control-panel-button(class)\n<$button to=\"$:/AdvancedSearch\" tooltip={{$:/language/Buttons/AdvancedSearch/Hint}} aria-label={{$:/language/Buttons/AdvancedSearch/Caption}} class=\"\"\"$(tv-config-toolbar-class)$ $class$\"\"\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/advanced-search-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/AdvancedSearch/Caption}}/></span>\n</$list>\n</$button>\n\\end\n\n<$list filter=\"[list[$:/StoryList]] +[field:title[$:/AdvancedSearch]]\" emptyMessage=<<control-panel-button>>>\n<<control-panel-button \"tc-selected\">>\n</$list>\n"
},
"$:/core/ui/Buttons/close-all": {
"title": "$:/core/ui/Buttons/close-all",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/close-all-button}} {{$:/language/Buttons/CloseAll/Caption}}",
"description": "{{$:/language/Buttons/CloseAll/Hint}}",
"text": "<$button message=\"tm-close-all-tiddlers\" tooltip={{$:/language/Buttons/CloseAll/Hint}} aria-label={{$:/language/Buttons/CloseAll/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/close-all-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/CloseAll/Caption}}/></span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/control-panel": {
"title": "$:/core/ui/Buttons/control-panel",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/options-button}} {{$:/language/Buttons/ControlPanel/Caption}}",
"description": "{{$:/language/Buttons/ControlPanel/Hint}}",
"text": "\\whitespace trim\n\\define control-panel-button(class)\n<$button to=\"$:/ControlPanel\" tooltip={{$:/language/Buttons/ControlPanel/Hint}} aria-label={{$:/language/Buttons/ControlPanel/Caption}} class=\"\"\"$(tv-config-toolbar-class)$ $class$\"\"\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/options-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/ControlPanel/Caption}}/></span>\n</$list>\n</$button>\n\\end\n\n<$list filter=\"[list[$:/StoryList]] +[field:title[$:/ControlPanel]]\" emptyMessage=<<control-panel-button>>>\n<<control-panel-button \"tc-selected\">>\n</$list>\n"
},
"$:/core/ui/Buttons/encryption": {
"title": "$:/core/ui/Buttons/encryption",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/locked-padlock}} {{$:/language/Buttons/Encryption/Caption}}",
"description": "{{$:/language/Buttons/Encryption/Hint}}",
"text": "\\whitespace trim\n<$reveal type=\"match\" state=\"$:/isEncrypted\" text=\"yes\">\n<$button message=\"tm-clear-password\" tooltip={{$:/language/Buttons/Encryption/ClearPassword/Hint}} aria-label={{$:/language/Buttons/Encryption/ClearPassword/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/locked-padlock}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Encryption/ClearPassword/Caption}}/></span>\n</$list>\n</$button>\n</$reveal>\n<$reveal type=\"nomatch\" state=\"$:/isEncrypted\" text=\"yes\">\n<$button message=\"tm-set-password\" tooltip={{$:/language/Buttons/Encryption/SetPassword/Hint}} aria-label={{$:/language/Buttons/Encryption/SetPassword/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/unlocked-padlock}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Encryption/SetPassword/Caption}}/></span>\n</$list>\n</$button>\n</$reveal>\n"
},
"$:/core/ui/Buttons/export-page": {
"title": "$:/core/ui/Buttons/export-page",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/export-button}} {{$:/language/Buttons/ExportPage/Caption}}",
"description": "{{$:/language/Buttons/ExportPage/Hint}}",
"text": "<$macrocall $name=\"exportButton\" exportFilter=\"[!is[system]sort[title]]\" lingoBase=\"$:/language/Buttons/ExportPage/\"/>"
},
"$:/core/ui/Buttons/fold-all": {
"title": "$:/core/ui/Buttons/fold-all",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/fold-all-button}} {{$:/language/Buttons/FoldAll/Caption}}",
"description": "{{$:/language/Buttons/FoldAll/Hint}}",
"text": "<$button tooltip={{$:/language/Buttons/FoldAll/Hint}} aria-label={{$:/language/Buttons/FoldAll/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-fold-all-tiddlers\" $param=<<currentTiddler>> foldedStatePrefix=\"$:/state/folded/\"/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\" variable=\"listItem\">\n{{$:/core/images/fold-all-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/FoldAll/Caption}}/></span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/full-screen": {
"title": "$:/core/ui/Buttons/full-screen",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/full-screen-button}} {{$:/language/Buttons/FullScreen/Caption}}",
"description": "{{$:/language/Buttons/FullScreen/Hint}}",
"text": "<$button message=\"tm-full-screen\" tooltip={{$:/language/Buttons/FullScreen/Hint}} aria-label={{$:/language/Buttons/FullScreen/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/full-screen-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/FullScreen/Caption}}/></span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/home": {
"title": "$:/core/ui/Buttons/home",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/home-button}} {{$:/language/Buttons/Home/Caption}}",
"description": "{{$:/language/Buttons/Home/Hint}}",
"text": "<$button message=\"tm-home\" tooltip={{$:/language/Buttons/Home/Hint}} aria-label={{$:/language/Buttons/Home/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/home-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Home/Caption}}/></span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/import": {
"title": "$:/core/ui/Buttons/import",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/import-button}} {{$:/language/Buttons/Import/Caption}}",
"description": "{{$:/language/Buttons/Import/Hint}}",
"text": "<div class=\"tc-file-input-wrapper\">\n<$button tooltip={{$:/language/Buttons/Import/Hint}} aria-label={{$:/language/Buttons/Import/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/import-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Import/Caption}}/></span>\n</$list>\n</$button>\n<$browse tooltip={{$:/language/Buttons/Import/Hint}}/>\n</div>"
},
"$:/core/ui/Buttons/language": {
"title": "$:/core/ui/Buttons/language",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/globe}} {{$:/language/Buttons/Language/Caption}}",
"description": "{{$:/language/Buttons/Language/Hint}}",
"text": "\\whitespace trim\n\\define flag-title()\n$(languagePluginTitle)$/icon\n\\end\n<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/popup/language\">> tooltip={{$:/language/Buttons/Language/Hint}} aria-label={{$:/language/Buttons/Language/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n<span class=\"tc-image-button\">\n<$set name=\"languagePluginTitle\" value={{$:/language}}>\n<$image source=<<flag-title>>/>\n</$set>\n</span>\n</$list>\n<$text text=\" \"/>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Language/Caption}}/></span>\n</$list>\n</$button>\n</span>\n<$reveal state=<<qualify \"$:/state/popup/language\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n{{$:/snippets/languageswitcher}}\n</div>\n</$reveal>\n"
},
"$:/core/ui/Buttons/manager": {
"title": "$:/core/ui/Buttons/manager",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/list}} {{$:/language/Buttons/Manager/Caption}}",
"description": "{{$:/language/Buttons/Manager/Hint}}",
"text": "\\whitespace trim\n\\define manager-button(class)\n<$button to=\"$:/Manager\" tooltip={{$:/language/Buttons/Manager/Hint}} aria-label={{$:/language/Buttons/Manager/Caption}} class=\"\"\"$(tv-config-toolbar-class)$ $class$\"\"\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/list}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Manager/Caption}}/></span>\n</$list>\n</$button>\n\\end\n\n<$list filter=\"[list[$:/StoryList]] +[field:title[$:/Manager]]\" emptyMessage=<<manager-button>>>\n<<manager-button \"tc-selected\">>\n</$list>\n"
},
"$:/core/ui/Buttons/more-page-actions": {
"title": "$:/core/ui/Buttons/more-page-actions",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/down-arrow}} {{$:/language/Buttons/More/Caption}}",
"description": "{{$:/language/Buttons/More/Hint}}",
"text": "\\define config-title()\n$:/config/PageControlButtons/Visibility/$(listItem)$\n\\end\n<$button popup=<<qualify \"$:/state/popup/more\">> tooltip={{$:/language/Buttons/More/Hint}} aria-label={{$:/language/Buttons/More/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/down-arrow}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/More/Caption}}/></span>\n</$list>\n</$button><$reveal state=<<qualify \"$:/state/popup/more\">> type=\"popup\" position=\"below\" animate=\"yes\">\n\n<div class=\"tc-drop-down\">\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"tc-btn-invisible\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/PageControls]!has[draft.of]] -[[$:/core/ui/Buttons/more-page-actions]]\" variable=\"listItem\">\n\n<$reveal type=\"match\" state=<<config-title>> text=\"hide\">\n\n<$set name=\"tv-config-toolbar-class\" filter=\"[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]\">\n\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n\n</$set>\n\n</$reveal>\n\n</$list>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</div>\n\n</$reveal>"
},
"$:/core/ui/Buttons/new-image": {
"title": "$:/core/ui/Buttons/new-image",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/new-image-button}} {{$:/language/Buttons/NewImage/Caption}}",
"description": "{{$:/language/Buttons/NewImage/Hint}}",
"text": "\\whitespace trim\n<$button tooltip={{$:/language/Buttons/NewImage/Hint}} aria-label={{$:/language/Buttons/NewImage/Caption}} class=<<tv-config-toolbar-class>> actions={{$:/core/ui/Actions/new-image}}>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/new-image-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/NewImage/Caption}}/></span>\n</$list>\n</$button>\n"
},
"$:/core/ui/Buttons/new-journal": {
"title": "$:/core/ui/Buttons/new-journal",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/new-journal-button}} {{$:/language/Buttons/NewJournal/Caption}}",
"description": "{{$:/language/Buttons/NewJournal/Hint}}",
"text": "\\whitespace trim\n\\define journalButton()\n<$button tooltip={{$:/language/Buttons/NewJournal/Hint}} aria-label={{$:/language/Buttons/NewJournal/Caption}} class=<<tv-config-toolbar-class>> actions={{$:/core/ui/Actions/new-journal}}>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/new-journal-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/NewJournal/Caption}}/></span>\n</$list>\n</$button>\n\\end\n<<journalButton>>\n"
},
"$:/core/ui/Buttons/new-tiddler": {
"title": "$:/core/ui/Buttons/new-tiddler",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/new-button}} {{$:/language/Buttons/NewTiddler/Caption}}",
"description": "{{$:/language/Buttons/NewTiddler/Hint}}",
"text": "\\whitespace trim\n<$button actions={{$:/core/ui/Actions/new-tiddler}} tooltip={{$:/language/Buttons/NewTiddler/Hint}} aria-label={{$:/language/Buttons/NewTiddler/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/new-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/NewTiddler/Caption}}/></span>\n</$list>\n</$button>\n"
},
"$:/core/ui/Buttons/palette": {
"title": "$:/core/ui/Buttons/palette",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/palette}} {{$:/language/Buttons/Palette/Caption}}",
"description": "{{$:/language/Buttons/Palette/Hint}}",
"text": "\\whitespace trim\n<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/popup/palette\">> tooltip={{$:/language/Buttons/Palette/Hint}} aria-label={{$:/language/Buttons/Palette/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/palette}}\n</$list>\n<$text text=\" \"/>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Palette/Caption}}/></span>\n</$list>\n</$button>\n</span>\n<$reveal state=<<qualify \"$:/state/popup/palette\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\" style=\"font-size:0.7em;\">\n{{$:/snippets/paletteswitcher}}\n</div>\n</$reveal>\n"
},
"$:/core/ui/Buttons/print": {
"title": "$:/core/ui/Buttons/print",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/print-button}} {{$:/language/Buttons/Print/Caption}}",
"description": "{{$:/language/Buttons/Print/Hint}}",
"text": "<$button message=\"tm-print\" tooltip={{$:/language/Buttons/Print/Hint}} aria-label={{$:/language/Buttons/Print/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/print-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Print/Caption}}/></span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/refresh": {
"title": "$:/core/ui/Buttons/refresh",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/refresh-button}} {{$:/language/Buttons/Refresh/Caption}}",
"description": "{{$:/language/Buttons/Refresh/Hint}}",
"text": "<$button message=\"tm-browser-refresh\" tooltip={{$:/language/Buttons/Refresh/Hint}} aria-label={{$:/language/Buttons/Refresh/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/refresh-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Refresh/Caption}}/></span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/save-wiki": {
"title": "$:/core/ui/Buttons/save-wiki",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/save-button}} {{$:/language/Buttons/SaveWiki/Caption}}",
"description": "{{$:/language/Buttons/SaveWiki/Hint}}",
"text": "<$button tooltip={{$:/language/Buttons/SaveWiki/Hint}} aria-label={{$:/language/Buttons/SaveWiki/Caption}} class=<<tv-config-toolbar-class>>>\n<$wikify name=\"site-title\" text={{$:/config/SaveWikiButton/Filename}}>\n<$action-sendmessage $message=\"tm-save-wiki\" $param={{$:/config/SaveWikiButton/Template}} filename=<<site-title>>/>\n</$wikify>\n<span class=\"tc-dirty-indicator\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/save-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/SaveWiki/Caption}}/></span>\n</$list>\n</span>\n</$button>"
},
"$:/core/ui/Buttons/storyview": {
"title": "$:/core/ui/Buttons/storyview",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/storyview-classic}} {{$:/language/Buttons/StoryView/Caption}}",
"description": "{{$:/language/Buttons/StoryView/Hint}}",
"text": "\\whitespace trim\n\\define icon()\n$:/core/images/storyview-$(storyview)$\n\\end\n<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/popup/storyview\">> tooltip={{$:/language/Buttons/StoryView/Hint}} aria-label={{$:/language/Buttons/StoryView/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n<$set name=\"storyview\" value={{$:/view}}>\n<$transclude tiddler=<<icon>>/>\n</$set>\n</$list>\n<$text text=\" \"/>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/StoryView/Caption}}/></span>\n</$list>\n</$button>\n</span>\n<$reveal state=<<qualify \"$:/state/popup/storyview\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n{{$:/snippets/viewswitcher}}\n</div>\n</$reveal>\n"
},
"$:/core/ui/Buttons/tag-manager": {
"title": "$:/core/ui/Buttons/tag-manager",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/tag-button}} {{$:/language/Buttons/TagManager/Caption}}",
"description": "{{$:/language/Buttons/TagManager/Hint}}",
"text": "\\whitespace trim\n\\define control-panel-button(class)\n<$button to=\"$:/TagManager\" tooltip={{$:/language/Buttons/TagManager/Hint}} aria-label={{$:/language/Buttons/TagManager/Caption}} class=\"\"\"$(tv-config-toolbar-class)$ $class$\"\"\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/tag-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/TagManager/Caption}}/></span>\n</$list>\n</$button>\n\\end\n\n<$list filter=\"[list[$:/StoryList]] +[field:title[$:/TagManager]]\" emptyMessage=<<control-panel-button>>>\n<<control-panel-button \"tc-selected\">>\n</$list>\n"
},
"$:/core/ui/Buttons/theme": {
"title": "$:/core/ui/Buttons/theme",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/theme-button}} {{$:/language/Buttons/Theme/Caption}}",
"description": "{{$:/language/Buttons/Theme/Hint}}",
"text": "\\whitespace trim\n<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/popup/theme\">> tooltip={{$:/language/Buttons/Theme/Hint}} aria-label={{$:/language/Buttons/Theme/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/theme-button}}\n</$list>\n<$text text=\" \"/>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Theme/Caption}}/></span>\n</$list>\n</$button>\n</span>\n<$reveal state=<<qualify \"$:/state/popup/theme\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n<$linkcatcher to=\"$:/theme\">\n{{$:/snippets/themeswitcher}}\n</$linkcatcher>\n</div>\n</$reveal>\n"
},
"$:/core/ui/Buttons/timestamp": {
"title": "$:/core/ui/Buttons/timestamp",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/timestamp-on}} {{$:/language/Buttons/Timestamp/Caption}}",
"description": "{{$:/language/Buttons/Timestamp/Hint}}",
"text": "\\whitespace trim\n<$reveal type=\"nomatch\" state=\"$:/config/TimestampDisable\" text=\"yes\">\n<$button tooltip={{$:/language/Buttons/Timestamp/On/Hint}} aria-label={{$:/language/Buttons/Timestamp/On/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-setfield $tiddler=\"$:/config/TimestampDisable\" $value=\"yes\"/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/timestamp-on}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Timestamp/On/Caption}}/></span>\n</$list>\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=\"$:/config/TimestampDisable\" text=\"yes\">\n<$button tooltip={{$:/language/Buttons/Timestamp/Off/Hint}} aria-label={{$:/language/Buttons/Timestamp/Off/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-setfield $tiddler=\"$:/config/TimestampDisable\" $value=\"no\"/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/timestamp-off}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Timestamp/Off/Caption}}/></span>\n</$list>\n</$button>\n</$reveal>\n"
},
"$:/core/ui/Buttons/unfold-all": {
"title": "$:/core/ui/Buttons/unfold-all",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/unfold-all-button}} {{$:/language/Buttons/UnfoldAll/Caption}}",
"description": "{{$:/language/Buttons/UnfoldAll/Hint}}",
"text": "<$button tooltip={{$:/language/Buttons/UnfoldAll/Hint}} aria-label={{$:/language/Buttons/UnfoldAll/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-unfold-all-tiddlers\" $param=<<currentTiddler>> foldedStatePrefix=\"$:/state/folded/\"/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\" variable=\"listItem\">\n{{$:/core/images/unfold-all-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/UnfoldAll/Caption}}/></span>\n</$list>\n</$button>"
},
"$:/core/ui/PageTemplate/pagecontrols": {
"title": "$:/core/ui/PageTemplate/pagecontrols",
"text": "\\whitespace trim\n\\define config-title()\n$:/config/PageControlButtons/Visibility/$(listItem)$\n\\end\n<div class=\"tc-page-controls\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/PageControls]!has[draft.of]]\" variable=\"listItem\">\n<$set name=\"hidden\" value=<<config-title>>>\n<$list filter=\"[<hidden>!text[hide]]\" storyview=\"pop\" variable=\"ignore\">\n<$set name=\"tv-config-toolbar-class\" filter=\"[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]\">\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n</$set>\n</$list>\n</$set>\n</$list>\n</div>\n"
},
"$:/core/ui/PageStylesheet": {
"title": "$:/core/ui/PageStylesheet",
"text": "\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n\n<$set name=\"currentTiddler\" value={{$:/language}}>\n\n<$set name=\"languageTitle\" value={{!!name}}>\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Stylesheet]!has[draft.of]]\">\n<$transclude mode=\"block\"/>\n</$list>\n\n</$set>\n\n</$set>\n"
},
"$:/core/ui/PageTemplate/alerts": {
"title": "$:/core/ui/PageTemplate/alerts",
"tags": "$:/tags/PageTemplate",
"text": "<div class=\"tc-alerts\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Alert]!has[draft.of]]\" template=\"$:/core/ui/AlertTemplate\" storyview=\"pop\"/>\n\n</div>\n"
},
"$:/core/ui/PageTemplate/drafts": {
"title": "$:/core/ui/PageTemplate/drafts",
"tags": "$:/tags/PageTemplate",
"text": "\\whitespace trim\n<$reveal state=\"$:/status/IsReadOnly\" type=\"nomatch\" text=\"yes\" tag=\"div\" class=\"tc-drafts-list\">\n<$list filter=\"[has[draft.of]!sort[modified]] -[list[$:/StoryList]]\">\n<$link>\n{{$:/core/images/edit-button}} <$text text=<<currentTiddler>>/>\n</$link>\n</$list>\n</$reveal>\n"
},
"$:/core/ui/PageTemplate/pluginreloadwarning": {
"title": "$:/core/ui/PageTemplate/pluginreloadwarning",
"tags": "$:/tags/PageTemplate",
"text": "\\define lingo-base() $:/language/\n\n<$list filter=\"[{$:/status/RequireReloadDueToPluginChange}match[yes]]\">\n\n<$reveal type=\"nomatch\" state=\"$:/temp/HidePluginWarning\" text=\"yes\">\n\n<div class=\"tc-plugin-reload-warning\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"\">\n\n<<lingo PluginReloadWarning>> <$button set=\"$:/temp/HidePluginWarning\" setTo=\"yes\" class=\"tc-btn-invisible\">{{$:/core/images/close-button}}</$button>\n\n</$set>\n\n</div>\n\n</$reveal>\n\n</$list>\n"
},
"$:/core/ui/PageTemplate/sidebar": {
"title": "$:/core/ui/PageTemplate/sidebar",
"tags": "$:/tags/PageTemplate",
"text": "\\whitespace trim\n\\define config-title()\n$:/config/SideBarSegments/Visibility/$(listItem)$\n\\end\n\n<$scrollable fallthrough=\"no\" class=\"tc-sidebar-scrollable\">\n\n<div class=\"tc-sidebar-header\">\n\n<$reveal state=\"$:/state/sidebar\" type=\"match\" text=\"yes\" default=\"yes\" retain=\"yes\" animate=\"yes\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SideBarSegment]!has[draft.of]]\" variable=\"listItem\">\n\n<$reveal type=\"nomatch\" state=<<config-title>> text=\"hide\" tag=\"div\">\n\n<$transclude tiddler=<<listItem>> mode=\"block\"/>\n\n</$reveal>\n\n</$list>\n\n</$reveal>\n\n</div>\n\n</$scrollable>\n"
},
"$:/core/ui/PageTemplate/story": {
"title": "$:/core/ui/PageTemplate/story",
"tags": "$:/tags/PageTemplate",
"text": "\\whitespace trim\n<section class=\"tc-story-river\">\n\n<section class=\"story-backdrop\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/AboveStory]!has[draft.of]]\">\n\n<$transclude/>\n\n</$list>\n\n</section>\n\n<$list filter=\"[list[$:/StoryList]]\" history=\"$:/HistoryList\" template={{$:/config/ui/ViewTemplate}} editTemplate={{$:/config/ui/EditTemplate}} storyview={{$:/view}} emptyMessage={{$:/config/EmptyStoryMessage}}/>\n\n<section class=\"story-frontdrop\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/BelowStory]!has[draft.of]]\">\n\n<$transclude/>\n\n</$list>\n\n</section>\n\n</section>\n"
},
"$:/core/ui/PageTemplate/topleftbar": {
"title": "$:/core/ui/PageTemplate/topleftbar",
"tags": "$:/tags/PageTemplate",
"text": "<span class=\"tc-topbar tc-topbar-left\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TopLeftBar]!has[draft.of]]\" variable=\"listItem\" storyview=\"pop\">\n\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n\n</$list>\n\n</span>\n"
},
"$:/core/ui/PageTemplate/toprightbar": {
"title": "$:/core/ui/PageTemplate/toprightbar",
"tags": "$:/tags/PageTemplate",
"text": "<span class=\"tc-topbar tc-topbar-right\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TopRightBar]!has[draft.of]]\" variable=\"listItem\" storyview=\"pop\">\n\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n\n</$list>\n\n</span>\n"
},
"$:/core/ui/PageTemplate": {
"title": "$:/core/ui/PageTemplate",
"text": "\\whitespace trim\n\\define containerClasses()\ntc-page-container tc-page-view-$(storyviewTitle)$ tc-language-$(languageTitle)$\n\\end\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n\n<$set name=\"tv-config-toolbar-icons\" value={{$:/config/Toolbar/Icons}}>\n\n<$set name=\"tv-config-toolbar-text\" value={{$:/config/Toolbar/Text}}>\n\n<$set name=\"tv-config-toolbar-class\" value={{$:/config/Toolbar/ButtonClass}}>\n\n<$set name=\"tv-enable-drag-and-drop\" value={{$:/config/DragAndDrop/Enable}}>\n\n<$set name=\"tv-show-missing-links\" value={{$:/config/MissingLinks}}>\n\n<$set name=\"storyviewTitle\" value={{$:/view}}>\n\n<$set name=\"languageTitle\" value={{{ [{$:/language}get[name]] }}}>\n\n<div class=<<containerClasses>>>\n\n<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\" openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\n\n<$dropzone enable=<<tv-enable-drag-and-drop>>>\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/PageTemplate]!has[draft.of]]\" variable=\"listItem\">\n\n<$transclude tiddler=<<listItem>>/>\n\n</$list>\n\n</$dropzone>\n\n</$navigator>\n\n</div>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n"
},
"$:/PaletteManager": {
"title": "$:/PaletteManager",
"text": "\\define lingo-base() $:/language/ControlPanel/Palette/Editor/\n\\define describePaletteColour(colour)\n<$transclude tiddler=\"$:/language/Docs/PaletteColours/$colour$\"><$text text=\"$colour$\"/></$transclude>\n\\end\n\\define edit-colour-placeholder()\n edit $(colourName)$\n\\end\n\\define colour-tooltip(showhide) $showhide$ editor for $(newColourName)$ \n\\define resolve-colour(macrocall)\n\\import $:/core/macros/utils\n\\whitespace trim\n<$wikify name=\"name\" text=\"\"\"$macrocall$\"\"\">\n<<name>>\n</$wikify>\n\\end\n\\define delete-colour-index-actions() <$action-setfield $index=<<colourName>>/>\n\\define palette-manager-colour-row-segment()\n\\whitespace trim\n<$edit-text index=<<colourName>> tag=\"input\" placeholder=<<edit-colour-placeholder>> default=\"\"/>\n<br>\n<$edit-text index=<<colourName>> type=\"color\" tag=\"input\" class=\"tc-palette-manager-colour-input\"/>\n<$list filter=\"[<currentTiddler>getindex<colourName>removeprefix[<<]removesuffix[>>]] [<currentTiddler>getindex<colourName>removeprefix[<$]removesuffix[/>]]\" variable=\"ignore\">\n<$set name=\"state\" value={{{ [[$:/state/palettemanager/]addsuffix<currentTiddler>addsuffix[/]addsuffix<colourName>] }}}>\n<$wikify name=\"newColourName\" text=\"\"\"<$macrocall $name=\"resolve-colour\" macrocall={{{ [<currentTiddler>getindex<colourName>] }}}/>\"\"\">\n<$reveal state=<<state>> type=\"nomatch\" text=\"show\">\n<$button tooltip=<<colour-tooltip show>> aria-label=<<colour-tooltip show>> class=\"tc-btn-invisible\" set=<<state>> setTo=\"show\">{{$:/core/images/down-arrow}} <$text text=<<newColourName>>/></$button><br>\n</$reveal>\n<$reveal state=<<state>> type=\"match\" text=\"show\">\n<$button tooltip=<<colour-tooltip hide>> aria-label=<<colour-tooltip show>> class=\"tc-btn-invisible\" actions=\"\"\"<$action-deletetiddler $tiddler=<<state>>/>\"\"\">{{$:/core/images/up-arrow}} <$text text=<<newColourName>>/></$button><br>\n</$reveal>\n<$reveal state=<<state>> type=\"match\" text=\"show\">\n<$set name=\"colourName\" value=<<newColourName>>>\n<br>\n<<palette-manager-colour-row-segment>>\n<br><br>\n</$set>\n</$reveal>\n</$wikify>\n</$set>\n</$list>\n\\end\n\\define palette-manager-colour-row()\n\\whitespace trim\n<tr>\n<td>\n<span style=\"float:right;\">\n<$button tooltip=<<lingo Delete/Hint>> aria-label=<<lingo Delete/Hint>> class=\"tc-btn-invisible\" actions=<<delete-colour-index-actions>>>\n{{$:/core/images/delete-button}}</$button>\n</span>\n''<$macrocall $name=\"describePaletteColour\" colour=<<colourName>>/>''<br/>\n<$macrocall $name=\"colourName\" $output=\"text/plain\"/>\n</td>\n<td>\n<<palette-manager-colour-row-segment>>\n</td>\n</tr>\n\\end\n\\define palette-manager-table()\n\\whitespace trim\n<table>\n<tbody>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Palette]indexes[]]\" variable=\"colourName\">\n<$list filter=\"[<currentTiddler>indexes[]removeprefix<colourName>suffix[]]\" variable=\"ignore\" emptyMessage=\"\"\"\n<$list filter=\"[{$:/state/palettemanager/showexternal}removeprefix[yes]suffix[]]\" variable=\"ignore\">\n<<palette-manager-colour-row>>\n</$list>\n\"\"\">\n<<palette-manager-colour-row>>\n</$list>\n</$list>\n</tbody>\n</table>\n\\end\n<$set name=\"currentTiddler\" value={{$:/palette}}>\n\n<<lingo Prompt>> <$link to={{$:/palette}}><$macrocall $name=\"currentTiddler\" $output=\"text/plain\"/></$link>\n\n<$list filter=\"[all[current]is[shadow]is[tiddler]]\" variable=\"listItem\">\n<<lingo Prompt/Modified>>\n<$button message=\"tm-delete-tiddler\" param={{$:/palette}}><<lingo Reset/Caption>></$button>\n</$list>\n\n<$list filter=\"[all[current]is[shadow]!is[tiddler]]\" variable=\"listItem\">\n<<lingo Clone/Prompt>>\n</$list>\n\n<$button message=\"tm-new-tiddler\" param={{$:/palette}}><<lingo Clone/Caption>></$button>\n\n<$checkbox tiddler=\"$:/state/palettemanager/showexternal\" field=\"text\" checked=\"yes\" unchecked=\"no\"> <<lingo Names/External/Show>></$checkbox>\n\n<<palette-manager-table>>\n"
},
"$:/core/ui/PluginInfo": {
"title": "$:/core/ui/PluginInfo",
"text": "\\define localised-info-tiddler-title()\n$(currentTiddler)$/$(languageTitle)$/$(currentTab)$\n\\end\n\\define info-tiddler-title()\n$(currentTiddler)$/$(currentTab)$\n\\end\n\\define default-tiddler-title()\n$:/core/ui/PluginInfo/Default/$(currentTab)$\n\\end\n<$transclude tiddler=<<localised-info-tiddler-title>> mode=\"block\">\n<$transclude tiddler=<<currentTiddler>> subtiddler=<<localised-info-tiddler-title>> mode=\"block\">\n<$transclude tiddler=<<currentTiddler>> subtiddler=<<info-tiddler-title>> mode=\"block\">\n<$transclude tiddler=<<default-tiddler-title>> mode=\"block\">\n{{$:/language/ControlPanel/Plugin/NoInfoFound/Hint}}\n</$transclude>\n</$transclude>\n</$transclude>\n</$transclude>\n"
},
"$:/core/ui/PluginInfo/Default/contents": {
"title": "$:/core/ui/PluginInfo/Default/contents",
"text": "\\define lingo-base() $:/language/TiddlerInfo/Advanced/PluginInfo/\n<<lingo Hint>>\n<ul>\n<$list filter=\"[all[current]plugintiddlers[]sort[title]]\" emptyMessage=<<lingo Empty/Hint>>>\n<li>\n<$link />\n</li>\n</$list>\n</ul>\n"
},
"$:/core/ui/PluginListItemTemplate": {
"title": "$:/core/ui/PluginListItemTemplate",
"text": "<div class=\"tc-menu-list-item\">\n<$link to={{!!title}}><$view field=\"description\"><$view field=\"title\"/></$view></$link>\n</div>"
},
"$:/core/ui/SearchResults": {
"title": "$:/core/ui/SearchResults",
"text": "<div class=\"tc-search-results\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]butfirst[]limit[1]]\" emptyMessage=\"\"\"\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]]\">\n<$transclude mode=\"block\"/>\n</$list>\n\"\"\">\n\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]]\" default={{$:/config/SearchResults/Default}}/>\n\n</$list>\n\n</div>\n"
},
"$:/core/ui/SideBar/More": {
"title": "$:/core/ui/SideBar/More",
"tags": "$:/tags/SideBar",
"caption": "{{$:/language/SideBar/More/Caption}}",
"text": "<div class=\"tc-more-sidebar\">\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/MoreSideBar]!has[draft.of]]\" default={{$:/config/DefaultMoreSidebarTab}} state=\"$:/state/tab/moresidebar\" class=\"tc-vertical tc-sidebar-tabs-more\" />\n</div>"
},
"$:/core/ui/SideBar/Open": {
"title": "$:/core/ui/SideBar/Open",
"tags": "$:/tags/SideBar",
"caption": "{{$:/language/SideBar/Open/Caption}}",
"text": "\\whitespace trim\n\\define lingo-base() $:/language/CloseAll/\n\n\\define drop-actions()\n<$action-listops $tiddler=<<tv-story-list>> $subfilter=\"+[insertbefore:currentTiddler<actionTiddler>]\"/>\n\\end\n\n\\define placeholder()\n<div class=\"tc-droppable-placeholder\"/>\n\\end\n\n\\define droppable-item(button)\n\\whitespace trim\n<$droppable actions=<<drop-actions>> enable=<<tv-allow-drag-and-drop>>>\n<<placeholder>>\n<div>\n$button$\n</div>\n</$droppable>\n\\end\n\n<div class=\"tc-sidebar-tab-open\">\n<$list filter=\"[list<tv-story-list>]\" history=<<tv-history-list>> storyview=\"pop\">\n<div class=\"tc-sidebar-tab-open-item\">\n<$macrocall $name=\"droppable-item\" button=\"\"\"<$button message=\"tm-close-tiddler\" tooltip={{$:/language/Buttons/Close/Hint}} aria-label={{$:/language/Buttons/Close/Caption}} class=\"tc-btn-invisible tc-btn-mini\">{{$:/core/images/close-button}}</$button> <$link to={{!!title}}><$view field=\"title\"/></$link>\"\"\"/>\n</div>\n</$list>\n<$tiddler tiddler=\"\">\n<div>\n<$macrocall $name=\"droppable-item\" button=\"\"\"<$button message=\"tm-close-all-tiddlers\" class=\"tc-btn-invisible tc-btn-mini\"><<lingo Button>></$button>\"\"\"/>\n</div>\n</$tiddler>\n</div>\n"
},
"$:/core/ui/SideBar/Recent": {
"title": "$:/core/ui/SideBar/Recent",
"tags": "$:/tags/SideBar",
"caption": "{{$:/language/SideBar/Recent/Caption}}",
"text": "<$macrocall $name=\"timeline\" format={{$:/language/RecentChanges/DateFormat}}/>\n"
},
"$:/core/ui/SideBar/Tools": {
"title": "$:/core/ui/SideBar/Tools",
"tags": "$:/tags/SideBar",
"caption": "{{$:/language/SideBar/Tools/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/\n\\define config-title()\n$:/config/PageControlButtons/Visibility/$(listItem)$\n\\end\n\n<<lingo Basics/Version/Prompt>> <<version>>\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/PageControls]!has[draft.of]]\" variable=\"listItem\">\n\n<div style=\"position:relative;\" class={{{ [<listItem>encodeuricomponent[]addprefix[tc-btn-]] }}}>\n\n<$checkbox tiddler=<<config-title>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\"/> <$transclude tiddler=<<listItem>>/> <i class=\"tc-muted\"><$transclude tiddler=<<listItem>> field=\"description\"/></i>\n\n</div>\n\n</$list>\n\n</$set>\n\n</$set>\n\n</$set>\n"
},
"$:/core/ui/SideBarLists": {
"title": "$:/core/ui/SideBarLists",
"text": "<$transclude tiddler=\"$:/core/ui/SideBarSegments/search\"/>\n\n<$transclude tiddler=\"$:/core/ui/SideBarSegments/tabs\"/>\n\n"
},
"$:/core/ui/SideBarSegments/page-controls": {
"title": "$:/core/ui/SideBarSegments/page-controls",
"tags": "$:/tags/SideBarSegment",
"text": "{{||$:/core/ui/PageTemplate/pagecontrols}}\n"
},
"$:/core/ui/SideBarSegments/search": {
"title": "$:/core/ui/SideBarSegments/search",
"tags": "$:/tags/SideBarSegment",
"text": "\\whitespace trim\n<div class=\"tc-sidebar-lists tc-sidebar-search\">\n\n<$set name=\"searchTiddler\" value=\"$:/temp/search\">\n<div class=\"tc-search\">\n<$edit-text tiddler=\"$:/temp/search\" type=\"search\" tag=\"input\" focus={{$:/config/Search/AutoFocus}} focusPopup=<<qualify \"$:/state/popup/search-dropdown\">> class=\"tc-popup-handle\"/>\n<$reveal state=\"$:/temp/search\" type=\"nomatch\" text=\"\">\n<$button tooltip={{$:/language/Buttons/AdvancedSearch/Hint}} aria-label={{$:/language/Buttons/AdvancedSearch/Caption}} class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/advancedsearch\" text={{$:/temp/search}}/>\n<$action-setfield $tiddler=\"$:/temp/search\" text=\"\"/>\n<$action-navigate $to=\"$:/AdvancedSearch\"/>\n{{$:/core/images/advanced-search-button}}\n</$button>\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/search\" text=\"\" />\n{{$:/core/images/close-button}}\n</$button>\n<$button popup=<<qualify \"$:/state/popup/search-dropdown\">> class=\"tc-btn-invisible\">\n{{$:/core/images/down-arrow}}\n<$list filter=\"[{$:/temp/search}minlength{$:/config/Search/MinLength}limit[1]]\" variable=\"listItem\">\n<$set name=\"searchTerm\" value={{{ [<searchTiddler>get[text]] }}}>\n<$set name=\"resultCount\" value=\"\"\"<$count filter=\"[!is[system]search<searchTerm>]\"/>\"\"\">\n{{$:/language/Search/Matches}}\n</$set>\n</$set>\n</$list>\n</$button>\n</$reveal>\n<$reveal state=\"$:/temp/search\" type=\"match\" text=\"\">\n<$button to=\"$:/AdvancedSearch\" tooltip={{$:/language/Buttons/AdvancedSearch/Hint}} aria-label={{$:/language/Buttons/AdvancedSearch/Caption}} class=\"tc-btn-invisible\">\n{{$:/core/images/advanced-search-button}}\n</$button>\n</$reveal>\n</div>\n\n<$reveal tag=\"div\" class=\"tc-block-dropdown-wrapper\" state=\"$:/temp/search\" type=\"nomatch\" text=\"\">\n\n<$reveal tag=\"div\" class=\"tc-block-dropdown tc-search-drop-down tc-popup-handle\" state=<<qualify \"$:/state/popup/search-dropdown\">> type=\"nomatch\" text=\"\" default=\"\">\n\n<$list filter=\"[{$:/temp/search}minlength{$:/config/Search/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n\n{{$:/core/ui/SearchResults}}\n\n</$list>\n\n</$reveal>\n\n</$reveal>\n\n</$set>\n\n</div>\n"
},
"$:/core/ui/SideBarSegments/site-subtitle": {
"title": "$:/core/ui/SideBarSegments/site-subtitle",
"tags": "$:/tags/SideBarSegment",
"text": "<div class=\"tc-site-subtitle\">\n\n<$transclude tiddler=\"$:/SiteSubtitle\" mode=\"inline\"/>\n\n</div>\n"
},
"$:/core/ui/SideBarSegments/site-title": {
"title": "$:/core/ui/SideBarSegments/site-title",
"tags": "$:/tags/SideBarSegment",
"text": "<h1 class=\"tc-site-title\">\n\n<$transclude tiddler=\"$:/SiteTitle\" mode=\"inline\"/>\n\n</h1>\n"
},
"$:/core/ui/SideBarSegments/tabs": {
"title": "$:/core/ui/SideBarSegments/tabs",
"tags": "$:/tags/SideBarSegment",
"text": "<div class=\"tc-sidebar-lists tc-sidebar-tabs\">\n\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/SideBar]!has[draft.of]]\" default={{$:/config/DefaultSidebarTab}} state=\"$:/state/tab/sidebar\" class=\"tc-sidebar-tabs-main\"/>\n\n</div>\n"
},
"$:/TagManager": {
"title": "$:/TagManager",
"icon": "$:/core/images/tag-button",
"color": "#bbb",
"text": "\\define lingo-base() $:/language/TagManager/\n\\define iconEditorTab(type)\n\\whitespace trim\n<$link to=\"\"><<lingo Icons/None>></$link>\n<$list filter=\"[all[shadows+tiddlers]is[image]] [all[shadows+tiddlers]tag[$:/tags/Image]] -[type[application/pdf]] +[sort[title]] +[$type$is[system]]\">\n<$link to={{!!title}}>\n<$transclude/> <$view field=\"title\"/>\n</$link>\n</$list>\n\\end\n\\define iconEditor(title)\n\\whitespace trim\n<div class=\"tc-drop-down-wrapper\">\n<$button popupTitle={{{ [[$:/state/popup/icon/]addsuffix<__title__>] }}} class=\"tc-btn-invisible tc-btn-dropdown\">{{$:/core/images/down-arrow}}</$button>\n<$reveal stateTitle={{{ [[$:/state/popup/icon/]addsuffix<__title__>] }}} type=\"popup\" position=\"belowleft\" text=\"\" default=\"\">\n<div class=\"tc-drop-down\">\n<$linkcatcher actions=\"\"\"<$action-setfield $tiddler=<<__title__>> icon=<<navigateTo>>/>\"\"\">\n<<iconEditorTab type:\"!\">>\n<hr/>\n<<iconEditorTab type:\"\">>\n</$linkcatcher>\n</div>\n</$reveal>\n</div>\n\\end\n\\define toggleButton(state)\n\\whitespace trim\n<$reveal stateTitle=<<__state__>> type=\"match\" text=\"closed\" default=\"closed\">\n<$button setTitle=<<__state__>> setTo=\"open\" class=\"tc-btn-invisible tc-btn-dropdown\" selectedClass=\"tc-selected\">\n{{$:/core/images/info-button}}\n</$button>\n</$reveal>\n<$reveal stateTitle=<<__state__>> type=\"match\" text=\"open\" default=\"closed\">\n<$button setTitle=<<__state__>> setTo=\"closed\" class=\"tc-btn-invisible tc-btn-dropdown\" selectedClass=\"tc-selected\">\n{{$:/core/images/info-button}}\n</$button>\n</$reveal>\n\\end\n\\whitespace trim\n<table class=\"tc-tag-manager-table\">\n<tbody>\n<tr>\n<th><<lingo Colour/Heading>></th>\n<th class=\"tc-tag-manager-tag\"><<lingo Tag/Heading>></th>\n<th><<lingo Count/Heading>></th>\n<th><<lingo Icon/Heading>></th>\n<th><<lingo Info/Heading>></th>\n</tr>\n<$list filter=\"[tags[]!is[system]sort[title]]\">\n<tr>\n<td><$edit-text field=\"color\" tag=\"input\" type=\"color\"/></td>\n<td>{{||$:/core/ui/TagTemplate}}</td>\n<td><$count filter=\"[all[current]tagging[]]\"/></td>\n<td>\n<$macrocall $name=\"iconEditor\" title={{!!title}}/>\n</td>\n<td>\n<$macrocall $name=\"toggleButton\" state={{{ [[$:/state/tag-manager/]addsuffix<currentTiddler>] }}} /> \n</td>\n</tr>\n<tr>\n<td></td>\n<td colspan=\"4\">\n<$reveal stateTitle={{{ [[$:/state/tag-manager/]addsuffix<currentTiddler>] }}} type=\"match\" text=\"open\" default=\"\">\n<table>\n<tbody>\n<tr><td><<lingo Colour/Heading>></td><td><$edit-text field=\"color\" tag=\"input\" type=\"text\" size=\"9\"/></td></tr>\n<tr><td><<lingo Icon/Heading>></td><td><$edit-text field=\"icon\" tag=\"input\" size=\"45\"/></td></tr>\n</tbody>\n</table>\n</$reveal>\n</td>\n</tr>\n</$list>\n<tr>\n<td></td>\n<td style=\"position:relative;\">\n{{$:/core/ui/UntaggedTemplate}}\n</td>\n<td>\n<small class=\"tc-menu-list-count\"><$count filter=\"[untagged[]!is[system]] -[tags[]]\"/></small>\n</td>\n<td></td>\n<td></td>\n</tr>\n</tbody>\n</table>\n"
},
"$:/core/ui/TagTemplate": {
"title": "$:/core/ui/TagTemplate",
"text": "\\whitespace trim\n<span class=\"tc-tag-list-item\">\n<$set name=\"transclusion\" value=<<currentTiddler>>>\n<$macrocall $name=\"tag-pill-body\" tag=<<currentTiddler>> icon={{!!icon}} colour={{!!color}} palette={{$:/palette}} element-tag=\"\"\"$button\"\"\" element-attributes=\"\"\"popup=<<qualify \"$:/state/popup/tag\">> dragFilter='[all[current]tagging[]]' tag='span'\"\"\"/>\n<$reveal state=<<qualify \"$:/state/popup/tag\">> type=\"popup\" position=\"below\" animate=\"yes\" class=\"tc-drop-down\">\n<$set name=\"tv-show-missing-links\" value=\"yes\">\n<$transclude tiddler=\"$:/core/ui/ListItemTemplate\"/>\n</$set>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TagDropdown]!has[draft.of]]\" variable=\"listItem\"> \n<$transclude tiddler=<<listItem>>/> \n</$list>\n<hr>\n<$macrocall $name=\"list-tagged-draggable\" tag=<<currentTiddler>>/>\n</$reveal>\n</$set>\n</span>\n"
},
"$:/core/ui/TiddlerFieldTemplate": {
"title": "$:/core/ui/TiddlerFieldTemplate",
"text": "<tr class=\"tc-view-field\">\n<td class=\"tc-view-field-name\">\n<$text text=<<listItem>>/>\n</td>\n<td class=\"tc-view-field-value\">\n<$view field=<<listItem>>/>\n</td>\n</tr>"
},
"$:/core/ui/TiddlerFields": {
"title": "$:/core/ui/TiddlerFields",
"text": "<table class=\"tc-view-field-table\">\n<tbody>\n<$list filter=\"[all[current]fields[]sort[title]] -text\" template=\"$:/core/ui/TiddlerFieldTemplate\" variable=\"listItem\"/>\n</tbody>\n</table>\n"
},
"$:/core/ui/TiddlerInfo/Advanced/PluginInfo": {
"title": "$:/core/ui/TiddlerInfo/Advanced/PluginInfo",
"tags": "$:/tags/TiddlerInfo/Advanced",
"text": "\\define lingo-base() $:/language/TiddlerInfo/Advanced/PluginInfo/\n<$list filter=\"[all[current]has[plugin-type]]\">\n\n! <<lingo Heading>>\n\n<<lingo Hint>>\n<ul>\n<$list filter=\"[all[current]plugintiddlers[]sort[title]]\" emptyMessage=<<lingo Empty/Hint>>>\n<li>\n<$link to={{!!title}}>\n<$view field=\"title\"/>\n</$link>\n</li>\n</$list>\n</ul>\n\n</$list>\n"
},
"$:/core/ui/TiddlerInfo/Advanced/ShadowInfo": {
"title": "$:/core/ui/TiddlerInfo/Advanced/ShadowInfo",
"tags": "$:/tags/TiddlerInfo/Advanced",
"text": "\\define lingo-base() $:/language/TiddlerInfo/Advanced/ShadowInfo/\n<$set name=\"infoTiddler\" value=<<currentTiddler>>>\n\n''<<lingo Heading>>''\n\n<$list filter=\"[all[current]!is[shadow]]\">\n\n<<lingo NotShadow/Hint>>\n\n</$list>\n\n<$list filter=\"[all[current]is[shadow]]\">\n\n<<lingo Shadow/Hint>>\n\n<$list filter=\"[all[current]shadowsource[]]\">\n\n<$set name=\"pluginTiddler\" value=<<currentTiddler>>>\n<<lingo Shadow/Source>>\n</$set>\n\n</$list>\n\n<$list filter=\"[all[current]is[shadow]is[tiddler]]\">\n\n<<lingo OverriddenShadow/Hint>>\n\n</$list>\n\n\n</$list>\n</$set>\n"
},
"$:/core/ui/TiddlerInfo/Advanced": {
"title": "$:/core/ui/TiddlerInfo/Advanced",
"tags": "$:/tags/TiddlerInfo",
"caption": "{{$:/language/TiddlerInfo/Advanced/Caption}}",
"text": "<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TiddlerInfo/Advanced]!has[draft.of]]\" variable=\"listItem\">\n<$transclude tiddler=<<listItem>>/>\n\n</$list>\n"
},
"$:/core/ui/TiddlerInfo/Fields": {
"title": "$:/core/ui/TiddlerInfo/Fields",
"tags": "$:/tags/TiddlerInfo",
"caption": "{{$:/language/TiddlerInfo/Fields/Caption}}",
"text": "<$transclude tiddler=\"$:/core/ui/TiddlerFields\"/>\n"
},
"$:/core/ui/TiddlerInfo/List": {
"title": "$:/core/ui/TiddlerInfo/List",
"tags": "$:/tags/TiddlerInfo",
"caption": "{{$:/language/TiddlerInfo/List/Caption}}",
"text": "\\define lingo-base() $:/language/TiddlerInfo/\n<$list filter=\"[list{!!title}]\" emptyMessage=<<lingo List/Empty>> template=\"$:/core/ui/ListItemTemplate\"/>\n"
},
"$:/core/ui/TiddlerInfo/Listed": {
"title": "$:/core/ui/TiddlerInfo/Listed",
"tags": "$:/tags/TiddlerInfo",
"caption": "{{$:/language/TiddlerInfo/Listed/Caption}}",
"text": "\\define lingo-base() $:/language/TiddlerInfo/\n<$list filter=\"[all[current]listed[]!is[system]]\" emptyMessage=<<lingo Listed/Empty>> template=\"$:/core/ui/ListItemTemplate\"/>\n"
},
"$:/core/ui/TiddlerInfo/References": {
"title": "$:/core/ui/TiddlerInfo/References",
"tags": "$:/tags/TiddlerInfo",
"caption": "{{$:/language/TiddlerInfo/References/Caption}}",
"text": "\\define lingo-base() $:/language/TiddlerInfo/\n<$list filter=\"[all[current]backlinks[]sort[title]]\" emptyMessage=<<lingo References/Empty>> template=\"$:/core/ui/ListItemTemplate\">\n</$list>"
},
"$:/core/ui/TiddlerInfo/Tagging": {
"title": "$:/core/ui/TiddlerInfo/Tagging",
"tags": "$:/tags/TiddlerInfo",
"caption": "{{$:/language/TiddlerInfo/Tagging/Caption}}",
"text": "\\define lingo-base() $:/language/TiddlerInfo/\n<$list filter=\"[all[current]tagging[]]\" emptyMessage=<<lingo Tagging/Empty>> template=\"$:/core/ui/ListItemTemplate\"/>\n"
},
"$:/core/ui/TiddlerInfo/Tools": {
"title": "$:/core/ui/TiddlerInfo/Tools",
"tags": "$:/tags/TiddlerInfo",
"caption": "{{$:/language/TiddlerInfo/Tools/Caption}}",
"text": "\\define lingo-base() $:/language/TiddlerInfo/\n\\define config-title()\n$:/config/ViewToolbarButtons/Visibility/$(listItem)$\n\\end\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ViewToolbar]!has[draft.of]]\" variable=\"listItem\">\n\n<$checkbox tiddler=<<config-title>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\"/> <$transclude tiddler=<<listItem>>/> <i class=\"tc-muted\"><$transclude tiddler=<<listItem>> field=\"description\"/></i>\n\n</$list>\n\n</$set>\n\n</$set>\n\n</$set>\n"
},
"$:/core/ui/TiddlerInfo": {
"title": "$:/core/ui/TiddlerInfo",
"text": "<div style=\"position:relative;\">\n<div class=\"tc-tiddler-controls\" style=\"position:absolute;right:0;\">\n<$reveal state=\"$:/config/TiddlerInfo/Mode\" type=\"match\" text=\"sticky\">\n<$button set=<<tiddlerInfoState>> setTo=\"\" tooltip={{$:/language/Buttons/Info/Hint}} aria-label={{$:/language/Buttons/Info/Caption}} class=\"tc-btn-invisible\">\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</div>\n</div>\n\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/TiddlerInfo]!has[draft.of]]\" default={{$:/config/TiddlerInfo/Default}}/>"
},
"$:/core/ui/TopBar/menu": {
"title": "$:/core/ui/TopBar/menu",
"tags": "$:/tags/TopRightBar",
"text": "<$list filter=\"[[$:/state/sidebar]get[text]] +[else[yes]!match[no]]\" variable=\"ignore\">\n<$button set=\"$:/state/sidebar\" setTo=\"no\" tooltip={{$:/language/Buttons/HideSideBar/Hint}} aria-label={{$:/language/Buttons/HideSideBar/Caption}} class=\"tc-btn-invisible\">{{$:/core/images/chevron-right}}</$button>\n</$list>\n<$list filter=\"[[$:/state/sidebar]get[text]] +[else[yes]match[no]]\" variable=\"ignore\">\n<$button set=\"$:/state/sidebar\" setTo=\"yes\" tooltip={{$:/language/Buttons/ShowSideBar/Hint}} aria-label={{$:/language/Buttons/ShowSideBar/Caption}} class=\"tc-btn-invisible\">{{$:/core/images/chevron-left}}</$button>\n</$list>\n"
},
"$:/core/ui/UntaggedTemplate": {
"title": "$:/core/ui/UntaggedTemplate",
"text": "\\define lingo-base() $:/language/SideBar/\n<$button popup=<<qualify \"$:/state/popup/tag\">> class=\"tc-btn-invisible tc-untagged-label tc-tag-label\">\n<<lingo Tags/Untagged/Caption>>\n</$button>\n<$reveal state=<<qualify \"$:/state/popup/tag\">> type=\"popup\" position=\"below\">\n<div class=\"tc-drop-down\">\n<$list filter=\"[untagged[]!is[system]] -[tags[]] +[sort[title]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n</div>\n</$reveal>\n"
},
"$:/core/ui/ViewTemplate/body": {
"title": "$:/core/ui/ViewTemplate/body",
"tags": "$:/tags/ViewTemplate",
"text": "<$reveal tag=\"div\" class=\"tc-tiddler-body\" type=\"nomatch\" stateTitle=<<folded-state>> text=\"hide\" retain=\"yes\" animate=\"yes\">\n\n<$list filter=\"[all[current]!has[plugin-type]!field:hide-body[yes]]\">\n\n<$transclude>\n\n<$transclude tiddler=\"$:/language/MissingTiddler/Hint\"/>\n\n</$transclude>\n\n</$list>\n\n</$reveal>\n"
},
"$:/core/ui/ViewTemplate/classic": {
"title": "$:/core/ui/ViewTemplate/classic",
"tags": "$:/tags/ViewTemplate $:/tags/EditTemplate",
"text": "\\define lingo-base() $:/language/ClassicWarning/\n<$list filter=\"[all[current]type[text/x-tiddlywiki]]\">\n<div class=\"tc-message-box\">\n\n<<lingo Hint>>\n\n<$button set=\"!!type\" setTo=\"text/vnd.tiddlywiki\"><<lingo Upgrade/Caption>></$button>\n\n</div>\n</$list>\n"
},
"$:/core/ui/ViewTemplate/import": {
"title": "$:/core/ui/ViewTemplate/import",
"tags": "$:/tags/ViewTemplate",
"text": "\\define lingo-base() $:/language/Import/\n\n\\define buttons()\n<$button message=\"tm-delete-tiddler\" param=<<currentTiddler>>><<lingo Listing/Cancel/Caption>></$button>\n<$button message=\"tm-perform-import\" param=<<currentTiddler>>><<lingo Listing/Import/Caption>></$button>\n<<lingo Listing/Preview>> <$select tiddler=\"$:/state/importpreviewtype\" default=\"$:/core/ui/ImportPreviews/Text\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ImportPreview]!has[draft.of]]\">\n<option value=<<currentTiddler>>>{{!!caption}}</option>\n</$list>\n</$select>\n\\end\n\n<$list filter=\"[all[current]field:plugin-type[import]]\">\n\n<div class=\"tc-import\">\n\n<<lingo Listing/Hint>>\n\n<<buttons>>\n\n{{||$:/core/ui/ImportListing}}\n\n<<buttons>>\n\n</div>\n\n</$list>\n"
},
"$:/core/ui/ViewTemplate/plugin": {
"title": "$:/core/ui/ViewTemplate/plugin",
"tags": "$:/tags/ViewTemplate",
"text": "<$list filter=\"[all[current]has[plugin-type]] -[all[current]field:plugin-type[import]]\">\n<$set name=\"plugin-type\" value={{!!plugin-type}}>\n<$set name=\"default-popup-state\" value=\"yes\">\n<$set name=\"qualified-state\" value=<<qualify \"$:/state/plugin-info\">>>\n{{||$:/core/ui/Components/plugin-info}}\n</$set>\n</$set>\n</$set>\n</$list>\n"
},
"$:/core/ui/ViewTemplate/subtitle": {
"title": "$:/core/ui/ViewTemplate/subtitle",
"tags": "$:/tags/ViewTemplate",
"text": "\\whitespace trim\n<$reveal type=\"nomatch\" stateTitle=<<folded-state>> text=\"hide\" tag=\"div\" retain=\"yes\" animate=\"yes\">\n<div class=\"tc-subtitle\">\n<$link to={{!!modifier}} />\n<$view field=\"modified\" format=\"date\" template={{$:/language/Tiddler/DateFormat}}/>\n</div>\n</$reveal>\n"
},
"$:/core/ui/ViewTemplate/tags": {
"title": "$:/core/ui/ViewTemplate/tags",
"tags": "$:/tags/ViewTemplate",
"text": "<$reveal type=\"nomatch\" stateTitle=<<folded-state>> text=\"hide\" tag=\"div\" retain=\"yes\" animate=\"yes\">\n<div class=\"tc-tags-wrapper\"><$list filter=\"[all[current]tags[]sort[title]]\" template=\"$:/core/ui/TagTemplate\" storyview=\"pop\"/></div>\n</$reveal>\n"
},
"$:/core/ui/ViewTemplate/title": {
"title": "$:/core/ui/ViewTemplate/title",
"tags": "$:/tags/ViewTemplate",
"text": "\\whitespace trim\n\\define title-styles()\nfill:$(foregroundColor)$;\n\\end\n\\define config-title()\n$:/config/ViewToolbarButtons/Visibility/$(listItem)$\n\\end\n<div class=\"tc-tiddler-title\">\n<div class=\"tc-titlebar\">\n<span class=\"tc-tiddler-controls\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ViewToolbar]!has[draft.of]]\" variable=\"listItem\"><$reveal type=\"nomatch\" state=<<config-title>> text=\"hide\"><$set name=\"tv-config-toolbar-class\" filter=\"[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]\"><$transclude tiddler=<<listItem>>/></$set></$reveal></$list>\n</span>\n<$set name=\"tv-wikilinks\" value={{$:/config/Tiddlers/TitleLinks}}>\n<$link>\n<$set name=\"foregroundColor\" value={{!!color}}>\n<span class=\"tc-tiddler-title-icon\" style=<<title-styles>>>\n<$transclude tiddler={{!!icon}}>\n<$transclude tiddler={{$:/config/DefaultTiddlerIcon}}/>\n</$transclude>\n</span>\n</$set>\n<$list filter=\"[all[current]removeprefix[$:/]]\">\n<h2 class=\"tc-title\" title={{$:/language/SystemTiddler/Tooltip}}>\n<span class=\"tc-system-title-prefix\">$:/</span><$text text=<<currentTiddler>>/>\n</h2>\n</$list>\n<$list filter=\"[all[current]!prefix[$:/]]\">\n<h2 class=\"tc-title\">\n<$view field=\"title\"/>\n</h2>\n</$list>\n</$link>\n</$set>\n</div>\n\n<$reveal type=\"nomatch\" text=\"\" default=\"\" state=<<tiddlerInfoState>> class=\"tc-tiddler-info tc-popup-handle\" animate=\"yes\" retain=\"yes\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TiddlerInfoSegment]!has[draft.of]] [[$:/core/ui/TiddlerInfo]]\" variable=\"listItem\"><$transclude tiddler=<<listItem>> mode=\"block\"/></$list>\n\n</$reveal>\n</div>"
},
"$:/core/ui/ViewTemplate/unfold": {
"title": "$:/core/ui/ViewTemplate/unfold",
"tags": "$:/tags/ViewTemplate",
"text": "<$reveal tag=\"div\" type=\"nomatch\" state=\"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-bar\" text=\"hide\">\n<$reveal tag=\"div\" type=\"nomatch\" stateTitle=<<folded-state>> text=\"hide\" default=\"show\" retain=\"yes\" animate=\"yes\">\n<$button tooltip={{$:/language/Buttons/Fold/Hint}} aria-label={{$:/language/Buttons/Fold/Caption}} class=\"tc-fold-banner\">\n<$action-sendmessage $message=\"tm-fold-tiddler\" $param=<<currentTiddler>> foldedState=<<folded-state>>/>\n{{$:/core/images/chevron-up}}\n</$button>\n</$reveal>\n<$reveal tag=\"div\" type=\"nomatch\" stateTitle=<<folded-state>> text=\"show\" default=\"show\" retain=\"yes\" animate=\"yes\">\n<$button tooltip={{$:/language/Buttons/Unfold/Hint}} aria-label={{$:/language/Buttons/Unfold/Caption}} class=\"tc-unfold-banner\">\n<$action-sendmessage $message=\"tm-fold-tiddler\" $param=<<currentTiddler>> foldedState=<<folded-state>>/>\n{{$:/core/images/chevron-down}}\n</$button>\n</$reveal>\n</$reveal>\n"
},
"$:/core/ui/ViewTemplate": {
"title": "$:/core/ui/ViewTemplate",
"text": "\\define folded-state()\n$:/state/folded/$(currentTiddler)$\n\\end\n\\import [all[shadows+tiddlers]tag[$:/tags/Macro/View]!has[draft.of]]\n<$vars storyTiddler=<<currentTiddler>> tiddlerInfoState=<<qualify \"$:/state/popup/tiddler-info\">>><div data-tiddler-title=<<currentTiddler>> data-tags={{!!tags}} class={{{ tc-tiddler-frame tc-tiddler-view-frame [<currentTiddler>is[tiddler]then[tc-tiddler-exists]] [<currentTiddler>is[missing]!is[shadow]then[tc-tiddler-missing]] [<currentTiddler>is[shadow]then[tc-tiddler-exists tc-tiddler-shadow]] [<currentTiddler>is[shadow]is[tiddler]then[tc-tiddler-overridden-shadow]] [<currentTiddler>is[system]then[tc-tiddler-system]] [{!!class}] [<currentTiddler>tags[]encodeuricomponent[]addprefix[tc-tagged-]] +[join[ ]] }}}><$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ViewTemplate]!has[draft.of]]\" variable=\"listItem\"><$transclude tiddler=<<listItem>>/></$list>\n</div>\n</$vars>\n"
},
"$:/core/ui/Buttons/clone": {
"title": "$:/core/ui/Buttons/clone",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/clone-button}} {{$:/language/Buttons/Clone/Caption}}",
"description": "{{$:/language/Buttons/Clone/Hint}}",
"text": "\\whitespace trim\n<$button message=\"tm-new-tiddler\" param=<<currentTiddler>> tooltip={{$:/language/Buttons/Clone/Hint}} aria-label={{$:/language/Buttons/Clone/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/clone-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/Clone/Caption}}/>\n</span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/close-others": {
"title": "$:/core/ui/Buttons/close-others",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/close-others-button}} {{$:/language/Buttons/CloseOthers/Caption}}",
"description": "{{$:/language/Buttons/CloseOthers/Hint}}",
"text": "\\whitespace trim\n<$button message=\"tm-close-other-tiddlers\" param=<<currentTiddler>> tooltip={{$:/language/Buttons/CloseOthers/Hint}} aria-label={{$:/language/Buttons/CloseOthers/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/close-others-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/CloseOthers/Caption}}/>\n</span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/close": {
"title": "$:/core/ui/Buttons/close",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/close-button}} {{$:/language/Buttons/Close/Caption}}",
"description": "{{$:/language/Buttons/Close/Hint}}",
"text": "\\whitespace trim\n<$button message=\"tm-close-tiddler\" tooltip={{$:/language/Buttons/Close/Hint}} aria-label={{$:/language/Buttons/Close/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/close-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text={{$:/language/Buttons/Close/Caption}}/>\n</span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/edit": {
"title": "$:/core/ui/Buttons/edit",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/edit-button}} {{$:/language/Buttons/Edit/Caption}}",
"description": "{{$:/language/Buttons/Edit/Hint}}",
"text": "\\whitespace trim\n<$button message=\"tm-edit-tiddler\" tooltip={{$:/language/Buttons/Edit/Hint}} aria-label={{$:/language/Buttons/Edit/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/edit-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/Edit/Caption}}/>\n</span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/export-tiddler": {
"title": "$:/core/ui/Buttons/export-tiddler",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/export-button}} {{$:/language/Buttons/ExportTiddler/Caption}}",
"description": "{{$:/language/Buttons/ExportTiddler/Hint}}",
"text": "\\define makeExportFilter()\n[[$(currentTiddler)$]]\n\\end\n<$macrocall $name=\"exportButton\" exportFilter=<<makeExportFilter>> lingoBase=\"$:/language/Buttons/ExportTiddler/\" baseFilename=<<currentTiddler>>/>"
},
"$:/core/ui/Buttons/fold-bar": {
"title": "$:/core/ui/Buttons/fold-bar",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/chevron-up}} {{$:/language/Buttons/Fold/FoldBar/Caption}}",
"description": "{{$:/language/Buttons/Fold/FoldBar/Hint}}",
"text": "<!-- This dummy toolbar button is here to allow visibility of the fold-bar to be controlled as if it were a toolbar button -->"
},
"$:/core/ui/Buttons/fold-others": {
"title": "$:/core/ui/Buttons/fold-others",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/fold-others-button}} {{$:/language/Buttons/FoldOthers/Caption}}",
"description": "{{$:/language/Buttons/FoldOthers/Hint}}",
"text": "\\whitespace trim\n<$button tooltip={{$:/language/Buttons/FoldOthers/Hint}} aria-label={{$:/language/Buttons/FoldOthers/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-fold-other-tiddlers\" $param=<<currentTiddler>> foldedStatePrefix=\"$:/state/folded/\"/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\" variable=\"listItem\">\n{{$:/core/images/fold-others-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/FoldOthers/Caption}}/>\n</span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/fold": {
"title": "$:/core/ui/Buttons/fold",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/fold-button}} {{$:/language/Buttons/Fold/Caption}}",
"description": "{{$:/language/Buttons/Fold/Hint}}",
"text": "\\whitespace trim\n<$reveal type=\"nomatch\" stateTitle=<<folded-state>> text=\"hide\" default=\"show\">\n<$button tooltip={{$:/language/Buttons/Fold/Hint}} aria-label={{$:/language/Buttons/Fold/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-fold-tiddler\" $param=<<currentTiddler>> foldedState=<<folded-state>>/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\" variable=\"listItem\">\n{{$:/core/images/fold-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/Fold/Caption}}/>\n</span>\n</$list>\n</$button>\n</$reveal>\n<$reveal type=\"match\" stateTitle=<<folded-state>> text=\"hide\" default=\"show\">\n<$button tooltip={{$:/language/Buttons/Unfold/Hint}} aria-label={{$:/language/Buttons/Unfold/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-fold-tiddler\" $param=<<currentTiddler>> foldedState=<<folded-state>>/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\" variable=\"listItem\">\n{{$:/core/images/unfold-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/Unfold/Caption}}/>\n</span>\n</$list>\n</$button>\n</$reveal>\n"
},
"$:/core/ui/Buttons/info": {
"title": "$:/core/ui/Buttons/info",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/info-button}} {{$:/language/Buttons/Info/Caption}}",
"description": "{{$:/language/Buttons/Info/Hint}}",
"text": "\\whitespace trim\n\\define button-content()\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/info-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text={{$:/language/Buttons/Info/Caption}}/>\n</span>\n</$list>\n\\end\n<$reveal state=\"$:/config/TiddlerInfo/Mode\" type=\"match\" text=\"popup\">\n<$button popup=<<tiddlerInfoState>> tooltip={{$:/language/Buttons/Info/Hint}} aria-label={{$:/language/Buttons/Info/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$macrocall $name=\"button-content\" mode=\"inline\"/>\n</$button>\n</$reveal>\n<$reveal state=\"$:/config/TiddlerInfo/Mode\" type=\"match\" text=\"sticky\">\n<$reveal state=<<tiddlerInfoState>> type=\"match\" text=\"\" default=\"\">\n<$button set=<<tiddlerInfoState>> setTo=\"yes\" tooltip={{$:/language/Buttons/Info/Hint}} aria-label={{$:/language/Buttons/Info/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$macrocall $name=\"button-content\" mode=\"inline\"/>\n</$button>\n</$reveal>\n<$reveal state=<<tiddlerInfoState>> type=\"nomatch\" text=\"\" default=\"\">\n<$button set=<<tiddlerInfoState>> setTo=\"\" tooltip={{$:/language/Buttons/Info/Hint}} aria-label={{$:/language/Buttons/Info/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$macrocall $name=\"button-content\" mode=\"inline\"/>\n</$button>\n</$reveal>\n</$reveal>"
},
"$:/core/ui/Buttons/more-tiddler-actions": {
"title": "$:/core/ui/Buttons/more-tiddler-actions",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/down-arrow}} {{$:/language/Buttons/More/Caption}}",
"description": "{{$:/language/Buttons/More/Hint}}",
"text": "\\whitespace trim\n\\define config-title()\n$:/config/ViewToolbarButtons/Visibility/$(listItem)$\n\\end\n<$button popup=<<qualify \"$:/state/popup/more\">> tooltip={{$:/language/Buttons/More/Hint}} aria-label={{$:/language/Buttons/More/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/down-arrow}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/More/Caption}}/>\n</span>\n</$list>\n</$button>\n<$reveal state=<<qualify \"$:/state/popup/more\">> type=\"popup\" position=\"belowleft\" animate=\"yes\">\n\n<div class=\"tc-drop-down\">\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"tc-btn-invisible\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ViewToolbar]!has[draft.of]] -[[$:/core/ui/Buttons/more-tiddler-actions]]\" variable=\"listItem\">\n\n<$reveal type=\"match\" state=<<config-title>> text=\"hide\">\n\n<$set name=\"tv-config-toolbar-class\" filter=\"[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]\">\n\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n\n</$set>\n\n</$reveal>\n\n</$list>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</div>\n\n</$reveal>"
},
"$:/core/ui/Buttons/new-here": {
"title": "$:/core/ui/Buttons/new-here",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/new-here-button}} {{$:/language/Buttons/NewHere/Caption}}",
"description": "{{$:/language/Buttons/NewHere/Hint}}",
"text": "\\whitespace trim\n\\define newHereActions()\n<$set name=\"tags\" filter=\"[<currentTiddler>] [{$:/config/NewTiddler/Tags!!tags}]\">\n<$action-sendmessage $message=\"tm-new-tiddler\" tags=<<tags>>/>\n</$set>\n\\end\n\\define newHereButton()\n<$button actions=<<newHereActions>> tooltip={{$:/language/Buttons/NewHere/Hint}} aria-label={{$:/language/Buttons/NewHere/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/new-here-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text={{$:/language/Buttons/NewHere/Caption}}/>\n</span>\n</$list>\n</$button>\n\\end\n<<newHereButton>>\n"
},
"$:/core/ui/Buttons/new-journal-here": {
"title": "$:/core/ui/Buttons/new-journal-here",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/new-journal-button}} {{$:/language/Buttons/NewJournalHere/Caption}}",
"description": "{{$:/language/Buttons/NewJournalHere/Hint}}",
"text": "\\whitespace trim\n\\define journalButtonTags()\n[[$(currentTiddlerTag)$]] $(journalTags)$\n\\end\n\\define journalButton()\n<$button tooltip={{$:/language/Buttons/NewJournalHere/Hint}} aria-label={{$:/language/Buttons/NewJournalHere/Caption}} class=<<tv-config-toolbar-class>>>\n<$wikify name=\"journalTitle\" text=\"\"\"<$macrocall $name=\"now\" format=<<journalTitleTemplate>>/>\"\"\">\n<$action-sendmessage $message=\"tm-new-tiddler\" title=<<journalTitle>> tags=<<journalButtonTags>>/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/new-journal-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text={{$:/language/Buttons/NewJournalHere/Caption}}/>\n</span>\n</$list>\n</$wikify>\n</$button>\n\\end\n<$set name=\"journalTitleTemplate\" value={{$:/config/NewJournal/Title}}>\n<$set name=\"journalTags\" value={{$:/config/NewJournal/Tags!!tags}}>\n<$set name=\"currentTiddlerTag\" value=<<currentTiddler>>>\n<<journalButton>>\n</$set>\n</$set>\n</$set>\n"
},
"$:/core/ui/Buttons/open-window": {
"title": "$:/core/ui/Buttons/open-window",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/open-window}} {{$:/language/Buttons/OpenWindow/Caption}}",
"description": "{{$:/language/Buttons/OpenWindow/Hint}}",
"text": "\\whitespace trim\n<$button message=\"tm-open-window\" tooltip={{$:/language/Buttons/OpenWindow/Hint}} aria-label={{$:/language/Buttons/OpenWindow/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/open-window}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/OpenWindow/Caption}}/>\n</span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/permalink": {
"title": "$:/core/ui/Buttons/permalink",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/permalink-button}} {{$:/language/Buttons/Permalink/Caption}}",
"description": "{{$:/language/Buttons/Permalink/Hint}}",
"text": "\\whitespace trim\n<$button message=\"tm-permalink\" tooltip={{$:/language/Buttons/Permalink/Hint}} aria-label={{$:/language/Buttons/Permalink/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/permalink-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/Permalink/Caption}}/>\n</span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/permaview": {
"title": "$:/core/ui/Buttons/permaview",
"tags": "$:/tags/ViewToolbar $:/tags/PageControls",
"caption": "{{$:/core/images/permaview-button}} {{$:/language/Buttons/Permaview/Caption}}",
"description": "{{$:/language/Buttons/Permaview/Hint}}",
"text": "\\whitespace trim\n<$button message=\"tm-permaview\" tooltip={{$:/language/Buttons/Permaview/Hint}} aria-label={{$:/language/Buttons/Permaview/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/permaview-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/Permaview/Caption}}/>\n</span>\n</$list>\n</$button>"
},
"$:/DefaultTiddlers": {
"title": "$:/DefaultTiddlers",
"text": "GettingStarted\n"
},
"$:/temp/advancedsearch": {
"title": "$:/temp/advancedsearch",
"text": ""
},
"$:/snippets/allfields": {
"title": "$:/snippets/allfields",
"text": "\\define renderfield(title)\n<tr class=\"tc-view-field\"><td class=\"tc-view-field-name\">''$title$'':</td><td class=\"tc-view-field-value\">//{{$:/language/Docs/Fields/$title$}}//</td></tr>\n\\end\n<table class=\"tc-view-field-table\"><tbody><$list filter=\"[fields[]sort[title]]\" variable=\"listItem\"><$macrocall $name=\"renderfield\" title=<<listItem>>/></$list>\n</tbody></table>\n"
},
"$:/config/AnimationDuration": {
"title": "$:/config/AnimationDuration",
"text": "400"
},
"$:/config/AutoFocus": {
"title": "$:/config/AutoFocus",
"text": "title"
},
"$:/config/AutoSave": {
"title": "$:/config/AutoSave",
"text": "yes"
},
"$:/config/BitmapEditor/Colour": {
"title": "$:/config/BitmapEditor/Colour",
"text": "#444"
},
"$:/config/BitmapEditor/ImageSizes": {
"title": "$:/config/BitmapEditor/ImageSizes",
"text": "[[62px 100px]] [[100px 62px]] [[124px 200px]] [[200px 124px]] [[248px 400px]] [[371px 600px]] [[400px 248px]] [[556px 900px]] [[600px 371px]] [[742px 1200px]] [[900px 556px]] [[1200px 742px]]"
},
"$:/config/BitmapEditor/LineWidth": {
"title": "$:/config/BitmapEditor/LineWidth",
"text": "3px"
},
"$:/config/BitmapEditor/LineWidths": {
"title": "$:/config/BitmapEditor/LineWidths",
"text": "0.25px 0.5px 1px 2px 3px 4px 6px 8px 10px 16px 20px 28px 40px 56px 80px"
},
"$:/config/BitmapEditor/Opacities": {
"title": "$:/config/BitmapEditor/Opacities",
"text": "0.01 0.025 0.05 0.075 0.1 0.15 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0"
},
"$:/config/BitmapEditor/Opacity": {
"title": "$:/config/BitmapEditor/Opacity",
"text": "1.0"
},
"$:/config/DefaultMoreSidebarTab": {
"title": "$:/config/DefaultMoreSidebarTab",
"text": "$:/core/ui/MoreSideBar/Tags"
},
"$:/config/DefaultSidebarTab": {
"title": "$:/config/DefaultSidebarTab",
"text": "$:/core/ui/SideBar/Open"
},
"$:/config/DownloadSaver/AutoSave": {
"title": "$:/config/DownloadSaver/AutoSave",
"text": "no"
},
"$:/config/Drafts/TypingTimeout": {
"title": "$:/config/Drafts/TypingTimeout",
"text": "400"
},
"$:/config/EditTemplateFields/Visibility/title": {
"title": "$:/config/EditTemplateFields/Visibility/title",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/tags": {
"title": "$:/config/EditTemplateFields/Visibility/tags",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/text": {
"title": "$:/config/EditTemplateFields/Visibility/text",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/creator": {
"title": "$:/config/EditTemplateFields/Visibility/creator",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/created": {
"title": "$:/config/EditTemplateFields/Visibility/created",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/modified": {
"title": "$:/config/EditTemplateFields/Visibility/modified",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/modifier": {
"title": "$:/config/EditTemplateFields/Visibility/modifier",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/type": {
"title": "$:/config/EditTemplateFields/Visibility/type",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/draft.title": {
"title": "$:/config/EditTemplateFields/Visibility/draft.title",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/draft.of": {
"title": "$:/config/EditTemplateFields/Visibility/draft.of",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/revision": {
"title": "$:/config/EditTemplateFields/Visibility/revision",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/bag": {
"title": "$:/config/EditTemplateFields/Visibility/bag",
"text": "hide"
},
"$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-4": {
"title": "$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-4",
"text": "hide"
},
"$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-5": {
"title": "$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-5",
"text": "hide"
},
"$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-6": {
"title": "$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-6",
"text": "hide"
},
"$:/config/EditorTypeMappings/image/gif": {
"title": "$:/config/EditorTypeMappings/image/gif",
"text": "bitmap"
},
"$:/config/EditorTypeMappings/image/webp": {
"title": "$:/config/EditorTypeMappings/image/webp",
"text": "bitmap"
},
"$:/config/EditorTypeMappings/image/heic": {
"title": "$:/config/EditorTypeMappings/image/heic",
"text": "bitmap"
},
"$:/config/EditorTypeMappings/image/heif": {
"title": "$:/config/EditorTypeMappings/image/heif",
"text": "bitmap"
},
"$:/config/EditorTypeMappings/image/jpeg": {
"title": "$:/config/EditorTypeMappings/image/jpeg",
"text": "bitmap"
},
"$:/config/EditorTypeMappings/image/jpg": {
"title": "$:/config/EditorTypeMappings/image/jpg",
"text": "bitmap"
},
"$:/config/EditorTypeMappings/image/png": {
"title": "$:/config/EditorTypeMappings/image/png",
"text": "bitmap"
},
"$:/config/EditorTypeMappings/image/x-icon": {
"title": "$:/config/EditorTypeMappings/image/x-icon",
"text": "bitmap"
},
"$:/config/EditorTypeMappings/text/vnd.tiddlywiki": {
"title": "$:/config/EditorTypeMappings/text/vnd.tiddlywiki",
"text": "text"
},
"$:/config/Manager/Show": {
"title": "$:/config/Manager/Show",
"text": "tiddlers"
},
"$:/config/Manager/Filter": {
"title": "$:/config/Manager/Filter",
"text": ""
},
"$:/config/Manager/Order": {
"title": "$:/config/Manager/Order",
"text": "forward"
},
"$:/config/Manager/Sort": {
"title": "$:/config/Manager/Sort",
"text": "title"
},
"$:/config/Manager/System": {
"title": "$:/config/Manager/System",
"text": "system"
},
"$:/config/Manager/Tag": {
"title": "$:/config/Manager/Tag",
"text": ""
},
"$:/state/popup/manager/item/$:/Manager/ItemMain/RawText": {
"title": "$:/state/popup/manager/item/$:/Manager/ItemMain/RawText",
"text": "hide"
},
"$:/config/MissingLinks": {
"title": "$:/config/MissingLinks",
"text": "yes"
},
"$:/config/Navigation/UpdateAddressBar": {
"title": "$:/config/Navigation/UpdateAddressBar",
"text": "no"
},
"$:/config/Navigation/UpdateHistory": {
"title": "$:/config/Navigation/UpdateHistory",
"text": "no"
},
"$:/config/NewImageType": {
"title": "$:/config/NewImageType",
"text": "jpeg"
},
"$:/config/OfficialPluginLibrary": {
"title": "$:/config/OfficialPluginLibrary",
"tags": "$:/tags/PluginLibrary",
"url": "https://tiddlywiki.com/library/v5.1.22/index.html",
"caption": "{{$:/language/OfficialPluginLibrary}}",
"text": "{{$:/language/OfficialPluginLibrary/Hint}}\n"
},
"$:/config/Navigation/openLinkFromInsideRiver": {
"title": "$:/config/Navigation/openLinkFromInsideRiver",
"text": "below"
},
"$:/config/Navigation/openLinkFromOutsideRiver": {
"title": "$:/config/Navigation/openLinkFromOutsideRiver",
"text": "top"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/advanced-search": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/advanced-search",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/close-all": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/close-all",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/encryption": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/encryption",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/export-page": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/export-page",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/fold-all": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/fold-all",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/full-screen": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/full-screen",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/home": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/home",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/refresh": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/refresh",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/import": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/import",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/language": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/language",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/tag-manager": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/tag-manager",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/manager": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/manager",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/more-page-actions": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/more-page-actions",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-journal": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-journal",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-image": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-image",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/palette": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/palette",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/permaview": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/permaview",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/print": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/print",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/storyview": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/storyview",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/timestamp": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/timestamp",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/theme": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/theme",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/unfold-all": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/unfold-all",
"text": "hide"
},
"$:/config/Performance/Instrumentation": {
"title": "$:/config/Performance/Instrumentation",
"text": "no"
},
"$:/config/RegisterPluginType/plugin": {
"title": "$:/config/RegisterPluginType/plugin",
"text": "yes"
},
"$:/config/RegisterPluginType/theme": {
"title": "$:/config/RegisterPluginType/theme",
"text": "no"
},
"$:/config/RegisterPluginType/language": {
"title": "$:/config/RegisterPluginType/language",
"text": "no"
},
"$:/config/RegisterPluginType/info": {
"title": "$:/config/RegisterPluginType/info",
"text": "no"
},
"$:/config/RegisterPluginType/import": {
"title": "$:/config/RegisterPluginType/import",
"text": "no"
},
"$:/config/SaveWikiButton/Template": {
"title": "$:/config/SaveWikiButton/Template",
"text": "$:/core/save/all"
},
"$:/config/SaverFilter": {
"title": "$:/config/SaverFilter",
"text": "[all[]] -[[$:/HistoryList]] -[[$:/StoryList]] -[[$:/Import]] -[[$:/isEncrypted]] -[[$:/UploadName]] -[prefix[$:/state/]] -[prefix[$:/temp/]]"
},
"$:/config/Search/AutoFocus": {
"title": "$:/config/Search/AutoFocus",
"text": "true"
},
"$:/config/Search/MinLength": {
"title": "$:/config/Search/MinLength",
"text": "3"
},
"$:/config/SearchResults/Default": {
"title": "$:/config/SearchResults/Default",
"text": "$:/core/ui/DefaultSearchResultList"
},
"$:/config/Server/ExternalFilters/[all[tiddlers]!is[system]sort[title]]": {
"title": "$:/config/Server/ExternalFilters/[all[tiddlers]!is[system]sort[title]]",
"text": "yes"
},
"$:/config/ShortcutInfo/add-field": {
"title": "$:/config/ShortcutInfo/add-field",
"text": "{{$:/language/EditTemplate/Fields/Add/Button/Hint}}"
},
"$:/config/ShortcutInfo/advanced-search": {
"title": "$:/config/ShortcutInfo/advanced-search",
"text": "{{$:/language/Buttons/AdvancedSearch/Hint}}"
},
"$:/config/ShortcutInfo/bold": {
"title": "$:/config/ShortcutInfo/bold",
"text": "{{$:/language/Buttons/Bold/Hint}}"
},
"$:/config/ShortcutInfo/cancel-edit-tiddler": {
"title": "$:/config/ShortcutInfo/cancel-edit-tiddler",
"text": "{{$:/language/Buttons/Cancel/Hint}}"
},
"$:/config/ShortcutInfo/excise": {
"title": "$:/config/ShortcutInfo/excise",
"text": "{{$:/language/Buttons/Excise/Hint}}"
},
"$:/config/ShortcutInfo/heading-1": {
"title": "$:/config/ShortcutInfo/heading-1",
"text": "{{$:/language/Buttons/Heading1/Hint}}"
},
"$:/config/ShortcutInfo/heading-2": {
"title": "$:/config/ShortcutInfo/heading-2",
"text": "{{$:/language/Buttons/Heading2/Hint}}"
},
"$:/config/ShortcutInfo/heading-3": {
"title": "$:/config/ShortcutInfo/heading-3",
"text": "{{$:/language/Buttons/Heading3/Hint}}"
},
"$:/config/ShortcutInfo/heading-4": {
"title": "$:/config/ShortcutInfo/heading-4",
"text": "{{$:/language/Buttons/Heading4/Hint}}"
},
"$:/config/ShortcutInfo/heading-5": {
"title": "$:/config/ShortcutInfo/heading-5",
"text": "{{$:/language/Buttons/Heading5/Hint}}"
},
"$:/config/ShortcutInfo/heading-6": {
"title": "$:/config/ShortcutInfo/heading-6",
"text": "{{$:/language/Buttons/Heading6/Hint}}"
},
"$:/config/ShortcutInfo/italic": {
"title": "$:/config/ShortcutInfo/italic",
"text": "{{$:/language/Buttons/Italic/Hint}}"
},
"$:/config/ShortcutInfo/link": {
"title": "$:/config/ShortcutInfo/link",
"text": "{{$:/language/Buttons/Link/Hint}}"
},
"$:/config/ShortcutInfo/list-bullet": {
"title": "$:/config/ShortcutInfo/list-bullet",
"text": "{{$:/language/Buttons/ListBullet/Hint}}"
},
"$:/config/ShortcutInfo/list-number": {
"title": "$:/config/ShortcutInfo/list-number",
"text": "{{$:/language/Buttons/ListNumber/Hint}}"
},
"$:/config/ShortcutInfo/mono-block": {
"title": "$:/config/ShortcutInfo/mono-block",
"text": "{{$:/language/Buttons/MonoBlock/Hint}}"
},
"$:/config/ShortcutInfo/mono-line": {
"title": "$:/config/ShortcutInfo/mono-line",
"text": "{{$:/language/Buttons/MonoLine/Hint}}"
},
"$:/config/ShortcutInfo/new-image": {
"title": "$:/config/ShortcutInfo/new-image",
"text": "{{$:/language/Buttons/NewImage/Hint}}"
},
"$:/config/ShortcutInfo/new-journal": {
"title": "$:/config/ShortcutInfo/new-journal",
"text": "{{$:/language/Buttons/NewJournal/Hint}}"
},
"$:/config/ShortcutInfo/new-tiddler": {
"title": "$:/config/ShortcutInfo/new-tiddler",
"text": "{{$:/language/Buttons/NewTiddler/Hint}}"
},
"$:/config/ShortcutInfo/picture": {
"title": "$:/config/ShortcutInfo/picture",
"text": "{{$:/language/Buttons/Picture/Hint}}"
},
"$:/config/ShortcutInfo/preview": {
"title": "$:/config/ShortcutInfo/preview",
"text": "{{$:/language/Buttons/Preview/Hint}}"
},
"$:/config/ShortcutInfo/quote": {
"title": "$:/config/ShortcutInfo/quote",
"text": "{{$:/language/Buttons/Quote/Hint}}"
},
"$:/config/ShortcutInfo/save-tiddler": {
"title": "$:/config/ShortcutInfo/save-tiddler",
"text": "{{$:/language/Buttons/Save/Hint}}"
},
"$:/config/ShortcutInfo/sidebar-search": {
"title": "$:/config/ShortcutInfo/sidebar-search",
"text": "{{$:/language/Buttons/SidebarSearch/Hint}}"
},
"$:/config/ShortcutInfo/stamp": {
"title": "$:/config/ShortcutInfo/stamp",
"text": "{{$:/language/Buttons/Stamp/Hint}}"
},
"$:/config/ShortcutInfo/strikethrough": {
"title": "$:/config/ShortcutInfo/strikethrough",
"text": "{{$:/language/Buttons/Strikethrough/Hint}}"
},
"$:/config/ShortcutInfo/subscript": {
"title": "$:/config/ShortcutInfo/subscript",
"text": "{{$:/language/Buttons/Subscript/Hint}}"
},
"$:/config/ShortcutInfo/superscript": {
"title": "$:/config/ShortcutInfo/superscript",
"text": "{{$:/language/Buttons/Superscript/Hint}}"
},
"$:/config/ShortcutInfo/toggle-sidebar": {
"title": "$:/config/ShortcutInfo/toggle-sidebar",
"text": "{{$:/language/Buttons/ToggleSidebar/Hint}}"
},
"$:/config/ShortcutInfo/underline": {
"title": "$:/config/ShortcutInfo/underline",
"text": "{{$:/language/Buttons/Underline/Hint}}"
},
"$:/config/SyncFilter": {
"title": "$:/config/SyncFilter",
"text": "[is[tiddler]] -[[$:/HistoryList]] -[[$:/Import]] -[[$:/isEncrypted]] -[prefix[$:/status/]] -[prefix[$:/state/]] -[prefix[$:/temp/]]"
},
"$:/config/Tags/MinLength": {
"title": "$:/config/Tags/MinLength",
"text": "0"
},
"$:/config/TextEditor/EditorHeight/Height": {
"title": "$:/config/TextEditor/EditorHeight/Height",
"text": "400px"
},
"$:/config/TextEditor/EditorHeight/Mode": {
"title": "$:/config/TextEditor/EditorHeight/Mode",
"text": "auto"
},
"$:/config/TiddlerInfo/Default": {
"title": "$:/config/TiddlerInfo/Default",
"text": "$:/core/ui/TiddlerInfo/Fields"
},
"$:/config/TiddlerInfo/Mode": {
"title": "$:/config/TiddlerInfo/Mode",
"text": "popup"
},
"$:/config/Tiddlers/TitleLinks": {
"title": "$:/config/Tiddlers/TitleLinks",
"text": "no"
},
"$:/config/Toolbar/ButtonClass": {
"title": "$:/config/Toolbar/ButtonClass",
"text": "tc-btn-invisible"
},
"$:/config/Toolbar/Icons": {
"title": "$:/config/Toolbar/Icons",
"text": "yes"
},
"$:/config/Toolbar/Text": {
"title": "$:/config/Toolbar/Text",
"text": "no"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/clone": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/clone",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/close-others": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/close-others",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/export-tiddler": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/export-tiddler",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/info": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/info",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/more-tiddler-actions": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/more-tiddler-actions",
"text": "show"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/new-here": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/new-here",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/new-journal-here": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/new-journal-here",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/open-window": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/open-window",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/permalink": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/permalink",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/permaview": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/permaview",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/delete": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/delete",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-bar": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-bar",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-others": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-others",
"text": "hide"
},
"$:/config/shortcuts-mac/bold": {
"title": "$:/config/shortcuts-mac/bold",
"text": "meta-B"
},
"$:/config/shortcuts-mac/italic": {
"title": "$:/config/shortcuts-mac/italic",
"text": "meta-I"
},
"$:/config/shortcuts-mac/underline": {
"title": "$:/config/shortcuts-mac/underline",
"text": "meta-U"
},
"$:/config/shortcuts-mac/new-image": {
"title": "$:/config/shortcuts-mac/new-image",
"text": "ctrl-I"
},
"$:/config/shortcuts-mac/new-journal": {
"title": "$:/config/shortcuts-mac/new-journal",
"text": "ctrl-J"
},
"$:/config/shortcuts-mac/new-tiddler": {
"title": "$:/config/shortcuts-mac/new-tiddler",
"text": "ctrl-N"
},
"$:/config/shortcuts-not-mac/bold": {
"title": "$:/config/shortcuts-not-mac/bold",
"text": "ctrl-B"
},
"$:/config/shortcuts-not-mac/italic": {
"title": "$:/config/shortcuts-not-mac/italic",
"text": "ctrl-I"
},
"$:/config/shortcuts-not-mac/underline": {
"title": "$:/config/shortcuts-not-mac/underline",
"text": "ctrl-U"
},
"$:/config/shortcuts-not-mac/new-image": {
"title": "$:/config/shortcuts-not-mac/new-image",
"text": "alt-I"
},
"$:/config/shortcuts-not-mac/new-journal": {
"title": "$:/config/shortcuts-not-mac/new-journal",
"text": "alt-J"
},
"$:/config/shortcuts-not-mac/new-tiddler": {
"title": "$:/config/shortcuts-not-mac/new-tiddler",
"text": "alt-N"
},
"$:/config/shortcuts/add-field": {
"title": "$:/config/shortcuts/add-field",
"text": "enter"
},
"$:/config/shortcuts/advanced-search": {
"title": "$:/config/shortcuts/advanced-search",
"text": "ctrl-shift-A"
},
"$:/config/shortcuts/cancel-edit-tiddler": {
"title": "$:/config/shortcuts/cancel-edit-tiddler",
"text": "escape"
},
"$:/config/shortcuts/excise": {
"title": "$:/config/shortcuts/excise",
"text": "ctrl-E"
},
"$:/config/shortcuts/sidebar-search": {
"title": "$:/config/shortcuts/sidebar-search",
"text": "ctrl-shift-F"
},
"$:/config/shortcuts/heading-1": {
"title": "$:/config/shortcuts/heading-1",
"text": "ctrl-1"
},
"$:/config/shortcuts/heading-2": {
"title": "$:/config/shortcuts/heading-2",
"text": "ctrl-2"
},
"$:/config/shortcuts/heading-3": {
"title": "$:/config/shortcuts/heading-3",
"text": "ctrl-3"
},
"$:/config/shortcuts/heading-4": {
"title": "$:/config/shortcuts/heading-4",
"text": "ctrl-4"
},
"$:/config/shortcuts/heading-5": {
"title": "$:/config/shortcuts/heading-5",
"text": "ctrl-5"
},
"$:/config/shortcuts/heading-6": {
"title": "$:/config/shortcuts/heading-6",
"text": "ctrl-6"
},
"$:/config/shortcuts/link": {
"title": "$:/config/shortcuts/link",
"text": "ctrl-L"
},
"$:/config/shortcuts/linkify": {
"title": "$:/config/shortcuts/linkify",
"text": "alt-shift-L"
},
"$:/config/shortcuts/list-bullet": {
"title": "$:/config/shortcuts/list-bullet",
"text": "ctrl-shift-L"
},
"$:/config/shortcuts/list-number": {
"title": "$:/config/shortcuts/list-number",
"text": "ctrl-shift-N"
},
"$:/config/shortcuts/mono-block": {
"title": "$:/config/shortcuts/mono-block",
"text": "ctrl-shift-M"
},
"$:/config/shortcuts/mono-line": {
"title": "$:/config/shortcuts/mono-line",
"text": "ctrl-M"
},
"$:/config/shortcuts/picture": {
"title": "$:/config/shortcuts/picture",
"text": "ctrl-shift-I"
},
"$:/config/shortcuts/preview": {
"title": "$:/config/shortcuts/preview",
"text": "alt-P"
},
"$:/config/shortcuts/quote": {
"title": "$:/config/shortcuts/quote",
"text": "ctrl-Q"
},
"$:/config/shortcuts/save-tiddler": {
"title": "$:/config/shortcuts/save-tiddler",
"text": "ctrl+enter"
},
"$:/config/shortcuts/stamp": {
"title": "$:/config/shortcuts/stamp",
"text": "ctrl-S"
},
"$:/config/shortcuts/strikethrough": {
"title": "$:/config/shortcuts/strikethrough",
"text": "ctrl-T"
},
"$:/config/shortcuts/subscript": {
"title": "$:/config/shortcuts/subscript",
"text": "ctrl-shift-B"
},
"$:/config/shortcuts/superscript": {
"title": "$:/config/shortcuts/superscript",
"text": "ctrl-shift-P"
},
"$:/config/shortcuts/toggle-sidebar": {
"title": "$:/config/shortcuts/toggle-sidebar",
"text": "alt-shift-S"
},
"$:/config/shortcuts/transcludify": {
"title": "$:/config/shortcuts/transcludify",
"text": "alt-shift-T"
},
"$:/config/ui/EditTemplate": {
"title": "$:/config/ui/EditTemplate",
"text": "$:/core/ui/EditTemplate"
},
"$:/config/ui/ViewTemplate": {
"title": "$:/config/ui/ViewTemplate",
"text": "$:/core/ui/ViewTemplate"
},
"$:/config/WikiParserRules/Inline/wikilink": {
"title": "$:/config/WikiParserRules/Inline/wikilink",
"text": "enable"
},
"$:/snippets/currpalettepreview": {
"title": "$:/snippets/currpalettepreview",
"text": "\\define swatchStyle()\nbackground-color: $(swatchColour)$;\n\\end\n\\define swatch()\n<$set name=\"swatchColour\" value={{##$(colour)$}}\n><div class=\"tc-swatch\" style=<<swatchStyle>> title=<<colour>>/></$set>\n\\end\n<div class=\"tc-swatches-horiz\"><$list filter=\"\nforeground\nbackground\nmuted-foreground\nprimary\npage-background\ntab-background\ntiddler-info-background\n\" variable=\"colour\"><<swatch>></$list></div>"
},
"$:/snippets/download-wiki-button": {
"title": "$:/snippets/download-wiki-button",
"text": "\\define lingo-base() $:/language/ControlPanel/Tools/Download/\n<$button class=\"tc-btn-big-green\">\n<$action-sendmessage $message=\"tm-download-file\" $param=\"$:/core/save/all\" filename=\"index.html\"/>\n<<lingo Full/Caption>> {{$:/core/images/save-button}}\n</$button>"
},
"$:/language": {
"title": "$:/language",
"text": "$:/languages/en-GB"
},
"$:/snippets/languageswitcher": {
"title": "$:/snippets/languageswitcher",
"text": "\\define flag-title()\n$(languagePluginTitle)$/icon\n\\end\n\n<$linkcatcher to=\"$:/language\">\n<div class=\"tc-chooser tc-language-chooser\">\n<$list filter=\"[[$:/languages/en-GB]] [plugin-type[language]sort[description]]\">\n<$set name=\"cls\" filter=\"[all[current]field:title{$:/language}]\" value=\"tc-chooser-item tc-chosen\" emptyValue=\"tc-chooser-item\"><div class=<<cls>>>\n<$link>\n<span class=\"tc-image-button\">\n<$set name=\"languagePluginTitle\" value=<<currentTiddler>>>\n<$transclude subtiddler=<<flag-title>>>\n<$list filter=\"[all[current]field:title[$:/languages/en-GB]]\">\n<$transclude tiddler=\"$:/languages/en-GB/icon\"/>\n</$list>\n</$transclude>\n</$set>\n</span>\n<$view field=\"description\">\n<$view field=\"name\">\n<$view field=\"title\"/>\n</$view>\n</$view>\n</$link>\n</div>\n</$set>\n</$list>\n</div>\n</$linkcatcher>"
},
"$:/core/macros/CSS": {
"title": "$:/core/macros/CSS",
"tags": "$:/tags/Macro",
"text": "\\define colour(name)\n<$transclude tiddler={{$:/palette}} index=\"$name$\"><$transclude tiddler=\"$:/palettes/Vanilla\" index=\"$name$\"><$transclude tiddler=\"$:/config/DefaultColourMappings/$name$\"/></$transclude></$transclude>\n\\end\n\n\\define color(name)\n<<colour $name$>>\n\\end\n\n\\define box-shadow(shadow)\n``\n -webkit-box-shadow: $shadow$;\n -moz-box-shadow: $shadow$;\n box-shadow: $shadow$;\n``\n\\end\n\n\\define filter(filter)\n``\n -webkit-filter: $filter$;\n -moz-filter: $filter$;\n filter: $filter$;\n``\n\\end\n\n\\define transition(transition)\n``\n -webkit-transition: $transition$;\n -moz-transition: $transition$;\n transition: $transition$;\n``\n\\end\n\n\\define transform-origin(origin)\n``\n -webkit-transform-origin: $origin$;\n -moz-transform-origin: $origin$;\n transform-origin: $origin$;\n``\n\\end\n\n\\define background-linear-gradient(gradient)\n``\nbackground-image: linear-gradient($gradient$);\nbackground-image: -o-linear-gradient($gradient$);\nbackground-image: -moz-linear-gradient($gradient$);\nbackground-image: -webkit-linear-gradient($gradient$);\nbackground-image: -ms-linear-gradient($gradient$);\n``\n\\end\n\n\\define column-count(columns)\n``\n-moz-column-count: $columns$;\n-webkit-column-count: $columns$;\ncolumn-count: $columns$;\n``\n\\end\n\n\\define datauri(title)\n<$macrocall $name=\"makedatauri\" type={{$title$!!type}} text={{$title$}} _canonical_uri={{$title$!!_canonical_uri}}/>\n\\end\n\n\\define if-sidebar(text)\n<$reveal state=\"$:/state/sidebar\" type=\"match\" text=\"yes\" default=\"yes\">$text$</$reveal>\n\\end\n\n\\define if-no-sidebar(text)\n<$reveal state=\"$:/state/sidebar\" type=\"nomatch\" text=\"yes\" default=\"yes\">$text$</$reveal>\n\\end\n\n\\define if-background-attachment(text)\n<$reveal state=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimage\" type=\"nomatch\" text=\"\">$text$</$reveal>\n\\end\n"
},
"$:/core/macros/colour-picker": {
"title": "$:/core/macros/colour-picker",
"tags": "$:/tags/Macro",
"text": "\\define colour-picker-update-recent()\n<$action-listops\n\t$tiddler=\"$:/config/ColourPicker/Recent\"\n\t$subfilter=\"$(colour-picker-value)$ [list[$:/config/ColourPicker/Recent]remove[$(colour-picker-value)$]] +[limit[8]]\"\n/>\n\\end\n\n\\define colour-picker-inner(actions)\n<$button tag=\"a\" tooltip=\"\"\"$(colour-picker-value)$\"\"\">\n\n$(colour-picker-update-recent)$\n\n$actions$\n\n<span style=\"display:inline-block; background-color: $(colour-picker-value)$; width: 100%; height: 100%; border-radius: 50%;\"/>\n\n</$button>\n\\end\n\n\\define colour-picker-recent-inner(actions)\n<$set name=\"colour-picker-value\" value=\"$(recentColour)$\">\n<$macrocall $name=\"colour-picker-inner\" actions=\"\"\"$actions$\"\"\"/>\n</$set>\n\\end\n\n\\define colour-picker-recent(actions)\n{{$:/language/ColourPicker/Recent}} <$list filter=\"[list[$:/config/ColourPicker/Recent]]\" variable=\"recentColour\">\n<$macrocall $name=\"colour-picker-recent-inner\" actions=\"\"\"$actions$\"\"\"/></$list>\n\\end\n\n\\define colour-picker(actions)\n<div class=\"tc-colour-chooser\">\n\n<$macrocall $name=\"colour-picker-recent\" actions=\"\"\"$actions$\"\"\"/>\n\n---\n\n<$list filter=\"LightPink Pink Crimson LavenderBlush PaleVioletRed HotPink DeepPink MediumVioletRed Orchid Thistle Plum Violet Magenta Fuchsia DarkMagenta Purple MediumOrchid DarkViolet DarkOrchid Indigo BlueViolet MediumPurple MediumSlateBlue SlateBlue DarkSlateBlue Lavender GhostWhite Blue MediumBlue MidnightBlue DarkBlue Navy RoyalBlue CornflowerBlue LightSteelBlue LightSlateGrey SlateGrey DodgerBlue AliceBlue SteelBlue LightSkyBlue SkyBlue DeepSkyBlue LightBlue PowderBlue CadetBlue Azure LightCyan PaleTurquoise Cyan Aqua DarkTurquoise DarkSlateGrey DarkCyan Teal MediumTurquoise LightSeaGreen Turquoise Aquamarine MediumAquamarine MediumSpringGreen MintCream SpringGreen MediumSeaGreen SeaGreen Honeydew LightGreen PaleGreen DarkSeaGreen LimeGreen Lime ForestGreen Green DarkGreen Chartreuse LawnGreen GreenYellow DarkOliveGreen YellowGreen OliveDrab Beige LightGoldenrodYellow Ivory LightYellow Yellow Olive DarkKhaki LemonChiffon PaleGoldenrod Khaki Gold Cornsilk Goldenrod DarkGoldenrod FloralWhite OldLace Wheat Moccasin Orange PapayaWhip BlanchedAlmond NavajoWhite AntiqueWhite Tan BurlyWood Bisque DarkOrange Linen Peru PeachPuff SandyBrown Chocolate SaddleBrown Seashell Sienna LightSalmon Coral OrangeRed DarkSalmon Tomato MistyRose Salmon Snow LightCoral RosyBrown IndianRed Red Brown FireBrick DarkRed Maroon White WhiteSmoke Gainsboro LightGrey Silver DarkGrey Grey DimGrey Black\" variable=\"colour-picker-value\">\n<$macrocall $name=\"colour-picker-inner\" actions=\"\"\"$actions$\"\"\"/>\n</$list>\n\n---\n\n<$edit-text tiddler=\"$:/config/ColourPicker/New\" tag=\"input\" default=\"\" placeholder=\"\"/>\n<$edit-text tiddler=\"$:/config/ColourPicker/New\" type=\"color\" tag=\"input\"/>\n<$set name=\"colour-picker-value\" value={{$:/config/ColourPicker/New}}>\n<$macrocall $name=\"colour-picker-inner\" actions=\"\"\"$actions$\"\"\"/>\n</$set>\n\n</div>\n\n\\end\n"
},
"$:/core/macros/copy-to-clipboard": {
"title": "$:/core/macros/copy-to-clipboard",
"tags": "$:/tags/Macro",
"text": "\\define copy-to-clipboard(src,class:\"tc-btn-invisible\",style)\n<$button class=<<__class__>> style=<<__style__>> message=\"tm-copy-to-clipboard\" param=<<__src__>> tooltip={{$:/language/Buttons/CopyToClipboard/Hint}}>\n{{$:/core/images/copy-clipboard}} <$text text={{$:/language/Buttons/CopyToClipboard/Caption}}/>\n</$button>\n\\end\n\n\\define copy-to-clipboard-above-right(src,class:\"tc-btn-invisible\",style)\n<div style=\"position: relative;\">\n<div style=\"position: absolute; bottom: 0; right: 0;\">\n<$macrocall $name=\"copy-to-clipboard\" src=<<__src__>> class=<<__class__>> style=<<__style__>>/>\n</div>\n</div>\n\\end\n\n"
},
"$:/core/macros/diff": {
"title": "$:/core/macros/diff",
"tags": "$:/tags/Macro",
"text": "\\define compareTiddlerText(sourceTiddlerTitle,sourceSubTiddlerTitle,destTiddlerTitle,destSubTiddlerTitle)\n<$set name=\"source\" tiddler=<<__sourceTiddlerTitle__>> subtiddler=<<__sourceSubTiddlerTitle__>>>\n<$set name=\"dest\" tiddler=<<__destTiddlerTitle__>> subtiddler=<<__destSubTiddlerTitle__>>>\n<$diff-text source=<<source>> dest=<<dest>>/>\n</$set>\n</$set>\n\\end\n\n\\define compareTiddlers(sourceTiddlerTitle,sourceSubTiddlerTitle,destTiddlerTitle,destSubTiddlerTitle,exclude)\n<table class=\"tc-diff-tiddlers\">\n<tbody>\n<$set name=\"sourceFields\" filter=\"[<__sourceTiddlerTitle__>fields[]sort[]]\">\n<$set name=\"destFields\" filter=\"[<__destSubTiddlerTitle__>subtiddlerfields<__destTiddlerTitle__>sort[]]\">\n<$list filter=\"[enlist<sourceFields>] [enlist<destFields>] -[enlist<__exclude__>] +[sort[]]\" variable=\"fieldName\">\n<tr>\n<th>\n<$text text=<<fieldName>>/> \n</th>\n<td>\n<$set name=\"source\" tiddler=<<__sourceTiddlerTitle__>> subtiddler=<<__sourceSubTiddlerTitle__>> field=<<fieldName>>>\n<$set name=\"dest\" tiddler=<<__destTiddlerTitle__>> subtiddler=<<__destSubTiddlerTitle__>> field=<<fieldName>>>\n<$diff-text source=<<source>> dest=<<dest>>>\n</$diff-text>\n</$set>\n</$set>\n</td>\n</tr>\n</$list>\n</$set>\n</$set>\n</tbody>\n</table>\n\\end\n"
},
"$:/core/macros/dumpvariables": {
"title": "$:/core/macros/dumpvariables",
"tags": "$:/tags/Macro",
"text": "\\define dumpvariables()\n<ul>\n<$list filter=\"[variables[]]\" variable=\"varname\">\n<li>\n<strong><code><$text text=<<varname>>/></code></strong>:<br/>\n<$codeblock code={{{ [<varname>getvariable[]] }}}/>\n</li>\n</$list>\n</ul>\n\\end\n"
},
"$:/core/macros/export": {
"title": "$:/core/macros/export",
"tags": "$:/tags/Macro",
"text": "\\define exportButtonFilename(baseFilename)\n$baseFilename$$(extension)$\n\\end\n\n\\define exportButton(exportFilter:\"[!is[system]sort[title]]\",lingoBase,baseFilename:\"tiddlers\")\n<span class=\"tc-popup-keep\"><$button popup=<<qualify \"$:/state/popup/export\">> tooltip={{$lingoBase$Hint}} aria-label={{$lingoBase$Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/export-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$lingoBase$Caption}}/></span>\n</$list>\n</$button></span><$reveal state=<<qualify \"$:/state/popup/export\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Exporter]]\">\n<$set name=\"extension\" value={{!!extension}}>\n<$button class=\"tc-btn-invisible\">\n<$action-sendmessage $message=\"tm-download-file\" $param=<<currentTiddler>> exportFilter=\"\"\"$exportFilter$\"\"\" filename=<<exportButtonFilename \"\"\"$baseFilename$\"\"\">>/>\n<$action-deletetiddler $tiddler=<<qualify \"$:/state/popup/export\">>/>\n<$transclude field=\"description\"/>\n</$button>\n</$set>\n</$list>\n</div>\n</$reveal>\n\\end\n"
},
"$:/core/macros/image-picker": {
"title": "$:/core/macros/image-picker",
"created": "20170715180840889",
"modified": "20170715180914005",
"tags": "$:/tags/Macro",
"type": "text/vnd.tiddlywiki",
"text": "\\define image-picker-thumbnail(actions)\n<$button tag=\"a\" tooltip=\"\"\"$(imageTitle)$\"\"\">\n$actions$\n<$transclude tiddler=<<imageTitle>>/>\n</$button>\n\\end\n\n\\define image-picker-list(filter,actions)\n<$list filter=\"\"\"$filter$\"\"\" variable=\"imageTitle\">\n<$macrocall $name=\"image-picker-thumbnail\" actions=\"\"\"$actions$\"\"\"/>\n</$list>\n\\end\n\n\\define image-picker(actions,filter:\"[all[shadows+tiddlers]is[image]] -[type[application/pdf]] +[!has[draft.of]$subfilter$sort[title]]\",subfilter:\"\")\n<div class=\"tc-image-chooser\">\n<$vars state-system=<<qualify \"$:/state/image-picker/system\">>>\n<$checkbox tiddler=<<state-system>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"hide\">\n{{$:/language/SystemTiddlers/Include/Prompt}}\n</$checkbox>\n<$reveal state=<<state-system>> type=\"match\" text=\"hide\" default=\"hide\" tag=\"div\">\n<$macrocall $name=\"image-picker-list\" filter=\"\"\"$filter$ +[!is[system]]\"\"\" actions=\"\"\"$actions$\"\"\"/>\n</$reveal>\n<$reveal state=<<state-system>> type=\"nomatch\" text=\"hide\" default=\"hide\" tag=\"div\">\n<$macrocall $name=\"image-picker-list\" filter=\"\"\"$filter$\"\"\" actions=\"\"\"$actions$\"\"\"/>\n</$reveal>\n</$vars>\n</div>\n\\end\n\n\\define image-picker-include-tagged-images(actions)\n<$macrocall $name=\"image-picker\" filter=\"[all[shadows+tiddlers]is[image]] [all[shadows+tiddlers]tag[$:/tags/Image]] -[type[application/pdf]] +[!has[draft.of]sort[title]]\" actions=\"\"\"$actions$\"\"\"/>\n\\end\n"
},
"$:/core/macros/lingo": {
"title": "$:/core/macros/lingo",
"tags": "$:/tags/Macro",
"text": "\\define lingo-base()\n$:/language/\n\\end\n\n\\define lingo(title)\n{{$(lingo-base)$$title$}}\n\\end\n"
},
"$:/core/macros/list": {
"title": "$:/core/macros/list",
"tags": "$:/tags/Macro",
"text": "\\define list-links(filter,type:\"ul\",subtype:\"li\",class:\"\",emptyMessage)\n\\whitespace trim\n<$type$ class=\"$class$\">\n<$list filter=\"$filter$\" emptyMessage=<<__emptyMessage__>>>\n<$subtype$>\n<$link to={{!!title}}>\n<$transclude field=\"caption\">\n<$view field=\"title\"/>\n</$transclude>\n</$link>\n</$subtype$>\n</$list>\n</$type$>\n\\end\n\n\\define list-links-draggable-drop-actions()\n<$action-listops $tiddler=<<targetTiddler>> $field=<<targetField>> $subfilter=\"+[insertbefore:currentTiddler<actionTiddler>]\"/>\n\\end\n\n\\define list-links-draggable(tiddler,field:\"list\",type:\"ul\",subtype:\"li\",class:\"\",itemTemplate)\n\\whitespace trim\n<span class=\"tc-links-draggable-list\">\n<$vars targetTiddler=\"\"\"$tiddler$\"\"\" targetField=\"\"\"$field$\"\"\">\n<$type$ class=\"$class$\">\n<$list filter=\"[list[$tiddler$!!$field$]]\">\n<$droppable actions=<<list-links-draggable-drop-actions>> tag=\"\"\"$subtype$\"\"\" enable=<<tv-enable-drag-and-drop>>>\n<div class=\"tc-droppable-placeholder\"/>\n<div>\n<$transclude tiddler=\"\"\"$itemTemplate$\"\"\">\n<$link to={{!!title}}>\n<$transclude field=\"caption\">\n<$view field=\"title\"/>\n</$transclude>\n</$link>\n</$transclude>\n</div>\n</$droppable>\n</$list>\n</$type$>\n<$tiddler tiddler=\"\">\n<$droppable actions=<<list-links-draggable-drop-actions>> tag=\"div\" enable=<<tv-enable-drag-and-drop>>>\n<div class=\"tc-droppable-placeholder\">\n \n</div>\n<div style=\"height:0.5em;\"/>\n</$droppable>\n</$tiddler>\n</$vars>\n</span>\n\\end\n\n\\define list-tagged-draggable-drop-actions(tag)\n<!-- Save the current ordering of the tiddlers with this tag -->\n<$set name=\"order\" filter=\"[<__tag__>tagging[]]\">\n<!-- Remove any list-after or list-before fields from the tiddlers with this tag -->\n<$list filter=\"[<__tag__>tagging[]]\">\n<$action-deletefield $field=\"list-before\"/>\n<$action-deletefield $field=\"list-after\"/>\n</$list>\n<!-- Save the new order to the Tag Tiddler -->\n<$action-listops $tiddler=<<__tag__>> $field=\"list\" $filter=\"+[enlist<order>] +[insertbefore:currentTiddler<actionTiddler>]\"/>\n<!-- Make sure the newly added item has the right tag -->\n<!-- Removing this line makes dragging tags within the dropdown work as intended -->\n<!--<$action-listops $tiddler=<<actionTiddler>> $tags=<<__tag__>>/>-->\n<!-- Using the following 5 lines as replacement makes dragging titles from outside into the dropdown apply the tag -->\n<$list filter=\"[<actionTiddler>!contains:tags<__tag__>]\">\n<$fieldmangler tiddler=<<actionTiddler>>>\n<$action-sendmessage $message=\"tm-add-tag\" $param=<<__tag__>>/>\n</$fieldmangler>\n</$list>\n</$set>\n\\end\n\n\\define list-tagged-draggable(tag,subFilter,emptyMessage,itemTemplate,elementTag:\"div\",storyview:\"\")\n\\whitespace trim\n<span class=\"tc-tagged-draggable-list\">\n<$set name=\"tag\" value=<<__tag__>>>\n<$list filter=\"[<__tag__>tagging[]$subFilter$]\" emptyMessage=<<__emptyMessage__>> storyview=<<__storyview__>>>\n<$elementTag$ class=\"tc-menu-list-item\">\n<$droppable actions=\"\"\"<$macrocall $name=\"list-tagged-draggable-drop-actions\" tag=<<__tag__>>/>\"\"\" enable=<<tv-enable-drag-and-drop>>>\n<$elementTag$ class=\"tc-droppable-placeholder\"/>\n<$elementTag$>\n<$transclude tiddler=\"\"\"$itemTemplate$\"\"\">\n<$link to={{!!title}}>\n<$view field=\"title\"/>\n</$link>\n</$transclude>\n</$elementTag$>\n</$droppable>\n</$elementTag$>\n</$list>\n<$tiddler tiddler=\"\">\n<$droppable actions=\"\"\"<$macrocall $name=\"list-tagged-draggable-drop-actions\" tag=<<__tag__>>/>\"\"\" enable=<<tv-enable-drag-and-drop>>>\n<$elementTag$ class=\"tc-droppable-placeholder\"/>\n<$elementTag$ style=\"height:0.5em;\">\n</$elementTag$>\n</$droppable>\n</$tiddler>\n</$set>\n</span>\n\\end\n"
},
"$:/core/macros/tabs": {
"title": "$:/core/macros/tabs",
"tags": "$:/tags/Macro",
"text": "\\define tabs(tabsList,default,state:\"$:/state/tab\",class,template,buttonTemplate,retain)\n<div class=\"tc-tab-set $class$\">\n<div class=\"tc-tab-buttons $class$\">\n<$list filter=\"$tabsList$\" variable=\"currentTab\" storyview=\"pop\"><$set name=\"save-currentTiddler\" value=<<currentTiddler>>><$tiddler tiddler=<<currentTab>>><$button set=<<qualify \"$state$\">> setTo=<<currentTab>> default=\"$default$\" selectedClass=\"tc-tab-selected\" tooltip={{!!tooltip}}>\n<$tiddler tiddler=<<save-currentTiddler>>>\n<$set name=\"tv-wikilinks\" value=\"no\">\n<$transclude tiddler=\"$buttonTemplate$\" mode=\"inline\">\n<$transclude tiddler=<<currentTab>> field=\"caption\">\n<$macrocall $name=\"currentTab\" $type=\"text/plain\" $output=\"text/plain\"/>\n</$transclude>\n</$transclude>\n</$set></$tiddler></$button></$tiddler></$set></$list>\n</div>\n<div class=\"tc-tab-divider $class$\"/>\n<div class=\"tc-tab-content $class$\">\n<$list filter=\"$tabsList$\" variable=\"currentTab\">\n\n<$reveal type=\"match\" state=<<qualify \"$state$\">> text=<<currentTab>> default=\"$default$\" retain=\"\"\"$retain$\"\"\">\n\n<$transclude tiddler=\"$template$\" mode=\"block\">\n\n<$transclude tiddler=<<currentTab>> mode=\"block\"/>\n\n</$transclude>\n\n</$reveal>\n\n</$list>\n</div>\n</div>\n\\end\n"
},
"$:/core/macros/tag-picker": {
"title": "$:/core/macros/tag-picker",
"tags": "$:/tags/Macro",
"text": "\\define add-tag-actions()\n<$action-sendmessage $message=\"tm-add-tag\" $param={{{ [<newTagNameTiddler>get[text]] }}}/>\n<$action-deletetiddler $tiddler=<<newTagNameTiddler>>/>\n\\end\n\n\\define tag-button()\n<$button class=\"tc-btn-invisible\" tag=\"a\" tooltip={{$:/language/EditTemplate/Tags/Add/Button/Hint}}>\n<$action-sendmessage $message=\"tm-add-tag\" $param=<<tag>>/>\n<$action-deletetiddler $tiddler=<<newTagNameTiddler>>/>\n<$macrocall $name=\"tag-pill\" tag=<<tag>>/>\n</$button>\n\\end\n\n\\define tag-picker-inner()\n\\whitespace trim\n<div class=\"tc-edit-add-tag\">\n<span class=\"tc-add-tag-name\">\n<$keyboard key=\"ENTER\" actions=<<add-tag-actions>>>\n<$edit-text tiddler=<<newTagNameTiddler>> tag=\"input\" default=\"\" placeholder={{$:/language/EditTemplate/Tags/Add/Placeholder}} focusPopup=<<qualify \"$:/state/popup/tags-auto-complete\">> class=\"tc-edit-texteditor tc-popup-handle\" tabindex=<<tabIndex>> focus={{{ [{$:/config/AutoFocus}match[tags]then[true]] ~[[false]] }}}/>\n</$keyboard>\n</span> <$button popup=<<qualify \"$:/state/popup/tags-auto-complete\">> class=\"tc-btn-invisible\" tooltip={{$:/language/EditTemplate/Tags/Dropdown/Hint}} aria-label={{$:/language/EditTemplate/Tags/Dropdown/Caption}}>{{$:/core/images/down-arrow}}</$button> <span class=\"tc-add-tag-button\">\n<$set name=\"tag\" value={{{ [<newTagNameTiddler>get[text]] }}}>\n<$button set=\"$:/temp/NewTagName\" setTo=\"\" class=\"\">\n<<add-tag-actions>>\n<$action-deletetiddler $tiddler=<<newTagNameTiddler>>/>\n{{$:/language/EditTemplate/Tags/Add/Button}}\n</$button>\n</$set>\n</span>\n</div>\n<div class=\"tc-block-dropdown-wrapper\">\n<$reveal state=<<qualify \"$:/state/popup/tags-auto-complete\">> type=\"nomatch\" text=\"\" default=\"\">\n<div class=\"tc-block-dropdown\">\n<$set name=\"newTagName\" value={{{ [<newTagNameTiddler>get[text]] }}}>\n<$list filter=\"[<newTagName>minlength{$:/config/Tags/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n<$list filter=\"[tags[]!is[system]search:title<newTagName>sort[]]\" variable=\"tag\">\n<<tag-button>>\n</$list></$list>\n<hr>\n<$list filter=\"[<newTagName>minlength{$:/config/Tags/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n<$list filter=\"[tags[]is[system]search:title<newTagName>sort[]]\" variable=\"tag\">\n<<tag-button>>\n</$list></$list>\n</$set>\n</div>\n</$reveal>\n</div>\n\\end\n\\define tag-picker()\n\\whitespace trim\n<$list filter=\"[<newTagNameTiddler>match[]]\" emptyMessage=<<tag-picker-inner>>>\n<$set name=\"newTagNameTiddler\" value=<<qualify \"$:/temp/NewTagName\">>>\n<<tag-picker-inner>>\n</$set>\n</$list>\n\\end\n"
},
"$:/core/macros/tag": {
"title": "$:/core/macros/tag",
"tags": "$:/tags/Macro",
"text": "\\define tag-pill-styles()\nbackground-color:$(backgroundColor)$;\nfill:$(foregroundColor)$;\ncolor:$(foregroundColor)$;\n\\end\n\n\\define tag-pill-inner(tag,icon,colour,fallbackTarget,colourA,colourB,element-tag,element-attributes,actions)\n<$vars foregroundColor=<<contrastcolour target:\"\"\"$colour$\"\"\" fallbackTarget:\"\"\"$fallbackTarget$\"\"\" colourA:\"\"\"$colourA$\"\"\" colourB:\"\"\"$colourB$\"\"\">> backgroundColor=\"\"\"$colour$\"\"\">\n<$element-tag$ $element-attributes$ class=\"tc-tag-label tc-btn-invisible\" style=<<tag-pill-styles>>>\n$actions$<$transclude tiddler=\"\"\"$icon$\"\"\"/><$view tiddler=<<__tag__>> field=\"title\" format=\"text\" />\n</$element-tag$>\n</$vars>\n\\end\n\n\\define tag-pill-body(tag,icon,colour,palette,element-tag,element-attributes,actions)\n<$macrocall $name=\"tag-pill-inner\" tag=<<__tag__>> icon=\"\"\"$icon$\"\"\" colour=\"\"\"$colour$\"\"\" fallbackTarget={{$palette$##tag-background}} colourA={{$palette$##foreground}} colourB={{$palette$##background}} element-tag=\"\"\"$element-tag$\"\"\" element-attributes=\"\"\"$element-attributes$\"\"\" actions=\"\"\"$actions$\"\"\"/>\n\\end\n\n\\define tag-pill(tag,element-tag:\"span\",element-attributes:\"\",actions:\"\")\n<span class=\"tc-tag-list-item\">\n<$macrocall $name=\"tag-pill-body\" tag=<<__tag__>> icon={{{ [<__tag__>get[icon]] }}} colour={{{ [<__tag__>get[color]] }}} palette={{$:/palette}} element-tag=\"\"\"$element-tag$\"\"\" element-attributes=\"\"\"$element-attributes$\"\"\" actions=\"\"\"$actions$\"\"\"/>\n</span>\n\\end\n\n\\define tag(tag)\n{{$tag$||$:/core/ui/TagTemplate}}\n\\end\n"
},
"$:/core/macros/thumbnails": {
"title": "$:/core/macros/thumbnails",
"tags": "$:/tags/Macro",
"text": "\\define thumbnail(link,icon,color,background-color,image,caption,width:\"280\",height:\"157\")\n<$link to=\"\"\"$link$\"\"\"><div class=\"tc-thumbnail-wrapper\">\n<div class=\"tc-thumbnail-image\" style=\"width:$width$px;height:$height$px;\"><$reveal type=\"nomatch\" text=\"\" default=\"\"\"$image$\"\"\" tag=\"div\" style=\"width:$width$px;height:$height$px;\">\n[img[$image$]]\n</$reveal><$reveal type=\"match\" text=\"\" default=\"\"\"$image$\"\"\" tag=\"div\" class=\"tc-thumbnail-background\" style=\"width:$width$px;height:$height$px;background-color:$background-color$;\"></$reveal></div><div class=\"tc-thumbnail-icon\" style=\"fill:$color$;color:$color$;\">\n$icon$\n</div><div class=\"tc-thumbnail-caption\">\n$caption$\n</div>\n</div></$link>\n\\end\n\n\\define thumbnail-right(link,icon,color,background-color,image,caption,width:\"280\",height:\"157\")\n<div class=\"tc-thumbnail-right-wrapper\"><<thumbnail \"\"\"$link$\"\"\" \"\"\"$icon$\"\"\" \"\"\"$color$\"\"\" \"\"\"$background-color$\"\"\" \"\"\"$image$\"\"\" \"\"\"$caption$\"\"\" \"\"\"$width$\"\"\" \"\"\"$height$\"\"\">></div>\n\\end\n\n\\define list-thumbnails(filter,width:\"280\",height:\"157\")\n<$list filter=\"\"\"$filter$\"\"\"><$macrocall $name=\"thumbnail\" link={{!!link}} icon={{!!icon}} color={{!!color}} background-color={{!!background-color}} image={{!!image}} caption={{!!caption}} width=\"\"\"$width$\"\"\" height=\"\"\"$height$\"\"\"/></$list>\n\\end\n"
},
"$:/core/macros/timeline": {
"title": "$:/core/macros/timeline",
"created": "20141212105914482",
"modified": "20141212110330815",
"tags": "$:/tags/Macro",
"text": "\\define timeline-title()\n\\whitespace trim\n<!-- Override this macro with a global macro \n of the same name if you need to change \n how titles are displayed on the timeline \n -->\n<$view field=\"title\"/>\n\\end\n\\define timeline(limit:\"100\",format:\"DDth MMM YYYY\",subfilter:\"\",dateField:\"modified\")\n<div class=\"tc-timeline\">\n<$list filter=\"[!is[system]$subfilter$has[$dateField$]!sort[$dateField$]limit[$limit$]eachday[$dateField$]]\">\n<div class=\"tc-menu-list-item\">\n<$view field=\"$dateField$\" format=\"date\" template=\"$format$\"/>\n<$list filter=\"[sameday:$dateField${!!$dateField$}!is[system]$subfilter$!sort[$dateField$]]\">\n<div class=\"tc-menu-list-subitem\">\n<$link to={{!!title}}><<timeline-title>></$link>\n</div>\n</$list>\n</div>\n</$list>\n</div>\n\\end\n"
},
"$:/core/macros/toc": {
"title": "$:/core/macros/toc",
"tags": "$:/tags/Macro",
"text": "\\define toc-caption()\n<$set name=\"tv-wikilinks\" value=\"no\">\n <$transclude field=\"caption\">\n <$view field=\"title\"/>\n </$transclude>\n</$set>\n\\end\n\n\\define toc-body(tag,sort:\"\",itemClassFilter,exclude,path)\n<ol class=\"tc-toc\">\n <$list filter=\"\"\"[all[shadows+tiddlers]tag<__tag__>!has[draft.of]$sort$] -[<__tag__>] -[enlist<__exclude__>]\"\"\">\n <$vars item=<<currentTiddler>> path={{{ [<__path__>addsuffix[/]addsuffix<__tag__>] }}}>\n <$set name=\"excluded\" filter=\"\"\"[enlist<__exclude__>] [<__tag__>]\"\"\">\n <$set name=\"toc-item-class\" filter=<<__itemClassFilter__>> emptyValue=\"toc-item-selected\" value=\"toc-item\">\n <li class=<<toc-item-class>>>\n <$list filter=\"[all[current]toc-link[no]]\" emptyMessage=\"<$link><$view field='caption'><$view field='title'/></$view></$link>\">\n <<toc-caption>>\n </$list>\n <$macrocall $name=\"toc-body\" tag=<<item>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> exclude=<<excluded>> path=<<path>>/>\n </li>\n </$set>\n </$set>\n </$vars>\n </$list>\n</ol>\n\\end\n\n\\define toc(tag,sort:\"\",itemClassFilter:\"\")\n<$macrocall $name=\"toc-body\" tag=<<__tag__>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> />\n\\end\n\n\\define toc-linked-expandable-body(tag,sort:\"\",itemClassFilter,exclude,path)\n<!-- helper function -->\n<$qualify name=\"toc-state\" title={{{ [[$:/state/toc]addsuffix<__path__>addsuffix[-]addsuffix<currentTiddler>] }}}>\n <$set name=\"toc-item-class\" filter=<<__itemClassFilter__>> emptyValue=\"toc-item-selected\" value=\"toc-item\">\n <li class=<<toc-item-class>>>\n <$link>\n <$reveal type=\"nomatch\" stateTitle=<<toc-state>> text=\"open\">\n <$button setTitle=<<toc-state>> setTo=\"open\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/right-arrow}}\n </$button>\n </$reveal>\n <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n <$button setTitle=<<toc-state>> setTo=\"close\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/down-arrow}}\n </$button>\n </$reveal>\n <<toc-caption>>\n </$link>\n <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n <$macrocall $name=\"toc-expandable\" tag=<<currentTiddler>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> exclude=<<__exclude__>> path=<<__path__>>/>\n </$reveal>\n </li>\n </$set>\n</$qualify>\n\\end\n\n\\define toc-unlinked-expandable-body(tag,sort:\"\",itemClassFilter,exclude,path)\n<!-- helper function -->\n<$qualify name=\"toc-state\" title={{{ [[$:/state/toc]addsuffix<__path__>addsuffix[-]addsuffix<currentTiddler>] }}}>\n <$set name=\"toc-item-class\" filter=<<__itemClassFilter__>> emptyValue=\"toc-item-selected\" value=\"toc-item\">\n <li class=<<toc-item-class>>>\n <$reveal type=\"nomatch\" stateTitle=<<toc-state>> text=\"open\">\n <$button setTitle=<<toc-state>> setTo=\"open\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/right-arrow}}\n <<toc-caption>>\n </$button>\n </$reveal>\n <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n <$button setTitle=<<toc-state>> setTo=\"close\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/down-arrow}}\n <<toc-caption>>\n </$button>\n </$reveal>\n <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n <$macrocall $name=\"toc-expandable\" tag=<<currentTiddler>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> exclude=<<__exclude__>> path=<<__path__>>/>\n </$reveal>\n </li>\n </$set>\n</$qualify>\n\\end\n\n\\define toc-expandable-empty-message()\n<$macrocall $name=\"toc-linked-expandable-body\" tag=<<tag>> sort=<<sort>> itemClassFilter=<<itemClassFilter>> exclude=<<excluded>> path=<<path>>/>\n\\end\n\n\\define toc-expandable(tag,sort:\"\",itemClassFilter:\"\",exclude,path)\n<$vars tag=<<__tag__>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> path={{{ [<__path__>addsuffix[/]addsuffix<__tag__>] }}}>\n <$set name=\"excluded\" filter=\"\"\"[enlist<__exclude__>] [<__tag__>]\"\"\">\n <ol class=\"tc-toc toc-expandable\">\n <$list filter=\"\"\"[all[shadows+tiddlers]tag<__tag__>!has[draft.of]$sort$] -[<__tag__>] -[enlist<__exclude__>]\"\"\">\n <$list filter=\"[all[current]toc-link[no]]\" emptyMessage=<<toc-expandable-empty-message>> >\n <$macrocall $name=\"toc-unlinked-expandable-body\" tag=<<__tag__>> sort=<<__sort__>> itemClassFilter=\"\"\"itemClassFilter\"\"\" exclude=<<excluded>> path=<<path>> />\n </$list>\n </$list>\n </ol>\n </$set>\n</$vars>\n\\end\n\n\\define toc-linked-selective-expandable-body(tag,sort:\"\",itemClassFilter,exclude,path)\n<$qualify name=\"toc-state\" title={{{ [[$:/state/toc]addsuffix<__path__>addsuffix[-]addsuffix<currentTiddler>] }}}>\n <$set name=\"toc-item-class\" filter=<<__itemClassFilter__>> emptyValue=\"toc-item-selected\" value=\"toc-item\" >\n <li class=<<toc-item-class>>>\n <$link>\n <$list filter=\"[all[current]tagging[]$sort$limit[1]]\" variable=\"ignore\" emptyMessage=\"<$button class='tc-btn-invisible'>{{$:/core/images/blank}}</$button>\">\n <$reveal type=\"nomatch\" stateTitle=<<toc-state>> text=\"open\">\n <$button setTitle=<<toc-state>> setTo=\"open\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/right-arrow}}\n </$button>\n </$reveal>\n <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n <$button setTitle=<<toc-state>> setTo=\"close\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/down-arrow}}\n </$button>\n </$reveal>\n </$list>\n <<toc-caption>>\n </$link>\n <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n <$macrocall $name=\"toc-selective-expandable\" tag=<<currentTiddler>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> exclude=<<__exclude__>> path=<<__path__>>/>\n </$reveal>\n </li>\n </$set>\n</$qualify>\n\\end\n\n\\define toc-unlinked-selective-expandable-body(tag,sort:\"\",itemClassFilter,exclude,path)\n<$qualify name=\"toc-state\" title={{{ [[$:/state/toc]addsuffix<__path__>addsuffix[-]addsuffix<currentTiddler>] }}}>\n <$set name=\"toc-item-class\" filter=<<__itemClassFilter__>> emptyValue=\"toc-item-selected\" value=\"toc-item\">\n <li class=<<toc-item-class>>>\n <$list filter=\"[all[current]tagging[]$sort$limit[1]]\" variable=\"ignore\" emptyMessage=\"<$button class='tc-btn-invisible'>{{$:/core/images/blank}}</$button> <$view field='caption'><$view field='title'/></$view>\">\n <$reveal type=\"nomatch\" stateTitle=<<toc-state>> text=\"open\">\n <$button setTitle=<<toc-state>> setTo=\"open\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/right-arrow}}\n <<toc-caption>>\n </$button>\n </$reveal>\n <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n <$button setTitle=<<toc-state>> setTo=\"close\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/down-arrow}}\n <<toc-caption>>\n </$button>\n </$reveal>\n </$list>\n <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n <$macrocall $name=\"toc-selective-expandable\" tag=<<currentTiddler>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> exclude=<<__exclude__>> path=<<__path__>>/>\n </$reveal>\n </li>\n </$set>\n</$qualify>\n\\end\n\n\\define toc-selective-expandable-empty-message()\n<$macrocall $name=\"toc-linked-selective-expandable-body\" tag=<<tag>> sort=<<sort>> itemClassFilter=<<itemClassFilter>> exclude=<<excluded>> path=<<path>>/>\n\\end\n\n\\define toc-selective-expandable(tag,sort:\"\",itemClassFilter,exclude,path)\n<$vars tag=<<__tag__>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> path={{{ [<__path__>addsuffix[/]addsuffix<__tag__>] }}}>\n <$set name=\"excluded\" filter=\"\"\"[enlist<__exclude__>] [<__tag__>]\"\"\">\n <ol class=\"tc-toc toc-selective-expandable\">\n <$list filter=\"\"\"[all[shadows+tiddlers]tag<__tag__>!has[draft.of]$sort$] -[<__tag__>] -[enlist<__exclude__>]\"\"\">\n <$list filter=\"[all[current]toc-link[no]]\" variable=\"ignore\" emptyMessage=<<toc-selective-expandable-empty-message>> >\n <$macrocall $name=\"toc-unlinked-selective-expandable-body\" tag=<<__tag__>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> exclude=<<excluded>> path=<<path>>/>\n </$list>\n </$list>\n </ol>\n </$set>\n</$vars>\n\\end\n\n\\define toc-tabbed-external-nav(tag,sort:\"\",selectedTiddler:\"$:/temp/toc/selectedTiddler\",unselectedText,missingText,template:\"\")\n<$tiddler tiddler={{{ [<__selectedTiddler__>get[text]] }}}>\n <div class=\"tc-tabbed-table-of-contents\">\n <$linkcatcher to=<<__selectedTiddler__>>>\n <div class=\"tc-table-of-contents\">\n <$macrocall $name=\"toc-selective-expandable\" tag=<<__tag__>> sort=<<__sort__>> itemClassFilter=\"[all[current]] -[<__selectedTiddler__>get[text]]\"/>\n </div>\n </$linkcatcher>\n <div class=\"tc-tabbed-table-of-contents-content\">\n <$reveal stateTitle=<<__selectedTiddler__>> type=\"nomatch\" text=\"\">\n <$transclude mode=\"block\" tiddler=<<__template__>>>\n <h1><<toc-caption>></h1>\n <$transclude mode=\"block\">$missingText$</$transclude>\n </$transclude>\n </$reveal>\n <$reveal stateTitle=<<__selectedTiddler__>> type=\"match\" text=\"\">\n $unselectedText$\n </$reveal>\n </div>\n </div>\n</$tiddler>\n\\end\n\n\\define toc-tabbed-internal-nav(tag,sort:\"\",selectedTiddler:\"$:/temp/toc/selectedTiddler\",unselectedText,missingText,template:\"\")\n<$linkcatcher to=<<__selectedTiddler__>>>\n <$macrocall $name=\"toc-tabbed-external-nav\" tag=<<__tag__>> sort=<<__sort__>> selectedTiddler=<<__selectedTiddler__>> unselectedText=<<__unselectedText__>> missingText=<<__missingText__>> template=<<__template__>>/>\n</$linkcatcher>\n\\end\n\n"
},
"$:/core/macros/translink": {
"title": "$:/core/macros/translink",
"tags": "$:/tags/Macro",
"text": "\\define translink(title,mode:\"block\")\n<div style=\"border:1px solid #ccc; padding: 0.5em; background: black; foreground; white;\">\n<$link to=\"\"\"$title$\"\"\">\n<$text text=\"\"\"$title$\"\"\"/>\n</$link>\n<div style=\"border:1px solid #ccc; padding: 0.5em; background: white; foreground; black;\">\n<$transclude tiddler=\"\"\"$title$\"\"\" mode=\"$mode$\">\n\"<$text text=\"\"\"$title$\"\"\"/>\" is missing\n</$transclude>\n</div>\n</div>\n\\end\n"
},
"$:/core/macros/tree": {
"title": "$:/core/macros/tree",
"tags": "$:/tags/Macro",
"text": "\\define leaf-link(full-title,chunk,separator: \"/\")\n<$link to=<<__full-title__>>><$text text=<<__chunk__>>/></$link>\n\\end\n\n\\define leaf-node(prefix,chunk)\n<li>\n<$list filter=\"[<__prefix__>addsuffix<__chunk__>is[shadow]] [<__prefix__>addsuffix<__chunk__>is[tiddler]]\" variable=\"full-title\">\n<$list filter=\"[<full-title>removeprefix<__prefix__>]\" variable=\"chunk\">\n<span>{{$:/core/images/file}}</span> <$macrocall $name=\"leaf-link\" full-title=<<full-title>> chunk=<<chunk>>/>\n</$list>\n</$list>\n</li>\n\\end\n\n\\define branch-node(prefix,chunk,separator: \"/\")\n<li>\n<$set name=\"reveal-state\" value={{{ [[$:/state/tree/]addsuffix<__prefix__>addsuffix<__chunk__>] }}}>\n<$reveal type=\"nomatch\" stateTitle=<<reveal-state>> text=\"show\">\n<$button setTitle=<<reveal-state>> setTo=\"show\" class=\"tc-btn-invisible\">\n{{$:/core/images/folder}} <$text text=<<__chunk__>>/>\n</$button>\n</$reveal>\n<$reveal type=\"match\" stateTitle=<<reveal-state>> text=\"show\">\n<$button setTitle=<<reveal-state>> setTo=\"hide\" class=\"tc-btn-invisible\">\n{{$:/core/images/folder}} <$text text=<<__chunk__>>/>\n</$button>\n</$reveal>\n<span>(<$count filter=\"[all[shadows+tiddlers]removeprefix<__prefix__>removeprefix<__chunk__>] -[<__prefix__>addsuffix<__chunk__>]\"/>)</span>\n<$reveal type=\"match\" stateTitle=<<reveal-state>> text=\"show\">\n<$macrocall $name=\"tree-node\" prefix={{{ [<__prefix__>addsuffix<__chunk__>] }}} separator=<<__separator__>>/>\n</$reveal>\n</$set>\n</li>\n\\end\n\n\\define tree-node(prefix,separator: \"/\")\n<ol>\n<$list filter=\"[all[shadows+tiddlers]removeprefix<__prefix__>splitbefore<__separator__>sort[]!suffix<__separator__>]\" variable=\"chunk\">\n<$macrocall $name=\"leaf-node\" prefix=<<__prefix__>> chunk=<<chunk>> separator=<<__separator__>>/>\n</$list>\n<$list filter=\"[all[shadows+tiddlers]removeprefix<__prefix__>splitbefore<__separator__>sort[]suffix<__separator__>]\" variable=\"chunk\">\n<$macrocall $name=\"branch-node\" prefix=<<__prefix__>> chunk=<<chunk>> separator=<<__separator__>>/>\n</$list>\n</ol>\n\\end\n\n\\define tree(prefix: \"$:/\",separator: \"/\")\n<div class=\"tc-tree\">\n<span><$text text=<<__prefix__>>/></span>\n<div>\n<$macrocall $name=\"tree-node\" prefix=<<__prefix__>> separator=<<__separator__>>/>\n</div>\n</div>\n\\end\n"
},
"$:/core/macros/utils": {
"title": "$:/core/macros/utils",
"text": "\\define colour(colour)\n$colour$\n\\end\n"
},
"$:/snippets/minifocusswitcher": {
"title": "$:/snippets/minifocusswitcher",
"text": "<$select tiddler=\"$:/config/AutoFocus\">\n<$list filter=\"title tags text type fields\">\n<option value=<<currentTiddler>>><<currentTiddler>></option>\n</$list>\n</$select>\n"
},
"$:/snippets/minilanguageswitcher": {
"title": "$:/snippets/minilanguageswitcher",
"text": "<$select tiddler=\"$:/language\">\n<$list filter=\"[[$:/languages/en-GB]] [plugin-type[language]sort[title]]\">\n<option value=<<currentTiddler>>><$view field=\"description\"><$view field=\"name\"><$view field=\"title\"/></$view></$view></option>\n</$list>\n</$select>"
},
"$:/snippets/minithemeswitcher": {
"title": "$:/snippets/minithemeswitcher",
"text": "\\define lingo-base() $:/language/ControlPanel/Theme/\n<<lingo Prompt>> <$select tiddler=\"$:/theme\">\n<$list filter=\"[plugin-type[theme]sort[title]]\">\n<option value=<<currentTiddler>>><$view field=\"name\"><$view field=\"title\"/></$view></option>\n</$list>\n</$select>"
},
"$:/snippets/modules": {
"title": "$:/snippets/modules",
"text": "\\define describeModuleType(type)\n{{$:/language/Docs/ModuleTypes/$type$}}\n\\end\n<$list filter=\"[moduletypes[]]\">\n\n!! <$macrocall $name=\"currentTiddler\" $type=\"text/plain\" $output=\"text/plain\"/>\n\n<$macrocall $name=\"describeModuleType\" type=<<currentTiddler>>/>\n\n<ul><$list filter=\"[all[current]modules[]]\"><li><$link><<currentTiddler>></$link>\n</li>\n</$list>\n</ul>\n</$list>\n"
},
"$:/palette": {
"title": "$:/palette",
"text": "$:/palettes/Vanilla"
},
"$:/snippets/paletteeditor": {
"title": "$:/snippets/paletteeditor",
"text": "<$transclude tiddler=\"$:/PaletteManager\"/>\n"
},
"$:/snippets/palettepreview": {
"title": "$:/snippets/palettepreview",
"text": "<$set name=\"currentTiddler\" value={{$:/palette}}>\n{{||$:/snippets/currpalettepreview}}\n</$set>\n"
},
"$:/snippets/paletteswitcher": {
"title": "$:/snippets/paletteswitcher",
"text": "<$linkcatcher to=\"$:/palette\">\n<div class=\"tc-chooser\"><$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Palette]sort[name]]\"><$set name=\"cls\" filter=\"[all[current]prefix{$:/palette}]\" value=\"tc-chooser-item tc-chosen\" emptyValue=\"tc-chooser-item\"><div class=<<cls>>><$link to={{!!title}}>''<$view field=\"name\" format=\"text\"/>'' - <$view field=\"description\" format=\"text\"/>{{||$:/snippets/currpalettepreview}}</$link>\n</div></$set>\n</$list>\n</div>\n</$linkcatcher>\n"
},
"$:/snippets/peek-stylesheets": {
"title": "$:/snippets/peek-stylesheets",
"text": "\\define expandable-stylesheets-list()\n<ol>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Stylesheet]!has[draft.of]]\">\n<$vars state=<<qualify \"$:/state/peek-stylesheets/open/\">>>\n<$set name=\"state\" value={{{ [<state>addsuffix<currentTiddler>] }}}>\n<li>\n<$reveal type=\"match\" state=<<state>> text=\"yes\" tag=\"span\">\n<$button set=<<state>> setTo=\"no\" class=\"tc-btn-invisible\">\n{{$:/core/images/down-arrow}}\n</$button>\n</$reveal>\n<$reveal type=\"nomatch\" state=<<state>> text=\"yes\" tag=\"span\">\n<$button set=<<state>> setTo=\"yes\" class=\"tc-btn-invisible\">\n{{$:/core/images/right-arrow}}\n</$button>\n</$reveal>\n<$link>\n<$view field=\"title\"/>\n</$link>\n<$reveal type=\"match\" state=<<state>> text=\"yes\" tag=\"div\">\n<$set name=\"source\" tiddler=<<currentTiddler>>>\n<$wikify name=\"styles\" text=<<source>>>\n<pre>\n<code>\n<$text text=<<styles>>/>\n</code>\n</pre>\n</$wikify>\n</$set>\n</$reveal>\n</li>\n</$set>\n</$vars>\n</$list>\n</ol>\n\\end\n\n\\define stylesheets-list()\n<ol>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Stylesheet]!has[draft.of]]\">\n<li>\n<$link>\n<$view field=\"title\"/>\n</$link>\n<$set name=\"source\" tiddler=<<currentTiddler>>>\n<$wikify name=\"styles\" text=<<source>>>\n<pre>\n<code>\n<$text text=<<styles>>/>\n</code>\n</pre>\n</$wikify>\n</$set>\n</li>\n</$list>\n</ol>\n\\end\n\n<$vars modeState=<<qualify \"$:/state/peek-stylesheets/mode/\">>>\n\n<$reveal type=\"nomatch\" state=<<modeState>> text=\"expanded\" tag=\"div\">\n<$button set=<<modeState>> setTo=\"expanded\" class=\"tc-btn-invisible\">{{$:/core/images/chevron-right}} {{$:/language/ControlPanel/Stylesheets/Expand/Caption}}</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<modeState>> text=\"expanded\" tag=\"div\">\n<$button set=<<modeState>> setTo=\"restored\" class=\"tc-btn-invisible\">{{$:/core/images/chevron-down}} {{$:/language/ControlPanel/Stylesheets/Restore/Caption}}</$button>\n</$reveal>\n\n<$reveal type=\"nomatch\" state=<<modeState>> text=\"expanded\" tag=\"div\">\n<<expandable-stylesheets-list>>\n</$reveal>\n<$reveal type=\"match\" state=<<modeState>> text=\"expanded\" tag=\"div\">\n<<stylesheets-list>>\n</$reveal>\n\n</$vars>\n"
},
"$:/temp/search": {
"title": "$:/temp/search",
"text": ""
},
"$:/tags/AdvancedSearch": {
"title": "$:/tags/AdvancedSearch",
"list": "[[$:/core/ui/AdvancedSearch/Standard]] [[$:/core/ui/AdvancedSearch/System]] [[$:/core/ui/AdvancedSearch/Shadows]] [[$:/core/ui/AdvancedSearch/Filter]]"
},
"$:/tags/AdvancedSearch/FilterButton": {
"title": "$:/tags/AdvancedSearch/FilterButton",
"list": "$:/core/ui/AdvancedSearch/Filter/FilterButtons/dropdown $:/core/ui/AdvancedSearch/Filter/FilterButtons/clear $:/core/ui/AdvancedSearch/Filter/FilterButtons/export $:/core/ui/AdvancedSearch/Filter/FilterButtons/delete"
},
"$:/tags/ControlPanel": {
"title": "$:/tags/ControlPanel",
"list": "$:/core/ui/ControlPanel/Info $:/core/ui/ControlPanel/Appearance $:/core/ui/ControlPanel/Settings $:/core/ui/ControlPanel/Saving $:/core/ui/ControlPanel/Plugins $:/core/ui/ControlPanel/Tools $:/core/ui/ControlPanel/Internals"
},
"$:/tags/ControlPanel/Info": {
"title": "$:/tags/ControlPanel/Info",
"list": "$:/core/ui/ControlPanel/Basics $:/core/ui/ControlPanel/Advanced"
},
"$:/tags/ControlPanel/Plugins": {
"title": "$:/tags/ControlPanel/Plugins",
"list": "[[$:/core/ui/ControlPanel/Plugins/Installed]] [[$:/core/ui/ControlPanel/Plugins/Add]]"
},
"$:/tags/EditTemplate": {
"title": "$:/tags/EditTemplate",
"list": "[[$:/core/ui/EditTemplate/controls]] [[$:/core/ui/EditTemplate/title]] [[$:/core/ui/EditTemplate/tags]] [[$:/core/ui/EditTemplate/shadow]] [[$:/core/ui/ViewTemplate/classic]] [[$:/core/ui/EditTemplate/body]] [[$:/core/ui/EditTemplate/type]] [[$:/core/ui/EditTemplate/fields]]"
},
"$:/tags/EditToolbar": {
"title": "$:/tags/EditToolbar",
"list": "[[$:/core/ui/Buttons/delete]] [[$:/core/ui/Buttons/cancel]] [[$:/core/ui/Buttons/save]]"
},
"$:/tags/EditorToolbar": {
"title": "$:/tags/EditorToolbar",
"list": "$:/core/ui/EditorToolbar/paint $:/core/ui/EditorToolbar/opacity $:/core/ui/EditorToolbar/line-width $:/core/ui/EditorToolbar/rotate-left $:/core/ui/EditorToolbar/clear $:/core/ui/EditorToolbar/bold $:/core/ui/EditorToolbar/italic $:/core/ui/EditorToolbar/strikethrough $:/core/ui/EditorToolbar/underline $:/core/ui/EditorToolbar/superscript $:/core/ui/EditorToolbar/subscript $:/core/ui/EditorToolbar/mono-line $:/core/ui/EditorToolbar/mono-block $:/core/ui/EditorToolbar/quote $:/core/ui/EditorToolbar/list-bullet $:/core/ui/EditorToolbar/list-number $:/core/ui/EditorToolbar/heading-1 $:/core/ui/EditorToolbar/heading-2 $:/core/ui/EditorToolbar/heading-3 $:/core/ui/EditorToolbar/heading-4 $:/core/ui/EditorToolbar/heading-5 $:/core/ui/EditorToolbar/heading-6 $:/core/ui/EditorToolbar/link $:/core/ui/EditorToolbar/excise $:/core/ui/EditorToolbar/picture $:/core/ui/EditorToolbar/stamp $:/core/ui/EditorToolbar/size $:/core/ui/EditorToolbar/editor-height $:/core/ui/EditorToolbar/more $:/core/ui/EditorToolbar/preview $:/core/ui/EditorToolbar/preview-type"
},
"$:/tags/Manager/ItemMain": {
"title": "$:/tags/Manager/ItemMain",
"list": "$:/Manager/ItemMain/WikifiedText $:/Manager/ItemMain/RawText $:/Manager/ItemMain/Fields"
},
"$:/tags/Manager/ItemSidebar": {
"title": "$:/tags/Manager/ItemSidebar",
"list": "$:/Manager/ItemSidebar/Tags $:/Manager/ItemSidebar/Colour $:/Manager/ItemSidebar/Icon $:/Manager/ItemSidebar/Tools"
},
"$:/tags/MoreSideBar": {
"title": "$:/tags/MoreSideBar",
"list": "[[$:/core/ui/MoreSideBar/All]] [[$:/core/ui/MoreSideBar/Recent]] [[$:/core/ui/MoreSideBar/Tags]] [[$:/core/ui/MoreSideBar/Missing]] [[$:/core/ui/MoreSideBar/Drafts]] [[$:/core/ui/MoreSideBar/Orphans]] [[$:/core/ui/MoreSideBar/Types]] [[$:/core/ui/MoreSideBar/System]] [[$:/core/ui/MoreSideBar/Shadows]] [[$:/core/ui/MoreSideBar/Explorer]] [[$:/core/ui/MoreSideBar/Plugins]]",
"text": ""
},
"$:/tags/PageControls": {
"title": "$:/tags/PageControls",
"list": "[[$:/core/ui/Buttons/home]] [[$:/core/ui/Buttons/close-all]] [[$:/core/ui/Buttons/fold-all]] [[$:/core/ui/Buttons/unfold-all]] [[$:/core/ui/Buttons/permaview]] [[$:/core/ui/Buttons/new-tiddler]] [[$:/core/ui/Buttons/new-journal]] [[$:/core/ui/Buttons/new-image]] [[$:/core/ui/Buttons/import]] [[$:/core/ui/Buttons/export-page]] [[$:/core/ui/Buttons/control-panel]] [[$:/core/ui/Buttons/advanced-search]] [[$:/core/ui/Buttons/manager]] [[$:/core/ui/Buttons/tag-manager]] [[$:/core/ui/Buttons/language]] [[$:/core/ui/Buttons/palette]] [[$:/core/ui/Buttons/theme]] [[$:/core/ui/Buttons/storyview]] [[$:/core/ui/Buttons/encryption]] [[$:/core/ui/Buttons/timestamp]] [[$:/core/ui/Buttons/full-screen]] [[$:/core/ui/Buttons/print]] [[$:/core/ui/Buttons/save-wiki]] [[$:/core/ui/Buttons/refresh]] [[$:/core/ui/Buttons/more-page-actions]]"
},
"$:/tags/PageTemplate": {
"title": "$:/tags/PageTemplate",
"list": "[[$:/core/ui/PageTemplate/topleftbar]] [[$:/core/ui/PageTemplate/toprightbar]] [[$:/core/ui/PageTemplate/sidebar]] [[$:/core/ui/PageTemplate/story]] [[$:/core/ui/PageTemplate/alerts]]",
"text": ""
},
"$:/tags/PluginLibrary": {
"title": "$:/tags/PluginLibrary",
"list": "$:/config/OfficialPluginLibrary"
},
"$:/tags/SideBar": {
"title": "$:/tags/SideBar",
"list": "[[$:/core/ui/SideBar/Open]] [[$:/core/ui/SideBar/Recent]] [[$:/core/ui/SideBar/Tools]] [[$:/core/ui/SideBar/More]]",
"text": ""
},
"$:/tags/SideBarSegment": {
"title": "$:/tags/SideBarSegment",
"list": "[[$:/core/ui/SideBarSegments/site-title]] [[$:/core/ui/SideBarSegments/site-subtitle]] [[$:/core/ui/SideBarSegments/page-controls]] [[$:/core/ui/SideBarSegments/search]] [[$:/core/ui/SideBarSegments/tabs]]"
},
"$:/tags/TiddlerInfo": {
"title": "$:/tags/TiddlerInfo",
"list": "[[$:/core/ui/TiddlerInfo/Tools]] [[$:/core/ui/TiddlerInfo/References]] [[$:/core/ui/TiddlerInfo/Tagging]] [[$:/core/ui/TiddlerInfo/List]] [[$:/core/ui/TiddlerInfo/Listed]] [[$:/core/ui/TiddlerInfo/Fields]]",
"text": ""
},
"$:/tags/TiddlerInfo/Advanced": {
"title": "$:/tags/TiddlerInfo/Advanced",
"list": "[[$:/core/ui/TiddlerInfo/Advanced/ShadowInfo]] [[$:/core/ui/TiddlerInfo/Advanced/PluginInfo]]"
},
"$:/tags/ViewTemplate": {
"title": "$:/tags/ViewTemplate",
"list": "[[$:/core/ui/ViewTemplate/title]] [[$:/core/ui/ViewTemplate/unfold]] [[$:/core/ui/ViewTemplate/subtitle]] [[$:/core/ui/ViewTemplate/tags]] [[$:/core/ui/ViewTemplate/classic]] [[$:/core/ui/ViewTemplate/body]]"
},
"$:/tags/ViewToolbar": {
"title": "$:/tags/ViewToolbar",
"list": "[[$:/core/ui/Buttons/more-tiddler-actions]] [[$:/core/ui/Buttons/info]] [[$:/core/ui/Buttons/new-here]] [[$:/core/ui/Buttons/new-journal-here]] [[$:/core/ui/Buttons/clone]] [[$:/core/ui/Buttons/export-tiddler]] [[$:/core/ui/Buttons/edit]] [[$:/core/ui/Buttons/delete]] [[$:/core/ui/Buttons/permalink]] [[$:/core/ui/Buttons/permaview]] [[$:/core/ui/Buttons/open-window]] [[$:/core/ui/Buttons/close-others]] [[$:/core/ui/Buttons/close]] [[$:/core/ui/Buttons/fold-others]] [[$:/core/ui/Buttons/fold]]"
},
"$:/snippets/themeswitcher": {
"title": "$:/snippets/themeswitcher",
"text": "<$linkcatcher to=\"$:/theme\">\n<div class=\"tc-chooser\"><$list filter=\"[plugin-type[theme]sort[title]]\"><$set name=\"cls\" filter=\"[all[current]field:title{$:/theme}] [[$:/theme]!has[text]addsuffix[s/tiddlywiki/vanilla]field:title<currentTiddler>] +[limit[1]]\" value=\"tc-chooser-item tc-chosen\" emptyValue=\"tc-chooser-item\"><div class=<<cls>>><$link to={{!!title}}>''<$view field=\"name\" format=\"text\"/>'' <$view field=\"description\" format=\"text\"/></$link></div>\n</$set>\n</$list>\n</div>\n</$linkcatcher>"
},
"$:/core/wiki/title": {
"title": "$:/core/wiki/title",
"text": "{{$:/SiteTitle}} --- {{$:/SiteSubtitle}}"
},
"$:/view": {
"title": "$:/view",
"text": "classic"
},
"$:/snippets/viewswitcher": {
"title": "$:/snippets/viewswitcher",
"text": "\\define icon()\n$:/core/images/storyview-$(storyview)$\n\\end\n<$linkcatcher to=\"$:/view\">\n<div class=\"tc-chooser tc-viewswitcher\">\n<$list filter=\"[storyviews[]]\" variable=\"storyview\">\n<$set name=\"cls\" filter=\"[<storyview>prefix{$:/view}]\" value=\"tc-chooser-item tc-chosen\" emptyValue=\"tc-chooser-item\"><div class=<<cls>>>\n<$link to=<<storyview>>><$transclude tiddler=<<icon>>/><$text text=<<storyview>>/></$link>\n</div>\n</$set>\n</$list>\n</div>\n</$linkcatcher>"
}
}
}
下列条目已被导入:
# [[$:/plugins/felixhayashi/tiddlymap]]
# [[$:/plugins/felixhayashi/hotzone]]
# [[$:/plugins/felixhayashi/topstoryview]]
# [[$:/plugins/felixhayashi/vis]]
{
"tiddlers": {
"$:/language/Buttons/AdvancedSearch/Caption": {
"title": "$:/language/Buttons/AdvancedSearch/Caption",
"text": "高级查找"
},
"$:/language/Buttons/AdvancedSearch/Hint": {
"title": "$:/language/Buttons/AdvancedSearch/Hint",
"text": "高级查找"
},
"$:/language/Buttons/Cancel/Caption": {
"title": "$:/language/Buttons/Cancel/Caption",
"text": "取消"
},
"$:/language/Buttons/Cancel/Hint": {
"title": "$:/language/Buttons/Cancel/Hint",
"text": "放弃对此条目的更改"
},
"$:/language/Buttons/Clone/Caption": {
"title": "$:/language/Buttons/Clone/Caption",
"text": "克隆"
},
"$:/language/Buttons/Clone/Hint": {
"title": "$:/language/Buttons/Clone/Hint",
"text": "克隆此条目"
},
"$:/language/Buttons/Close/Caption": {
"title": "$:/language/Buttons/Close/Caption",
"text": "关闭"
},
"$:/language/Buttons/Close/Hint": {
"title": "$:/language/Buttons/Close/Hint",
"text": "关闭此条目"
},
"$:/language/Buttons/CloseAll/Caption": {
"title": "$:/language/Buttons/CloseAll/Caption",
"text": "全部关闭"
},
"$:/language/Buttons/CloseAll/Hint": {
"title": "$:/language/Buttons/CloseAll/Hint",
"text": "关闭所有条目"
},
"$:/language/Buttons/CloseOthers/Caption": {
"title": "$:/language/Buttons/CloseOthers/Caption",
"text": "关闭其他"
},
"$:/language/Buttons/CloseOthers/Hint": {
"title": "$:/language/Buttons/CloseOthers/Hint",
"text": "关闭其他条目"
},
"$:/language/Buttons/ControlPanel/Caption": {
"title": "$:/language/Buttons/ControlPanel/Caption",
"text": "控制台"
},
"$:/language/Buttons/ControlPanel/Hint": {
"title": "$:/language/Buttons/ControlPanel/Hint",
"text": "开启控制台"
},
"$:/language/Buttons/CopyToClipboard/Caption": {
"title": "$:/language/Buttons/CopyToClipboard/Caption",
"text": "复制到剪贴板"
},
"$:/language/Buttons/CopyToClipboard/Hint": {
"title": "$:/language/Buttons/CopyToClipboard/Hint",
"text": "将此文本复制到剪贴板"
},
"$:/language/Buttons/Delete/Caption": {
"title": "$:/language/Buttons/Delete/Caption",
"text": "删除"
},
"$:/language/Buttons/Delete/Hint": {
"title": "$:/language/Buttons/Delete/Hint",
"text": "删除此条目"
},
"$:/language/Buttons/Edit/Caption": {
"title": "$:/language/Buttons/Edit/Caption",
"text": "编辑"
},
"$:/language/Buttons/Edit/Hint": {
"title": "$:/language/Buttons/Edit/Hint",
"text": "编辑此条目"
},
"$:/language/Buttons/Encryption/Caption": {
"title": "$:/language/Buttons/Encryption/Caption",
"text": "加密"
},
"$:/language/Buttons/Encryption/Hint": {
"title": "$:/language/Buttons/Encryption/Hint",
"text": "设置或清除保存此维基的密码"
},
"$:/language/Buttons/Encryption/ClearPassword/Caption": {
"title": "$:/language/Buttons/Encryption/ClearPassword/Caption",
"text": "清除密码"
},
"$:/language/Buttons/Encryption/ClearPassword/Hint": {
"title": "$:/language/Buttons/Encryption/ClearPassword/Hint",
"text": "清除密码且不加密保存此维基"
},
"$:/language/Buttons/Encryption/SetPassword/Caption": {
"title": "$:/language/Buttons/Encryption/SetPassword/Caption",
"text": "设置密码"
},
"$:/language/Buttons/Encryption/SetPassword/Hint": {
"title": "$:/language/Buttons/Encryption/SetPassword/Hint",
"text": "设置加密保存此维基的密码"
},
"$:/language/Buttons/ExportPage/Caption": {
"title": "$:/language/Buttons/ExportPage/Caption",
"text": "导出所有条目"
},
"$:/language/Buttons/ExportPage/Hint": {
"title": "$:/language/Buttons/ExportPage/Hint",
"text": "导出所有条目"
},
"$:/language/Buttons/ExportTiddler/Caption": {
"title": "$:/language/Buttons/ExportTiddler/Caption",
"text": "导出此条目"
},
"$:/language/Buttons/ExportTiddler/Hint": {
"title": "$:/language/Buttons/ExportTiddler/Hint",
"text": "导出此条目"
},
"$:/language/Buttons/ExportTiddlers/Caption": {
"title": "$:/language/Buttons/ExportTiddlers/Caption",
"text": "导出条目"
},
"$:/language/Buttons/ExportTiddlers/Hint": {
"title": "$:/language/Buttons/ExportTiddlers/Hint",
"text": "导出条目"
},
"$:/language/Buttons/SidebarSearch/Hint": {
"title": "$:/language/Buttons/SidebarSearch/Hint",
"text": "选择侧边栏的查找字段"
},
"$:/language/Buttons/Fold/Caption": {
"title": "$:/language/Buttons/Fold/Caption",
"text": "收合条目"
},
"$:/language/Buttons/Fold/Hint": {
"title": "$:/language/Buttons/Fold/Hint",
"text": "收合此条目的内容"
},
"$:/language/Buttons/Unfold/Caption": {
"title": "$:/language/Buttons/Unfold/Caption",
"text": "展开条目"
},
"$:/language/Buttons/Unfold/Hint": {
"title": "$:/language/Buttons/Unfold/Hint",
"text": "展开此条目的内容"
},
"$:/language/Buttons/FoldOthers/Caption": {
"title": "$:/language/Buttons/FoldOthers/Caption",
"text": "收合其他条目"
},
"$:/language/Buttons/FoldOthers/Hint": {
"title": "$:/language/Buttons/FoldOthers/Hint",
"text": "收合其他已开启条目的内容"
},
"$:/language/Buttons/FoldAll/Caption": {
"title": "$:/language/Buttons/FoldAll/Caption",
"text": "收合所有条目"
},
"$:/language/Buttons/FoldAll/Hint": {
"title": "$:/language/Buttons/FoldAll/Hint",
"text": "收合所有已开启条目的内容"
},
"$:/language/Buttons/Fold/FoldBar/Caption": {
"title": "$:/language/Buttons/Fold/FoldBar/Caption",
"text": "收合栏"
},
"$:/language/Buttons/Fold/FoldBar/Hint": {
"title": "$:/language/Buttons/Fold/FoldBar/Hint",
"text": "可选的收合与展开条目的长条按钮"
},
"$:/language/Buttons/UnfoldAll/Caption": {
"title": "$:/language/Buttons/UnfoldAll/Caption",
"text": "展开所有条目"
},
"$:/language/Buttons/UnfoldAll/Hint": {
"title": "$:/language/Buttons/UnfoldAll/Hint",
"text": "展开所有已开启条目的内容"
},
"$:/language/Buttons/FullScreen/Caption": {
"title": "$:/language/Buttons/FullScreen/Caption",
"text": "全屏幕"
},
"$:/language/Buttons/FullScreen/Hint": {
"title": "$:/language/Buttons/FullScreen/Hint",
"text": "进入或离开全屏模式"
},
"$:/language/Buttons/Help/Caption": {
"title": "$:/language/Buttons/Help/Caption",
"text": "帮助"
},
"$:/language/Buttons/Help/Hint": {
"title": "$:/language/Buttons/Help/Hint",
"text": "显示帮助面板"
},
"$:/language/Buttons/Home/Caption": {
"title": "$:/language/Buttons/Home/Caption",
"text": "首页"
},
"$:/language/Buttons/Home/Hint": {
"title": "$:/language/Buttons/Home/Hint",
"text": "开启首页条目"
},
"$:/language/Buttons/Import/Caption": {
"title": "$:/language/Buttons/Import/Caption",
"text": "导入"
},
"$:/language/Buttons/Import/Hint": {
"title": "$:/language/Buttons/Import/Hint",
"text": "导入许多类型的文件包括文本、图像、TiddlyWiki 或 JSON"
},
"$:/language/Buttons/Info/Caption": {
"title": "$:/language/Buttons/Info/Caption",
"text": "信息"
},
"$:/language/Buttons/Info/Hint": {
"title": "$:/language/Buttons/Info/Hint",
"text": "显示此条目的信息"
},
"$:/language/Buttons/Language/Caption": {
"title": "$:/language/Buttons/Language/Caption",
"text": "语言"
},
"$:/language/Buttons/Language/Hint": {
"title": "$:/language/Buttons/Language/Hint",
"text": "选择用户介面语言"
},
"$:/language/Buttons/Manager/Caption": {
"title": "$:/language/Buttons/Manager/Caption",
"text": "条目管理器"
},
"$:/language/Buttons/Manager/Hint": {
"title": "$:/language/Buttons/Manager/Hint",
"text": "开启条目管理器"
},
"$:/language/Buttons/More/Caption": {
"title": "$:/language/Buttons/More/Caption",
"text": "更多"
},
"$:/language/Buttons/More/Hint": {
"title": "$:/language/Buttons/More/Hint",
"text": "更多动作"
},
"$:/language/Buttons/NewHere/Caption": {
"title": "$:/language/Buttons/NewHere/Caption",
"text": "添加子条目"
},
"$:/language/Buttons/NewHere/Hint": {
"title": "$:/language/Buttons/NewHere/Hint",
"text": "创建一个标签为此条目名称的新条目"
},
"$:/language/Buttons/NewJournal/Caption": {
"title": "$:/language/Buttons/NewJournal/Caption",
"text": "添加日志"
},
"$:/language/Buttons/NewJournal/Hint": {
"title": "$:/language/Buttons/NewJournal/Hint",
"text": "创建一个新的日志条目"
},
"$:/language/Buttons/NewJournalHere/Caption": {
"title": "$:/language/Buttons/NewJournalHere/Caption",
"text": "添加子日志"
},
"$:/language/Buttons/NewJournalHere/Hint": {
"title": "$:/language/Buttons/NewJournalHere/Hint",
"text": "创建一个标签含此条目名称的新日志条目"
},
"$:/language/Buttons/NewImage/Caption": {
"title": "$:/language/Buttons/NewImage/Caption",
"text": "添加图像"
},
"$:/language/Buttons/NewImage/Hint": {
"title": "$:/language/Buttons/NewImage/Hint",
"text": "创建一个新的图像条目"
},
"$:/language/Buttons/NewMarkdown/Caption": {
"title": "$:/language/Buttons/NewMarkdown/Caption",
"text": "添加 Markdown 条目"
},
"$:/language/Buttons/NewMarkdown/Hint": {
"title": "$:/language/Buttons/NewMarkdown/Hint",
"text": "创建一个新的 Markdown 条目"
},
"$:/language/Buttons/NewTiddler/Caption": {
"title": "$:/language/Buttons/NewTiddler/Caption",
"text": "添加条目"
},
"$:/language/Buttons/NewTiddler/Hint": {
"title": "$:/language/Buttons/NewTiddler/Hint",
"text": "创建一个新的条目"
},
"$:/language/Buttons/OpenWindow/Caption": {
"title": "$:/language/Buttons/OpenWindow/Caption",
"text": "开启于新窗口"
},
"$:/language/Buttons/OpenWindow/Hint": {
"title": "$:/language/Buttons/OpenWindow/Hint",
"text": "在新窗口中开启条目"
},
"$:/language/Buttons/Palette/Caption": {
"title": "$:/language/Buttons/Palette/Caption",
"text": "调色板"
},
"$:/language/Buttons/Palette/Hint": {
"title": "$:/language/Buttons/Palette/Hint",
"text": "选择调色板"
},
"$:/language/Buttons/Permalink/Caption": {
"title": "$:/language/Buttons/Permalink/Caption",
"text": "引用链接"
},
"$:/language/Buttons/Permalink/Hint": {
"title": "$:/language/Buttons/Permalink/Hint",
"text": "设置浏览器网址栏为直接链接到此条目"
},
"$:/language/Buttons/Permaview/Caption": {
"title": "$:/language/Buttons/Permaview/Caption",
"text": "永久链接"
},
"$:/language/Buttons/Permaview/Hint": {
"title": "$:/language/Buttons/Permaview/Hint",
"text": "设置浏览器网址栏为直接链接到当前所有已开启条目"
},
"$:/language/Buttons/Print/Caption": {
"title": "$:/language/Buttons/Print/Caption",
"text": "打印页面"
},
"$:/language/Buttons/Print/Hint": {
"title": "$:/language/Buttons/Print/Hint",
"text": "打印当前页面"
},
"$:/language/Buttons/Refresh/Caption": {
"title": "$:/language/Buttons/Refresh/Caption",
"text": "刷新"
},
"$:/language/Buttons/Refresh/Hint": {
"title": "$:/language/Buttons/Refresh/Hint",
"text": "执行维基的完全刷新"
},
"$:/language/Buttons/Save/Caption": {
"title": "$:/language/Buttons/Save/Caption",
"text": "确定"
},
"$:/language/Buttons/Save/Hint": {
"title": "$:/language/Buttons/Save/Hint",
"text": "确定对此条目的更改"
},
"$:/language/Buttons/SaveWiki/Caption": {
"title": "$:/language/Buttons/SaveWiki/Caption",
"text": "保存变更"
},
"$:/language/Buttons/SaveWiki/Hint": {
"title": "$:/language/Buttons/SaveWiki/Hint",
"text": "保存变更"
},
"$:/language/Buttons/StoryView/Caption": {
"title": "$:/language/Buttons/StoryView/Caption",
"text": "查看模式"
},
"$:/language/Buttons/StoryView/Hint": {
"title": "$:/language/Buttons/StoryView/Hint",
"text": "选择查看条目的视觉效果"
},
"$:/language/Buttons/HideSideBar/Caption": {
"title": "$:/language/Buttons/HideSideBar/Caption",
"text": "隐藏侧边栏"
},
"$:/language/Buttons/HideSideBar/Hint": {
"title": "$:/language/Buttons/HideSideBar/Hint",
"text": "隐藏侧边栏"
},
"$:/language/Buttons/ShowSideBar/Caption": {
"title": "$:/language/Buttons/ShowSideBar/Caption",
"text": "显示侧边栏"
},
"$:/language/Buttons/ShowSideBar/Hint": {
"title": "$:/language/Buttons/ShowSideBar/Hint",
"text": "显示侧边栏"
},
"$:/language/Buttons/TagManager/Caption": {
"title": "$:/language/Buttons/TagManager/Caption",
"text": "标签管理"
},
"$:/language/Buttons/TagManager/Hint": {
"title": "$:/language/Buttons/TagManager/Hint",
"text": "标签管理"
},
"$:/language/Buttons/Timestamp/Caption": {
"title": "$:/language/Buttons/Timestamp/Caption",
"text": "时间戳记"
},
"$:/language/Buttons/Timestamp/Hint": {
"title": "$:/language/Buttons/Timestamp/Hint",
"text": "选择修改是否更新时间戳记"
},
"$:/language/Buttons/Timestamp/On/Caption": {
"title": "$:/language/Buttons/Timestamp/On/Caption",
"text": "时间戳记开启"
},
"$:/language/Buttons/Timestamp/On/Hint": {
"title": "$:/language/Buttons/Timestamp/On/Hint",
"text": "条目被修改时,更新时间戳记"
},
"$:/language/Buttons/Timestamp/Off/Caption": {
"title": "$:/language/Buttons/Timestamp/Off/Caption",
"text": "时间戳记关闭"
},
"$:/language/Buttons/Timestamp/Off/Hint": {
"title": "$:/language/Buttons/Timestamp/Off/Hint",
"text": "条目被修改时,不更新时间戳记"
},
"$:/language/Buttons/Theme/Caption": {
"title": "$:/language/Buttons/Theme/Caption",
"text": "布景主题"
},
"$:/language/Buttons/Theme/Hint": {
"title": "$:/language/Buttons/Theme/Hint",
"text": "选择布景主题"
},
"$:/language/Buttons/Bold/Caption": {
"title": "$:/language/Buttons/Bold/Caption",
"text": "粗体"
},
"$:/language/Buttons/Bold/Hint": {
"title": "$:/language/Buttons/Bold/Hint",
"text": "套用粗体格式于所选文本"
},
"$:/language/Buttons/Clear/Caption": {
"title": "$:/language/Buttons/Clear/Caption",
"text": "清除"
},
"$:/language/Buttons/Clear/Hint": {
"title": "$:/language/Buttons/Clear/Hint",
"text": "清除图像为纯色"
},
"$:/language/Buttons/EditorHeight/Caption": {
"title": "$:/language/Buttons/EditorHeight/Caption",
"text": "编辑器高度"
},
"$:/language/Buttons/EditorHeight/Caption/Auto": {
"title": "$:/language/Buttons/EditorHeight/Caption/Auto",
"text": "自动调整高度以适合内容"
},
"$:/language/Buttons/EditorHeight/Caption/Fixed": {
"title": "$:/language/Buttons/EditorHeight/Caption/Fixed",
"text": "固定高度︰"
},
"$:/language/Buttons/EditorHeight/Hint": {
"title": "$:/language/Buttons/EditorHeight/Hint",
"text": "选择文本编辑器的高度"
},
"$:/language/Buttons/Excise/Caption": {
"title": "$:/language/Buttons/Excise/Caption",
"text": "剪切"
},
"$:/language/Buttons/Excise/Caption/Excise": {
"title": "$:/language/Buttons/Excise/Caption/Excise",
"text": "执行剪切"
},
"$:/language/Buttons/Excise/Caption/MacroName": {
"title": "$:/language/Buttons/Excise/Caption/MacroName",
"text": "宏的名称︰"
},
"$:/language/Buttons/Excise/Caption/NewTitle": {
"title": "$:/language/Buttons/Excise/Caption/NewTitle",
"text": "新条目的名称︰"
},
"$:/language/Buttons/Excise/Caption/Replace": {
"title": "$:/language/Buttons/Excise/Caption/Replace",
"text": "替换剪切的文本为:"
},
"$:/language/Buttons/Excise/Caption/Replace/Macro": {
"title": "$:/language/Buttons/Excise/Caption/Replace/Macro",
"text": "宏"
},
"$:/language/Buttons/Excise/Caption/Replace/Link": {
"title": "$:/language/Buttons/Excise/Caption/Replace/Link",
"text": "链接"
},
"$:/language/Buttons/Excise/Caption/Replace/Transclusion": {
"title": "$:/language/Buttons/Excise/Caption/Replace/Transclusion",
"text": "嵌入"
},
"$:/language/Buttons/Excise/Caption/Tag": {
"title": "$:/language/Buttons/Excise/Caption/Tag",
"text": "将新条目的标签设为此条目的名称"
},
"$:/language/Buttons/Excise/Caption/TiddlerExists": {
"title": "$:/language/Buttons/Excise/Caption/TiddlerExists",
"text": "警示:条目已经存在"
},
"$:/language/Buttons/Excise/Hint": {
"title": "$:/language/Buttons/Excise/Hint",
"text": "剪切所选文本到一个新条目"
},
"$:/language/Buttons/Heading1/Caption": {
"title": "$:/language/Buttons/Heading1/Caption",
"text": "标题 1"
},
"$:/language/Buttons/Heading1/Hint": {
"title": "$:/language/Buttons/Heading1/Hint",
"text": "套用标题级别 1 的格式于包含所选文本的列"
},
"$:/language/Buttons/Heading2/Caption": {
"title": "$:/language/Buttons/Heading2/Caption",
"text": "标题 2"
},
"$:/language/Buttons/Heading2/Hint": {
"title": "$:/language/Buttons/Heading2/Hint",
"text": "套用标题级别 2 的格式于包含所选文本的列"
},
"$:/language/Buttons/Heading3/Caption": {
"title": "$:/language/Buttons/Heading3/Caption",
"text": "标题 3"
},
"$:/language/Buttons/Heading3/Hint": {
"title": "$:/language/Buttons/Heading3/Hint",
"text": "套用标题级别 3 的格式于包含所选文本的列"
},
"$:/language/Buttons/Heading4/Caption": {
"title": "$:/language/Buttons/Heading4/Caption",
"text": "标题 4"
},
"$:/language/Buttons/Heading4/Hint": {
"title": "$:/language/Buttons/Heading4/Hint",
"text": "套用标题级别 4 的格式于包含所选文本的列"
},
"$:/language/Buttons/Heading5/Caption": {
"title": "$:/language/Buttons/Heading5/Caption",
"text": "标题 5"
},
"$:/language/Buttons/Heading5/Hint": {
"title": "$:/language/Buttons/Heading5/Hint",
"text": "套用标题级别 5 的格式于包含所选文本的列"
},
"$:/language/Buttons/Heading6/Caption": {
"title": "$:/language/Buttons/Heading6/Caption",
"text": "标题 6"
},
"$:/language/Buttons/Heading6/Hint": {
"title": "$:/language/Buttons/Heading6/Hint",
"text": "套用标题级别 6 的格式于包含所选文本的列"
},
"$:/language/Buttons/Italic/Caption": {
"title": "$:/language/Buttons/Italic/Caption",
"text": "斜体"
},
"$:/language/Buttons/Italic/Hint": {
"title": "$:/language/Buttons/Italic/Hint",
"text": "套用斜体格式于所选文本"
},
"$:/language/Buttons/LineWidth/Caption": {
"title": "$:/language/Buttons/LineWidth/Caption",
"text": "线宽"
},
"$:/language/Buttons/LineWidth/Hint": {
"title": "$:/language/Buttons/LineWidth/Hint",
"text": "设置绘画的线条宽度"
},
"$:/language/Buttons/Link/Caption": {
"title": "$:/language/Buttons/Link/Caption",
"text": "链接"
},
"$:/language/Buttons/Link/Hint": {
"title": "$:/language/Buttons/Link/Hint",
"text": "创建维基文字链接"
},
"$:/language/Buttons/Linkify/Caption": {
"title": "$:/language/Buttons/Linkify/Caption",
"text": "维基链接"
},
"$:/language/Buttons/Linkify/Hint": {
"title": "$:/language/Buttons/Linkify/Hint",
"text": "套用维基链接于所选文字"
},
"$:/language/Buttons/ListBullet/Caption": {
"title": "$:/language/Buttons/ListBullet/Caption",
"text": "符号清单"
},
"$:/language/Buttons/ListBullet/Hint": {
"title": "$:/language/Buttons/ListBullet/Hint",
"text": "套用符号清单格式于包含所选文本的列"
},
"$:/language/Buttons/ListNumber/Caption": {
"title": "$:/language/Buttons/ListNumber/Caption",
"text": "数字清单"
},
"$:/language/Buttons/ListNumber/Hint": {
"title": "$:/language/Buttons/ListNumber/Hint",
"text": "套用数字清单格式于包含所选文本的列"
},
"$:/language/Buttons/MonoBlock/Caption": {
"title": "$:/language/Buttons/MonoBlock/Caption",
"text": "等宽区块"
},
"$:/language/Buttons/MonoBlock/Hint": {
"title": "$:/language/Buttons/MonoBlock/Hint",
"text": "套用等宽区块格式于包含所选文本的列"
},
"$:/language/Buttons/MonoLine/Caption": {
"title": "$:/language/Buttons/MonoLine/Caption",
"text": "等宽"
},
"$:/language/Buttons/MonoLine/Hint": {
"title": "$:/language/Buttons/MonoLine/Hint",
"text": "套用等宽字符格式于所选文本"
},
"$:/language/Buttons/Opacity/Caption": {
"title": "$:/language/Buttons/Opacity/Caption",
"text": "不透明度"
},
"$:/language/Buttons/Opacity/Hint": {
"title": "$:/language/Buttons/Opacity/Hint",
"text": "设置绘画的不透明度"
},
"$:/language/Buttons/Paint/Caption": {
"title": "$:/language/Buttons/Paint/Caption",
"text": "绘画颜色"
},
"$:/language/Buttons/Paint/Hint": {
"title": "$:/language/Buttons/Paint/Hint",
"text": "设置绘画的颜色"
},
"$:/language/Buttons/Picture/Caption": {
"title": "$:/language/Buttons/Picture/Caption",
"text": "图片"
},
"$:/language/Buttons/Picture/Hint": {
"title": "$:/language/Buttons/Picture/Hint",
"text": "插入图片"
},
"$:/language/Buttons/Preview/Caption": {
"title": "$:/language/Buttons/Preview/Caption",
"text": "预览"
},
"$:/language/Buttons/Preview/Hint": {
"title": "$:/language/Buttons/Preview/Hint",
"text": "显示预览窗格"
},
"$:/language/Buttons/PreviewType/Caption": {
"title": "$:/language/Buttons/PreviewType/Caption",
"text": "预览类型"
},
"$:/language/Buttons/PreviewType/Hint": {
"title": "$:/language/Buttons/PreviewType/Hint",
"text": "选择预览类型"
},
"$:/language/Buttons/Quote/Caption": {
"title": "$:/language/Buttons/Quote/Caption",
"text": "引言"
},
"$:/language/Buttons/Quote/Hint": {
"title": "$:/language/Buttons/Quote/Hint",
"text": "套用引言文本格式于包含所选文本的列"
},
"$:/language/Buttons/RotateLeft/Caption": {
"title": "$:/language/Buttons/RotateLeft/Caption",
"text": "向左旋转"
},
"$:/language/Buttons/RotateLeft/Hint": {
"title": "$:/language/Buttons/RotateLeft/Hint",
"text": "图像向左旋转 90 度"
},
"$:/language/Buttons/Size/Caption": {
"title": "$:/language/Buttons/Size/Caption",
"text": "图像大小"
},
"$:/language/Buttons/Size/Caption/Height": {
"title": "$:/language/Buttons/Size/Caption/Height",
"text": "高度︰"
},
"$:/language/Buttons/Size/Caption/Resize": {
"title": "$:/language/Buttons/Size/Caption/Resize",
"text": "调整图像的大小"
},
"$:/language/Buttons/Size/Caption/Width": {
"title": "$:/language/Buttons/Size/Caption/Width",
"text": "宽度:"
},
"$:/language/Buttons/Size/Hint": {
"title": "$:/language/Buttons/Size/Hint",
"text": "设置图像的大小"
},
"$:/language/Buttons/Stamp/Caption": {
"title": "$:/language/Buttons/Stamp/Caption",
"text": "印记"
},
"$:/language/Buttons/Stamp/Caption/New": {
"title": "$:/language/Buttons/Stamp/Caption/New",
"text": "添加您自己的"
},
"$:/language/Buttons/Stamp/Hint": {
"title": "$:/language/Buttons/Stamp/Hint",
"text": "插入一个预配置的文本片段"
},
"$:/language/Buttons/Stamp/New/Title": {
"title": "$:/language/Buttons/Stamp/New/Title",
"text": "在选单中显示的标题"
},
"$:/language/Buttons/Stamp/New/Text": {
"title": "$:/language/Buttons/Stamp/New/Text",
"text": "片段的文本。(记得在 `caption` 栏位中添加一个说明性的标题)。"
},
"$:/language/Buttons/Strikethrough/Caption": {
"title": "$:/language/Buttons/Strikethrough/Caption",
"text": "删除线"
},
"$:/language/Buttons/Strikethrough/Hint": {
"title": "$:/language/Buttons/Strikethrough/Hint",
"text": "套用删除线格式于所选文本"
},
"$:/language/Buttons/Subscript/Caption": {
"title": "$:/language/Buttons/Subscript/Caption",
"text": "下标"
},
"$:/language/Buttons/Subscript/Hint": {
"title": "$:/language/Buttons/Subscript/Hint",
"text": "套用下标格式于所选文本"
},
"$:/language/Buttons/Superscript/Caption": {
"title": "$:/language/Buttons/Superscript/Caption",
"text": "上标"
},
"$:/language/Buttons/Superscript/Hint": {
"title": "$:/language/Buttons/Superscript/Hint",
"text": "套用上标格式于所选文本"
},
"$:/language/Buttons/ToggleSidebar/Hint": {
"title": "$:/language/Buttons/ToggleSidebar/Hint",
"text": "切换显示或隐藏侧边栏"
},
"$:/language/Buttons/Transcludify/Caption": {
"title": "$:/language/Buttons/Transcludify/Caption",
"text": "嵌入"
},
"$:/language/Buttons/Transcludify/Hint": {
"title": "$:/language/Buttons/Transcludify/Hint",
"text": "套用嵌入于所选文字"
},
"$:/language/Buttons/Underline/Caption": {
"title": "$:/language/Buttons/Underline/Caption",
"text": "下划线"
},
"$:/language/Buttons/Underline/Hint": {
"title": "$:/language/Buttons/Underline/Hint",
"text": "套用下划线格式于所选文本"
},
"$:/language/ControlPanel/Advanced/Caption": {
"title": "$:/language/ControlPanel/Advanced/Caption",
"text": "高级"
},
"$:/language/ControlPanel/Advanced/Hint": {
"title": "$:/language/ControlPanel/Advanced/Hint",
"text": "关于此 TiddlyWiki 的内部信息"
},
"$:/language/ControlPanel/Appearance/Caption": {
"title": "$:/language/ControlPanel/Appearance/Caption",
"text": "视觉外观"
},
"$:/language/ControlPanel/Appearance/Hint": {
"title": "$:/language/ControlPanel/Appearance/Hint",
"text": "定制您的 TiddlyWiki 外观。"
},
"$:/language/ControlPanel/Basics/AnimDuration/Prompt": {
"title": "$:/language/ControlPanel/Basics/AnimDuration/Prompt",
"text": "动画持续时间"
},
"$:/language/ControlPanel/Basics/AutoFocus/Prompt": {
"title": "$:/language/ControlPanel/Basics/AutoFocus/Prompt",
"text": "编辑条目时的默认自动停留栏位"
},
"$:/language/ControlPanel/Basics/Caption": {
"title": "$:/language/ControlPanel/Basics/Caption",
"text": "基本"
},
"$:/language/ControlPanel/Basics/DefaultTiddlers/BottomHint": {
"title": "$:/language/ControlPanel/Basics/DefaultTiddlers/BottomHint",
"text": "标题含空白时请使用 [[双中括弧]],或者您可用 <$button set=\"$:/DefaultTiddlers\" setTo=\"[list[$:/StoryList]]\">保留开启中的条目顺序</$button>"
},
"$:/language/ControlPanel/Basics/DefaultTiddlers/Prompt": {
"title": "$:/language/ControlPanel/Basics/DefaultTiddlers/Prompt",
"text": "首页"
},
"$:/language/ControlPanel/Basics/DefaultTiddlers/TopHint": {
"title": "$:/language/ControlPanel/Basics/DefaultTiddlers/TopHint",
"text": "默认开启的条目"
},
"$:/language/ControlPanel/Basics/Language/Prompt": {
"title": "$:/language/ControlPanel/Basics/Language/Prompt",
"text": "您好!当前的语言:"
},
"$:/language/ControlPanel/Basics/NewJournal/Tags/Prompt": {
"title": "$:/language/ControlPanel/Basics/NewJournal/Tags/Prompt",
"text": "新日志条目的标签"
},
"$:/language/ControlPanel/Basics/NewJournal/Text/Prompt": {
"title": "$:/language/ControlPanel/Basics/NewJournal/Text/Prompt",
"text": "新日志条目的内容"
},
"$:/language/ControlPanel/Basics/NewJournal/Title/Prompt": {
"title": "$:/language/ControlPanel/Basics/NewJournal/Title/Prompt",
"text": "新日志条目的名称"
},
"$:/language/ControlPanel/Basics/NewTiddler/Tags/Prompt": {
"title": "$:/language/ControlPanel/Basics/NewTiddler/Tags/Prompt",
"text": "新条目的标签"
},
"$:/language/ControlPanel/Basics/NewTiddler/Title/Prompt": {
"title": "$:/language/ControlPanel/Basics/NewTiddler/Title/Prompt",
"text": "新条目的名称"
},
"$:/language/ControlPanel/Basics/OverriddenShadowTiddlers/Prompt": {
"title": "$:/language/ControlPanel/Basics/OverriddenShadowTiddlers/Prompt",
"text": "被覆盖的默认条目数量"
},
"$:/language/ControlPanel/Basics/ShadowTiddlers/Prompt": {
"title": "$:/language/ControlPanel/Basics/ShadowTiddlers/Prompt",
"text": "默认条目数量"
},
"$:/language/ControlPanel/Basics/Subtitle/Prompt": {
"title": "$:/language/ControlPanel/Basics/Subtitle/Prompt",
"text": "副标题"
},
"$:/language/ControlPanel/Basics/SystemTiddlers/Prompt": {
"title": "$:/language/ControlPanel/Basics/SystemTiddlers/Prompt",
"text": "系统条目数量"
},
"$:/language/ControlPanel/Basics/Tags/Prompt": {
"title": "$:/language/ControlPanel/Basics/Tags/Prompt",
"text": "标签数量"
},
"$:/language/ControlPanel/Basics/Tiddlers/Prompt": {
"title": "$:/language/ControlPanel/Basics/Tiddlers/Prompt",
"text": "一般条目数量"
},
"$:/language/ControlPanel/Basics/Title/Prompt": {
"title": "$:/language/ControlPanel/Basics/Title/Prompt",
"text": "标题"
},
"$:/language/ControlPanel/Basics/Username/Prompt": {
"title": "$:/language/ControlPanel/Basics/Username/Prompt",
"text": "编辑者署名"
},
"$:/language/ControlPanel/Basics/Version/Prompt": {
"title": "$:/language/ControlPanel/Basics/Version/Prompt",
"text": "~TiddlyWiki 版本"
},
"$:/language/ControlPanel/EditorTypes/Caption": {
"title": "$:/language/ControlPanel/EditorTypes/Caption",
"text": "编辑器类型"
},
"$:/language/ControlPanel/EditorTypes/Editor/Caption": {
"title": "$:/language/ControlPanel/EditorTypes/Editor/Caption",
"text": "编辑器"
},
"$:/language/ControlPanel/EditorTypes/Hint": {
"title": "$:/language/ControlPanel/EditorTypes/Hint",
"text": "这些条目决定使用哪个编辑器来编辑特定条目类型。"
},
"$:/language/ControlPanel/EditorTypes/Type/Caption": {
"title": "$:/language/ControlPanel/EditorTypes/Type/Caption",
"text": "类型"
},
"$:/language/ControlPanel/Info/Caption": {
"title": "$:/language/ControlPanel/Info/Caption",
"text": "信息"
},
"$:/language/ControlPanel/Info/Hint": {
"title": "$:/language/ControlPanel/Info/Hint",
"text": "有关此 TiddlyWiki 的信息"
},
"$:/language/ControlPanel/KeyboardShortcuts/Add/Prompt": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Add/Prompt",
"text": "在此输入快捷键"
},
"$:/language/ControlPanel/KeyboardShortcuts/Add/Caption": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Add/Caption",
"text": "添加快捷键"
},
"$:/language/ControlPanel/KeyboardShortcuts/Caption": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Caption",
"text": "快捷键"
},
"$:/language/ControlPanel/KeyboardShortcuts/Hint": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Hint",
"text": "管理键盘快捷键分配"
},
"$:/language/ControlPanel/KeyboardShortcuts/NoShortcuts/Caption": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/NoShortcuts/Caption",
"text": "尚无指定快捷键"
},
"$:/language/ControlPanel/KeyboardShortcuts/Remove/Hint": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Remove/Hint",
"text": "删除快捷键"
},
"$:/language/ControlPanel/KeyboardShortcuts/Platform/All": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/All",
"text": "所有平台"
},
"$:/language/ControlPanel/KeyboardShortcuts/Platform/Mac": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/Mac",
"text": "仅 Macintosh 平台"
},
"$:/language/ControlPanel/KeyboardShortcuts/Platform/NonMac": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonMac",
"text": "仅非 Macintosh 平台"
},
"$:/language/ControlPanel/KeyboardShortcuts/Platform/Linux": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/Linux",
"text": "仅 Linux 平台"
},
"$:/language/ControlPanel/KeyboardShortcuts/Platform/NonLinux": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonLinux",
"text": "仅非 Linux 平台"
},
"$:/language/ControlPanel/KeyboardShortcuts/Platform/Windows": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/Windows",
"text": "仅 Windows 平台"
},
"$:/language/ControlPanel/KeyboardShortcuts/Platform/NonWindows": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonWindows",
"text": "仅非 Windows 平台"
},
"$:/language/ControlPanel/LoadedModules/Caption": {
"title": "$:/language/ControlPanel/LoadedModules/Caption",
"text": "已加载的模块"
},
"$:/language/ControlPanel/LoadedModules/Hint": {
"title": "$:/language/ControlPanel/LoadedModules/Hint",
"text": "这些是当前已加载的模块之源码条目。斜体的模块则无源码条目,通常是因为它们是在引导过程中设置。"
},
"$:/language/ControlPanel/Palette/Caption": {
"title": "$:/language/ControlPanel/Palette/Caption",
"text": "调色板"
},
"$:/language/ControlPanel/Palette/Editor/Clone/Caption": {
"title": "$:/language/ControlPanel/Palette/Editor/Clone/Caption",
"text": "复制"
},
"$:/language/ControlPanel/Palette/Editor/Clone/Prompt": {
"title": "$:/language/ControlPanel/Palette/Editor/Clone/Prompt",
"text": "建议您修改前先复制此默认调色板"
},
"$:/language/ControlPanel/Palette/Editor/Delete/Hint": {
"title": "$:/language/ControlPanel/Palette/Editor/Delete/Hint",
"text": "从当前调色板中删除此项"
},
"$:/language/ControlPanel/Palette/Editor/Names/External/Show": {
"title": "$:/language/ControlPanel/Palette/Editor/Names/External/Show",
"text": "显示不属于当前调色板的颜色名称"
},
"$:/language/ControlPanel/Palette/Editor/Prompt/Modified": {
"title": "$:/language/ControlPanel/Palette/Editor/Prompt/Modified",
"text": "此默认调色板已被修改过"
},
"$:/language/ControlPanel/Palette/Editor/Prompt": {
"title": "$:/language/ControlPanel/Palette/Editor/Prompt",
"text": "编辑"
},
"$:/language/ControlPanel/Palette/Editor/Reset/Caption": {
"title": "$:/language/ControlPanel/Palette/Editor/Reset/Caption",
"text": "重置"
},
"$:/language/ControlPanel/Palette/HideEditor/Caption": {
"title": "$:/language/ControlPanel/Palette/HideEditor/Caption",
"text": "隐藏编辑器"
},
"$:/language/ControlPanel/Palette/Prompt": {
"title": "$:/language/ControlPanel/Palette/Prompt",
"text": "当前的调色板:"
},
"$:/language/ControlPanel/Palette/ShowEditor/Caption": {
"title": "$:/language/ControlPanel/Palette/ShowEditor/Caption",
"text": "显示编辑器"
},
"$:/language/ControlPanel/Plugins/Add/Hint": {
"title": "$:/language/ControlPanel/Plugins/Add/Hint",
"text": "从官方插件库安装插件"
},
"$:/language/ControlPanel/Plugins/Add/Caption": {
"title": "$:/language/ControlPanel/Plugins/Add/Caption",
"text": "获取更多插件"
},
"$:/language/ControlPanel/Plugins/AlreadyInstalled/Hint": {
"title": "$:/language/ControlPanel/Plugins/AlreadyInstalled/Hint",
"text": "此插件已经安装版本 <$text text=<<installedVersion>>/>"
},
"$:/language/ControlPanel/Plugins/AlsoRequires": {
"title": "$:/language/ControlPanel/Plugins/AlsoRequires",
"text": "还需要:"
},
"$:/language/ControlPanel/Plugins/Caption": {
"title": "$:/language/ControlPanel/Plugins/Caption",
"text": "插件"
},
"$:/language/ControlPanel/Plugins/Disable/Caption": {
"title": "$:/language/ControlPanel/Plugins/Disable/Caption",
"text": "禁用"
},
"$:/language/ControlPanel/Plugins/Disable/Hint": {
"title": "$:/language/ControlPanel/Plugins/Disable/Hint",
"text": "重新加载页面时禁用此插件"
},
"$:/language/ControlPanel/Plugins/Disabled/Status": {
"title": "$:/language/ControlPanel/Plugins/Disabled/Status",
"text": "(已禁用)"
},
"$:/language/ControlPanel/Plugins/Downgrade/Caption": {
"title": "$:/language/ControlPanel/Plugins/Downgrade/Caption",
"text": "降级"
},
"$:/language/ControlPanel/Plugins/Empty/Hint": {
"title": "$:/language/ControlPanel/Plugins/Empty/Hint",
"text": "无"
},
"$:/language/ControlPanel/Plugins/Enable/Caption": {
"title": "$:/language/ControlPanel/Plugins/Enable/Caption",
"text": "启用"
},
"$:/language/ControlPanel/Plugins/Enable/Hint": {
"title": "$:/language/ControlPanel/Plugins/Enable/Hint",
"text": "重新加载页面时启用此插件"
},
"$:/language/ControlPanel/Plugins/Install/Caption": {
"title": "$:/language/ControlPanel/Plugins/Install/Caption",
"text": "安装"
},
"$:/language/ControlPanel/Plugins/Installed/Hint": {
"title": "$:/language/ControlPanel/Plugins/Installed/Hint",
"text": "当前已安装的插件:"
},
"$:/language/ControlPanel/Plugins/Languages/Caption": {
"title": "$:/language/ControlPanel/Plugins/Languages/Caption",
"text": "语言"
},
"$:/language/ControlPanel/Plugins/Languages/Hint": {
"title": "$:/language/ControlPanel/Plugins/Languages/Hint",
"text": "语言包插件"
},
"$:/language/ControlPanel/Plugins/NoInfoFound/Hint": {
"title": "$:/language/ControlPanel/Plugins/NoInfoFound/Hint",
"text": "无 ''\"<$text text=<<currentTab>>/>\"''"
},
"$:/language/ControlPanel/Plugins/NoInformation/Hint": {
"title": "$:/language/ControlPanel/Plugins/NoInformation/Hint",
"text": "未提供信息"
},
"$:/language/ControlPanel/Plugins/NotInstalled/Hint": {
"title": "$:/language/ControlPanel/Plugins/NotInstalled/Hint",
"text": "尚未安装此插件"
},
"$:/language/ControlPanel/Plugins/OpenPluginLibrary": {
"title": "$:/language/ControlPanel/Plugins/OpenPluginLibrary",
"text": "开启插件程式库"
},
"$:/language/ControlPanel/Plugins/ClosePluginLibrary": {
"title": "$:/language/ControlPanel/Plugins/ClosePluginLibrary",
"text": "关闭插件程式库"
},
"$:/language/ControlPanel/Plugins/PluginWillRequireReload": {
"title": "$:/language/ControlPanel/Plugins/PluginWillRequireReload",
"text": "(需要重新加载)"
},
"$:/language/ControlPanel/Plugins/Plugins/Caption": {
"title": "$:/language/ControlPanel/Plugins/Plugins/Caption",
"text": "插件"
},
"$:/language/ControlPanel/Plugins/Plugins/Hint": {
"title": "$:/language/ControlPanel/Plugins/Plugins/Hint",
"text": "插件"
},
"$:/language/ControlPanel/Plugins/Reinstall/Caption": {
"title": "$:/language/ControlPanel/Plugins/Reinstall/Caption",
"text": "重新安装"
},
"$:/language/ControlPanel/Plugins/Themes/Caption": {
"title": "$:/language/ControlPanel/Plugins/Themes/Caption",
"text": "布景主题"
},
"$:/language/ControlPanel/Plugins/Themes/Hint": {
"title": "$:/language/ControlPanel/Plugins/Themes/Hint",
"text": "布景主题插件"
},
"$:/language/ControlPanel/Plugins/Update/Caption": {
"title": "$:/language/ControlPanel/Plugins/Update/Caption",
"text": "更新"
},
"$:/language/ControlPanel/Plugins/Updates/Caption": {
"title": "$:/language/ControlPanel/Plugins/Updates/Caption",
"text": "更新"
},
"$:/language/ControlPanel/Plugins/Updates/Hint": {
"title": "$:/language/ControlPanel/Plugins/Updates/Hint",
"text": "已安装插件的可用更新"
},
"$:/language/ControlPanel/Plugins/Updates/UpdateAll/Caption": {
"title": "$:/language/ControlPanel/Plugins/Updates/UpdateAll/Caption",
"text": "更新 <<update-count>> 个插件"
},
"$:/language/ControlPanel/Plugins/SubPluginPrompt": {
"title": "$:/language/ControlPanel/Plugins/SubPluginPrompt",
"text": "提供 <<count>> 个可用的附加插件"
},
"$:/language/ControlPanel/Parsing/Caption": {
"title": "$:/language/ControlPanel/Parsing/Caption",
"text": "解析"
},
"$:/language/ControlPanel/Parsing/Hint": {
"title": "$:/language/ControlPanel/Parsing/Hint",
"text": "在此您可以全域禁用或启用维基解析规则。要使更改生效,请保存并重新加载您的维基。禁用某些解析规则,会妨碍 <$text text=\"TiddlyWiki\"/> 正常运作。可使用[[安全模式|https://tiddlywiki.com/#SafeMode]]恢复正常操作。"
},
"$:/language/ControlPanel/Parsing/Block/Caption": {
"title": "$:/language/ControlPanel/Parsing/Block/Caption",
"text": "区块解析规则"
},
"$:/language/ControlPanel/Parsing/Inline/Caption": {
"title": "$:/language/ControlPanel/Parsing/Inline/Caption",
"text": "内联解析规则"
},
"$:/language/ControlPanel/Parsing/Pragma/Caption": {
"title": "$:/language/ControlPanel/Parsing/Pragma/Caption",
"text": "编译指示解析规则"
},
"$:/language/ControlPanel/Saving/Caption": {
"title": "$:/language/ControlPanel/Saving/Caption",
"text": "保存"
},
"$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Description": {
"title": "$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Description",
"text": "允许下载保存模块的自动保存"
},
"$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Hint": {
"title": "$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Hint",
"text": "启用下载保存模块的自动保存"
},
"$:/language/ControlPanel/Saving/DownloadSaver/Caption": {
"title": "$:/language/ControlPanel/Saving/DownloadSaver/Caption",
"text": "下载保存模块"
},
"$:/language/ControlPanel/Saving/DownloadSaver/Hint": {
"title": "$:/language/ControlPanel/Saving/DownloadSaver/Hint",
"text": "这些设置适用于兼容 HTML5 的下载保存模块"
},
"$:/language/ControlPanel/Saving/General/Caption": {
"title": "$:/language/ControlPanel/Saving/General/Caption",
"text": "通用"
},
"$:/language/ControlPanel/Saving/General/Hint": {
"title": "$:/language/ControlPanel/Saving/General/Hint",
"text": "这些设置适用于所有已载入的保存模块"
},
"$:/language/ControlPanel/Saving/Hint": {
"title": "$:/language/ControlPanel/Saving/Hint",
"text": "用于通过保存模块将整个 TiddlyWiki 保存为单个文件的设置"
},
"$:/language/ControlPanel/Saving/GitService/Branch": {
"title": "$:/language/ControlPanel/Saving/GitService/Branch",
"text": "用于保存的目标分支"
},
"$:/language/ControlPanel/Saving/GitService/CommitMessage": {
"title": "$:/language/ControlPanel/Saving/GitService/CommitMessage",
"text": "由 TiddlyWiki 保存"
},
"$:/language/ControlPanel/Saving/GitService/Description": {
"title": "$:/language/ControlPanel/Saving/GitService/Description",
"text": "这些设置仅用于保存至 <<service-name>>"
},
"$:/language/ControlPanel/Saving/GitService/Filename": {
"title": "$:/language/ControlPanel/Saving/GitService/Filename",
"text": "目标文件的文件名称 (例如,`index.html`)"
},
"$:/language/ControlPanel/Saving/GitService/Path": {
"title": "$:/language/ControlPanel/Saving/GitService/Path",
"text": "目标文件的路径 (例如,`/wiki/`)"
},
"$:/language/ControlPanel/Saving/GitService/Repo": {
"title": "$:/language/ControlPanel/Saving/GitService/Repo",
"text": "目标存储库 (例如,`Jermolene/TiddlyWiki5`)"
},
"$:/language/ControlPanel/Saving/GitService/ServerURL": {
"title": "$:/language/ControlPanel/Saving/GitService/ServerURL",
"text": "服务器 API 网址"
},
"$:/language/ControlPanel/Saving/GitService/UserName": {
"title": "$:/language/ControlPanel/Saving/GitService/UserName",
"text": "用户名称"
},
"$:/language/ControlPanel/Saving/GitService/GitHub/Caption": {
"title": "$:/language/ControlPanel/Saving/GitService/GitHub/Caption",
"text": "~GitHub 保存模块"
},
"$:/language/ControlPanel/Saving/GitService/GitHub/Password": {
"title": "$:/language/ControlPanel/Saving/GitService/GitHub/Password",
"text": "密码、OAUTH 令牌,或个人存取令牌 (详见 [[GitHub 帮助页面|https://help.github.com/en/articles/creating-a-personal-access-token-for-the-command-line]])"
},
"$:/language/ControlPanel/Saving/GitService/GitLab/Caption": {
"title": "$:/language/ControlPanel/Saving/GitService/GitLab/Caption",
"text": "~GitLab 保存模块"
},
"$:/language/ControlPanel/Saving/GitService/GitLab/Password": {
"title": "$:/language/ControlPanel/Saving/GitService/GitLab/Password",
"text": "个人存取令牌的 API (详见 [[GitLab 帮助页面|https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html]])"
},
"$:/language/ControlPanel/Saving/GitService/Gitea/Caption": {
"title": "$:/language/ControlPanel/Saving/GitService/Gitea/Caption",
"text": "Gitea 保存模块"
},
"$:/language/ControlPanel/Saving/GitService/Gitea/Password": {
"title": "$:/language/ControlPanel/Saving/GitService/Gitea/Password",
"text": "个人存取令牌的 API (通过 Gitea 的 Web 界面:`设定 | 应用程序 | 产生新的令牌`)"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Advanced/Heading": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Advanced/Heading",
"text": "高级设置"
},
"$:/language/ControlPanel/Saving/TiddlySpot/BackupDir": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/BackupDir",
"text": "备份文件夹"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Backups": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Backups",
"text": "备份"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Caption": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Caption",
"text": "~TiddlySpot 保存模块"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Description": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Description",
"text": "这些设置只适用于保存到 http://tiddlyspot.com 或兼容的远程服务器时。"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Filename": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Filename",
"text": "上传文件名"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Heading": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Heading",
"text": "~TiddlySpot"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Hint": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Hint",
"text": "//默认之服务器网址 `http://<wikiname>.tiddlyspot.com/store.cgi`,可改为定制之服务器网址,例如 `http://example.com/store.php`。//"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Password": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Password",
"text": "密码"
},
"$:/language/ControlPanel/Saving/TiddlySpot/ServerURL": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/ServerURL",
"text": "服务器网址"
},
"$:/language/ControlPanel/Saving/TiddlySpot/UploadDir": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/UploadDir",
"text": "上传文件夹"
},
"$:/language/ControlPanel/Saving/TiddlySpot/UserName": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/UserName",
"text": "用户"
},
"$:/language/ControlPanel/Settings/AutoSave/Caption": {
"title": "$:/language/ControlPanel/Settings/AutoSave/Caption",
"text": "自动保存"
},
"$:/language/ControlPanel/Settings/AutoSave/Disabled/Description": {
"title": "$:/language/ControlPanel/Settings/AutoSave/Disabled/Description",
"text": "不要自动保存变更"
},
"$:/language/ControlPanel/Settings/AutoSave/Enabled/Description": {
"title": "$:/language/ControlPanel/Settings/AutoSave/Enabled/Description",
"text": "自动保存变更"
},
"$:/language/ControlPanel/Settings/AutoSave/Hint": {
"title": "$:/language/ControlPanel/Settings/AutoSave/Hint",
"text": "当使用支持的保存模块时,在编辑期间尝试自动保存变更"
},
"$:/language/ControlPanel/Settings/CamelCase/Caption": {
"title": "$:/language/ControlPanel/Settings/CamelCase/Caption",
"text": "驼峰式维基链接"
},
"$:/language/ControlPanel/Settings/CamelCase/Hint": {
"title": "$:/language/ControlPanel/Settings/CamelCase/Hint",
"text": "您可以全域禁用驼峰式短语自动链接。须保存后重新加载,方才生效。"
},
"$:/language/ControlPanel/Settings/CamelCase/Description": {
"title": "$:/language/ControlPanel/Settings/CamelCase/Description",
"text": "启用自动驼峰式链接"
},
"$:/language/ControlPanel/Settings/Caption": {
"title": "$:/language/ControlPanel/Settings/Caption",
"text": "设置"
},
"$:/language/ControlPanel/Settings/DefaultSidebarTab/Caption": {
"title": "$:/language/ControlPanel/Settings/DefaultSidebarTab/Caption",
"text": "默认侧边栏页签"
},
"$:/language/ControlPanel/Settings/DefaultSidebarTab/Hint": {
"title": "$:/language/ControlPanel/Settings/DefaultSidebarTab/Hint",
"text": "指定默认显示的侧边栏页签"
},
"$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Caption": {
"title": "$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Caption",
"text": "更多侧边栏的默认页签"
},
"$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Hint": {
"title": "$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Hint",
"text": "指定默认显示的更多侧栏页签"
},
"$:/language/ControlPanel/Settings/EditorToolbar/Caption": {
"title": "$:/language/ControlPanel/Settings/EditorToolbar/Caption",
"text": "编辑器工具栏"
},
"$:/language/ControlPanel/Settings/EditorToolbar/Hint": {
"title": "$:/language/ControlPanel/Settings/EditorToolbar/Hint",
"text": "启用或禁用编辑器工具栏︰"
},
"$:/language/ControlPanel/Settings/EditorToolbar/Description": {
"title": "$:/language/ControlPanel/Settings/EditorToolbar/Description",
"text": "显示编辑器工具栏"
},
"$:/language/ControlPanel/Settings/InfoPanelMode/Caption": {
"title": "$:/language/ControlPanel/Settings/InfoPanelMode/Caption",
"text": "条目信息面板模式"
},
"$:/language/ControlPanel/Settings/InfoPanelMode/Hint": {
"title": "$:/language/ControlPanel/Settings/InfoPanelMode/Hint",
"text": "控制条目信息面板何时关闭︰"
},
"$:/language/ControlPanel/Settings/InfoPanelMode/Popup/Description": {
"title": "$:/language/ControlPanel/Settings/InfoPanelMode/Popup/Description",
"text": "条目信息面板自动关闭"
},
"$:/language/ControlPanel/Settings/InfoPanelMode/Sticky/Description": {
"title": "$:/language/ControlPanel/Settings/InfoPanelMode/Sticky/Description",
"text": "条目信息面板保持打开状态,直到明确关闭"
},
"$:/language/ControlPanel/Settings/Hint": {
"title": "$:/language/ControlPanel/Settings/Hint",
"text": "这些高级设置让您定制 TiddlyWiki 的行为。"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/Caption": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/Caption",
"text": "条目开启行为"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/InsideRiver/Hint": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/InsideRiver/Hint",
"text": "从故事河//中//导航"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/OutsideRiver/Hint": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OutsideRiver/Hint",
"text": "从故事河//外//导航"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAbove": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAbove",
"text": "开启于当前条目之上"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/OpenBelow": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenBelow",
"text": "开启于当前条目之下"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtTop": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtTop",
"text": "开启于故事河的顶端"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtBottom": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtBottom",
"text": "开启于故事河的底部"
},
"$:/language/ControlPanel/Settings/MissingLinks/Caption": {
"title": "$:/language/ControlPanel/Settings/MissingLinks/Caption",
"text": "维基链接"
},
"$:/language/ControlPanel/Settings/MissingLinks/Hint": {
"title": "$:/language/ControlPanel/Settings/MissingLinks/Hint",
"text": "选择是否要链接到尚未存在的条目"
},
"$:/language/ControlPanel/Settings/MissingLinks/Description": {
"title": "$:/language/ControlPanel/Settings/MissingLinks/Description",
"text": "启用链接到佚失条目"
},
"$:/language/ControlPanel/Settings/NavigationAddressBar/Caption": {
"title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Caption",
"text": "网址栏导览"
},
"$:/language/ControlPanel/Settings/NavigationAddressBar/Hint": {
"title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Hint",
"text": "在浏览器网址栏导览到条目时的行为:"
},
"$:/language/ControlPanel/Settings/NavigationAddressBar/No/Description": {
"title": "$:/language/ControlPanel/Settings/NavigationAddressBar/No/Description",
"text": "不更新网址栏"
},
"$:/language/ControlPanel/Settings/NavigationAddressBar/Permalink/Description": {
"title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Permalink/Description",
"text": "包含目标条目"
},
"$:/language/ControlPanel/Settings/NavigationAddressBar/Permaview/Description": {
"title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Permaview/Description",
"text": "包括目标条目和当前已开启的条目序列"
},
"$:/language/ControlPanel/Settings/NavigationHistory/Caption": {
"title": "$:/language/ControlPanel/Settings/NavigationHistory/Caption",
"text": "历史记录导览"
},
"$:/language/ControlPanel/Settings/NavigationHistory/Hint": {
"title": "$:/language/ControlPanel/Settings/NavigationHistory/Hint",
"text": "当导览到条目时,更新浏览器历史记录:"
},
"$:/language/ControlPanel/Settings/NavigationHistory/No/Description": {
"title": "$:/language/ControlPanel/Settings/NavigationHistory/No/Description",
"text": "不更新历史记录"
},
"$:/language/ControlPanel/Settings/NavigationHistory/Yes/Description": {
"title": "$:/language/ControlPanel/Settings/NavigationHistory/Yes/Description",
"text": "更新历史记录"
},
"$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/Caption": {
"title": "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/Caption",
"text": "引用链接/固定链接 模式"
},
"$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/Hint": {
"title": "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/Hint",
"text": "选择 引用链接/固定链接 的处理方式:"
},
"$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/CopyToClipboard/Description": {
"title": "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/CopyToClipboard/Description",
"text": "将 引用链接/固定链接 网址复制到剪贴板"
},
"$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/UpdateAddressBar/Description": {
"title": "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/UpdateAddressBar/Description",
"text": "以 引用链接/固定链接 更新网址栏"
},
"$:/language/ControlPanel/Settings/PerformanceInstrumentation/Caption": {
"title": "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Caption",
"text": "性能检测"
},
"$:/language/ControlPanel/Settings/PerformanceInstrumentation/Hint": {
"title": "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Hint",
"text": "在浏览器的开发人员控制台,显示性能统计数据。需要重新加载才能生效。"
},
"$:/language/ControlPanel/Settings/PerformanceInstrumentation/Description": {
"title": "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Description",
"text": "启用性能检测"
},
"$:/language/ControlPanel/Settings/ToolbarButtonStyle/Caption": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Caption",
"text": "工具栏按钮样式"
},
"$:/language/ControlPanel/Settings/ToolbarButtonStyle/Hint": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Hint",
"text": "选择工具栏按钮的样式:"
},
"$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Borderless": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Borderless",
"text": "无边框"
},
"$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Boxed": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Boxed",
"text": "方框"
},
"$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Rounded": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Rounded",
"text": "圆形"
},
"$:/language/ControlPanel/Settings/ToolbarButtons/Caption": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtons/Caption",
"text": "工具栏按钮"
},
"$:/language/ControlPanel/Settings/ToolbarButtons/Hint": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtons/Hint",
"text": "默认的工具栏按钮外观:"
},
"$:/language/ControlPanel/Settings/ToolbarButtons/Icons/Description": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtons/Icons/Description",
"text": "包含图标"
},
"$:/language/ControlPanel/Settings/ToolbarButtons/Text/Description": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtons/Text/Description",
"text": "包含文本"
},
"$:/language/ControlPanel/Settings/TitleLinks/Caption": {
"title": "$:/language/ControlPanel/Settings/TitleLinks/Caption",
"text": "条目标题"
},
"$:/language/ControlPanel/Settings/TitleLinks/Hint": {
"title": "$:/language/ControlPanel/Settings/TitleLinks/Hint",
"text": "可选地显示条目标题为链接"
},
"$:/language/ControlPanel/Settings/TitleLinks/No/Description": {
"title": "$:/language/ControlPanel/Settings/TitleLinks/No/Description",
"text": "不显示条目标题为链接"
},
"$:/language/ControlPanel/Settings/TitleLinks/Yes/Description": {
"title": "$:/language/ControlPanel/Settings/TitleLinks/Yes/Description",
"text": "显示条目标题为链接"
},
"$:/language/ControlPanel/StoryView/Caption": {
"title": "$:/language/ControlPanel/StoryView/Caption",
"text": "查看模式"
},
"$:/language/ControlPanel/StoryView/Prompt": {
"title": "$:/language/ControlPanel/StoryView/Prompt",
"text": "当前的查看模式:"
},
"$:/language/ControlPanel/Stylesheets/Caption": {
"title": "$:/language/ControlPanel/Stylesheets/Caption",
"text": "样式表"
},
"$:/language/ControlPanel/Stylesheets/Expand/Caption": {
"title": "$:/language/ControlPanel/Stylesheets/Expand/Caption",
"text": "全部展开"
},
"$:/language/ControlPanel/Stylesheets/Hint": {
"title": "$:/language/ControlPanel/Stylesheets/Hint",
"text": "这是当前标签为 <<tag \"$:/tags/Stylesheet\">> 的样式表条目呈现的 CSS"
},
"$:/language/ControlPanel/Stylesheets/Restore/Caption": {
"title": "$:/language/ControlPanel/Stylesheets/Restore/Caption",
"text": "复原"
},
"$:/language/ControlPanel/Theme/Caption": {
"title": "$:/language/ControlPanel/Theme/Caption",
"text": "布景主题"
},
"$:/language/ControlPanel/Theme/Prompt": {
"title": "$:/language/ControlPanel/Theme/Prompt",
"text": "当前的布景主题:"
},
"$:/language/ControlPanel/TiddlerFields/Caption": {
"title": "$:/language/ControlPanel/TiddlerFields/Caption",
"text": "条目栏位"
},
"$:/language/ControlPanel/TiddlerFields/Hint": {
"title": "$:/language/ControlPanel/TiddlerFields/Hint",
"text": "这是本维基使用中的所有条目栏位(含系统条目的栏位,但默认条目的栏位除外)。"
},
"$:/language/ControlPanel/Toolbars/Caption": {
"title": "$:/language/ControlPanel/Toolbars/Caption",
"text": "工具栏"
},
"$:/language/ControlPanel/Toolbars/EditToolbar/Caption": {
"title": "$:/language/ControlPanel/Toolbars/EditToolbar/Caption",
"text": "编辑工具栏"
},
"$:/language/ControlPanel/Toolbars/EditToolbar/Hint": {
"title": "$:/language/ControlPanel/Toolbars/EditToolbar/Hint",
"text": "选择将显示哪些按钮于条目的编辑模式工具栏。拖放可改变顺序。"
},
"$:/language/ControlPanel/Toolbars/Hint": {
"title": "$:/language/ControlPanel/Toolbars/Hint",
"text": "选择将显示哪些工具栏按钮"
},
"$:/language/ControlPanel/Toolbars/PageControls/Caption": {
"title": "$:/language/ControlPanel/Toolbars/PageControls/Caption",
"text": "页面工具栏"
},
"$:/language/ControlPanel/Toolbars/PageControls/Hint": {
"title": "$:/language/ControlPanel/Toolbars/PageControls/Hint",
"text": "选择将显示哪些按钮于主页面的工具栏。拖放可改变顺序。"
},
"$:/language/ControlPanel/Toolbars/EditorToolbar/Caption": {
"title": "$:/language/ControlPanel/Toolbars/EditorToolbar/Caption",
"text": "编辑器工具栏"
},
"$:/language/ControlPanel/Toolbars/EditorToolbar/Hint": {
"title": "$:/language/ControlPanel/Toolbars/EditorToolbar/Hint",
"text": "选择将显示哪些按钮于编辑器工具栏。请注意,某些按钮只会出现在编辑某一类型的条目时。拖放可改变顺序。"
},
"$:/language/ControlPanel/Toolbars/ViewToolbar/Caption": {
"title": "$:/language/ControlPanel/Toolbars/ViewToolbar/Caption",
"text": "查看工具栏"
},
"$:/language/ControlPanel/Toolbars/ViewToolbar/Hint": {
"title": "$:/language/ControlPanel/Toolbars/ViewToolbar/Hint",
"text": "选择将显示哪些按钮于条目的查看模式工具栏。拖放可改变顺序。"
},
"$:/language/ControlPanel/Tools/Download/Full/Caption": {
"title": "$:/language/ControlPanel/Tools/Download/Full/Caption",
"text": "下载完整副本"
},
"$:/core/zh-Hans/readme": {
"title": "$:/core/zh-Hans/readme",
"text": "此插件包含 TiddlyWiki 的核心组件,包括:\n\n* JavaScript 代码模块\n* 图标\n* 创建 TiddlyWiki 的用户介面所需的模板\n* 核心所使用的可当地语系化字串的英国英语 (''en-GB'') 翻译\n"
},
"$:/language/Date/Long/Day/0": {
"title": "$:/language/Date/Long/Day/0",
"text": "周日"
},
"$:/language/Date/Long/Day/1": {
"title": "$:/language/Date/Long/Day/1",
"text": "周一"
},
"$:/language/Date/Long/Day/2": {
"title": "$:/language/Date/Long/Day/2",
"text": "周二"
},
"$:/language/Date/Long/Day/3": {
"title": "$:/language/Date/Long/Day/3",
"text": "周三"
},
"$:/language/Date/Long/Day/4": {
"title": "$:/language/Date/Long/Day/4",
"text": "周四"
},
"$:/language/Date/Long/Day/5": {
"title": "$:/language/Date/Long/Day/5",
"text": "周五"
},
"$:/language/Date/Long/Day/6": {
"title": "$:/language/Date/Long/Day/6",
"text": "周六"
},
"$:/language/Date/Long/Month/1": {
"title": "$:/language/Date/Long/Month/1",
"text": "一月"
},
"$:/language/Date/Long/Month/2": {
"title": "$:/language/Date/Long/Month/2",
"text": "二月"
},
"$:/language/Date/Long/Month/3": {
"title": "$:/language/Date/Long/Month/3",
"text": "三月"
},
"$:/language/Date/Long/Month/4": {
"title": "$:/language/Date/Long/Month/4",
"text": "四月"
},
"$:/language/Date/Long/Month/5": {
"title": "$:/language/Date/Long/Month/5",
"text": "五月"
},
"$:/language/Date/Long/Month/6": {
"title": "$:/language/Date/Long/Month/6",
"text": "六月"
},
"$:/language/Date/Long/Month/7": {
"title": "$:/language/Date/Long/Month/7",
"text": "七月"
},
"$:/language/Date/Long/Month/8": {
"title": "$:/language/Date/Long/Month/8",
"text": "八月"
},
"$:/language/Date/Long/Month/9": {
"title": "$:/language/Date/Long/Month/9",
"text": "九月"
},
"$:/language/Date/Long/Month/10": {
"title": "$:/language/Date/Long/Month/10",
"text": "十月"
},
"$:/language/Date/Long/Month/11": {
"title": "$:/language/Date/Long/Month/11",
"text": "十一月"
},
"$:/language/Date/Long/Month/12": {
"title": "$:/language/Date/Long/Month/12",
"text": "十二月"
},
"$:/language/Date/Period/am": {
"title": "$:/language/Date/Period/am",
"text": "上午"
},
"$:/language/Date/Period/pm": {
"title": "$:/language/Date/Period/pm",
"text": "下午"
},
"$:/language/Date/Short/Day/0": {
"title": "$:/language/Date/Short/Day/0",
"text": "日"
},
"$:/language/Date/Short/Day/1": {
"title": "$:/language/Date/Short/Day/1",
"text": "一"
},
"$:/language/Date/Short/Day/2": {
"title": "$:/language/Date/Short/Day/2",
"text": "二"
},
"$:/language/Date/Short/Day/3": {
"title": "$:/language/Date/Short/Day/3",
"text": "三"
},
"$:/language/Date/Short/Day/4": {
"title": "$:/language/Date/Short/Day/4",
"text": "四"
},
"$:/language/Date/Short/Day/5": {
"title": "$:/language/Date/Short/Day/5",
"text": "五"
},
"$:/language/Date/Short/Day/6": {
"title": "$:/language/Date/Short/Day/6",
"text": "六"
},
"$:/language/Date/Short/Month/1": {
"title": "$:/language/Date/Short/Month/1",
"text": "01月"
},
"$:/language/Date/Short/Month/2": {
"title": "$:/language/Date/Short/Month/2",
"text": "02月"
},
"$:/language/Date/Short/Month/3": {
"title": "$:/language/Date/Short/Month/3",
"text": "03月"
},
"$:/language/Date/Short/Month/4": {
"title": "$:/language/Date/Short/Month/4",
"text": "04月"
},
"$:/language/Date/Short/Month/5": {
"title": "$:/language/Date/Short/Month/5",
"text": "05月"
},
"$:/language/Date/Short/Month/6": {
"title": "$:/language/Date/Short/Month/6",
"text": "06月"
},
"$:/language/Date/Short/Month/7": {
"title": "$:/language/Date/Short/Month/7",
"text": "07月"
},
"$:/language/Date/Short/Month/8": {
"title": "$:/language/Date/Short/Month/8",
"text": "08月"
},
"$:/language/Date/Short/Month/9": {
"title": "$:/language/Date/Short/Month/9",
"text": "09月"
},
"$:/language/Date/Short/Month/10": {
"title": "$:/language/Date/Short/Month/10",
"text": "10月"
},
"$:/language/Date/Short/Month/11": {
"title": "$:/language/Date/Short/Month/11",
"text": "11月"
},
"$:/language/Date/Short/Month/12": {
"title": "$:/language/Date/Short/Month/12",
"text": "12月"
},
"$:/language/RelativeDate/Future/Days": {
"title": "$:/language/RelativeDate/Future/Days",
"text": "<<period>> 天后"
},
"$:/language/RelativeDate/Future/Hours": {
"title": "$:/language/RelativeDate/Future/Hours",
"text": "<<period>> 小时后"
},
"$:/language/RelativeDate/Future/Minutes": {
"title": "$:/language/RelativeDate/Future/Minutes",
"text": "<<period>> 分钟后"
},
"$:/language/RelativeDate/Future/Months": {
"title": "$:/language/RelativeDate/Future/Months",
"text": "<<period>> 个月后"
},
"$:/language/RelativeDate/Future/Second": {
"title": "$:/language/RelativeDate/Future/Second",
"text": "1 秒后"
},
"$:/language/RelativeDate/Future/Seconds": {
"title": "$:/language/RelativeDate/Future/Seconds",
"text": "<<period>> 秒后"
},
"$:/language/RelativeDate/Future/Years": {
"title": "$:/language/RelativeDate/Future/Years",
"text": "<<period>> 年后"
},
"$:/language/RelativeDate/Past/Days": {
"title": "$:/language/RelativeDate/Past/Days",
"text": "<<period>> 天前"
},
"$:/language/RelativeDate/Past/Hours": {
"title": "$:/language/RelativeDate/Past/Hours",
"text": "<<period>> 小时前"
},
"$:/language/RelativeDate/Past/Minutes": {
"title": "$:/language/RelativeDate/Past/Minutes",
"text": "<<period>> 分钟前"
},
"$:/language/RelativeDate/Past/Months": {
"title": "$:/language/RelativeDate/Past/Months",
"text": "<<period>> 个月前"
},
"$:/language/RelativeDate/Past/Second": {
"title": "$:/language/RelativeDate/Past/Second",
"text": "1 秒前"
},
"$:/language/RelativeDate/Past/Seconds": {
"title": "$:/language/RelativeDate/Past/Seconds",
"text": "<<period>> 秒前"
},
"$:/language/RelativeDate/Past/Years": {
"title": "$:/language/RelativeDate/Past/Years",
"text": "<<period>> 年前"
},
"$:/language/Docs/ModuleTypes/allfilteroperator": {
"title": "$:/language/Docs/ModuleTypes/allfilteroperator",
"text": "''all'' 筛选器算子的子算子。"
},
"$:/language/Docs/ModuleTypes/animation": {
"title": "$:/language/Docs/ModuleTypes/animation",
"text": "动画模块包含可用于 RevealWidget 的动画。"
},
"$:/language/Docs/ModuleTypes/authenticator": {
"title": "$:/language/Docs/ModuleTypes/authenticator",
"text": "定义内置 HTTP 服务器对请求的身份验证方式。"
},
"$:/language/Docs/ModuleTypes/bitmapeditoroperation": {
"title": "$:/language/Docs/ModuleTypes/bitmapeditoroperation",
"text": "一个位图编辑器工具栏操作。"
},
"$:/language/Docs/ModuleTypes/command": {
"title": "$:/language/Docs/ModuleTypes/command",
"text": "可于 Node.js 执行的指令。"
},
"$:/language/Docs/ModuleTypes/config": {
"title": "$:/language/Docs/ModuleTypes/config",
"text": "加入 `$tw.config` 的数据。"
},
"$:/language/Docs/ModuleTypes/filteroperator": {
"title": "$:/language/Docs/ModuleTypes/filteroperator",
"text": "个别筛选器算子方法。"
},
"$:/language/Docs/ModuleTypes/global": {
"title": "$:/language/Docs/ModuleTypes/global",
"text": "加入 `$tw` 的全域数据。"
},
"$:/language/Docs/ModuleTypes/info": {
"title": "$:/language/Docs/ModuleTypes/info",
"text": "透过 [[$:/temp/info-plugin]] 伪插件,发布系统信息。"
},
"$:/language/Docs/ModuleTypes/isfilteroperator": {
"title": "$:/language/Docs/ModuleTypes/isfilteroperator",
"text": "''is'' 筛选器算子的运算符。"
},
"$:/language/Docs/ModuleTypes/library": {
"title": "$:/language/Docs/ModuleTypes/library",
"text": "一般用途的 JavaScript 模块的通用模块类型。"
},
"$:/language/Docs/ModuleTypes/macro": {
"title": "$:/language/Docs/ModuleTypes/macro",
"text": "JavaScript ''宏''定义。"
},
"$:/language/Docs/ModuleTypes/parser": {
"title": "$:/language/Docs/ModuleTypes/parser",
"text": "不同内容类型的解析器。"
},
"$:/language/Docs/ModuleTypes/route": {
"title": "$:/language/Docs/ModuleTypes/route",
"text": "定义内置 HTTP 服务器如何处理各个网址格式。"
},
"$:/language/Docs/ModuleTypes/saver": {
"title": "$:/language/Docs/ModuleTypes/saver",
"text": "于浏览器保存文件的不同的保存处理方法。"
},
"$:/language/Docs/ModuleTypes/startup": {
"title": "$:/language/Docs/ModuleTypes/startup",
"text": "启动时期的功能函数。"
},
"$:/language/Docs/ModuleTypes/storyview": {
"title": "$:/language/Docs/ModuleTypes/storyview",
"text": "查看模式用以自订 list 小部件的动画与行为。"
},
"$:/language/Docs/ModuleTypes/texteditoroperation": {
"title": "$:/language/Docs/ModuleTypes/texteditoroperation",
"text": "一个文本编辑器工具栏操作。"
},
"$:/language/Docs/ModuleTypes/tiddlerdeserializer": {
"title": "$:/language/Docs/ModuleTypes/tiddlerdeserializer",
"text": "转换不同内容类型至条目。"
},
"$:/language/Docs/ModuleTypes/tiddlerfield": {
"title": "$:/language/Docs/ModuleTypes/tiddlerfield",
"text": "定义个别条目栏位的行为。"
},
"$:/language/Docs/ModuleTypes/tiddlermethod": {
"title": "$:/language/Docs/ModuleTypes/tiddlermethod",
"text": "添加方法至 `$tw.Tiddler` 原型。"
},
"$:/language/Docs/ModuleTypes/upgrader": {
"title": "$:/language/Docs/ModuleTypes/upgrader",
"text": "于升级/导入过程中,套用升级处理至条目。"
},
"$:/language/Docs/ModuleTypes/utils": {
"title": "$:/language/Docs/ModuleTypes/utils",
"text": "添加方法至 `$tw.utils`。"
},
"$:/language/Docs/ModuleTypes/utils-node": {
"title": "$:/language/Docs/ModuleTypes/utils-node",
"text": "将特定于 Node.js 的方法添加到 '$tw.utils'。"
},
"$:/language/Docs/ModuleTypes/widget": {
"title": "$:/language/Docs/ModuleTypes/widget",
"text": "封装 DOM 渲染和刷新的小部件。"
},
"$:/language/Docs/ModuleTypes/wikimethod": {
"title": "$:/language/Docs/ModuleTypes/wikimethod",
"text": "添加方法至 `$tw.Wiki`。"
},
"$:/language/Docs/ModuleTypes/wikirule": {
"title": "$:/language/Docs/ModuleTypes/wikirule",
"text": "WikiText 解析器的个别的语法规则。"
},
"$:/language/Docs/PaletteColours/alert-background": {
"title": "$:/language/Docs/PaletteColours/alert-background",
"text": "警示背景"
},
"$:/language/Docs/PaletteColours/alert-border": {
"title": "$:/language/Docs/PaletteColours/alert-border",
"text": "警示边框"
},
"$:/language/Docs/PaletteColours/alert-highlight": {
"title": "$:/language/Docs/PaletteColours/alert-highlight",
"text": "警示高亮度"
},
"$:/language/Docs/PaletteColours/alert-muted-foreground": {
"title": "$:/language/Docs/PaletteColours/alert-muted-foreground",
"text": "警示的低调前景"
},
"$:/language/Docs/PaletteColours/background": {
"title": "$:/language/Docs/PaletteColours/background",
"text": "一般背景"
},
"$:/language/Docs/PaletteColours/blockquote-bar": {
"title": "$:/language/Docs/PaletteColours/blockquote-bar",
"text": "引言条"
},
"$:/language/Docs/PaletteColours/button-background": {
"title": "$:/language/Docs/PaletteColours/button-background",
"text": "默认按钮背景"
},
"$:/language/Docs/PaletteColours/button-border": {
"title": "$:/language/Docs/PaletteColours/button-border",
"text": "默认按钮边框"
},
"$:/language/Docs/PaletteColours/button-foreground": {
"title": "$:/language/Docs/PaletteColours/button-foreground",
"text": "默认按钮前景"
},
"$:/language/Docs/PaletteColours/code-background": {
"title": "$:/language/Docs/PaletteColours/code-background",
"text": "代码背景"
},
"$:/language/Docs/PaletteColours/code-border": {
"title": "$:/language/Docs/PaletteColours/code-border",
"text": "代码边框"
},
"$:/language/Docs/PaletteColours/code-foreground": {
"title": "$:/language/Docs/PaletteColours/code-foreground",
"text": "代码前景"
},
"$:/language/Docs/PaletteColours/dirty-indicator": {
"title": "$:/language/Docs/PaletteColours/dirty-indicator",
"text": "未保存变更指示器"
},
"$:/language/Docs/PaletteColours/download-background": {
"title": "$:/language/Docs/PaletteColours/download-background",
"text": "下载按钮背景"
},
"$:/language/Docs/PaletteColours/download-foreground": {
"title": "$:/language/Docs/PaletteColours/download-foreground",
"text": "下载按钮前景"
},
"$:/language/Docs/PaletteColours/dragger-background": {
"title": "$:/language/Docs/PaletteColours/dragger-background",
"text": "拖动区背景"
},
"$:/language/Docs/PaletteColours/dragger-foreground": {
"title": "$:/language/Docs/PaletteColours/dragger-foreground",
"text": "拖动区前景"
},
"$:/language/Docs/PaletteColours/dropdown-background": {
"title": "$:/language/Docs/PaletteColours/dropdown-background",
"text": "下拉背景"
},
"$:/language/Docs/PaletteColours/dropdown-border": {
"title": "$:/language/Docs/PaletteColours/dropdown-border",
"text": "下拉边框"
},
"$:/language/Docs/PaletteColours/dropdown-tab-background-selected": {
"title": "$:/language/Docs/PaletteColours/dropdown-tab-background-selected",
"text": "选定的下拉页签背景"
},
"$:/language/Docs/PaletteColours/dropdown-tab-background": {
"title": "$:/language/Docs/PaletteColours/dropdown-tab-background",
"text": "下拉页签背景"
},
"$:/language/Docs/PaletteColours/dropzone-background": {
"title": "$:/language/Docs/PaletteColours/dropzone-background",
"text": "拖放背景"
},
"$:/language/Docs/PaletteColours/external-link-background-hover": {
"title": "$:/language/Docs/PaletteColours/external-link-background-hover",
"text": "悬停外部链结背景"
},
"$:/language/Docs/PaletteColours/external-link-background-visited": {
"title": "$:/language/Docs/PaletteColours/external-link-background-visited",
"text": "已造访过的外部链结背景"
},
"$:/language/Docs/PaletteColours/external-link-background": {
"title": "$:/language/Docs/PaletteColours/external-link-background",
"text": "外部链结背景"
},
"$:/language/Docs/PaletteColours/external-link-foreground-hover": {
"title": "$:/language/Docs/PaletteColours/external-link-foreground-hover",
"text": "悬停外部链结前景"
},
"$:/language/Docs/PaletteColours/external-link-foreground-visited": {
"title": "$:/language/Docs/PaletteColours/external-link-foreground-visited",
"text": "已造访过的外部链结前景"
},
"$:/language/Docs/PaletteColours/external-link-foreground": {
"title": "$:/language/Docs/PaletteColours/external-link-foreground",
"text": "外部链结前景"
},
"$:/language/Docs/PaletteColours/foreground": {
"title": "$:/language/Docs/PaletteColours/foreground",
"text": "一般前景"
},
"$:/language/Docs/PaletteColours/menubar-background": {
"title": "$:/language/Docs/PaletteColours/menubar-background",
"text": "菜单列背景"
},
"$:/language/Docs/PaletteColours/menubar-foreground": {
"title": "$:/language/Docs/PaletteColours/menubar-foreground",
"text": "菜单列前景"
},
"$:/language/Docs/PaletteColours/message-background": {
"title": "$:/language/Docs/PaletteColours/message-background",
"text": "信息框背景"
},
"$:/language/Docs/PaletteColours/message-border": {
"title": "$:/language/Docs/PaletteColours/message-border",
"text": "信息边框"
},
"$:/language/Docs/PaletteColours/message-foreground": {
"title": "$:/language/Docs/PaletteColours/message-foreground",
"text": "信息框前景"
},
"$:/language/Docs/PaletteColours/modal-backdrop": {
"title": "$:/language/Docs/PaletteColours/modal-backdrop",
"text": "模块背景幕"
},
"$:/language/Docs/PaletteColours/modal-background": {
"title": "$:/language/Docs/PaletteColours/modal-background",
"text": "模块背景"
},
"$:/language/Docs/PaletteColours/modal-border": {
"title": "$:/language/Docs/PaletteColours/modal-border",
"text": "模块边框"
},
"$:/language/Docs/PaletteColours/modal-footer-background": {
"title": "$:/language/Docs/PaletteColours/modal-footer-background",
"text": "模块页脚背景"
},
"$:/language/Docs/PaletteColours/modal-footer-border": {
"title": "$:/language/Docs/PaletteColours/modal-footer-border",
"text": "模块页脚边框"
},
"$:/language/Docs/PaletteColours/modal-header-border": {
"title": "$:/language/Docs/PaletteColours/modal-header-border",
"text": "模块标题边框"
},
"$:/language/Docs/PaletteColours/muted-foreground": {
"title": "$:/language/Docs/PaletteColours/muted-foreground",
"text": "一般低调前景"
},
"$:/language/Docs/PaletteColours/notification-background": {
"title": "$:/language/Docs/PaletteColours/notification-background",
"text": "通知背景"
},
"$:/language/Docs/PaletteColours/notification-border": {
"title": "$:/language/Docs/PaletteColours/notification-border",
"text": "通知边框"
},
"$:/language/Docs/PaletteColours/page-background": {
"title": "$:/language/Docs/PaletteColours/page-background",
"text": "页面背景"
},
"$:/language/Docs/PaletteColours/pre-background": {
"title": "$:/language/Docs/PaletteColours/pre-background",
"text": "pre 背景"
},
"$:/language/Docs/PaletteColours/pre-border": {
"title": "$:/language/Docs/PaletteColours/pre-border",
"text": "pre 边框"
},
"$:/language/Docs/PaletteColours/primary": {
"title": "$:/language/Docs/PaletteColours/primary",
"text": "主颜色"
},
"$:/language/Docs/PaletteColours/select-tag-background": {
"title": "$:/language/Docs/PaletteColours/select-tag-background",
"text": "`<select>` 元素背景"
},
"$:/language/Docs/PaletteColours/select-tag-foreground": {
"title": "$:/language/Docs/PaletteColours/select-tag-foreground",
"text": "`<select>` 元素文本"
},
"$:/language/Docs/PaletteColours/sidebar-button-foreground": {
"title": "$:/language/Docs/PaletteColours/sidebar-button-foreground",
"text": "侧边栏按钮前景"
},
"$:/language/Docs/PaletteColours/sidebar-controls-foreground-hover": {
"title": "$:/language/Docs/PaletteColours/sidebar-controls-foreground-hover",
"text": "悬停侧边栏控制项前景"
},
"$:/language/Docs/PaletteColours/sidebar-controls-foreground": {
"title": "$:/language/Docs/PaletteColours/sidebar-controls-foreground",
"text": "侧边栏控制项前景"
},
"$:/language/Docs/PaletteColours/sidebar-foreground-shadow": {
"title": "$:/language/Docs/PaletteColours/sidebar-foreground-shadow",
"text": "侧边栏前景阴影"
},
"$:/language/Docs/PaletteColours/sidebar-foreground": {
"title": "$:/language/Docs/PaletteColours/sidebar-foreground",
"text": "侧边栏前景"
},
"$:/language/Docs/PaletteColours/sidebar-muted-foreground-hover": {
"title": "$:/language/Docs/PaletteColours/sidebar-muted-foreground-hover",
"text": "悬停侧边栏低调前景"
},
"$:/language/Docs/PaletteColours/sidebar-muted-foreground": {
"title": "$:/language/Docs/PaletteColours/sidebar-muted-foreground",
"text": "侧边栏低调前景"
},
"$:/language/Docs/PaletteColours/sidebar-tab-background-selected": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-background-selected",
"text": "侧边栏选定页签背景"
},
"$:/language/Docs/PaletteColours/sidebar-tab-background": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-background",
"text": "侧边栏页签背景"
},
"$:/language/Docs/PaletteColours/sidebar-tab-border-selected": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-border-selected",
"text": "侧边栏选定页签边框"
},
"$:/language/Docs/PaletteColours/sidebar-tab-border": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-border",
"text": "侧边栏页签边框"
},
"$:/language/Docs/PaletteColours/sidebar-tab-divider": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-divider",
"text": "侧边栏页签分隔线"
},
"$:/language/Docs/PaletteColours/sidebar-tab-foreground-selected": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-foreground-selected",
"text": "侧边栏选定页签前景"
},
"$:/language/Docs/PaletteColours/sidebar-tab-foreground": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-foreground",
"text": "侧边栏页签前景"
},
"$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground-hover": {
"title": "$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground-hover",
"text": "侧边栏悬停条目链结前景"
},
"$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground": {
"title": "$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground",
"text": "侧边栏条目链结前景"
},
"$:/language/Docs/PaletteColours/site-title-foreground": {
"title": "$:/language/Docs/PaletteColours/site-title-foreground",
"text": "网站标题前景"
},
"$:/language/Docs/PaletteColours/static-alert-foreground": {
"title": "$:/language/Docs/PaletteColours/static-alert-foreground",
"text": "静态警示前景"
},
"$:/language/Docs/PaletteColours/tab-background-selected": {
"title": "$:/language/Docs/PaletteColours/tab-background-selected",
"text": "选定的页签背景"
},
"$:/language/Docs/PaletteColours/tab-background": {
"title": "$:/language/Docs/PaletteColours/tab-background",
"text": "页签背景"
},
"$:/language/Docs/PaletteColours/tab-border-selected": {
"title": "$:/language/Docs/PaletteColours/tab-border-selected",
"text": "选定的页签边框"
},
"$:/language/Docs/PaletteColours/tab-border": {
"title": "$:/language/Docs/PaletteColours/tab-border",
"text": "页签边框"
},
"$:/language/Docs/PaletteColours/tab-divider": {
"title": "$:/language/Docs/PaletteColours/tab-divider",
"text": "页签分隔线"
},
"$:/language/Docs/PaletteColours/tab-foreground-selected": {
"title": "$:/language/Docs/PaletteColours/tab-foreground-selected",
"text": "选定的页签前景"
},
"$:/language/Docs/PaletteColours/tab-foreground": {
"title": "$:/language/Docs/PaletteColours/tab-foreground",
"text": "页签前景"
},
"$:/language/Docs/PaletteColours/table-border": {
"title": "$:/language/Docs/PaletteColours/table-border",
"text": "表格边框"
},
"$:/language/Docs/PaletteColours/table-footer-background": {
"title": "$:/language/Docs/PaletteColours/table-footer-background",
"text": "表格页脚背景"
},
"$:/language/Docs/PaletteColours/table-header-background": {
"title": "$:/language/Docs/PaletteColours/table-header-background",
"text": "表格标题背景"
},
"$:/language/Docs/PaletteColours/tag-background": {
"title": "$:/language/Docs/PaletteColours/tag-background",
"text": "标签背景"
},
"$:/language/Docs/PaletteColours/tag-foreground": {
"title": "$:/language/Docs/PaletteColours/tag-foreground",
"text": "标签前景"
},
"$:/language/Docs/PaletteColours/tiddler-background": {
"title": "$:/language/Docs/PaletteColours/tiddler-background",
"text": "条目背景"
},
"$:/language/Docs/PaletteColours/tiddler-border": {
"title": "$:/language/Docs/PaletteColours/tiddler-border",
"text": "条目边框"
},
"$:/language/Docs/PaletteColours/tiddler-controls-foreground-hover": {
"title": "$:/language/Docs/PaletteColours/tiddler-controls-foreground-hover",
"text": "悬停的条目控制项前景"
},
"$:/language/Docs/PaletteColours/tiddler-controls-foreground-selected": {
"title": "$:/language/Docs/PaletteColours/tiddler-controls-foreground-selected",
"text": "选定的条目控制项前景"
},
"$:/language/Docs/PaletteColours/tiddler-controls-foreground": {
"title": "$:/language/Docs/PaletteColours/tiddler-controls-foreground",
"text": "条目控制项前景"
},
"$:/language/Docs/PaletteColours/tiddler-editor-background": {
"title": "$:/language/Docs/PaletteColours/tiddler-editor-background",
"text": "条目编辑器背景"
},
"$:/language/Docs/PaletteColours/tiddler-editor-border-image": {
"title": "$:/language/Docs/PaletteColours/tiddler-editor-border-image",
"text": "条目编辑器边框图片"
},
"$:/language/Docs/PaletteColours/tiddler-editor-border": {
"title": "$:/language/Docs/PaletteColours/tiddler-editor-border",
"text": "条目编辑器边框"
},
"$:/language/Docs/PaletteColours/tiddler-editor-fields-even": {
"title": "$:/language/Docs/PaletteColours/tiddler-editor-fields-even",
"text": "条目编辑器中偶数栏位背景"
},
"$:/language/Docs/PaletteColours/tiddler-editor-fields-odd": {
"title": "$:/language/Docs/PaletteColours/tiddler-editor-fields-odd",
"text": "条目编辑器中奇数栏位背景"
},
"$:/language/Docs/PaletteColours/tiddler-info-background": {
"title": "$:/language/Docs/PaletteColours/tiddler-info-background",
"text": "条目信息面板背景"
},
"$:/language/Docs/PaletteColours/tiddler-info-border": {
"title": "$:/language/Docs/PaletteColours/tiddler-info-border",
"text": "条目信息面板边框"
},
"$:/language/Docs/PaletteColours/tiddler-info-tab-background": {
"title": "$:/language/Docs/PaletteColours/tiddler-info-tab-background",
"text": "条目信息面板页签背景"
},
"$:/language/Docs/PaletteColours/tiddler-link-background": {
"title": "$:/language/Docs/PaletteColours/tiddler-link-background",
"text": "条目链结背景"
},
"$:/language/Docs/PaletteColours/tiddler-link-foreground": {
"title": "$:/language/Docs/PaletteColours/tiddler-link-foreground",
"text": "条目链结前景"
},
"$:/language/Docs/PaletteColours/tiddler-subtitle-foreground": {
"title": "$:/language/Docs/PaletteColours/tiddler-subtitle-foreground",
"text": "条目副标题前景"
},
"$:/language/Docs/PaletteColours/tiddler-title-foreground": {
"title": "$:/language/Docs/PaletteColours/tiddler-title-foreground",
"text": "条目标题前景"
},
"$:/language/Docs/PaletteColours/toolbar-new-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-new-button",
"text": "工具栏 '添加条目' 按钮前景"
},
"$:/language/Docs/PaletteColours/toolbar-options-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-options-button",
"text": "工具栏 '选项' 按钮前景"
},
"$:/language/Docs/PaletteColours/toolbar-save-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-save-button",
"text": "工具栏 '保存' 按钮前景"
},
"$:/language/Docs/PaletteColours/toolbar-info-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-info-button",
"text": "工具栏 '资讯' 按钮前景"
},
"$:/language/Docs/PaletteColours/toolbar-edit-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-edit-button",
"text": "工具栏 '编辑' 按钮前景"
},
"$:/language/Docs/PaletteColours/toolbar-close-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-close-button",
"text": "工具栏 '关闭' 按钮前景"
},
"$:/language/Docs/PaletteColours/toolbar-delete-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-delete-button",
"text": "工具栏 '删除' 按钮前景"
},
"$:/language/Docs/PaletteColours/toolbar-cancel-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-cancel-button",
"text": "工具栏 '取消' 按钮前景"
},
"$:/language/Docs/PaletteColours/toolbar-done-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-done-button",
"text": "工具栏 '完成 按钮前景"
},
"$:/language/Docs/PaletteColours/untagged-background": {
"title": "$:/language/Docs/PaletteColours/untagged-background",
"text": "未设标签的背景"
},
"$:/language/Docs/PaletteColours/very-muted-foreground": {
"title": "$:/language/Docs/PaletteColours/very-muted-foreground",
"text": "非常低调前景"
},
"$:/language/EditTemplate/Body/External/Hint": {
"title": "$:/language/EditTemplate/Body/External/Hint",
"text": "此条目显示保存于主要的 TiddlyWiki 文件之外的内容。你可以编辑其标签和字段,但不能直接编辑内容本身"
},
"$:/language/EditTemplate/Body/Placeholder": {
"title": "$:/language/EditTemplate/Body/Placeholder",
"text": "输入此条目的内容"
},
"$:/language/EditTemplate/Body/Preview/Type/Output": {
"title": "$:/language/EditTemplate/Body/Preview/Type/Output",
"text": "输出"
},
"$:/language/EditTemplate/Field/Remove/Caption": {
"title": "$:/language/EditTemplate/Field/Remove/Caption",
"text": "删除字段"
},
"$:/language/EditTemplate/Field/Remove/Hint": {
"title": "$:/language/EditTemplate/Field/Remove/Hint",
"text": "删除字段"
},
"$:/language/EditTemplate/Field/Dropdown/Caption": {
"title": "$:/language/EditTemplate/Field/Dropdown/Caption",
"text": "字段列表"
},
"$:/language/EditTemplate/Field/Dropdown/Hint": {
"title": "$:/language/EditTemplate/Field/Dropdown/Hint",
"text": "显示字段列表"
},
"$:/language/EditTemplate/Fields/Add/Button": {
"title": "$:/language/EditTemplate/Fields/Add/Button",
"text": "添加"
},
"$:/language/EditTemplate/Fields/Add/Button/Hint": {
"title": "$:/language/EditTemplate/Fields/Add/Button/Hint",
"text": "添加字段至条目"
},
"$:/language/EditTemplate/Fields/Add/Dropdown/System": {
"title": "$:/language/EditTemplate/Fields/Add/Dropdown/System",
"text": "系统字段"
},
"$:/language/EditTemplate/Fields/Add/Dropdown/User": {
"title": "$:/language/EditTemplate/Fields/Add/Dropdown/User",
"text": "使用者字段"
},
"$:/language/EditTemplate/Fields/Add/Name/Placeholder": {
"title": "$:/language/EditTemplate/Fields/Add/Name/Placeholder",
"text": "字段名称"
},
"$:/language/EditTemplate/Fields/Add/Prompt": {
"title": "$:/language/EditTemplate/Fields/Add/Prompt",
"text": "添加字段:"
},
"$:/language/EditTemplate/Fields/Add/Value/Placeholder": {
"title": "$:/language/EditTemplate/Fields/Add/Value/Placeholder",
"text": "字段内容"
},
"$:/language/EditTemplate/Shadow/Warning": {
"title": "$:/language/EditTemplate/Shadow/Warning",
"text": "这是一个默认条目。您做的任何更改将会覆盖来自 <<pluginLink>> 插件的默认版本。"
},
"$:/language/EditTemplate/Shadow/OverriddenWarning": {
"title": "$:/language/EditTemplate/Shadow/OverriddenWarning",
"text": "这是一个修改过的默认条目。删除此条目可以还原为 <<pluginLink>> 插件中的默认版本。"
},
"$:/language/EditTemplate/Tags/Add/Button": {
"title": "$:/language/EditTemplate/Tags/Add/Button",
"text": "添加"
},
"$:/language/EditTemplate/Tags/Add/Button/Hint": {
"title": "$:/language/EditTemplate/Tags/Add/Button/Hint",
"text": "添加标签"
},
"$:/language/EditTemplate/Tags/Add/Placeholder": {
"title": "$:/language/EditTemplate/Tags/Add/Placeholder",
"text": "标签名称"
},
"$:/language/EditTemplate/Tags/Dropdown/Caption": {
"title": "$:/language/EditTemplate/Tags/Dropdown/Caption",
"text": "标签清单"
},
"$:/language/EditTemplate/Tags/Dropdown/Hint": {
"title": "$:/language/EditTemplate/Tags/Dropdown/Hint",
"text": "显示标签清单"
},
"$:/language/EditTemplate/Title/BadCharacterWarning": {
"title": "$:/language/EditTemplate/Title/BadCharacterWarning",
"text": "请注意,避免在条目名称中使用这些字符:<<bad-chars>>"
},
"$:/language/EditTemplate/Title/Exists/Prompt": {
"title": "$:/language/EditTemplate/Title/Exists/Prompt",
"text": "目标条目已经存在"
},
"$:/language/EditTemplate/Title/Relink/Prompt": {
"title": "$:/language/EditTemplate/Title/Relink/Prompt",
"text": "将在其他条目的 //tags// 和 //list// 字段中的 ''<$text text=<<fromTitle>>/>'' 改为 ''<$text text=<<toTitle>>/>''"
},
"$:/language/EditTemplate/Title/References/Prompt": {
"title": "$:/language/EditTemplate/Title/References/Prompt",
"text": "下列对此条目的引用,不会自动更新:"
},
"$:/language/EditTemplate/Type/Dropdown/Caption": {
"title": "$:/language/EditTemplate/Type/Dropdown/Caption",
"text": "内容类型清单"
},
"$:/language/EditTemplate/Type/Dropdown/Hint": {
"title": "$:/language/EditTemplate/Type/Dropdown/Hint",
"text": "显示内容类型清单"
},
"$:/language/EditTemplate/Type/Delete/Caption": {
"title": "$:/language/EditTemplate/Type/Delete/Caption",
"text": "删除内容类型"
},
"$:/language/EditTemplate/Type/Delete/Hint": {
"title": "$:/language/EditTemplate/Type/Delete/Hint",
"text": "删除内容类型"
},
"$:/language/EditTemplate/Type/Placeholder": {
"title": "$:/language/EditTemplate/Type/Placeholder",
"text": "内容类型"
},
"$:/language/EditTemplate/Type/Prompt": {
"title": "$:/language/EditTemplate/Type/Prompt",
"text": "类型:"
},
"$:/language/Exporters/StaticRiver": {
"title": "$:/language/Exporters/StaticRiver",
"text": "静态 HTML"
},
"$:/language/Exporters/JsonFile": {
"title": "$:/language/Exporters/JsonFile",
"text": "JSON 文件"
},
"$:/language/Exporters/CsvFile": {
"title": "$:/language/Exporters/CsvFile",
"text": "CSV 文件"
},
"$:/language/Exporters/TidFile": {
"title": "$:/language/Exporters/TidFile",
"text": "\".tid\" 文件"
},
"$:/language/Docs/Fields/_canonical_uri": {
"title": "$:/language/Docs/Fields/_canonical_uri",
"text": "外部图像条目的完整的 URI"
},
"$:/language/Docs/Fields/bag": {
"title": "$:/language/Docs/Fields/bag",
"text": "条目的来源集的名称"
},
"$:/language/Docs/Fields/caption": {
"title": "$:/language/Docs/Fields/caption",
"text": "显示于页签或按钮上的标题文字"
},
"$:/language/Docs/Fields/color": {
"title": "$:/language/Docs/Fields/color",
"text": "条目的 CSS 颜色值"
},
"$:/language/Docs/Fields/component": {
"title": "$:/language/Docs/Fields/component",
"text": "负责[[警示条目|AlertMechanism]]的组件名称"
},
"$:/language/Docs/Fields/created": {
"title": "$:/language/Docs/Fields/created",
"text": "条目的创建日期"
},
"$:/language/Docs/Fields/creator": {
"title": "$:/language/Docs/Fields/creator",
"text": "条目的创建者"
},
"$:/language/Docs/Fields/current-tiddler": {
"title": "$:/language/Docs/Fields/current-tiddler",
"text": "用于缓存[[浏览历史列表|HistoryMechanism]]的最上层条目"
},
"$:/language/Docs/Fields/dependents": {
"title": "$:/language/Docs/Fields/dependents",
"text": "插件的相依插件列表"
},
"$:/language/Docs/Fields/description": {
"title": "$:/language/Docs/Fields/description",
"text": "插件的说明、描述"
},
"$:/language/Docs/Fields/draft.of": {
"title": "$:/language/Docs/Fields/draft.of",
"text": "草稿条目,包含条目的标题、标签、栏位 ..."
},
"$:/language/Docs/Fields/draft.title": {
"title": "$:/language/Docs/Fields/draft.title",
"text": "草稿条目的标题"
},
"$:/language/Docs/Fields/footer": {
"title": "$:/language/Docs/Fields/footer",
"text": "wizard 的注脚"
},
"$:/language/Docs/Fields/icon": {
"title": "$:/language/Docs/Fields/icon",
"text": "条目的标题含有与条目关联的图标"
},
"$:/language/Docs/Fields/library": {
"title": "$:/language/Docs/Fields/library",
"text": "若设为 \"yes\",表示条目应该被保存为一个 JavaScript 程序库"
},
"$:/language/Docs/Fields/list": {
"title": "$:/language/Docs/Fields/list",
"text": "条目的列表,指定一些条目的标题清单"
},
"$:/language/Docs/Fields/list-before": {
"title": "$:/language/Docs/Fields/list-before",
"text": "前条目名称将被添加到条目排序清单中的设置条目名称之前,或若此栏位存在但是空的,则被添加于清单的前端"
},
"$:/language/Docs/Fields/list-after": {
"title": "$:/language/Docs/Fields/list-after",
"text": "当前条目名称将被添加到条目排序清单的设置条目名称之后,或若此栏位存在但是空的,则被添加于清单的尾端"
},
"$:/language/Docs/Fields/modified": {
"title": "$:/language/Docs/Fields/modified",
"text": "条目的最近修改日期与时间"
},
"$:/language/Docs/Fields/modifier": {
"title": "$:/language/Docs/Fields/modifier",
"text": "条目的最近修改者"
},
"$:/language/Docs/Fields/name": {
"title": "$:/language/Docs/Fields/name",
"text": "具可读性的插件条目的名称"
},
"$:/language/Docs/Fields/plugin-priority": {
"title": "$:/language/Docs/Fields/plugin-priority",
"text": "插件条目的优先级数值"
},
"$:/language/Docs/Fields/plugin-type": {
"title": "$:/language/Docs/Fields/plugin-type",
"text": "插件条目的类型"
},
"$:/language/Docs/Fields/released": {
"title": "$:/language/Docs/Fields/released",
"text": "TiddlyWiki 的发布日期"
},
"$:/language/Docs/Fields/revision": {
"title": "$:/language/Docs/Fields/revision",
"text": "条目存放于服务器中的修订版本"
},
"$:/language/Docs/Fields/source": {
"title": "$:/language/Docs/Fields/source",
"text": "条目的网址"
},
"$:/language/Docs/Fields/subtitle": {
"title": "$:/language/Docs/Fields/subtitle",
"text": "一个 wizard 的副标题"
},
"$:/language/Docs/Fields/tags": {
"title": "$:/language/Docs/Fields/tags",
"text": "条目的标签清单"
},
"$:/language/Docs/Fields/text": {
"title": "$:/language/Docs/Fields/text",
"text": "条目的内文"
},
"$:/language/Docs/Fields/throttle.refresh": {
"title": "$:/language/Docs/Fields/throttle.refresh",
"text": "如果存在,则限制此条目的刷新"
},
"$:/language/Docs/Fields/title": {
"title": "$:/language/Docs/Fields/title",
"text": "条目的唯一名称"
},
"$:/language/Docs/Fields/toc-link": {
"title": "$:/language/Docs/Fields/toc-link",
"text": "若设为: \"no\",则抑制目录树中的条目链接。"
},
"$:/language/Docs/Fields/type": {
"title": "$:/language/Docs/Fields/type",
"text": "条目的内容类型"
},
"$:/language/Docs/Fields/version": {
"title": "$:/language/Docs/Fields/version",
"text": "插件的版本信息"
},
"$:/language/Docs/Fields/_is_skinny": {
"title": "$:/language/Docs/Fields/_is_skinny",
"text": "如果存在,则表示必须从服务器加载条目的文本字段"
},
"$:/language/Filters/AllTiddlers": {
"title": "$:/language/Filters/AllTiddlers",
"text": "所有条目,不含系统条目"
},
"$:/language/Filters/RecentSystemTiddlers": {
"title": "$:/language/Filters/RecentSystemTiddlers",
"text": "最近修改的条目,包含系统条目"
},
"$:/language/Filters/RecentTiddlers": {
"title": "$:/language/Filters/RecentTiddlers",
"text": "最近修改的条目"
},
"$:/language/Filters/AllTags": {
"title": "$:/language/Filters/AllTags",
"text": "所有标签,不含系统标签"
},
"$:/language/Filters/Missing": {
"title": "$:/language/Filters/Missing",
"text": "缺失条目"
},
"$:/language/Filters/Drafts": {
"title": "$:/language/Filters/Drafts",
"text": "草稿条目"
},
"$:/language/Filters/Orphans": {
"title": "$:/language/Filters/Orphans",
"text": "孤立条目"
},
"$:/language/Filters/SystemTiddlers": {
"title": "$:/language/Filters/SystemTiddlers",
"text": "系统条目"
},
"$:/language/Filters/ShadowTiddlers": {
"title": "$:/language/Filters/ShadowTiddlers",
"text": "默认条目"
},
"$:/language/Filters/OverriddenShadowTiddlers": {
"title": "$:/language/Filters/OverriddenShadowTiddlers",
"text": "被覆写的默认条目"
},
"$:/language/Filters/SessionTiddlers": {
"title": "$:/language/Filters/SessionTiddlers",
"text": "自维基加载后修改的条目"
},
"$:/language/Filters/SystemTags": {
"title": "$:/language/Filters/SystemTags",
"text": "系统标签"
},
"$:/language/Filters/StoryList": {
"title": "$:/language/Filters/StoryList",
"text": "故事河中的条目,不含 ~$:/AdvancedSearch"
},
"$:/language/Filters/TypedTiddlers": {
"title": "$:/language/Filters/TypedTiddlers",
"text": "非维基文字条目"
},
"GettingStarted": {
"title": "GettingStarted",
"text": "\\define lingo-base() $:/language/ControlPanel/Basics/\n欢迎使用 ~TiddlyWiki 及参与 ~TiddlyWiki 社群\n\n开始将重要资讯存放于 ~TiddlyWiki 之前,确认您可以可靠地保存变更是很重要的。详细资讯请参阅 https://tiddlywiki.com/#GettingStarted\n\n!! 设置此 ~TiddlyWiki\n\n<div class=\"tc-control-panel\">\n\n|<$link to=\"$:/SiteTitle\"><<lingo Title/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteTitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/SiteSubtitle\"><<lingo Subtitle/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteSubtitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/DefaultTiddlers\"><<lingo DefaultTiddlers/Prompt>></$link> |<<lingo DefaultTiddlers/TopHint>><br> <$edit tag=\"textarea\" tiddler=\"$:/DefaultTiddlers\"/><br>//<<lingo DefaultTiddlers/BottomHint>>// |\n</div>\n\n请参阅[[控制台|$:/ControlPanel]]查看更多选项。"
},
"$:/language/Help/build": {
"title": "$:/language/Help/build",
"description": "自动执行已配置的命令",
"text": "生成指定的生成目标为当前 wiki。若未指定任何生成目标,则生成所有可用的目标。\n\n```\n--build <target> [<target> ...]\n```\n\n生成目标在 wiki 文件夹的 `tiddlywiki.info` 文件中定义。\n"
},
"$:/language/Help/clearpassword": {
"title": "$:/language/Help/clearpassword",
"description": "清除用于后续加密的密码",
"text": "清除用于后续加密的密码\n\n```\n--clearpassword\n```\n"
},
"$:/language/Help/default": {
"title": "$:/language/Help/default",
"text": "\\define commandTitle()\n$:/language/Help/$(command)$\n\\end\n```\n用法: tiddlywiki [<wikifolder>] [--<command> [<args>...]...]\n```\n\n可用的命令:\n\n<ul>\n<$list filter=\"[commands[]sort[title]]\" variable=\"command\">\n<li><$link to=<<commandTitle>>><$macrocall $name=\"command\" $type=\"text/plain\" $output=\"text/plain\"/></$link>: <$transclude tiddler=<<commandTitle>> field=\"description\"/></li>\n</$list>\n</ul>\n\n取得关于某个命令的详细帮助:\n\n```\ntiddlywiki --help <command>\n```\n"
},
"$:/language/Help/deletetiddlers": {
"title": "$:/language/Help/deletetiddlers",
"description": "删除一组条目",
"text": "<<.from-version \"5.1.20\">> 删除由筛选器标识的一组条目。\n\n```\n--deletetiddlers <filter>\n```\n"
},
"$:/language/Help/editions": {
"title": "$:/language/Help/editions",
"description": "列出可用的 TiddlyWiki 版本",
"text": "列出可用版本的名称和描述。您可以用 `--init` 命令创建一个指定版本的新维基。\n\n```\n--editions\n```\n"
},
"$:/language/Help/fetch": {
"title": "$:/language/Help/fetch",
"description": "通过网址从维基撷取条目",
"text": "通过 HTTP/HTTPS 撷取一个或多个文件,并导入匹配筛选器的条目,可选的转换传入的名称。\n\n```\n--fetch file <url> <import-filter> <transform-filter>\n--fetch files <url-filter> <import-filter> <transform-filter>\n--fetch raw-file <url> <transform-filter>\n--fetch raw-files <url-filter> <transform-filter>\n```\n\n \"file\" 和 \"files\" 选项撷取指定的文件,并尝试导入其中的条目(与将文件拖动到浏览器视窗中的处理相同)。 \"raw-file\" 和 \"raw-files\" 变选项撷取指定的文件,并将原始文件资料存储于条目,而不套用导入逻辑。\n\n使用 \"file\" and \"raw-file\" 选项为仅撷取单个文件,且第一个参数为要读取文件的网址。\n\n使用 \"files\" 和 \"raw-files\" 选项为撷取多个文件,且第一个参数是一个产生要读取文件的网址清单的筛选器。例如,给定标签为 \"remote-server\" 的一组具有字段 \"url\" 的条目,筛选器 `[tag[remote-server]get[url]]` 将取回所有可用的网址。\n\n对于 \"file\" 和 \"files\" 选项,the `<import-filter>` 参数指定一个筛选器,用于确定要导入哪些条目。如果未提供,则默认为 `[all[tiddlers]]`。\n\n对于所有选项,`<transform-filter>` 参数指定一个可选的筛选器,用于转换导入条目的名称。例如,`[addprefix[$:/myimports/]]` 会将前缀 `$:/myimports/` 加至每个名称。\n\n于 `--fetch` 之前使用 `--verbose` 命令,将在导入期间输出进度信息。\n\n请注意,TiddlyWiki 不会撷取一个已经加载插件的旧版本。\n\n以下示例从 https://tiddlywiki.com 取回所有非系统条目,并将其保存到一个 JSON 文件:\n\n```\ntiddlywiki --verbose --fetch file \"https://tiddlywiki.com/\" \"[!is[system]]\" \"\" --rendertiddler \"$:/core/templates/exporters/JsonFile\" output.json text/plain \"\" exportFilter \"[!is[system]]\"\n```\n\n以下范例从 https://tiddlywiki.com 取回 \"favicon\" 文件,并将其保存在名为 \"output.ico\" 的文件中。请注意,在 \"--fetch\" 命令中引用的中间条目 \"Icon Tiddler\",因为它被用作转换筛选器来替换预设的名称,而 \"--savetiddler\" 命令没有引号,因为它是直接用作标题。\n\n```\ntiddlywiki --verbose --fetch raw-file \"https://tiddlywiki.com/favicon.ico\" \"[[Icon Tiddler]]\" --savetiddler \"Icon Tiddler\" output.ico\n```\n"
},
"$:/language/Help/help": {
"title": "$:/language/Help/help",
"description": "显示 TiddlyWiki 命令的说明",
"text": "显示命令的帮助文本:\n\n```\n--help [<command>]\n```\n\n若省略命令名称,则显示可用命令的清单。\n"
},
"$:/language/Help/import": {
"title": "$:/language/Help/import",
"description": "从文件导入条目",
"text": "从 TiddlyWiki 文件 (`.html`)、`.tiddler`、`.tid`、`.json` 或其他本机文件导入条目。必须明确指定解串器,而不像 load 命令,从文件扩展名推断解串器。\n\n```\n--import <filepath> <deserializer> [<title>] [<encoding>]\n```\n\n核心的解串器包括:\n\n* application/javascript\n* application/json\n* application/x-tiddler\n* application/x-tiddler-html-div\n* application/x-tiddlers\n* text/html\n* text/plain\n\n导入的条目名称,默认为文件名。\n\n编码默认为 \"utf8\",但用于导入二进制文件可以是 \"base64\"。\n\n请注意,TiddlyWiki 不会导入旧版本的已加载插件。\n"
},
"$:/language/Help/init": {
"title": "$:/language/Help/init",
"description": "初始化一个新的 wiki 文件夹",
"text": "初始化一个空的 [[WikiFolder|WikiFolders]] 的指定版本的副本。\n\n```\n--init <edition> [<edition> ...]\n```\n\n例如:\n\n```\ntiddlywiki ./MyWikiFolder --init empty\n```\n\n注意:\n\n* 若有需要,将创建 wiki 文件夹目录\n* 其中 \"edition\" 默认为 ''empty''\n* 若 wiki 文件夹不是空的,则初始化命令将失败\n* 初始化命令会删除 'tiddlywiki.info' 文件内所有 'includeWikis' 的定义。\n* 当指定多个版本时,这些版本于初始化后,将覆写早期版本共用的所有文件 (故此最终的 `tiddlywiki.info` 文件将是从最近的版本复制而得)\n* `--editions` 传回所有可用版本的清单。\n"
},
"$:/language/Help/listen": {
"title": "$:/language/Help/listen",
"description": "为 TiddlyWiki 提供一个 HTTP 服务器接口",
"text": "通过 HTTP 提供一个维基服务。\n\nlisten 命令使用[[命名的命令参数|NamedCommandParameters]]:\n\n```\n--listen [<name>=<value>]...\n```\n\n所有参数都是可选的, 具有安全的默认值, 可以按任意顺序指定。认可的参数有:\n\n* ''host'' - 可选的主机名称, (默认为 \"127.0.0.1\" 或名为 \"localhost\")\n* ''path-prefix'' - 可选的路径前缀\n* ''port'' - 侦听的埠号;非数值会被解译为一个系统环境变数,从其中提取埠号 (默认为 \"8080\")\n* ''credentials'' - 凭证 CSV 文件的路径名(相对于维基文件夹)\n* ''anon-username'' - 匿名用户的编辑署名\n* ''username'' - 可选的基本验证用户名称\n* ''password'' - 可选的基本验证密码\n* ''authenticated-user-header'' - 可选的标头名称,用于受信任身份验证\n* ''readers'' - 允许读取此维基的主体,以逗号分隔的清单\n* ''writers'' - 允许写入此维基的主体,以逗号分隔的清单\n* ''csrf-disable'' - 设置为 \"yes\" 以禁用 CSRF 检查 (默认为 \"no\")\n* ''root-tiddler'' - 服务的基本条目 (默认为 \"$:/core/save/all\")\n* ''root-render-type'' - 呈现的基本条目的内容类型 (默认为 \"text/plain\")\n* ''root-serve-type'' - 服务的基本条目的内容类型 (默认为 \"text/html\")\n* ''tls-cert'' - TLS 证书文件的路径名(相对于维基文件夹)\n* ''tls-key'' - TLS 密钥文件的路径名(相对于维基文件夹)\n* ''debug-level'' - 可选的调试级别;设置为 \"debug\" 来查看请求的详细信息;(默认为 \"none\")\n* ''gzip'' - 设为 \"yes\" 以启用某些 http 端点的 gzip 压缩 (默认为 \"no\")\n\n有关向整个本地网络开启实例的信息,以及可能的安全问题,请参阅 TiddlyWiki.com 的 WebServer 条目。\n"
},
"$:/language/Help/load": {
"title": "$:/language/Help/load",
"description": "从文件中加载条目",
"text": "从 TiddlyWiki (`.html`), `.tiddler`, `.tid`, `.json` 或其他本机文件加载条目。应用的处理程序取决于导入文件的扩展名。如果您需要明确指定解串器和编码,请改用 `import` 命令。\n\n```\n--load <filepath> [noerror]\n--load <dirpath> [noerror]\n```\n\n默认情况下, 如果未找到条目,load 命令会引发错误。通过提供可选的 \"noerror\" 参数可以抑制该错误。\n\n从已加密的 TiddlyWiki 文件中加载条目,须使用 PasswordCommand 指定密码,例如:\n\n```\ntiddlywiki ./MyWiki --password pa55w0rd --load my_encrypted_wiki.html\n```\n\n请注意 TiddlyWiki 将不加载旧版本的已挂载的插件。\n"
},
"$:/language/Help/makelibrary": {
"title": "$:/language/Help/makelibrary",
"description": "构建升级处理所需的程式库插件",
"text": "为升级处理构建 `$:/UpgradeLibrary` 条目。\n\n升级程式库被格式化为一个插件类型为 `library` 的一般插件条目。它包含 TiddlyWiki5 存储库中所有可用的插件、布景主题和语言包的副本。\n\n此命令仅供内部使用;它只是与使用者构建一个自订的升级程序相关。\n\n```\n--makelibrary <title>\n```\n\n标题参数默认为 `$:/UpgradeLibrary`。\n"
},
"$:/language/Help/notfound": {
"title": "$:/language/Help/notfound",
"text": "无此帮助项目"
},
"$:/language/Help/output": {
"title": "$:/language/Help/output",
"description": "设置后续命令的基准输出文件夹",
"text": "设置后续命令的基准输出文件夹,默认为该版本文件夹的 `output` 子文件夹。\n\n```\n--output <pathname>\n```\n\n若指定的路径是相对路径,则它是被解析相对于当前的工作文件夹。例如:`--output .` 將輸出文件夹設置為當前工作文件夹。"
},
"$:/language/Help/password": {
"title": "$:/language/Help/password",
"description": "设置用以加密的密码",
"text": "设置用以加密的密码\n\n```\n--password <password>\n```\n\n''请注意'':这不是用于提供 TiddlyWiki 具有密码保护功能。相反地,请看 [[ServerCommand]] 的密码选项说明。\n"
},
"$:/language/Help/render": {
"title": "$:/language/Help/render",
"description": "呈现个别条目到文件",
"text": "呈现由筛选器标识的个别条目,并将结果保存到指定的文件。\n\n可选择性地指定范本条目名称。在此情况下,不是直接呈现每个条目,而是使用设为正在呈现的条目名称的 \"currentTiddler\" 变量,来呈现范本条目。\n\n也可以选择性地指定附加变量的名称和值。\n\n```\n--render <tiddler-filter> [<filename-filter>] [<render-type>] [<template>] [<name>] [<value>]\n```\n\n* ''tiddler-filter'': 标识要呈现的条目的筛选器\n* ''filename-filter'': 可选的筛选器,转换条目名称至路径名。如果省略,默认为 `[is[tiddler]addsuffix[.html]]`,其使用未改变的条目名称为文件名\n* ''template'': 可选的范本,用于呈现每个条目\n* ''render-type'': 可选的呈现类型:`text/html` (默认值) 会传回完整的 HTML 文本,而 `text/plain` 只会传回文本内容 (即其忽略 HTML 标记与其他不可印出的数据)\n* ''name'': 可选的变量名称\n* ''value'': 可选的变量值\n\n默认情况下,文件名被解析为相对于发行版文件夹的 `output` 子文件夹。`--output` 命令可用于将输出指到一个不同的文件夹。\n\n附注:\n\n* 输出目录不清除任何现有的文件\n* 文件名的路径中,任何不存在的文件夹,将自动创建。\n* 当正呈现的条目名称中带有空格,请注意同时使用命令行接口所要求的引号,与 TiddlyWiki 的双重方括号;`--render \"[[Motovun Jack.jpg]]\"`\n* 所选的项目被设置为当前正在呈现的条目名称,以此评估文件名筛选器,允条目名称用作基础计算的文件名。例如,`[encodeuricomponent[]addprefix[static/]]` 为每个条目名称套用 URI 编码,然后增加首码 `static/`\n* `--render` 命令是已弃用的 `--rendertiddler` 和 `--rendertiddlers` 的一个更灵活的替代命令。\n\n例子:\n\n* `--render \"[!is[system]]\" \"[encodeuricomponent[]addprefix[tiddlers/]addsuffix[.html]]\"` -- 呈现所有非系统条目为 \"tiddlers\" 子文件夹中的文件,文件名为 URL 编码的条目名称和扩展名 HTML\n"
},
"$:/language/Help/rendertiddler": {
"title": "$:/language/Help/rendertiddler",
"description": "呈现个别条目为指定的内容类型",
"text": "(请注意:`--rendertiddler` 命令已被弃用,而支持新的、更灵活的 `--render` 命令)\n\n呈现个别条目为指定的[[内容类型|ContentType]],默认为 `text/html` 且保存为指定的文件名。\n\n还可以指定一个模板,在这种情况下,\"currentTiddler\" 变量设为正在呈现的条目 (第一个参数值) 与模板条目合并呈现。\n\n也能可选地指定附加变量的名称与其值。\n\n```\n--rendertiddler <title> <filename> [<type>] [<template>]\n```\n\n默认情况下,文件名被解析为相对于版本文件夹的 `output` 子文件夹。 `--output` 命令可以用于将输出指定到一个不同的文件夹。\n\n自动创建在文件名称的路径中任何缺少的文件夹。\n\n例如,以下命令通过使用核心模板 `$:/core/templates/exporters/JsonFile`,将所有匹配筛选器 `[tag[done]]` 的条目保存到名为 `output.json` 的 JSON 文件。\n\n```\n--rendertiddler \"$:/core/templates/exporters/JsonFile\" output.json text/plain \"\" exportFilter \"[tag[done]]\"\n```"
},
"$:/language/Help/rendertiddlers": {
"title": "$:/language/Help/rendertiddlers",
"description": "呈现符合筛选条件的条目为指定的内容类型",
"text": "(请注意:`--rendertiddlers` 命令已被弃用,而支持新的、更灵活的 `--render` 命令)\n\n呈现符合筛选条的条目为指定的[[内容类型|ContentType]] (默认为 `text/html`) 与扩展名 (默认为 `.html`).\n\n```\n--rendertiddlers <filter> <template> <pathname> [<type>] [<extension>] [\"noclean\"]\n```\n\n例如:\n\n```\n--rendertiddlers [!is[system]] $:/core/templates/static.tiddler.html ./static text/plain\n```\n\n默认情况下,路径名被解析为相对于版本文件夹的 `output` 子文件夹。 `--output` 命令可以用于将输出指定到一个不同的文件。\n\n在目标文件夹中的任何文件都会被删除,除非指定 ''noclean'' 旗标。若缺少目标文件夹,则以递归方式创建。"
},
"$:/language/Help/save": {
"title": "$:/language/Help/save",
"description": "将个别原始条目保存到文件",
"text": "将筛选器标识的个别条目,以原始文本或二进位格式,保存到指定的文件。\n\n```\n--save <tiddler-filter> <filename-filter>\n```\n\n* ''tiddler-filter'': 标识要保存的条目的筛选器\n* ''filename-filter'': 可选的筛选器,转换条目名称至路径名。如果省略,默认为 `[is[tiddler]]`,其使用未改变的条目名称为文件名\n\n附注:\n\n* 输出文件夹不清除任何现有的文件\n* 文件名的路径中,任何不存在的文件夹,将自动创建。\n* 当正保存的条目的名称中带有空格,请注意同时使用命令行接口所要求的引号,与 TiddlyWiki 的双重方括号;`--save \"[[Motovun Jack.jpg]]\"`\n* 所选的项目被设置为当前正在保存的条目名称,以此评估文件名筛选器,允条目名称用作基础计算的文件名。例如,`[encodeuricomponent[]addprefix[static/]]` 为每个条目名称套用 URI 编码,然后增加首码 `static/`\n* `--save` 命令是已被弃用的 `--savetiddler` 和 `--savetiddlers` 的一个更灵活的替代命令。\n\n例子:\n\n* `--save \"[!is[system]is[image]]\" \"[encodeuricomponent[]addprefix[tiddlers/]]\"` -- 保存所有非系统的图像条目为 \"tiddlers\" 子文件夹中的文件,文件名为 URL 编码的条目名称"
},
"$:/language/Help/savetiddler": {
"title": "$:/language/Help/savetiddler",
"description": "将条目的原始内容保存到一个文件",
"text": "(请注意:`--savetiddler` 命令已被弃用,而支持新的、更灵活的 `--save` 命令)\n\n保存个别条目的原始文本或二进制格式到指定的文件名。\n\n```\n--savetiddler <title> <filename>\n```\n\n默认情况下,文件名被解析为相对于版本文件夹的 `output` 子文件夹。 `--output` 命令可以用于将输出指定到一个不同的文件。\n\n自动创建在文件名称的路径中任何缺少的文件夹。\n"
},
"$:/language/Help/savetiddlers": {
"title": "$:/language/Help/savetiddlers",
"description": "将一群条目的原始内容保存到一个文件夹",
"text": "(请注意:`--savetiddlers` 命令已被弃用,而支持新的、更灵活的 `--save` 命令)\n\n保存一群条目的原始文字或二进制格式到指定的文件夹。\n\n```\n--savetiddlers <filter> <pathname> [noclean]\n```\n\n默认情况下,路径名被解析为相对于版本文件夹的 `output` 子文件夹。 `--output` 命令可以用于将输出指定到一个不同的文件夹。\n\n保存指定的文件之前,会先清除输出目录的现有文件。可藉由指定 ''noclean'' 旗标,禁用该删除动作。\n\n自动创建在路径中任何缺少的文件夹。\n"
},
"$:/language/Help/savewikifolder": {
"title": "$:/language/Help/savewikifolder",
"description": "将维基保存到一个新的维基文件夹",
"text": "<<.from-version \"5.1.20\">> 将当前维基保存为一个维基文件夹,包含条目、插件和配置:\n\n```\n--savewikifolder <wikifolderpath> [<filter>]\n```\n\n* 目标维基文件夹必须为空或不存在\n* 筛选器指定应包括哪些条目。其为可选,默认为 `[all[tiddlers]]`\n* 官方插件库中的插件,将替换为 `tiddlywiki.info` 文件中引用到的插件\n* 自订插件将解压缩到自己的文件夹中\n\n常见的用法是将一个 TiddlyWiki HTML 文件转换成维基文件夹:\n\n```\ntiddlywiki --load ./mywiki.html --savewikifolder ./mywikifolder\n```\n"
},
"$:/language/Help/server": {
"title": "$:/language/Help/server",
"description": "提供一个 HTTP 服务器介面到 TiddlyWiki (已弃用,支持新的 listen 命令)",
"text": "在服务器中内置 TiddlyWiki5 是非常简单。虽与 TiddlyWeb 兼容,但不支持许多健全互联网面向的使用方式所需的功能。\n\n提供呈现一个指定条目,也可将个别条目编码成 JSON,且支持基本的 HTTP 操作 `GET`、`PUT` 及 `DELETE`.\n\n```\n--server <port> <root-tiddler> <root-render-type> <root-serve-type> <username> <password> <host> <path-prefix> <debug-level>\n```\n\n参数说明:\n\n* ''port'' - 要侦听的埠号;非数值会被解译为一个系统环境变数,从其中提取埠号 (默认为 \"8080\")\n* ''root-tiddler'' - 服务的基本条目 (默认为 \"$:/core/save/all\")\n* ''root-render-type'' - 呈现的基本条目的内容类型 (默认为 \"text/plain\")\n* ''root-serve-type'' - 服务的基本条目的内容类型 (默认为 \"text/html\")\n* ''username'' - 默认的编辑者署名\n* ''password'' - 可选的基本验证密码\n* ''host'' - 可选的主机名称, (默认为 \"127.0.0.1\" 或名为 \"localhost\")\n* ''path-prefix'' - 可选的路径前缀\n* ''debug-level'' - 可选的调试级别;设置为 \"debug\" 来查看请求的详细信息;(默认为 \"none\")\n\n若指定密码参数,浏览器将提示使用者输入用户名与密码。注意,密码系以明码方式传递,应只在受信任的网络或 HTTPS 上使用。\n\n例如:\n\n```\n--server 8080 $:/core/save/all text/plain text/html MyUserName passw0rd\n```\n\n若您需要设置主机名称或路径前缀,而不要求输入密码,则可以指定空字符串的使用者名和密码。\n\n```\n--server 8080 $:/core/save/all text/plain text/html \"\" \"\" 192.168.0.245\n```\n\n使用这样的位址,会将您的系统暴露给本地网络。有关向整个本地网络开启实例的信息,以及可能的安全问题,请参阅 TiddlyWiki.com 的 WebServer 条目。\n\n同时执行多个 TiddlyWiki 服务,须分别指定不同的埠号。使用环境变数,有助于将埠号传递给 Node.js 进程。本示例引用一个名为 \"MY_PORT_NUMBER\" 的环境变数:\n\n```\n--server MY_PORT_NUMBER $:/core/save/all text/plain text/html MyUserName passw0rd\n```"
},
"$:/language/Help/setfield": {
"title": "$:/language/Help/setfield",
"description": "准备用于外部条目",
"text": "//请注意此命令是试验性的,且可能会更改或在最终定稿前被替换//\n\n设置一群条目的指定栏位到 wikifying 范本条目的结果,其中的 `currentTiddler` 变数设置为各该条目。\n\n```\n--setfield <filter> <fieldname> <templatetitle> <rendertype>\n```\n\n参数说明:\n\n* ''filter'' - 受影响的辨识条目的筛选条件\n* ''fieldname'' - 要修改的栏位(默认为 \"text\")\n* ''templatetitle'' - 该条目 wikify 到指定栏位。若为空白或丢失,则删除指定的栏位\n* ''rendertype'' - 要呈现的文本类型(默认为 \"text/plain\"; \"text/html\" 可以用于包含 HTML 标记))\n"
},
"$:/language/Help/unpackplugin": {
"title": "$:/language/Help/unpackplugin",
"description": "从插件解开附属的条目",
"text": "提取插件的附属条目,将其建立为一般条目:\n\n```\n--unpackplugin <title>\n```\n"
},
"$:/language/Help/verbose": {
"title": "$:/language/Help/verbose",
"description": "触发详细的输出模式",
"text": "触发显示详细的命令执行过程,可用于调试\n\n```\n--verbose\n```\n"
},
"$:/language/Help/version": {
"title": "$:/language/Help/version",
"description": "显示 TiddlyWiki 的版本编号",
"text": "显示 TiddlyWiki 的版本编号。\n\n```\n--version\n```\n"
},
"$:/language/Import/Imported/Hint": {
"title": "$:/language/Import/Imported/Hint",
"text": "下列条目已被导入:"
},
"$:/language/Import/Listing/Cancel/Caption": {
"title": "$:/language/Import/Listing/Cancel/Caption",
"text": "取消"
},
"$:/language/Import/Listing/Hint": {
"title": "$:/language/Import/Listing/Hint",
"text": "这些条目已备妥导入:"
},
"$:/language/Import/Listing/Import/Caption": {
"title": "$:/language/Import/Listing/Import/Caption",
"text": "导入"
},
"$:/language/Import/Listing/Select/Caption": {
"title": "$:/language/Import/Listing/Select/Caption",
"text": "选择"
},
"$:/language/Import/Listing/Status/Caption": {
"title": "$:/language/Import/Listing/Status/Caption",
"text": "状态"
},
"$:/language/Import/Listing/Title/Caption": {
"title": "$:/language/Import/Listing/Title/Caption",
"text": "条目"
},
"$:/language/Import/Listing/Preview": {
"title": "$:/language/Import/Listing/Preview",
"text": "预览:"
},
"$:/language/Import/Listing/Preview/Text": {
"title": "$:/language/Import/Listing/Preview/Text",
"text": "文本"
},
"$:/language/Import/Listing/Preview/TextRaw": {
"title": "$:/language/Import/Listing/Preview/TextRaw",
"text": "文本 (原始)"
},
"$:/language/Import/Listing/Preview/Fields": {
"title": "$:/language/Import/Listing/Preview/Fields",
"text": "字段"
},
"$:/language/Import/Listing/Preview/Diff": {
"title": "$:/language/Import/Listing/Preview/Diff",
"text": "差异"
},
"$:/language/Import/Listing/Preview/DiffFields": {
"title": "$:/language/Import/Listing/Preview/DiffFields",
"text": "差异 (字段)"
},
"$:/language/Import/Upgrader/Plugins/Suppressed/Incompatible": {
"title": "$:/language/Import/Upgrader/Plugins/Suppressed/Incompatible",
"text": "封锁的不兼容或过时插件"
},
"$:/language/Import/Upgrader/Plugins/Suppressed/Version": {
"title": "$:/language/Import/Upgrader/Plugins/Suppressed/Version",
"text": "封锁的插件 (由于传入的 <<incoming>> 较现有版本 <<existing>> 旧)"
},
"$:/language/Import/Upgrader/Plugins/Upgraded": {
"title": "$:/language/Import/Upgrader/Plugins/Upgraded",
"text": "升级插件,从 <<incoming>> 到 <<upgraded>>"
},
"$:/language/Import/Upgrader/State/Suppressed": {
"title": "$:/language/Import/Upgrader/State/Suppressed",
"text": "封锁的暂存状态条目"
},
"$:/language/Import/Upgrader/System/Suppressed": {
"title": "$:/language/Import/Upgrader/System/Suppressed",
"text": "封锁的系统条目"
},
"$:/language/Import/Upgrader/System/Warning": {
"title": "$:/language/Import/Upgrader/System/Warning",
"text": "核心模块条目"
},
"$:/language/Import/Upgrader/System/Alert": {
"title": "$:/language/Import/Upgrader/System/Alert",
"text": "您即将导入一个条目会覆盖一个核心模块条目。不建议这样做,因为可能会使系统不稳定。"
},
"$:/language/Import/Upgrader/ThemeTweaks/Created": {
"title": "$:/language/Import/Upgrader/ThemeTweaks/Created",
"text": "从 <$text text=<<from>>/> 迁移布景主题"
},
"$:/language/AboveStory/ClassicPlugin/Warning": {
"title": "$:/language/AboveStory/ClassicPlugin/Warning",
"text": "您貌似要加载为 ~TiddlyWiki 经典版设计的插件。请注意,[[这些插件无法运行于 TiddlyWiki 5.x.x 版|https://tiddlywiki.com/#TiddlyWikiClassic]]。检测到 ~TiddlyWiki 经典版插件:"
},
"$:/language/BinaryWarning/Prompt": {
"title": "$:/language/BinaryWarning/Prompt",
"text": "此条目包含二进制数据"
},
"$:/language/ClassicWarning/Hint": {
"title": "$:/language/ClassicWarning/Hint",
"text": "此条目以经典版 TiddlyWiki 标记格式撰写,不完全兼容新版 TiddlyWiki 的格式,详细信息请参阅:https://tiddlywiki.com/static/Upgrading。"
},
"$:/language/ClassicWarning/Upgrade/Caption": {
"title": "$:/language/ClassicWarning/Upgrade/Caption",
"text": "升级"
},
"$:/language/CloseAll/Button": {
"title": "$:/language/CloseAll/Button",
"text": "全部关闭"
},
"$:/language/ColourPicker/Recent": {
"title": "$:/language/ColourPicker/Recent",
"text": "最近︰"
},
"$:/language/ConfirmCancelTiddler": {
"title": "$:/language/ConfirmCancelTiddler",
"text": "您确定要放弃对条目 \"<$text text=<<title>>/>\" 的更改?"
},
"$:/language/ConfirmDeleteTiddler": {
"title": "$:/language/ConfirmDeleteTiddler",
"text": "您确定要删除条目 \"<$text text=<<title>>/>\"?"
},
"$:/language/ConfirmOverwriteTiddler": {
"title": "$:/language/ConfirmOverwriteTiddler",
"text": "您确定要复写条目 \"<$text text=<<title>>/>\"?"
},
"$:/language/ConfirmEditShadowTiddler": {
"title": "$:/language/ConfirmEditShadowTiddler",
"text": "您即将要编辑默认条目,任何更改将会复盖默认的系统,使未来的升级不寻常。您确定要编辑 \"<$text text=<<title>>/>\"?"
},
"$:/language/Count": {
"title": "$:/language/Count",
"text": "计数"
},
"$:/language/DefaultNewTiddlerTitle": {
"title": "$:/language/DefaultNewTiddlerTitle",
"text": "新条目"
},
"$:/language/Diffs/CountMessage": {
"title": "$:/language/Diffs/CountMessage",
"text": "<<diff-count>> 个差异"
},
"$:/language/DropMessage": {
"title": "$:/language/DropMessage",
"text": "拖放到此处 (或按 ESC 键取消)"
},
"$:/language/Encryption/Cancel": {
"title": "$:/language/Encryption/Cancel",
"text": "取消"
},
"$:/language/Encryption/ConfirmClearPassword": {
"title": "$:/language/Encryption/ConfirmClearPassword",
"text": "您要清除密码吗?当保存此维基时,这将删除已套用的加密"
},
"$:/language/Encryption/Username": {
"title": "$:/language/Encryption/Username",
"text": "用户名称"
},
"$:/language/Encryption/Password": {
"title": "$:/language/Encryption/Password",
"text": "密码"
},
"$:/language/Encryption/PromptSetPassword": {
"title": "$:/language/Encryption/PromptSetPassword",
"text": "为此 TiddlyWiki 设置一个新密码"
},
"$:/language/Encryption/RepeatPassword": {
"title": "$:/language/Encryption/RepeatPassword",
"text": "重复输入密码"
},
"$:/language/Encryption/PasswordNoMatch": {
"title": "$:/language/Encryption/PasswordNoMatch",
"text": "密码不匹配"
},
"$:/language/Encryption/SetPassword": {
"title": "$:/language/Encryption/SetPassword",
"text": "设定密码"
},
"$:/language/Error/Caption": {
"title": "$:/language/Error/Caption",
"text": "错误"
},
"$:/language/Error/EditConflict": {
"title": "$:/language/Error/EditConflict",
"text": "服务器上的文件已更改"
},
"$:/language/Error/Filter": {
"title": "$:/language/Error/Filter",
"text": "筛选器错误"
},
"$:/language/Error/FilterSyntax": {
"title": "$:/language/Error/FilterSyntax",
"text": "筛选器运算式中的语法错误"
},
"$:/language/Error/IsFilterOperator": {
"title": "$:/language/Error/IsFilterOperator",
"text": "筛选器错误︰'is' 筛选器运算符的未知操作数"
},
"$:/language/Error/LoadingPluginLibrary": {
"title": "$:/language/Error/LoadingPluginLibrary",
"text": "加载插件程式库时,发生错误"
},
"$:/language/Error/NetworkErrorAlert": {
"title": "$:/language/Error/NetworkErrorAlert",
"text": "`<h2>''网络错误''</h2>与服务器的连缐似乎已中断。这可能表示您的网络连缐有问题。请尝试恢复网路连缐才能继续。<br><br>''恢复连缐时,所有未保存的更改,将自动同步''。`"
},
"$:/language/Error/RecursiveTransclusion": {
"title": "$:/language/Error/RecursiveTransclusion",
"text": "于 transclude 小部件中的递回嵌入错误"
},
"$:/language/Error/RetrievingSkinny": {
"title": "$:/language/Error/RetrievingSkinny",
"text": "简要条目清单撷取错误"
},
"$:/language/Error/SavingToTWEdit": {
"title": "$:/language/Error/SavingToTWEdit",
"text": "保存到 TWEdit 时,发生错误"
},
"$:/language/Error/WhileSaving": {
"title": "$:/language/Error/WhileSaving",
"text": "保存时,发生错误"
},
"$:/language/Error/XMLHttpRequest": {
"title": "$:/language/Error/XMLHttpRequest",
"text": "XMLHttpRequest 错误代码"
},
"$:/language/InternalJavaScriptError/Title": {
"title": "$:/language/InternalJavaScriptError/Title",
"text": "内部的 JavaScript 错误"
},
"$:/language/InternalJavaScriptError/Hint": {
"title": "$:/language/InternalJavaScriptError/Hint",
"text": "喔,真是令人尴尬。建议刷新您的浏览器,重新启动 TiddlyWiki"
},
"$:/language/InvalidFieldName": {
"title": "$:/language/InvalidFieldName",
"text": "栏位名称 \"<$text text=<<fieldName>>/>\" 包含无效字符,栏位名称只能包含小写字母、数字、底线 (`_`)、 连字号 (`-`) 和小数点 (`.`)"
},
"$:/language/LazyLoadingWarning": {
"title": "$:/language/LazyLoadingWarning",
"text": "<p>正在从 ''<$text text={{!!_canonical_uri}}/>'' 加载外部内容 ...</p><p>如果此信息未消失,可能是条目内容类型与外部内容的类型不匹配,或是您可能正在使用的浏览器,不支援单文件式维基的外部内容。请参阅 https://tiddlywiki.com/#ExternalText</p>"
},
"$:/language/LoginToTiddlySpace": {
"title": "$:/language/LoginToTiddlySpace",
"text": "登录 TiddlySpace"
},
"$:/language/Manager/Controls/FilterByTag/None": {
"title": "$:/language/Manager/Controls/FilterByTag/None",
"text": "(无)"
},
"$:/language/Manager/Controls/FilterByTag/Prompt": {
"title": "$:/language/Manager/Controls/FilterByTag/Prompt",
"text": "依标签筛选︰"
},
"$:/language/Manager/Controls/Order/Prompt": {
"title": "$:/language/Manager/Controls/Order/Prompt",
"text": "反向顺序"
},
"$:/language/Manager/Controls/Search/Placeholder": {
"title": "$:/language/Manager/Controls/Search/Placeholder",
"text": "搜寻"
},
"$:/language/Manager/Controls/Search/Prompt": {
"title": "$:/language/Manager/Controls/Search/Prompt",
"text": "搜寻︰"
},
"$:/language/Manager/Controls/Show/Option/Tags": {
"title": "$:/language/Manager/Controls/Show/Option/Tags",
"text": "标签"
},
"$:/language/Manager/Controls/Show/Option/Tiddlers": {
"title": "$:/language/Manager/Controls/Show/Option/Tiddlers",
"text": "条目"
},
"$:/language/Manager/Controls/Show/Prompt": {
"title": "$:/language/Manager/Controls/Show/Prompt",
"text": "显示︰"
},
"$:/language/Manager/Controls/Sort/Prompt": {
"title": "$:/language/Manager/Controls/Sort/Prompt",
"text": "排序︰"
},
"$:/language/Manager/Item/Colour": {
"title": "$:/language/Manager/Item/Colour",
"text": "颜色"
},
"$:/language/Manager/Item/Fields": {
"title": "$:/language/Manager/Item/Fields",
"text": "栏位"
},
"$:/language/Manager/Item/Icon/None": {
"title": "$:/language/Manager/Item/Icon/None",
"text": "(无)"
},
"$:/language/Manager/Item/Icon": {
"title": "$:/language/Manager/Item/Icon",
"text": "图标"
},
"$:/language/Manager/Item/RawText": {
"title": "$:/language/Manager/Item/RawText",
"text": "原始文字"
},
"$:/language/Manager/Item/Tags": {
"title": "$:/language/Manager/Item/Tags",
"text": "标签"
},
"$:/language/Manager/Item/Tools": {
"title": "$:/language/Manager/Item/Tools",
"text": "工具"
},
"$:/language/Manager/Item/WikifiedText": {
"title": "$:/language/Manager/Item/WikifiedText",
"text": "Wikified 文字"
},
"$:/language/MissingTiddler/Hint": {
"title": "$:/language/MissingTiddler/Hint",
"text": "佚失条目 \"<$text text=<<currentTiddler>>/>\" - 点击 {{||$:/core/ui/Buttons/edit}} 可创建此条目"
},
"$:/language/No": {
"title": "$:/language/No",
"text": "否"
},
"$:/language/OfficialPluginLibrary": {
"title": "$:/language/OfficialPluginLibrary",
"text": "~TiddlyWiki 官方插件程式库"
},
"$:/language/OfficialPluginLibrary/Hint": {
"title": "$:/language/OfficialPluginLibrary/Hint",
"text": "此为在 tiddlywiki.com 的 ~TiddlyWiki 官方插件程式库。由核心团队维护的插件、主题和语言包。"
},
"$:/language/PluginReloadWarning": {
"title": "$:/language/PluginReloadWarning",
"text": "请保存 {{$:/core/ui/Buttons/save-wiki}} 并刷新页面 {{$:/core/ui/Buttons/refresh}} ,使 ~JavaScript 插件的更改生效"
},
"$:/language/RecentChanges/DateFormat": {
"title": "$:/language/RecentChanges/DateFormat",
"text": "YYYY年0MM月0DD日"
},
"$:/language/SystemTiddler/Tooltip": {
"title": "$:/language/SystemTiddler/Tooltip",
"text": "此为系统条目"
},
"$:/language/SystemTiddlers/Include/Prompt": {
"title": "$:/language/SystemTiddlers/Include/Prompt",
"text": "包括系统条目"
},
"$:/language/TagManager/Colour/Heading": {
"title": "$:/language/TagManager/Colour/Heading",
"text": "颜色"
},
"$:/language/TagManager/Count/Heading": {
"title": "$:/language/TagManager/Count/Heading",
"text": "计数"
},
"$:/language/TagManager/Icon/Heading": {
"title": "$:/language/TagManager/Icon/Heading",
"text": "图标"
},
"$:/language/TagManager/Icons/None": {
"title": "$:/language/TagManager/Icons/None",
"text": "无"
},
"$:/language/TagManager/Info/Heading": {
"title": "$:/language/TagManager/Info/Heading",
"text": "信息"
},
"$:/language/TagManager/Tag/Heading": {
"title": "$:/language/TagManager/Tag/Heading",
"text": "标签"
},
"$:/language/Tiddler/DateFormat": {
"title": "$:/language/Tiddler/DateFormat",
"text": "YYYY年0MM月0DD日 0hh:0mm"
},
"$:/language/UnsavedChangesWarning": {
"title": "$:/language/UnsavedChangesWarning",
"text": "在此 TiddlyWiki 您有尚未保存的变更"
},
"$:/language/Yes": {
"title": "$:/language/Yes",
"text": "是"
},
"$:/language/Modals/Download": {
"title": "$:/language/Modals/Download",
"type": "text/vnd.tiddlywiki",
"subtitle": "Download changes",
"footer": "<$button message=\"tm-close-tiddler\">关闭</$button>",
"help": "https://tiddlywiki.com/",
"text": "您的浏览器只支援手动保存。\n\n要保存更动的维基,右键点击下方的下载链结,选择\"下载文件\"或\"保存文件\",然后选择文件夹或文件名。\n\n//您可以藉由按一下 Ctrl 键(Windows)或 options/ alt 键(Mac OS X)中的链接,稍微加速操作。您不会被提示文件夹或文件名,您的浏览器可能无法辨认它的文件名 -- 在做其他任何事之前,您可能需要重新命名扩展名为 `.html` 的文件。//\n\n在智能型手机上,不允许下载文件,但您可以标记链结,然后从一台可以正常保存维基的台式机的维基同步你的书签。"
},
"$:/language/Modals/SaveInstructions": {
"title": "$:/language/Modals/SaveInstructions",
"type": "text/vnd.tiddlywiki",
"subtitle": "Save your work",
"footer": "<$button message=\"tm-close-tiddler\">关闭</$button>",
"help": "https://tiddlywiki.com/static/SavingChanges.html",
"text": "您对此 wiki 的变更需被保存为 ~TiddlyWiki HTML 文件。\n\n!!! 桌面版浏览器\n\n# 从''文件''菜单点选 ''另存为''\n# 选定文件名及保存位置\n#* 某些浏览器依然需要明确指定文件格式为 ''Webpage, HTML only'' 或类似的。\n# 关闭此页签\n\n!!! 智能手机版浏览器\n\n# 为此页建立书签\n#* 若您已设置 iCloud 或 Google 同步,该书签将自动与之前开启及保存于您电脑的书签同步。\n# 关闭此页签\n\n//若您再次于 Mobile Safari 开启该书签,将会再看到此信息。若要继续使用该文件,只需点击下列 ''关闭'' 按钮//\n"
},
"$:/config/NewJournal/Title": {
"title": "$:/config/NewJournal/Title",
"text": "YYYY年0MM月0DD日"
},
"$:/config/NewJournal/Text": {
"title": "$:/config/NewJournal/Text",
"text": ""
},
"$:/config/NewJournal/Tags": {
"title": "$:/config/NewJournal/Tags",
"tags": "日志"
},
"$:/language/Notifications/Save/Done": {
"title": "$:/language/Notifications/Save/Done",
"text": "已保存 wiki"
},
"$:/language/Notifications/Save/Starting": {
"title": "$:/language/Notifications/Save/Starting",
"text": "开始保存 wiki"
},
"$:/language/Notifications/CopiedToClipboard/Succeeded": {
"title": "$:/language/Notifications/CopiedToClipboard/Succeeded",
"text": "已复制到剪贴板!"
},
"$:/language/Notifications/CopiedToClipboard/Failed": {
"title": "$:/language/Notifications/CopiedToClipboard/Failed",
"text": "无法复制到剪贴板!"
},
"$:/language/Search/DefaultResults/Caption": {
"title": "$:/language/Search/DefaultResults/Caption",
"text": "列表"
},
"$:/language/Search/Filter/Caption": {
"title": "$:/language/Search/Filter/Caption",
"text": "筛选"
},
"$:/language/Search/Filter/Hint": {
"title": "$:/language/Search/Filter/Hint",
"text": "以[[筛选表达式|https://tiddlywiki.com/static/Filters.html]]查找"
},
"$:/language/Search/Filter/Matches": {
"title": "$:/language/Search/Filter/Matches",
"text": "//<small><<resultCount>> 个条目符合条件</small>//"
},
"$:/language/Search/Matches": {
"title": "$:/language/Search/Matches",
"text": "//<small><<resultCount>> 个条目符合条件</small>//"
},
"$:/language/Search/Matches/All": {
"title": "$:/language/Search/Matches/All",
"text": "所有匹配:"
},
"$:/language/Search/Matches/Title": {
"title": "$:/language/Search/Matches/Title",
"text": "条目名称匹配:"
},
"$:/language/Search/Search": {
"title": "$:/language/Search/Search",
"text": "查找"
},
"$:/language/Search/Search/TooShort": {
"title": "$:/language/Search/Search/TooShort",
"text": "查找文本太短"
},
"$:/language/Search/Shadows/Caption": {
"title": "$:/language/Search/Shadows/Caption",
"text": "默认"
},
"$:/language/Search/Shadows/Hint": {
"title": "$:/language/Search/Shadows/Hint",
"text": "查找默认条目"
},
"$:/language/Search/Shadows/Matches": {
"title": "$:/language/Search/Shadows/Matches",
"text": "//<small><<resultCount>> 个条目符合条件</small>//"
},
"$:/language/Search/Standard/Caption": {
"title": "$:/language/Search/Standard/Caption",
"text": "标准"
},
"$:/language/Search/Standard/Hint": {
"title": "$:/language/Search/Standard/Hint",
"text": "查找一般条目"
},
"$:/language/Search/Standard/Matches": {
"title": "$:/language/Search/Standard/Matches",
"text": "//<small><<resultCount>> 个条目符合条件</small>//"
},
"$:/language/Search/System/Caption": {
"title": "$:/language/Search/System/Caption",
"text": "系统"
},
"$:/language/Search/System/Hint": {
"title": "$:/language/Search/System/Hint",
"text": "查找系统条目"
},
"$:/language/Search/System/Matches": {
"title": "$:/language/Search/System/Matches",
"text": "//<small><<resultCount>> 个条目符合条件</small>//"
},
"$:/language/SideBar/All/Caption": {
"title": "$:/language/SideBar/All/Caption",
"text": "全部"
},
"$:/language/SideBar/Contents/Caption": {
"title": "$:/language/SideBar/Contents/Caption",
"text": "目录"
},
"$:/language/SideBar/Drafts/Caption": {
"title": "$:/language/SideBar/Drafts/Caption",
"text": "草稿"
},
"$:/language/SideBar/Explorer/Caption": {
"title": "$:/language/SideBar/Explorer/Caption",
"text": "探索"
},
"$:/language/SideBar/Missing/Caption": {
"title": "$:/language/SideBar/Missing/Caption",
"text": "缺失"
},
"$:/language/SideBar/More/Caption": {
"title": "$:/language/SideBar/More/Caption",
"text": "更多"
},
"$:/language/SideBar/Open/Caption": {
"title": "$:/language/SideBar/Open/Caption",
"text": "开启"
},
"$:/language/SideBar/Orphans/Caption": {
"title": "$:/language/SideBar/Orphans/Caption",
"text": "孤立"
},
"$:/language/SideBar/Recent/Caption": {
"title": "$:/language/SideBar/Recent/Caption",
"text": "最近"
},
"$:/language/SideBar/Shadows/Caption": {
"title": "$:/language/SideBar/Shadows/Caption",
"text": "默认"
},
"$:/language/SideBar/System/Caption": {
"title": "$:/language/SideBar/System/Caption",
"text": "系统"
},
"$:/language/SideBar/Tags/Caption": {
"title": "$:/language/SideBar/Tags/Caption",
"text": "标签"
},
"$:/language/SideBar/Tags/Untagged/Caption": {
"title": "$:/language/SideBar/Tags/Untagged/Caption",
"text": "未设标签"
},
"$:/language/SideBar/Tools/Caption": {
"title": "$:/language/SideBar/Tools/Caption",
"text": "工具"
},
"$:/language/SideBar/Types/Caption": {
"title": "$:/language/SideBar/Types/Caption",
"text": "类型"
},
"$:/SiteSubtitle": {
"title": "$:/SiteSubtitle",
"text": "一个非线性的网页式笔记"
},
"$:/SiteTitle": {
"title": "$:/SiteTitle",
"text": "我的 ~TiddlyWiki"
},
"$:/language/Snippets/ListByTag": {
"title": "$:/language/Snippets/ListByTag",
"tags": "$:/tags/TextEditor/Snippet",
"caption": "依标签筛选的条目列表",
"text": "<<list-links \"[tag[task]sort[title]]\">>\n"
},
"$:/language/Snippets/MacroDefinition": {
"title": "$:/language/Snippets/MacroDefinition",
"tags": "$:/tags/TextEditor/Snippet",
"caption": "宏的定义",
"text": "\\define macroName(param1:\"默认值\",param2)\n宏的内容\n\\end\n"
},
"$:/language/Snippets/Table4x3": {
"title": "$:/language/Snippets/Table4x3",
"tags": "$:/tags/TextEditor/Snippet",
"caption": "4 x 3 的表格",
"text": "|! | !一 | !二 | !三 | !四 |\n|! 1| | | | |\n|! 2| | | | |\n|! 3 | | | | |\n"
},
"$:/language/Snippets/TableOfContents": {
"title": "$:/language/Snippets/TableOfContents",
"tags": "$:/tags/TextEditor/Snippet",
"caption": "目录",
"text": "<div class=\"tc-table-of-contents\">\n\n<<toc-selective-expandable 'TableOfContents'>>\n\n</div>"
},
"$:/language/ThemeTweaks/ThemeTweaks": {
"title": "$:/language/ThemeTweaks/ThemeTweaks",
"text": "主题调整"
},
"$:/language/ThemeTweaks/ThemeTweaks/Hint": {
"title": "$:/language/ThemeTweaks/ThemeTweaks/Hint",
"text": "您可以调整 ''Vanilla'' 布景主题的某些样貌。"
},
"$:/language/ThemeTweaks/Options": {
"title": "$:/language/ThemeTweaks/Options",
"text": "选项"
},
"$:/language/ThemeTweaks/Options/SidebarLayout": {
"title": "$:/language/ThemeTweaks/Options/SidebarLayout",
"text": "侧边栏布局"
},
"$:/language/ThemeTweaks/Options/SidebarLayout/Fixed-Fluid": {
"title": "$:/language/ThemeTweaks/Options/SidebarLayout/Fixed-Fluid",
"text": "固定故事,浮动侧边栏"
},
"$:/language/ThemeTweaks/Options/SidebarLayout/Fluid-Fixed": {
"title": "$:/language/ThemeTweaks/Options/SidebarLayout/Fluid-Fixed",
"text": "浮动故事,固定侧边栏"
},
"$:/language/ThemeTweaks/Options/StickyTitles": {
"title": "$:/language/ThemeTweaks/Options/StickyTitles",
"text": "置顶标题"
},
"$:/language/ThemeTweaks/Options/StickyTitles/Hint": {
"title": "$:/language/ThemeTweaks/Options/StickyTitles/Hint",
"text": "使条目名称\"黏着\"于浏览器窗口的顶端"
},
"$:/language/ThemeTweaks/Options/CodeWrapping": {
"title": "$:/language/ThemeTweaks/Options/CodeWrapping",
"text": "在代码区块中折行"
},
"$:/language/ThemeTweaks/Settings": {
"title": "$:/language/ThemeTweaks/Settings",
"text": "设置"
},
"$:/language/ThemeTweaks/Settings/FontFamily": {
"title": "$:/language/ThemeTweaks/Settings/FontFamily",
"text": "字型"
},
"$:/language/ThemeTweaks/Settings/CodeFontFamily": {
"title": "$:/language/ThemeTweaks/Settings/CodeFontFamily",
"text": "代码字型"
},
"$:/language/ThemeTweaks/Settings/EditorFontFamily": {
"title": "$:/language/ThemeTweaks/Settings/EditorFontFamily",
"text": "编辑器字型"
},
"$:/language/ThemeTweaks/Settings/BackgroundImage": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImage",
"text": "页面背景图像"
},
"$:/language/ThemeTweaks/Settings/BackgroundImageAttachment": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment",
"text": "页面背景图像附属"
},
"$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Scroll": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Scroll",
"text": "随条目卷动"
},
"$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Fixed": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Fixed",
"text": "固定于窗口"
},
"$:/language/ThemeTweaks/Settings/BackgroundImageSize": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize",
"text": "页面背景图像大小"
},
"$:/language/ThemeTweaks/Settings/BackgroundImageSize/Auto": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Auto",
"text": "自动"
},
"$:/language/ThemeTweaks/Settings/BackgroundImageSize/Cover": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Cover",
"text": "覆盖"
},
"$:/language/ThemeTweaks/Settings/BackgroundImageSize/Contain": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Contain",
"text": "包含"
},
"$:/language/ThemeTweaks/Metrics": {
"title": "$:/language/ThemeTweaks/Metrics",
"text": "大小"
},
"$:/language/ThemeTweaks/Metrics/FontSize": {
"title": "$:/language/ThemeTweaks/Metrics/FontSize",
"text": "字体大小"
},
"$:/language/ThemeTweaks/Metrics/LineHeight": {
"title": "$:/language/ThemeTweaks/Metrics/LineHeight",
"text": "行高"
},
"$:/language/ThemeTweaks/Metrics/BodyFontSize": {
"title": "$:/language/ThemeTweaks/Metrics/BodyFontSize",
"text": "条目本文的字体大小"
},
"$:/language/ThemeTweaks/Metrics/BodyLineHeight": {
"title": "$:/language/ThemeTweaks/Metrics/BodyLineHeight",
"text": "条目本文的行高"
},
"$:/language/ThemeTweaks/Metrics/StoryLeft": {
"title": "$:/language/ThemeTweaks/Metrics/StoryLeft",
"text": "故事左侧位置"
},
"$:/language/ThemeTweaks/Metrics/StoryLeft/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/StoryLeft/Hint",
"text": "故事河(条目区)的左边缘与页面左端的间距"
},
"$:/language/ThemeTweaks/Metrics/StoryTop": {
"title": "$:/language/ThemeTweaks/Metrics/StoryTop",
"text": "故事顶端位置"
},
"$:/language/ThemeTweaks/Metrics/StoryTop/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/StoryTop/Hint",
"text": "故事河(条目区)的上边缘与页面顶端的间距"
},
"$:/language/ThemeTweaks/Metrics/StoryRight": {
"title": "$:/language/ThemeTweaks/Metrics/StoryRight",
"text": "故事右侧位置"
},
"$:/language/ThemeTweaks/Metrics/StoryRight/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/StoryRight/Hint",
"text": "侧边栏的左边缘与页面左端的间距"
},
"$:/language/ThemeTweaks/Metrics/StoryWidth": {
"title": "$:/language/ThemeTweaks/Metrics/StoryWidth",
"text": "故事的宽度"
},
"$:/language/ThemeTweaks/Metrics/StoryWidth/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/StoryWidth/Hint",
"text": "故事河的整体宽度"
},
"$:/language/ThemeTweaks/Metrics/TiddlerWidth": {
"title": "$:/language/ThemeTweaks/Metrics/TiddlerWidth",
"text": "条目宽度"
},
"$:/language/ThemeTweaks/Metrics/TiddlerWidth/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/TiddlerWidth/Hint",
"text": "在故事河内"
},
"$:/language/ThemeTweaks/Metrics/SidebarBreakpoint": {
"title": "$:/language/ThemeTweaks/Metrics/SidebarBreakpoint",
"text": "侧边栏中断点"
},
"$:/language/ThemeTweaks/Metrics/SidebarBreakpoint/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/SidebarBreakpoint/Hint",
"text": "故事河和侧边栏会并排显示的最小页面宽度"
},
"$:/language/ThemeTweaks/Metrics/SidebarWidth": {
"title": "$:/language/ThemeTweaks/Metrics/SidebarWidth",
"text": "侧边栏宽度"
},
"$:/language/ThemeTweaks/Metrics/SidebarWidth/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/SidebarWidth/Hint",
"text": "在浮动-固定布局中,侧边栏的宽度"
},
"$:/language/TiddlerInfo/Advanced/Caption": {
"title": "$:/language/TiddlerInfo/Advanced/Caption",
"text": "高级"
},
"$:/language/TiddlerInfo/Advanced/PluginInfo/Empty/Hint": {
"title": "$:/language/TiddlerInfo/Advanced/PluginInfo/Empty/Hint",
"text": "无信息"
},
"$:/language/TiddlerInfo/Advanced/PluginInfo/Heading": {
"title": "$:/language/TiddlerInfo/Advanced/PluginInfo/Heading",
"text": "插件明细"
},
"$:/language/TiddlerInfo/Advanced/PluginInfo/Hint": {
"title": "$:/language/TiddlerInfo/Advanced/PluginInfo/Hint",
"text": "此插件包含以下预设条目:"
},
"$:/language/TiddlerInfo/Advanced/ShadowInfo/Heading": {
"title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/Heading",
"text": "默认条目状态"
},
"$:/language/TiddlerInfo/Advanced/ShadowInfo/NotShadow/Hint": {
"title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/NotShadow/Hint",
"text": "<$link to=<<infoTiddler>>><$text text=<<infoTiddler>>/></$link> 不是一个默认条目"
},
"$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Hint": {
"title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Hint",
"text": "<$link to=<<infoTiddler>>><$text text=<<infoTiddler>>/></$link> 是一个默认条目"
},
"$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Source": {
"title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Source",
"text": "此条目定义于插件 <$link to=<<pluginTiddler>>><$text text=<<pluginTiddler>>/></$link>"
},
"$:/language/TiddlerInfo/Advanced/ShadowInfo/OverriddenShadow/Hint": {
"title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/OverriddenShadow/Hint",
"text": "已被一般条目覆写"
},
"$:/language/TiddlerInfo/Fields/Caption": {
"title": "$:/language/TiddlerInfo/Fields/Caption",
"text": "栏位"
},
"$:/language/TiddlerInfo/List/Caption": {
"title": "$:/language/TiddlerInfo/List/Caption",
"text": "列表"
},
"$:/language/TiddlerInfo/List/Empty": {
"title": "$:/language/TiddlerInfo/List/Empty",
"text": "此条目无指定列表"
},
"$:/language/TiddlerInfo/Listed/Caption": {
"title": "$:/language/TiddlerInfo/Listed/Caption",
"text": "被列于"
},
"$:/language/TiddlerInfo/Listed/Empty": {
"title": "$:/language/TiddlerInfo/Listed/Empty",
"text": "此条目未出现于其他条目的列表中"
},
"$:/language/TiddlerInfo/References/Caption": {
"title": "$:/language/TiddlerInfo/References/Caption",
"text": "参照"
},
"$:/language/TiddlerInfo/References/Empty": {
"title": "$:/language/TiddlerInfo/References/Empty",
"text": "无条目链接至此"
},
"$:/language/TiddlerInfo/Tagging/Caption": {
"title": "$:/language/TiddlerInfo/Tagging/Caption",
"text": "子条目"
},
"$:/language/TiddlerInfo/Tagging/Empty": {
"title": "$:/language/TiddlerInfo/Tagging/Empty",
"text": "无任何条目以此条目之标题为标签"
},
"$:/language/TiddlerInfo/Tools/Caption": {
"title": "$:/language/TiddlerInfo/Tools/Caption",
"text": "工具"
},
"$:/language/Docs/Types/application/javascript": {
"title": "$:/language/Docs/Types/application/javascript",
"description": "JavaScript 源码",
"name": "application/javascript",
"group": "开发者"
},
"$:/language/Docs/Types/application/json": {
"title": "$:/language/Docs/Types/application/json",
"description": "JSON 数据",
"name": "application/json",
"group": "开发者"
},
"$:/language/Docs/Types/application/x-tiddler-dictionary": {
"title": "$:/language/Docs/Types/application/x-tiddler-dictionary",
"description": "数据字典",
"name": "application/x-tiddler-dictionary",
"group": "开发者"
},
"$:/language/Docs/Types/image/gif": {
"title": "$:/language/Docs/Types/image/gif",
"description": "GIF 图像",
"name": "image/gif",
"group": "图像"
},
"$:/language/Docs/Types/image/jpeg": {
"title": "$:/language/Docs/Types/image/jpeg",
"description": "JPEG 图像",
"name": "image/jpeg",
"group": "图像"
},
"$:/language/Docs/Types/image/png": {
"title": "$:/language/Docs/Types/image/png",
"description": "PNG 图像",
"name": "image/png",
"group": "图像"
},
"$:/language/Docs/Types/image/svg+xml": {
"title": "$:/language/Docs/Types/image/svg+xml",
"description": "结构式矢量图",
"name": "image/svg+xml",
"group": "图像"
},
"$:/language/Docs/Types/image/x-icon": {
"title": "$:/language/Docs/Types/image/x-icon",
"description": "图标",
"name": "image/x-icon",
"group": "图像"
},
"$:/language/Docs/Types/text/css": {
"title": "$:/language/Docs/Types/text/css",
"description": "静态样式",
"name": "text/css",
"group": "开发者"
},
"$:/language/Docs/Types/text/html": {
"title": "$:/language/Docs/Types/text/html",
"description": "HTML 标记",
"name": "text/html",
"group": "文本"
},
"$:/language/Docs/Types/text/plain": {
"title": "$:/language/Docs/Types/text/plain",
"description": "纯文本",
"name": "text/plain",
"group": "文本"
},
"$:/language/Docs/Types/text/vnd.tiddlywiki": {
"title": "$:/language/Docs/Types/text/vnd.tiddlywiki",
"description": "TiddlyWiki 5",
"name": "text/vnd.tiddlywiki",
"group": "文本"
},
"$:/language/Docs/Types/text/x-tiddlywiki": {
"title": "$:/language/Docs/Types/text/x-tiddlywiki",
"description": "TiddlyWiki 2",
"name": "text/x-tiddlywiki",
"group": "文本"
},
"$:/config/Search/MinLength": {
"title": "$:/config/Search/MinLength",
"text": "1"
},
"$:/languages/zh-Hans/icon": {
"title": "$:/languages/zh-Hans/icon",
"type": "image/svg+xml",
"text": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"1500\" height=\"1000\" viewBox=\"-5 -5 30 20\">\n<title>Flag of the People's Republic of China</title>\n<rect fill=\"#de2910\" x=\"-5\" y=\"-5\" width=\"30\" height=\"20\"/>\n<defs>\n<polygon id=\"s\" points=\"0,-513674 301930,415571 -488533,-158734 488533,-158734 -301930,415571\"\nfill=\"#ffde00\" transform=\"scale(0.0000019467600073)\"/>\n</defs>\n<use xlink:href=\"#s\" transform=\"scale(3)\"/>\n<use xlink:href=\"#s\" transform=\"translate(5,-3) rotate(-120.963756)\"/>\n<use xlink:href=\"#s\" transform=\"translate(7,-1) rotate(-98.130102)\"/>\n<use xlink:href=\"#s\" transform=\"translate(7,2) rotate(-74.054604)\"/>\n<use xlink:href=\"#s\" transform=\"translate(5,4) rotate(-51.3401917)\"/>\n</svg>\n"
}
}
}
{
"tiddlers": {
"$:/plugins/felixhayashi/hotzone/config.js": {
"title": "$:/plugins/felixhayashi/hotzone/config.js",
"text": "/*\\\n\ntitle: $:/plugins/felixhayashi/hotzone/config.js\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n(function(){\"use strict\";exports.config={classNames:{storyRiver:\"tc-story-river\",tiddlerFrame:\"tc-tiddler-frame\",tiddlerTitle:\"tc-title\"},references:{userConfig:\"$:/config/hotzone/focusOffset\",focussedTiddlerStore:\"$:/temp/focussedTiddler\"},checkbackTime:$tw.utils.getAnimationDuration()}})();",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/hotzone/hotzone.js": {
"title": "$:/plugins/felixhayashi/hotzone/hotzone.js",
"text": "/*\\\n\ntitle: $:/plugins/felixhayashi/hotzone/hotzone.js\ntype: application/javascript\nmodule-type: startup\n\n@preserve\n\n\\*/\n(function(){\"use strict\";exports.name=\"hotzone\";exports.platforms=[\"browser\"];exports.after=[\"story\"];exports.synchronous=true;exports.startup=function(){var t=require(\"$:/plugins/felixhayashi/hotzone/config.js\").config;var e=null;var i=document.getElementsByClassName(t.classNames.storyRiver)[0];var r=$tw.wiki.getTiddlerData(t.references.userConfig,{});var s=isNaN(parseInt(r.focusOffset))?150:parseInt(r.focusOffset);var a=function(e,i,r){if(!(e instanceof Element))return;if(!$tw.utils.hasClass(e,t.classNames.tiddlerFrame))return;var s=e.getElementsByClassName(t.classNames.tiddlerTitle)[0];if(s){var a=s.innerText||s.textContent;return a.trim()}};var n=function(e,i){$tw.wiki.addTiddler(new $tw.Tiddler({title:t.references.focussedTiddlerStore,text:e},$tw.wiki.getModificationFields()));if(i){var r=document.getElementsByClassName(\"hzone-focus\")[0];if(r){$tw.utils.removeClass(r,\"hzone-focus\")}$tw.utils.addClass(i,\"hzone-focus\")}};var l=function(){var r=$tw.wiki.getTiddler(\"$:/StoryList\");if(r&&r.fields.list.length){var l=null;var o=Number.MAX_VALUE;var f=i.children;var u=t.classNames.tiddlerFrame;for(var d=f.length;d--;){if($tw.utils.hasClass(f[d],u)){var c=f[d].getBoundingClientRect();var v=Math.min(Math.abs(s-c.top),Math.abs(s-c.bottom));if(v<o){l=f[d];o=v}}}var w=a(l);if(w!==e&&$tw.wiki.getTiddler(w)){e=w;n(e,l);return}}else if(e){e=\"\";n(e)}};var o=function(t){var e;var i=false;return function(r,s){var a=this;if(i&&!s){}else{i=s;if(e!=null){clearTimeout(e)}e=setTimeout((function(){e=null;i=false;t.apply(a)}),r)}}};var f=o(l);var u=function(t){if(t[\"$:/HistoryList\"]){if(!$tw.wiki.tiddlerExists(\"$:/HistoryList\"))return;var e=$tw.wiki.getTiddler(\"$:/HistoryList\").fields[\"current-tiddler\"];var i=$tw.wiki.getTiddlerList(\"$:/StoryList\");var r=i.indexOf(e)>=0;if(!r)return;f($tw.utils.getAnimationDuration()+10,true)}else if(t[\"$:/StoryList\"]){f($tw.utils.getAnimationDuration()+10,true)}};var d=function(t){f(300,false)};$tw.wiki.addEventListener(\"change\",u);window.addEventListener(\"scroll\",d,false);d()}})();",
"type": "application/javascript",
"module-type": "startup"
},
"$:/plugins/felixhayashi/hotzone/Configuration": {
"title": "$:/plugins/felixhayashi/hotzone/Configuration",
"text": "Please see the [[GitHub page|https://github.com/felixhayashi/TW5-HotZone]] for more information on the options.\n\nSave and reload the wiki to activate changes.\n\n<table>\n <tr>\n <th align=\"left\">Focus offset:</th>\n <td><$edit-text tiddler=\"$:/config/hotzone/focusOffset\" tag=\"input\" default=\"71px\" /></td>\n </tr>\n</table>"
},
"$:/temp/focussedTiddler": {
"title": "$:/temp/focussedTiddler"
},
"$:/plugins/felixhayashi/hotzone/License": {
"title": "$:/plugins/felixhayashi/hotzone/License",
"text": "This code is released under the BSD license. For the exact terms visit:\n\nhttps://github.com/felixhayashi/TW5-HotZone/blob/master/LICENSE"
},
"$:/plugins/felixhayashi/hotzone/Readme": {
"title": "$:/plugins/felixhayashi/hotzone/Readme",
"text": "Please visit the [[GitHub page|https://github.com/felixhayashi/TW5-HotZone]] for more information."
}
}
}
{
"tiddlers": {
"$:/plugins/felixhayashi/tiddlymap/layout": {
"text": "\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline \n\nbody .tc-page-container-wrapper.tc-modal-displayed{-webkit-filter:inherit;-moz-filter:inherit;filter:inherit}body .tc-modal-wrapper{z-index:1010}body .tc-modal-wrapper .tc-modal-header svg{vertical-align:sub}body .tc-modal-wrapper .tc-modal-header h3{line-height:10px}body .tc-modal-wrapper .tc-modal-body{min-height:250px;max-height:70vh;padding-top:0px;padding-bottom:0px;overflow:auto}body .tc-modal-wrapper .tc-modal-footer{padding:8px}body .tc-modal-wrapper .tc-modal-footer .tmap-dialog-button{font-weight:bold}body .tc-modal-wrapper .tc-modal-footer .tmap-hidden-close-button{display:none}table.tmap-table tr:nth-child(odd),.tc-modal-body table.tmap-config-table tr:nth-child(odd){background-color:#F0F0F0}table.tmap-table tr:nth-child(even),.tc-modal-body table.tmap-config-table tr:nth-child(even){background-color:#FFFFFF}.tmap-save-canvas-preview{text-align:center;background:lightgray}.tmap-save-canvas-preview img{background-color:white;max-width:100%;max-height:100px;border:1px solid red}.tmap-list-separator{display:block;background-color:#efefef;margin:10px 0 5px 0;cursor:default;border-bottom:1px dotted gray;font-weight:bold;font-size:0.8em}.tmap-unicode-icon{width:1em;display:inline-block;text-align:center;color:black}html .tmap-link{color:#5778D8}html .tmap-link:hover{color:white;background:#5778D8}html .tmap-small-list,html .tmap-smaller-list,html .tmap-very-small-list{overflow:auto;min-height:2em;max-height:9em;display:block}html .tmap-smaller-list{max-height:7em}html .tmap-very-small-list{max-height:5empx}html .tc-tiddler-controls button.tmap-active-button svg{fill:#888888}html #tmap-node-filter-dialog #tmap-filter-tips{font-size:0.8em}html #tmap-node-filter-dialog textarea{height:100px;max-height:300px;overflow:auto;width:100%;font-size:11px;font-family:\"Courier New\", Courier, monospace}@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}){.tc-sidebar-scrollable .tmap-desktop-editor .tmap-widget:not(.tmap-fullscreen){display:none}}@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}){.tc-sidebar-scrollable .tmap-mobile-editor{display:none}.tc-modal-wrapper{z-index:1010}.tc-modal-wrapper .tc-modal{boder:1px solid #999999;left:calc(50% - 400px);width:802px}.tc-modal-wrapper .tc-modal-body{left:calc(50% - 400px);width:800px}}@-o-keyframes fadein-keyframes{0%{opacity:0}100%{opacity:1}}@-moz-keyframes fadein-keyframes{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes fadein-keyframes{0%{opacity:0}100%{opacity:1}}@keyframes flash fadein-keyframes{0%{opacity:0}100%{opacity:1}}@-o-keyframes fadeout-keyframes{0%{opacity:1}100%{opacity:0}}@-moz-keyframes fadeout-keyframes{0%{opacity:1}100%{opacity:0}}@-webkit-keyframes fadeout-keyframes{0%{opacity:1}100%{opacity:0}}@keyframes flash fadeout-keyframes{0%{opacity:1}100%{opacity:0}}.tmap-config-widget{background:#F0F0F0;padding:5px;margin:5px 0;box-sizing:border-box;display:block}.tmap-config-widget .vis-network{display:none}.tmap-config-widget .vis-configuration-wrapper{width:100%}.tmap-config-widget .vis-configuration-wrapper .vis-config-rangeinput{height:inherit;margin-left:4px}.tmap-config-widget .vis-configuration-wrapper .vis-configuration.vis-config-item{width:100%;height:inherit;background:none;padding-left:0px;left:0}.tmap-config-widget .vis-configuration-wrapper .vis-configuration.vis-config-item.tmap-vis-config-item-active .vis-config-label::after{content:\"(inherited)\";position:absolute;display:inline-block;margin-left:10px;-o-animation:fadein-keyframes 1s;-moz-animation:fadein-keyframes 1s;-webkit-animation:fadein-keyframes 1s;animation:fadein-keyframes 1s;content:\"✔\";color:green;font-weight:bold;font-size:15px}.tmap-config-widget .vis-configuration-wrapper .vis-configuration.vis-config-item button.tmap-config-item-reset{vertical-align:top;margin-left:5px}.tmap-config-widget .vis-configuration-wrapper .vis-configuration.vis-config-item .vis-config-range{width:150px}.tmap-config-widget .vis-configuration-wrapper .vis-configuration.vis-config-item .vis-config-range::-moz-range-track{width:150px !important}.tmap-config-widget .vis-configuration-wrapper .vis-configuration.vis-config-item .vis-config-label{width:150px}.tmap-config-widget::after{clear:both;content:\"\";display:block}.tmap-flash-message{border:1px solid lightgray;padding:5px;margin:6px 0;display:block;color:#333333}.tmap-flash-message.tmap-info,.tmap-flash-message.tmap-plain,.tmap-flash-message.tmap-neutral{background:#F0F0F0}.tmap-flash-message.tmap-info::before,.tmap-flash-message.tmap-plain::before,.tmap-flash-message.tmap-neutral::before{content:\"i\";display:inline-block;border-radius:50%;width:0.8em;border:2px solid;font-family:serif;text-align:center;height:0.8em;font-weight:bold;line-height:0.8em;vertical-align:text-top;margin-right:2px}.tmap-flash-message.tmap-valid,.tmap-flash-message.tmap-success{background:#D1EED4}.tmap-flash-message.tmap-valid::before,.tmap-flash-message.tmap-success::before{content:\"i\";display:inline-block;border-radius:50%;width:0.8em;border:2px solid;font-family:serif;text-align:center;height:0.8em;font-weight:bold;line-height:0.8em;vertical-align:text-top;margin-right:2px}.tmap-flash-message.tmap-warning{background:#FFF6D1}.tmap-flash-message.tmap-warning::before{content:\"\";display:inline-block;background:url(<<tmap \"datauri\" \"$:/core/images/warning\" \"\">>);display:inline-block;width:1em;height:1em;background-size:100% 100%;vertical-align:text-top;margin-right:2px}.tmap-flash-message.tmap-malformed,.tmap-flash-message.tmap-invalid,.tmap-flash-message.tmap-danger{background:#EED5D1}.tmap-flash-message.tmap-malformed::before,.tmap-flash-message.tmap-invalid::before,.tmap-flash-message.tmap-danger::before{content:\"\";display:inline-block;background:url(<<tmap \"datauri\" \"$:/core/images/warning\" \"\">>);display:inline-block;width:1em;height:1em;background-size:100% 100%;vertical-align:text-top;margin-right:2px}.tmap-widget{background:#FFFFFF;width:auto;position:relative;border:1px dotted lightgray;padding:2px;color:#666;display:block}.tmap-widget .tmap-download-canvas{display:none}.tmap-widget.tmap-click-to-use:not(.tmap-fullscreen) .vis-network:not(.vis-active){cursor:pointer}.tmap-widget.tmap-click-to-use:not(.tmap-fullscreen) .vis-network:not(.vis-active) .vis-navigation{display:none}.tmap-widget.tmap-click-to-use:not(.tmap-fullscreen) .vis-network:not(.vis-active):hover:before{color:gray;background:white;content:\"Click to use\";font-size:14px;font-weight:bold;right:calc(50% - 65px - 5px);position:absolute;text-align:center;top:calc(50% - 14px - 5px);width:130px;z-index:2000;padding:5px;pointer-events:none;background-color:rgba(255,255,255,0.3)}.tmap-widget .tmap-loading-bar{display:none;position:absolute;text-align:center;font-size:2em;padding:10px;top:50%;background:rgba(245,245,245,0.5);z-index:1;width:250px;margin:auto;left:0px;right:0px}.tmap-widget .tmap-vis-graph{height:calc(100% - 35px)}.tmap-widget.tmap-no-buttons .vis-navigation{display:none}.tmap-widget.tmap-advanced-editor .tmap-topbar{background:#d6d9d8}.tmap-widget.tmap-advanced-editor .tmap-topbar .tmap-active-button{color:#488DCD}.tmap-widget.tmap-advanced-editor .tmap-topbar .tmap-active-button svg{fill:#488DCD}.tmap-widget.tmap-advanced-editor .tmap-topbar .tmap-unicode-button{font-size:1.5em;vertical-align:bottom;height:28px;fill:#555555}.tmap-widget.tmap-advanced-editor .tmap-topbar .tmap-unicode-button svg{vertical-align:baseline}.tmap-widget .tmap-menu-bar{width:100%}.tmap-widget .tmap-topbar{background:#F5F5F5;border-bottom:1px solid lightgray;padding:3px 5px;height:35px;position:relative}.tmap-widget .tmap-topbar .tmap-view-label{width:100%;text-align:center;font-weight:bold;padding-top:3px}.tmap-widget .tmap-topbar .tmap-focus-button{position:absolute;right:10px;top:6px}.tmap-widget .tmap-topbar .tmap-focus-button input{width:140px}.tmap-widget .tmap-topbar .tmap-search-dropdown{position:relative}.tmap-widget .tmap-topbar .tmap-search-dropdown .tc-drop-down{position:absolute;z-index:999;right:0px}.tmap-widget .tmap-topbar [hidden]{display:none}.tmap-widget .tmap-topbar select{width:30%;max-width:200px;word-wrap:initial;padding:0px;height:28px}.tmap-widget .tmap-topbar button{line-height:inherit;color:#666}.tmap-widget .tmap-topbar>*{display:inline-block}.tmap-widget .tmap-topbar .tmap-separator:after{color:#bdbdbd;margin:3px;content:\" | \"}.tmap-widget .tmap-topbar .tc-edit-add-tag .tc-add-tag-name input{width:70%}.tmap-widget .tmap-topbar .tc-sidebar-header{text-shadow:none}.tmap-widget .tmap-topbar .tc-edit-tags{border:none;padding:inherit;box-shadow:none}.tmap-widget.tmap-static-mode .tmap-topbar{height:initial}.tmap-widget.tmap-static-mode .tmap-vis-graph{text-align:center;cursor:not-allowed}.tmap-widget.tmap-static-mode .tmap-vis-graph:not(.tmap-graph-placeholder):hover::before{box-shadow:10px 10px 5px lightgray;color:gray;background:white;content:\"Static\";font-size:18px;font-weight:bold;left:50%;margin-left:-100px;position:absolute;text-align:center;top:50px;width:200px;z-index:2000;padding:5px;pointer-events:none}.tmap-widget.tmap-static-mode .tmap-vis-graph.tmap-graph-placeholder::before{content:\"No Preview\";display:block;text-align:center;padding:20px}.tmap-widget .tc-drop-down{min-width:170px;padding:5px;margin:5px 0}.tmap-widget .tc-drop-down button,.tmap-widget .tc-drop-down a{padding:0 2px;text-decoration:none}.tmap-widget .tc-drop-down button:hover,.tmap-widget .tc-drop-down a:hover{color:#ffffff}.tmap-widget .tc-drop-down button svg,.tmap-widget .tc-drop-down a svg{vertical-align:middle}.tmap-widget .tc-block-dropdown{width:370px;min-width:370px;padding:5px;margin:15px 0 0 -370px}.tmap-widget .tc-block-dropdown a{display:inline;padding:0px}.tmap-widget.tmap-plain-design{border:none;padding:0px}.tmap-widget.tmap-plain-design .tmap-topbar{display:none}.tc-sidebar-scrollable .tmap-widget{position:absolute;min-height:350px}.tmap-widget div.vis-network .vis-edit-mode{height:26px}.tmap-widget div.vis-network .vis-manipulation{height:34px;border-top:1px solid #d6d9d8;background:rgba(245,245,245,0.7)}.tmap-widget div.vis-network .vis-navigation .vis-button.tmap-button-enabled{right:15px}.tmap-widget div.vis-network .vis-navigation .vis-button.tmap-button-enabled.tmap-fullscreen-button{bottom:90px;background-image:url(<<tmap \"datauri\" \"$:/plugins/felixhayashi/tiddlymap/media/fullscreen.png\" \"\">>)}.tmap-widget div.vis-network .vis-navigation .vis-button.tmap-button-enabled.tmap-halfscreen-button{bottom:130px;background-image:url(<<tmap \"datauri\" \"$:/plugins/felixhayashi/tiddlymap/media/halfscreen.png\" \"\">>)}.tmap-widget div.vis-network .vis-navigation .vis-button:hover{box-shadow:0 0 3px 3px rgba(75,75,75,0.3)}.tmap-widget div.vis-network .vis-navigation .vis-button:hover:before{background:beige;display:block;color:black;padding:3px;position:relative;border:1px solid lightgray;width:80px;left:-100px;top:-50px;z-index:1000;text-align:center}.tmap-widget div.vis-network .vis-navigation .vis-button:hover.vis-up:before{left:30px;content:\"Scroll up\"}.tmap-widget div.vis-network .vis-navigation .vis-button:hover.vis-down:before{left:30px;content:\"Scroll down\"}.tmap-widget div.vis-network .vis-navigation .vis-button:hover.vis-right:before{left:30px;content:\"Scroll right\"}.tmap-widget div.vis-network .vis-navigation .vis-button:hover.vis-left:before{left:30px;content:\"Scroll left\"}.tmap-widget div.vis-network .vis-navigation .vis-button:hover.vis-zoomOut:before{content:\"Zoom out\"}.tmap-widget div.vis-network .vis-navigation .vis-button:hover.vis-zoomIn:before{content:\"Zoom in\"}.tmap-widget div.vis-network .vis-navigation .vis-button:hover.vis-zoomExtends:before{content:\"Fit whole graph\"}.tmap-widget div.vis-network .vis-navigation .vis-button:hover.tmap-fullscreen-button:before{content:\"Toggle Fullscreen\"}.tmap-widget div.vis-network .vis-navigation .vis-button:hover.tmap-halfscreen-button:before{content:\"Toggle Halfscreen\"}.tc-dropzone>.tc-story-river .tmap-widget .vis-navigation .tmap-halfscreen-button{display:none}.tc-dropzone>.tc-story-river .tmap-widget:not(.tmap-fullscreen) .vis-navigation .vis-button{display:none}.tc-dropzone>.tc-story-river .tmap-widget:hover .vis-navigation .vis-button.tmap-fullscreen-button{display:block}.tc-dropzone>.tc-story-river .tmap-widget:hover .vis-navigation .vis-button.vis-zoomExtends{display:block}body.tmap-has-fullscreen-widget{overflow:hidden}body.tmap-has-fullscreen-widget .tmap-widget.tmap-fullscreen{background:white !important;height:100% !important;width:100% !important;position:fixed !important;top:0 !important;right:0 !important;bottom:0 !important;left:0 !important;z-index:999 !important;border:none !important;margin:0 !important}body.tmap-has-fullscreen-widget .tc-dropzone>*.tmap-has-fullscreen-widget{background:white !important;height:100% !important;width:100% !important;position:fixed !important;top:0 !important;right:0 !important;bottom:0 !important;left:0 !important;z-index:999 !important;border:none !important;margin:0 !important}body.tmap-has-fullscreen-widget .tc-dropzone>*:not(.tmap-has-fullscreen-widget){display:none}body.tmap-has-halfscreen-widget .tmap-widget.tmap-halfscreen{background:white !important;height:100% !important;width:100% !important;position:fixed !important;top:0 !important;right:0 !important;bottom:0 !important;left:0 !important;z-index:999 !important;border:none !important;margin:0 !important;position:absolute !important;border-left:1px solid lightgray !important}.tc-modal-footer .tmap-hidden-close-button{display:none}.tmap-modal-content{position:relative;padding:1em 0;padding-top:0}.tmap-modal-content table tr td{vertical-align:top}.tmap-modal-content :not(pre)>code{padding:1px;font-size:0.9em;position:relative;top:-1px}.tmap-modal-content :not(pre)>code{color:#666}.tmap-modal-content .tc-tab-set .tc-tab-content{margin-top:0.5em}.tmap-modal-content .tc-image-button{font-size:14px}.tmap-modal-content fieldset{margin:0px}.tmap-modal-content fieldset legend{font-weight:bold}.tc-modal-body .tmap-modal-editor>p{margin:0px}.tc-modal-body .tmap-modal-editor .tmap-template-select select{width:50%}.tc-modal-body .tmap-modal-editor .tc-tiddler-frame{margin:auto;width:auto}.tc-modal-body .tmap-modal-editor .tc-tiddler-frame .tc-tiddler-controls{display:none}.tc-modal-body .tmap-modal-editor .tc-tiddler-frame .tc-tiddler-title{display:none}.tc-modal-body table{margin:6px 0;border:none;width:100%}.tc-modal-body table td,.tc-modal-body table th{border:1px solid lightgray}.tc-modal-body table.tmap-key-value-table th{width:30%;background-color:#F0F0F0}.tc-modal-body table.tmap-config-table.tmap-large-input tr td:last-child{width:20%}.tc-modal-body table.tmap-config-table.tmap-small-input tr td:last-child{width:60%}.tc-modal-body table.tmap-config-table tr td{border:none;vertical-align:top;padding:5px}.tc-modal-body table.tmap-config-table tr td:first-child{width:15%}.tc-modal-body table.tmap-config-table tr td:last-child{width:40%}.tc-modal-body table.tmap-config-table tr td input:not([type=radio]),.tc-modal-body table.tmap-config-table tr td textarea,.tc-modal-body table.tmap-config-table tr td select{width:100%;word-wrap:normal}.tc-modal-body table.tmap-config-table tr td textarea{height:100%}.tc-modal-body table.tmap-config-table tr td .tmap-no-stretch input,.tc-modal-body table.tmap-config-table tr td .tmap-no-stretch textarea,.tc-modal-body table.tmap-config-table tr td .tmap-no-stretch select{width:auto}.tc-modal-body table.tmap-config-table tr td div.tmap-button-wrapper{text-align:center}.tc-modal-body table.tmap-config-table tr td .tmap-note{margin-top:0.5em}.tc-modal-body table.tmap-config-table tr td .tmap-description{font-style:italic}#tmap-element-type-manager>div:first-child{height:50vh;float:left;width:21%;background:linear-gradient(90deg, #f5f5f5 0%, #fff 50%)}#tmap-element-type-manager>div:first-child .tmap-searchbar{padding:1em 0 0 0}#tmap-element-type-manager>div:first-child .tmap-searchbar input{width:calc(100% - 36px)}#tmap-element-type-manager>div:first-child .tmap-searchbar button{width:30px;float:right}#tmap-element-type-manager>div:first-child ul{height:calc(100% - 65px);overflow:auto;margin-top:1em;padding:0}#tmap-element-type-manager>div:first-child ul.no-bullets li{list-style:none}#tmap-element-type-manager>div:first-child ul li{white-space:nowrap}#tmap-element-type-manager>div:first-child ul li .tmap-ranking{width:30px;display:inline-block}#tmap-element-type-manager>div:last-child{height:100%;width:calc(79% - 15px);float:right}#tmap-element-type-manager>div:last-child .tc-tab-set .tc-tab-content{overflow:auto;height:50vh}.tmap-manage-node-types .tmap-edge-type-specific{display:none !important}.tmap-manage-edge-types .tmap-node-type-specific{display:none !important}.tmap-modal-fullscreen-editor .tc-tab-content p{margin:1em 0}.tmap-has-pending-template{background-color:#C1EDC4}#tmap-search-table td{border:none;padding-left:0px}#tmap-search-table td:first-child{width:30px}#tmap-search-table b{display:inline-block;width:40px;text-align:right}#tmap-search-table ul{padding-left:20px;margin:1em 0 0 0}#tmap-search-table ul li{list-style:inherit}#tmap-search-table ul button{text-align:left}button.tmap-go-back{margin-bottom:1em;font-weight:bold}.tmap-badges>span,.tmap-badge{background:gray;font-size:11px;color:white;padding:3px 4px;display:inline-block;font-weight:bold;border-radius:2px;line-height:1em;cursor:help}.tmap-badges>span.tmap-red-flag,.tmap-badge.tmap-red-flag{background:red}.tmap-popup{display:none;position:absolute;opacity:0;transition:opacity 0.3s ease}.tmap-popup.tmap-popup-active{opacity:1}.tmap-tooltip{box-shadow:3px 3px 10px rgba(0,0,0,0.2);min-width:100px;min-height:50px;max-width:<<tmap option config.sys.popups.width>>;max-height:<<tmap option config.sys.popups.height>>;padding:5px;resize:both;overflow:auto;cursor:auto;font-family:verdana;font-size:14px;background-color:#f5f4ed;border:1px solid #808074;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.tmap-tooltip[style*=\"height\"]{max-height:none !important}.tmap-tooltip[style*=\"width\"]{max-width:none !important}.tmap-quick-connect{font-size:0.7em}.tmap-quick-connect p{padding-left:0;padding-right:0}.tmap-quick-connect .tc-drop-down{padding:5px;width:250px;white-space:normal;line-height:1em;position:absolute;z-index:1000;right:50px;background:linear-gradient(45deg, #f5f5f5 0%, #fff 50%, #f5f5f5 100%)}.tmap-quick-connect .tc-drop-down:first-child{padding-top:0;margin-top:0}.tmap-quick-connect .tc-drop-down .title{margin:1.5em 0 0.5em 0;font-weight:bold;color:gray}.tmap-quick-connect .tc-drop-down select{width:80px;word-wrap:initial}.tmap-quick-connect .tc-drop-down table{width:100%;border:none;margin:0.5em 0}.tmap-quick-connect .tc-drop-down table td,.tmap-quick-connect .tc-drop-down table th{padding:3px 3px 3px 0;vertical-align:middle;font-weight:normal;border:none}.tmap-quick-connect .tc-drop-down table td table,.tmap-quick-connect .tc-drop-down table th table{margin:0}.tmap-quick-connect .tc-drop-down .tmap-quick-connect-search-bar,.tmap-quick-connect .tc-drop-down .tmap-quick-connect-existing-bar{background:#F1F1F1;margin-top:0;border-bottom:1px solid #D5D5D5;border-top:1px solid #D5D5D5}.tmap-quick-connect .tc-drop-down table.tmap-quick-connect-search-bar td,.tmap-quick-connect .tc-drop-down th{padding:5px}.tmap-quick-connect .tc-drop-down .tmap-quick-connect-existing-bar{padding:5px}.tmap-quick-connect .tc-drop-down .tmap-connection-table th,.tmap-quick-connect .tc-drop-down .tmap-connection-table td{text-align:left;padding:1px 1px 1px 0}.tmap-quick-connect .tc-drop-down .tmap-connection-table button{width:20px;padding:0px}.tmap-quick-connect .tc-drop-down .tmap-scroll-table{height:120px;overflow:auto;display:block}.tmap-quick-connect .tc-drop-down hr{border:0;height:0;border-top:1px solid rgba(0,0,0,0.1);border-bottom:1px solid rgba(255,255,255,0.3)}.tmap-quick-connect .tc-drop-down a{display:inline;padding:0;color:#5778d8;background:transparent}.tmap-quick-connect .tc-drop-down a:hover{background:transparent;color:#5778d8;text-decoration:underline}.tmap-quick-connect .tc-drop-down button{display:inline-block;padding:0px 3px;text-align:center;color:#333333;line-height:1.0}.tmap-quick-connect .tc-drop-down button:hover{color:#ffffff}.tmap-quick-connect .tc-drop-down button svg{fill:inherit}.tmap-quick-connect .tc-drop-down button svg:hover{fill:#ffffff}\n",
"title": "$:/plugins/felixhayashi/tiddlymap/layout",
"type": "text/vnd.tiddlywiki",
"tags": [
"$:/tags/Stylesheet"
]
},
"$:/plugins/felixhayashi/tiddlymap/js/AbstractEdgeTypeSubscriber": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/AbstractEdgeTypeSubscriber",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _createClass=function(){function e(e,r){for(var t=0;t<r.length;t++){var i=r[t];i.enumerable=i.enumerable||false;i.configurable=true;if(\"value\"in i)i.writable=true;Object.defineProperty(e,i.key,i)}}return function(r,t,i){if(t)e(r.prototype,t);if(i)e(r,i);return r}}();/* @preserve TW-Guard */ /* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/AbstractEdgeTypeSubscriber\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */\n/* @preserve TW-Guard */var _EdgeType=require(\"$:/plugins/felixhayashi/tiddlymap/js/EdgeType\");var _EdgeType2=_interopRequireDefault(_EdgeType);var _exception=require(\"$:/plugins/felixhayashi/tiddlymap/js/exception\");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,r){if(!(e instanceof r)){throw new TypeError(\"Cannot call a class as a function\")}}var AbstractEdgeTypeSubscriber=function(){function e(r){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},i=t.priority,n=i===undefined?0:i,a=t.skipOthers,s=a===undefined?true:a,u=t.ignore,l=u===undefined?false:u;_classCallCheck(this,e);this.allEdgeTypes=r;this.priority=n;this.skipOthers=s;this.ignore=l}_createClass(e,[{key:\"setTracker\",value:function e(r){this.tracker=r}},{key:\"loadEdges\",value:function e(r,t,i){throw new _exception.MissingOverrideError(this,\"loadEdges\")}},{key:\"canHandle\",value:function e(r){throw new _exception.MissingOverrideError(this,\"canHandle\")}},{key:\"insertEdge\",value:function e(r,t,i){}},{key:\"deleteEdge\",value:function e(r,t,i){}}]);return e}();exports.default=AbstractEdgeTypeSubscriber;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/edgeTypeSubscriber/AbstractEdgeTypeSubscriber.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/AbstractMagicEdgeTypeSubscriber": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/AbstractMagicEdgeTypeSubscriber",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _createClass=function(){function e(e,r){for(var t=0;t<r.length;t++){var i=r[t];i.enumerable=i.enumerable||false;i.configurable=true;if(\"value\"in i)i.writable=true;Object.defineProperty(e,i.key,i)}}return function(r,t,i){if(t)e(r.prototype,t);if(i)e(r,i);return r}}();var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);var _Edge=require(\"$:/plugins/felixhayashi/tiddlymap/js/Edge\");var _Edge2=_interopRequireDefault(_Edge);var _exception=require(\"$:/plugins/felixhayashi/tiddlymap/js/exception\");var _AbstractRefEdgeTypeSubscriber=require(\"$:/plugins/felixhayashi/tiddlymap/js/AbstractRefEdgeTypeSubscriber\");var _AbstractRefEdgeTypeSubscriber2=_interopRequireDefault(_AbstractRefEdgeTypeSubscriber);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,r){if(!(e instanceof r)){throw new TypeError(\"Cannot call a class as a function\")}}function _possibleConstructorReturn(e,r){if(!e){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")}return r&&(typeof r===\"object\"||typeof r===\"function\")?r:e}function _inherits(e,r){if(typeof r!==\"function\"&&r!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+typeof r)}e.prototype=Object.create(r&&r.prototype,{constructor:{value:e,enumerable:false,writable:true,configurable:true}});if(r)Object.setPrototypeOf?Object.setPrototypeOf(e,r):e.__proto__=r}/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/AbstractMagicEdgeTypeSubscriber\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var AbstractMagicEdgeTypeSubscriber=function(e){_inherits(r,e);function r(e,t){_classCallCheck(this,r);var i=_possibleConstructorReturn(this,(r.__proto__||Object.getPrototypeOf(r)).call(this,e,t));i.edgeTypesByFieldName=_utils2.default.makeHashMap();for(var a in e){var n=e[a];if(i.canHandle(n)){i.edgeTypesByFieldName[n.name]=n}}return i}_createClass(r,[{key:\"getReferencesFromField\",value:function e(r,t,i){throw new _exception.MissingOverrideError(this,\"getReferencesFromField\")}},{key:\"getReferences\",value:function e(r,t,i){var a=_utils2.default.makeHashMap();var n=r.fields;for(var s in n){var u=this.edgeTypesByFieldName[s];if(!u||i&&!i[u.id])continue;var o=this.getReferencesFromField(r,s,t);if(o&&o.length){a[u.id]=o}}return a}}]);return r}(_AbstractRefEdgeTypeSubscriber2.default);exports.default=AbstractMagicEdgeTypeSubscriber;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/edgeTypeSubscriber/AbstractMagicEdgeTypeSubscriber.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/AbstractRefEdgeTypeSubscriber": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/AbstractRefEdgeTypeSubscriber",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _createClass=function(){function e(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||false;i.configurable=true;if(\"value\"in i)i.writable=true;Object.defineProperty(e,i.key,i)}}return function(t,r,i){if(r)e(t.prototype,r);if(i)e(t,i);return t}}();var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);var _Edge=require(\"$:/plugins/felixhayashi/tiddlymap/js/Edge\");var _Edge2=_interopRequireDefault(_Edge);var _exception=require(\"$:/plugins/felixhayashi/tiddlymap/js/exception\");var _AbstractEdgeTypeSubscriber=require(\"$:/plugins/felixhayashi/tiddlymap/js/AbstractEdgeTypeSubscriber\");var _AbstractEdgeTypeSubscriber2=_interopRequireDefault(_AbstractEdgeTypeSubscriber);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}function _possibleConstructorReturn(e,t){if(!e){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")}return t&&(typeof t===\"object\"||typeof t===\"function\")?t:e}function _inherits(e,t){if(typeof t!==\"function\"&&t!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t)}e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:false,writable:true,configurable:true}});if(t)Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t}/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/AbstractRefEdgeTypeSubscriber\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var AbstractRefEdgeTypeSubscriber=function(e){_inherits(t,e);function t(){_classCallCheck(this,t);return _possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}_createClass(t,[{key:\"loadEdges\",value:function e(t,r,i){var a=this.getReferences(t,r,i);if(!a||!_utils2.default.hasElements(a))return;var s=t.fields[\"tmap.id\"];var n=$tm.tracker.getIdsByTiddlers();var u=this.allEdgeTypes;var l=_utils2.default.getTiddlerRef(t);var o=_utils2.default.makeHashMap();for(var f in a){var c=a[f];if(!c){continue}var p=u[f];for(var d=c.length;d--;){var _=c[d];if(!_||!$tw.wiki.tiddlerExists(_)||_utils2.default.isSystemOrDraft(_)||r&&!r[_]){continue}var b=p.id+$tw.utils.hashString(l+_);o[b]=new _Edge2.default(s,n[_],p.id,b)}}return o}},{key:\"getReferences\",value:function e(t,r,i){throw new _exception.MissingOverrideError(this,\"getReferences\")}}]);return t}(_AbstractEdgeTypeSubscriber2.default);exports.default=AbstractRefEdgeTypeSubscriber;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/edgeTypeSubscriber/AbstractRefEdgeTypeSubscriber.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/EdgeTypeSubscriberRegistry": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/EdgeTypeSubscriberRegistry",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _createClass=function(){function e(e,r){for(var t=0;t<r.length;t++){var s=r[t];s.enumerable=s.enumerable||false;s.configurable=true;if(\"value\"in s)s.writable=true;Object.defineProperty(e,s.key,s)}}return function(r,t,s){if(t)e(r.prototype,t);if(s)e(r,s);return r}}();function _classCallCheck(e,r){if(!(e instanceof r)){throw new TypeError(\"Cannot call a class as a function\")}}\n/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/EdgeTypeSubscriberRegistry\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var EdgeTypeSubscriberRegistry=function(){function e(r,t,s){_classCallCheck(this,e);this.subscriberClasses=r;this.tracker=s;this.updateIndex(t)}_createClass(e,[{key:\"getAllForType\",value:function e(r){var t=this.allSubscribers;var s=[];for(var i=0,a=t.length;i<a;i++){if(t[i].canHandle(r)){s.push(t[i]);if(t[i].skipOthers){break}}}return s}},{key:\"getAll\",value:function e(){return this.allSubscribers}},{key:\"updateIndex\",value:function e(r){var t=[];var s=this.subscriberClasses;for(var i in s){var a=new s[i](r);a.setTracker(this.tracker);if(a.ignore===true){continue}t.push(a)}t.sort(function(e,r){return r.priority-e.priority});this.allSubscribers=t}}]);return e}();exports.default=EdgeTypeSubscriberRegistry;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/edgeTypeSubscriber/EdgeTypeSubscriberRegistry.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/modules/edge-type-handler/tmap": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/modules/edge-type-handler/tmap",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.TmapEdgeTypeSubscriber=undefined;var _extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var i in r){if(Object.prototype.hasOwnProperty.call(r,i)){e[i]=r[i]}}}return e};var _createClass=function(){function e(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||false;i.configurable=true;if(\"value\"in i)i.writable=true;Object.defineProperty(e,i.key,i)}}return function(t,r,i){if(r)e(t.prototype,r);if(i)e(t,i);return t}}();var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);var _Edge=require(\"$:/plugins/felixhayashi/tiddlymap/js/Edge\");var _Edge2=_interopRequireDefault(_Edge);var _AbstractEdgeTypeSubscriber=require(\"$:/plugins/felixhayashi/tiddlymap/js/AbstractEdgeTypeSubscriber\");var _AbstractEdgeTypeSubscriber2=_interopRequireDefault(_AbstractEdgeTypeSubscriber);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}function _possibleConstructorReturn(e,t){if(!e){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")}return t&&(typeof t===\"object\"||typeof t===\"function\")?t:e}function _inherits(e,t){if(typeof t!==\"function\"&&t!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t)}e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:false,writable:true,configurable:true}});if(t)Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t}/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/modules/edge-type-handler/tmap\ntype: application/javascript\nmodule-type: tmap.edgetypehandler\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var TmapEdgeTypeSubscriber=function(e){_inherits(t,e);function t(e){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};_classCallCheck(this,t);return _possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,_extends({priority:0},r)))}_createClass(t,[{key:\"loadEdges\",value:function e(t,r,i){var a=_utils2.default.parseFieldData(t,\"tmap.edges\");if(!a){return}var n=this.tracker.getTiddlersByIds();var u=t.fields[\"tmap.id\"];var s=_utils2.default.makeHashMap();for(var l in a){var o=a[l];var d=n[o.to];if(d&&(!r||r[d])&&(!i||i[o.type])){s[l]=new _Edge2.default(u,o.to,o.type,l)}}return s}},{key:\"insertEdge\",value:function e(t,r,i){var a=_utils2.default.parseFieldData(t,\"tmap.edges\",{});r.id=r.id||_utils2.default.genUUID();a[r.id]={to:r.to,type:i.id};_utils2.default.writeFieldData(t,\"tmap.edges\",a,$tm.config.sys.jsonIndentation);return r}},{key:\"deleteEdge\",value:function e(t,r,i){if(!r.id)return;var a=_utils2.default.parseFieldData(t,\"tmap.edges\",{});delete a[r.id];_utils2.default.writeFieldData(t,\"tmap.edges\",a,$tm.config.sys.jsonIndentation);return r}},{key:\"canHandle\",value:function e(t){return true}}]);return t}(_AbstractEdgeTypeSubscriber2.default);exports.TmapEdgeTypeSubscriber=TmapEdgeTypeSubscriber;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/edgeTypeSubscriber/TmapEdgeTypeSubscriber.js.map\n",
"type": "application/javascript",
"module-type": "tmap.edgetypehandler"
},
"$:/plugins/felixhayashi/tiddlymap/js/modules/edge-type-handler/field": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/modules/edge-type-handler/field",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.FieldEdgeTypeSubscriber=undefined;var _extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var i in r){if(Object.prototype.hasOwnProperty.call(r,i)){e[i]=r[i]}}}return e};var _createClass=function(){function e(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||false;i.configurable=true;if(\"value\"in i)i.writable=true;Object.defineProperty(e,i.key,i)}}return function(t,r,i){if(r)e(t.prototype,r);if(i)e(t,i);return t}}();var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);var _AbstractMagicEdgeTypeSubscriber=require(\"$:/plugins/felixhayashi/tiddlymap/js/AbstractMagicEdgeTypeSubscriber\");var _AbstractMagicEdgeTypeSubscriber2=_interopRequireDefault(_AbstractMagicEdgeTypeSubscriber);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}function _possibleConstructorReturn(e,t){if(!e){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")}return t&&(typeof t===\"object\"||typeof t===\"function\")?t:e}function _inherits(e,t){if(typeof t!==\"function\"&&t!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t)}e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:false,writable:true,configurable:true}});if(t)Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t}/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/modules/edge-type-handler/field\ntype: application/javascript\nmodule-type: tmap.edgetypehandler\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var FieldEdgeTypeSubscriber=function(e){_inherits(t,e);function t(e){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};_classCallCheck(this,t);return _possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,_extends({priority:10},r)))}_createClass(t,[{key:\"canHandle\",value:function e(t){return t.namespace===\"tw-field\"}},{key:\"getReferencesFromField\",value:function e(t,r,i){return[t.fields[r]]}},{key:\"insertEdge\",value:function e(t,r,i){var n=this.tracker.getTiddlerById(r.to);if(n==null){return}_utils2.default.setField(t,i.name,n);return r}},{key:\"deleteEdge\",value:function e(t,r,i){var n=this.tracker.getTiddlerById(r.to);if(n==null){return}_utils2.default.setField(t,i.name,undefined);return r}}]);return t}(_AbstractMagicEdgeTypeSubscriber2.default);exports.FieldEdgeTypeSubscriber=FieldEdgeTypeSubscriber;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/edgeTypeSubscriber/magicEdgeTypeSubscriber/FieldEdgeTypeSubscriber.js.map\n",
"type": "application/javascript",
"module-type": "tmap.edgetypehandler"
},
"$:/plugins/felixhayashi/tiddlymap/js/modules/edge-type-handler/filter": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/modules/edge-type-handler/filter",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.FilterEdgeTypeSubstriber=undefined;var _extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var i in r){if(Object.prototype.hasOwnProperty.call(r,i)){e[i]=r[i]}}}return e};var _createClass=function(){function e(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||false;i.configurable=true;if(\"value\"in i)i.writable=true;Object.defineProperty(e,i.key,i)}}return function(t,r,i){if(r)e(t.prototype,r);if(i)e(t,i);return t}}();var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);var _AbstractMagicEdgeTypeSubscriber=require(\"$:/plugins/felixhayashi/tiddlymap/js/AbstractMagicEdgeTypeSubscriber\");var _AbstractMagicEdgeTypeSubscriber2=_interopRequireDefault(_AbstractMagicEdgeTypeSubscriber);var _widget=require(\"$:/core/modules/widgets/widget.js\");var _widget2=_interopRequireDefault(_widget);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}function _possibleConstructorReturn(e,t){if(!e){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")}return t&&(typeof t===\"object\"||typeof t===\"function\")?t:e}function _inherits(e,t){if(typeof t!==\"function\"&&t!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t)}e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:false,writable:true,configurable:true}});if(t)Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t}/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/modules/edge-type-handler/filter\ntype: application/javascript\nmodule-type: tmap.edgetypehandler\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var FilterEdgeTypeSubstriber=function(e){_inherits(t,e);function t(e){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};_classCallCheck(this,t);return _possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,_extends({priority:10},r)))}_createClass(t,[{key:\"canHandle\",value:function e(t){return t.namespace===\"tw-filter\"}},{key:\"getReferencesFromField\",value:function e(t,r,i){var n=t.fields[r];var a=new _widget2.default.widget({});a.setVariable(\"currentTiddler\",t.fields.title);var u=new _widget2.default.widget({},{parentWidget:a});var s=_utils2.default.getMatches(n,i,u);return s}},{key:\"insertEdge\",value:function e(t,r,i){if(!r.to){return}var n=i.name;var a=t.fields[n]||\"\";var u=this.tracker.getTiddlerById(r.to);var s=$tw.utils.stringifyList([u]);if(a.length>0){s=\" \"+s}_utils2.default.setField(t,n,a+s);return r}}]);return t}(_AbstractMagicEdgeTypeSubscriber2.default);exports.FilterEdgeTypeSubstriber=FilterEdgeTypeSubstriber;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/edgeTypeSubscriber/magicEdgeTypeSubscriber/FilterEdgeTypeSubscriber.js.map\n",
"type": "application/javascript",
"module-type": "tmap.edgetypehandler"
},
"$:/plugins/felixhayashi/tiddlymap/js/modules/edge-type-handler/list": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/modules/edge-type-handler/list",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.ListEdgeTypeSubscriber=undefined;var _extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var i in r){if(Object.prototype.hasOwnProperty.call(r,i)){e[i]=r[i]}}}return e};var _createClass=function(){function e(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||false;i.configurable=true;if(\"value\"in i)i.writable=true;Object.defineProperty(e,i.key,i)}}return function(t,r,i){if(r)e(t.prototype,r);if(i)e(t,i);return t}}();var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);var _AbstractMagicEdgeTypeSubscriber=require(\"$:/plugins/felixhayashi/tiddlymap/js/AbstractMagicEdgeTypeSubscriber\");var _AbstractMagicEdgeTypeSubscriber2=_interopRequireDefault(_AbstractMagicEdgeTypeSubscriber);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}function _possibleConstructorReturn(e,t){if(!e){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")}return t&&(typeof t===\"object\"||typeof t===\"function\")?t:e}function _inherits(e,t){if(typeof t!==\"function\"&&t!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t)}e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:false,writable:true,configurable:true}});if(t)Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t}/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/modules/edge-type-handler/list\ntype: application/javascript\nmodule-type: tmap.edgetypehandler\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var ListEdgeTypeSubscriber=function(e){_inherits(t,e);function t(e){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};_classCallCheck(this,t);return _possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,_extends({priority:10},r)))}_createClass(t,[{key:\"canHandle\",value:function e(t){return t.namespace===\"tw-list\"}},{key:\"getReferencesFromField\",value:function e(t,r,i){return $tw.utils.parseStringArray(t.fields[r])}},{key:\"insertEdge\",value:function e(t,r,i){if(!r.to){return}var n=i.name;var s=$tw.utils.parseStringArray(t.fields[n]);s=(s||[]).slice();var a=this.tracker.getTiddlerById(r.to);s.push(a);_utils2.default.setField(t,n,$tw.utils.stringifyList(s));return r}},{key:\"deleteEdge\",value:function e(t,r,i){var n=$tw.utils.parseStringArray(t.fields[i.name]);n=(n||[]).slice();var s=this.tracker.getTiddlerById(r.to);var a=n.indexOf(s);if(a>-1){n.splice(a,1)}var u=void 0;if(n.length>0){u=$tw.utils.stringifyList(n)}_utils2.default.setField(t,i.name,u);return r}}]);return t}(_AbstractMagicEdgeTypeSubscriber2.default);exports.ListEdgeTypeSubscriber=ListEdgeTypeSubscriber;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/edgeTypeSubscriber/magicEdgeTypeSubscriber/ListEdgeTypeSubscriber.js.map\n",
"type": "application/javascript",
"module-type": "tmap.edgetypehandler"
},
"$:/plugins/felixhayashi/tiddlymap/js/modules/edge-type-handler/body/link": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/modules/edge-type-handler/body/link",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.LinkEdgeTypeSubscriber=undefined;var _extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r){if(Object.prototype.hasOwnProperty.call(r,n)){e[n]=r[n]}}}return e};var _createClass=function(){function e(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||false;n.configurable=true;if(\"value\"in n)n.writable=true;Object.defineProperty(e,n.key,n)}}return function(t,r,n){if(r)e(t.prototype,r);if(n)e(t,n);return t}}();var _AbstractRefEdgeTypeSubscriber=require(\"$:/plugins/felixhayashi/tiddlymap/js/AbstractRefEdgeTypeSubscriber\");var _AbstractRefEdgeTypeSubscriber2=_interopRequireDefault(_AbstractRefEdgeTypeSubscriber);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}function _possibleConstructorReturn(e,t){if(!e){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")}return t&&(typeof t===\"object\"||typeof t===\"function\")?t:e}function _inherits(e,t){if(typeof t!==\"function\"&&t!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t)}e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:false,writable:true,configurable:true}});if(t)Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t}/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/modules/edge-type-handler/body/link\ntype: application/javascript\nmodule-type: tmap.edgetypehandler\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var LinkEdgeTypeSubscriber=function(e){_inherits(t,e);function t(e){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};_classCallCheck(this,t);return _possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,_extends({priority:20},r)))}_createClass(t,[{key:\"canHandle\",value:function e(t){return t.id===\"tw-body:link\"}},{key:\"getReferences\",value:function e(t,r,n){if(n&&!n[\"tw-body:link\"]){return}var i=$tw.wiki.getTiddlerLinks(t.fields.title);if(!i||!i.length){return}return{\"tw-body:link\":i}}}]);return t}(_AbstractRefEdgeTypeSubscriber2.default);exports.LinkEdgeTypeSubscriber=LinkEdgeTypeSubscriber;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/edgeTypeSubscriber/refEdgeTypeSubscriber/LinkEdgeTypeSubscriber.js.map\n",
"type": "application/javascript",
"module-type": "tmap.edgetypehandler"
},
"$:/plugins/felixhayashi/tiddlymap/js/modules/edge-type-handler/body/transclude": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/modules/edge-type-handler/body/transclude",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.TranscludeEdgeTypeSubscriber=undefined;var _extends=Object.assign||function(e){for(var r=1;r<arguments.length;r++){var t=arguments[r];for(var n in t){if(Object.prototype.hasOwnProperty.call(t,n)){e[n]=t[n]}}}return e};var _createClass=function(){function e(e,r){for(var t=0;t<r.length;t++){var n=r[t];n.enumerable=n.enumerable||false;n.configurable=true;if(\"value\"in n)n.writable=true;Object.defineProperty(e,n.key,n)}}return function(r,t,n){if(t)e(r.prototype,t);if(n)e(r,n);return r}}();var _AbstractRefEdgeTypeSubscriber=require(\"$:/plugins/felixhayashi/tiddlymap/js/AbstractRefEdgeTypeSubscriber\");var _AbstractRefEdgeTypeSubscriber2=_interopRequireDefault(_AbstractRefEdgeTypeSubscriber);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,r){if(!(e instanceof r)){throw new TypeError(\"Cannot call a class as a function\")}}function _possibleConstructorReturn(e,r){if(!e){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")}return r&&(typeof r===\"object\"||typeof r===\"function\")?r:e}function _inherits(e,r){if(typeof r!==\"function\"&&r!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+typeof r)}e.prototype=Object.create(r&&r.prototype,{constructor:{value:e,enumerable:false,writable:true,configurable:true}});if(r)Object.setPrototypeOf?Object.setPrototypeOf(e,r):e.__proto__=r}/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/modules/edge-type-handler/body/transclude\ntype: application/javascript\nmodule-type: tmap.edgetypehandler\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var TranscludeEdgeTypeSubscriber=function(e){_inherits(r,e);function r(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};_classCallCheck(this,r);return _possibleConstructorReturn(this,(r.__proto__||Object.getPrototypeOf(r)).call(this,e,_extends({priority:20,ignore:typeof $tw.wiki.getTiddlerTranscludes!==\"function\"},t)))}_createClass(r,[{key:\"canHandle\",value:function e(r){return r.id===\"tw-body:transclude\"}},{key:\"getReferences\",value:function e(r,t,n){if(n&&!n[\"tw-body:transclude\"]){return}var i=$tw.wiki.getTiddlerTranscludes(r.fields.title);if(!i||!i.length){return}return{\"tw-body:transclude\":i}}}]);return r}(_AbstractRefEdgeTypeSubscriber2.default);exports.TranscludeEdgeTypeSubscriber=TranscludeEdgeTypeSubscriber;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/edgeTypeSubscriber/refEdgeTypeSubscriber/TranscludeEdgeTypeSubscriber.js.map\n",
"type": "application/javascript",
"module-type": "tmap.edgetypehandler"
},
"$:/plugins/felixhayashi/tiddlymap/js/Edge": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/Edge",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/Edge\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var Edge=function e(t,i,s,l){_classCallCheck(this,e);this.from=t;this.to=i;this.type=s;this.id=l||_utils2.default.genUUID()};exports.default=Edge;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/graph/Edge.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/EdgeType": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/EdgeType",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _typeof=typeof Symbol===\"function\"&&typeof Symbol.iterator===\"symbol\"?function(e){return typeof e}:function(e){return e&&typeof Symbol===\"function\"&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e};var _extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r){if(Object.prototype.hasOwnProperty.call(r,n)){e[n]=r[n]}}}return e};var _createClass=function(){function e(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||false;n.configurable=true;if(\"value\"in n)n.writable=true;Object.defineProperty(e,n.key,n)}}return function(t,r,n){if(r)e(t.prototype,r);if(n)e(t,n);return t}}();var _MapElementType2=require(\"$:/plugins/felixhayashi/tiddlymap/js/MapElementType\");var _MapElementType3=_interopRequireDefault(_MapElementType2);var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);var _environment=require(\"$:/plugins/felixhayashi/tiddlymap/js/lib/environment\");var env=_interopRequireWildcard(_environment);function _interopRequireWildcard(e){if(e&&e.__esModule){return e}else{var t={};if(e!=null){for(var r in e){if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]}}t.default=e;return t}}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}function _possibleConstructorReturn(e,t){if(!e){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")}return t&&(typeof t===\"object\"||typeof t===\"function\")?t:e}function _inherits(e,t){if(typeof t!==\"function\"&&t!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t)}e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:false,writable:true,configurable:true}});if(t)Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t}/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/EdgeType\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var EdgeType=function(e){_inherits(t,e);function t(e,r){_classCallCheck(this,t);var n=t.getIdParts(e),o=n.marker,a=n.namespace,i=n.name;e=t.getId(o,a,i);var l=_possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,env.path.edgeTypes,t.fieldMeta,r));l.id=e;l.marker=o;l.name=i;l.namespace=a;var u=(l.style||{}).arrows;if(u){l.invertedArrow=isArrowEnabled(u,\"from\");l.toArrow=isArrowEnabled(u,\"to\")||isArrowEnabled(u,\"middle\");l.biArrow=l.invertedArrow===l.toArrow;if(l.biArrow){l.toArrow=true;l.invertedArrow=true}}else{l.toArrow=true}Object.freeze(l);return l}_createClass(t,[{key:\"getLabel\",value:function e(){return this.label||this.name}}],[{key:\"getIdParts\",value:function e(){var t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:\"\";t=_utils2.default.getWithoutPrefix(t,env.path.edgeTypes+\"/\");var r=t.match(edgeTypeRegex)||[];return{marker:r[1]||\"\",namespace:r[3]&&r[2]||\"\",name:r[3]||r[2]||\"\"}}},{key:\"getId\",value:function e(){var t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:\"\";var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:\"\";var n=arguments[2];return n?t+(r&&r+\":\")+n:\"tmap:unknown\"}}]);return t}(_MapElementType3.default);EdgeType.getInstance=function(e){return e instanceof EdgeType?e:new EdgeType(e)};EdgeType.fieldMeta=_extends({},_MapElementType3.default.fieldMeta,{label:{},\"show-label\":{}});var isArrowEnabled=function e(t,r){var n=t[r];if(n==null&&r===\"to\"){return true}return(typeof n===\"undefined\"?\"undefined\":_typeof(n))===\"object\"?n.enabled!==false:n===true};var edgeTypeRegex=new RegExp(\"^(_?)([^:_][^:]*):?([^:]*)\");exports.default=EdgeType;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/graph/EdgeType.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/MapElementType": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/MapElementType",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _typeof=typeof Symbol===\"function\"&&typeof Symbol.iterator===\"symbol\"?function(t){return typeof t}:function(t){return t&&typeof Symbol===\"function\"&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t};var _createClass=function(){function t(t,e){for(var i=0;i<e.length;i++){var l=e[i];l.enumerable=l.enumerable||false;l.configurable=true;if(\"value\"in l)l.writable=true;Object.defineProperty(t,l.key,l)}}return function(e,i,l){if(i)t(e.prototype,i);if(l)t(e,l);return e}}();/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/MapElementType\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}function _classCallCheck(t,e){if(!(t instanceof e)){throw new TypeError(\"Cannot call a class as a function\")}}var MapElementType=function(){function t(e,i,l,s){_classCallCheck(this,t);this.id=e;this.root=i;this._fieldMeta=l;this.fullPath=this.root+\"/\"+this.id;this.isShipped=$tw.wiki.getSubTiddler($tm.path.pluginRoot,this.fullPath);this._load(s||this.fullPath)}_createClass(t,[{key:\"_load\",value:function t(e){if(!e){return}if(typeof e===\"string\"){var i=_utils2.default.startsWith(e,this.root);var l=i?e:this.root+\"/\"+e;this._loadFromTiddler(l)}else if(e instanceof $tw.Tiddler){this._loadFromTiddler(e)}else if((typeof e===\"undefined\"?\"undefined\":_typeof(e))===\"object\"){for(var s in this._fieldMeta){this[s]=e[s]}}}},{key:\"_loadFromTiddler\",value:function t(e){var i=_utils2.default.getTiddler(e);if(!i){return}var l=$tw.wiki.getSubTiddler($tm.path.pluginRoot,this.fullPath)||{};var s=$tw.utils.extend({},l.fields,i.fields);for(var r in this._fieldMeta){var a=this._fieldMeta[r].parse;var f=s[r];this[r]=a?a.call(this,f):f}}},{key:\"exists\",value:function t(){return _utils2.default.tiddlerExists(this.fullPath)}},{key:\"setStyle\",value:function t(e,i){if(typeof e===\"string\"){e=_utils2.default.parseJSON(e)}if((typeof e===\"undefined\"?\"undefined\":_typeof(e))===\"object\"){if(i){_utils2.default.merge(this.style,e)}else{this.style=e}}}},{key:\"save\",value:function t(e,i){if(!e){e=this.fullPath}else if(typeof e!==\"string\"){return}var l={title:e,text:\"\"};if(!_utils2.default.startsWith(e,this.root)){l.id=this.id}for(var s in this._fieldMeta){var r=this._fieldMeta[s].stringify;l[s]=r?r.call(this,this[s]):this[s]}if(!this.exists()){Object.assign(l,$tw.wiki.getCreationFields())}if(i!==true){Object.assign(l,$tw.wiki.getModificationFields())}$tw.wiki.addTiddler(new $tw.Tiddler(l))}}]);return t}();MapElementType.fieldMeta={description:{},style:{parse:_utils2.default.parseJSON,stringify:JSON.stringify},modified:{},created:{}};exports.default=MapElementType;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/graph/MapElementType.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/NodeType": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/NodeType",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r){if(Object.prototype.hasOwnProperty.call(r,n)){e[n]=r[n]}}}return e};var _createClass=function(){function e(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||false;n.configurable=true;if(\"value\"in n)n.writable=true;Object.defineProperty(e,n.key,n)}}return function(t,r,n){if(r)e(t.prototype,r);if(n)e(t,n);return t}}();var _MapElementType2=require(\"$:/plugins/felixhayashi/tiddlymap/js/MapElementType\");var _MapElementType3=_interopRequireDefault(_MapElementType2);var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}function _possibleConstructorReturn(e,t){if(!e){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")}return t&&(typeof t===\"object\"||typeof t===\"function\")?t:e}function _inherits(e,t){if(typeof t!==\"function\"&&t!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t)}e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:false,writable:true,configurable:true}});if(t)Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t}/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/NodeType\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var NodeType=function(e){_inherits(t,e);function t(e,r){_classCallCheck(this,t);e=typeof e===\"string\"?_utils2.default.getWithoutPrefix(e,$tm.path.nodeTypes+\"/\"):\"tmap:unknown\";var n=_possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,$tm.path.nodeTypes,t.fieldMeta,r));Object.freeze(n);return n}_createClass(t,[{key:\"getInheritors\",value:function e(t){return this.scope?_utils2.default.getMatches(this.scope,t||$tw.wiki.allTitles()):[]}}]);return t}(_MapElementType3.default);NodeType.getInstance=function(e){return e instanceof NodeType?e:new NodeType(e)};NodeType.fieldMeta=_extends({},_MapElementType3.default.fieldMeta,{view:{},priority:{parse:function e(t){return isNaN(t)?1:parseInt(t)},stringify:function e(t){return _utils2.default.isInteger(t)?t.toString():\"1\"}},scope:{stringify:_utils2.default.getWithoutNewLines},\"fa-icon\":{},\"tw-icon\":{}});exports.default=NodeType;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/graph/NodeType.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/ViewAbstraction": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/ViewAbstraction",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var r in i){if(Object.prototype.hasOwnProperty.call(i,r)){e[r]=i[r]}}}return e};var _typeof=typeof Symbol===\"function\"&&typeof Symbol.iterator===\"symbol\"?function(e){return typeof e}:function(e){return e&&typeof Symbol===\"function\"&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e};var _createClass=function(){function e(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||false;r.configurable=true;if(\"value\"in r)r.writable=true;Object.defineProperty(e,r.key,r)}}return function(t,i,r){if(i)e(t.prototype,i);if(r)e(t,r);return t}}();/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/ViewAbstraction\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var _EdgeType=require(\"$:/plugins/felixhayashi/tiddlymap/js/EdgeType\");var _EdgeType2=_interopRequireDefault(_EdgeType);var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);var _environment=require(\"$:/plugins/felixhayashi/tiddlymap/js/lib/environment\");var env=_interopRequireWildcard(_environment);var _exception=require(\"$:/plugins/felixhayashi/tiddlymap/js/exception\");function _interopRequireWildcard(e){if(e&&e.__esModule){return e}else{var t={};if(e!=null){for(var i in e){if(Object.prototype.hasOwnProperty.call(e,i))t[i]=e[i]}}t.default=e;return t}}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}var ViewAbstraction=function(){function e(t){var i=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};_classCallCheck(this,e);if(t instanceof e){return t}this._registerPaths(t);if(i.isCreate){if(!this.configTRef){var r=_utils2.default.getRandomLabel({plural:true});this.configTRef=$tw.wiki.generateNewTitle($tm.path.views+\"/\"+r)}this._createView(i)}else if(!e.exists(this.getRoot())){throw new ResourceNotFoundException(\"ViewAbstraction\",t)}}_createClass(e,[{key:\"isLocked\",value:function e(){return $tw.wiki.isShadowTiddler(this.configTRef)}},{key:\"update\",value:function e(t){var i=t.changedTiddlers;if(t[env.path.edgeTypes]||_utils2.default.hasKeyWithPrefix(i,this.getRoot())){this._clearCaches();return true}return false}},{key:\"addPlaceholder\",value:function e(t){_utils2.default.cp(_utils2.default.getTiddlerRef(t),this.snapshotTRef,true)}},{key:\"exists\",value:function t(){return e.exists(this)}},{key:\"getRoot\",value:function e(){return this.configTRef}},{key:\"getCreationDate\",value:function e(t){var i=$tw.wiki.getTiddler(this.configTRef).fields[\"created\"];if(t){return i instanceof Date?$tw.utils.formatDateString(i,\"DDth MMM YYYY\"):\"\"}return i}},{key:\"getLabel\",value:function e(){return _utils2.default.getBasename(this.configTRef)}},{key:\"destroy\",value:function e(){_utils2.default.deleteTiddlers(_utils2.default.getMatches(\"[prefix[\"+this.configTRef+\"]]\"))}},{key:\"getOccurrences\",value:function e(){var t=\"[regexp:text[<\\\\$(tiddlymap|tmap).*?view=.\"+this.getLabel()+\"..*?>]]\";return _utils2.default.getMatches(t)}},{key:\"rename\",value:function t(i){if(typeof i!==\"string\"){return false}if(_utils2.default.inArray(\"/\",i)){$tm.notify('A view name must not contain any \"/\"');return false}var r=this.getLabel();var a=env.path.views+\"/\"+i;var n=this.getRoot();_utils2.default.mv(n,a,true);if($tm.config.sys.defaultView===r){_utils2.default.setEntry($tm.ref.sysUserConf,\"defaultView\",i)}if($tm.config.sys.liveTab.fallbackView===r){_utils2.default.setEntry($tm.ref.sysUserConf,\"liveTab.fallbackView\",i)}$tw.wiki.each(function(t,a){if(t.fields[\"tmap.open-view\"]===r){_utils2.default.setField(a,\"tmap.open-view\",i);return}if(e.exists(a)){var n=new e(a);var l=n.getNodeData();for(var s in l){if(l[s][\"open-view\"]===r){l[s][\"open-view\"]=i}}n.saveNodeData(l)}});this._clearCaches();this._registerPaths(i)}},{key:\"isEnabled\",value:function e(t){return _utils2.default.isTrue(this.getConfig(t),false)}},{key:\"getConfig\",value:function e(t){var i=this;var r=$tw.wiki.getCacheForTiddler(this.configTRef,\"tmap-config\",function(){var e=_utils2.default.getTiddler(i.configTRef).fields;return _utils2.default.getPropertiesByPrefix(e,\"config.\")});var a=t&&_utils2.default.startsWith(t,\"config.\")?t:\"config.\"+t;return t?r[a]:r}},{key:\"setConfig\",value:function e(){for(var t=arguments.length,i=Array(t),r=0;r<t;r++){i[r]=arguments[r]}if(i[0]==null){return}if(i.length===1&&_typeof(i[0])===\"object\"){for(var a in i[0]){this.setConfig(a,i[0][a])}}else if(i.length===2&&typeof i[0]===\"string\"){var n=_utils2.default.getWithoutPrefix(i[0],\"config.\");var l=i[1];if(l===undefined){return}var s=this.getConfig();if(l===null){$tm.logger(\"debug\",\"Removing config\",n);delete s[\"config.\"+n]}else{if(n===\"edge_type_namespace\"){var o=l.match(/[^:]+/);l=o?o[0]:\"\"}}$tm.logger(\"log\",\"Setting config\",n,l);s[\"config.\"+n]=l;$tw.wiki.addTiddler(new $tw.Tiddler(_utils2.default.getTiddler(this.configTRef),s))}else{throw new(Function.prototype.bind.apply(_exception.InvalidArgumentException,[null].concat(i)))}}},{key:\"isNodeIncludedById\",value:function t(i){var r=$tw.utils.escapeRegExp(e._getNodeIdFilterPart(i));return this.getNodeFilter(\"raw\").match(r)}},{key:\"setNodeFilter\",value:function e(t,i){t=t.replace(/[\\n\\r]/g,\" \");if(this.getNodeFilter(\"raw\")===t){return}_utils2.default.setField(this.nodeFilterTRef,\"filter\",t);$tm.logger(\"debug\",\"Node filter set to\",t)}},{key:\"setEdgeTypeFilter\",value:function e(t){t=t.replace(/[\\n\\r]/g,\" \");if(this.getEdgeTypeFilter(\"raw\")===t){return}_utils2.default.setField(this.edgeTypeFilterTRef,\"filter\",t);$tm.logger(\"debug\",\"Edge filter set to\",t)}},{key:\"addNode\",value:function t(i){if(!this.isNodeIncludedById(i)){if(_utils2.default.isTrue($tm.config.sys.alwaysAddNodeIdToViewFilter)||!_utils2.default.isMatch(i.tRef,this.getNodeFilter(\"compiled\"))){var r=e._getNodeIdFilterPart(i);var a=\" \";this.setNodeFilter(this.getNodeFilter(\"raw\")+a+r)}this.saveNodePosition(i)}}},{key:\"removeNode\",value:function t(i){if(!this.isNodeIncludedById(i)){return false}var r=e._getNodeIdFilterPart(i);var a=this.getNodeFilter(\"raw\").replace(r,\"\");this.setNodeFilter(a);return true}},{key:\"getEdgeTypeFilter\",value:function e(t){var i=this;var r=$tw.wiki.getCacheForTiddler(this.edgeTypeFilterTRef,\"tmap-edgeTypeFilter\",function(){var e=$tm.indeces.allETy;var t=Object.keys(e);var r=$tw.wiki.getTiddler(i.edgeTypeFilterTRef);var a={};a.raw=r&&r.fields.filter||\"\";a.pretty=_utils2.default.getPrettyFilter(a.raw);a.matches=_utils2.default.getEdgeTypeMatches(a.raw,e);a.whitelist=_utils2.default.getLookupTable(a.matches);return a});return t?r[t]:r}},{key:\"isEdgeTypeVisible\",value:function e(t){return _utils2.default.isEdgeTypeMatch(_EdgeType2.default.getInstance(t).id,this.getEdgeTypeFilter(\"raw\"))}},{key:\"getNodeFilter\",value:function e(t){var i=this;var r=$tw.wiki.getCacheForTiddler(this.nodeFilterTRef,\"tmap-nodeFilter\",function(){var e=_utils2.default.makeHashMap();var t=$tw.wiki.getTiddler(i.nodeFilterTRef);e.raw=t&&t.fields.filter||\"\";e.pretty=_utils2.default.getPrettyFilter(e.raw);e.compiled=$tw.wiki.compileFilter(e.raw);return e});return t?r[t]:r}},{key:\"getNodeData\",value:function e(t){var i=this;var r=$tw.wiki.getCacheForTiddler(this.mapTRef,\"tmap-map\",function(){return _utils2.default.parseFieldData(i.mapTRef,\"text\",{})});return t?r[t]:r}},{key:\"equals\",value:function t(i){return i===this||e.exists(i)&&new e(i).getRoot()===this.getRoot()}},{key:\"saveNodeData\",value:function e(){var t=this.getNodeData();for(var i=arguments.length,r=Array(i),a=0;a<i;a++){r[a]=arguments[a]}if(r.length===2){if(_typeof(r[1])===\"object\"){if(r[1]===null){delete t[r[0]]}else{t[r[0]]=Object.assign(t[r[0]]||{},r[1])}}}else if(r.length===1&&_typeof(r[0])===\"object\"){$tm.logger(\"log\",\"Storing data in\",this.mapTRef);Object.assign(t,r[0])}else{throw new(Function.prototype.bind.apply(_exception.InvalidArgumentException,[null].concat(r)))}_utils2.default.writeFieldData(this.mapTRef,\"text\",t,$tm.config.sys.jsonIndentation)}},{key:\"saveNodePosition\",value:function e(t){if(t.id&&t.x!=null&&t.y!=null){this.saveNodeData(t.id,{x:t.x,y:t.y})}}},{key:\"saveNodePositions\",value:function e(t){var i=this.getNodeData();for(var r in t){i[r]=i[r]||{};i[r].x=t[r].x;i[r].y=t[r].y}this.saveNodeData(i)}},{key:\"setCentralTopic\",value:function e(t){this.setConfig(\"central-topic\",t)}},{key:\"saveNodeStyle\",value:function e(t,i){var r=this.getNodeData(t)||{};var a={x:r.x,y:r.y};for(var n in r){delete r[n]}this.saveNodeData(t,_extends({},i,a))}},{key:\"_registerPaths\",value:function t(i,r){this.configTRef=e._getRootPath(i);this.mapTRef=this.configTRef+\"/map\";this.nodeFilterTRef=this.configTRef+\"/filter/nodes\";this.edgeTypeFilterTRef=this.configTRef+\"/filter/edges\";this.snapshotTRef=this.getRoot()+\"/snapshot\"}},{key:\"_clearCaches\",value:function e(){_utils2.default.getMatches(\"[prefix[\"+this.getRoot()+\"]]\").forEach(function(e){$tw.wiki.clearCache(e)})}},{key:\"_createView\",value:function t(){var i=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{},r=i.isForce,a=i.protoView,n=i.isHidden;if(e.exists(this)){if(!r){return}this.destroy()}if(e.exists(a)){_utils2.default.cp(new e(a).getRoot(),this.configTRef,true)}var l={title:this.configTRef,id:_utils2.default.genUUID()};if(!n){l[$tm.field.viewMarker]=true}$tw.wiki.addTiddler(new $tw.Tiddler(_utils2.default.getTiddler(this.configTRef),l));this.setEdgeTypeFilter(env.filter.defaultEdgeTypeFilter)}}],[{key:\"_getNodeIdFilterPart\",value:function e(t){var i=(typeof t===\"undefined\"?\"undefined\":_typeof(t))===\"object\"?t.id:t;return\"[field:tmap.id[\"+i+\"]]\"}},{key:\"_getRootPath\",value:function t(i){if(i instanceof e){return i.configTRef}if(i instanceof $tw.Tiddler){i=i.fields.title}if(typeof i===\"string\"){var r=_utils2.default.getWithoutPrefix(i,$tm.path.views+\"/\");if(r&&!_utils2.default.hasSubString(r,\"/\")){return $tm.path.views+\"/\"+r}}}},{key:\"exists\",value:function t(i){if(!i){return false}if(i instanceof e){i=i.configTRef}else{i=e._getRootPath(i)}return _utils2.default.tiddlerExists(i)}}]);return e}();exports.default=ViewAbstraction;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/graph/ViewAbstraction.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/Popup": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/Popup",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function Popup(e,t){t=t||{};this._parentDomNode=e;this._domNode=document.createElement(\"div\");this._domNode.style.display=\"none\";this._domNode.className=\"tmap-popup\";this._parentDomNode.appendChild(this._domNode);$tw.utils.addClass(this._domNode,t.className);this._isEnabled=true;this._isPreventShowOrHide=false;this._isHideOnClick=!!t.hideOnClick;this._timeoutShow=null;this._timeoutHide=null;this._isDisplayNoneAfterAnimation=true;var i=parseInt(t.leavingDelay);this._hideDelayLeavingPopup=_utils2.default.isInteger(i)?i:200;i=parseInt(t.hideDelay);this._hideDelay=_utils2.default.isInteger(i)?i:200;i=parseInt(t.showDelay);this._showDelay=_utils2.default.isInteger(i)?i:200;_utils2.default.bindTo(this,[\"_show\",\"_hide\",\"_handleEnter\",\"_handleLeave\",\"_handleAnimationEnd\",\"_handleClick\"]);this._listeners={mouseenter:this._handleEnter,mouseleave:this._handleLeave,click:[this._handleClick,true]};var s=this._handleAnimationEnd;this._listeners[$tw.utils.convertEventName(\"animationEnd\")]=s;this._listeners[$tw.utils.convertEventName(\"transitionEnd\")]=s;_utils2.default.setDomListeners(\"add\",this._domNode,this._listeners,false)}\n/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/Popup\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */Popup.prototype._handleEnter=function(e){this._isPreventShowOrHide=true};Popup.prototype._handleLeave=function(e){this._isPreventShowOrHide=false;this.hide(this._hideDelayLeavingPopup)};Popup.prototype._handleClick=function(e){if(this._isHideOnClick){this._hide(true)}};Popup.prototype._handleAnimationEnd=function(){if(this._isDisplayNoneAfterAnimation){this._domNode.style.display=\"none\"}};Popup.prototype._hide=function(e){if(!e&&this._isPreventShowOrHide)return;this._isDisplayNoneAfterAnimation=true;this._isPreventShowOrHide=false;$tw.utils.removeClass(this._domNode,\"tmap-popup-active\")};Popup.prototype._show=function(e,t){if(this._isPreventShowOrHide||$tm.mouse.ctrlKey||!this._isEnabled){return}this._domNode.style.display=\"none\";$tw.utils.removeClass(this._domNode,\"tmap-popup-active\");this._domNode.removeAttribute(\"style\");_utils2.default.removeDOMChildNodes(this._domNode);var i=this._domNode.appendChild(document.createElement(\"div\"));if(typeof t===\"function\"){t(e,i)}else{i.innerHTML=t}if(!i.childNodes.length)return;var s=this._parentDomNode.getBoundingClientRect();var o=$tm.mouse.clientX;var n=$tm.mouse.clientY;this._domNode.style.display=\"block\";var d=this._domNode.getBoundingClientRect();var l=s.right-(o+d.width);var h=o-d.width-s.left;var a=l>h;var u=s.bottom-(n+d.height);var r=n-d.height-s.top;var p=u>r;var _=a?-15:d.width+15;var m=p?-15:d.height+15;this._domNode.style.left=o-s.left-_+\"px\";this._domNode.style.top=n-s.top-m+\"px\";this._isDisplayNoneAfterAnimation=false;$tw.utils.addClass(this._domNode,\"tmap-popup-active\")};Popup.prototype.show=function(e,t,i){this._clearTimeouts();i=_utils2.default.isInteger(i)?i:this._showDelay;this._timeoutShow=setTimeout(this._show,i,e,t)};Popup.prototype.hide=function(e,t){this._clearTimeouts();e=_utils2.default.isInteger(e)?e:this._hideDelay;if(t||e===0){this._hide(t)}else{this._timeoutHide=setTimeout(this._hide,e,t)}};Popup.prototype.setEnabled=function(e){this._isEnabled=e};Popup.prototype.isShown=function(){return this._domNode.style.display===\"block\"};Popup.prototype._clearTimeouts=function(){clearTimeout(this._timeoutShow);clearTimeout(this._timeoutHide);this._timeoutShow=undefined;this._timeoutHide=undefined};exports.default=Popup;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/lib/Popup.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/lib/SelectionRectangle": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/lib/SelectionRectangle",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _createClass=function(){function t(t,e){for(var i=0;i<e.length;i++){var n=e[i];n.enumerable=n.enumerable||false;n.configurable=true;if(\"value\"in n)n.writable=true;Object.defineProperty(t,n.key,n)}}return function(e,i,n){if(i)t(e.prototype,i);if(n)t(e,n);return e}}();function _classCallCheck(t,e){if(!(t instanceof e)){throw new TypeError(\"Cannot call a class as a function\")}}\n/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/lib/SelectionRectangle\ntype: application/SelectionRectangle\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var SelectionRectangle=function(){function t(e,i){_classCallCheck(this,t);this.x1=e;this.x2=e;this.y1=i;this.y2=i}_createClass(t,[{key:\"span\",value:function t(e,i){this.x2=e;this.y2=i}},{key:\"getWidth\",value:function t(){return this.x2-this.x1}},{key:\"getHeight\",value:function t(){return this.y2-this.y1}},{key:\"getRect\",value:function t(){return[this.x1,this.y1,this.getWidth(),this.getHeight()]}},{key:\"isPointWithin\",value:function t(e){var i=e.x,n=e.y;var a=this.x1,r=this.x2,s=this.y1,u=this.y2;var h=Math.min(a,r);var c=Math.max(a,r);var l=Math.min(s,u);var o=Math.max(s,u);return h<i&&i<c&&l<n&&n<o}}]);return t}();exports.default=SelectionRectangle;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/lib/SelectionRectangle.js.map\n",
"type": "application/SelectionRectangle",
"module-type": "library"
},
"/home/felo/projects/Tiddlywiki/TiddlyWiki5/plugins/felixhayashi/tiddlymap/js/lib/TypeDefs.js": {
"title": "/home/felo/projects/Tiddlywiki/TiddlyWiki5/plugins/felixhayashi/tiddlymap/js/lib/TypeDefs.js",
"text": "\"use strict\";\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/lib/TypeDefs.js.map\n"
},
"$:/plugins/felixhayashi/tiddlymap/js/config/vis": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/config/vis",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});\n/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/config/vis\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var visConfig={locale:\"en_EN\",clickToUse:false,autoResize:false,height:\"100%\",width:\"100%\",configure:{enabled:false},interaction:{dragNodes:true,dragView:true,hideEdgesOnDrag:false,hideNodesOnDrag:false,hover:true,navigationButtons:true,multiselect:true,selectable:true,selectConnectedEdges:true,tooltipDelay:600,zoomView:false,keyboard:{enabled:false,speed:{x:10,y:10,zoom:.02},bindToWindow:false}},manipulation:{initiallyActive:true},nodes:{shape:\"box\",widthConstraint:{maximum:160},heightConstraint:{valign:\"center\"},shadow:{enabled:false},color:{border:\"#2B7CE9\",background:\"#97C2FC\"}},edges:{smooth:{enabled:true},color:{color:\"#848484\",inherit:false},arrows:{to:{enabled:true}}},layout:{hierarchical:{enabled:false,levelSeparation:200,nodeSpacing:170,treeSpacing:230,sortMethod:\"directed\",parentCentralization:true,edgeMinimization:true,blockShifting:true,direction:\"UD\"}},physics:{forceAtlas2Based:{gravitationalConstant:-300,springLength:0,springConstant:.2,centralGravity:.015,damping:.4},hierarchicalRepulsion:{nodeDistance:120,centralGravity:0,springLength:100,springConstant:.01,damping:.09},solver:\"forceAtlas2Based\",stabilization:{enabled:true,iterations:1e3,updateInterval:10,onlyDynamicEdges:false,fit:false}}};exports.default=visConfig;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/lib/VisConfig.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/lib/environment": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/lib/environment",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _extends=Object.assign||function(e){for(var i=1;i<arguments.length;i++){var a=arguments[i];for(var l in a){if(Object.prototype.hasOwnProperty.call(a,l)){e[l]=a[l]}}}return e};\n/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/lib/environment\ntype: application/javascript\n module-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var path=exports.path={pluginRoot:\"$:/plugins/felixhayashi/tiddlymap\",edgeTypes:\"$:/plugins/felixhayashi/tiddlymap/graph/edgeTypes\",nodeTypes:\"$:/plugins/felixhayashi/tiddlymap/graph/nodeTypes\",views:\"$:/plugins/felixhayashi/tiddlymap/graph/views\",options:\"$:/plugins/felixhayashi/tiddlymap/config\",dialogs:\"$:/plugins/felixhayashi/tiddlymap/dialog\",footers:\"$:/plugins/felixhayashi/tiddlymap/dialogFooter\",tempRoot:\"$:/temp/tmap\",tempStates:\"$:/temp/tmap/state\",tempPopups:\"$:/temp/tmap/state/popup\",localHolders:\"$:/temp/tmap/holders\"};var ref=exports.ref={defaultViewHolder:\"$:/plugins/felixhayashi/tiddlymap/misc/defaultViewHolder\",graphBar:\"$:/plugins/felixhayashi/tiddlymap/misc/advancedEditorBar\",sysUserConf:\"$:/plugins/felixhayashi/tiddlymap/config/sys/user\",visUserConf:\"$:/plugins/felixhayashi/tiddlymap/config/vis/user\",welcomeFlag:\"$:/plugins/felixhayashi/tiddlymap/flag/welcome\",focusButton:\"$:/plugins/felixhayashi/tiddlymap/misc/focusButton\",sysMeta:\"$:/plugins/felixhayashi/tiddlymap/misc/meta\",liveTab:\"$:/plugins/felixhayashi/tiddlymap/hook/liveTab\",mainEditor:\"$:/plugins/felixhayashi/tiddlymap/hook/editor\",sidebarBreakpoint:\"$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint\"};var misc=exports.misc={unknownEdgeLabel:\"tmap:undefined\",liveViewLabel:\"Live View\",defaultViewLabel:\"Default\",mainEditorId:\"main_editor\",arrows:{in:\"⇦\",out:\"➡\",bi:\"⇄\"}};var config=exports.config={sys:{field:{nodeLabel:\"caption\",nodeIcon:\"icon\",nodeInfo:\"description\",viewMarker:\"isview\"},liveTab:{fallbackView:misc.liveViewLabel},suppressedDialogs:{},edgeClickBehaviour:\"manager\",debug:\"false\",notifications:\"true\",popups:{enabled:\"true\",delay:\"600\",width:\"240px\",height:\"140px\"},jsonIndentation:\"1\",alwaysAddNodeIdToViewFilter:\"true\",editNodeOnCreate:\"false\",singleClickMode:\"false\",nodeFilterNeighbours:\"false\",editorMenuBar:{showNeighScopeButton:\"true\",showRasterMenuButton:\"true\",showScreenshotButton:\"true\"}}};var filter=exports.filter={nodeTypes:\"[prefix[\"+path.nodeTypes+\"]]\",edgeTypes:\"[prefix[\"+path.edgeTypes+\"]]\",views:\"[\"+config.sys.field.viewMarker+\"[true]]\",defaultEdgeTypeFilter:\"-[prefix[_]] -[[tw-body:link]] -[[tw-list:tags]] -[[tw-list:list]]\"};var allSelector=\"[all[tiddlers+shadows]!has[draft.of]]\";var s={allEdgeTypes:allSelector+\" +\"+filter.edgeTypes,allNodeTypes:allSelector+\" +\"+filter.nodeTypes,allViews:allSelector+\" +\"+filter.views,allPotentialNodes:\"[all[tiddlers]!is[system]!has[draft.of]]\"};var selector=exports.selector=_extends({},s,{allEdgeTypesById:s.allEdgeTypes+\" +[removeprefix[\"+path.edgeTypes+\"/]]\",allNodeTypesById:s.allNodeTypes+\" +[removeprefix[\"+path.nodeTypes+\"/]]\",allViewsByLabel:s.allViews+\" +[removeprefix[\"+path.views+\"/]]\"});\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/lib/environment.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/exception": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/exception",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _createClass=function(){function r(r,t){for(var e=0;e<t.length;e++){var o=t[e];o.enumerable=o.enumerable||false;o.configurable=true;if(\"value\"in o)o.writable=true;Object.defineProperty(r,o.key,o)}}return function(t,e,o){if(e)r(t.prototype,e);if(o)r(t,o);return t}}();function _classCallCheck(r,t){if(!(r instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}function _possibleConstructorReturn(r,t){if(!r){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")}return t&&(typeof t===\"object\"||typeof t===\"function\")?t:r}function _inherits(r,t){if(typeof t!==\"function\"&&t!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t)}r.prototype=Object.create(t&&t.prototype,{constructor:{value:r,enumerable:false,writable:true,configurable:true}});if(t)Object.setPrototypeOf?Object.setPrototypeOf(r,t):r.__proto__=t}\n/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/exception\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var TiddlyMapError=function(r){_inherits(t,r);function t(r,e){_classCallCheck(this,t);var o=_possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,r));o.payload=e;return o}_createClass(t,[{key:\"getPayload\",value:function r(){return this.payload}}]);return t}(Error);var EnvironmentError=exports.EnvironmentError=function(r){_inherits(t,r);function t(r){_classCallCheck(this,t);return _possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,\"Critical parts of the underlying system changed: \"+r))}return t}(TiddlyMapError);var DependencyError=exports.DependencyError=function(r){_inherits(t,r);function t(r){_classCallCheck(this,t);return _possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,\"TiddlyMap cannot run without: : \"+r))}return t}(TiddlyMapError);var MissingOverrideError=exports.MissingOverrideError=function(r){_inherits(t,r);function t(r,e){_classCallCheck(this,t);return _possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,r.constructor.name+' does not override method \"'+e+'\"'))}return t}(TiddlyMapError);var ResourceNotFoundException=exports.ResourceNotFoundException=function(r){_inherits(t,r);function t(r){_classCallCheck(this,t);for(var e=arguments.length,o=Array(e>1?e-1:0),n=1;n<e;n++){o[n-1]=arguments[n]}return _possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,\"Cannot resolve \"+r,o))}return t}(TiddlyMapError);var InvalidArgumentException=exports.InvalidArgumentException=function(r){_inherits(t,r);function t(){_classCallCheck(this,t);for(var r=arguments.length,e=Array(r),o=0;o<r;o++){e[o]=arguments[o]}return _possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,\"Invalid or missing argument provided\",e))}return t}(TiddlyMapError);\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/lib/exceptions.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/URL": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/URL",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});\n/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/URL\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */\n/**\n * <<<\n * Lightweight URL manipulation with JavaScript. This library is\n * independent of any other libraries and has pretty simple interface\n * and lightweight code-base. Some ideas of query string parsing\n * had been taken from Jan Wolter.\"\n *\n * @see http://unixpapa.com/js/querystring.html\n * @license MIT\n * @author Mykhailo Stadnyk <mikhus@gmail.com>\n * <<< https://github.com/Mikhus/jsurl\n *\n * @class\n * @param {string} url\n */function Url(t){this.paths=function(t){var e=\"\",r=0,o;if(t&&t.length&&t+\"\"!==t){if(this.isAbsolute()){e=\"/\"}for(o=t.length;r<o;r++){t[r]=encode(t[r])}this.path=e+t.join(\"/\")}t=(this.path.charAt(0)===\"/\"?this.path.slice(1):this.path).split(\"/\");for(r=0,o=t.length;r<o;r++){t[r]=decode(t[r])}return t};this.encode=encode;this.decode=decode;this.isAbsolute=function(){return this.protocol||this.path.charAt(0)===\"/\"};this.toString=function(){return(this.protocol&&this.protocol+\"://\")+(this.user&&encode(this.user)+(this.pass&&\":\"+encode(this.pass))+\"@\")+(this.host&&this.host)+(this.port&&\":\"+this.port)+(this.path&&this.path)+(this.query.toString()&&\"?\"+this.query)+(this.hash&&\"#\"+encode(this.hash))};parse(this,t)}var map={protocol:\"protocol\",host:\"hostname\",port:\"port\",path:\"pathname\",query:\"search\",hash:\"hash\"},defaultPorts={ftp:21,gopher:70,http:80,https:443,ws:80,wss:443},parse=function t(e,r){var o=document,s=o.createElement(\"a\"),r=r||o.location.href,i=r.match(/\\/\\/(.*?)(?::(.*?))?@/)||[],n;s.href=r;for(n in map){e[n]=s[map[n]]||\"\"}e.protocol=e.protocol.replace(/:$/,\"\");e.query=e.query.replace(/^\\?/,\"\");e.hash=decode(e.hash.replace(/^#/,\"\"));e.user=decode(i[1]||\"\");e.pass=decode(i[2]||\"\");e.port=defaultPorts[e.protocol]==e.port||e.port==0?\"\":e.port;if(!e.protocol&&!/^([a-z]+:)?\\/\\//.test(r)){var h=new Url(o.location.href.match(/(.*\\/)/)[0]),a=h.path.split(\"/\"),p=e.path.split(\"/\"),c=[\"protocol\",\"user\",\"pass\",\"host\",\"port\"],f=c.length;a.pop();for(n=0;n<f;n++){e[c[n]]=h[c[n]]}while(p[0]==\"..\"){a.pop();p.shift()}e.path=(r.charAt(0)!=\"/\"?a.join(\"/\"):\"\")+\"/\"+p.join(\"/\")}else{e.path=e.path.replace(/^\\/?/,\"/\")}e.paths((e.path.charAt(0)==\"/\"?e.path.slice(1):e.path).split(\"/\"));parseQs(e)},encode=function t(e){return encodeURIComponent(e).replace(/'/g,\"%27\")},decode=function t(e){e=e.replace(/\\+/g,\" \");e=e.replace(/%([ef][0-9a-f])%([89ab][0-9a-f])%([89ab][0-9a-f])/gi,function(t,e,r,o){var s=parseInt(e,16)-224,i=parseInt(r,16)-128;if(s==0&&i<32){return t}var n=parseInt(o,16)-128,h=(s<<12)+(i<<6)+n;if(h>65535){return t}return String.fromCharCode(h)});e=e.replace(/%([cd][0-9a-f])%([89ab][0-9a-f])/gi,function(t,e,r){var o=parseInt(e,16)-192;if(o<2){return t}var s=parseInt(r,16)-128;return String.fromCharCode((o<<6)+s)});e=e.replace(/%([0-7][0-9a-f])/gi,function(t,e){return String.fromCharCode(parseInt(e,16))});return e},parseQs=function t(e){var r=e.query;e.query=new function(t){var e=/([^=&]+)(=([^&]*))?/g,r;while(r=e.exec(t)){var o=decodeURIComponent(r[1].replace(/\\+/g,\" \")),s=r[3]?decode(r[3]):\"\";if(this[o]!=null){if(!(this[o]instanceof Array)){this[o]=[this[o]]}this[o].push(s)}else{this[o]=s}}this.clear=function(){for(var t in this){if(!(this[t]instanceof Function)){delete this[t]}}};this.count=function(){var t=0,e;for(e in this){if(!(this[e]instanceof Function)){t++}}return t};this.isEmpty=function(){return this.count()===0};this.toString=function(){var t=\"\",e=encode,r,o;for(r in this){if(this[r]instanceof Function){continue}if(this[r]instanceof Array){var s=this[r].length;if(s){for(o=0;o<s;o++){t+=t?\"&\":\"\";t+=e(r)+\"=\"+e(this[r][o])}}else{t+=(t?\"&\":\"\")+e(r)+\"=\"}}else{t+=t?\"&\":\"\";t+=e(r)+\"=\"+e(this[r])}}return t}}(r)};exports.default=Url;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/lib/url.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/lib/utils/basic": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/lib/utils/basic",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.bindTo=exports.getNearestRasterPosition=exports.mod=exports.removeDOMChildNodes=exports.setDomListeners=exports.merge=exports.getRandomLabel=exports.getFirstElementByClassName=exports.pickRandom=exports.hasKeyWithPrefix=exports.getWithoutPrefix=exports.getPropertiesByPrefix=exports.removeArrayElement=exports.isTrue=exports.replaceAll=exports.isInteger=exports.findAndRemoveClassNames=exports.getAncestorWithClass=exports.makeHashMap=exports.getWithoutNewLines=exports.joinAndWrap=exports.parseJSON=exports.hasSubString=exports.inArray=exports.getRandomInt=exports.isEqual=exports.identity=exports.base64=exports.startsWith=exports.getBasename=exports.escapeRegex=exports.hasElements=exports.ucFirst=undefined;var _typeof=typeof Symbol===\"function\"&&typeof Symbol.iterator===\"symbol\"?function(e){return typeof e}:function(e){return e&&typeof Symbol===\"function\"&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e};/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/lib/utils/basic\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var _exception=require(\"$:/plugins/felixhayashi/tiddlymap/js/exception\");var ucFirst=exports.ucFirst=function e(t){return t&&t[0].toUpperCase()+t.slice(1)};var hasElements=exports.hasElements=function e(t){return Object.keys(t).length>0};var escapeRegex=exports.escapeRegex=function e(t){return t.replace(/[-$^?.+*[\\]\\\\(){}|]/g,\"\\\\$&\")};var getBasename=exports.getBasename=function e(t){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:\"/\";return t.substring(t.lastIndexOf(r)+1)};var startsWith=exports.startsWith=function e(t,r){return t.substring(0,r.length)===r};var base64=exports.base64=typeof window===\"undefined\"?function(e){return new Buffer(e).toString(\"base64\")}:window.btoa.bind(window);var identity=exports.identity=function e(t){return(typeof t===\"undefined\"?\"undefined\":_typeof(t))===\"object\"&&t!==null?JSON.stringify(Object.keys(t).sort().map(function(e){return[e,t[e]]})):null};var isEqual=exports.isEqual=function e(t,r){return identity(t)===identity(r)};var getRandomInt=exports.getRandomInt=function e(t,r){return Math.floor(Math.random()*(r-t)+t)};var inArray=exports.inArray=function e(t,r){return r.indexOf(t)!==-1};var hasSubString=exports.hasSubString=function e(t,r){return t.indexOf(r)!==-1};var parseJSON=exports.parseJSON=function e(t,r){try{return JSON.parse(t)}catch(e){return r}};var joinAndWrap=exports.joinAndWrap=function e(t,r,n){var o=arguments.length>3&&arguments[3]!==undefined?arguments[3]:\" \";return r+t.join(n+o+r)+n};var getWithoutNewLines=exports.getWithoutNewLines=function e(t){return typeof t===\"string\"?t.replace(/[\\n\\r]/g,\" \"):t};var makeHashMap=exports.makeHashMap=function e(t){var r=Object.create(null);Object.defineProperty(r,\"hasOwnProperty\",{enumerable:false,configurable:false,writable:false,value:Object.prototype.hasOwnProperty.bind(r)});if(t){for(var n in t){if(t.hasOwnProperty(n)){r[n]=t[n]}}}return r};var getAncestorWithClass=exports.getAncestorWithClass=function e(t,r){if((typeof t===\"undefined\"?\"undefined\":_typeof(t))!==\"object\"||typeof r!==\"string\"){return}while(t.parentNode&&t.parentNode!==document){t=t.parentNode;if(t.classList.contains(r)){return t}}};var findAndRemoveClassNames=exports.findAndRemoveClassNames=function e(t){for(var r=t.length;r--;){var n=document.getElementsByClassName(t[r]);for(var o=n.length;o--;){n[o].classList.remove(t[r])}}};var isInteger=exports.isInteger=Number.isInteger||function(e){return typeof e===\"number\"&&isFinite(e)&&Math.floor(e)===e};var replaceAll=exports.replaceAll=function e(t){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:\"\";var n=arguments[2];for(var o=n.length;o--;){var s=n[o];var i=r;if(Array.isArray(s)){i=s[1];s=s[0]}t=t.replace(s,i)}return t};var isTrue=exports.isTrue=function e(t,r){if(t==null){return!!r}else if(typeof t===\"string\"){var n=parseInt(t);return isNaN(n)?t===\"true\":n!==0}else if(typeof t===\"boolean\"){return t}else if(typeof t===\"number\"){return n!==0}return false};var removeArrayElement=exports.removeArrayElement=function e(t,r){var n=t.indexOf(r);if(n>-1){return t.splice(n,1)[0]}};var getPropertiesByPrefix=exports.getPropertiesByPrefix=function e(t,r,n){var o=makeHashMap();for(var s in t){if(startsWith(s,r)){o[n?s.substr(r.length):s]=t[s]}}return o};var getWithoutPrefix=exports.getWithoutPrefix=function e(t,r){return startsWith(t,r)?t.substr(r.length):t};var hasKeyWithPrefix=exports.hasKeyWithPrefix=function e(t,r){for(var n in t){if(startsWith(n,r)){return true}}return false};var pickRandom=exports.pickRandom=function e(t){return t[getRandomInt(0,t.length-1)]};var getFirstElementByClassName=exports.getFirstElementByClassName=function e(t,r,n){var o=(r||document).getElementsByClassName(t)[0];if(!o&&(typeof n===\"boolean\"?n:true)){var s='Missing element with class \"'+t+'\" inside '+r;throw new _exception.EnvironmentError(s)}return o};var getRandomLabel=exports.getRandomLabel=function e(){var t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var r=pickRandom([\"exciting\",\"notable\",\"epic\",\"new\",\"fancy\",\"great\",\"cool\",\"fresh\",\"funky\",\"clever\"]);var n=(t.object||pickRandom([\"concept\",\"idea\",\"thought\",\"topic\",\"subject\"]))+(t.plural?\"s\":\"\");return\"My \"+r+\" \"+n};var _merge=function e(t,r){if((typeof t===\"undefined\"?\"undefined\":_typeof(t))!==\"object\"){t={}}for(var n in r){if(r.hasOwnProperty(n)){if(r[n]!=null){t[n]=_typeof(r[n])===\"object\"?e(t[n],r[n]):r[n]}}}return t};var merge=exports.merge=function e(t){for(var r=arguments.length,n=Array(r>1?r-1:0),o=1;o<r;o++){n[o-1]=arguments[o]}for(var s=0,i=n.length;s<i;s++){var a=n[s];if(a!=null&&(typeof a===\"undefined\"?\"undefined\":_typeof(a))===\"object\"){t=_merge(t,a)}}return t};var setDomListeners=exports.setDomListeners=function e(t,r,n,o){o=typeof o===\"boolean\"?o:false;t=t+\"EventListener\";for(var s in n){var i=n[s];if(typeof i===\"function\"){r[t](s,i,o)}else{r[t](s,i[0],typeof i[1]===\"boolean\"?i[1]:o)}}};var removeDOMChildNodes=exports.removeDOMChildNodes=function e(t){for(var r=t.childNodes.length;r--;){t.removeChild(t.childNodes[r])}};var mod=exports.mod=function e(t,r){var n=t%r;return Math.floor(n>=0?n:n+r)};var getNearestRasterPosition=exports.getNearestRasterPosition=function e(t,r){var n=t.x,o=t.y;var s=r/2;var i=mod(n,r);var a=mod(o,r);return{x:i<s?n-i:n-i+r,y:a<s?o-a:o-a+r}};var bindTo=exports.bindTo=function e(t,r){for(var n=r.length;n--;){var o=t[r[n]];t[r[n]]=o.bind(t)}};\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/lib/utils/basic.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/lib/utils/thirdParty": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/lib/utils/thirdParty",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});\n/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/lib/utils/thirdParty\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var generateDraftTitle=exports.generateDraftTitle=function e(n){var r=0,t=void 0;do{t=\"Draft \"+(r?r+1+\" \":\"\")+\"of '\"+n+\"'\";r++}while($tw.wiki.tiddlerExists(t));return t};var makeDraftTiddler=exports.makeDraftTiddler=function e(n){var r=$tw.wiki.findDraft(n);if(r){return $tw.wiki.getTiddler(r)}var t=$tw.wiki.getTiddler(n);r=generateDraftTitle(n);var l=new $tw.Tiddler(t,{title:r,\"draft.title\":n,\"draft.of\":n},$tw.wiki.getModificationFields());$tw.wiki.addTiddler(l);return l};var getFullScreenApis=exports.getFullScreenApis=function e(){var n=document,r=n.body,t={_requestFullscreen:r.webkitRequestFullscreen!==undefined?\"webkitRequestFullscreen\":r.mozRequestFullScreen!==undefined?\"mozRequestFullScreen\":r.msRequestFullscreen!==undefined?\"msRequestFullscreen\":r.requestFullscreen!==undefined?\"requestFullscreen\":\"\",_exitFullscreen:n.webkitExitFullscreen!==undefined?\"webkitExitFullscreen\":n.mozCancelFullScreen!==undefined?\"mozCancelFullScreen\":n.msExitFullscreen!==undefined?\"msExitFullscreen\":n.exitFullscreen!==undefined?\"exitFullscreen\":\"\",_fullscreenElement:n.webkitFullscreenElement!==undefined?\"webkitFullscreenElement\":n.mozFullScreenElement!==undefined?\"mozFullScreenElement\":n.msFullscreenElement!==undefined?\"msFullscreenElement\":n.fullscreenElement!==undefined?\"fullscreenElement\":\"\",_fullscreenChange:n.webkitFullscreenElement!==undefined?\"webkitfullscreenchange\":n.mozFullScreenElement!==undefined?\"mozfullscreenchange\":n.msFullscreenElement!==undefined?\"MSFullscreenChange\":n.fullscreenElement!==undefined?\"fullscreenchange\":\"\"};if(!t._requestFullscreen||!t._exitFullscreen||!t._fullscreenElement){return null}else{return t}};var flatten=exports.flatten=function e(n){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var t=r.delimiter||\".\";var l=r.prefix||\"\";var i={};function u(e,n){Object.keys(e).forEach(function(f){var s=e[f];var c=r.safe&&Array.isArray(s);var a=Object.prototype.toString.call(s);var d=a===\"[object Object]\"||a===\"[object Array]\";var o=n?n+t+f:l+f;if(!c&&d){return u(s,o)}i[o]=s})}u(n);return i};var unflatten=exports.unflatten=function e(n){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var t=r.delimiter||\".\";var l={};if(Object.prototype.toString.call(n)!==\"[object Object]\"){return n}function i(e){var n=Number(e);return isNaN(n)||e.indexOf(\".\")!==-1?e:n}Object.keys(n).forEach(function(u){var f=u.split(t);var s=i(f.shift());var c=i(f[0]);var a=l;while(c!==undefined){if(a[s]===undefined){a[s]=typeof c===\"number\"&&!r.object?[]:{}}a=a[s];if(f.length>0){s=i(f.shift());c=i(f[0])}}a[s]=e(n[u],r)});return l};var genUUID=exports.genUUID=function(){var e=\"0123456789abcdefghijklmnopqrstuvwxyz\".split(\"\");return function(){var n=e,r=new Array(36);var t=0,l;for(var i=0;i<36;i++){if(i==8||i==13||i==18||i==23){r[i]=\"-\"}else if(i==14){r[i]=\"4\"}else{if(t<=2)t=33554432+Math.random()*16777216|0;l=t&15;t=t>>4;r[i]=n[i==19?l&3|8:l]}}return r.join(\"\")}}();\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/lib/utils/thirdParty.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/lib/utils/tmap": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/lib/utils/tmap",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.getArrayValuesAsHashmapKeys=exports.getLookupTable=exports.keyOfItemWithProperty=exports.keysOfItemsWithProperty=exports.getDublicates=exports.getId=exports.refreshDataSet=exports.drawRaster=exports.getPrettyFilter=exports.groupByProperty=exports.isEdgeTypeMatch=exports.getEdgeTypeMatches=exports.getDataUri=exports.convert=exports.getValues=exports.getIterableCollection=exports.getLabel=undefined;var _typeof=typeof Symbol===\"function\"&&typeof Symbol.iterator===\"symbol\"?function(e){return typeof e}:function(e){return e&&typeof Symbol===\"function\"&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e};/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/lib/utils/tmap\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var _vis=require(\"$:/plugins/felixhayashi/vis/vis.js\");var _vis2=_interopRequireDefault(_vis);var _exception=require(\"$:/plugins/felixhayashi/tiddlymap/js/exception\");var _basic=require(\"$:/plugins/felixhayashi/tiddlymap/js/lib/utils/basic\");var basicUtils=_interopRequireWildcard(_basic);var _wiki=require(\"$:/plugins/felixhayashi/tiddlymap/js/lib/utils/wiki\");var wikiUtils=_interopRequireWildcard(_wiki);function _interopRequireWildcard(e){if(e&&e.__esModule){return e}else{var t={};if(e!=null){for(var r in e){if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]}}t.default=e;return t}}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var getLabel=exports.getLabel=function e(t,r){var i=wikiUtils.getTiddler(t);return(i&&i.fields[r]?i.fields[r]:i.fields.title).replace(\"\\\\n\",\"\\n\")};var getIterableCollection=exports.getIterableCollection=function e(t){return t instanceof _vis2.default.DataSet?t.get():t};var getValues=exports.getValues=function e(t){if(Array.isArray(t)){return t}else if(t instanceof _vis2.default.DataSet){return t.get({returnType:\"Array\"})}var r=[];var i=Object.keys(t);for(var a=i.length;a--;){r.push(t[i[a]])}return r};var convert=exports.convert=function e(t,r){if((typeof t===\"undefined\"?\"undefined\":_typeof(t))!==\"object\"){throw new _exception.InvalidArgumentException(t,r)}if(r===\"object\"){r=\"hashmap\"}var i={array:function e(t){return getValues(t)},hashmap:function e(t){return t instanceof _vis2.default.DataSet?t.get({returnType:\"Object\"}):t},dataset:function e(t){return t instanceof _vis2.default.DataSet?t:!Array.isArray(t)?getValues(t):new _vis2.default.DataSet(t)}};return i[r](t)};var getDataUri=exports.getDataUri=function e(t,r,i){var a=wikiUtils.getTiddler(t);r=r||a.fields.type||\"image/svg+xml\";var s=a.fields.text;var o=$tw.config.contentTypeInfo[r].encoding;if(r===\"image/svg+xml\"){s=s.replace(/\\r?\\n|\\r/g,\" \");if(!basicUtils.hasSubString(\"xmlns\",s)){s=s.replace(/<svg/,'<svg xmlns=\"http://www.w3.org/2000/svg\"')}}if(i&&o!==\"base64\"){o=\"base64\";s=basicUtils.base64(s)}return\"data:\"+r+\";\"+o+\",\"+s};var eTyFiltAutoPrefix=\"[all[]] \";var getEdgeTypeMatches=exports.getEdgeTypeMatches=function e(){var t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:\"\";var r=arguments[1];if(!r){r=wikiUtils.getTiddlersByPrefix($tm.path.edgeTypes+\"/\",{iterator:\"eachTiddlerPlusShadows\",removePrefix:true})}if(r!=null&&!Array.isArray(r)){r=Object.keys(r)}return wikiUtils.getMatches(eTyFiltAutoPrefix+t,r)};var isEdgeTypeMatch=exports.isEdgeTypeMatch=function e(t){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:\"\";return wikiUtils.isMatch(t,eTyFiltAutoPrefix+r)};var groupByProperty=exports.groupByProperty=function e(t,r){t=getIterableCollection(t);var i=basicUtils.makeHashMap();var a=Object.keys(t);for(var s in a){var o=t[a[s]];var n=o[r];if(n==null){throw\"Cannot group by property \"+r}else{if(!Array.isArray(i[n])){i[n]=[]}i[n].push(o)}}return i};var getPrettyFilter=exports.getPrettyFilter=function e(t){t=t.trim().replace(\"][\",\"] [\");var r=/[+-]?\\[.+?[\\]\\}\\>]\\]/g;var i=t.match(r);t=t.replace(r,\" [] \").trim();var a=t.split(/\\s+/);var s=0;var o=[];for(var n=0,l=a.length;n<l;n++){o[n]=a[n]===\"[]\"?i[s++]:a[n]}return o.join(\"\\n\")};var drawRaster=exports.drawRaster=function e(t,r,i,a){var s=arguments.length>4&&arguments[4]!==undefined?arguments[4]:\"#D9D9D9\";var o=basicUtils.getNearestRasterPosition(i,a),n=o.x,l=o.y;var u=t.canvas.width/r;var p=t.canvas.height/r;var f=a*2;var v=Math.ceil(u/a/2)*a+f;var c=Math.ceil(p/a/2)*a+f;var y=n-v;var d=n+v;var g=l-c;var h=l+c;t.beginPath();for(var b=y;b<d;b+=a){t.moveTo(b,g);t.lineTo(b,h)}for(var x=g;x<=h;x+=a){t.moveTo(y,x);t.lineTo(d,x)}t.strokeStyle=s;t.fillStyle=s;t.stroke()};var refreshDataSet=exports.refreshDataSet=function e(t,r){var i=t.get({returnType:\"Object\"});var a=[];var s=[];var o=[];var n=[];for(var l in r){if(i[l]){if(basicUtils.isEqual(i[l],r[l])){continue}s.push(l);t.remove(l)}else{a.push(l)}if(r[l].x===undefined){o.push(l)}t.add(r[l])}for(var u in i){if(!r[u]){n.push(u);t.remove(u)}}return{withoutPosition:o,inserted:a,updated:s,removed:n}};var getId=exports.getId=function e(t){return wikiUtils.getTiddler(t).fields[\"tmap.id\"]};var getDublicates=exports.getDublicates=function e(t){var r=getId(t);if(!r){return[]}var i=wikiUtils.getTiddlersWithField(\"tmap.id\",r,{limit:2});delete i[wikiUtils.getTiddlerRef(t)];return Object.keys(i)};var keysOfItemsWithProperty=exports.keysOfItemsWithProperty=function e(t,r,i,a){t=getIterableCollection(t);var s=Object.keys(t);var o=[];a=typeof a===\"number\"?a:s.length;for(var n=0,l=s.length;n<l;n++){var u=s[n];if(_typeof(t[u])===\"object\"&&t[u][r]){if(!i||t[u][r]===i){o.push(u);if(o.length===a){break}}}}return o};var keyOfItemWithProperty=exports.keyOfItemWithProperty=function e(t,r,i){return keysOfItemsWithProperty(t,r,i,1)[0]};var getLookupTable=exports.getLookupTable=function e(t,r){t=getIterableCollection(t);var i=basicUtils.makeHashMap();var a=Object.keys(t);for(var s=0,o=a.length;s<o;s++){var n=a[s];var l=r?t[n][r]:t[n];var u=typeof l===\"undefined\"?\"undefined\":_typeof(l);if(u===\"string\"&&l!==\"\"||u===\"number\"){if(!i[l]){i[l]=r?t[n]:true;continue}}if(r){throw new Error('Cannot use \"'+l+'\" as lookup table index')}}return i};var getArrayValuesAsHashmapKeys=exports.getArrayValuesAsHashmapKeys=getLookupTable;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/lib/utils/tmap.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/utils": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/utils",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.utils=undefined;var _extends=Object.assign||function(i){for(var r=1;r<arguments.length;r++){var t=arguments[r];for(var e in t){if(Object.prototype.hasOwnProperty.call(t,e)){i[e]=t[e]}}}return i};/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/utils\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var _basic=require(\"$:/plugins/felixhayashi/tiddlymap/js/lib/utils/basic\");var basicUtils=_interopRequireWildcard(_basic);var _thirdParty=require(\"$:/plugins/felixhayashi/tiddlymap/js/lib/utils/thirdParty\");var thirdPartyUtils=_interopRequireWildcard(_thirdParty);var _wiki=require(\"$:/plugins/felixhayashi/tiddlymap/js/lib/utils/wiki\");var wikiUtils=_interopRequireWildcard(_wiki);var _tmap=require(\"$:/plugins/felixhayashi/tiddlymap/js/lib/utils/tmap\");var tMapUtils=_interopRequireWildcard(_tmap);function _interopRequireWildcard(i){if(i&&i.__esModule){return i}else{var r={};if(i!=null){for(var t in i){if(Object.prototype.hasOwnProperty.call(i,t))r[t]=i[t]}}r.default=i;return r}}var utils=exports.utils=_extends({},basicUtils,thirdPartyUtils,wikiUtils,tMapUtils);exports.default=utils;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/lib/utils/utils.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/lib/utils/wiki": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/lib/utils/wiki",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.touch=exports.addTiddler=exports.getTiddlersByPrefix=exports.getTiddlerWithField=exports.getTiddlersWithField=exports.deleteByPrefix=exports.cp=exports.mv=exports.addTWlisteners=exports.getChildWidgetByProperty=exports.getMergedTiddlers=exports.isSystemOrDraft=exports.isDraft=exports.setText=exports.getText=exports.isLeftVersionGreater=exports.getEntry=exports.setEntry=exports.clone=exports.writeFieldData=exports.parseFieldData=exports.isPreviewed=exports.notify=exports.registerTransclude=exports.getElementNode=exports.getTiddlerNode=exports.getTranscludeNode=exports.isMatch=exports.getMatches=exports.moveFieldValues=exports.deleteTiddlers=exports.setField=exports.setSidebarTab=exports.tiddlerExists=exports.getField=exports.getTiddler=exports.getTiddlerRef=undefined;var _typeof=typeof Symbol===\"function\"&&typeof Symbol.iterator===\"symbol\"?function(e){return typeof e}:function(e){return e&&typeof Symbol===\"function\"&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e};var _exception=require(\"$:/plugins/felixhayashi/tiddlymap/js/exception\");var _basic=require(\"$:/plugins/felixhayashi/tiddlymap/js/lib/utils/basic\");var basicUtils=_interopRequireWildcard(_basic);function _interopRequireWildcard(e){if(e&&e.__esModule){return e}else{var t={};if(e!=null){for(var r in e){if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]}}t.default=e;return t}}function _defineProperty(e,t,r){if(t in e){Object.defineProperty(e,t,{value:r,enumerable:true,configurable:true,writable:true})}else{e[t]=r}return e}/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/lib/utils/wiki\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var getTiddlerRef=exports.getTiddlerRef=function e(t){if(t instanceof $tw.Tiddler){return t.fields.title}else if(typeof t===\"string\"){return t}else{throw new _exception.InvalidArgumentException(t)}};var getTiddler=exports.getTiddler=function e(t){return $tw.wiki.getTiddler(t instanceof $tw.Tiddler?t.fields.title:t)};var getField=exports.getField=function e(t,r){var i=arguments.length>2&&arguments[2]!==undefined?arguments[2]:\"\";var d=getTiddler(t);return!d?i:d.fields[r]||i};var tiddlerExists=exports.tiddlerExists=function e(t){if(!t){return false}var r=getTiddlerRef(t);return Boolean(r&&($tw.wiki.tiddlerExists(r)||$tw.wiki.isShadowTiddler(r)))};var setSidebarTab=exports.setSidebarTab=function e(t){setText(getTiddlersByPrefix(\"$:/state/tab/sidebar-\")[0],t)};var setField=exports.setField=function e(t,r,i){if(!t||!r){return}var d=getTiddlerRef(t);var s=_defineProperty({title:d},r,i);var n=$tw.wiki.getTiddler(d,true);if(r!==\"text\"&&n&&!n.fields.text){s.text=\"\"}n=new $tw.Tiddler(n,s);$tw.wiki.addTiddler(n);return n};var deleteTiddlers=exports.deleteTiddlers=function e(t){var r=Object.keys(t);var i=$tw.wiki.getTiddlerList(\"$:/StoryList\");for(var d=r.length;d--;){var s=getTiddlerRef(t[r[d]]);if(!$tw.wiki.tiddlerExists(t[r[d]])){continue}var n=i.indexOf(s);if(n!==-1){i.splice(n,1);setField(\"$:/StoryList\",\"list\",i)}$tw.wiki.deleteTiddler(s)}};var moveFieldValues=exports.moveFieldValues=function e(t,r,i,d,s){if(t===r)return;var n=s||$tw.wiki.allTitles();for(var l=n.length;l--;){var a=getTiddler(n[l]);if(a.isDraft()||!a.fields[t]){continue}if(!d&&$tw.wiki.isSystemTiddler(n[l])){continue}var o=_defineProperty({},r,a.fields[t]);if(i){o[t]=undefined}$tw.wiki.addTiddler(new $tw.Tiddler(a,o))}};var getMatches=exports.getMatches=function e(t,r,i){var d=undefined;var s=$tw.wiki;if(typeof t===\"string\"){t=s.compileFilter(t)}if(r!=null&&(typeof r===\"undefined\"?\"undefined\":_typeof(r))===\"object\"){if(!Array.isArray(r)){r=Object.keys(r)}d=function e(t){for(var i=r.length;i--;){var d=s.getTiddler(r[i]);t(d,r[i])}}}return t.call(s,d,i)};var isMatch=exports.isMatch=function e(t,r){return getTiddlerRef(t)===getMatches(r,[getTiddlerRef(t)])[0]};var getTranscludeNode=exports.getTranscludeNode=function e(t,r){return{type:\"transclude\",attributes:{tiddler:{type:\"string\",value:getTiddlerRef(t)}},children:[],isBlock:!!r}};var getTiddlerNode=exports.getTiddlerNode=function e(t){return{type:\"tiddler\",attributes:{tiddler:{type:\"string\",value:getTiddlerRef(t)}},children:[]}};var getElementNode=exports.getElementNode=function e(t,r,i){return{type:\"element\",tag:t,attributes:{class:{type:\"string\",value:r}},children:i?[{type:\"text\",text:i}]:[]}};var registerTransclude=exports.registerTransclude=function e(t,r,i){basicUtils.removeArrayElement(t.children,t[r]);t[r]=t.makeChildWidget(getTranscludeNode(i,true));t.children.push(t[r]);return t[r]};var notify=exports.notify=function e(t){var r=\"$:/temp/tiddlymap/notify\";$tw.wiki.addTiddler(new $tw.Tiddler({title:r,text:t}));$tw.notifier.display(r)};var isPreviewed=exports.isPreviewed=function e(t){if(!t){return false}if(t.domNode.isTiddlyWikiFakeDom){return true}if(t.getVariable(\"tv-tiddler-preview\")){return true}else{var r=\"tc-tiddler-preview-preview\";return!!basicUtils.getAncestorWithClass(t.parentDomNode,r)}};var parseFieldData=exports.parseFieldData=function e(t){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:\"text\";var i=arguments[2];var d=getTiddler(t);if(!d){return i}return basicUtils.parseJSON(d.fields[r],i)};var writeFieldData=exports.writeFieldData=function e(t,r,i,d){if((typeof i===\"undefined\"?\"undefined\":_typeof(i))!==\"object\"){return}d=parseInt(d);d=d>0&&r===\"text\"?d:0;setField(t,r,JSON.stringify(i,null,d))};var clone=exports.clone=function e(t,r){setField(t,\"title\",r)};var setEntry=exports.setEntry=function e(t,r,i){$tw.wiki.setText(getTiddlerRef(t),null,r,i)};var getEntry=exports.getEntry=function e(t,r,i){var d=$tw.wiki.getTiddlerData(getTiddlerRef(t),{});return d[r]==null?i:d[r]};var isLeftVersionGreater=exports.isLeftVersionGreater=function e(t,r){return t!==r&&$tw.utils.checkVersions(t,r)};var getText=exports.getText=function e(t,r){return getField(t,\"text\",r)};var setText=exports.setText=function e(t,r){setField(t,\"text\",r)};var isDraft=exports.isDraft=function e(t){var r=getTiddler(t);return r&&r.isDraft()};var isSystemOrDraft=exports.isSystemOrDraft=function e(t){return $tw.wiki.isSystemTiddler(getTiddlerRef(t))||isDraft(t)};var getMergedTiddlers=exports.getMergedTiddlers=function e(t,r){if(!Array.isArray(t)){return}for(var i=t.length;i--;){t[i]=getTiddler(t[i])}if(!t.length){return}t.push({title:r||t[0].fields.title},$tw.wiki.getModificationFields(),$tw.wiki.getCreationFields());t.unshift(null);return new(Function.prototype.bind.apply($tw.Tiddler,t))};var getChildWidgetByProperty=exports.getChildWidgetByProperty=function e(t,r,i){var d=t.children;for(var s=d.length;s--;){var n=d[s];if(n[r]===i){return n}else{n=e(n,r,i);if(n){return n}}}};var addTWlisteners=exports.addTWlisteners=function e(t,r,i){for(var d in t){r.addEventListener(d,t[d].bind(i))}};var mv=exports.mv=function e(t,r,i,d){if(t===r||!t||!r){return}i=typeof i===\"boolean\"?i:false;d=typeof d===\"boolean\"?d:true;var s=getTiddlersByPrefix(t);var n=basicUtils.makeHashMap();for(var l=s.length;l--;){var a=s[l];var o=a.replace(t,r);if($tw.wiki.tiddlerExists(o)&&!i){return}n[a]=o}for(var f in n){setField(f,\"title\",n[f]);if(d){$tw.wiki.deleteTiddler(f)}}return n};var cp=exports.cp=function e(t,r,i){return mv(t,r,i,false)};var deleteByPrefix=exports.deleteByPrefix=function e(t,r){if(!t){return}r=r||$tw.wiki.allTitles();var i=[];for(var d=r.length;d--;){if(basicUtils.startsWith(r[d],t)){$tw.wiki.deleteTiddler(r[d]);i.push(i[d])}}return i};var getTiddlersWithField=exports.getTiddlersWithField=function e(t,r){var i=arguments.length>2&&arguments[2]!==undefined?arguments[2]:{};var d=i.tiddlers||$tw.wiki.allTitles();var s=i.isIncludeDrafts===true;var n=basicUtils.makeHashMap();var l=Object.keys(d);var a=$tw.utils.hop;var o=i.limit||0;for(var f=l.length;f--;){var u=getTiddler(d[l[f]]);var p=u.fields;if(a(p,t)&&(!a(p,\"draft.of\")||s)){if(!r||p[t]===r){n[p.title]=u;if(--o===0){break}}}}return n};var getTiddlerWithField=exports.getTiddlerWithField=function e(t,r){return Object.keys(getTiddlersWithField(t,r,{limit:1}))[0]};var getTiddlersByPrefix=exports.getTiddlersByPrefix=function e(t){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var i=r.removePrefix===true;var d=[];var s=$tw.wiki[r.iterator||\"each\"];s(function(e,r){if(basicUtils.startsWith(r,t)){d.push(i?basicUtils.getWithoutPrefix(r,t):r)}});return d};var addTiddler=exports.addTiddler=function e(t,r){var i=getTiddler(t);if(!r&&i){return i}i=new $tw.Tiddler({title:t,text:\"\"},$tw.wiki.getModificationFields(),$tw.wiki.getCreationFields());$tw.wiki.addTiddler(i);return i};var touch=exports.touch=function e(t){if(!t){return}var r=new $tw.Tiddler(getTiddler(t),$tw.wiki.getModificationFields());$tw.wiki.addTiddler(r)};\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/lib/utils/wiki.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/macro/tmap": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/macro/tmap",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.params=exports.name=exports.run=undefined;var _typeof=typeof Symbol===\"function\"&&typeof Symbol.iterator===\"symbol\"?function(e){return typeof e}:function(e){return e&&typeof Symbol===\"function\"&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e};/* @preserve TW-Guard */\n/*\\\ntitle: $:/plugins/felixhayashi/tiddlymap/js/macro/tmap\ntype: application/javascript\nmodule-type: macro\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var _EdgeType=require(\"$:/plugins/felixhayashi/tiddlymap/js/EdgeType\");var _EdgeType2=_interopRequireDefault(_EdgeType);var _ViewAbstraction=require(\"$:/plugins/felixhayashi/tiddlymap/js/ViewAbstraction\");var _ViewAbstraction2=_interopRequireDefault(_ViewAbstraction);var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var name=\"tmap\";var params=getParamSlots(5);function run(){this.substVarRefs=this.substituteVariableReferences;var e=command[arguments[0]];var t=null;if(typeof e===\"function\"){var r=Array.prototype.slice.call(arguments,1);t=e.apply(this,r)}return typeof t===\"string\"?t:\"\"}function getParamSlots(e){var t=[];for(var r=0;r<e;r++){t.push({name:\"arg\"+r})}return t}var command=_utils2.default.makeHashMap();command.basename=function(e){var t=this.getVariable(\"currentTiddler\");return _utils2.default.getBasename(t,e)};command.datauri=function(e,t){return _utils2.default.getDataUri(e,t,true)};command.testJSON=function(e){var t=$tw.wiki.getTiddler(this.getVariable(\"currentTiddler\"));try{JSON.parse(t.fields[e]);return\"valid\"}catch(e){return\"malformed\"}};command.splitAndSelect=function(e,t){var r=this.getVariable(\"currentTiddler\");var a=r.split(e)[t];return a!=null?a:r};command.concat=function(){var e=\"\";for(var t=1,r=arguments.length;t<r;t++){e+=arguments[t]}return e};command.uuid=function(){return _utils2.default.genUUID()};command.regRepl=function(){var e=this.substVarRefs(arguments[0]);var t=arguments[1];var r=this.substVarRefs(arguments[2]);var a=this.substVarRefs(arguments[4]);return e.replace(new RegExp(t,a),r)};command.halfOfString=function(){var e=this.substVarRefs(arguments[0]);if(!e){return\"\"}return e.substr(0,Math.ceil(e.length/2))};command.isETyVisible=function(e,t){e=new _ViewAbstraction2.default(e);var r=command.getETyId.call(this,e,t);return\"\"+e.isEdgeTypeVisible(r)};command.getETyId=function(e,t){e=new _ViewAbstraction2.default(e);var r=_EdgeType2.default.getInstance(t||this.getVariable(\"currentTiddler\"));if(!r.namespace){var a=_EdgeType2.default.getIdParts(r.id),n=a.marker,i=a.name;var u=e.getConfig(\"edge_type_namespace\");r=_EdgeType2.default.getInstance(_EdgeType2.default.getId(n,u,i))}return r.id};command.scale=function(){var e=\"\";for(var t=1,r=parseInt(arguments[0]);t<r;t++){e+=\"[[\"+t+\"]]\"}return e};command.mergeFields=function(){var e=_utils2.default.getTiddler(arguments[0]);var t=arguments[1];var r=arguments[2]||\" \";if(!e)return;var a=_utils2.default.getPropertiesByPrefix(e.fields,t);var n=\"\";for(var i in a){if(typeof a[i]===\"string\"){n+=a[i]+r}}return n};command.option=function(e,t){if(typeof $tm==\"undefined\"){return\"\"}var r=$tm;var a=e.split(\".\");for(var n=0;n<a.length;n++){if((typeof r===\"undefined\"?\"undefined\":_typeof(r))==\"object\"&&r[a[n]]){r=r[a[n]]}}if(t&&typeof r===\"string\"&&_utils2.default.hasSubString(t)&&r.lastIndexOf(t)+t.length===r.length){r=r+t}return r};exports.run=run;exports.name=name;exports.params=params;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/macro/MapMacro.js.map\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/plugins/felixhayashi/tiddlymap/js/Adapter": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/Adapter",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _typeof=typeof Symbol===\"function\"&&typeof Symbol.iterator===\"symbol\"?function(e){return typeof e}:function(e){return e&&typeof Symbol===\"function\"&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e};var _createClass=function(){function e(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||false;r.configurable=true;if(\"value\"in r)r.writable=true;Object.defineProperty(e,r.key,r)}}return function(t,i,r){if(i)e(t.prototype,i);if(r)e(t,r);return t}}();/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/Adapter\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var _ViewAbstraction=require(\"$:/plugins/felixhayashi/tiddlymap/js/ViewAbstraction\");var _ViewAbstraction2=_interopRequireDefault(_ViewAbstraction);var _EdgeType=require(\"$:/plugins/felixhayashi/tiddlymap/js/EdgeType\");var _EdgeType2=_interopRequireDefault(_EdgeType);var _NodeType=require(\"$:/plugins/felixhayashi/tiddlymap/js/NodeType\");var _NodeType2=_interopRequireDefault(_NodeType);var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);var _Edge=require(\"$:/plugins/felixhayashi/tiddlymap/js/Edge\");var _Edge2=_interopRequireDefault(_Edge);var _vis=require(\"$:/plugins/felixhayashi/vis/vis.js\");var _vis2=_interopRequireDefault(_vis);var _environment=require(\"$:/plugins/felixhayashi/tiddlymap/js/lib/environment\");var env=_interopRequireWildcard(_environment);var _contrastcolour=require(\"$:/core/modules/macros/contrastcolour.js\");function _interopRequireWildcard(e){if(e&&e.__esModule){return e}else{var t={};if(e!=null){for(var i in e){if(Object.prototype.hasOwnProperty.call(e,i))t[i]=e[i]}}t.default=e;return t}}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _defineProperty(e,t,i){if(t in e){Object.defineProperty(e,t,{value:i,enumerable:true,configurable:true,writable:true})}else{e[t]=i}return e}function _classCallCheck(e,t){if(!(e instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}var Adapter=function(){function e(t,i){_classCallCheck(this,e);this.getTiddlerById=t.getTiddlerById.bind(t);this.getId=t.getIdByTiddler.bind(t);this.assignId=t.assignId.bind(t);this.edgeTypeSubscriberRegistry=i;this.indeces=$tm.indeces;this.wiki=$tw.wiki;this.visShapesWithTextInside=_utils2.default.getLookupTable([\"ellipse\",\"circle\",\"database\",\"box\",\"text\"])}_createClass(e,[{key:\"deleteEdge\",value:function e(t){return this._processEdge(t,\"delete\")}},{key:\"insertEdge\",value:function e(t){return this._processEdge(t,\"insert\")}},{key:\"deleteEdges\",value:function e(t){t=_utils2.default.convert(t,\"array\");for(var i=t.length;i--;){this.deleteEdge(t[i])}}},{key:\"_processEdge\",value:function e(t,i){$tm.logger(\"debug\",\"Edge\",i,t);var r=this.getTiddlerById(t.from);if(!r||!_utils2.default.tiddlerExists(r)){return}var a=_utils2.default.getTiddler(r);var s=this.indeces.allETy[t.type]||_EdgeType2.default.getInstance(t.type);var l=this.edgeTypeSubscriberRegistry.getAllForType(s);var n=i+\"Edge\";for(var d=l.length;d--;){l[d][n](a,t,s)}if(i===\"insert\"&&!s.exists()){s.save()}return t}},{key:\"getAdjacencyList\",value:function e(t){var i=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};$tm.start(\"Creating adjacency list\");if(!i.edges){var r=_utils2.default.getMatches(env.selector.allPotentialNodes);i.edges=this.getEdgesForSet(r,i.toWL,i.typeWL)}var a=_utils2.default.groupByProperty(i.edges,t||\"to\");$tm.stop(\"Creating adjacency list\");return a}},{key:\"getNeighbours\",value:function e(t){var i=this;var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};$tm.start(\"Get neighbours\");var a=r.addProperties,s=r.toWL,l=r.typeWL,n=r.steps;var d=this.indeces.allETy;var o=_utils2.default.getArrayValuesAsHashmapKeys(t);var u=_ViewAbstraction2.default.exists(r.view)?new _ViewAbstraction2.default(r.view):null;var f=_utils2.default.makeHashMap();var g=_utils2.default.makeHashMap();var c=parseInt(n)>0?n:1;var v=r.direction||u&&u.getConfig(\"neighbourhood_directions\");var y=!v||v===\"both\";var h=y||v===\"in\";var p=y||v===\"out\";var _=u&&\"[all[]] \"+u.getNodeFilter(\"raw\");var b=this.getAdjacencyList(\"to\",r);var m=function e(t,r,s){f[t.id]=t;var l=i.getTiddlerById(t[r]);if(u&&_utils2.default.isTrue($tm.config.sys.nodeFilterNeighbours)&&!_utils2.default.isMatch(l,_)){return}if(!o[l]){o[l]=true;var n=i.makeNode(l,a);if(n){g[n.id]=n;s.push(l)}}};var w=void 0;for(w=0;w<c&&t.length;w++){var T=[];for(var k=t.length;k--;){if(_utils2.default.isSystemOrDraft(t[k])){continue}var E=this.getEdges(t[k],s,l);for(var N in E){var A=d[E[N].type];if(y||p&&A.toArrow||h&&A.invertedArrow){m(E[N],\"to\",T)}}var I=b[this.getId(t[k])];if(!I){continue}for(var j=I.length;j--;){var x=d[I[j].type];if(y||h&&x.toArrow||p&&x.invertedArrow){m(I[j],\"from\",T)}}}t=T}var S={nodes:g,edges:f};$tm.logger(\"debug\",\"Retrieved neighbourhood\",S,\"steps\",w);$tm.stop(\"Get neighbours\");return S}},{key:\"getGraph\",value:function e(t){var i=t.view,r=t.matches,a=t.includeNeighboursOf;$tm.start(\"Assembling Graph\");i=new _ViewAbstraction2.default(i);r=r||_utils2.default.getMatches(i.getNodeFilter(\"compiled\"));var s=parseInt(i.getConfig(\"neighbourhood_scope\"));var l=i.getEdgeTypeFilter(\"whitelist\");var n=_utils2.default.getArrayValuesAsHashmapKeys(r);var d=this.getEdgesForSet(r,n,l);var o=void 0;if(i.isEnabled(\"filter_nodes_by_edge_types\")){o=new Set;Object.values(d).forEach(function(e){o.add(e.from);o.add(e.to)})}var u={edges:d,nodes:this.selectNodesByReferences(r,{view:i,outputType:\"hashmap\"})};if(s){var f=a?r.filter(a):r;var g=this.getNeighbours(f,{steps:s,view:i,typeWL:l,addProperties:{type:\"tmap:neighbour\"}});Object.assign(u.nodes,g.nodes);Object.assign(u.edges,g.edges);if(i&&i.isEnabled(\"show_inter_neighbour_edges\")){var c=this.getTiddlersByIds(g.nodes);var v=_utils2.default.getArrayValuesAsHashmapKeys(c);Object.assign(u.edges,this.getEdgesForSet(c,v))}}if(o){var y=_utils2.default.makeHashMap();Object.values(u.nodes).forEach(function(e){if(o.has(e.id)){y[e.id]=e}});u.nodes=y}this.attachStylesToNodes(u.nodes,i);$tm.stop(\"Assembling Graph\");$tm.logger(\"debug\",\"Assembled graph:\",u);return u}},{key:\"getEdges\",value:function e(t,i,r){var a=_utils2.default.getTiddler(t);if(!a||_utils2.default.isSystemOrDraft(a)){return}var s=this.indeces.allETy;var l=_utils2.default.makeHashMap();var n=this.edgeTypeSubscriberRegistry.getAll();for(var d=0,o=n.length;d<o;d++){Object.assign(l,n[d].loadEdges(a,i,r))}for(var u in l){var f=l[u];if(!f.from||!f.to){continue}var g=s[f.type]||_EdgeType2.default.getInstance(f.type);addStyleToEdge(l[u],g);l[u]=f}return l}},{key:\"getEdgesForSet\",value:function e(t,i,r){var a=_utils2.default.makeHashMap();for(var s=t.length;s--;){Object.assign(a,this.getEdges(t[s],i,r))}return a}},{key:\"selectEdgesByType\",value:function e(t){var i=_utils2.default.makeHashMap(_defineProperty({},_EdgeType2.default.getInstance(t).id,true));return this.getEdgesForSet(this.getAllPotentialNodes(),null,i)}},{key:\"getAllPotentialNodes\",value:function e(){return _utils2.default.getMatches($tm.selector.allPotentialNodes)}},{key:\"_processEdgesWithType\",value:function e(t,i){var r=i.action,a=i.newName;t=_EdgeType2.default.getInstance(t);$tm.logger(\"debug\",\"Processing edges\",t,r);var s=this.selectEdgesByType(t);if(r===\"rename\"){new _EdgeType2.default(a,t).save()}for(var l in s){this._processEdge(s[l],\"delete\");if(r===\"rename\"){s[l].type=a;this._processEdge(s[l],\"insert\")}}this.wiki.deleteTiddler(t.fullPath)}},{key:\"selectNodesByReferences\",value:function e(t){var i=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},r=i.addProperties,a=i.outputType;var s=_utils2.default.makeHashMap();var l=Object.keys(t);for(var n=l.length;n--;){var d=this.makeNode(t[l[n]],r);if(d){s[d.id]=d}}return _utils2.default.convert(s,a)}},{key:\"selectNodesByIds\",value:function e(t,i){var r=this.getTiddlersByIds(t);return this.selectNodesByReferences(r,i)}},{key:\"selectNodeById\",value:function e(t,i){i=Object.assign({},i,{outputType:\"hashmap\"});var r=this.selectNodesByIds([t],i);return r[t]}},{key:\"removeNodeType\",value:function e(t){t=_NodeType2.default.getInstance(t);this.wiki.deleteTiddler(t.fullPath)}},{key:\"makeNode\",value:function e(t,i){var r=_utils2.default.getTiddler(t);if(!r||_utils2.default.isSystemOrDraft(r))return;var a=_utils2.default.merge({},i);a.id=this.assignId(r);a.tRef=r.fields.title;var s=r.fields[$tm.field.nodeLabel];a.label=(s&&$tm.field.nodeLabel!==\"title\"?this.wiki.renderText(\"text/plain\",\"text/vnd-tiddlywiki\",s):r.fields.title).replace(\"\\\\n\",\"\\n\");return a}},{key:\"getInheritedNodeStyles\",value:function e(t){var i=this.getTiddlersByIds(t);var r={};var a=this.indeces.glNTy;for(var s=a.length;s--;){var l=a[s];var n=[];if(l.id===\"tmap:neighbour\"){for(var d in t){if(t[d].type===\"tmap:neighbour\"){n.push(this.getTiddlerById(d))}}}else{n=l.getInheritors(i)}for(var o=n.length;o--;){var u=n[o];var f=r[u]=r[u]||{};f.style=_utils2.default.merge(f.style||{},l.style);if(l[\"fa-icon\"]){f[\"fa-icon\"]=l[\"fa-icon\"]}else if(l[\"tw-icon\"]){f[\"tw-icon\"]=l[\"tw-icon\"]}}}return r}},{key:\"attachStylesToNodes\",value:function e(t,i){i=_ViewAbstraction2.default.exists(i)?new _ViewAbstraction2.default(i):null;var r=this.getInheritedNodeStyles(t);var a=i?i.getNodeData():_utils2.default.makeHashMap();var s=i&&!i.isEnabled(\"physics_mode\");for(var l in t){var n=this.getTiddlerById(l);var d=this.wiki.getTiddler(n);var o=d.fields;var u=t[l];var f=void 0;var g=r[n];if(g){_utils2.default.merge(u,g.style);f=getIcon(g[\"fa-icon\"],g[\"tw-icon\"])}if(o.color){u.color=o.color}if(o[\"tmap.style\"]){_utils2.default.merge(u,_utils2.default.parseJSON(o[\"tmap.style\"]))}f=getIcon(o[\"tmap.fa-icon\"],o[\"icon\"])||f;var c=a[l];if(c){_utils2.default.merge(u,c);if(s){u.fixed={x:u.x!=null,y:u.y!=null}}f=getIcon(c[\"fa-icon\"],c[\"tw-icon\"])||f}var v=u.color!==null&&_typeof(u.color)===\"object\";var y=v?u.color.background:u.color;u.color={background:y,border:v?u.color.border:undefined};addNodeIcon(u,f);u.font=u.font||{};if(u.shape&&!this.visShapesWithTextInside[u.shape]){u.font.color=\"black\"}else if(!u.font.color&&y){u.font.color=(0,_contrastcolour.run)(y,y,\"black\",\"white\")}if(u.shape===\"icon\"){u.label=\"\\n\"+u.label;if(_typeof(u.icon)===\"object\"){u.icon.color=y}}}if(i){var h=t[i.getConfig(\"central-topic\")];if(h){_utils2.default.merge(h,this.indeces.glNTyById[\"tmap:central-topic\"].style)}}}},{key:\"deleteNode\",value:function e(t){if(!t){return}var i=(typeof t===\"undefined\"?\"undefined\":_typeof(t))===\"object\"?t.id:t;var r=this.getTiddlerById(i);if(r){_utils2.default.deleteTiddlers([r])}var a=_utils2.default.getMatches(env.selector.allViews);for(var s=a.length;s--;){var l=new _ViewAbstraction2.default(a[s]);l.removeNode(i)}var n=this.getNeighbours([r]);this.deleteEdges(n.edges)}},{key:\"deleteNodes\",value:function e(t){for(var i=t.length;i--;){this.deleteNode(t[i])}}},{key:\"insertNode\",value:function e(){var t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var i=arguments[1];var r=arguments[2];t.label=this.wiki.generateNewTitle(t.label||_utils2.default.getRandomLabel());var a=new $tw.Tiddler({text:\"\"},r,{title:t.label,\"tmap.id\":null},this.wiki.getModificationFields(),this.wiki.getCreationFields());this.wiki.addTiddler(a);t=this.makeNode(a,t);if(_ViewAbstraction2.default.exists(i)){new _ViewAbstraction2.default(i).addNode(t)}return t}},{key:\"getTiddlersByIds\",value:function e(t){if(Array.isArray(t)){t=_utils2.default.getArrayValuesAsHashmapKeys(t)}else if(t instanceof _vis2.default.DataSet){t=_utils2.default.getLookupTable(t,\"id\")}var i=[];for(var r in t){var a=this.getTiddlerById(r);if(a){i.push(a)}}return i}}]);return e}();var getFAdigits=function e(t){return t.length===4?t:t.substr(3,4)};var addNodeIcon=function e(t,i){if(!i){return}if(i.fa){t.shape=\"icon\";t.icon={shape:\"icon\",face:\"FontAwesome\",color:t.color,code:String.fromCharCode(\"0x\"+getFAdigits(i.fa))};if(t.size){t.icon.size=t.size}return}if(i.tw){var r=_utils2.default.getTiddler(i.tw);if(!r){return}if(r.fields[\"_canonical_uri\"]){t.image=r.fields[\"_canonical_uri\"];t.shape=\"image\"}else if(r.fields.text){t.image=_utils2.default.getDataUri(r);t.shape=\"image\"}}};var removeObsoleteViewData=function e(t,i){if(!_ViewAbstraction2.default.exists(i)||!t){return}i=new _ViewAbstraction2.default(i);var r=i.getNodeData();var a=0;for(var s in r){if(t[s]===undefined&&r[s]!=null){r[s]=undefined;a++}}if(a){$tm.logger(\"debug\",\"[Cleanup]\",\"Removed obsolete node data:\",i.getLabel(),a);i.saveNodeData(r)}};var addStyleToEdge=function e(t,i){t=Object.assign(t,i.style);if(_utils2.default.isTrue(i[\"show-label\"],true)){t.label=i.getLabel()}};var getIcon=function e(t,i){return t&&{fa:t}||i&&{tw:i}};exports.default=Adapter;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/services/Adapter.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/CallbackManager": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/CallbackManager",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _createClass=function(){function e(e,t){for(var a=0;a<t.length;a++){var l=t[a];l.enumerable=l.enumerable||false;l.configurable=true;if(\"value\"in l)l.writable=true;Object.defineProperty(e,l.key,l)}}return function(t,a,l){if(a)e(t.prototype,a);if(l)e(t,l);return t}}();/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/CallbackManager\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}var CallbackManager=function(){function e(){_classCallCheck(this,e);this.callbacks=_utils2.default.makeHashMap();this.logger=$tm.logger;this.wiki=$tw.wiki}_createClass(e,[{key:\"add\",value:function e(t,a){var l=arguments.length>2&&arguments[2]!==undefined?arguments[2]:true;this.logger(\"debug\",'A callback was registered for changes of \"'+t+'\"');this.callbacks[t]={execute:a,isDeleteOnCall:l}}},{key:\"remove\",value:function e(t){if(!t){return}if(typeof t===\"string\"){t=[t]}for(var a=t.length;a--;){var l=t[a];if(this.callbacks[l]){this.logger(\"debug\",'Deleting callback for \"'+l+'\"');delete this.callbacks[l]}}}},{key:\"refresh\",value:function e(t){if(this.callbacks.length==0){return}for(var a in t){if(!this.callbacks[a]){continue}if(this.wiki.getTiddler(a)){this.logger(\"debug\",\"Executing a callback for: \"+a);this.callbacks[a].execute(a);if(!this.callbacks.isDeleteOnCall){continue}}this.remove(a)}}}]);return e}();exports.default=CallbackManager;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/services/CallbackManager.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/startup/caretaker": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/startup/caretaker",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.startup=exports.synchronous=exports.before=exports.after=exports.platforms=exports.name=undefined;var _rebuilders;var _extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var i in r){if(Object.prototype.hasOwnProperty.call(r,i)){e[i]=r[i]}}}return e};/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/startup/caretaker\ntype: application/javascript\nmodule-type: startup\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var _vis=require(\"$:/plugins/felixhayashi/tiddlymap/js/config/vis\");var _vis2=_interopRequireDefault(_vis);var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);var _Fixer=require(\"$:/plugins/felixhayashi/tiddlymap/js/Fixer\");var _Fixer2=_interopRequireDefault(_Fixer);var _Adapter=require(\"$:/plugins/felixhayashi/tiddlymap/js/Adapter\");var _Adapter2=_interopRequireDefault(_Adapter);var _tracker=require(\"$:/plugins/felixhayashi/tiddlymap/js/services/tracker\");var _tracker2=_interopRequireDefault(_tracker);var _EdgeTypeSubscriberRegistry=require(\"$:/plugins/felixhayashi/tiddlymap/js/EdgeTypeSubscriberRegistry\");var _EdgeTypeSubscriberRegistry2=_interopRequireDefault(_EdgeTypeSubscriberRegistry);var _DialogManager=require(\"$:/plugins/felixhayashi/tiddlymap/js/DialogManager\");var _DialogManager2=_interopRequireDefault(_DialogManager);var _CallbackManager=require(\"$:/plugins/felixhayashi/tiddlymap/js/CallbackManager\");var _CallbackManager2=_interopRequireDefault(_CallbackManager);var _ViewAbstraction=require(\"$:/plugins/felixhayashi/tiddlymap/js/ViewAbstraction\");var _ViewAbstraction2=_interopRequireDefault(_ViewAbstraction);var _EdgeType=require(\"$:/plugins/felixhayashi/tiddlymap/js/EdgeType\");var _EdgeType2=_interopRequireDefault(_EdgeType);var _NodeType=require(\"$:/plugins/felixhayashi/tiddlymap/js/NodeType\");var _NodeType2=_interopRequireDefault(_NodeType);var _vis3=require(\"$:/plugins/felixhayashi/vis/vis.js\");var _vis4=_interopRequireDefault(_vis3);var _environment=require(\"$:/plugins/felixhayashi/tiddlymap/js/lib/environment\");var env=_interopRequireWildcard(_environment);var _URL=require(\"$:/plugins/felixhayashi/tiddlymap/js/URL\");var _URL2=_interopRequireDefault(_URL);function _interopRequireWildcard(e){if(e&&e.__esModule){return e}else{var t={};if(e!=null){for(var r in e){if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]}}t.default=e;return t}}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _defineProperty(e,t,r){if(t in e){Object.defineProperty(e,t,{value:r,enumerable:true,configurable:true,writable:true})}else{e[t]=r}return e}var init=function e(){window.$tm=_extends({},env,{utils:_utils2.default,url:new _URL2.default(window.location.href)});cleanup();registerPublicClasses($tm);updateGlobals($tm);createMetaFile($tm.logger);var t=attachIndeces($tm);var r=getInitializedServices(t);Object.assign($tm,r);loadDefaultView($tm.config.sys.defaultView);r.fixer.fix();$tm.registry=[];setInterval(routineCheck,5e3);registerChangeListener($tm.callbackManager);registerMousemoveListener();registerClickListener();if($tm.url.query[\"tmap-enlarged\"]){prepareFullscreenStart($tm.url)}$tm.logger(\"warn\",\"TiddlyMap's caretaker successfully started\")};var getInitializedServices=function e(t){var r=new _tracker2.default(d);var i=$tw.modules.applyMethods(\"tmap.edgetypehandler\");var a=new _EdgeTypeSubscriberRegistry2.default(i,t.allETy,r);var s=new _Adapter2.default(r,a);var l=new _CallbackManager2.default;var n=new _DialogManager2.default(l);var d=new _Fixer2.default(s,$tm.logger,t.glNTy);return{edgeTypeSubscriberRegistry:a,tracker:r,adapter:s,callbackManager:l,dialogManager:n,fixer:d}};var registerPublicClasses=function e(t){t.keycharm=_vis4.default.keycharm;t.NodeType=_NodeType2.default;t.EdgeType=_EdgeType2.default;t.ViewAbstraction=_ViewAbstraction2.default};var attachOptions=function e(t){var r=t;if(!r.config)r.config=_utils2.default.makeHashMap();r.config.sys=_utils2.default.merge(r.config.sys,_utils2.default.unflatten($tw.wiki.getTiddlerData(env.ref.sysUserConf)));r.config.vis=_utils2.default.merge({},_vis2.default,_utils2.default.parseFieldData(env.ref.visUserConf));if(!r.field)r.field=_utils2.default.makeHashMap();$tw.utils.extend(r.field,r.config.sys.field)};var attachIndeces=function e(t){$tm.start(\"Attaching Indeces\");t.indeces=t.indeces||{};updateNodeTypesIndeces(t.indeces);updateEdgeTypesIndeces(t.indeces);$tm.stop(\"Attaching Indeces\");return t.indeces};var updateNodeTypesIndeces=function e(t){t=t||$tm.indeces;var r=$tm.path.nodeTypes;var i=t.glNTy=[];var a=t.glNTyById=_utils2.default.makeHashMap();$tw.wiki.eachTiddlerPlusShadows(function(e,t){if(_utils2.default.startsWith(t,r)){var s=_NodeType2.default.getInstance(t);a[s.id]=s;i.push(s)}});i.sort(function(e,t){return e.priority-t.priority})};var updateEdgeTypesIndeces=function e(t){t=t||$tm.indeces;var r=$tm.path.edgeTypes;var i=t.allETy=_utils2.default.makeHashMap();$tw.wiki.eachTiddlerPlusShadows(function(e,t){if(_utils2.default.startsWith(t,r)){var a=_EdgeType2.default.getInstance(t);i[a.id]=a}});if($tm.edgeTypeSubscriberRegistry){$tm.edgeTypeSubscriberRegistry.updateIndex(i)}};var attachFunctions=function e(t){var r=t;var i=function e(){};if(_utils2.default.isTrue($tm.config.sys.debug,false)&&console){r.logger=function(){if(arguments.length<2)return;var e=Array.prototype.slice.call(arguments);var t=e.shift(e);var r=console.hasOwnProperty(t)?t:\"debug\";console[r].apply(console,e)};r.start=function(e){console.time(\"[timer] \"+e)};r.stop=function(e){console.timeEnd(\"[timer] \"+e)}}else{r.logger=r.start=r.stop=i}r.notify=_utils2.default.isTrue($tm.config.sys.notifications)?_utils2.default.notify:i};var routineCheck=function e(){for(var t=$tm.registry.length;t--;){var r=$tm.registry[t];if(!r.destruct||!r.isZombieWidget)return;if(r.isZombieWidget()){$tm.logger(\"warn\",\"a widget will be removed\");$tm.registry.splice(t,1);r.destruct()}}};var dispatchUpdates=function e(t){var r=$tm.registry;for(var i=r.length;i--;){var a=r[i];if(a.update&&a.isZombieWidget&&!a.isZombieWidget()){a.update(t)}}};var checkForClone=function e(t){var r=_utils2.default.getDublicates(t);if(!r.length){return}_utils2.default.setField(t,\"tmap.edges\",undefined);$tm.tracker.assignId(t,true);$tm.dialogManager.open(\"dublicateIdInfo\",{param:{changedTiddler:t.fields.title,filter:_utils2.default.joinAndWrap(r,\"[[\",\"]]\"),id:_utils2.default.getId(t)}})};var updateGlobals=function e(t){attachOptions($tm);attachFunctions($tm);$tm.logger(\"warn\",\"Rebuilt globals\")};var lastCurrentTiddler=null;var updateLiveViewTrigger=function e(t){if(t[\"$:/HistoryList\"]){var r=_utils2.default.getField(\"$:/HistoryList\",\"current-tiddler\")}else if(t[\"$:/temp/focussedTiddler\"]){var r=_utils2.default.getField(\"$:/temp/focussedTiddler\",\"text\")}if(r!=null&&lastCurrentTiddler!==r){lastCurrentTiddler=r;_utils2.default.setField(\"$:/temp/tmap/currentTiddler\",\"text\",r)}};var printChanges=function e(t,r){if(!_utils2.default.isTrue($tm.config.sys.debug,false))return;$tm.logger(\"warn\",\"=== Refresh \"+r+\" ===\");for(var i in t){var a=t[i].deleted?\"[Deleted]\":\"[Modified]\";$tm.logger(\"warn\",a,i,$tw.wiki.getTiddler(i))}};var registerMousemoveListener=function e(){$tm.mouse={};var t=function e(t){$tm.mouse=t};window.addEventListener(\"mousemove\",t,false)};var registerClickListener=function e(){var t=$tm.path.tempPopups;window.addEventListener(\"click\",function(e){var r=_utils2.default.getTiddlersByPrefix(t);for(var i=r.length;i--;){if(_utils2.default.getText(r[i]))break}if(i===-1)return;if(!$tw.utils.hasClass(e.target,\"tc-drop-down\")&&!_utils2.default.getAncestorWithClass(e.target,\"tc-drop-down\")){for(var i=r.length;i--;){_utils2.default.setText(r[i],\"\")}}},false)};var registerChangeListener=function e(t){var r=0;$tw.wiki.addEventListener(\"change\",function(e){$tm.start(\"Caretaker handling changes\");printChanges(e,r++);t.refresh(e);var i={changedTiddlers:{}};for(var a in e){var s=_utils2.default.getTiddler(a);if(s&&s.isDraft()){continue}var l=handleTiddlerChange(a,s,i);if(l){i.changedTiddlers[a]=e[a]}}dispatchUpdates(i);updateLiveViewTrigger(e);$tm.stop(\"Caretaker handling changes\")})};var rebuilders=(_rebuilders={},_defineProperty(_rebuilders,env.path.options,updateGlobals),_defineProperty(_rebuilders,env.path.nodeTypes,updateNodeTypesIndeces),_defineProperty(_rebuilders,env.path.edgeTypes,updateEdgeTypesIndeces),_rebuilders);var handleTiddlerChange=function e(t,r,i){if($tw.wiki.isSystemTiddler(t)){for(var a in rebuilders){if(_utils2.default.startsWith(t,a)&&!i[a]){$tm.logger(\"warn\",\"[System change]\",a);rebuilders[a]();i[a]=true}}}else if(r){if(r.fields.text===undefined){$tw.wiki.dispatchEvent(\"lazyLoad\",t);return false}checkForClone(r);$tm.tracker.assignId(r)}else{var s=$tm.tracker.getIdByTiddler(t);if(!s){return false}var l=_utils2.default.getTiddlerWithField(\"tmap.id\",s);if(l){$tm.logger(\"warn\",\"[Renamed]\",t,\"into\",l)}else{$tm.adapter.deleteNode(s)}}return true};var cleanup=function e(){_utils2.default.deleteByPrefix(\"$:/temp/felixhayashi\");_utils2.default.deleteByPrefix(\"$:/temp/tiddlymap\");_utils2.default.deleteByPrefix(\"$:/temp/tmap\")};var loadDefaultView=function e(t){if(!t){return}var r=_utils2.default.getTiddler(env.ref.defaultViewHolder);if(r.fields.text===$tm.config.sys.defaultView){return}_utils2.default.setText(env.ref.defaultViewHolder,$tm.config.sys.defaultView)};var prepareFullscreenStart=function e(t){var r=env.ref,i=r.mainEditor,a=r.defaultViewHolder;_utils2.default.setSidebarTab(i);if(_ViewAbstraction2.default.exists(t)){t=new _ViewAbstraction2.default(t);_utils2.default.setField(a,\"text\",t.getLabel())}};var createMetaFile=function e(t){if(_utils2.default.tiddlerExists(env.ref.sysMeta)){return}t(\"warn\",\"Creating meta file\");var r=$tw.wiki.getTiddler(env.path.pluginRoot);$tw.wiki.setTiddlerData(env.ref.sysMeta,{originalVersion:r.fields.version,dataStructureState:\"0.6.9\",showWelcomeMessage:true})};var name=exports.name=\"tmap.caretaker\";var platforms=exports.platforms=[\"browser\"];var after=exports.after=[\"startup\"];var before=exports.before=[\"rootwidget\"];var synchronous=exports.synchronous=true;var startup=exports.startup=init;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/services/Caretaker.js.map\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/plugins/felixhayashi/tiddlymap/js/DialogManager": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/DialogManager",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _createClass=function(){function e(e,t){for(var a=0;a<t.length;a++){var l=t[a];l.enumerable=l.enumerable||false;l.configurable=true;if(\"value\"in l)l.writable=true;Object.defineProperty(e,l.key,l)}}return function(t,a,l){if(a)e(t.prototype,a);if(l)e(t,l);return t}}();/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/DialogManager\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);var _CallbackManager=require(\"$:/plugins/felixhayashi/tiddlymap/js/CallbackManager\");var _CallbackManager2=_interopRequireDefault(_CallbackManager);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}var DialogManager=function(){function e(t,a){_classCallCheck(this,e);this.callbackManager=t;this.context=a}_createClass(e,[{key:\"open\",value:function t(a){var l=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var i=arguments[2];if(_utils2.default.isTrue($tm.config.sys.suppressedDialogs[a],false)){$tm.logger(\"warning\",\"Suppressed dialog\",a);return}$tm.logger(\"debug\",\"Dialog param object\",l);if(typeof i===\"function\"&&this.context){i=i.bind(this.context)}var r=$tm.path.tempRoot+\"/dialog-\"+_utils2.default.genUUID();var n=_utils2.default.getTiddler($tm.path.dialogs+\"/\"+a);var u={title:r,buttons:n.fields[\"buttons\"]||\"ok_cancel\",classes:\"tmap-modal-content \"+n.fields[\"classes\"],output:r+\"/output\",result:r+\"/result\",temp:r+\"/temp\",template:n.fields.title,templateId:a,currentTiddler:r+\"/output\",text:_utils2.default.getText($tm.path.dialogs)};_utils2.default.touch(u.output);if(l.dialog){if(l.dialog.preselects){$tw.wiki.addTiddler(new $tw.Tiddler({title:u.output},_utils2.default.flatten(l.dialog.preselects)));delete l.dialog.preselects}_utils2.default.merge(u,l.dialog)}u.footer=_utils2.default.getText($tm.path.footers);u=_utils2.default.flatten(u);l=_utils2.default.flatten(l);var s=function t(a){e.getElement(\"hidden-close-button\").click();var l=$tw.wiki.getTiddler(a);var n=l.fields.text;var s=null;if(n){s=$tw.wiki.getTiddler(u.output)}else{$tm.notify(\"operation cancelled\")}if(typeof i===\"function\"){i(n,s)}_utils2.default.deleteByPrefix(r)};this.callbackManager.add(u.result,s,true);var o=new $tw.Tiddler(n,l,u);$tw.wiki.addTiddler(o);$tm.logger(\"debug\",\"Opening dialog\",o);$tw.rootWidget.dispatchEvent({type:\"tm-modal\",param:o.fields.title,paramObject:o.fields});e.addKeyBindings();return o}}],[{key:\"getElement\",value:function e(t){return _utils2.default.getFirstElementByClassName(\"tmap-\"+t)}},{key:\"addKeyBindings\",value:function t(){var a=$tm.keycharm({container:_utils2.default.getFirstElementByClassName(\"tc-modal\")});var l=/tmap-triggers-(.+?)-on-(.+?)(?:\\s|$)/;var i=document.getElementsByClassName(\"tmap-trigger-field\");var r=function t(r){var n=i[r].className.split(\" \");var u=function t(i){var r=n[i].match(l);if(!r){return\"continue\"}var u=r[1];var s=r[2];var o=e.getElement(u);if(!o){return\"continue\"}a.bind(s,function(){if(document.getElementsByClassName(n[i]).length){o.click()}})};for(var s=n.length;s--;){var o=u(s);if(o===\"continue\")continue}};for(var n=i.length;n--;){r(n)}}}]);return e}();exports.default=DialogManager;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/services/DialogManager.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/Fixer": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/Fixer",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _typeof=typeof Symbol===\"function\"&&typeof Symbol.iterator===\"symbol\"?function(e){return typeof e}:function(e){return e&&typeof Symbol===\"function\"&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e};var _createClass=function(){function e(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||false;r.configurable=true;if(\"value\"in r)r.writable=true;Object.defineProperty(e,r.key,r)}}return function(t,i,r){if(i)e(t.prototype,i);if(r)e(t,r);return t}}();/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/Fixer\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);var _ViewAbstraction=require(\"$:/plugins/felixhayashi/tiddlymap/js/ViewAbstraction\");var _ViewAbstraction2=_interopRequireDefault(_ViewAbstraction);var _EdgeType=require(\"$:/plugins/felixhayashi/tiddlymap/js/EdgeType\");var _EdgeType2=_interopRequireDefault(_EdgeType);var _NodeType=require(\"$:/plugins/felixhayashi/tiddlymap/js/NodeType\");var _NodeType2=_interopRequireDefault(_NodeType);var _environment=require(\"$:/plugins/felixhayashi/tiddlymap/js/lib/environment\");var env=_interopRequireWildcard(_environment);function _interopRequireWildcard(e){if(e&&e.__esModule){return e}else{var t={};if(e!=null){for(var i in e){if(Object.prototype.hasOwnProperty.call(e,i))t[i]=e[i]}}t.default=e;return t}}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}var Fixer=function(){function e(t,i,r){_classCallCheck(this,e);this.adapter=t;this.logger=i;this.wiki=$tw.wiki;this.glNTy=r}_createClass(e,[{key:\"moveEdges\",value:function e(t,i){var r=_utils2.default.getTiddlersByPrefix(t);for(var a=0;a<r.length;a++){var u=_utils2.default.getBasename(r[a]);if(u===\"__noname__\"){u=\"tmap:unknown\"}u=_EdgeType2.default.getInstance(u);if(!u.exists()){u.save()}var n=this.wiki.getTiddlerData(r[a]);for(var s=0;s<n.length;s++){n[s].type=(i?i+\":\":\"\")+u.id;this.adapter.insertEdge(n[s])}this.wiki.deleteTiddler(r[a])}}},{key:\"executeUpgrade\",value:function e(t,i,r){if(!_utils2.default.isLeftVersionGreater(t,i)){return}this.logger(\"debug\",\"Upgrading data structure to \"+t);var a=r();_utils2.default.setEntry(env.ref.sysMeta,\"dataStructureState\",t);return a}},{key:\"fixId\",value:function e(){var t=this.wiki.getTiddlerData(env.ref.sysMeta,{});this.executeUpgrade(\"0.9.2\",t.dataStructureState,function(){if(_utils2.default.isLeftVersionGreater(\"0.9.2\",t.originalVersion)){var e=\"$:/plugins/felixhayashi/tiddlymap/config/sys/user\";var i=_utils2.default.getEntry(e,\"field.nodeId\",\"tmap.id\");_utils2.default.moveFieldValues(i,\"tmap.id\",true,false)}})}},{key:\"fix\",value:function e(){var t=this;var i=this.wiki.getTiddlerData(env.ref.sysMeta,{});this.logger(\"debug\",\"Fixer is started\");this.logger(\"debug\",\"Data-structure currently in use: \",i.dataStructureState);this.executeUpgrade(\"0.7.0\",i.dataStructureState,function(){t.moveEdges(\"$:/plugins/felixhayashi/tiddlymap/graph/edges\",null);var e=env.selector.allViews;var i=_utils2.default.getMatches(e);for(var r=0;r<i.length;r++){var a=new _ViewAbstraction2.default(i[r]);t.moveEdges(a.getRoot()+\"/graph/edges\",a)}});this.executeUpgrade(\"0.7.32\",i.dataStructureState,function(){if(!_ViewAbstraction2.default.exists(\"Live View\")){return}var e=new _ViewAbstraction2.default(\"Live View\");e.setNodeFilter(\"[field:title{$:/temp/tmap/currentTiddler}]\",true);e.setConfig({\"refresh-trigger\":null,\"refresh-triggers\":$tw.utils.stringifyList([\"$:/temp/tmap/currentTiddler\"])})});this.executeUpgrade(\"0.9.0\",i.dataStructureState,function(){var e=env.ref.visUserConf;var i=_utils2.default.unflatten(t.wiki.getTiddlerData(e,{}));if(_typeof(i.groups)===\"object\"){var r=_NodeType2.default.getInstance(\"tmap:neighbour\");r.setStyle(i.groups[\"neighbours\"]);r.save();delete i.groups;t.wiki.setTiddlerData(e,i)}});this.fixId();this.executeUpgrade(\"0.9.16\",i.dataStructureState,function(){for(var e=t.glNTy.length;e--;){t.glNTy[e].save(null,true)}});this.executeUpgrade(\"0.10.3\",i.dataStructureState,function(){var e=env.ref.liveTab;if(_utils2.default.getTiddler(e).hasTag(\"$:/tags/SideBar\")){this.wiki.deleteTiddler(e);_utils2.default.setField(e,\"tags\",\"$:/tags/SideBar\")}});this.executeUpgrade(\"0.11.0\",i.dataStructureState,function(){var e=_utils2.default.getMatches(env.selector.allViews);for(var t=e.length;t--;){var i=new _ViewAbstraction2.default(e[t]);var r=i.getEdgeTypeFilter(\"raw\");var a=\"edge_type_namespace\";i.setConfig(a,i.getConfig(a));var u=env.filter.defaultEdgeTypeFilter;if(r){var n=env.path.edgeTypes;r=_utils2.default.replaceAll(r,\"\",[n,n+\"/\",\"[prefix[\"+n+\"]]\",\"[prefix[\"+n+\"/]]\",[\"[suffix[tw-body:link]]\",\"[[tw-body:link]]\"],[\"[suffix[tw-list:tags]]\",\"[[tw-list:tags]]\"],[\"[suffix[tw-list:list]]\",\"[[tw-body:list]]\"],[\"[suffix[tmap:unknown]]\",\"[[tmap:unknown]]\"],[\"[suffix[unknown]]\",\"[[tmap:unknown]]\"]]);u=\"-[prefix[_]] \"+r}i.setEdgeTypeFilter(u)}})}}]);return e}();exports.default=Fixer;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/services/Fixer.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/startup/listener": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/startup/listener",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.startup=exports.synchronous=exports.before=exports.after=exports.platforms=exports.name=undefined;var _NodeType=require(\"$:/plugins/felixhayashi/tiddlymap/js/NodeType\");var _NodeType2=_interopRequireDefault(_NodeType);var _EdgeType=require(\"$:/plugins/felixhayashi/tiddlymap/js/EdgeType\");var _EdgeType2=_interopRequireDefault(_EdgeType);var _Edge=require(\"$:/plugins/felixhayashi/tiddlymap/js/Edge\");var _Edge2=_interopRequireDefault(_Edge);var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);var _vis=require(\"$:/plugins/felixhayashi/tiddlymap/js/config/vis\");var _vis2=_interopRequireDefault(_vis);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var handleCancelDialog=function e(t){var a=t.param;_utils2.default.setField(a,\"text\",\"\")};\n/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/startup/listener\ntype: application/javascript\nmodule-type: startup\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var handleClearTiddler=function e(){var t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{},a=t.paramObject;var r=a.title,d=a.keep;if(!r)return;var i=_utils2.default.getTiddler(r);var l=i?i.fields:{};var s=d?d.split():[];var n={title:r,text:\"\"};for(var p=s.length;p--;){var o=s[p];n[o]=l[o]}$tw.wiki.deleteTiddler(r);$tw.wiki.addTiddler(new $tw.Tiddler(n))};var handleMixTiddlers=function e(t){var a=t.paramObject,r=a===undefined?{}:a;var d=r.tiddlers,i=r.output;if(!d||!i)return;var l=$tw.utils.parseStringArray(d);var s=_utils2.default.getMergedTiddlers(l,i);$tw.wiki.addTiddler(s)};var handleConfirmDialog=function e(t){var a=t.param;_utils2.default.setField(a,\"text\",\"1\")};var handleSuppressDialog=function e(t){var a=t.paramObject;var r=a.dialog,d=a.suppress;if(_utils2.default.isTrue(d,false)){_utils2.default.setEntry($tm.ref.sysUserConf,\"suppressedDialogs.\"+r,true)}};var handleDownloadGraph=function e(t){var a=t.paramObject;var r=a.view;var d=$tm.adapter.getGraph({view:r});d.nodes=_utils2.default.convert(d.nodes,\"array\");d.edges=_utils2.default.convert(d.edges,\"array\");var i=\"$:/temp/tmap/export\";_utils2.default.setField(i,\"text\",JSON.stringify(d,null,2));$tw.rootWidget.dispatchEvent({type:\"tm-download-file\",param:i,paramObject:{filename:r+\".json\"}})};var handleConfigureSystem=function e(){var t=_utils2.default.getMatches($tm.selector.allPotentialNodes);var a=$tm.adapter.getEdgesForSet(t);var r=$tw.wiki.getTiddler($tm.path.pluginRoot).fields;var d=$tw.wiki.getTiddlerData($tm.ref.sysMeta);var i=_utils2.default.getTiddler($tm.ref.liveTab).hasTag(\"$:/tags/SideBar\");var l={numberOfNodes:\"\"+t.length,numberOfEdges:\"\"+Object.keys(a).length,pluginVersion:\"v\"+r.version,dataStructureVersion:\"v\"+d.dataStructureState,dialog:{preselects:{liveTab:\"\"+i,\"inherited-style\":JSON.stringify(_vis2.default),\"config.vis\":_utils2.default.getText($tm.ref.visUserConf),\"config.sys\":$tm.config.sys}}};$tm.dialogManager.open(\"globalConfig\",l,function(e,t){if(!e)return;var a=_utils2.default.getPropertiesByPrefix(t.fields,\"config.sys.\",true);$tw.wiki.setTiddlerData($tm.ref.sysUserConf,a);if(_utils2.default.isTrue(t.fields.liveTab,false)){_utils2.default.setField($tm.ref.liveTab,\"tags\",\"$:/tags/SideBar\")}else{$tw.wiki.deleteTiddler($tm.ref.liveTab)}_utils2.default.setField($tm.ref.visUserConf,\"text\",t.fields[\"config.vis\"])})};var handleGenerateWidget=function e(t){var a=t.paramObject,r=a===undefined?{}:a;var d={dialog:{preselects:{\"var.view\":r.view||$tm.misc.defaultViewLabel}}};$tm.dialogManager.open(\"widgetCodeGenerator\",d)};var handleRemoveEdge=function e(t){var a=t.paramObject;$tm.adapter.deleteEdge(a)};var handleCreateEdge=function e(t){var a=t.paramObject;var r=a.from,d=a.to,i=a.force;if(!r||!d)return;if(_utils2.default.tiddlerExists(r)&&_utils2.default.tiddlerExists(d)||i){_utils2.default.addTiddler(d);_utils2.default.addTiddler(r);var l=new _Edge2.default($tm.adapter.makeNode(r).id,$tm.adapter.makeNode(d).id,a.label,a.id);$tm.adapter.insertEdge(l);$tm.notify(\"Edge inserted\")}};var handleOpenTypeManager=function e(t){var a=t.type,r=t.paramObject,d=r===undefined?{}:r;var i=a.match(/tmap:tm-(.*)/)[1];if(i===\"manage-edge-types\"){var l=\"Edge-Type Manager\";var s=$tm.selector.allEdgeTypes;var n=$tm.path.edgeTypes}else{var l=\"Node-Type Manager\";var s=$tm.selector.allNodeTypes;var n=$tm.path.nodeTypes}var p={mode:i,topic:l,searchSelector:s,typeRootPath:n};var o=$tm.dialogManager.open(\"MapElementTypeManager\",p);if(d.type){handleLoadTypeForm({paramObject:{mode:i,id:d.type,output:o.fields[\"output\"]}})}};var handleLoadTypeForm=function e(t){var a=t.paramObject,r=a.mode,d=a.id,i=a.output;var l=i;var s=r===\"manage-edge-types\"?_EdgeType2.default.getInstance(d):_NodeType2.default.getInstance(d);s.save(l,true);if(r===\"manage-edge-types\"){var n=$tm.adapter.selectEdgesByType(s);var p=Object.keys(n).length;_utils2.default.setField(l,\"temp.usageCount\",p)}$tw.wiki.addTiddler(new $tw.Tiddler(_utils2.default.getTiddler(l),{typeTRef:s.fullPath,\"temp.idImmutable\":s.isShipped?\"true\":\"\",\"temp.newId\":s.id,\"inherited-style\":JSON.stringify((r===\"manage-edge-types\"?$tm.config.vis.edges:$tm.config.vis.nodes)||{})}));_utils2.default.deleteByPrefix(\"$:/state/tabs/MapElementTypeManager\")};var handleSaveTypeForm=function e(t){var a=t.paramObject;var r=_utils2.default.getTiddler(a.output);if(!r)return;var d=r.fields.id;var i=a.mode;if(_utils2.default.isTrue(r.fields[\"temp.deleteType\"],false)){deleteType(i,d,r)}else{saveType(i,d,r)}};var deleteType=function e(t,a,r){var d=t===\"manage-edge-types\"?_EdgeType2.default.getInstance(a):_NodeType2.default.getInstance(a);$tm.logger(\"debug\",\"Deleting type\",d);if(t===\"manage-edge-types\"){$tm.adapter._processEdgesWithType(d,{action:\"delete\"})}else{$tm.adapter.removeNodeType(d)}$tw.wiki.addTiddler(new $tw.Tiddler({title:_utils2.default.getTiddlerRef(r)}));$tm.notify(\"Deleted type\")};var saveType=function e(t,a,r){var d=_utils2.default.getTiddler(r);var i=t===\"manage-edge-types\"?_EdgeType2.default:_NodeType2.default;var l=new i(a,d);l.save();var s=d.fields[\"temp.newId\"];if(s&&s!==d.fields[\"id\"]){if(t===\"manage-edge-types\"){$tm.adapter._processEdgesWithType(l,{action:\"rename\",newName:s})}else{new _NodeType2.default(s,l).save();$tw.wiki.deleteTiddler(l.fullPath)}_utils2.default.setField(d,\"id\",s)}$tm.notify(\"Saved type data\")};var handleCreateType=function e(t){var a=t.paramObject,r=a.mode,d=a.id,i=d===undefined?\"New type\":d,l=a.output;var s=r===\"manage-edge-types\"?new _EdgeType2.default(i):new _NodeType2.default(i);s.save();handleLoadTypeForm({paramObject:{id:s.id,mode:r,output:l}})};var name=exports.name=\"tmap.listener\";var platforms=exports.platforms=[\"browser\"];var after=exports.after=[\"rootwidget\",\"tmap.caretaker\"];var before=exports.before=[\"story\"];var synchronous=exports.synchronous=true;var startup=exports.startup=function e(){_utils2.default.addTWlisteners({\"tmap:tm-remove-edge\":handleRemoveEdge,\"tmap:tm-load-type-form\":handleLoadTypeForm,\"tmap:tm-save-type-form\":handleSaveTypeForm,\"tmap:tm-create-type\":handleCreateType,\"tmap:tm-create-edge\":handleCreateEdge,\"tmap:tm-suppress-dialog\":handleSuppressDialog,\"tmap:tm-generate-widget\":handleGenerateWidget,\"tmap:tm-download-graph\":handleDownloadGraph,\"tmap:tm-configure-system\":handleConfigureSystem,\"tmap:tm-manage-edge-types\":handleOpenTypeManager,\"tmap:tm-manage-node-types\":handleOpenTypeManager,\"tmap:tm-cancel-dialog\":handleCancelDialog,\"tmap:tm-clear-tiddler\":handleClearTiddler,\"tmap:tm-merge-tiddlers\":handleMixTiddlers,\"tmap:tm-confirm-dialog\":handleConfirmDialog},$tw.rootWidget,undefined)};\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/services/Listener.js.map\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/plugins/felixhayashi/tiddlymap/js/services/tracker": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/services/tracker",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _createClass=function(){function e(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||false;r.configurable=true;if(\"value\"in r)r.writable=true;Object.defineProperty(e,r.key,r)}}return function(t,i,r){if(i)e(t.prototype,i);if(r)e(t,r);return t}}();/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/services/tracker\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}var Tracker=function(){function e(t){_classCallCheck(this,e);this.wiki=$tw.wiki;this.logger=$tm.logger;this._createIndex()}_createClass(e,[{key:\"_createIndex\",value:function e(){var t=this.tById={};var i=this.idByT={};this.wiki.each(function(e,r){if(_utils2.default.isSystemOrDraft(e)){return}var l=e.fields[\"tmap.id\"];if(!l){l=_utils2.default.genUUID();_utils2.default.setField(e,\"tmap.id\",l)}t[l]=r;i[r]=l})}},{key:\"assignId\",value:function e(t,i){var r=_utils2.default.getTiddler(t);if(!r){throw new ResourceNotFoundException(t)}var l=r.fields[\"tmap.id\"];if(!l||i){l=_utils2.default.genUUID();_utils2.default.setField(r,\"tmap.id\",l);this.logger(\"info\",\"Assigning new id to\",r.fields.title)}this.tById[l]=r.fields.title;this.idByT[r.fields.title]=l;return l}},{key:\"getIdByTiddler\",value:function e(t){return this.idByT[_utils2.default.getTiddlerRef(t)]}},{key:\"getIdsByTiddlers\",value:function e(){return this.idByT}},{key:\"getTiddlersByIds\",value:function e(){return this.tById}},{key:\"getTiddlerById\",value:function e(t){return this.tById[t]}}]);return e}();exports.default=Tracker;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/services/Tracker.js.map\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/tiddlymap/js/widget/MapConfigWidget": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/widget/MapConfigWidget",
"text": "\"use strict\";var _typeof=typeof Symbol===\"function\"&&typeof Symbol.iterator===\"symbol\"?function(e){return typeof e}:function(e){return e&&typeof Symbol===\"function\"&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e};/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/widget/MapConfigWidget\ntype: application/javascript\nmodule-type: widget\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);var _vis=require(\"$:/plugins/felixhayashi/vis/vis.js\");var _vis2=_interopRequireDefault(_vis);var _widget=require(\"$:/core/modules/widgets/widget.js\");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function MapConfigWidget(e,t){_widget.widget.call(this);this.initialise(e,t);this.computeAttributes()}MapConfigWidget.prototype=Object.create(_widget.widget.prototype);MapConfigWidget.prototype.render=function(e,t){this.parentDomNode=e;if(!this.domNode){this.domNode=this.document.createElement(\"div\");$tw.utils.addClass(this.domNode,\"tmap-config-widget\");e.insertBefore(this.domNode,t)}if(this.network){this.network.destroy()}this.networkContainer=document.createElement(\"div\");this.domNode.appendChild(this.networkContainer);this.refreshTrigger=this.getAttribute(\"refresh-trigger\");this.pipeTRef=this.getVariable(\"currentTiddler\");this.inheritedFields=$tw.utils.parseStringArray(this.getAttribute(\"inherited\"));this.extensionTField=this.getAttribute(\"extension\");this.mode=this.getAttribute(\"mode\");for(var i=0;i<this.inheritedFields.length;i++){var s=this.inheritedFields[i];var n=_utils2.default.parseFieldData(this.pipeTRef,s,{});if(this.mode===\"manage-edge-types\"){n={edges:n}}else if(this.mode===\"manage-node-types\"){n={nodes:n}}this.inherited=_utils2.default.merge(this.inherited,n)}this.extension=_utils2.default.parseFieldData(this.pipeTRef,this.extensionTField,{});if(this.mode===\"manage-edge-types\"){if(!this.extension.edges){this.extension={edges:this.extension}}}else if(this.mode===\"manage-node-types\"){if(!this.extension.nodes){this.extension={nodes:this.extension}}}var r=_utils2.default.isTrue(this.getAttribute(\"save-only-changes\"));this.changes=r?{}:this.extension;var o={nodes:[],edges:[]};var a=_utils2.default.merge({},this.inherited,this.extension);$tw.utils.extend(a,{configure:{enabled:true,showButton:false,filter:this.getOptionFilter(this.mode)}});this.network=new _vis2.default.Network(this.networkContainer,o,a);this.network.on(\"configChange\",this.handleConfigChange.bind(this));var l=this.parentDomNode.getBoundingClientRect().height;this.parentDomNode.style[\"height\"]=l+\"px\";var h=this.handleResetEvent.bind(this);this.networkContainer.addEventListener(\"reset\",h,false);$tm.registry.push(this);this.enhanceConfigurator()};MapConfigWidget.prototype.handleResetEvent=function(e){var t={};t[e.detail.trigger.path]=null;this.handleConfigChange(t)};MapConfigWidget.prototype.handleConfigChange=function(e){var t=_utils2.default.flatten(this.changes);var i=_utils2.default.flatten(e);var s=Object.keys(_utils2.default.flatten(e))[0];var n=i[s]===null;if(n){t[s]=undefined;this.changes=_utils2.default.unflatten(t)}else{this.changes=_utils2.default.merge(this.changes,e)}var r=_utils2.default.merge({},this.changes);if(this.mode===\"manage-node-types\"){r=r[\"nodes\"]}if(this.mode===\"manage-edge-types\"){r=r[\"edges\"]}_utils2.default.writeFieldData(this.pipeTRef,this.extensionTField,r,$tm.config.sys.jsonIndentation);var o=\"vis-configuration-wrapper\";var a=this.networkContainer.getElementsByClassName(o)[0];a.style.height=a.getBoundingClientRect().height+\"px\";if(n){window.setTimeout(this.refresh.bind(this),0)}else{window.setTimeout(this.enhanceConfigurator.bind(this),50)}};MapConfigWidget.prototype.enhanceConfigurator=function(){var e=\"vis-configuration-wrapper\";var t=this.networkContainer.getElementsByClassName(e)[0].children;var i=[];var s=_utils2.default.flatten(this.changes);for(var n=0;n<t.length;n++){if(!t[n].classList.contains(\"vis-config-item\"))continue;var r=new VisConfElement(t[n],i,n);i.push(r);if(r.level===0)continue;r.setActive(!!s[r.path])}};function VisConfElement(e,t,i){var s=\"getElementsByClassName\";this.el=e;this.labelEl=e[s](\"vis-config-label\")[0]||e[s](\"vis-config-header\")[0]||e;var n=this.labelEl.innerText||this.labelEl.textContent;this.label=n&&n.match(/([a-zA-Z0-9]+)/)[1];this.level=parseInt(e.className.match(/.*vis-config-s(.).*/)[1])||0;this.path=this.label;if(this.level>0){for(var r=i;r--;){var o=t[r];if(o.level<this.level){this.path=o.path+\".\"+this.path;break}}}}VisConfElement.prototype.setActive=function(e){if(!e)return;var t=\"tmap-vis-config-item-\"+(e?\"active\":\"inactive\");$tw.utils.addClass(this.el,t);if(e){var i=document.createElement(\"button\");i.innerHTML=\"reset\";i.className=\"tmap-config-item-reset\";var s=this;i.addEventListener(\"click\",function(e){e.currentTarget.dispatchEvent(new CustomEvent(\"reset\",{detail:{trigger:s},bubbles:true,cancelable:true}))},false);this.el.appendChild(i)}};MapConfigWidget.prototype.getOptionFilter=function(e){var t={nodes:{borderWidth:true,borderWidthSelected:true,widthConstraint:true,heightConstraint:true,color:{background:true,border:true},font:{color:true,size:true},icon:true,labelHighlightBold:false,shadow:true,shape:true,shapeProperties:{borderDashes:true},size:true},edges:{arrows:true,color:true,dashes:true,font:true,labelHighlightBold:false,length:true,selfReferenceSize:false,shadow:true,smooth:true,width:true},interaction:{hideEdgesOnDrag:true,hideNodesOnDrag:true,tooltipDelay:true},layout:{hierarchical:true},manipulation:{initiallyActive:true},physics:{forceAtlas2Based:{gravitationalConstant:true,springLength:true,springConstant:true,damping:true,centralGravity:true}}};if(e===\"manage-edge-types\"){t={edges:t.edges}}else if(e===\"manage-node-types\"){t={nodes:t.nodes}}else{t.edges.arrows=false}return function(e,i){i=i.concat([e]);var s=t;for(var n=0,r=i.length;n<r;n++){if(s[i[n]]===true){return true}else if(s[i[n]]==null){return false}s=s[i[n]]}return false}};MapConfigWidget.prototype.isZombieWidget=function(){return!document.body.contains(this.parentDomNode)};MapConfigWidget.prototype.destruct=function(){if(this.network){this.network.destroy()}};MapConfigWidget.prototype.refresh=function(e){if(this.isZombieWidget()||!this.network)return;if(!e||e[this.refreshTrigger]){this.refreshSelf();return true}};MapConfigWidget.prototype.setNull=function(e){for(var t in e){if(_typeof(e[t])==\"object\"){this.setNull(e[t])}else{e[t]=undefined}}};exports[\"tmap-config\"]=MapConfigWidget;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/widget/ConfigurationWidget.js.map\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/plugins/felixhayashi/tiddlymap/js/widget/EdgeListWidgetItem": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/widget/EdgeListWidgetItem",
"text": "\"use strict\";var _createClass=function(){function e(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||false;i.configurable=true;if(\"value\"in i)i.writable=true;Object.defineProperty(e,i.key,i)}}return function(t,r,i){if(r)e(t.prototype,r);if(i)e(t,i);return t}}();var _widget=require(\"$:/core/modules/widgets/widget.js\");var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}function _possibleConstructorReturn(e,t){if(!e){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")}return t&&(typeof t===\"object\"||typeof t===\"function\")?t:e}function _inherits(e,t){if(typeof t!==\"function\"&&t!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t)}e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:false,writable:true,configurable:true}});if(t)Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t}/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/widget/EdgeListWidgetItem\ntype: application/javascript\nmodule-type: widget\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var EdgeListItemWidget=function(e){_inherits(t,e);function t(e,r){_classCallCheck(this,t);var i=_possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,r));i.arrows=$tm.misc.arrows;return i}_createClass(t,[{key:\"execute\",value:function e(){var t=this.parseTreeNode;var r=$tm.tracker.getTiddlerById(t.neighbour.id);var i=_utils2.default.flatten(t.edge);for(var o in i){if(typeof i[o]===\"string\"){this.setVariable(\"edge.\"+o,i[o])}}this.setVariable(\"currentTiddler\",r);this.setVariable(\"neighbour\",r);var n=$tm.indeces.allETy[i.type];var s=i.to===t.neighbour.id?\"to\":\"from\";var a=s;if(n.biArrow){a=\"bi\"}else{if(s===\"to\"&&n.invertedArrow){a=\"from\"}else if(s===\"from\"&&n.invertedArrow){a=\"to\"}}this.setVariable(\"direction\",a);this.setVariable(\"directionSymbol\",a===\"bi\"?this.arrows.bi:a===\"from\"?this.arrows.in:this.arrows.out);this.makeChildWidgets()}},{key:\"refresh\",value:function e(t){return this.refreshChildren(t)}}]);return t}(_widget.widget);exports[\"tmap-edgelistitem\"]=EdgeListItemWidget;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/widget/EdgeListItemWidget.js.map\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/plugins/felixhayashi/tiddlymap/js/widget/EdgeListWidget": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/widget/EdgeListWidget",
"text": "\"use strict\";var _createClass=function(){function e(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||false;i.configurable=true;if(\"value\"in i)i.writable=true;Object.defineProperty(e,i.key,i)}}return function(t,r,i){if(r)e(t.prototype,r);if(i)e(t,i);return t}}();var _widget=require(\"$:/core/modules/widgets/widget.js\");var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}function _possibleConstructorReturn(e,t){if(!e){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")}return t&&(typeof t===\"object\"||typeof t===\"function\")?t:e}function _inherits(e,t){if(typeof t!==\"function\"&&t!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t)}e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:false,writable:true,configurable:true}});if(t)Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t}/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/widget/EdgeListWidget\ntype: application/javascript\nmodule-type: widget\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var EdgeListWidget=function(e){_inherits(t,e);function t(e,r){_classCallCheck(this,t);return _possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,r))}_createClass(t,[{key:\"render\",value:function e(t,r){this.parentDomNode=t;this.computeAttributes();this.execute();this.renderChildren(t,r)}},{key:\"execute\",value:function e(){var t=[this.getVariable(\"currentTiddler\")];var r=this.getAttribute(\"filter\",\"\");var i=this.getAttribute(\"direction\",\"both\");var s=$tm.indeces.allETy;var n=_utils2.default.getEdgeTypeMatches(r,s);var u={typeWL:_utils2.default.getLookupTable(n),direction:i};var o=$tm.adapter.getNeighbours(t,u),a=o.nodes,l=o.edges;var f=[];for(var c in l){var h=l[c];var p=a[h.to]||a[h.from];if(!p){continue}f.push({type:\"tmap-edgelistitem\",edge:h,typeWL:u.typeWL,neighbour:p,children:this.parseTreeNode.children})}if(!f.length){this.wasEmpty=true;f=this.getEmptyMessage()}else if(this.wasEmpty){this.removeChildDomNodes()}this.makeChildWidgets(f)}},{key:\"getEmptyMessage\",value:function e(){var t=this.wiki.parseText(\"text/vnd.tiddlywiki\",this.getAttribute(\"emptyMessage\",\"\"),{parseAsInline:true});return t?t.tree:[]}},{key:\"refresh\",value:function e(t){var r=this.computeAttributes();if(_utils2.default.hasElements(r)){this.refreshSelf();return true}for(var i in t){if(!_utils2.default.isSystemOrDraft(i)){this.refreshSelf();return true}}return this.refreshChildren(t)}}]);return t}(_widget.widget);exports[\"tmap-connections\"]=EdgeListWidget;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/widget/EdgeListWidget.js.map\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/plugins/felixhayashi/tiddlymap/js/widget/MapWidget": {
"title": "$:/plugins/felixhayashi/tiddlymap/js/widget/MapWidget",
"text": "\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.tiddlymap=exports.tmap=undefined;var _extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var a in i){if(Object.prototype.hasOwnProperty.call(i,a)){e[a]=i[a]}}}return e};var _createClass=function(){function e(e,t){for(var i=0;i<t.length;i++){var a=t[i];a.enumerable=a.enumerable||false;a.configurable=true;if(\"value\"in a)a.writable=true;Object.defineProperty(e,a.key,a)}}return function(t,i,a){if(i)e(t.prototype,i);if(a)e(t,a);return t}}();var _CallbackManager=require(\"$:/plugins/felixhayashi/tiddlymap/js/CallbackManager\");var _CallbackManager2=_interopRequireDefault(_CallbackManager);var _ViewAbstraction=require(\"$:/plugins/felixhayashi/tiddlymap/js/ViewAbstraction\");var _ViewAbstraction2=_interopRequireDefault(_ViewAbstraction);var _EdgeType=require(\"$:/plugins/felixhayashi/tiddlymap/js/EdgeType\");var _EdgeType2=_interopRequireDefault(_EdgeType);var _Popup=require(\"$:/plugins/felixhayashi/tiddlymap/js/Popup\");var _Popup2=_interopRequireDefault(_Popup);var _vis=require(\"$:/plugins/felixhayashi/vis/vis.js\");var _vis2=_interopRequireDefault(_vis);var _widget=require(\"$:/core/modules/widgets/widget.js\");var _utils=require(\"$:/plugins/felixhayashi/tiddlymap/js/utils\");var _utils2=_interopRequireDefault(_utils);var _SelectionRectangle=require(\"$:/plugins/felixhayashi/tiddlymap/js/lib/SelectionRectangle\");var _SelectionRectangle2=_interopRequireDefault(_SelectionRectangle);var _environment=require(\"$:/plugins/felixhayashi/tiddlymap/js/lib/environment\");var env=_interopRequireWildcard(_environment);function _interopRequireWildcard(e){if(e&&e.__esModule){return e}else{var t={};if(e!=null){for(var i in e){if(Object.prototype.hasOwnProperty.call(e,i))t[i]=e[i]}}t.default=e;return t}}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _defineProperty(e,t,i){if(t in e){Object.defineProperty(e,t,{value:i,enumerable:true,configurable:true,writable:true})}else{e[t]=i}return e}function _toConsumableArray(e){if(Array.isArray(e)){for(var t=0,i=Array(e.length);t<e.length;t++){i[t]=e[t]}return i}else{return Array.from(e)}}function _classCallCheck(e,t){if(!(e instanceof t)){throw new TypeError(\"Cannot call a class as a function\")}}function _possibleConstructorReturn(e,t){if(!e){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")}return t&&(typeof t===\"object\"||typeof t===\"function\")?t:e}function _inherits(e,t){if(typeof t!==\"function\"&&t!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t)}e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:false,writable:true,configurable:true}});if(t)Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t}/* @preserve TW-Guard */\n/*\\\n\ntitle: $:/plugins/felixhayashi/tiddlymap/js/widget/MapWidget\ntype: application/javascript\nmodule-type: widget\n\n@preserve\n\n\\*/\n/* @preserve TW-Guard */var MapWidget=function(e){_inherits(t,e);function t(e,i){_classCallCheck(this,t);var a=_possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,i));a.getAttr=a.getAttribute;a.isDebug=_utils2.default.isTrue($tm.config.sys.debug,false);_utils2.default.bindTo(a,[\"constructTooltip\",\"handleResizeEvent\",\"handleClickEvent\",\"handleCanvasKeyup\",\"handleCanvasKeydown\",\"handleCanvasScroll\",\"handleCanvasMouseMove\",\"handleWidgetKeyup\",\"handleWidgetKeydown\",\"handleTriggeredRefresh\",\"handleContextMenu\"]);a.callbackManager=new _CallbackManager2.default;a.computeAttributes();a.editorMode=a.getAttr(\"editor\");a.clickToUse=_utils2.default.isTrue(a.getAttr(\"click-to-use\"),false);a.id=a.getAttr(\"object-id\")||a.getStateQualifier();a.widgetPopupsPath=$tm.path.tempPopups+\"/\"+a.id;if(a.editorMode){_utils2.default.addTWlisteners({\"tmap:tm-create-view\":a.handleCreateView,\"tmap:tm-rename-view\":a.handleRenameView,\"tmap:tm-delete-view\":a.handleDeleteView,\"tmap:tm-delete-element\":a.handleDeleteElement,\"tmap:tm-edit-view\":a.handleEditView,\"tmap:tm-generate-widget\":a.handleGenerateWidget,\"tmap:tm-toggle-central-topic\":a.handleSetCentralTopic,\"tmap:tm-save-canvas\":a.handleSaveCanvas},a,a)}_utils2.default.addTWlisteners({\"tmap:tm-focus-node\":a.handleFocusNode,\"tmap:tm-reset-focus\":a.repaintGraph,\"tmap:tm-neighbourhood-reset-trace\":function e(){a.initAndRenderGraph(a.graphDomNode)}},a,a);a.visListeners={click:a.handleVisSingleClickEvent,doubleClick:a.handleVisDoubleClickEvent,stabilized:a.handleVisStabilizedEvent,selectNode:a.handleVisSelectNode,deselectNode:a.handleVisDeselectNode,dragStart:a.handleVisDragStart,dragEnd:a.handleVisDragEnd,hoverNode:a.handleVisHoverElement,hoverEdge:a.handleVisHoverElement,blurNode:a.handleVisBlurElement,blurEdge:a.handleVisBlurElement,beforeDrawing:a.handleVisBeforeDrawing,afterDrawing:a.handleVisAfterDrawing,stabilizationProgress:a.handleVisLoading,stabilizationIterationsDone:a.handleVisLoadingDone};a.windowDomListeners={resize:[a.handleResizeEvent,false],click:[a.handleClickEvent,false],mousemove:[a.handleCanvasMouseMove,true]};a.canvasDomListeners={keyup:[a.handleCanvasKeyup,true],keydown:[a.handleCanvasKeydown,true],mousewheel:[a.handleCanvasScroll,true],DOMMouseScroll:[a.handleCanvasScroll,true],contextmenu:[a.handleContextMenu,true],MozMousePixelScroll:[a.handleExtraCanvasScroll,true]};a.widgetDomListeners={keyup:[a.handleWidgetKeyup,true],keydown:[a.handleWidgetKeydown,true]};a.conVector={from:null,to:null};return a}_createClass(t,[{key:\"handleConnectionEvent\",value:function e(t,i){var a=this;var s=this.view.getEdgeTypeFilter();var r={fromLabel:$tm.adapter.selectNodeById(t.from).label,toLabel:$tm.adapter.selectNodeById(t.to).label,view:this.view.getLabel(),eTyFilter:s.raw};$tm.dialogManager.open(\"getEdgeType\",r,function(e,r){if(e){var n=_utils2.default.getText(r);var o=_EdgeType2.default.getInstance(n);if(!o.namespace){var l=_EdgeType2.default.getIdParts(o.id),d=l.marker,h=l.name;var u=a.view.getConfig(\"edge_type_namespace\");o=_EdgeType2.default.getInstance(_EdgeType2.default.getId(d,u,h))}if(!o.exists()){o.save()}t.type=o.id;$tm.adapter.insertEdge(t);a.isPreventZoomOnNextUpdate=true;if(!a.view.isEdgeTypeVisible(o)){$tm.dialogManager.open(\"edgeNotVisible\",{type:o.id,view:a.view.getLabel(),eTyFilter:s.pretty})}}if(typeof i===\"function\"){i(e)}})}},{key:\"checkForFreshInstall\",value:function e(){if(!_utils2.default.getEntry($tm.ref.sysMeta,\"showWelcomeMessage\",true)){return}_utils2.default.setEntry($tm.ref.sysMeta,\"showWelcomeMessage\",false);var t={dialog:{preselects:{\"config.storyview\":\"true\",\"config.navigation\":\"true\",\"config.sidebar\":\"true\",\"config.demo\":\"true\"}}};$tm.dialogManager.open(\"welcome\",t,function(e,t){var i=_utils2.default.getPropertiesByPrefix(t.fields,\"config.\",true);if(i[\"storyview\"]&&_utils2.default.tiddlerExists(\"$:/plugins/felixhayashi/topstoryview\")){_utils2.default.setText(\"$:/view\",\"top\")}if(i[\"navigation\"]){_utils2.default.setText(\"$:/config/Navigation/openLinkFromInsideRiver\",\"above\");_utils2.default.setText(\"$:/config/Navigation/openLinkFromOutsideRiver\",\"top\")}if(i[\"sidebar\"]){_utils2.default.setText(\"$:/themes/tiddlywiki/vanilla/options/sidebarlayout\",\"fixed-fluid\")}if(i[\"demo\"]){var a=$tm.misc.defaultViewLabel;var s=$tm.adapter.insertNode({label:\"Have fun with\",x:0,y:0},a);var r=$tm.adapter.insertNode({label:\"TiddlyMap!!\",x:100,y:100},a);$tm.adapter.insertEdge({from:s.id,to:r.id})}if(Object.keys(i).length){_utils2.default.touch(\"$:/plugins/felixhayashi/tiddlymap\")}})}},{key:\"openStandardConfirmDialog\",value:function e(t,i){var a={message:i};$tm.dialogManager.open(\"getConfirmation\",a,t)}},{key:\"logger\",value:function e(t,i){if(this.isDebug){var a=Array.prototype.slice.call(arguments,1);a.unshift(\"@\"+this.id);a.unshift(t);$tm.logger.apply(this,a)}}},{key:\"render\",value:function e(t,i){this.parentDomNode=t;this.domNode=this.document.createElement(\"div\");t.insertBefore(this.domNode,i);this.registerClassNames(this.domNode);this.viewHolderRef=this.getViewHolderRef();this.view=this.getView();this.graphBarDomNode=this.document.createElement(\"div\");$tw.utils.addClass(this.graphBarDomNode,\"tmap-topbar\");this.domNode.appendChild(this.graphBarDomNode);this.graphDomNode=this.document.createElement(\"div\");this.domNode.appendChild(this.graphDomNode);$tw.utils.addClass(this.graphDomNode,\"tmap-vis-graph\");if(_utils2.default.isPreviewed(this)){$tw.utils.addClass(this.domNode,\"tmap-static-mode\");this.renderPreview(this.graphBarDomNode,this.graphDomNode)}else{this.renderFullWidget(this.domNode,this.graphBarDomNode,this.graphDomNode);var a=this.document.createElement(\"canvas\");$tw.utils.addClass(a,\"tmap-download-canvas\");this.domNode.appendChild(a)}}},{key:\"renderPreview\",value:function e(t,i){var a=this.view.snapshotTRef;var s=_utils2.default.getTiddler(a);var r=this.document.createElement(\"span\");r.innerHTML=this.view.getLabel();r.className=\"tmap-view-label\";t.appendChild(r);if(s){var n=_utils2.default.getTiddlerNode(this.view.getRoot());n.children.push(_utils2.default.getTranscludeNode(a));this.makeChildWidgets([n]);this.renderChildren(i,i.firstChild)}else{$tw.utils.addClass(i,\"tmap-graph-placeholder\")}}},{key:\"renderFullWidget\",value:function e(t,i,a){_utils2.default.setDomListeners(\"add\",window,this.windowDomListeners);_utils2.default.setDomListeners(\"add\",t,this.widgetDomListeners);this.addLoadingBar(this.domNode);this.tooltip=new _Popup2.default(this.domNode,{className:\"tmap-tooltip\",showDelay:$tm.config.sys.popups.delay});this.contextMenu=new _Popup2.default(this.domNode,{className:\"tmap-context-menu\",showDelay:0,hideOnClick:true,leavingDelay:999999});this.sidebar=_utils2.default.getFirstElementByClassName(\"tc-sidebar-scrollable\");this.isInSidebar=this.sidebar&&!this.domNode.isTiddlyWikiFakeDom&&this.sidebar.contains(this.domNode);this.rebuildEditorBar(i);this.reloadRefreshTriggers();this.initAndRenderGraph(a);$tm.registry.push(this);this.checkForFreshInstall();if(this.id===$tm.misc.mainEditorId){var s=$tm.url;if(s&&s.query[\"tmap-enlarged\"]){this.toggleEnlargedMode(s.query[\"tmap-enlarged\"]);this.setView(s.query[\"tmap-view\"])}}}},{key:\"registerClassNames\",value:function e(t){var i=$tw.utils.addClass;i(t,\"tmap-widget\");if(this.clickToUse){i(t,\"tmap-click-to-use\")}if(this.getAttr(\"editor\")===\"advanced\"){i(t,\"tmap-advanced-editor\")}if(this.getAttr(\"design\")===\"plain\"){i(t,\"tmap-plain-design\")}if(!_utils2.default.isTrue(this.getAttr(\"show-buttons\"),true)){i(t,\"tmap-no-buttons\")}if(this.getAttr(\"class\")){i(t,this.getAttr(\"class\"))}}},{key:\"addLoadingBar\",value:function e(t){this.graphLoadingBarDomNode=this.document.createElement(\"progress\");$tw.utils.addClass(this.graphLoadingBarDomNode,\"tmap-loading-bar\");t.appendChild(this.graphLoadingBarDomNode)}},{key:\"rebuildEditorBar\",value:function e(){this.removeChildDomNodes();var t=this.view;var i=\"tmap-unicode-button\";var a=i+\" tmap-active-button\";var s={widgetQualifier:this.getStateQualifier(),widgetTempPath:this.widgetTempPath,widgetPopupsPath:this.widgetPopupsPath,isViewBound:String(this.isViewBound()),viewRoot:t.getRoot(),viewLabel:t.getLabel(),viewHolder:this.getViewHolderRef(),edgeTypeFilter:t.edgeTypeFilterTRef,allEdgesFilter:$tm.selector.allEdgeTypes,isShowNeighbourhood:String(t.isEnabled(\"neighbourhood_scope\")),tracingBtnClass:t.isEnabled(\"neighbourhood_trace_clicks\")?a:i,neighScopeBtnClass:t.isEnabled(\"neighbourhood_scope\")?a:i,rasterMenuBtnClass:t.isEnabled(\"raster\")?a:i};for(var r in s){this.setVariable(r,s[r])}var n=_utils2.default.getTiddlerNode(t.getRoot());if(this.editorMode===\"advanced\"){n.children.push(_utils2.default.getTranscludeNode($tm.ref.graphBar))}else{var o=_utils2.default.getElementNode(\"span\",\"tmap-view-label\",t.getLabel());n.children.push(o)}n.children.push(_utils2.default.getTranscludeNode($tm.ref.focusButton));this.makeChildWidgets([n]);this.renderChildren(this.graphBarDomNode,this.graphBarDomNode.firstChild)}},{key:\"refresh\",value:function e(t){return false}},{key:\"update\",value:function e(t){if(!this.network||this.isZombieWidget()||_utils2.default.isPreviewed(this)){return}var i=t.changedTiddlers;this.callbackManager.refresh(i);if(this.isViewSwitched(i)||this.hasChangedAttributes()||t[env.path.options]||i[this.view.getRoot()]){this.logger(\"warn\",\"View switched or config changed\");this.isPreventZoomOnNextUpdate=false;this.view=this.getView(true);this.reloadRefreshTriggers();this.trace=_utils2.default.makeHashMap();this.rebuildEditorBar();this.reloadBackgroundImage();this.initAndRenderGraph(this.graphDomNode)}else{var a=this.view.update(t);if(a){this.logger(\"warn\",\"View components modified\");this.rebuildGraph({resetFocus:{delay:1e3,duration:1e3}})}else{if(t[env.path.nodeTypes]||this.hasChangedElements(i)){this.rebuildGraph()}this.refreshChildren(i)}}}},{key:\"hidePopups\",value:function e(t,i){this.tooltip.hide(t,i);this.contextMenu.hide(0,true)}},{key:\"reloadRefreshTriggers\",value:function e(){this.callbackManager.remove(this.refreshTriggers);var t=this.getAttr(\"refresh-triggers\")||this.view.getConfig(\"refresh-triggers\");this.refreshTriggers=$tw.utils.parseStringArray(t)||[];this.logger(\"debug\",\"Registering refresh trigger\",this.refreshTriggers);for(var i=this.refreshTriggers.length;i--;){this.callbackManager.add(this.refreshTriggers[i],this.handleTriggeredRefresh,false)}}},{key:\"rebuildGraph\",value:function e(){var t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{},i=t.resetFocus;if(_utils2.default.isPreviewed(this)){return}this.logger(\"debug\",\"Rebuilding graph\");this.hidePopups(0,true);this.hasNetworkStabilized=false;var a=this.rebuildGraphData();if(a.changedNodes.withoutPosition.length){i=i||{delay:1e3,duration:1e3};if(!this.view.isEnabled(\"physics_mode\")){var s=this.visOptions.physics;s[s.solver].centralGravity=.25;this.network.setOptions(this.visOptions)}}if(!_utils2.default.hasElements(this.graphData.nodesById)){return}if(i){var r=this.isPreventZoomOnNextUpdate==null?false:typeof this.isPreventZoomOnNextUpdate===\"number\"?this.isPreventZoomOnNextUpdate>Date.now():this.isPreventZoomOnNextUpdate;if(!r){this.network.stabilize();this.resetFocus=i}if(typeof this.isPreventZoomOnNextUpdate!==\"number\"){this.isPreventZoomOnNextUpdate=false}}}},{key:\"getContainer\",value:function e(){return this.domNode}},{key:\"rebuildGraphData\",value:function e(){var t=this;$tm.start(\"Reloading Network\");var i={view:this.view,matches:_utils2.default.getMatches(this.view.getNodeFilter(\"compiled\"))};if(this.view.isEnabled(\"neighbourhood_trace_clicks\")){var a=i.matches;var s=Object.keys(this.trace);var r=[].concat(_toConsumableArray(a.filter(function(e){return!t.trace[e]})),_toConsumableArray(s));i.matches=r;i.includeNeighboursOf=this.view.isEnabled(\"neighbourhood_include_traced_node_neighbours\")?function(e){return r.includes(e)}:function(e){return a.includes(e)}}var n=$tm.adapter.getGraph(i);var o=_utils2.default.refreshDataSet(this.graphData.nodes,n.nodes);var l=_utils2.default.refreshDataSet(this.graphData.edges,n.edges);this.graphData.nodesById=n.nodes;this.graphData.edgesById=n.edges;_utils2.default.setField(\"$:/temp/tmap/nodes/\"+this.view.getLabel(),\"list\",$tm.adapter.getTiddlersByIds(n.nodes));$tm.stop(\"Reloading Network\");return{changedEdges:l,changedNodes:o}}},{key:\"isViewBound\",value:function e(){return _utils2.default.startsWith(this.getViewHolderRef(),$tm.path.localHolders)}},{key:\"isViewSwitched\",value:function e(t){return!_ViewAbstraction2.default.exists(this.view)||t[this.getViewHolderRef()]}},{key:\"hasChangedAttributes\",value:function e(){return Object.keys(this.computeAttributes()).length}},{key:\"hasChangedElements\",value:function e(t){var i=[];var a=this.graphData.nodesById;var s=this.view.isEnabled(\"neighbourhood_scope\");for(var r in t){if(_utils2.default.isSystemOrDraft(r)){continue}if(a[$tm.adapter.getId(r)]||s){return true}if(t[r].modified){i.push(r)}}if(i.length){var n=this.view.getNodeFilter(\"compiled\");var o=_utils2.default.getMatches(n,i);return!!o.length}}},{key:\"initAndRenderGraph\",value:function e(t){var i=this;if(this.network){this._destructVis()}this.logger(\"info\",\"Initializing and rendering the graph\");if(!this.isInSidebar){this.callbackManager.add(\"$:/state/sidebar\",this.handleResizeEvent)}this.visOptions=this.getVisOptions();this.graphData={nodes:new _vis2.default.DataSet,edges:new _vis2.default.DataSet,nodesById:_utils2.default.makeHashMap(),edgesById:_utils2.default.makeHashMap()};this.tooltip.setEnabled(_utils2.default.isTrue($tm.config.sys.popups.enabled,true));this.trace=_utils2.default.makeHashMap();this.network=new _vis2.default.Network(t,this.graphData,this.visOptions);this.canvas=t.getElementsByTagName(\"canvas\")[0];this.networkDomNode=_utils2.default.getFirstElementByClassName(\"vis-network\",t,true);this.canvas.tabIndex=0;for(var a in this.visListeners){this.network.on(a,this.visListeners[a].bind(this))}this.addGraphButtons({\"fullscreen-button\":function e(){i.toggleEnlargedMode(\"fullscreen\")},\"halfscreen-button\":function e(){i.toggleEnlargedMode(\"halfscreen\")}});_utils2.default.setDomListeners(\"add\",this.canvas,this.canvasDomListeners);this.reloadBackgroundImage();this.rebuildGraph({resetFocus:{delay:0,duration:0}});this.handleResizeEvent();this.canvas.focus();if(this.isLiveView()&&this.view.isEnabled(\"neighbourhood_trace_clicks\")){this.trace[_utils2.default.getText(this.refreshTriggers[0])]=true}}},{key:\"handleCanvasKeyup\",value:function e(t){var i=this;var a=this.network.getSelectedNodes();if(t.ctrlKey){t.preventDefault();if(t.keyCode===88){if(this.editorMode){this.handleAddNodesToClipboard(\"move\")}else{$tm.notify(\"Map is read only!\")}}else if(t.keyCode===67){this.handleAddNodesToClipboard(\"copy\")}else if(t.keyCode===86){this.handlePasteNodesFromClipboard()}else if(t.keyCode===65){var s=Object.keys(this.graphData.nodesById);this.network.selectNodes(s)}else if(t.keyCode===49||t.keyCode===50){if(a.length!==1)return;var r=t.keyCode===49?\"from\":\"to\";$tm.notify(_utils2.default.ucFirst(r)+\"-part selected\");this.conVector[r]=a[0];if(this.conVector.from&&this.conVector.to){this.handleConnectionEvent(this.conVector,function(){i.conVector={from:null,to:null}})}}}else{if(t.keyCode===13){if(a.length!==1)return;this.openTiddlerWithId(a[0])}}}},{key:\"handleCanvasKeydown\",value:function e(t){if(t.altKey||t.metaKey){t.preventDefault();if(t.keyCode>=48&&t.keyCode<=57){var i=String.fromCharCode(t.keyCode);this.view.setConfig(\"neighbourhood_scope\",i)}}else{if(t.keyCode===46){t.preventDefault();this.handleRemoveElements(this.network.getSelection())}}}},{key:\"handleDeleteElement\",value:function e(t){var i=t.paramObject.id;var a=i?[i]:this.network.getSelectedNodes();this.handleRemoveElements({nodes:a})}},{key:\"handleCanvasMouseMove\",value:function e(t){var i=this.network;if(!(t.ctrlKey&&t.buttons)){if(this.selectRect){this.selectRect=null;var a=i.getSelectedNodes();$tm.notify(a.length+\" nodes selected\");i.redraw()}return}t.preventDefault();t.stopPropagation();if(!this.domNode.contains(t.target)){return}var s=i.DOMtoCanvas({x:t.offsetX,y:t.offsetY});if(!this.selectRect){this.selectRect=new _SelectionRectangle2.default(s.x,s.y)}this.selectRect.span(s.x,s.y);var r=i.getPositions();var n=i.getSelectedNodes();for(var o in r){if(this.selectRect.isPointWithin(r[o])&&!_utils2.default.inArray(o,n)){n.push(o)}}i.selectNodes(n);this.assignActiveStyle(n);i.redraw()}},{key:\"handleCanvasScroll\",value:function e(t){var i=!!(this.isInSidebar||t.ctrlKey||this.enlargedMode||this.clickToUse&&this.networkDomNode.classList.contains(\"vis-active\"));var a=this.visOptions.interaction;var s=i===a.zoomView;if(i||!s){t.preventDefault()}if(!s){t.stopPropagation();a.zoomView=i;this.network.setOptions({interaction:{zoomView:i}});return false}}},{key:\"handleExtraCanvasScroll\",value:function e(t){t.preventDefault()}},{key:\"handleContextMenu\",value:function e(t){var i=this;t.preventDefault();var a=this.network;this.hidePopups(0,true);var s=a.getNodeAt({x:t.offsetX,y:t.offsetY});if(!s)return;var r=a.getSelectedNodes();if(!_utils2.default.inArray(s,r)){r=[s];a.selectNodes(r)}this.contextMenu.show(r,function(e,t){var a=e.length>1?\"multi\":\"single\";var s=\"$:/plugins/felixhayashi/tiddlymap/editor/contextMenu/node\";_utils2.default.registerTransclude(i,\"contextMenuWidget\",s);i.contextMenuWidget.setVariable(\"mode\",a);i.contextMenuWidget.render(t)})}},{key:\"handleWidgetKeyup\",value:function e(t){}},{key:\"handleWidgetKeydown\",value:function e(t){if(t.ctrlKey){t.preventDefault();if(t.keyCode===70){t.preventDefault();var i=this.widgetPopupsPath+\"/focus\";_utils2.default.setText(i,_utils2.default.getText(i)?\"\":\"1\")}else{return}}else if(t.keyCode===120){t.preventDefault();this.toggleEnlargedMode(\"halfscreen\")}else if(t.keyCode===121){t.preventDefault();this.toggleEnlargedMode(\"fullscreen\")}else if(t.keyCode===27){t.preventDefault();_utils2.default.deleteByPrefix(this.widgetPopupsPath)}else{return}this.canvas.focus()}},{key:\"handlePasteNodesFromClipboard\",value:function e(){if(!this.editorMode){$tm.notify(\"Map is read only!\");return}if(!$tm.clipBoard||$tm.clipBoard.type!==\"nodes\"){$tm.notify(\"TiddlyMap clipboad is empty!\")}var t=$tm.clipBoard.nodes;var i=Object.keys(t);for(var a=i.length;a--;){var s=i[a];if(this.graphData.nodesById[s]){continue}this.view.addNode(t[s]);this.graphData.nodes.update({id:s})}this.network.selectNodes(i);this.rebuildGraph({resetFocus:{delay:0,duration:0}});$tm.notify(\"pasted \"+i.length+\" nodes into map.\")}},{key:\"handleAddNodesToClipboard\",value:function e(t){var i=this.network.getSelectedNodes();if(!i.length){return}$tm.clipBoard={type:\"nodes\",nodes:this.graphData.nodes.get(i,{returnType:\"Object\"})};$tm.notify(\"Copied \"+i.length+\" nodes to clipboard\");if(t===\"move\"){for(var a=i.length;a--;){this.view.removeNode(i[a])}}this.isPreventZoomOnNextUpdate=true}},{key:\"getVisOptions\",value:function e(){var t=this;var i=$tm.config.vis;var a=_utils2.default.parseJSON(this.view.getConfig(\"vis\"))||{};var s=a.layout||{},r=s.hierarchical;var n={layout:{hierarchical:{enabled:r===undefined||r===null?false:typeof r===\"boolean\"?r:r.enabled!==false}}};var o=_utils2.default.merge({},i,_utils2.default.merge(a,n));o.clickToUse=this.clickToUse;o.manipulation.enabled=!!this.editorMode;o.manipulation.deleteNode=function(e,i){t.handleRemoveElements(e);t.resetVisManipulationBar(i)};o.manipulation.deleteEdge=function(e,i){t.handleRemoveElements(e);t.resetVisManipulationBar(i)};o.manipulation.addEdge=function(e,i){t.handleConnectionEvent(e);t.resetVisManipulationBar(i)};o.manipulation.addNode=function(e,i){t.handleInsertNode(e);t.resetVisManipulationBar(i)};o.manipulation.editNode=function(e,i){t.handleEditNode(e);t.resetVisManipulationBar(i)};o.interaction.zoomView=!!(this.isInSidebar||this.enlargedMode);o.manipulation.editEdge=false;var l=o.physics;l[l.solver]=l[l.solver]||{};l.stabilization.iterations=1e3;this.logger(\"debug\",\"Loaded graph options\",o);return o}},{key:\"resetVisManipulationBar\",value:function e(t){if(t){t(null)}this.network.disableEditMode();this.network.enableEditMode()}},{key:\"isVisInEditMode\",value:function e(){return this.graphDomNode.getElementsByClassName(\"vis-button vis-back\").length>0}},{key:\"isLiveView\",value:function e(){return this.id===\"live_tab\"}},{key:\"handleCreateView\",value:function e(){var t=this;var i={view:this.view.getLabel()};$tm.dialogManager.open(\"createView\",i,function(e,i){if(!e)return;var a=_utils2.default.getField(i,\"name\");var s=_utils2.default.getField(i,\"clone\",false);if(_ViewAbstraction2.default.exists(a)){$tm.notify(\"Forbidden! View already exists!\");return}if(s&&t.isLiveView()){$tm.notify(\"Forbidden to clone the live view!\");return}var r=new _ViewAbstraction2.default(a,{isCreate:true,protoView:s?t.view:null});t.setView(r)})}},{key:\"handleRenameView\",value:function e(){var t=this;if(this.view.isLocked()){$tm.notify(\"Forbidden!\");return}var i=this.view.getOccurrences();var a={count:i.length.toString(),refFilter:_utils2.default.joinAndWrap(i,\"[[\",\"]]\")};$tm.dialogManager.open(\"renameView\",a,function(e,i){if(!e){return}var a=_utils2.default.getText(i);if(!a){$tm.notify(\"Invalid name!\")}else if(_ViewAbstraction2.default.exists(a)){$tm.notify(\"Forbidden! View already exists!\")}else{t.view.rename(a);t.setView(t.view)}})}},{key:\"handleEditView\",value:function e(){var t=this;var i=JSON.stringify($tm.config.vis);var a=this.graphData;var s=this.view.getConfig();var r={\"filter.prettyNodeFltr\":this.view.getNodeFilter(\"pretty\"),\"filter.prettyEdgeFltr\":this.view.getEdgeTypeFilter(\"pretty\"),\"inherited-style\":i};var n={view:this.view.getLabel(),createdOn:this.view.getCreationDate(true),numberOfNodes:Object.keys(a.nodesById).length.toString(),numberOfEdges:Object.keys(a.edgesById).length.toString(),dialog:{preselects:$tw.utils.extend({},s,r)}};$tm.dialogManager.open(\"configureView\",n,function(e,i){if(!e){return}var a=_utils2.default.getPropertiesByPrefix(i.fields,\"config.\",true);var s=t.view.getConfig(\"background_image\");t.view.setConfig(a);if(a[\"physics_mode\"]&&!t.view.isEnabled(\"physics_mode\")){t.view.saveNodePositions(t.network.getPositions())}var r=t.view.getConfig(\"background_image\");if(r&&r!==s){$tm.notify(\"Background changed! You may need to zoom out a bit.\")}var n=_utils2.default.getField(i,\"filter.prettyNodeFltr\",\"\");var o=_utils2.default.getField(i,\"filter.prettyEdgeFltr\",\"\");t.view.setNodeFilter(n);t.view.setEdgeTypeFilter(o)})}},{key:\"handleSaveCanvas\",value:function e(){var t=this;var i=\"$:/temp/tmap/snapshot\";this.createAndSaveSnapshot(100,100,i);var a=this.view.getLabel()+\".png\";var s={dialog:{snapshot:i,view:this.view.getLabel(),preselects:{width:this.canvas.width.toString(),height:this.canvas.height.toString(),name:a,action:\"download\"}}};$tm.dialogManager.open(\"saveCanvas\",s,function(e,a){if(!e)return;var r=a.fields.width||s.dialog.preselects.width;var n=a.fields.height||s.dialog.preselects.height;t.createAndSaveSnapshot(r,n,i);var o=a.fields.name||s.dialog.preselects.imageName;var l=a.fields.action;if(l===\"download\"){t.handleDownloadSnapshot(r,n,o)}else if(l===\"wiki\"){_utils2.default.cp(i,o,true);t.dispatchEvent({type:\"tm-navigate\",navigateTo:o})}else if(l===\"placeholder\"){t.view.addPlaceholder(i)}$tw.wiki.deleteTiddler(\"$:/temp/tmap/snapshot\")})}},{key:\"handleDownloadSnapshot\",value:function e(t,i,a){var s=this.document.createElement(\"a\");var r=this.view.getLabel();s.download=a;s.href=this.getCanvasAsBase64({size:{width:t,height:i}});var n=new MouseEvent(\"click\");s.dispatchEvent(n)}},{key:\"createAndSaveSnapshot\",value:function e(t,i,a,s){$tw.wiki.addTiddler(new $tw.Tiddler({title:s||a,type:\"image/png\",text:this.getCanvasAsBase64({size:{width:t,height:i},withoutPreamble:true})},$tw.wiki.getCreationFields(),$tw.wiki.getModificationFields()));return a}},{key:\"getCanvasAsBase64\",value:function e(){var t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{},i=t.withoutPreamble,a=t.size;var s=this.graphDomNode.style.width;var r=this.graphDomNode.style.height;if(a){this.graphDomNode.style.width=a.width+\"px\";this.graphDomNode.style.height=a.height+\"px\";this.network.redraw()}var n=this.canvas.toDataURL(\"image/png\");if(a){this.graphDomNode.style.width=s;this.graphDomNode.style.height=r;this.network.redraw()}return i?_utils2.default.getWithoutPrefix(n,\"data:image/png;base64,\"):n}},{key:\"handleDeleteView\",value:function e(){var t=this;var i=this.view.getLabel();if(this.view.isLocked()){$tm.notify(\"Forbidden!\");return}var a=this.view.getOccurrences();if(a.length){var s={count:a.length.toString(),refFilter:_utils2.default.joinAndWrap(a,\"[[\",\"]]\")};$tm.dialogManager.open(\"cannotDeleteViewDialog\",s);return}var r=\"\\n You are about to delete the view ''\"+i+\"''\\n (no tiddler currently references this view).\\n \";this.openStandardConfirmDialog(function(e){if(!e){return}t.view.destroy();t.setView($tm.misc.defaultViewLabel);var a='view \"'+i+\"' deleted\";t.logger(\"debug\",a);$tm.notify(a)},r)}},{key:\"handleTriggeredRefresh\",value:function e(t){this.logger(\"log\",t,\"Triggered a refresh\");var i=_utils2.default.getTiddler(_utils2.default.getText(t));if(this.isLiveView()){if(i){if(this.view.isEnabled(\"neighbourhood_trace_clicks\")){this.trace[i.fields.title]=true}var a=i.fields[\"tmap.open-view\"]||$tm.config.sys.liveTab.fallbackView;if(a&&a!==this.view.getLabel()){this.setView(a);return}}}this.rebuildGraph({resetFocus:{delay:1e3,duration:1e3}})}},{key:\"handleRemoveElements\",value:function e(t){var i=t.nodes,a=t.edges;if(i.length){this.handleRemoveNodes(i)}else if(a.length){this.handleRemoveEdges(a)}this.resetVisManipulationBar()}},{key:\"handleRemoveEdges\",value:function e(t){$tm.adapter.deleteEdges(this.graphData.edges.get(t));$tm.notify(\"edge\"+(t.length>1?\"s\":\"\")+\" removed\")}},{key:\"handleRemoveNodes\",value:function e(t){var i=this;var a=$tm.adapter.getTiddlersByIds(t);var s={count:t.length.toString(),tiddlers:$tw.utils.stringifyList(a),dialog:{preselects:{\"delete-from\":\"filter\"}}};$tm.dialogManager.open(\"deleteNodeDialog\",s,function(e,a){if(!e)return;var s=0;for(var r=t.length;r--;){var n=i.view.removeNode(t[r]);if(n){s++}}if(a.fields[\"delete-from\"]===\"system\"){$tm.adapter.deleteNodes(t);s=t.length}i.isPreventZoomOnNextUpdate=true;$tm.notify(\"\\n Removed \"+s+\"\\n of \"+t.length+\"\\n from \"+a.fields[\"delete-from\"]+\"\\n \")})}},{key:\"toggleEnlargedMode\",value:function e(t){if(!this.isInSidebar&&t===\"halfscreen\"){return}this.logger(\"log\",\"Toggled graph enlargement\");var i=this.enlargedMode;if(i){this.network.setOptions({clickToUse:this.clickToUse});_utils2.default.findAndRemoveClassNames([\"tmap-has-\"+i+\"-widget\",\"tmap-\"+i]);this.enlargedMode=null;document.body.scrollTop=this.scrollTop}if(!i||i!==t&&(t===\"fullscreen\"||t===\"halfscreen\"&&!this.isInSidebar)){this.scrollTop=document.body.scrollTop;this.enlargedMode=t;var a=this.isInSidebar?this.sidebar:_utils2.default.getFirstElementByClassName(\"tc-story-river\");$tw.utils.addClass(this.document.body,\"tmap-has-\"+t+\"-widget\");$tw.utils.addClass(a,\"tmap-has-\"+t+\"-widget\");$tw.utils.addClass(this.domNode,\"tmap-\"+t);this.network.setOptions({clickToUse:false});$tm.notify(\"Toggled \"+t+\" mode\")}this.handleResizeEvent()}},{key:\"handleGenerateWidget\",value:function e(t){$tw.rootWidget.dispatchEvent({type:\"tmap:tm-generate-widget\",paramObject:{view:this.view.getLabel()}})}},{key:\"handleSetCentralTopic\",value:function e(t){var i=t.paramObject;var a=i.id||this.network.getSelectedNodes()[0];if(a===this.view.getConfig(\"central-topic\")){a=\"\"}this.view.setCentralTopic(a)}},{key:\"handleVisStabilizedEvent\",value:function e(t){if(this.hasNetworkStabilized){return}this.hasNetworkStabilized=true;this.logger(\"log\",\"Network stabilized after\",t.iterations,\"iterations\");if(!this.view.isEnabled(\"physics_mode\")){var i=this.graphData.nodesById;var a=[];for(var s in i){if(i[s].x===undefined){a.push(s)}}if(a.length){this.setNodesMoveable(a,false);$tm.notify(a.length+\" nodes were added to the graph\")}var r=this.visOptions.physics;r[r.solver].centralGravity=0;this.network.setOptions(this.visOptions)}if(this.resetFocus){this.fitGraph(this.resetFocus.delay,this.resetFocus.duration);this.resetFocus=null}}},{key:\"handleFocusNode\",value:function e(t){var i=t.param;this.network.focus($tm.adapter.getId(i),{scale:1.5,animation:true})}},{key:\"isZombieWidget\",value:function e(){return this.domNode.isTiddlyWikiFakeDom===true||!this.document.body.contains(this.getContainer())}},{key:\"fitGraph\",value:function e(){var t=this;var i=arguments.length>0&&arguments[0]!==undefined?arguments[0]:0;var a=arguments.length>1&&arguments[1]!==undefined?arguments[1]:0;clearTimeout(this.activeFitTimeout);var s=function e(){if(t.isZombieWidget()){return}t.network.redraw();t.network.fit({animation:{duration:a,easingFunction:\"easeOutQuart\"}})};this.activeFitTimeout=setTimeout(s,i)}},{key:\"handleInsertNode\",value:function e(t){var i=this;$tm.dialogManager.open(\"addNodeToMap\",{},function(e,a){if(!e){return}var s=_utils2.default.getField(a,\"draft.title\").trim();if(_utils2.default.tiddlerExists(s)){if(_utils2.default.isMatch(s,i.view.getNodeFilter(\"compiled\"))){$tm.notify(\"Node already exists\");return}else{t=$tm.adapter.makeNode(s,t);i.view.addNode(t)}}else{var r=new $tw.Tiddler(a,{\"draft.title\":null});t.label=s;$tm.adapter.insertNode(t,i.view,r)}i.isPreventZoomOnNextUpdate=true})}},{key:\"handleEditNode\",value:function e(t){var i=this;var a=$tm.tracker.getTiddlerById(t.id);var s=_utils2.default.getTiddler(a);var r=$tm.config.vis.nodes;var n=_utils2.default.parseJSON(this.view.getConfig(\"vis\"),{}).nodes;var o={};o[t.id]=t;var l=$tm.adapter.getInheritedNodeStyles(o);var d=l[a];var h=_utils2.default.merge({},{color:s.fields[\"color\"]},_utils2.default.parseJSON(s.fields[\"tmap.style\"]));var u=this.view.getLabel();var g=_extends({},this.view.getNodeData(t.id));delete g.x;delete g.y;var f={view:u,tiddler:s.fields.title,tidColor:s.fields[\"color\"],tidIcon:s.fields[$tm.field.nodeIcon]||s.fields[\"tmap.fa-icon\"],tidLabelField:\"global.\"+$tm.field.nodeLabel,tidIconField:\"global.\"+$tm.field.nodeIcon,dialog:{preselects:{\"inherited-global-default-style\":JSON.stringify(r),\"inherited-local-default-style\":JSON.stringify(n),\"inherited-group-styles\":JSON.stringify(d),\"global.tmap.style\":JSON.stringify(h),\"local-individual-node-style\":JSON.stringify(g)}}};var v=function e(t,i,a){for(var s=a.length;s--;){f.dialog.preselects[t+\".\"+a[s]]=i[a[s]]||\"\"}};v(\"local\",g,[\"label\",\"tw-icon\",\"fa-icon\",\"open-view\"]);v(\"global\",s.fields,[$tm.field.nodeLabel,$tm.field.nodeIcon,\"tmap.fa-icon\",\"tmap.open-view\"]);$tm.dialogManager.open(\"editNode\",f,function(e,s){if(!e)return;var r=s.fields;var n=_utils2.default.getPropertiesByPrefix(r,\"global.\",true);for(var o in n){_utils2.default.setField(a,o,n[o]||undefined)}var l=_utils2.default.getPropertiesByPrefix(r,\"local.\",true);var d=_utils2.default.parseJSON(r[\"local-individual-node-style\"],{});for(var h in l){d[h]=l[h]||undefined}i.view.saveNodeStyle(t.id,d);i.isPreventZoomOnNextUpdate=true})}},{key:\"handleVisSingleClickEvent\",value:function e(t){var i=_utils2.default.isTrue($tm.config.sys.singleClickMode);if(i&&!this.editorMode){this.handleOpenMapElementEvent(t)}}},{key:\"handleVisDoubleClickEvent\",value:function e(t){if(t.nodes.length||t.edges.length){if(this.editorMode||!_utils2.default.isTrue($tm.config.sys.singleClickMode)){this.handleOpenMapElementEvent(t)}}else{if(this.editorMode){this.handleInsertNode(t.pointer.canvas)}}}},{key:\"handleOpenMapElementEvent\",value:function e(t){var i=this;var a=t.nodes,s=t.edges;if(a.length){var r=this.graphData.nodesById[a[0]];if(this.view.isEnabled(\"neighbourhood_trace_clicks\")){this.trace[$tm.adapter.getTiddlerById(r.id)]=true;this.isPreventZoomOnNextUpdate=Date.now()+500;this.rebuildGraph();if(this.view.isEnabled(\"neighbourhood_focus_newly_traced_node\")){setTimeout(function(){i.network.focus(r.id,{scale:1,animation:true})},1500)}}if(r[\"open-view\"]){$tm.notify(\"Switching view\");this.setView(r[\"open-view\"])}this.openTiddlerWithId(a[0])}else if(s.length){this.logger(\"debug\",\"Clicked on an Edge\");var n=this.graphData.edgesById[s[0]].type;this.handleEditEdgeType(n)}else{return}this.hidePopups(0,true)}},{key:\"handleEditEdgeType\",value:function e(t){if(!this.editorMode)return;var i=$tm.config.sys.edgeClickBehaviour;if(i!==\"manager\")return;$tw.rootWidget.dispatchEvent({type:\"tmap:tm-manage-edge-types\",paramObject:{type:t}})}},{key:\"handleResizeEvent\",value:function e(t){if(this.isZombieWidget())return;var i=this.getAttr(\"height\");var a=this.getAttr(\"width\");if(this.isInSidebar){var s=this.domNode.getBoundingClientRect();var r=15;a=document.body.clientWidth-s.left-r+\"px\";var n=parseInt(this.getAttr(\"bottom-spacing\"))||15;var o=window.innerHeight-s.top;i=o-n+\"px\"}this.domNode.style.height=i||\"300px\";this.domNode.style.width=a;this.repaintGraph()}},{key:\"handleClickEvent\",value:function e(t){if(this.isZombieWidget()||!this.network)return;if(!this.graphDomNode.contains(t.target)){var i=this.network.getSelection();if(i.nodes.length||i.edges.length){this.logger(\"debug\",\"Clicked outside; deselecting nodes/edges\");this.network.selectNodes([]);this.resetVisManipulationBar()}}else{this.canvas.focus()}if(t.button!==2){this.contextMenu.hide(0,true)}}},{key:\"handleVisSelectNode\",value:function e(t){var i=t.nodes;if(!this.isDraggingAllowed(i)){return}this.assignActiveStyle(i)}},{key:\"isDraggingAllowed\",value:function e(t){var i=t.nodes;return this.editorMode||this.view.isEnabled(\"physics_mode\")}},{key:\"assignActiveStyle\",value:function e(t){if(!Array.isArray(t))t=[t];var i=this.visOptions.nodes.color;for(var a=t.length;a--;){var s=t[a];var r=this.graphData.nodesById[s];var n=_utils2.default.merge({},i,r.color);this.graphData.nodes.update({id:s,color:{highlight:n,hover:n}})}}},{key:\"handleVisDeselectNode\",value:function e(t){}},{key:\"handleVisDragEnd\",value:function e(t){var i=t.nodes;if(!i.length){return}if(i.length===1&&this.view.isEnabled(\"raster\")){var a=this.network.getPositions()[i[0]];this.graphData.nodes.update(_extends({id:i[0]},_utils2.default.getNearestRasterPosition(a,parseInt(this.view.getConfig(\"raster\")))))}this.draggedNode=null;this.setNodesMoveable(i,false)}},{key:\"handleVisBeforeDrawing\",value:function e(t){var i=this.view,a=this.network,s=this.backgroundImage;if(s){t.drawImage(s,0,0)}if(i.isEnabled(\"raster\")){_utils2.default.drawRaster(t,a.getScale(),a.getViewPosition(),parseInt(i.getConfig(\"raster\")))}}},{key:\"handleVisAfterDrawing\",value:function e(t){if(this.selectRect){var i=this.selectRect.getRect();t.beginPath();t.globalAlpha=.5;t.fillStyle=\"#EAFFEF\";t.fillRect.apply(t,_toConsumableArray(i));t.beginPath();t.globalAlpha=1;t.strokeStyle=\"#B4D9BD\";t.strokeRect.apply(t,_toConsumableArray(i))}if(this.draggedNode&&this.view.isEnabled(\"raster\")){var a=this.network.getPositions()[this.draggedNode];var s=_utils2.default.getNearestRasterPosition(a,parseInt(this.view.getConfig(\"raster\")));t.strokeStyle=\"green\";t.fillStyle=\"green\";t.beginPath();t.moveTo(a.x,a.y);t.lineTo(s.x,s.y);t.stroke();t.beginPath();t.arc(s.x,s.y,5,0,Math.PI*2);t.fill()}}},{key:\"constructTooltip\",value:function e(t,i){var a=_utils2.default.parseJSON(t);var s=a.node||a.edge;var r=null;var n=\"text/html\";var o=\"text/vnd-tiddlywiki\";if(a.node){var l=$tm.tracker.getTiddlerById(s);var d=_utils2.default.getTiddler(l);var h=d.fields[$tm.field.nodeInfo];if(h){i.innerHTML=$tw.wiki.renderText(n,o,h)}else if(d.fields.text){_utils2.default.registerTransclude(this,\"tooltipWidget\",l);this.tooltipWidget.setVariable(\"tv-tiddler-preview\",\"yes\");this.tooltipWidget.render(i)}else{i.innerHTML=l}}else{var u=this.graphData.edgesById[s];var g=$tm.indeces.allETy[u.type];if(g.description){r=$tw.wiki.renderText(n,o,g.description)}i.innerHTML=r||g.label||g.id}}},{key:\"handleVisHoverElement\",value:function e(t){if($tm.mouse.buttons)return;var i=t.node||t.edge;var a=JSON.stringify(t);if(t.node){this.assignActiveStyle(i)}if(!this.isVisInEditMode()&&!this.contextMenu.isShown()){var s=this.constructTooltip;this.tooltip.show(a,s)}}},{key:\"handleVisBlurElement\",value:function e(t){this.tooltip.hide()}},{key:\"handleVisLoading\",value:function e(t){var i=t.total,a=t.iterations;this.graphLoadingBarDomNode.style.display=\"block\";this.graphLoadingBarDomNode.setAttribute(\"max\",i);this.graphLoadingBarDomNode.setAttribute(\"value\",a)}},{key:\"handleVisLoadingDone\",value:function e(t){this.graphLoadingBarDomNode.style.display=\"none\"}},{key:\"handleVisDragStart\",value:function e(t){var i=t.nodes;if(!i.length||!this.isDraggingAllowed(i)){return}this.hidePopups(0,true);this.assignActiveStyle(i);this.setNodesMoveable(i,true);if(i.length===1){this.draggedNode=i[0]}}},{key:\"destruct\",value:function e(){_utils2.default.setDomListeners(\"remove\",window,this.windowDomListeners);_utils2.default.setDomListeners(\"remove\",this.domNode,this.widgetDomListeners);this._destructVis()}},{key:\"_destructVis\",value:function e(){if(!this.network)return;_utils2.default.setDomListeners(\"remove\",this.canvas,this.canvasDomListeners);this.network.destroy();this.network=null}},{key:\"openTiddlerWithId\",value:function e(t){var i=this;var a=$tm.tracker.getTiddlerById(t);this.logger(\"debug\",\"Opening tiddler\",a,\"with id\",t);if(this.enlargedMode===\"fullscreen\"){var s=$tw.wiki.findDraft(a);var r=!!s;if(!r){var n=\"tm-edit-tiddler\";this.dispatchEvent({type:n,tiddlerTitle:a});s=$tw.wiki.findDraft(a)}var o={draftTRef:s,originalTRef:a};$tm.dialogManager.open(\"fullscreenTiddlerEditor\",o,function(e,t){if(e){var n=\"tm-save-tiddler\";i.dispatchEvent({type:n,tiddlerTitle:s})}else if(!r){_utils2.default.deleteTiddlers([s])}var o=\"tm-close-tiddler\";i.dispatchEvent({type:o,tiddlerTitle:a})})}else{var l=this.domNode.getBoundingClientRect();this.dispatchEvent({type:\"tm-navigate\",navigateTo:a,navigateFromTitle:this.getVariable(\"storyTiddler\"),navigateFromNode:this,navigateFromClientRect:{top:l.top,left:l.left,width:l.width,right:l.right,bottom:l.bottom,height:l.height}})}}},{key:\"getViewHolderRef\",value:function e(){if(this.viewHolderRef){return this.viewHolderRef}this.logger(\"info\",\"Retrieving or generating the view holder reference\");var t=this.getAttr(\"view\");var i=null;if(t){this.logger(\"log\",'User wants to bind view \"'+t+\"' to graph\");var a=$tm.path.views+\"/\"+t;if($tw.wiki.getTiddler(a)){i=$tm.path.localHolders+\"/\"+_utils2.default.genUUID();this.logger(\"log\",'Created an independent temporary view holder \"'+i+'\"');_utils2.default.setText(i,a);this.logger(\"log\",'View \"'+a+\"' inserted into independend holder\")}else{this.logger(\"log\",'View \"'+t+'\" does not exist')}}if(!i){this.logger(\"log\",\"Using default (global) view holder\");i=$tm.ref.defaultViewHolder}return i}},{key:\"setView\",value:function e(t,i){if(!_ViewAbstraction2.default.exists(t)){return}t=new _ViewAbstraction2.default(t);var a=t.getLabel();i=i||this.viewHolderRef;this.logger(\"info\",'Inserting view \"'+a+'\" into holder \"'+i+'\"');$tw.wiki.addTiddler(new $tw.Tiddler({title:i,text:a}));this.update({changedTiddlers:_defineProperty({},i,true)})}},{key:\"getView\",value:function e(t){if(!t&&this.view){return this.view}var i=this.getViewHolderRef();var a=_utils2.default.getText(i);this.logger(\"debug\",\"Retrieved view from holder\");var s=void 0;if(_ViewAbstraction2.default.exists(a)){s=new _ViewAbstraction2.default(a)}else{this.logger(\"debug\",'Warning: View \"'+a+\"\\\" doesn't exist. Default is used instead.\");s=new _ViewAbstraction2.default(\"Default\")}return s}},{key:\"reloadBackgroundImage\",value:function e(t){var i=this;this.backgroundImage=null;var a=this.view.getConfig(\"background_image\");var s=_utils2.default.getTiddler(a);if(!s&&!a)return;var r=new Image;r.onload=function(){i.backgroundImage=r;i.repaintGraph()};if(s){var n=s.fields[\"_canonical_uri\"];if(n){r.src=n}else if(s.fields.text){r.src=$tw.utils.makeDataUri(s.fields.text,s.fields.type)}}else if(a){r.src=a}}},{key:\"repaintGraph\",value:function e(){var t=$tw.utils.hasClass(this.document.body,\"tmap-has-fullscreen-widget\");if(this.network&&(!t||t&&this.enlargedMode)){this.logger(\"info\",\"Repainting the whole graph\");this.network.redraw();this.fitGraph(0,1e3)}}},{key:\"setGraphButtonEnabled\",value:function e(t,i){var a=\"vis-button tmap-\"+t;var s=_utils2.default.getFirstElementByClassName(a,this.domNode);$tw.utils.toggleClass(s,\"tmap-button-enabled\",i)}},{key:\"setNodesMoveable\",value:function e(t,i){if(!t||!t.length||this.view.isEnabled(\"physics_mode\")){return}var a=[];var s=!i;for(var r=t.length;r--;){a.push({id:t[r],fixed:{x:s,y:s}})}this.graphData.nodes.update(a);if(s){this.logger(\"debug\",\"Fixing\",a.length,\"nodes\");this.view.saveNodePositions(this.network.getPositions());this.isPreventZoomOnNextUpdate=true}}},{key:\"addGraphButtons\",value:function e(t){var i=_utils2.default.getFirstElementByClassName(\"vis-navigation\",this.domNode);for(var a in t){var s=this.document.createElement(\"div\");s.className=\"vis-button tmap-\"+a;s.addEventListener(\"click\",t[a].bind(this),false);i.appendChild(s);this.setGraphButtonEnabled(a,true)}}}]);return t}(_widget.widget);exports.tmap=MapWidget;exports.tiddlymap=MapWidget;\n//# sourceMappingURL=./maps/felixhayashi/tiddlymap/js/widget/MapWidget.js.map\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/plugins/felixhayashi/tiddlymap/license": {
"title": "$:/plugins/felixhayashi/tiddlymap/license",
"subtitle": "License",
"caption": "License",
"text": "\\rules except wikilink\n\n!! TiddlyMap\n\nCopyright (c) 2014, Felix Küppers\nAll rights reserved.\n\nTiddlyMap is licensed under the [[BSD 2-Clause License|http://opensource.org/licenses/BSD-2-Clause]]. For the exact license terms, please visit [[https://github.com/felixhayashi/TW5-TiddlyMap/blob/master/LICENSE]]. \n\n!! TiddlyWiki\n\nCreated by Jeremy Ruston, (jeremy [at] jermolene [dot] com)\n\nCopyright © Jeremy Ruston 2004-2007 Copyright © UnaMesa Association 2007-2014\n\nPublished under the following [licenses](https://github.com/Jermolene/TiddlyWiki5/tree/master/licenses):\n\n# BSD 3-clause \"New\" or \"Revised\" License (including any right to adopt any future version of a license if permitted)\n# Creative Commons Attribution 3.0 (including any right to adopt any future version of a license if permitted)\n\n!! Vis.js\n\nCopyright (c) 2014 [Almende B.V.](https://github.com/almende/vis)\n\nPublished under the following licenses:\n\n# Apache License Version 2.0, January 2004 http://www.apache.org/licenses/\n# MIT License (MIT)\n"
},
"$:/plugins/felixhayashi/tiddlymap/readme": {
"title": "$:/plugins/felixhayashi/tiddlymap/readme",
"text": "* Please refer to the project-readme hosted at [[https://github.com/felixhayashi/TW5-TiddlyMap]].\n* A demo with several examples and explanations can be found at [[http://tiddlymap.org]]."
},
"$:/plugins/felixhayashi/tiddlymap/graph/edgeTypes/tmap:unknown": {
"title": "$:/plugins/felixhayashi/tiddlymap/graph/edgeTypes/tmap:unknown",
"description": "Automatically assigned to an edge that does not have a type assigned",
"style": "{\"color\":\"gray\"}",
"show-label": "false"
},
"$:/plugins/felixhayashi/tiddlymap/graph/edgeTypes/tw-body:link": {
"title": "$:/plugins/felixhayashi/tiddlymap/graph/edgeTypes/tw-body:link",
"description": "A link that is contained in the tiddler's body pointing to another resource.",
"style": "{\"color\":\"orange\", \"dashes\":true}",
"label": "links to",
"text": ""
},
"$:/plugins/felixhayashi/tiddlymap/graph/edgeTypes/tw-list:list": {
"title": "$:/plugins/felixhayashi/tiddlymap/graph/edgeTypes/tw-list:list",
"description": "Contained in a list of this tiddler",
"style": "{ \"color\": \"red\", \"dashes\":true}",
"label": "listed in",
"text": ""
},
"$:/plugins/felixhayashi/tiddlymap/graph/edgeTypes/tw-list:tags": {
"title": "$:/plugins/felixhayashi/tiddlymap/graph/edgeTypes/tw-list:tags",
"description": "A tag that refers to a tiddler of the same name.",
"style": "{ \"color\": \"darkslategray\", \"dashes\":true}",
"label": "tagged with"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/globalConfig/default": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/globalConfig/default",
"caption": "Overview",
"text": "\\rules except wikilink\n\n<div class=\"tmap-flash-message tmap-plain\">\n Please visit the [[online docs|http://tiddlymap.org/Documentation]]\n for more information about the available global options.\n</div>\n<table class=\"tmap-key-value-table\">\n <tr>\n <th align=\"left\">Plugin version</th>\n <td><<pluginVersion>></td>\n </tr>\n<!--\n <tr>\n <th align=\"left\">Datastructure version</th>\n <td><<dataStructureVersion>></td>\n </tr>\n-->\n <tr>\n <th align=\"left\">Nodes in system</th>\n <td><<numberOfNodes>></td>\n </tr>\n <tr>\n <th align=\"left\">Edges in system</th>\n <td><<numberOfEdges>></td>\n </tr>\n</table>"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/globalConfig/editor": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/globalConfig/editor",
"caption": "Editor",
"text": "\\rules except wikilink\n\n<table class=\"tmap-config-table\">\n <<tmap-row type:\"input-checkbox\"\n title:\"Show Neighbour­hood menu\"\n field:\"config.sys.editorMenuBar.showNeighScopeButton\"\n descr:\"Show or hide the neighbourhood menu button.\">>\n <<tmap-row type:\"input-checkbox\"\n title:\"Show Screen­shot menu\"\n field:\"config.sys.editorMenuBar.showScreenshotButton\"\n descr:\"Show or hide the screenshot menu button.\">>\n <<tmap-row type:\"input-checkbox\"\n title:\"Show Raster­ menu\"\n field:\"config.sys.editorMenuBar.showRasterMenuButton\"\n descr:\"Show or hide the raster menu button.\">>\n</table>\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/globalConfig/fields": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/globalConfig/fields",
"caption": "Field settings",
"text": "\\rules except wikilink\n\n<table class=\"tmap-config-table\">\n <<tmap-row type:\"input-text\"\n title:\"Node-icon field\"\n field:\"config.sys.field.nodeIcon\" \n descr:\"Local image used as node image in the graphs.\">>\n <<tmap-row type:\"input-text\"\n title:\"Node-label field\"\n field:\"config.sys.field.nodeLabel\" \n descr:\"Alternative node label to use instead of the title.\">>\n <<tmap-row type:\"input-text\"\n title:\"Node-info field\"\n field:\"config.sys.field.nodeInfo\" \n descr:\"Field used as tooltip when hovering over a node in a graph.\"\n note:\"It is prohibited to use the text field here.\">>\n</table> \n\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/globalConfig/interaction": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/globalConfig/interaction",
"caption": "Interaction & behaviour",
"text": "\\rules except wikilink\n\n<table class=\"tmap-config-table\">\n <$macrocall type=\"input-select\"\n $name=\"tmap-row\"\n title=\"Default startup view\"\n field=\"config.sys.defaultView\"\n nochoice=\"Last view used at startup\"\n selectFilter=<<tmap \"option\" \"selector.allViewsByLabel\">>\n descr=\"The view to display at startup\" />\n <<tmap-row type:\"input-checkbox\"\n title:\"Show popups\"\n field:\"config.sys.popups.enabled\"\n descr:\"Set this to true if you want to see automatic\n popups in the map.\">>\n <$list filter=\"[config.sys.popups.enabled[true]]\">\n <<tmap-row type:\"input-text\"\n title:\"Popup delay\"\n field:\"config.sys.popups.delay\"\n descr:\"The time in miliseconds that needs to pass after\n a tooltip is triggered.\">>\n <<tmap-row type:\"input-text\"\n title:\"Popup width\"\n field:\"config.sys.popups.width\"\n descr:\"The default max-width of the popup.\"\n note:\"Make sure you added the desired unit (e.g. `px`).\n Requires a wiki refresh.\">>\n <<tmap-row type:\"input-text\"\n title:\"Popup height\"\n field:\"config.sys.popups.height\"\n descr:\"The default max-height of the popup.\"\n note:\"Make sure you added desired the unit (e.g. `px`).\n Requires a wiki refresh.\">>\n </$list>\n <<tmap-row type:\"input-checkbox\"\n title:\"Allow single click mode\"\n field:\"config.sys.singleClickMode\"\n descr:\"A single click on a node is sufficient to open the\n corresponding tiddler.\"\n note:\"Drag and drop will still work and does not cause a\n tiddler to be opened. Single click is never active in\n the map editor.\">>\n <<tmap-row type:\"input-select\"\n title:\"Edge click behaviour\"\n field:\"config.sys.edgeClickBehaviour\"\n selectFilter:\"[[nothing|Nothing]]\n [[manager|Open edge-type manager]]\"\n descr:\"What should happen when you click on an edge?\">>\n <<tmap-row type:\"input-select\" title:\"Raster size\" field:\"config.sys.raster\"\n selectFilter:\"[[|disabled]] [[5|5px]] [[10|10px]] [[15|15px]] [[20|20px]] [[30|30px]] [[40|40px]]\"\n descr:\"Snap nodes to an invisible raster of the given size after drag'n'drop.\"\n note:\"Only works when the view is not in floating mode\">>\n <<tmap-row type:\"input-checkbox\"\n title:\"Apply node-filter to neighbours\"\n field:\"config.sys.nodeFilterNeighbours\"\n descr:\"If checked, neighbours displayed in the map will be filtered\n by the view's node-filter. Otherwise the node-filter will only be used\n to filter the original set of nodes in the map\">>\n</table>\n\n!! Suppressed dialogs\n\n<div class=\"tmap-flash-message tmap-plain\">\n Dialogs that you decided to suppress in the past are listed here.\n Remove the checkmark to enable dialogs again.\n</div>\n\n<table class=\"tmap-config-table\">\n <$list\n filter=\"[<output>fields[]prefix[config.sys.suppressedDialogs]]\"\n emptyMessage=\"–\">\n <$set name=\"dialogName\" value=<<tmap basename \".\">>>\n <$macrocall $name=\"tmap-row\"\n type=\"input-checkbox\"\n title=\"Suppress '$(dialogName)$' dialog\"\n field=<<currentTiddler>> />\n </$set>\n <br />\n </$list>\n</table>\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/globalConfig/liveTab": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/globalConfig/liveTab",
"caption": "Live tab",
"text": "\\rules except wikilink\n\n<table class=\"tmap-config-table\">\n <<tmap-row type:\"input-checkbox\"\n title:\"Show Live tab\"\n field:\"liveTab\" \n descr:\"Show or hide the live tab in the sidebar.\">>\n <$macrocall type=\"input-select\"\n $name=\"tmap-row\"\n title=\"Fallback view\"\n field=\"config.sys.liveTab.fallbackView\" \n selectFilter=<<tmap \"option\" \"selector.allViewsByLabel\">>\n descr=\"The view to display in the sidebar's live tab in\n case the current tiddler did not specify a view\n to open.\" />\n</table>"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/globalConfig": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/globalConfig",
"subtitle": "{{$:/core/images/options-button}} Global configuration of TiddlyMap",
"classes": "tmap-remove-top-space",
"text": "\\rules except wikilink\n\n<$macrocall $name=\"tabs\"\n default=<<concat \"$(template)$/default\">>\n tabsList=\"[all[shadows]prefix<template>] -[<template>]\"\n/>"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/globalConfig/verbosity": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/globalConfig/verbosity",
"caption": "Verbosity",
"text": "\\rules except wikilink\n\n<div class=\"tmap-flash-message tmap-plain\">\n Here you can restrict the system's talkativeness.\n</div>\n\n<table class=\"tmap-config-table\">\n <<tmap-row type:\"input-checkbox\"\n title:\"Debug output\"\n field:\"config.sys.debug\" \n descr:\"Set this to true if you want debug information to be\n displayed in the browser console.\">>\n <<tmap-row type:\"input-checkbox\"\n title:\"Show notifications\"\n field:\"config.sys.notifications\" \n descr:\"Set this to true if you want to receive fade-out\n notifications for important events.\">>\n</table> "
},
"$:/plugins/felixhayashi/tiddlymap/dialog/globalConfig/vis": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/globalConfig/vis",
"classes": "tmap-remove-top-space",
"caption": "Graph",
"text": "\\rules except wikilink\n\n<div class=\"tmap-flash-message tmap-info\">\n The global vis configurations will affect all views and their\n elements (nodes and edges) unless they are overridden on a lower\n level. All options below are documented at\n [[vis.js.org|http://visjs.org/docs/network]].\n</div>\n<div class=\"tmap-flash-message tmap-info\">\n Only config items that you actually changed have an effect on\n the graph. Other options are visible, yet, inactive.\n</div>\n<$tmap-config\n mode=\"manage-config\"\n inherited=\"inherited-style\"\n extension=\"config.vis\" />\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/configureView/default": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/configureView/default",
"caption": "Overview",
"text": "\\rules except wikilink\n\n<div class=\"tmap-flash-message tmap-info\">\n All configurations __only__ affect this view.\n</div>\n\n<table class=\"tmap-key-value-table\">\n <tr>\n <th align=\"left\">Created on</th>\n <td><<createdOn>></td>\n </tr>\n <tr>\n <th align=\"left\">Nodes contained in graph</th>\n <td><<numberOfNodes>></td>\n </tr>\n <tr>\n <th align=\"left\">Edges contained in graph</th>\n <td><<numberOfEdges>></td>\n </tr>\n</table>"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/configureView/editFilters": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/configureView/editFilters",
"caption": "Edit filters",
"text": "\\rules except wikilink\n\n<div class=\"tmap-flash-message tmap-info\">\n Completely new to filters? Please read\n [[Introduction to filter notation|http://tiddlywiki.com/#Introduction%20to%20filter%20notation]]\n first.\n</div>\n\n<fieldset>\n <legend>Filters <sup>[1]</sup></legend>\n <table class=\"tmap-config-table tmap-large-input\">\n <<tmap-row type:\"input-textarea\"\n title:\"Node filter\"\n field:\"filter.prettyNodeFltr\"\n descr:\"In the map, only those tiddlers that match this filter\n are shown. Drafts and system tiddlers are automatically\n excluded.\">>\n <<tmap-row type:\"input-textarea\"\n title:\"Edge-type filter\"\n field:\"filter.prettyEdgeFltr\" \n descr:\"Only edges with a type that matches the filter are shown.\">>\n </table> \n</fieldset>\n\n---\n\n<sup>[1]</sup> In the editors above, a new line is equivalent to a space symbol.<br />\n<sup>[2]</sup> It is suggested to read\n[[Node and edge-type filters|http://tiddlymap.org#Node%20and%20edge-type%20filters]]\nand [[Edge-type namespaces|http://tiddlymap.org#Node%20and%20edge-type%20filters]]\nbefore using Tiddlymap's filter editor."
},
"$:/plugins/felixhayashi/tiddlymap/dialog/configureView/layout": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/configureView/layout",
"caption": "Layout",
"text": "\\rules except wikilink\n\n<table class=\"tmap-config-table\">\n <<tmap-row type:\"input-checkbox\"\n title:\"Floating nodes\"\n field:\"config.physics_mode\"\n descr:\"Set this to true if you want your nodes to freely\n swirl around.\">>\n <<tmap-row type:\"input-checkbox\"\n title:\"Filter nodes by edge types\"\n field:\"config.filter_nodes_by_edge_types\"\n descr:\"Only display nodes having edges matching the edge-type filter.\">>\n <<tmap-row type:\"input-text\"\n title:\"Background image\"\n field:\"config.background_image\"\n descr:\"The title of an image tiddler to be used as background\n in the view.\"\n note:\"You can also use an image url directly, however, the\n image needs be stored under the same domain as your wiki.\n Otherwise, it won't be displayed!\">>\n</table>\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/configureView/namespace": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/configureView/namespace",
"caption": "Namespace",
"text": "\\rules except wikilink\n\n<table class=\"tmap-config-table tmap-small-input\">\n <<tmap-row type:\"input-text\"\n title:\"Edge-type namespace\"\n field:\"config.edge_type_namespace\" \n descr:\"A namespace (like `foaf` in `foaf:knows`) that will be\n automatically added to all edge types you create in\n this view. The namespace is only added if the types\n do not exist yet and do not have a namespace assigned yet.\n Namespaces are always hidden in the graph.\"\n note:\"Most likely, you don't want the edges created with this\n namespace to leak into other views, moreover, you don't\n want edges that do not possess the namespace ever to be\n shown here. In this case, use a private marker (`_`)\n in front of your namespace, e.g. `_mynamespace` and use\n an appropriate edge type filter, i.e. `+[prefix[_mynamespace]]`\n For further information see:\n \n * [[Edge-type namespaces|http://tiddlymap.org/#Edge-type%20namespaces]]\n * [[Private edge types|http://tiddlymap.org/#Private%20edge%20types]]\n \">>\n</table>\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/configureView": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/configureView",
"subtitle": "{{$:/core/images/options-button}} View configuration -- <<view>>",
"text": "\\rules except wikilink\n\n\\define privateEdgeTypes() [[private edge-types|http://tiddlymap.org/#Private%20edge%20types]]\n\n<$macrocall $name=\"tabs\"\n default=<<concat \"$(template)$/default\">>\n tabsList=\"[all[shadows]prefix<template>] -[<template>]\"\n/>"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/configureView/vis": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/configureView/vis",
"caption": "Graph",
"text": "\\rules except wikilink\n\n<div class=\"tmap-flash-message tmap-info\">\n The local vis configurations will affect all\n elements (nodes and edges) of this view, unless they are\n overridden on a lower level. All options below are documented at\n [[vis.js.org|http://visjs.org/docs/network]].\n</div>\n<div class=\"tmap-flash-message tmap-info\">\n Only config items that you actually changed have an effect on the\n graph. Other options are visible, yet, inactive.\n</div>\n<$tmap-config\n mode=\"manage-config\"\n inherited=\"inherited-style\"\n extension=\"config.vis\" />\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/getEdgeType": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/getEdgeType",
"subtitle": "{{$:/plugins/felixhayashi/tiddlymap/icon}} Edge type specification",
"text": "\\rules except wikilink\n\\rules except underscore\n\n\\define filter() $(allEdgeTypes)$ +[search:title[$(term)$]]\n\n\\define badge(color, label, tooltip)\n<span style=\"background: $color$\" title=\"$tooltip$\">$label$</span>\n\\end\n\n\\define badges()\n<$tiddler tiddler={{!!text}}>\n<$set name=\"id\" value=<<tmap \"getETyId\" \"$(view)$\">>>\n<$set name=\"isVisible\" value=<<tmap \"isETyVisible\" \"$(view)$\">>>\n<div class=\"tmap-badges\">\n <span\n style=\"background: darkslategray\"\n title=\"Your input translates into this id.\">\n <<id>>\n </span>\n <$list filter=\"[<isVisible>regexp[true]]\">\n <<badge \"green\" \"visible\" \"Matches your view's filter\">>\n </$list>\n <$list filter=\"[<isVisible>regexp[false]]\">\n <<badge \"red\" \"not visible\" \"Doesn't match your view's filter\">>\n </$list>\n <$list filter=\"[<id>!regexp[^tmap:unknown$]]\" variable=\"item\">\n <$list filter=\"[<id>regexp[^_]]\">\n <<badge \"purple\" \"private\" \"Not shown in other views per default\">>\n </$list>\n <$list filter=\"[<id>regexp[.+:.+]]\">\n <<badge \"orange\" \"namespace\" \"This type is prefixed with a proper namespace\">>\n </$list>\n </$list>\n</div>\n</$set>\n</$set>\n</$tiddler>\n\\end\n\n\\define search()\n<p>\n You are about to connect \"<$text text=\"$(fromLabel)$\" />\"\n with \"<$text text=\"$(toLabel)$\" />\". Please specify a type.\n</p>\n<table id=\"tmap-search-table\">\n <tr>\n <td><b>Type:</b></td>\n <td>\n <$edit-text\n focus=\"true\"\n field=\"text\"\n type=\"text\"\n tag=\"input\"\n default=\"\"\n class=\"tmap-trigger-field\n tmap-triggers-ok-button-on-enter\n tmap-triggers-cancel-button-on-esc\" />\n <<badges>>\n </td>\n </tr>\n <tr>\n <td></td>\n <td>\n <$set name=\"term\" value={{!!text}}>\n <$set name=\"allEdgeTypes\" value=<<tmap \"option\" \"selector.allEdgeTypesById\">>>\n <ul class=\"tmap-small-list\">\n <$list filter=<<filter>>>\n <li>\n <$button class=\"tc-btn-invisible tmap-link\">\n <$view field=\"title\" />\n <$action-setfield $tiddler=<<output>> text={{!!title}} />\n </$button>\n </li>\n </$list>\n </ul>\n </$set>\n </$set>\n </td>\n </tr>\n</table>\n\\end\n\n<$list filter=\"[<temp>!has[more]]\" variable=\"item\"><<search>></$list>\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/addNodeToMap": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/addNodeToMap",
"subtitle": "{{$:/core/images/tag-button}} Add node",
"classes": "tmap-modal-add-node",
"text": "\\rules except wikilink\n\n\\define backButtonText() back to list\n\\define outputAndTemplate() [[$(output)$]] [[$(template)$]]\n\n\\define editor()\n <$button class=\"tmap-go-back tc-btn-invisible\">\n {{$:/core/images/chevron-left}} <<backButtonText>>\n <$action-deletefield $tiddler=<<temp>> more template />\n <$action-sendmessage\n $message=\"tmap:tm-clear-tiddler\"\n keep=\"draft.title\"\n title=<<output>> />\n </$button>\n\n <$list filter=\"[<output>get[draft.title]is[tiddler]]\">\n <div class=\"tmap-flash-message tmap-warning\">\n Tiddler already exists! Use another title or click\n \"<<backButtonText>>\" to cancel your edit.\n </div>\n </$list>\n\n <div class=\"tmap-modal-editor\">\n <table class=\"tmap-config-table\">\n <tr class=\"tmap-template-select\">\n <td>Template</td>\n <td>\n <$select\n tiddler=<<temp>>\n field=\"template\">\n <option value=\"\"></option>\n <$list filter=<<tmap \"option\" \"selector.allPotentialNodes\">>>\n <option><$view field=\"title\" /></option>\n </$list>\n </$select>\n <$button>Load\n <$action-sendmessage\n $message=\"tmap:tm-clear-tiddler\"\n keep=\"draft.title\"\n title=<<output>> />\n <$list filter=\"[<temp>get[template]]\" variable=\"template\">\n <$action-sendmessage\n $message=\"tmap:tm-merge-tiddlers\"\n tiddlers=<<outputAndTemplate>>\n output=<<output>> />\n <$action-deletefield $tiddler=<<output>> tmap.id tmap.edges />\n </$list>\n </$button>\n </td>\n <td>Press the \"load\" button to activate the template.</td>\n </tr>\n </table>\n <$importvariables filter=\"[all[tiddlers+shadows]prefix[$:/core/macros/]]\">\n <$set name=\"currentTiddler\" value=<<output>>>\n <$transclude tiddler=\"$:/core/ui/EditTemplate\" mode=\"block\" />\n </$set>\n </$importvariables>\n </div>\n\\end\n\n\\define search()\n<p>Add an existing tiddler to the map or create a new one.</p>\n<table id=\"tmap-search-table\">\n <tr>\n <td><b>Title:</b></td>\n <td>\n <$edit-text\n tiddler=<<output>>\n field=\"draft.title\"\n focus=\"true\"\n type=\"text\"\n tag=\"input\"\n default=\"\"\n class=\"tmap-trigger-field\n tmap-triggers-ok-button-on-enter\n tmap-triggers-cancel-button-on-esc\" />\n <$list filter=\"[<output>get[draft.title]!is[tiddler]]\">\n <$button\n tooltip=\"The tiddler does not exist yet and you may edit it\n before it is added to the map\">\n {{$:/core/images/edit-button}}\n <$action-setfield $tiddler=<<temp>> more=\"true\" />\n </$button> <sup>[1]</sup>\n </$list>\n </td>\n </tr>\n <tr>\n <td></td>\n <td>\n <$set name=\"term\" value={{!!draft.title}}>\n <ul class=\"tmap-small-list\">\n <$list filter=\"[search:title<term>!is[system]!has[draft.of]]\">\n <li>\n <$button class=\"tc-btn-invisible tmap-link\">\n <$view field=\"title\" />\n <$action-setfield $tiddler=<<output>> draft.title={{!!title}} />\n </$button>\n </li>\n </$list>\n </ul>\n </$set>\n </td>\n </tr>\n</table>\n\n<$list filter=\"[<output>get[draft.title]!is[tiddler]]\">\n<hr />\n<sup>[1]</sup>\n<small>\n The tiddler does not exist yet and you may edit it\n before it is added to the map\n</small>\n</$list>\n\\end\n\n<$list filter=\"[<temp>!has[more]]\" variable=\"item\"><<search>></$list>\n<$list filter=\"[<temp>has[more]]\" variable=\"item\"><<editor>></$list>\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/cannotDeleteViewDialog": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/cannotDeleteViewDialog",
"subtitle": "{{$:/core/images/locked-padlock}} You cannot delete this view!",
"buttons": "ok",
"text": "\\rules except wikilink\n\nIt is not possible to delete the current view as ''<<count>>'' tiddlers\nare referencing it. To delete the view you must first remove the tiddlymap\nwidgets in the tiddlers listed below or change their view attributes.\n\n''References''\n\n<ul>\n<$list filter=<<refFilter>> variable=\"item\">\n <li><$link><<item>></$link></li>\n</$list>\n</ul>\n\nAfter the references are removed, you may delete the view.\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/getConfirmation": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/getConfirmation",
"subtitle": "{{$:/core/images/import-button}} You must confirm in order to proceed!",
"text": "\\rules except wikilink\n\n<<message>>\n\n''Are you really sure you want to do this?''"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/createView": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/createView",
"subtitle": "{{$:/core/images/new-button}} Creating a new view",
"text": "\\rules except wikilink\n\n<table class=\"tmap-config-table\">\n <<tmap-row type:\"input-text\"\n title:\"View name\"\n field:\"name\"\n focus:\"true\"\n class:\"tmap-trigger-field\n tmap-triggers-ok-button-on-enter\n tmap-triggers-cancel-button-on-esc\"\n descr:\"The name for the new view. If no name is entered,\n the program will invent one for you.\"\n note:\"You cannot override an existing view. In this case,\n you need to delete the old view first! You must no use\n slashes (`/`) in the name.\">>\n <<tmap-row type:\"input-checkbox\"\n title:\"Clone view\"\n field:\"clone\"\n descr:\"Use the view that is currently displayed in the\n editor as blueprint. The view will be an __exact__\n clone of the current one, only with a different\n name.\">>\n</table>\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/deleteNodeDialog": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/deleteNodeDialog",
"subtitle": "{{$:/core/images/delete-button}} You are about to delete <<count>> nodes",
"text": "\\rules except wikilink\n\n''Please choose an option or abort:''\n\n<$radio tiddler=<<output>> field=\"delete-from\" value=\"system\">\n Delete nodes from system <sup>[1]</sup>\n</$radio><br />\n<$radio tiddler=<<output>> field=\"delete-from\" value=\"filter\">\n Delete nodes from graph's filter <sup>[2]</sup>\n</$radio>\n\nThe following nodes will be deleted:\n\n<ul>\n<$list filter=<<tiddlers>>>\n <li><$view tiddler={{!!title}} field=\"title\" /></li>\n</$list>\n</ul>\n\n---\n\n<sup>[1]</sup>\n<small>This will delete all nodes, their corresponding tiddlers and all connected edges.</small><br/>\n<sup>[2]</sup>\n<small>''Important:'' Removing a node from the graph's filter only works, if the node has been added in the map editor per double click or via \"Add Node\". If the node hasn't been added as mentioned above, you need to change the underlying tiddler in a way that it doesn't match your filter anymore, if you don't want it to be displayed in the graph.</small>"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/dublicateIdInfo": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/dublicateIdInfo",
"subtitle": "{{$:/core/images/info-button}} Dublicate id detected",
"buttons": "ok_suppress",
"text": "\\rules except wikilink\n\nTiddlyMap requires the value of the id field (\"tmap.id\") to be\nunique in order to correctly identify nodes and tiddlers.\n\nThe id of the \"<<param.changedTiddler>>\" already exists for these tiddlers:\n\n<ul>\n<$list filter=<<param.filter>> variable=\"item\">\n <li><$link><<item>></$link></li>\n</$list>\n</ul>\n\nTherefore TiddlyMap\n\n* assigned a new id to tiddler \"<<param.changedTiddler>>\"\n* removed all edges from \"<<param.changedTiddler>>\"\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/edgeNotVisible": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/edgeNotVisible",
"subtitle": "{{$:/core/images/info-button}} Edge will not be visible in view \"<<view>>\"",
"buttons": "ok_suppress",
"text": "\\rules except wikilink\n\nYou just created an edge of type\n<code><$text text=<<type>> /></code> that will not be\nvisible in this view because it doesn't match your\nedge-type filter settings.\n\nThe current edge-type filter of view \"<<view>>\" looks like this:\n\n<pre><code><$text text=<<eTyFilter>> /></code></pre>\n\nTo have the newly added type displayed in your view, adjust your\nedge-type filter accordingly. \n\nSome suggestions:\n\n<ul>\n <li>\n Explicitly add the type to the filter:\n <code><$text text=\"[[\" /><$text text=<<type>> /><$text text=\"]]\" /></code>\n </li>\n <li>\n <$set\n filter=\"[<type>regexp[:]splitbefore[:]]\"\n name=\"prefix\"\n emptyValue=<<tmap halfOfString \"$(type)$\">>>\n Add a filter rule (e.g. a prefix filter) that will match\n your type: <code>[prefix[<<prefix>>]]</code>\n </$set>\n </li>\n <li>Make your current view-filter less restrictive.</li>\n</ul>\n\nFor further information, please see:\n[[Node and edge-type filters|http://tiddlymap.org#Node%20and%20edge-type%20filters]]."
},
"$:/plugins/felixhayashi/tiddlymap/dialog/editNode/default": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/editNode/default",
"caption": "Global node style",
"classes": "tmap-remove-top-space",
"text": "\\rules except wikilink\n\n<div class=\"tmap-flash-message tmap-info\">\n A node's ''global configuration''\n (also referred to as //global individual config//) defines its\n individual appearance and behaviour in all views.\n</div>\n<<maybeShowTidColorWarning>>\n\n<$macrocall $name=\"sharedSettings\"\n twIconField=<<tidIconField>>\n faIconField=\"global.tmap.fa-icon\"\n labelField=<<tidLabelField>> />\n\n<$macrocall $name=\"visConfiguration\"\n mode=\"manage-node-types\"\n extensionField=\"global.tmap.style\"\n styleName=\"node's global style\"\n inheritedList=\"[[inherited-global-default-style]]\n [[inherited-local-default-style]]\n [[inherited-group-styles]]\" />\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/editNode/local": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/editNode/local",
"caption": "Local node style",
"classes": "tmap-remove-top-space",
"text": "\\rules except wikilink\n\n<div class=\"tmap-flash-message tmap-info\">\n The ''local node configuration''\n (also referred to as //view-specific node configuration//)\n overrides the //global individual configuration// and only affects\n the node's appearance and behaviour in the current view.\n</div>\n<<maybeShowTidColorWarning>>\n\n<fieldset>\n <legend>Behaviour</legend>\n <table class=\"tmap-config-table\">\n <$macrocall type=\"input-select\"\n $name=\"tmap-row\"\n title=\"Open view\"\n field=\"local.open-view\"\n nochoice=\"Disabled\"\n selectFilter=<<tmap \"option\" \"selector.allViewsByLabel\">>\n descr=\"Clicking on this node will open the specified\n view instead of the tiddler represented by this node.\" />\n </table>\n</fieldset>\n\n<$macrocall $name=\"sharedSettings\"\n twIconField=\"local.tw-icon\"\n faIconField=\"local.fa-icon\"\n labelField=\"local.label\" />\n\n<$macrocall $name=\"visConfiguration\"\n mode=\"manage-node-types\"\n extensionField=\"local-individual-node-style\"\n styleName=\"node's local style\"\n inheritedList=\"[[inherited-global-default-style]]\n [[inherited-local-default-style]]\n [[inherited-group-styles]]\n [[global.tmap.style]]\" />\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/editNode": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/editNode",
"subtitle": "{{$:/core/images/edit-button}} Editing style of node \"<<tiddler>>\"",
"classes": "tmap-remove-top-space",
"text": "\\rules except wikilink\n\n\\define maybeShowTidColorWarning()\n <$list filter=\"[<tidColor>regexp[.+]]\">\n <div class=\"tmap-flash-message tmap-warning\">\n You have set the tiddler's color\n field to \"<<tidColor>>\". This value will be completely ignored\n when you change node's color properties in the vis editor below.\n </div>\n </$list>\n\\end\n\n\\define iconSettings(twIconField, faIconField)\n <fieldset>\n <legend>Icon Settings</legend>\n <table class=\"tmap-config-table\">\n <<tmap-row type:\"input-text\"\n title:\"TW-icon\"\n field:\"$twIconField$\"\n descr:\"A tiddlywiki image reference.\n For example '$:/core/icon' for Movotun Jack.\">>\n <<tmap-row type:\"input-text\"\n title:\"FA-icon\"\n field:\"$faIconField$\"\n descr:\"A Font Awesome icon code.\n For example 'f206' for the bicycle symbol.\">>\n </table>\n </fieldset>\n\\end\n\n\\define sharedSettings(twIconField, faIconField, labelField)\n <fieldset>\n <legend>General Settings</legend>\n <table class=\"tmap-config-table\">\n <<tmap-row type:\"input-text\"\n title:\"Label\"\n field:\"$labelField$\"\n descr:\"Use this value as node label.\">>\n </table>\n </fieldset>\n <!-- display icon fieldset -->\n <<iconSettings \"$twIconField$\" \"$faIconField$\">> \n\\end\n\n<$macrocall\n $name=\"tabs\"\n default=<<concat \"$(template)$/default\">>\n tabsList=\"[all[shadows]prefix<template>] -[<template>]\"\n/>"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/fullscreenTiddlerEditor/draft": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/fullscreenTiddlerEditor/draft",
"caption": "Draft",
"text": "\\rules except wikilink\n\n<div class=\"tmap-modal-editor\">\n <$importvariables filter=\"[all[tiddlers+shadows]prefix[$:/core/macros/]]\">\n <$set name=\"currentTiddler\" value=<<draftTRef>> >\n <$transclude tiddler=\"$:/core/ui/EditTemplate\" field=\"text\" mode=\"block\" />\n </$set>\n </$importvariables>\n</div>"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/fullscreenTiddlerEditor/original": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/fullscreenTiddlerEditor/original",
"caption": "Current Version",
"text": "\\rules except wikilink\n\n<div class=\"tmap-modal-editor\">\n <$importvariables filter=\"[all[tiddlers+shadows]prefix[$:/core/macros/]]\">\n <$set name=\"currentTiddler\" value=<<originalTRef>> >\n <$transclude tiddler=\"$:/core/ui/ViewTemplate\" field=\"text\" mode=\"block\" />\n </$set>\n </$importvariables>\n</div>\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/fullscreenTiddlerEditor": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/fullscreenTiddlerEditor",
"subtitle": "{{$:/core/images/edit-button}} <<originalTRef>>",
"classes": "tmap-modal-fullscreen-editor tmap-remove-top-space",
"text": "\\rules except wikilink\n\n\\define defaultTab() $:/plugins/felixhayashi/tiddlymap/dialog/fullscreenTiddlerEditor/original\n\n<$macrocall $name=\"tabs\"\n default=<<defaultTab>>\n tabsList=\"[all[shadows]prefix[$:/plugins/felixhayashi/tiddlymap/dialog/fullscreenTiddlerEditor/]]\" />"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/fieldChanged": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/fieldChanged",
"subtitle": "{{$:/core/images/info-button}} The field \"<<name>>\" changed",
"text": "\\rules except wikilink\n\nYou changed the field \"<<name>>\" from \"<<oldValue>>\" to \"<<newValue>>\".\n\nIt is recommended to let TiddlyMap copy all values from the former field \"<<oldValue>>\" to the new field \"<<newValue>>\" so the data stored in \"<<oldValue>>\" is not lost. This operation has to be done now or never.\n\nDo you want to move each tiddler's existing \"<<oldValue>>\" value to \"<<newValue>>\"? Please note that any value currently stored in \"<<newValue>>\" would consequently be overridden and the old field \"<<oldValue>>\" would be eventually removed!"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/fullscreenNotSupported": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/fullscreenNotSupported",
"subtitle": "{{$:/core/images/info-button}} Your machine does not support fullscreen",
"buttons": "ok_suppress",
"text": "\\rules except wikilink\n\nPlease have a look [[here|http://caniuse.com/#feat=fullscreen]] to see a list of supported devices/browsers.\n\nSorry for this :("
},
"$:/plugins/felixhayashi/tiddlymap/dialog/renameView": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/renameView",
"subtitle": "{{$:/core/images/tag-button}} Please specify a view name",
"text": "\\rules except wikilink\n\n''Name:''\n<$edit-text focus=\"true\" tiddler=<<output>> field=\"text\" type=\"text\" tag=\"input\" default=\"\"\n class=\"tmap-trigger-field tmap-triggers-ok-button-on-enter\" />\n\nNote that ''<<count>>'' tiddlers are referencing this view.\n\n<$reveal type=\"nomatch\" text=\"0\" default=<<count>>>\n\nRenaming the view will cause the reference to be invalid.\nIt is recommended to first remove the tiddlymap widgets in\nthe tiddlers listed below or change their view attributes\naccordingly.\n\n''References''\n\n<ul>\n<$list filter=<<refFilter>> variable=\"item\">\n <li><$text text=<<item>> /></li>\n</$list>\n</ul>\n\n</$reveal>\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/saveCanvas": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/saveCanvas",
"subtitle": "{{$:/core/images/options-button}} Save a snapshot image of view \"<<view>>\"",
"text": "\\rules except wikilink\n\n\\define preview()\n<div class=\"tmap-save-canvas-preview\">\n <$transclude tiddler=<<snapshot>> /><br />\n</div>\n\\end\n\n<table class=\"tmap-config-table\">\n <$macrocall $name=\"tmap-row\"\n type=\"input-text\"\n title=\"Name\"\n field=\"name\"\n descr=<<preview>> />\n <<tmap-row type:\"input-text\"\n title:\"Width\"\n field:\"width\"\n descr:\"Scales the image to match this new width (unit: px)\">>\n <<tmap-row type:\"input-text\"\n title:\"height\"\n field:\"height\"\n descr:\"Scales the image to match this new height (unit: px)\">>\n <<tmap-row type:\"input-radio\"\n title:\"Action\"\n field:\"action\"\n selectFilter:\"[[download|Download]]\n [[wiki|Save in wiki]]\n [[placeholder|Use as placeholder for this view]]\"\n descr:\"Save the image by downloading it to your computer or\n save it as a tiddler in your wiki.<br /><br />\n A third option is to make TiddlyMap use this image as\n placeholder for the current view. Placeholders are useful\n when the wiki is exported as static html\n or when editing a tiddler while having the preview\n shown. In this case the title input is ignored.\">>\n</table>\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog",
"text": "\\rules except wikilink\n\n<div class=<<classes>>>\n<$importvariables\n filter=\"[[$:/plugins/felixhayashi/tiddlymap/misc/macros]]\n [[$:/core/macros/tabs]]\">\n<$transclude tiddler=<<template>> mode=\"block\" />\n</$importvariables>\n</div>"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/welcome": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/welcome",
"subtitle": "{{$:/core/images/info-button }} Welcome",
"buttons": "ok",
"text": "\\rules except wikilink\n\nIt seems that you freshly installed TiddlyMap.\n\n* In case you need any help, please consult the [[online docs|http://tiddlymap.org#Documentation]] first.\n* You are welcome to create an [[issue|https://github.com/felixhayashi/TW5-TiddlyMap/issues]] at GitHub for any bug you discover.\n* Make sure to revisit the [[demo site|http://tiddlymap.org]] to see whether your version is up-to-date.\n* If you like TiddlyMap, please give it a star at [[GitHub|https://github.com/felixhayashi/TW5-TiddlyMap]] or tell your friends about it :)\n* ''Please note:'' TiddlyMap is distributed under the [[BSD 2-Clause License|http://opensource.org/licenses/BSD-2-Clause]], which belongs to the same license family, as the license used by TiddlyWiki. By using this plugin you agree to the product's [[License Terms|https://github.com/felixhayashi/TW5-TiddlyMap/blob/master/LICENSE]].\n\nEnjoy!\n\n---\n\nTiddlyMap will configure your wiki for optimal use. Everything can be changed back later by you, via the TiddlyWiki configurations panel, so no worries. If you checked some of the options below, please save & restart after closing this dialog.\n\n<table class=\"tmap-config-table\">\n <<tmap-row type:\"input-checkbox\"\n title:\"Optimize storyview\"\n field:\"config.storyview\"\n descr:\"Sets the storyview to 'top' for optimal scrolling.\">>\n <<tmap-row type:\"input-checkbox\"\n title:\"Optimize sidebar\"\n field:\"config.sidebar\"\n descr:\"Sets sidebar layout to 'fixed-fluid' for larger editor.\">>\n <<tmap-row type:\"input-checkbox\"\n title:\"Optimize navigation\"\n field:\"config.navigation\"\n descr:\"Sets navigation style to open tiddlers at top for better map navigation.\">>\n <<tmap-row type:\"input-checkbox\"\n title:\"Create demo welcome map\"\n field:\"config.demo\"\n descr:\"Creates a little hello world welcome map for you.\">>\n</table>\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/widgetCodeGenerator": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/widgetCodeGenerator",
"subtitle": "{{$:/core/images/permalink-button}} Widget Code Generator",
"buttons": "close",
"text": "\\rules except wikilink\n\n<div class=\"tmap-flash-message tmap-info\">\n Use the code below to embed a view in a tiddler.\n</div>\n\n<pre style=\"white-space: normal;\">\n<$tmap\n\n<$list filter=\"[<output>has[var.view]]\">\n view=\"<$view field='var.view' />\"</$list>\n<$list filter=\"[<output>field:var.click-to-use[true]]\">\n click-to-use=\"true\"</$list>\n<$list filter=\"[<output>has[var.editor]]\">\n editor=\"<$view field='var.editor' />\"</$list>\n<$list filter=\"[<output>has[var.width]]\">\n width=\"<$view field='var.width' />\"</$list>\n<$list filter=\"[<output>has[var.height]]\">\n height=\"<$view field='var.height' />\"</$list>\n<$list filter=\"[<output>has[var.class]]\">\n class=\"<$view field='var.class' />\"</$list>\n<$list filter=\"[<output>field:var.show-buttons[false]]\">\n show-buttons=\"false\"</$list>\n<$list filter=\"[<output>has[var.design]]\">\n design=\"<$view field='var.design' />\"</$list>></$tmap>\n</pre>\n\n<fieldset>\n <legend>Parameters</legend> \n <table class=\"tmap-config-table\">\n <$macrocall type=\"input-select\"\n $name=\"tmap-row\"\n title=\"View\"\n field=\"var.view\"\n nochoice=\" \"\n selectFilter=<<tmap \"option\" \"selector.allViewsByLabel\">>\n descr=\"The view to bind the wiedget to\" />\n <<tmap-row type:\"input-select\"\n title:\"Editor bar\"\n field:\"var.editor\"\n selectFilter:\"[[|Hidden]]\n [[vis|Simple]]\n [[advanced|Advanced]]\"\n descr:\"Whether the widget should act as an editor or not.\">>\n <<tmap-row type:\"input-select\"\n title:\"Design\"\n field:\"var.design\"\n selectFilter:\"[[|Normal]]\n [[plain|Plain]]\"\n descr:\"Usually a header is displayed and borders. Plain\n design will only show the mere graph.\">>\n <<tmap-row type:\"input-text\"\n title:\"Height\"\n field:\"var.height\"\n descr:\"Graph's height in css units. Defaults to '300px'.\">>\n <<tmap-row type:\"input-text\"\n title:\"Width\"\n field:\"var.width\"\n descr:\"Graph's width in css units. Defaults to '100%'.\">>\n <<tmap-row type:\"input-text\"\n title:\"Class\"\n field:\"var.class\"\n descr:\"A custom class to apply your own css.\">>\n <<tmap-row type:\"input-checkbox\"\n title:\"Click to use\"\n field:\"var.click-to-use\"\n default:\"false\"\n descr:\"A click is needed to enable the graph.\">>\n <<tmap-row type:\"input-checkbox\"\n title:\"Show buttons\"\n field:\"var.show-buttons\"\n default:\"true\"\n descr:\"Show or hide the graph's navigation buttons.\">>\n </table>\n</fieldset>"
},
"$:/plugins/felixhayashi/tiddlymap/dialogFooter/close": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialogFooter/close",
"text": "\\rules except wikilink\n\n<$button class=\"tmap-dialog-button tmap-close-button\" tooltip=\"Close this dialog\">Close\n\n <!-- trigger dialog callback -->\n <$action-setfield $tiddler=<<result>> text=\"1\" />\n \n</$button>\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialogFooter/ok": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialogFooter/ok",
"text": "\\rules except wikilink\n\n<$button class=\"tmap-dialog-button tmap-ok-button\" tooltip=\"Confirm dialog\">OK\n\n <!-- trigger dialog callback -->\n <$action-setfield $tiddler=<<result>> text=\"1\" />\n \n</$button>\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialogFooter/ok_cancel": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialogFooter/ok_cancel",
"text": "\\rules except wikilink\n\n<$transclude tiddler=\"$:/plugins/felixhayashi/tiddlymap/dialogFooter/ok\" mode=\"inline\" />\n<$button class=\"tmap-dialog-button tmap-cancel-button\" tooltip=\"Close dialog without saving\">Cancel\n <!-- trigger dialog callback -->\n <$action-setfield $tiddler=<<result>> text=\"\" />\n</$button>\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialogFooter/ok_suppress": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialogFooter/ok_suppress",
"text": "\\rules except wikilink\n\n<$set name=\"currentTiddler\" value=<<title>> >\n\n<$checkbox field=\"suppress\" checked=\"1\" unchecked=\"0\" default=\"0\"> Do not show this dialog again</$checkbox>\n<$button class=\"tmap-dialog-button tmap-ok-button\" tooltip=\"Confirm this dialog\">OK\n\n <!-- trigger dialog callback -->\n <$action-setfield $tiddler=<<result>> text=\"1\" />\n \n <!-- suppress dialog in the future -->\n <$action-sendmessage $message=\"tmap:tm-suppress-dialog\"\n dialog=<<templateId>>\n suppress={{!!suppress}} />\n \n</$button>\n\n</$set>"
},
"$:/plugins/felixhayashi/tiddlymap/dialogFooter": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialogFooter",
"text": "\\rules except wikilink\n\n\\define footer() $:/plugins/felixhayashi/tiddlymap/dialogFooter/$(buttons)$\n\n<$transclude tiddler=<<footer>> />\n\n<!-- we need this button to be able to close a tiddler from outside programmatically -->\n<$button class=\"tmap-hidden-close-button\" message=\"tm-close-tiddler\" />"
},
"$:/plugins/felixhayashi/tiddlymap/dialogFooter/element_type_manager": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialogFooter/element_type_manager",
"text": "\\rules except wikilink\n\n<$button\n class=\"tmap-dialog-button tmap-save-button\"\n tooltip=\"Save the current changes\">Save\n <$action-sendmessage\n $message=\"tmap:tm-save-type-form\"\n mode=<<mode>>\n output=<<output>> />\n</$button>\n<$button\n class=\"tmap-dialog-button tmap-cancel-button\"\n tooltip=\"Cancel the most resent changes and exit\">Quit\n <$action-setfield $tiddler=<<result>> text=\"1\" />\n</$button>"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/MapElementTypeManager/deleteType": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/MapElementTypeManager/deleteType",
"caption": "Removal",
"text": "\\rules except wikilink\n\n\\define manage-edge-types()\n <$macrocall $name=\"tmap-row\"\n type=\"input-checkbox\"\n title=\"Delete type\"\n field=\"temp.deleteType\"\n default={{!id}}\n readonly={{!!temp.idImmutable}}\n descr=\"If you want to delete this type, set this to true\n and click the save button afterwards. Predefined system\n types cannot be deleted.\" note=\"Consequently, all edges\n of this type will be deleted.\" />\n\\end\n\n\\define manage-node-types()\n <$macrocall $name=\"tmap-row\"\n type=\"input-checkbox\"\n title=\"Delete type\"\n field=\"temp.deleteType\"\n default={{!id}}\n readonly={{!!temp.idImmutable}}\n descr=\"If you want to delete this type, set this to true and\n click the save button afterwards. Predefined system\n types cannot be deleted.\" />\n\\end\n\n<table class=\"tmap-config-table\"><$macrocall $name=<<mode>> /></table>"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/MapElementTypeManager/description": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/MapElementTypeManager/description",
"caption": "Description",
"text": "\\rules except wikilink\n\n\\define manage-edge-types()\n <<tmap-row type:\"input-textarea\"\n title:\"Description\"\n field:\"description\"\n descr:\"An optional description for this type. The\n description will be displayed as tooltip when\n moving the mouse over an edge of this type.\">>\n\\end\n\n\\define manage-node-types()\n <<tmap-row type:\"input-textarea\"\n title:\"Description\"\n field:\"description\" \n descr:\"An optional description for this type.\">>\n\\end\n\n<table class=\"tmap-config-table\">\n <$macrocall $name=<<mode>> />\n</table>\n\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/MapElementTypeManager/generalSettings": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/MapElementTypeManager/generalSettings",
"caption": "General",
"text": "\\rules except wikilink\n\n\\define manage-edge-types()\n <<tmap-row type:\"input-text\"\n title:\"Label\"\n field:\"label\"\n descr:\"An optional alias used as edge-label.\">>\n <<tmap-row type:\"input-checkbox\"\n title:\"Show label\"\n field:\"show-label\"\n default:\"true\"\n descr:\"If unchecked, no edge label will be displayed.\">>\n\\end\n\\define manage-node-types()\n <$list filter=\"[<currentTiddler>!regexp:id[tmap:]]\">\n <<tmap-row type:\"input-textarea\"\n title:\"Scope\"\n field:\"scope\"\n descr:\"A filter expression that defines, which nodes inherit\n this node-type and its style.\">>\n </$list>\n <$macrocall type=\"input-select\"\n $name=\"tmap-row\"\n title=\"Priority\"\n field=\"priority\"\n selectFilter=<<tmap \"scale\" \"100\">>\n descr=\"When a type has a a higher priority than another type,\n its style will override the other style\" />\n\\end\n\n<table class=\"tmap-config-table\">\n <$macrocall\n $name=\"tmap-row\"\n title=\"Identifier\"\n field=\"temp.newId\"\n type=\"input-text\"\n default={{!!id}}\n readonly={{!!temp.idImmutable}}\n descr=\"A unique identifier\"\n />\n <$macrocall $name=<<mode>> />\n</table>\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/MapElementTypeManager/overview": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/MapElementTypeManager/overview",
"caption": "Overview",
"text": "\\rules except wikilink\n\n\\define date(f) <$view field=$f$ format=\"date\" template=\"DDth mmm hh:mm:ss\"/>\n\n! <$link to={{!!typeTRef}}><$view field=\"id\" /></$link>\n\n<table class=\"tmap-key-value-table\">\n <tr>\n <th align=\"left\">Created on</th>\n <td>\n <<date \"created\">>\n </td>\n </tr>\n <tr>\n <th align=\"left\">Modified on</th>\n <td><<date \"modified\">></td>\n </tr>\n <tr>\n <th align=\"left\">Usage count</th>\n <td>\n <span class=\"tmap-edge-type-specific\">\n <$view field=\"temp.usageCount\" />\n </span>\n <span class=\"tmap-node-type-specific\">\n <$count filter={{!!scope}}>0</$count>\n </span>\n </td>\n </tr>\n</table>\n\n<$view field=\"description\">//No description available//</$view>"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/MapElementTypeManager/styling": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/MapElementTypeManager/styling",
"caption": "Styling",
"text": "\\rules except wikilink\n\n\\define url()\n <$set\n filter=\"[<mode>prefix[manage-edge-types]]\"\n name=\"module\"\n value=\"edges\"\n emptyValue=\"nodes\">\n [[visjs.org|http://visjs.org/docs/network/$(module)$]]\n </$set>\n\\end\n\n<fieldset class=\"tmap-node-type-specific\">\n <legend>Icon Settings</legend>\n <table class=\"tmap-config-table\">\n <<tmap-row type:\"input-text\"\n title:\"TW-icon\"\n field:\"tw-icon\"\n descr:\"A tiddlywiki image reference.\n For example '$:/core/icon' for Movotun Jack.\">>\n <<tmap-row type:\"input-text\"\n title:\"FA-icon\"\n field:\"fa-icon\"\n descr:\"A Font Awesome icon code.\n For example 'f206' for the bicycle symbol.\">>\n </table>\n</fieldset>\n\n<fieldset><legend>Visjs styles</legend>\n <div class=\"tmap-flash-message tmap-info\">\n All visjs options below are documented at <<url>>.\n </div>\n <div class=\"tmap-flash-message tmap-info\">\n Only config items that you actually changed have an effect on\n the graph. Other options are visible, yet, inactive.\n </div>\n <$tmap-config\n mode=<<mode>>\n inherited=\"inherited-style\"\n extension=\"style\" />\n</fieldset>\n"
},
"$:/plugins/felixhayashi/tiddlymap/dialog/MapElementTypeManager": {
"title": "$:/plugins/felixhayashi/tiddlymap/dialog/MapElementTypeManager",
"subtitle": "{{$:/core/images/tag-button}} <<topic>>",
"buttons": "element_type_manager",
"classes": "tmap-remove-top-space",
"text": "\\rules except wikilink\n\n\\define defaultTab()\n$:/plugins/felixhayashi/tiddlymap/dialog/MapElementTypeManager/overview\n\\end\n\n\\define settingsTab()\n$:/plugins/felixhayashi/tiddlymap/dialog/MapElementTypeManager/generalSettings\n\\end\n\n\\define tabsFilter()\n[all[shadows]prefix[$:/plugins/felixhayashi/tiddlymap/dialog/MapElementTypeManager/]]\n\\end\n\n\\define searchFilter()\n$(searchSelector)$\n+[sort[title]nsort[priority]]\n+[removeprefix<typeRootPath>removeprefix[/]]\n+[search:title{$:/temp/tmap/MapElementTypeSearch}]\n\\end\n\n\\define managerClass() tmap-$(mode)$\n\n\\define typePath() $(typeRootPath)$/$(id)$\n\n<div id=\"tmap-element-type-manager\" class=<<managerClass>>>\n <div>\n <div class=\"tmap-searchbar\">\n <$edit-text\n focus=\"true\"\n tiddler=\"$:/temp/tmap/MapElementTypeSearch\"\n type=\"text\"\n tag=\"input\"\n default=\"\" />\n <$list filter=\"[{$:/temp/tmap/MapElementTypeSearch}regexp[.+]]\n +[addprefix[/]]\n +[addprefix<typeRootPath>]\n +[!is[tiddler]!is[shadow]]\">\n <$button tooltip=\"Create a new type of this name\">\n {{$:/core/images/new-button}}\n <$action-sendmessage\n $message=\"tmap:tm-create-type\"\n mode=<<mode>>\n id={{$:/temp/tmap/MapElementTypeSearch}}\n output=<<output>> />\n <$action-setfield $tiddler=\"$:/temp/tmap/MapElementTypeSearch\" text=\"\" />\n </$button>\n </$list>\n\n </div>\n <ul>\n <$list\n filter=<<searchFilter>>\n emptyMessage=<<noTypeFound>>\n variable=\"id\">\n <li>\n <span class=\"tmap-ranking tmap-node-type-specific\">\n # <$view tiddler=<<typePath>> field=\"priority\">1</$view>\n </span>\n <$button class=\"tc-btn-invisible tmap-link\"><<id>>\n <$action-setfield\n $tiddler=<<qualify \"$:/state/tabs/MapElementTypeManager\">>\n text=<<defaultTab>> />\n <$action-sendmessage\n $message=\"tmap:tm-load-type-form\"\n id=<<id>>\n mode=<<mode>>\n output=<<output>> />\n </$button>\n </li>\n </$list>\n </ul>\n </div>\n <div>\n <$reveal type=\"nomatch\" text=\"\" default={{!!id}} >\n <$macrocall\n $name=\"tabs\"\n default=<<defaultTab>>\n state=\"$:/state/tabs/MapElementTypeManager\"\n tabsList=<<tabsFilter>> />\n </$reveal>\n <$reveal type=\"match\" text=\"\" default={{!!id}} >\n <div class=\"tmap-flash-message tmap-info\">\n Please select a type from the list or create a new one by\n entering the type name in the search field on the left.\n </div>\n <div class=\"tmap-flash-message tmap-info tmap-node-type-specific\">\n The number next to the node-type label represents it's priority.\n </div>\n </$reveal>\n </div>\n</div>\n"
},
"$:/plugins/felixhayashi/tiddlymap/editor/contextMenu/node": {
"title": "$:/plugins/felixhayashi/tiddlymap/editor/contextMenu/node",
"text": "\\define single()\n <$list filter=\"\n [[tmap:tm-toggle-central-topic, $:/core/images/star-filled, Toggle central topic]]\n [[tmap:tm-delete-element, $:/core/images/delete-button, Delete node]]\">\n <$button class=\"tc-btn-invisible\">\n <$action-sendmessage $message=<<tmap \"splitAndSelect\" \", \" \"0\">> />\n <$transclude tiddler=<<tmap \"splitAndSelect\" \", \" \"1\">> />\n <<tmap \"splitAndSelect\" \", \" \"2\">>\n </$button>\n </$list>\n\\end\n\n\\define multi()\n <$list filter=\"\n [[tmap:tm-delete-element, $:/core/images/delete-button, Delete selected nodes]]\">\n <$button class=\"tc-btn-invisible\">\n <$action-sendmessage $message=<<tmap \"splitAndSelect\" \", \" \"0\">> />\n <$transclude tiddler=<<tmap \"splitAndSelect\" \", \" \"1\">> />\n <<tmap \"splitAndSelect\" \", \" \"2\">>\n </$button>\n </$list>\n\\end\n\n<div class=\"tc-drop-down\">\n <$macrocall $name=<<mode>> />\n</div>\n"
},
"$:/plugins/felixhayashi/tiddlymap/misc/advancedEditorBar": {
"title": "$:/plugins/felixhayashi/tiddlymap/misc/advancedEditorBar",
"text": "\\rules except wikilink\n\\define showEdgeField() show-$(curEdgeId)$\n\n<!-- === View Switcher ========================================== -->\n\n<div class=\"tmap-menu-bar\">\n View:\n <$reveal type=\"match\" text=\"false\" default=<<isViewBound>> >\n <$select\n tiddler=<<viewHolder>>\n field=\"text\"\n default=<<viewLabel>> >\n <$list filter=<<tmap \"option\" \"selector.allViewsByLabel\">> >\n <option value={{!!title}}>\n <$view tiddler={{!!title}} field=\"title\" />\n </option>\n </$list>\n </$select>\n </$reveal>\n <$reveal type=\"match\" text=\"true\" default=<<isViewBound>> >\n <b><<viewLabel>></b>\n </$reveal>\n\n<!-- === Menu =================================================== -->\n\n <$button\n popup=<<qualify \"$:/temp/menu\">>\n class=\"tmap-unicode-button\"\n tooltip=\"Open the Menu\">{{$:/core/images/menu-button}}\n </$button>\n\n <$reveal type=\"popup\" position=\"below\" state=<<qualify \"$:/temp/menu\">> >\n <div class=\"tc-drop-down\">\n <a href=\"http://tiddlymap.org#Documentation\" target=\"_blank\">\n {{$:/core/images/info-button}} Open online help\n </a>\n <$button class=\"tc-btn-invisible\" message=\"tmap:tm-create-view\">\n {{$:/core/images/new-button}} Create new view\n </$button>\n <$button class=\"tc-btn-invisible\" message=\"tmap:tm-generate-widget\">\n {{$:/core/images/permalink-button}} Grab widget code\n </$button>\n <div class=\"tmap-list-separator\">Global configurations:</div>\n <$button class=\"tc-btn-invisible\" message=\"tmap:tm-configure-system\">\n {{$:/core/images/options-button}} Configure TiddlyMap\n </$button>\n <$button class=\"tc-btn-invisible\" message=\"tmap:tm-manage-edge-types\">\n <span class=\"tmap-unicode-icon\">◭</span> Manage edge-types\n </$button>\n <$button class=\"tc-btn-invisible\" message=\"tmap:tm-manage-node-types\">\n <span class=\"tmap-unicode-icon\">▢</span> Manage node-types\n </$button>\n <div class=\"tmap-view-actions\">\n <div class=\"tmap-list-separator\">Actions for this view:</div>\n <$button class=\"tc-btn-invisible\" message=\"tmap:tm-edit-view\">\n {{$:/core/images/options-button}} Configure view\n </$button>\n <$button class=\"tc-btn-invisible\" message=\"tmap:tm-rename-view\">\n {{$:/core/images/tag-button}} Rename view\n </$button>\n <$button class=\"tc-btn-invisible\" message=\"tmap:tm-delete-view\">\n {{$:/core/images/delete-button}} Delete view\n </$button>\n </div>\n </div>\n </$reveal>\n\n<!-- === Neighbourhood menu ===================================== -->\n\n <$reveal\n type=\"match\"\n text=\"true\"\n default=<<tmap \"option\"\n \"config.sys.editorMenuBar.showNeighScopeButton\">>>\n <$button\n class=<<neighScopeBtnClass>>\n tooltip=\"Change the neighbourhood scope\"\n popup=<<qualify \"$:/temp/neighScope\">>>\n {{$:/core/images/preview-open}}\n </$button>\n </$reveal>\n\n <$reveal type=\"popup\" position=\"below\" state=<<qualify \"$:/temp/neighScope\">> >\n <div class=\"tc-drop-down\">\n <div class=\"tmap-list-separator\">Neighbourhood scope</div>\n <$button class=\"tc-btn-invisible\">None\n <$action-setfield\n $tiddler=<<viewRoot>>\n config.neighbourhood_scope=\"\" />\n </$button>\n <$list filter=\"[[1|1 step distance]]\n [[2|2 step distance]]\n [[3|3 step distance]]\n [[4|4 step distance]]\n [[5|5 step distance]]\">\n <$button class=\"tc-btn-invisible\">\n <<tmap \"splitAndSelect\" \"|\" \"1\">>\n <$action-setfield\n $tiddler=<<viewRoot>>\n config.neighbourhood_scope=<<tmap \"splitAndSelect\" \"|\" \"0\">> />\n </$button>\n </$list>\n <$button class=\"tc-btn-invisible\">No limit\n <$action-setfield\n $tiddler=<<viewRoot>>\n config.neighbourhood_scope=\"100\" />\n </$button>\n\n <div class=\"tmap-list-separator\">Neighbourhood traversal</div>\n\n <$radio field=\"config.neighbourhood_directions\" value=\"in\"> Incoming</$radio><br />\n <$radio field=\"config.neighbourhood_directions\" value=\"out\"> Outgoing</$radio><br />\n <$radio field=\"config.neighbourhood_directions\" value=\"\"> Both</$radio>\n\n <div class=\"tmap-list-separator\">Other</div>\n\n <$checkbox field=\"config.show_inter_neighbour_edges\"\n checked=\"true\" unchecked=\"false\"> Inter-neighbour edges</$checkbox>\n\n </div>\n </$reveal>\n\n<!-- === Tracing ===================================== -->\n\n <$reveal\n type=\"match\"\n text=\"true\"\n default=<<isShowNeighbourhood>>>\n <$button\n class=<<tracingBtnClass>>\n tooltip=\"Trace your clicks on neighbouring nodes.\"\n popup=<<qualify \"$:/temp/tmap-tracing\">>>\n {{$:/core/images/timestamp-on}}\n </$button>\n </$reveal>\n\n <$reveal type=\"popup\" position=\"below\" state=<<qualify \"$:/temp/tmap-tracing\">> >\n <div class=\"tc-drop-down\">\n <$button message=\"tmap:tm-neighbourhood-reset-trace\">\n {{$:/core/images/erase}} Restart\n </$button>\n <span\n title=\"\n Enable this option to trace your clicks on neighbouring nodes.\n Traced neighbours are temporarily added to the map (until the map is closed)\n as if they where regular nodes of the map\"\n >\n <$checkbox\n field=\"config.neighbourhood_trace_clicks\"\n checked=\"true\"\n unchecked=\"false\"\n >\n Trace clicked nodes\n </$checkbox>\n </span>\n <br />\n <span title=\"Will focus an zoom on the latest traced node\">\n <$checkbox\n field=\"config.neighbourhood_focus_newly_traced_node\"\n checked=\"true\"\n unchecked=\"false\"\n >\n Focus traced nodes\n </$checkbox>\n </span>\n <br />\n <span title=\"Per default, only neighbours of nodes matching the node filter are displayed. Enable this option to also show neighbours of traced nodes.\">\n <$checkbox field=\"config.neighbourhood_include_traced_node_neighbours\"\n checked=\"true\" unchecked=\"false\"> Show neighbours of all traced nodes</$checkbox>\n </span>\n </div>\n </$reveal>\n\n<!-- === Export menu ============================================ -->\n\n <$reveal\n type=\"match\"\n text=\"true\"\n default=<<tmap \"option\" \"config.sys.editorMenuBar.showScreenshotButton\">>>\n <$button class=\"tmap-unicode-button\" tooltip=\"Open the map-export menu\" popup=<<qualify \"$:/temp/mapExport\">>>\n {{$:/core/images/download-button}}\n </$button>\n </$reveal>\n\n <$reveal type=\"popup\" position=\"below\" state=<<qualify \"$:/temp/mapExport\">>>\n <div class=\"tc-drop-down\">\n <$button\n class=\"tc-btn-invisible\"\n tooltip=\"Export the graph and all its elements\n in form of a JSON file\">\n {{$:/core/images/permalink-button}} Save as JSON file\n <$action-sendmessage\n $message=\"tmap:tm-download-graph\"\n view=<<viewLabel>> />\n </$button>\n <$button\n class=\"tc-btn-invisible\"\n tooltip=\"Create a png image to download or save it\n as image or view-placeholder in your wiki\">\n {{$:/core/images/palette}} Save as png image\n <$action-sendmessage $message=\"tmap:tm-save-canvas\" />\n </$button>\n </div>\n </$reveal>\n\n<!-- === Raster menu ============================================ -->\n\n <$reveal\n type=\"match\"\n text=\"true\"\n default=<<tmap \"option\" \"config.sys.editorMenuBar.showRasterMenuButton\">>>\n <$button\n tooltip=\"Change the raster of your map\"\n class=\"tmap-unicode-button\"\n popup=<<qualify \"$:/temp/rasterMenu\">>>\n {{$:/core/images/line-width}}\n </$button>\n </$reveal>\n\n <$reveal type=\"popup\" position=\"below\" state=<<qualify \"$:/temp/rasterMenu\">>>\n <div class=\"tc-drop-down\">\n <$button class=\"tc-btn-invisible\">Disable raster\n <$action-setfield\n $tiddler=<<viewRoot>>\n config.raster=\"\" />\n </$button>\n <div class=\"tmap-list-separator\">Raster sizes</div>\n <$list filter=\"[[50|50px]]\n [[75|75px]]\n [[100|100px]]\n [[150|150px]]\">\n <$button class=\"tc-btn-invisible\">\n <<tmap \"splitAndSelect\" \"|\" \"1\">>\n <$action-setfield\n $tiddler=<<viewRoot>>\n config.raster=<<tmap \"splitAndSelect\" \"|\" \"0\">> />\n </$button>\n </$list>\n </div>\n </$reveal>\n\n</div>\n"
},
"$:/plugins/felixhayashi/tiddlymap/misc/focusButton": {
"title": "$:/plugins/felixhayashi/tiddlymap/misc/focusButton",
"text": "\\define filter() [list[$:/temp/tmap/nodes/$(viewLabel)$]search:title{$:/temp/tmap/bar/search}]\n\\define concat(str) $str$\n\n\\define state() $(widgetPopupsPath)$/focus\n\n<div class=\"tmap-focus-button\">\n <$reveal type=\"match\" state=<<state>> text=\"\">\n <$button\n tooltip=\"Zoom on a specific node\"\n class=<<tv-config-toolbar-class>>>{{$:/core/images/advanced-search-button}}\n <$action-setfield $tiddler=\"$:/temp/tmap/bar/search\" text=\"\" />\n <$action-setfield $tiddler=<<state>> text=\"1\" />\n </$button>\n </$reveal>\n <$reveal type=\"nomatch\" state=<<state>> text=\"\">\n <$button\n tooltip=\"Close zoom popup\"\n class=<<tv-config-toolbar-class>>>{{$:/core/images/advanced-search-button}}\n <$action-setfield $tiddler=<<state>> text=\"\" />\n </$button>\n <div class=\"tmap-search-dropdown\">\n <div class=\"tc-drop-down\">\n <$edit-text\n focus=\"true\"\n tiddler=\"$:/temp/tmap/bar/search\"\n field=\"text\"\n type=\"text\"\n tag=\"input\"\n default=\"\" />\n <small><$count filter=<<filter>> /> results</small>\n <hr />\n <div class=\"tmap-very-small-list\">\n <$list filter=<<filter>>\n variable=\"item\"\n emptyMessage=\"//No results//\">\n <$button\n class=\"tc-btn-invisible\"\n message=\"tmap:tm-focus-node\"\n param=<<item>>>\n <$view tiddler=<<item>> field=\"title\" />\n </$button>\n </$list>\n </div>\n </div>\n </div>\n </$reveal>\n</div>"
},
"$:/plugins/felixhayashi/tiddlymap/hook/editor": {
"title": "$:/plugins/felixhayashi/tiddlymap/hook/editor",
"caption": "Map",
"tags": "$:/tags/SideBar",
"text": "\\define width() calc(100% - 15px)\n\n<div class=\"tmap-mobile-editor\">\n <div class=\"tmap-flash-message tmap-warning\">\n The editor is not displayed in mobile mode.\n </div>\n</div>\n<div class=\"tmap-desktop-editor\">\n <$tiddlymap\n class=\"tmap-sidebar-map-editor\"\n editor=\"advanced\"\n object-id=\"main_editor\"\n click-to-use=\"false\">\n </$tiddlymap>\n</div>"
},
"$:/plugins/felixhayashi/tiddlymap/hook/liveTab": {
"title": "$:/plugins/felixhayashi/tiddlymap/hook/liveTab",
"caption": "Live",
"text": "\\define width() calc(100% - 15px)\n\n<div class=\"tmap-mobile-editor\">\n <div class=\"tmap-flash-message tmap-warning\">\n The live tab is not displayed in mobile mode.\n </div>\n</div>\n<div class=\"tmap-desktop-editor\">\n <$set name=\"view\"\n filter=\"[{$:/temp/tmap/currentTiddler}get[tmap.open-view]]\"\n emptyValue=<<tmap \"option\" \"config.sys.liveTab.fallbackView\">>>\n <div>\n <$tiddlymap\n view=<<view>>\n click-to-use=\"false\"\n refresh-triggers=\"$:/temp/tmap/currentTiddler\"\n object-id=\"live_tab\">\n </$tiddlymap>\n </div>\n </$set> \n</div>"
},
"$:/plugins/felixhayashi/tiddlymap/misc/quickConnectButton": {
"title": "$:/plugins/felixhayashi/tiddlymap/misc/quickConnectButton",
"tags": "$:/tags/ViewToolbar",
"description": "{{$:/language/Buttons/TiddlyMap/Hint}}",
"caption": "{{$:/plugins/felixhayashi/tiddlymap/icon}} {{$:/language/Buttons/TiddlyMap/Caption}}",
"text": "\\define buttonClass() $(tv-config-toolbar-class)$ $(additional-classes)$\n\n\\define nonExistentItem()\n<<item>> <span style=\"color: #9E9E9E\">(will be created)</span>\n\\end\n\n\\define noConnectionsMsg()\n<tr><td colspan=\"4\">//No connections found!//</td></tr>\n\\end\n\n\\define normalSearchFilter()\n[!is[system]!has[draft.of]search:title{$:/temp/quickConnectSearch}sortcs[title]limit[50]]\n\\end\n\n\\define regexSearchFilter()\n[!is[system]!has[draft.of]regexp{$:/temp/quickConnectSearch}sortcs[title]limit[50]]\n\\end\n\n\\define showButton(state)\n<$button set=\"$:/temp/tmap/state/popup/quickConnect\"\n setTo=\"$state$\" tooltip={{$:/language/Buttons/TiddlyMap/Hint}} \n aria-label={{$:/language/Buttons/TiddlyMap/Caption}}\n class=<<buttonClass>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">{{$:/plugins/felixhayashi/tiddlymap/icon}}</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/TiddlyMap/Caption}}/></span>\n</$list>\n</$button>\n\\end\n\n\\define searchResults()\n<td>\n <$button tooltip=\"Create incoming edge\">\n <<tmap \"option\" \"misc.arrows.in\">>\n <$action-sendmessage $message=\"tmap:tm-create-edge\"\n from=<<item>>\n to=<<currentTiddler>>\n force=\"true\"\n label={{$:/temp/quickConnectSearch/type}}\n view={{$:/temp/quickConnectSearch/view}} />\n </$button>\n</td>\n<td>\n <$button tooltip=\"Create outgoing edge\">\n <<tmap \"option\" \"misc.arrows.out\">>\n <$action-sendmessage $message=\"tmap:tm-create-edge\"\n from=<<currentTiddler>>\n to=<<item>>\n force=\"true\"\n label={{$:/temp/quickConnectSearch/type}}\n view={{$:/temp/quickConnectSearch/view}} />\n </$button>\n</td>\n<td>\n <$list\n filter=\"[<item>is[tiddler]]\"\n emptyMessage=<<nonExistentItem>>>\n <$view tiddler=<<item>> field=\"title\" />\n </$list>\n</td>\n\\end\n\n\\define hidePopup()\n<$macrocall $name=\"showButton\" state=<<qualify>> />\n\\end\n\n\\define showPopup()\n<$set name=\"additional-classes\" value=\"tmap-active-button\">\n <$macrocall $name=\"showButton\" state=\"\" />\n</$set>\n<$set\n name=\"searchFilter\"\n filter=\"[field:title[$:/state/tmap/tid-toolbar]has[re-filter]]\"\n value=<<regexSearchFilter>>\n emptyValue=<<normalSearchFilter>>>\n<div class=\"tmap-quick-connect tc-reveal tc-popup\">\n <div class=\"tc-drop-down\">\n <div class=\"title\">Create connection</div>\n <table class=\"tmap-quick-connect-search-bar\">\n <tr>\n <td>Type:</td>\n <td>\n <$edit-text\n tiddler=\"$:/temp/quickConnectSearch/type\"\n field=\"text\"\n type=\"text\"\n tag=\"input\"\n default=\"\" />\n <$select tiddler=\"$:/temp/quickConnectSearch/type\" default=\"\">\n <option></option>\n <$list filter=<<tmap \"option\" \"selector.allEdgeTypesById\">>>\n <option>{{!!title}}</option>\n </$list>\n </$select>\n </td>\n </tr>\n <tr>\n <td>Search:</td>\n <td>\n <$edit-text tiddler=\"$:/temp/quickConnectSearch\" type=\"text\" tag=\"input\" default=\"\"></$edit-text>\n <$checkbox\n tiddler=\"$:/state/tmap/tid-toolbar\"\n field=\"re-filter\"\n checked=\"1\"\n unchecked=\"\"\n default=\"\"> regexp\n </$checkbox>\n<!--\n <small>(<$count filter=<<searchFilter>> /> results)</small>\n-->\n </td>\n </tr>\n </table>\n <table class=\"tmap-create-connection-table\">\n <tr>\n <td colspan=\"2\">\n <table class=\"tmap-very-small-list\">\n <$list\n filter=<<searchFilter>>\n variable=\"item\">\n <tr><<searchResults>></tr>\n </$list>\n <tr>\n <$list filter=\"[{$:/temp/quickConnectSearch}regexp[.+]] -[is[tiddler]]\" variable=\"item\">\n <<searchResults>>\n </$list>\n </tr>\n </table>\n </td>\n </tr>\n </table>\n <div class=\"title\">Existing Connections</div>\n <div class=\"tmap-quick-connect-existing-bar\">\n <$select\n tiddler=\"$:/state/tmap/tid-toolbar\"\n field=\"direction\"\n default=\"both\">\n <option value=\"both\">both</option>\n <option value=\"in\">incoming</option>\n <option value=\"out\">outgoing</option>\n </$select>\n <$checkbox\n tiddler=\"$:/state/tmap/tid-toolbar\"\n field=\"filter.links\"\n checked=\"-[[tw-body:link]]\"\n unchecked=\"\"\n default=\"\"> hide links\n </$checkbox>\n </div>\n <table class=\"tmap-connection-table\">\n<!--\n <tr>\n <th></th>\n <th>Tiddler</th>\n <th>Type</th>\n <th></th>\n </tr>\n-->\n \n <$tmap-connections\n filter=<<tmap mergeFields \"$:/state/tmap/tid-toolbar\" \"filter.\">>\n direction={{$:/state/tmap/tid-toolbar!!direction}}\n emptyMessage=<<noConnectionsMsg>>>\n <tr>\n <td title=<<direction>>><<directionSymbol>></td>\n <td><$link to=<<neighbour>>><$view field=\"title\" /></$link></td>\n <td><<edge.type>></td>\n <td>\n <$button\n tooltip=\"Delete this connection\"\n class=\"tc-btn-invisible\">{{$:/core/images/close-button}}\n <$action-sendmessage $message=\"tmap:tm-remove-edge\"\n id=<<edge.id>>\n from=<<edge.from>>\n to=<<edge.to>>\n type=<<edge.type>> />\n </$button>\n </td>\n </tr>\n </$tmap-connections>\n </table> \n </div>\n</div>\n</$set>\n\\end\n\n<$list filter=\"[all[current]is[tiddler]]\"><$list filter=\"[{$:/temp/tmap/state/popup/quickConnect}prefix<qualify>]\" variable=\"item\" emptyMessage=<<hidePopup>>><<showPopup>></$list></$list>"
},
"$:/plugins/felixhayashi/tiddlymap/media/fullscreen.png": {
"title": "$:/plugins/felixhayashi/tiddlymap/media/fullscreen.png",
"type": "image/png",
"text": "iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAGYktHRAD/AP8A/6C9p5MAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQffARwOKQxPfTsHAAAEcUlEQVRIx72XX0xTZxjGn+c9JcYQ50qM5RjKkOOG1NQEQiMV1tkLIbLsypCahsTojIkX6kgBr7aG7Wo6ou7STHbnjdGb/Ymb2ABODdiIxKR/IdoeR1PIKJAZdZntLnZq0CEWtHtuzjk57/l+3/e9J8/7fkQB8vv9DIfDHyqK8nEul2sSkS0AzABAMkNyAsBNAD9qmna9t7c397oxudzLXbt2icVi+YxkH0mQ/4YvdRWRxZ/6EonEmcHBweyKwR6P5wCAfhEBSWzatClls9mS27ZtS1dVVc1v3LgxAwDT09PmBw8erI9Go5ZIJFKZSqVUEUE2mwXJg/39/d8XDN63b9+XAD4nie3bt0dbWlpC9fX1eiFpGR8ftwYCAVsoFKoxdumrc+fOffFynLIE9AyAHpLYvXv3yNGjR4dUVV1AgSovL19wOp2Tjx49QiKRqCD5kcPhMAeDwSuvBHs8nq9FxEcSXq93wOPx3MUqZbfbf1+zZs2f0Wi0mmSjw+EoDQaDV/8D9ng8B0ieFBHs37//17a2tjDeUJqmzZSWls6HQiFNUZQmh8ORvH379t3nOW5vb1dMJtPfJLFnz56bHR0dQQDwer3HlhrwwoUL3y5+fl3cpUuXGoaHh3cCQCqVMl28ePGZAICiKMdJwm63R/PQt6m9e/cGbTZbhCRUVT0OACa/3894PN4HAK2traFCVriaHXC5XKFYLLYVQJ/f7z8tsVjMBQBWqzVVV1eno0iqra19qKpqSkSwsLDgEpJtJFFbW5tEkaVpWlJEUFJS0iYkdxrgdLHB1dXVacNenSaS75NEVVXV/EpzW2jO87JarfOGp39gImkWEeS9t5gqKyvLGGCzKV8E/i/lq5jkcrkMSUxPT5uLDZ2dnTWLCEQkIyISFxEkk8n1Lwd6vd5jr3Kl5fSq76amptYbFSsmInKLJOLxuKXYK9Z13WKAbwnJnwAgGo1WFhucTCYrFUUBgJ+loqJimCTS6bR67969imJBJyYmKmZnZ1URgcvlum7q7e3NHT582Aegb3Bw0Ga32x8ulbPVVKfFunPnjk1EkMvlfG63OysAkMlkzhrbvfXy5csNb3u1gUCg4f79+1sB4MmTJ2df6LmOHDlyUETOK4qC9vb2X5qbm6NvAzo2NlYzMDDQShLZbPbQiRMnzr/QgQSDwbEdO3aUkmyKRCJb1q1bN1dZWfnHm0IDgUCr8Sef6unpOblkzzU6Onq1sbHRTLIxEolsefr06bOampqp1UCHhoYabty44Tbyerarq8u3bJc5MjJyxel0liqK0qTrulXX9XfXrl3714YNGwrqNCcnJ63Xrl1zhsPhOsMeT/l8Pl/BDX13d/enAL4zLA4WiyWlaVpi8+bNaVVVF8rKyjJ5G5yZmXknkUhYdF1/b25uTs2fOkge6uzsPL/iI4zf75fHjx93KoryjclkgtGfgSQMI0B+YovvSXbV19efdrvdKz/CvDyBbDbbTPITkjtFRBOR54ZPclJEbgL4weFw/LYcMK9/AFcdm7xTEIntAAAAAElFTkSuQmCC"
},
"$:/plugins/felixhayashi/tiddlymap/media/halfscreen.png": {
"title": "$:/plugins/felixhayashi/tiddlymap/media/halfscreen.png",
"type": "image/png",
"text": "iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAGYktHRAD/AP8A/6C9p5MAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQffBAgRIDS2XJMlAAAEdklEQVRIx72XX2xTZRjGn+f9TiAEGHYhlMIObut0dGTAQlP2R2e9GUmNN0vYRrkgICEhIeDSdXeaE70SJIKXZNM7bkjmhX+CMgZVM3BpGIHM9nQOtlO0ac3oSiRkxlEvPF0AYXaw+lydnO/L+X3v95687/MSRcgwDMZisdeVUm/l8/kWkjUAHCRBMgvgF5LDAL5yu90/GIaR/69vcqFFv98vTqfzXRE5CQDkP9tF5LF9IjK/Zis0NTV16vLlyw8XDe7s7NxP8jM7KmzcuDHl8XisLVu2pCsrK3Pr1q3LAkAmk3FMTk6uMU3TaZrmplQq5SKJfD4Pkgf6+/s/Lxq8Z8+eDwC8BwDbtm0z29rafm5oaEgWk5YbN27oQ0NDdWNjY7X2zXx45syZ95/cp5580dXVdYpkLwC0tbX9dOTIkYjL5bqHIuV0Ou81NjZO3L9/H5OTkxUk3/D5fI5oNHr+meCurq6PSIYAIBgMDnZ0dFzHc6q+vv7X5cuX/5FIJKpJNnq93pXRaPTCv8CdnZ37ReQ4Sezbt++7QCAQwwvK7Xb/vmrVqtzY2JhbKdXi8/mskZGR6/M53r17t9I07S+SCAQCw3v37o0uBhAMBo8+7f3Zs2c/BYCBgQFvJBJpBoBUKqWdO3duTgBA07RjJLF161ZzsdBi1N7eHq2rq4uLCDZs2HAMAGgYBhOJxEMACIfDX2zfvj35oqDCDRQiBoBYLFbR19fXDgBlZWUipmm2AoCu66mlgD5LHo/njsvlSimlkMvlWkVEAiICj8djocSqqamxSGLZsmUBIdlsnyhdanBVVVVaRCAiTRqAV0QElZWVuaUCPJrbR6Xres6u6a9qIuIgiULtLaXKy8uzSikAcGiFJvB/ab7DAciKCDKZjKPU0Lt37zrsHGeF5DhJWJa1ZqkAwWDw6NOqWSqVWmPfcEJE5ApJjI+PO0sdcTKZdNoRXxGSX5OEaZqbSg22LGuT3aO/EV3XvyeJdDrtunnzZkWpoBMTExXT09MuEUFra+sPmmEY+UOHDoVInoxEInX19fV3nrc2L6Rr167ViQjy+XzI7/c/FADIZrOnASAej28eGBjwLnW0Q0ND3tu3b28midnZ2dOPea7Dhw8fEJF+pRQ6Ojq+bWlpMZcCOjo6Wjs4OLjLNoAHe3t7+x9zINFodHTnzp0rRaQlHo/XrF69ekbX9ekXhV66dGmXbX9PhMPh40/1XCMjIxeampocJBvj8XjN7OzsXG1t7W/PA41EIt7h4eE37UhP9/T0hBZ0mVevXj3f3Ny8UinVYlmWnkwmX1qxYsWfa9euLcpp3rp1S7948WJTPB5vsMvjiVAoFCra0IfD4XdI9hWmhPXr16eqq6unqqqq0i6X6155eXnW/jEdmUymzLIsZzKZfHlmZsZVqMkkD3Z3d/cveoQxDEMePHjQLSIfa5oGkrArz/wYU3guNBu7+/Ts2LHjE7/fv/gR5skDzM3NvSYibwNoVkq5STqUUiCZJTmhlBrO5/Nf+ny+HxcCFvQ3ae6MHdgDqpkAAAAASUVORK5CYII="
},
"$:/plugins/felixhayashi/tiddlymap/icon": {
"title": "$:/plugins/felixhayashi/tiddlymap/icon",
"tags": "$:/tags/Image",
"text": "<svg\n xmlns:dc=\"http://purl.org/dc/elements/1.1/\"\n xmlns:cc=\"http://creativecommons.org/ns#\"\n xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\"\n xmlns:svg=\"http://www.w3.org/2000/svg\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:inkscape=\"http://www.inkscape.org/namespaces/inkscape\"\n class=\"tc-image-tiddlymap-button tc-image-button\"\n version=\"1.1\"\n width=\"22pt\"\n height=\"22pt\"\n viewBox=\"0 0 128 128\">\n <defs\n id=\"defs4\">\n <marker\n refX=\"0\"\n refY=\"0\"\n orient=\"auto\"\n id=\"Arrow1Lend\"\n style=\"overflow:visible\">\n <path\n d=\"M 0,0 5,-5 -12.5,0 5,5 0,0 z\"\n transform=\"matrix(-0.8,0,0,-0.8,-10,0)\"\n id=\"path3850\"\n style=\"fill-rule:evenodd;stroke:#000000;stroke-width:1pt\" />\n </marker>\n <marker\n refX=\"0\"\n refY=\"0\"\n orient=\"auto\"\n id=\"Arrow1Lstart\"\n style=\"overflow:visible\">\n <path\n d=\"M 0,0 5,-5 -12.5,0 5,5 0,0 z\"\n transform=\"matrix(0.8,0,0,0.8,10,0)\"\n id=\"path3847\"\n style=\"fill-rule:evenodd;stroke:#000000;stroke-width:1pt\" />\n </marker>\n <inkscape:path-effect\n effect=\"skeletal\"\n id=\"path-effect4329\" />\n <inkscape:path-effect\n effect=\"skeletal\"\n id=\"path-effect4321\" />\n <inkscape:path-effect\n effect=\"skeletal\"\n id=\"path-effect4315\" />\n <inkscape:path-effect\n effect=\"skeletal\"\n id=\"path-effect4307\" />\n <inkscape:path-effect\n effect=\"skeletal\"\n id=\"path-effect4299\" />\n <inkscape:path-effect\n effect=\"skeletal\"\n id=\"path-effect4293\" />\n </defs>\n <g\n transform=\"translate(0,-1024.5289)\"\n id=\"layer1\">\n <path\n d=\"m 17.867073,4.5821643 a 3.7249374,3.7249374 0 1 1 -7.449875,0 3.7249374,3.7249374 0 1 1 7.449875,0 z\"\n transform=\"matrix(-6.3328802,0,0,6.2775831,193.9581,1100.3667)\"\n id=\"path4139-1-14\"\n style=\"fill-opacity:1;fill-rule:nonzero\" />\n <path\n d=\"M 77.450496,1064.5069 C 58.849552,1025.9634 15.704158,1023.3858 2.8821873e-7,1034.558 L 0.02388589,1035.2674 C 24.502636,1022.2072 44.810725,1042.1507 60.163934,1074.112 z\"\n id=\"path4337\"\n style=\"fill-opacity:1;stroke-width:0.58181816;stroke-miterlimit:4;stroke-dasharray:none;marker-start:none;marker-end:none\" />\n <path\n d=\"m 12.878637,11.280739 4.75937,-2.7478243 4.759371,-2.7478236 0,5.4956479 0,5.495648 -4.759371,-2.747824 z\"\n transform=\"matrix(4.6545455,0,0,4.6545455,-13.580429,1027.7638)\"\n id=\"path3004\"\n style=\"fill-opacity:1;fill-rule:nonzero\" />\n </g>\n <metadata\n id=\"metadata3772\">\n <rdf:RDF>\n <cc:Work\n rdf:about=\"\">\n <dc:title></dc:title>\n <dc:format>image/svg+xml</dc:format>\n <dc:type\n rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\" />\n </cc:Work>\n </rdf:RDF>\n </metadata>\n</svg>\n"
},
"$:/plugins/felixhayashi/tiddlymap/media/surface.png": {
"title": "$:/plugins/felixhayashi/tiddlymap/media/surface.png",
"type": "image/png",
"text": "iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAGYktHRAAmALMAAQfdEQQAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfeDBYVBDLiNMeiAAAFvUlEQVRIx7WXbUxTZxTH/+c8VwQLlAKuEotF2mJRlMFEqeCUiMzojH7YEjMSlM1EY2Z04vbBbUrcZqbOTZfFOKMOcWRuZMyoS4xUN16EMUVUMkAFJ6VQkdFSoOIL9O5DBREFX/l/vOf+z+88z715znkITyMZZMjDTLfEC0iWE0hAD0DlZhkC7HCDagWoxA0cvzq/uwgE+UkpachoJjhiCta6mXYwATLfN7AnM923MzGIuC8hARn/lN3ZiUy4nxlsyEM6QAcgPECdb6TNFDTbMn10UnOkMsap9dE5AMDSVaeqdlYoz9qL1WftReOuuS6HMDHcshsEfrdyXscPTw3W/cabieRPmYAEdcrltLD3q2ar32x4mq9S2HIi9LBl78QzracnMDEI9FlFin3jE8G6PN5JLK9hAt4Zv6ps0+TvyvAc+rLmo+m5DfungwhEvKs8uWVt/7h4CPorb2VJzmACPpy01bzO+MUFPKcSg+c2+kijOs85zoQTKF6TplA0ZrvyHwEb8pAOgW0kgE8m7zyZHr6uGi+o6IDpLQEjAp1/tZ7WMUkJY5f6WRqzOy48AP8CETSCylkAS3VrS1YbNl7CS9IkZcx/rm5XT1XHxVBBvCh+gfPzqlzIDAD6kVgDBhJGp1z+OPLrc3jJWhOx6ZwpKKmGiGEL1q4BAIYMYqYdBCBt/OoqDJPeGpteJZEEiUfsgAxi/TG8DgAG/yjb7FcWNAwXOD5oljVcMcEmSELSH/rXmYjngwnTgmZZHmeIPaFcPlTCJ8UH/GwWIoYkjZzPRDSDQJgWNKt54Is513drb3W7vIdK5uru9BkslnN9t3amWZPaB/aPaxYQYBImBsFAxJiojHEONB6u/z5mpPC+N1jihQXRi72Fz92hCrPfaQnIub5bCwB6/ygnEYNBEczEKiLGuPtnb3/dvN2o8mbvQRO33WtVyPLgjWhP7ZbEcF9jY74tzwAAY701DokkCJJU7KmAHzEtK01OjvR/tcFLeN/trXjganUKY7PSS9X5uPiMk2PSetzdYol2RUWdq0b94JD2dDKGDAcRw9pVp+pvAoAsk9m8Ur+heE/tlsSB367tXqsiy2Q26xTG5t4V9fdH+EU1laTcyE4NW1Xffq/Nd2FB9GLbbatKIgFBwiEJ4qtMrK5uv6TU+OgcM82aVIPfpKYsk9kMAKlhq+pTw1bVx55QLldIfl06hbG5zlWjLkq25vQWN9OsSV1YEL14iXZFRb4tzxDhF9XnB4CYgPg6ALjmqlF61oorDOZSAqPcUaoGgJX6DcUHTafMA7fu/DznvpX6DcUyZPRCe1WUbM0J9Aru3FO7JVGGjP7Q3uKyTGZzVUelmjxbXUqTT/rOkmTpT51vpC13RkkuhlHrK5e93XCrPkR298zmyrmdhTIR/r1VG3KmJV8zXNCKtjJNU5c1RJDAJNOcIgZBJlAGg/Czdf/E4QKbbx6dyCQgwBmZlOn2dKc2+y4AOGsvMn57ZfPUlw3NseydeslZbiQQ7tQH7Orrx1W5kEPTfBuIeFF158XQwJHBbUa/6NaXAT118/iEvKZDSUwCIHn5TylHyx+aQBoPuSpC05QKJk4osxfqVV7BbUa/Ka0vCs1p2PsGEwPg7dlxv2977MxlzW7PH7dMpSJQ/Fl7of5Wj6snLjCx6Xmgh60Hph5pykliYshw78qKO5Yx6LAHAJaDbSfC0gMVTFJCTcel0MsdlQF+kv/dsT7a9qcBXnT+HfqjZY+pzF4Q4xlvsf3A1IehQw70cwoi3yPQPkECRIzxowy2aOW0+skBsc3higntY7w1DgC4cbtRZem65l/dflFd01GpvXnHFkIgeMZaWr4v9sj+Z77CZMrg0sKoD4jFV17sBYAgSAITQ5Dk2TLP2QuA+p4TaP2412K/yaTMZ7/CDCzgfElcIhEvJNAMiSQdEasESSBiB4PrBIsSctOx8XHTiocC9up/PG8QrAaKLngAAAAASUVORK5CYII="
},
"$:/config/EditTemplateFields/Visibility/tmap.id": {
"title": "$:/config/EditTemplateFields/Visibility/tmap.id",
"text": "hide"
},
"$:/language/Buttons/TiddlyMap/Caption": {
"title": "$:/language/Buttons/TiddlyMap/Caption",
"text": "tiddlymap"
},
"$:/language/Buttons/TiddlyMap/Hint": {
"title": "$:/language/Buttons/TiddlyMap/Hint",
"text": "Toggle TiddlyMap actions"
},
"$:/plugins/felixhayashi/tiddlymap/misc/macros": {
"title": "$:/plugins/felixhayashi/tiddlymap/misc/macros",
"text": "\\define concat(str) $str$\n\n\\define input-text(field, index, default, readonly, class, focus)\n <$reveal type=\"match\" text=\"\" default=\"$readonly$\">\n <$edit-text\n tiddler=<<output>>\n field=\"$field$\"\n index=\"$index$\"\n type=\"text\"\n tag=\"input\"\n default=\"$default$\"\n focus=\"$focus$\"\n class=\"$class$\" />\n </$reveal>\n <$reveal type=\"nomatch\" text=\"\" default=\"$readonly$\">\n <input type=\"text\" value=\"$default$\" readonly=\"true\" disabled=\"true\" />\n </$reveal>\n\\end\n\n\\define input-button(field, index, default, default, label:\"Proceed\")\n <div class=\"tmap-button-wrapper\">\n <$button>$label$\n <$action-setfield $tiddler=<<output>> $field=\"$field$\" index=\"$index$\" $value=\"$default$\" />\n </$button>\n </div>\n\\end\n\n\\define input-textarea(field, index, default, default, class, focus)\n <$edit-text\n tiddler=<<output>>\n field=\"$field$\"\n index=\"$index$\"\n autoHeight=\"no\"\n type=\"text\"\n tag=\"textarea\"\n default=\"$default$\"\n class=\"$class$\"\n focus=\"$focus$\" />\n\\end\n\n\\define input-checkbox(field, index, readonly, default)\n <$reveal type=\"match\" text=\"\" default=\"$readonly$\">\n <$checkbox\n tiddler=<<output>>\n field=\"$field$\"\n index=\"$index$\"\n checked=\"true\"\n unchecked=\"false\"\n default=\"$default$\" />\n </$reveal>\n <$reveal type=\"nomatch\" text=\"\" default=\"$readonly$\">\n <input type=\"checkbox\" value=\"$default$\" readonly=\"true\" disabled=\"true\" />\n </$reveal>\n\\end\n\n\\define input-multi-checkbox(selectFilter, invert:\"no\", default)\n <div class=\"tmap-no-stretch\">\n <$list\n filter=\"$selectFilter$\"\n emptyMessage=\"– This list contains no items –\">\n <$checkbox\n tiddler=<<output>>\n tag=<<tmap \"splitAndSelect\" \"|\" \"0\">>>\n <$view\n tiddler=<<tmap \"splitAndSelect\" \"|\" \"1\">>\n field=\"title\" />\n </$checkbox><br />\n </$list>\n </div>\n\\end\n\n\\define input-select(field, index, selectFilter, default, nochoice)\n <$select\n tiddler=<<output>>\n field=\"$field$\"\n index=\"$index$\"\n default=\"$default$\">\n <$set name=\"nochoice\" value=\"$nochoice$\">\n <$list filter=\"[<nochoice>regexp[.+]]\">\n <option value=\"\"><b><<nochoice>></b></option>\n </$list>\n </$set>\n <$list filter=\"$selectFilter$\">\n <option value=<<tmap \"splitAndSelect\" \"|\" \"0\">> >\n <$view tiddler=<<tmap \"splitAndSelect\" \"|\" \"1\">> field=\"title\" />\n </option>\n </$list>\n </$select>\n\\end\n\n\\define input-radio(field, index, selectFilter, default)\n <$list filter=\"$selectFilter$\">\n <$radio\n tiddler=<<output>>\n field=\"$field$\"\n index=\"$index$\"\n value=<<tmap \"splitAndSelect\" \"|\" \"0\">>>\n <<tmap \"splitAndSelect\" \"|\" \"1\">>\n </$radio><br />\n </$list>\n\\end\n\n\\define tmap-row(title, field, index, type, descr, note, label, default, readonly, reset, selectFilter, nochoice, invert, class, focus)\n <tr>\n <td class=\"tmap-title\">$title$:</td>\n <td>\n <<$type$\n field:\"$field$\"\n index:\"$index$\"\n readonly:\"$readonly$\"\n default:\"$default$\"\n label:\"$label$\"\n invert:\"$invert$\"\n selectFilter:\"$selectFilter$\"\n nochoice:\"$nochoice$\"\n focus:\"$focus$\"\n class:\"$class$\">>\n <$reveal type=\"match\" text=\"true\" default=\"$reset$\">\n <$button>reset\n <$action-setfield $tiddler=<<output>> $field=\"$field$\" $index=\"$index$\" $value=\"$default$\" />\n </$button>\n </$reveal>\n </td>\n <td>\n <span class=\"tmap-description\">$descr$</span>\n <$reveal type=\"nomatch\" text=\"\" default=\"$note$\">\n <div class=\"tmap-note\">''Note:'' $note$</div>\n </$reveal>\n </td>\n </tr>\n\\end\n\n\\define visConfiguration(inheritedList, extensionField, styleName:\"style\")\n <fieldset><legend>Visjs configurations ($styleName$)</legend>\n <div class=\"tmap-flash-message tmap-info\">\n Only config items that you actually changed have an effect on\n the graph. Other options are visible, yet, inactive.\n </div>\n <$tmap-config\n mode=\"manage-node-types\"\n inherited=\"$inheritedList$\"\n extension=\"$extensionField$\" />\n </fieldset>\n\\end\n"
},
"$:/plugins/felixhayashi/tiddlymap/misc/defaultViewHolder": {
"title": "$:/plugins/felixhayashi/tiddlymap/misc/defaultViewHolder",
"text": "Default"
},
"$:/plugins/felixhayashi/tiddlymap/graph/nodeTypes/tmap:central-topic": {
"title": "$:/plugins/felixhayashi/tiddlymap/graph/nodeTypes/tmap:central-topic",
"description": "The style is applied to the node that you marked as central topic in a map.",
"style": "{\"font\":{\"size\":22,\"color\":\"rgba(0,0,0,1)\"},\"shape\":\"star\"}"
},
"$:/plugins/felixhayashi/tiddlymap/graph/nodeTypes/tmap:neighbour": {
"title": "$:/plugins/felixhayashi/tiddlymap/graph/nodeTypes/tmap:neighbour",
"description": "Neighbours are all nodes that are not part of the original set of nodes (\"matches\") but are connected (either outgoing or incoming) to a node of the original set.",
"style": "{\"color\":\"#565656\"}"
},
"$:/plugins/felixhayashi/tiddlymap/graph/views/Default/filter/edges": {
"title": "$:/plugins/felixhayashi/tiddlymap/graph/views/Default/filter/edges"
},
"$:/plugins/felixhayashi/tiddlymap/graph/views/Default/filter/nodes": {
"title": "$:/plugins/felixhayashi/tiddlymap/graph/views/Default/filter/nodes"
},
"$:/plugins/felixhayashi/tiddlymap/graph/views/Default": {
"title": "$:/plugins/felixhayashi/tiddlymap/graph/views/Default",
"config.physics_mode": "false",
"isview": "true"
},
"$:/plugins/felixhayashi/tiddlymap/graph/views/Live View/filter/edges": {
"title": "$:/plugins/felixhayashi/tiddlymap/graph/views/Live View/filter/edges",
"filter": "[prefix[$:/plugins/felixhayashi/tiddlymap/graph/edgeTypes]]",
"text": "\n\n"
},
"$:/plugins/felixhayashi/tiddlymap/graph/views/Live View/filter/nodes": {
"title": "$:/plugins/felixhayashi/tiddlymap/graph/views/Live View/filter/nodes",
"filter": "[field:title{$:/temp/tmap/currentTiddler}]"
},
"$:/plugins/felixhayashi/tiddlymap/graph/views/Live View": {
"title": "$:/plugins/felixhayashi/tiddlymap/graph/views/Live View",
"config.refresh-triggers": "$:/temp/tmap/currentTiddler",
"config.physics_mode": "true",
"config.vis": "{\"physics\":{\"forceAtlas2Based\":{\"springConstant\":0.09}}}",
"config.neighbourhood_scope": "1",
"created": "20150331114808577",
"modified": "20200509212547688",
"type": "text/vnd.tiddlywiki",
"isview": "true"
},
"$:/plugins/felixhayashi/tiddlymap/graph/views/Graph search/filter/nodes": {
"title": "$:/plugins/felixhayashi/tiddlymap/graph/views/Graph search/filter/nodes",
"filter": "[!is[system]search{$:/temp/search}] [!is[system]search:tags{$:/temp/search}] [!is[system]search:text{$:/temp/search}limit[10]]"
},
"$:/plugins/felixhayashi/tiddlymap/graph/views/Graph search": {
"title": "$:/plugins/felixhayashi/tiddlymap/graph/views/Graph search",
"config.refresh-triggers": "$:/temp/search",
"config.neighbourhood_scope": "1",
"config.physics_mode": "true"
}
}
}
{
"cbd5ff9c-3fb3-4404-b9e3-13821579d70f": {
"x": 0,
"y": 0
},
"331c76a0-4efa-49cd-8c10-4ec393178b54": {
"x": 219,
"y": 186
},
"d9d96df7-bf60-4608-ada3-51561753e766": {
"x": 313,
"y": 2
},
"030f571b-3811-416d-a4d5-b79577175e0e": {
"x": 276,
"y": -150
},
"2bd9b0c0-1126-4d2d-b6fc-5809a0e5985a": {
"x": -2,
"y": -181
},
"7565f213-057e-49ec-8373-e7cc296faace": {
"x": -232,
"y": -145
},
"7c5b2465-04ea-46ff-828b-93fbd0b32476": {
"x": -275,
"y": 13
},
"67e8eecd-06aa-4876-954e-e060852a0738": {
"x": -210,
"y": 188
},
"0e3df71f-addd-4fd8-a96b-ec5604d7301c": {
"x": 7,
"y": 209
},
"525c9e6e-83c7-4806-a4cf-948331809a6d": {
"x": -379,
"y": -302
},
"eaf1e461-66c6-4642-861f-08bb971a215c": {
"x": -289,
"y": -314
},
"566d5bd7-381d-445b-9136-b59efb6f965b": {
"x": -84,
"y": -357
},
"24dd39b3-ddfd-4afc-a95c-74e7d3fd654c": {
"x": 64,
"y": -357
},
"0b24226e-2ac1-4d13-bfaf-00861b577748": {
"x": 274,
"y": -317
},
"f4ec7526-7ce3-4106-86ba-3e0c800bea40": {
"x": 396,
"y": -307
},
"4bd4fc61-b720-4c79-bbca-c174f79fb7f8": {
"x": 504,
"y": -57
},
"a3e07882-85b5-4d37-930b-6998e514c85f": {
"x": 521,
"y": 40
},
"db4ea584-f252-472d-beb3-72a916e0b8eb": {
"x": -499,
"y": -44
},
"d6a7c0dc-8c46-4d6b-aca2-e341ab1d1bbc": {
"x": -501,
"y": 62
},
"40fcaba5-5d20-40bc-baed-5c0d42e9c1d8": {
"x": 163,
"y": -432
}
}
{
"originalVersion": "0.17.8+10010",
"dataStructureState": "0.11.0",
"showWelcomeMessage": false
}
{
"tiddlers": {
"$:/plugins/felixhayashi/topstoryview/config.js": {
"title": "$:/plugins/felixhayashi/topstoryview/config.js",
"text": "/*\\\n\ntitle: $:/plugins/felixhayashi/topstoryview/config.js\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n(function(){\"use strict\";exports.config={classNames:{storyRiver:\"tc-story-river\",backDrop:\"story-backdrop\",tiddlerFrame:\"tc-tiddler-frame\",tiddlerTitle:\"tc-title\"},references:{userConfig:\"$:/config/topStoryView\",focussedTiddlerStore:\"$:/temp/focussedTiddler\",refreshTrigger:\"$:/temp/focussedTiddler/refresh\"},checkbackTime:$tw.utils.getAnimationDuration()}})();",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/felixhayashi/topstoryview/layout": {
"text": "html .tc-story-river:after {\n content: \"\";\n display: block; }\n",
"title": "$:/plugins/felixhayashi/topstoryview/layout",
"type": "text/vnd.tiddlywiki",
"tags": [
"$:/tags/Stylesheet"
]
},
"$:/plugins/felixhayashi/topstoryview/Configuration": {
"title": "$:/plugins/felixhayashi/topstoryview/Configuration",
"text": "Please see the [[GitHub page|https://github.com/felixhayashi/TW5-TopStoryView]] for more information on the options.\n\nSave and reload the wiki to activate changes.\n\n<table>\n <tr>\n <th align=\"left\">Scroll offset:</th>\n <td><$edit-text tiddler=\"$:/config/topStoryView\" field=\"scroll-offset\" tag=\"input\" default=\"150px\" /></td>\n </tr>\n</table>"
},
"$:/plugins/felixhayashi/topstoryview/License": {
"title": "$:/plugins/felixhayashi/topstoryview/License",
"text": "This code is released under the BSD license. For the exact terms visit:\n\nhttps://github.com/felixhayashi/TW5-TopStoryView/blob/master/LICENSE"
},
"$:/plugins/felixhayashi/topstoryview/Readme": {
"title": "$:/plugins/felixhayashi/topstoryview/Readme",
"text": "Please visit the [[GitHub page|https://github.com/felixhayashi/TW5-TopStoryView]] for more information."
},
"$:/plugins/felixhayashi/topstoryview/top.js": {
"title": "$:/plugins/felixhayashi/topstoryview/top.js",
"text": "/*\\\ntitle: $:/plugins/felixhayashi/topstoryview/top.js\ntype: application/javascript\nmodule-type: storyview\n\nViews the story as a linear sequence\n\n@preserve\n\n\\*/\n(function(){\"use strict\";var t=require(\"$:/plugins/felixhayashi/topstoryview/config.js\").config;var e=\"cubic-bezier(0.645, 0.045, 0.355, 1)\";var i=function(e){this.listWidget=e;this.pageScroller=new $tw.utils.PageScroller;this.pageScroller.scrollIntoView=this.scrollIntoView;this.pageScroller.storyRiverDomNode=document.getElementsByClassName(t.classNames.storyRiver)[0];var i=$tw.wiki.getTiddler(t.references.userConfig);var o=i?i.fields:{};$tw.hooks.addHook(\"th-opening-default-tiddlers-list\",this.hookOpenDefaultTiddlers);var r=parseInt(o[\"scroll-offset\"]);this.pageScroller.scrollOffset=isNaN(r)?71:r;this.recalculateBottomSpace()};i.prototype.refreshStart=function(t,e){};i.prototype.refreshEnd=function(t,e){};i.prototype.hookOpenDefaultTiddlers=function(t){return t};i.prototype.navigateTo=function(t){var e=this.listWidget.findListItem(0,t.title);if(e===undefined)return;var i=this.listWidget.children[e];var o=i.findFirstDomNode();if(!(o instanceof Element))return;this.pageScroller.scrollIntoView(o)};i.prototype.insert=function(t){if(!t)return;var e=t.findFirstDomNode();if(!(e instanceof Element))return;this.startInsertAnimation(e,function(){this.recalculateBottomSpace()}.bind(this))};i.prototype.remove=function(t){if(!t)return;var e=t.findFirstDomNode();if(!(e instanceof Element)){t.removeChildDomNodes();return}var i=this.getLastFrame()===e;this.startRemoveAnimation(t,e,function(){t.removeChildDomNodes();this.recalculateBottomSpace();if(i){this.pageScroller.scrollIntoView(this.getLastFrame())}}.bind(this))};i.prototype.getLastFrame=function(){var t=this.listWidget.children[this.listWidget.children.length-1];return t?t.findFirstDomNode():null};i.prototype.recalculateBottomSpace=function(){var t=this.pageScroller.storyRiverDomNode;if(this.getLastFrame()){var e=this.getLastFrame().getBoundingClientRect();var i=window.innerHeight;if(e.height<i){t.style[\"paddingBottom\"]=i-e.height+\"px\";return}}t.style[\"paddingBottom\"]=\"\"};i.prototype.scrollIntoView=function(t){if(this.preventNextScrollAttempt){this.preventNextScrollAttempt=false}if(!t)return;var e=$tw.utils.getAnimationDuration();this.cancelScroll();this.startTime=Date.now();var i=$tw.utils.getScrollPosition();var o=t.getBoundingClientRect(),r={left:o.left+i.x,top:o.top+i.y,width:o.width,height:o.height};var n=function(t,e,i,o){if(t<=i){return t}else if(e<o&&i<t+e-o){return t+e-o}else if(i<t){return t}else{return i}},s=n(r.left,r.width,i.x,window.innerWidth),a=r.top-this.scrollOffset;if(s!==i.x||a!==i.y){var l=this,c;c=function(){var t;if(e<=0){t=1}else{t=(Date.now()-l.startTime)/e}if(t>=1){l.cancelScroll();t=1}t=$tw.utils.slowInSlowOut(t);window.scrollTo(i.x+(s-i.x)*t,i.y+(a-i.y)*t);if(t<1){l.idRequestFrame=l.requestAnimationFrame.call(window,c)}};c()}};i.prototype.startInsertAnimation=function(t,i){var o=$tw.utils.getAnimationDuration();var r=window.getComputedStyle(t),n=parseInt(r.marginBottom,10),s=parseInt(r.marginTop,10),a=t.offsetHeight+s;setTimeout((function(){$tw.utils.setStyle(t,[{transition:\"none\"},{marginBottom:\"\"}]);i()}),o);$tw.utils.setStyle(t,[{transition:\"none\"},{marginBottom:-a+\"px\"},{opacity:\"0.0\"}]);$tw.utils.forceLayout(t);$tw.utils.setStyle(t,[{transition:\"opacity \"+o+\"ms \"+e+\", \"+\"margin-bottom \"+o+\"ms \"+e},{marginBottom:n+\"px\"},{opacity:\"1.0\"}])};i.prototype.startRemoveAnimation=function(t,i,o){var r=$tw.utils.getAnimationDuration();var n=i.offsetWidth,s=window.getComputedStyle(i),a=parseInt(s.marginBottom,10),l=parseInt(s.marginTop,10),c=i.offsetHeight+l;setTimeout(o,r);$tw.utils.setStyle(i,[{transition:\"none\"},{transform:\"translateX(0px)\"},{marginBottom:a+\"px\"},{opacity:\"1.0\"}]);$tw.utils.forceLayout(i);$tw.utils.setStyle(i,[{transition:$tw.utils.roundTripPropertyName(\"transform\")+\" \"+r+\"ms \"+e+\", \"+\"opacity \"+r+\"ms \"+e+\", \"+\"margin-bottom \"+r+\"ms \"+e},{transform:\"translateX(-\"+n+\"px)\"},{marginBottom:-c+\"px\"},{opacity:\"0.0\"}])};exports.top=i})();",
"type": "application/javascript",
"module-type": "storyview"
}
}
}
{
"tiddlers": {
"$:/plugins/felixhayashi/vis/img/network/acceptDeleteIcon.png": {
"title": "$:/plugins/felixhayashi/vis/img/network/acceptDeleteIcon.png",
"type": "image/png",
"text": "iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAEEOaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAyMSA3OS4xNTQ5MTEsIDIwMTMvMTAvMjktMTE6NDc6MTYgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNC0wMi0wNVQxNjo0NTowOCswMTowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTQtMDItMDVUMTY6NDU6MDgrMDE6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOjBmYzFjNjhhLTcwZTYtMGY0Ni05ZDk4LWFhNDVjNjYxYThjODwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6RUE2MEEyNEUxOTg0RTMxMUFEQUZFRkU2RUMzMzNFMDM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDEtMjNUMTk6MTg6MDcrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+c2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDpiYzZmYmUxNi1mOTBkLWI1NDQtODUzOC05MjFkNjBiZjU0ZWI8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDItMDVUMTY6NDU6MDgrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jb252ZXJ0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+ZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZzwvc3RFdnQ6cGFyYW1ldGVycz4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmRlcml2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+Y29udmVydGVkIGZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmc8L3N0RXZ0OnBhcmFtZXRlcnM+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjBmYzFjNjhhLTcwZTYtMGY0Ni05ZDk4LWFhNDVjNjYxYThjODwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNC0wMi0wNVQxNjo0NTowOCswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8eG1wTU06RGVyaXZlZEZyb20gcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICA8c3RSZWY6aW5zdGFuY2VJRD54bXAuaWlkOmJjNmZiZTE2LWY5MGQtYjU0NC04NTM4LTkyMWQ2MGJmNTRlYjwvc3RSZWY6aW5zdGFuY2VJRD4KICAgICAgICAgICAgPHN0UmVmOmRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgICAgPHN0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdFJlZjpvcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDwveG1wTU06RGVyaXZlZEZyb20+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDxwaG90b3Nob3A6SUNDUHJvZmlsZT5zUkdCIElFQzYxOTY2LTIuMTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDA5MC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzIwMDkwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz450LuoAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAATUSURBVHjajJZtTJVlGMd/13U/z+F4sBQOCiovZiMt8YiKZrMtypdh09StbLOtzA1RUmuTkppzIilJOB0Oa21tbaV+6UP5Mlnm5heVkfhyQJ1ONITAkAMqcTDonNOHA6g9qF3b/eF5/vf18r/u676uWwoLC3G73QCoKiICgIhQeGejVw3LMOTIP0xGdRQAFi1E9DyGSkLsKxtWEmAQuXfvHrJlyxZiYmIQkQHjeac/jjfKBsJ8YlnRzQKIgBoIh8ByaRSICAilRCjdk1UeAIhEIogIPT09SFFRER6PZ4DByqr1+WpRoYAquKYuqCPz9SZeeCVA4vggAC2XPVw54eXi0WTOH8yIslIIs+bryTsq+hl0d3cjxcXFuN1uVJVVp9dvEigSwP3iYj9vfV7L6IldPE5uXvZwcKuPsz/7+qLc/I1vexFAMBjEzJ49G9u2WV1TsEaVUhOBmJxVVeR9X8NTI3t5kgxN6GXakia67/bSeC4ZkexprccCZxLnVodCIRRgdU1BgsBuBVzz8qt49yv/oMb2f5TJd7kzBsXeLPHzal4VaiAmZnfupY0JIoKqKqoUGAHX9MV+llf4HxmtMaDyaDZLtvqZushPWEHsAlVFP/3rswSNsEEt4O0v/E9MCebx8PxCP5YNlr3hg7+/TFBEl6mClflGHUl9VdIvGycuJdDgvm/bAtu6j3c0uSmZufQhnRHPBsnIqcOyQGSZAjlEgCkLGh3RDHk6yJWTCQCUZi+gav8Mzh3KpGzeQgCuV3sZEhd06D2f3QgCas9XIuozCjw3q92xMXF8O8218QDM/fAMGLAsmLO2Jnof6rwkpjv10rLaURtEJimWJomtMDLdGUlyRhuBei8AU5Y0M2ZCMyPSW8hc2AxAW4OXUeOdbcKbFsQ2YKwkizCg1uAH9kxWOzU/+ga+X8s/Q/iBKur4w8tL79c69ESiTFXFQvQmyhhu1XsYNeHhW5s2o4OuwDB6ug2uISF8fZED9HQbgh1PM3Zah8PB7UYPGBBalDB+MFB/Kt6x0e0JMSzpDr9XxzmwprNxDB95F9eQkANrrI3HssFQq4hWAnDxaMqgaUoYF6DJ73X8b74Qz/C0Qds016tSUANqVypG92EMnD+SwZ9XPc5KSg/QWu900HotgRHjnA5uN3m4diojmiKzV3cNL25DdTvGwJESn0NhzMR2Ohqc6etoiidpgrNET3zrix6yKf3Bld8WLZ8IZcAG6ip9/LQpyOIt91vG2BltHCwezbbpKzEKYoFodKVO+fUh48f3+Lh20oexIBQqExFk586dxMbGkntp41rELscozFpRxaLN/6Mv/cf4hcMzCYdAzboDKXm7Ozs7MTk5ObhcLs4lzqmeeus4GCublgvJtF61Sc1qxR0beqzh7g4Xx3ZN5/KxaagCsvlASl4pQG9vb5TB0KFDibZtZfmlonxcVgVhAcuGjJxa0l9uImVKO3GpXahA4EYsjbXx3PgtmYbTk1CiKYM1h1LzKvrncmdnJ1JeXo7b7cYYQ9+A4L2r21IJR9ZhXOuxXGAZBvKv/Uui8wELVHYgUn44bdWNfmKRSIRgMIiUlJQQGxs78Krof7oYY8jt2TUCy3oH0XmI+MAejW0gYpoxxg/mF4zu3a8rbvXrPuigq6uLfwcA6IKAIsDf9kIAAAAASUVORK5CYII="
},
"$:/plugins/felixhayashi/vis/img/network/addNodeIcon.png": {
"title": "$:/plugins/felixhayashi/vis/img/network/addNodeIcon.png",
"type": "image/png",
"text": "iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAEEOaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAyMSA3OS4xNTQ5MTEsIDIwMTMvMTAvMjktMTE6NDc6MTYgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNC0wMi0wNFQxNDo0MDoyOSswMTowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTQtMDItMDRUMTQ6NDA6MjkrMDE6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOjVkNWIwNmQwLTVmMjAtOGE0NC1hMzIwLWZmMTEzMzQwNDc0YjwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6RUE2MEEyNEUxOTg0RTMxMUFEQUZFRkU2RUMzMzNFMDM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDEtMjNUMTk6MTg6MDcrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+c2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDo2OWVmYWE1NS01ZTI5LTIzNGUtYTUzMy0xNDkxYjM1NDNmYmE8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDItMDRUMTQ6NDA6MjkrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jb252ZXJ0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+ZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZzwvc3RFdnQ6cGFyYW1ldGVycz4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmRlcml2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+Y29udmVydGVkIGZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmc8L3N0RXZ0OnBhcmFtZXRlcnM+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjVkNWIwNmQwLTVmMjAtOGE0NC1hMzIwLWZmMTEzMzQwNDc0Yjwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNC0wMi0wNFQxNDo0MDoyOSswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8eG1wTU06RGVyaXZlZEZyb20gcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICA8c3RSZWY6aW5zdGFuY2VJRD54bXAuaWlkOjY5ZWZhYTU1LTVlMjktMjM0ZS1hNTMzLTE0OTFiMzU0M2ZiYTwvc3RSZWY6aW5zdGFuY2VJRD4KICAgICAgICAgICAgPHN0UmVmOmRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgICAgPHN0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdFJlZjpvcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDwveG1wTU06RGVyaXZlZEZyb20+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDxwaG90b3Nob3A6SUNDUHJvZmlsZT5zUkdCIElFQzYxOTY2LTIuMTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDA5MC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzIwMDkwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz5WKqp9AAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAYXSURBVHjafFZtUFTXGX7e9z27sveuMCwYV8ElrA7YSFYHtJUPkaaI0aRqG8wP00zUzljDINNSA/2ROtpO24SxnahlxjYd7SSjmUkymcxYlDhQPzHGisEVp8HwYWCVVVgEsrsuLnL74+5uqTF9Z+7cO/d8PO95zvO851BlZSV0XQcAMDOYGQBARDhX3JRmMDYZwLPMWAzGHACYIgwS46oBNBNwtOL8CwE8EkSEUCgE2rJlC2w2G4go8Zwo/bMDgnoG6gxLfAAAYvPDMCCszKTAMIAGAhrWnf15AAAMwwARIRKJgDZv3gy73Q4iAjPjxIr9VVOMRhbAYKB8zvrO0llrfEsdKwLZek6YAPSFvtSu3GtLawu0ZJ6625SHGBQB1T88t6MxvopgMAjaunUrdF0HM+P4yv27DMYeJmB1RqW3Jnf3tQX2p0L4P9EXuqEd7PmDp+XuMU9sRbvXnnt1TxxACgoKYLVacbzsQDUJGkSATe6qi28uPtzusM6Kxie6NHLGUX3lxVUNX9StPHnn4wy3njuUYcu6n2pNi66avcEXnByP/nv8aiaIyrqz2gO5A9+9FI1GIfn5+WhZdTAdjFMkwMvZOy7uWnTAOz3L4Yk71m3t69fdfTDoUGTBeHTUfiHQ6lo7Z2OXJvpDAChKe+aOCdKRKWxZ2+1qb3yyd3GYmRkQ7GQBVs99wfv6on3eR2k4PdTkDEbH7IuS8/svld/561PJS/pDk1/bzwx94pze7xc5v/H+YPY6r5BAkdrJzODTK46lE6PeYEJt7u+8j+OZwCBiEAgAoNgKJoEQf6PvNvdrXgtZoNhSf7q0KZ3B2AQmVMze0Jmt54S/DcDCVig2NcvEUGxJAE4Pl+YOr0iv6BRSIPAmBeBZAmHlE2sH4p1uhrq1s0MnnEQMBsf8wRASAICQQCCITN1X7/sOuc0kgOVp3/fPs2WHv+coG7gQOJUnLGsUCTxEjPzUohEA+NfIWUdtx0+efzA1kSSkIGyBAQNCKgHAEBAJ3u79U7kiAcWoem/gb5Fd33nrH3kp+SMWtuAB+GllMJxMjCx9QRgA3uiqL5kwHiTlpxb3smlfMDGYGPP1hcMAkJvs8ScpfdJspdj+MK6Pf+5+u29vyb4lR4+BGEziVESAkEpw6Av1OhUpHCz4qOXbzFWz4Ncdj/v/o08Lt92ODDgZDCEFJYoUGH4mzugP92puPTf0pD3H7wvfdFZdqSxnMtWjoGAAmG9fOLxjwesdjT2/XzIQ7ks3sycYMSEwGHNtWf5bkX5NkYCJBxUBXiGV0XHvosOt54Zey33j/K+8P33++vjnbiGJbbLE+J9SANAb6nJ2B79wcUwETAwQQ7fMjPzMvfP8ja87HUIKMOiaAqMZhrGmLdAy78eZrwwsTS0eObTs+IdtgVanxBUExqGbb5VzrIISGIoUXsmqbgEhJldCQWqRf27SvPAn/o8XmgLhZsUkR4ll37mhk3n94Z4OlzY/7NLcYZfm7o1z2zT4vsvUNSXqprBCkmiTFbPX90/fh8GIT2sf+zTPdDMf4dVnNg4z+E0ixsGeBs9jd5ViSgLHjCb/peaR+MD3d4/ZJg2llyuG2Vwy7QWAs8PNnn1f7vkGSGxAzE6mk+kxkx/p/4unffSCR0hAoL1EBCYiPNdWNcwkNQTCR7feWX6g+7f/A7I8rcw/U6UEe0Ndrhc/W7mtL9ztmqlSgstSS/zTJ28dalpOpkRryrwbhwBACgsLMWPGDOT4ll3qyeqAkJTdCF7P/CrUY/GkLL1rE+2hTbSH8+0Lb/WEuhzhyaA905blf9Vd/895WnZwLHrPevir/cvOB1oLYpTtLrm6oYGIMDExAaqtrUVKSgqYGSKCk0WHq5ikkWEWtNL0imv5qUW+RclLRjJsrhBAuH1/QL8R7HR4xy5nescuP23E6hOA6mLv+sb4uTw6Ogqqq6uDpmkQkcStorX4XRcM1FjZ+kvFFjCJKU1WpkNJJUqIMtX1RyLeX3JtQ0JRhmGYZ/L27duRnJycuFGISOJ9pqh5lrB6iYgqGOxRrOaa54DcZmKvkJxk8JHC9rKh+KVhOsD4+Dj+MwADIf8n5m4xGwAAAABJRU5ErkJggg=="
},
"$:/plugins/felixhayashi/vis/img/network/backIcon.png": {
"title": "$:/plugins/felixhayashi/vis/img/network/backIcon.png",
"type": "image/png",
"text": "iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAEEOaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAyMSA3OS4xNTQ5MTEsIDIwMTMvMTAvMjktMTE6NDc6MTYgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNC0wMi0wNFQxNTowMTowOSswMTowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTQtMDItMDRUMTU6MDE6MDkrMDE6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOmI2YjQwMjVkLTAxNjQtMzU0OC1hOTdlLTQ4ZmYxMWM3NTYzMzwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6RUE2MEEyNEUxOTg0RTMxMUFEQUZFRkU2RUMzMzNFMDM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDEtMjNUMTk6MTg6MDcrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+c2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDpmOWQ3OGY4ZC1lNzY0LTc1NDgtODZiNy1iNmQ1OGMzZDg2OTc8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDItMDRUMTU6MDE6MDkrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jb252ZXJ0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+ZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZzwvc3RFdnQ6cGFyYW1ldGVycz4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmRlcml2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+Y29udmVydGVkIGZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmc8L3N0RXZ0OnBhcmFtZXRlcnM+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOmI2YjQwMjVkLTAxNjQtMzU0OC1hOTdlLTQ4ZmYxMWM3NTYzMzwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNC0wMi0wNFQxNTowMTowOSswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8eG1wTU06RGVyaXZlZEZyb20gcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICA8c3RSZWY6aW5zdGFuY2VJRD54bXAuaWlkOmY5ZDc4ZjhkLWU3NjQtNzU0OC04NmI3LWI2ZDU4YzNkODY5Nzwvc3RSZWY6aW5zdGFuY2VJRD4KICAgICAgICAgICAgPHN0UmVmOmRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgICAgPHN0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdFJlZjpvcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDwveG1wTU06RGVyaXZlZEZyb20+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDxwaG90b3Nob3A6SUNDUHJvZmlsZT5zUkdCIElFQzYxOTY2LTIuMTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDA5MC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzIwMDkwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz4jq1U/AAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAVTSURBVHjanFVfTFNnFP+d77ve8qeVFbBrpcVgRrCRFikFByLxwSAaE32oRCHD6JMxxhhn8G2RxxH3MsOTbyYsmCAxPMmMMYtkIUYmK60OO0qAK23BFlNob0uh3x7WS5jLZPpLbm6+k/P9zrm5v9855PF4UFhYCABgjIExBgAgIqRSqRIi6gDQRkQ1RGTB3wgR0e8AHgH4Sa/XR/EBiAiJRAJ04cIF5Ofng4g2n0gkUkxENwF0c843LzHGQEQQQkCLExEA9ALotVgsUQAQQmgNQhJCbF5kjCEUCl0moj4t5na7fTU1NUpVVVXUYrEkASAcDhe8efOmxOfzWScmJqoBdBNR99LS0hWz2dynNSSEAF28eBGFhYVgjCEcDn9HRD1EhIMHD3o9Hs9kWVlZAh9BKBQqGB4edr58+dKZ+6JbJpOpBwBWV1fB6+rqIMsyIpHIFcZYL2MMra2tY5cuXRrfuXNnBtvAYDBk3G63oqpqZm5uzgrgSDKZjBoMhueZTAbc5XIhFouVEtFTxhiOHTs2dv78eS8+Efv374+oqpqZnZ21cs5PJJPJPlmWkyynnBuMMTQ0NHi7uro+mVyDx+Pxulwu71ZOlkqlSonoJhGhvb39s8k1nDx50ss5hyRJN9PpdKlERB2aWjSVaEilUvzBgwcORVEs5eXloXPnzk1sV8BkMiUdDofP7/dXZ7PZDilnIhw4cGBeS1pbW2P37t1zBwKBikQiUUREWFhYsHHO0d7evm0Ru90+/+rVq2rO+XGJiJxEhMrKyhgAjI6OWoeHh5tWVla+4JzDZrO9bW5unhwcHGzz+/32np4e+xaDbfoHAMxmc6ijo2O0oqIiJkkSNjY2HBIRmRljMJvNyWfPnln7+/tPMMZQXl6+0NbW9qK2tjYcj8floaEhqKpq+HCkbD3PzMwYBgYG0NXV9UuusFna2kEgELAQEQ4dOvSis7PzN41Ar9dnrl27NqCNkv/C3bt3zy4tLVmICJxzEBFJRBQmorLFxcWCqqqq0Pj4eO3Y2JhbUZTdra2tL2pra8OJRGLHnTt3zkqS9K+huHU4EhHMZnMoGo0W5OIh7nK5jjLGKq1W69vDhw8rRqMxMjc3t2t5eXnX5ORklc/nM+fl5SWnpqa+0uv1K/n5+Ws6nW5NluXNd15e3ppOp1uz2WyzZ86cGQ0Gg6ZAIFCZzWZ/lYjokRDiuN/vt7W0tMw3NTUpbrd78P79++5gMFgRiUTKHj58WMYYQ3V19etTp05tq6Lp6Wkb5xxCiEfc7XZPM8a6FxcXTfX19a/1en2Gcy5qamreNjY2/qGq6joRZe12+9Tp06e3JY/FYgWPHz8+mhvr3/CWlpbk+vp6PmOseWVlBS6XS9GSJUkSdrs93NDQ8Oe+ffvC/8fJIyMjddFo9Esi6pVleVjT2m0A8Hq9zqGhIefnjoknT544A4GAM/eDbxMReFNTE0pKSpKqqsaI6Pj8/LxVVdWM3W6PfCr5xMTE1zllXS0uLn6aSqXAGxsbodPpoNfrn6uqCs75EUVRrJFIZMfevXsXdTrdxseIE4mEPDIyUu/3++tynd8yGo29RIR0Og26fv06ioqKwBgD5xzv3r27zBjrIyJIkgSHwzFZWVmp7NmzJ1ZaWpoAgGg0WqgoSvHMzIw1GAw6tvjhitFo7NPW5fv370Hd3d0oKCgA53zTQMvLy+VCiKuSJH0rSdLmztZytIWv5RPRD0T0Y3Fx8dzWfby6ugopHo//w4mcc8iyPMc5v5FOp7/PZrOdQohWInIC2C2EgBBigYi8Qoifs9lsv06nWyIiaFxagXg8jr8GAGxuIe7LBeWhAAAAAElFTkSuQmCC"
},
"$:/plugins/felixhayashi/vis/img/network/connectIcon.png": {
"title": "$:/plugins/felixhayashi/vis/img/network/connectIcon.png",
"type": "image/png",
"text": "iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAEEOaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAyMSA3OS4xNTQ5MTEsIDIwMTMvMTAvMjktMTE6NDc6MTYgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNC0wMi0wNFQxNDozODo1NyswMTowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTQtMDItMDRUMTQ6Mzg6NTcrMDE6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOjlmYjUwMDU0LWE3ODEtMWQ0OC05ZTllLTU2ZWQ5YzhlYjdjNjwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6RUE2MEEyNEUxOTg0RTMxMUFEQUZFRkU2RUMzMzNFMDM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDEtMjNUMTk6MTg6MDcrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+c2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDo3ZWRhMjI0MC0yYTQxLTNlNDQtYWM2My1iNzNiYTE5OWI3Y2E8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDItMDRUMTQ6Mzg6NTcrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jb252ZXJ0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+ZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZzwvc3RFdnQ6cGFyYW1ldGVycz4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmRlcml2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+Y29udmVydGVkIGZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmc8L3N0RXZ0OnBhcmFtZXRlcnM+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjlmYjUwMDU0LWE3ODEtMWQ0OC05ZTllLTU2ZWQ5YzhlYjdjNjwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNC0wMi0wNFQxNDozODo1NyswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8eG1wTU06RGVyaXZlZEZyb20gcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICA8c3RSZWY6aW5zdGFuY2VJRD54bXAuaWlkOjdlZGEyMjQwLTJhNDEtM2U0NC1hYzYzLWI3M2JhMTk5YjdjYTwvc3RSZWY6aW5zdGFuY2VJRD4KICAgICAgICAgICAgPHN0UmVmOmRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgICAgPHN0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdFJlZjpvcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDwveG1wTU06RGVyaXZlZEZyb20+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDxwaG90b3Nob3A6SUNDUHJvZmlsZT5zUkdCIElFQzYxOTY2LTIuMTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDA5MC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzIwMDkwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz4ubxs+AAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAUtSURBVHjajJZ/bNT1Gcdfz/P53PV6B4W7VltLqdAaplIOiMOoyxxJCSs/Gv/yB4gzJroAosmmDklwkYWR0bQsdmkykoojTpcsWYLxD/lRZdMQkTHRtkLZRqG0tIVe7662vTu43n32x/VKZ/jh89cn38/zvN7P5/l88zwf2blzJz6fDwARQUSm1n8s31CM0/VAnbNmsUPuAsDpgEO+Bg4C7//iyv5hvmMiQiqVQpqamvB6vVNwEeG1JZtCBrYi/MrkAwDNgjhwAlbzICBLA0rDb0+/839C6XQaaWxspLCw8Dp86cbNmqVFJQddE6KzdjZ9D89g+B6fSyCOcyn1nxil+O9xKg5HqWFSHGXLjrP7W/ICqVQK2bNnDz6fDxFh65KNvxbHDhF4rJj2bXPo+IGfcW5h5xL4f99P+FCEMIAob75x9t0dAMlkElNXV4e1lteXbNqiQoMaeOFOjrdU868SD2luYyEP6dUh+sYmSHeOU6GO5Z8VLx5+NNZxIpPJ5AS2L3upROCoCvz8Lo7vnkf77cAHhpiz/zIL9vWz8L8p/NvupmM0Q7pjnAoLqz8tDrc8MnQqYVUVhVdF4LEg7b+rvDn8wDDlH0WoPpukLJImSBaMwjcJqmwWts2jPZLG/8kwYVFeVdXXZcFf4yVDc2cNKfBFmD9X+0ncCP58F48eG+Feo2CAUkvs4dl0V/uJvdXLiiV+ut++n7YLSfxPfMMG54ChzB3WIesVWB2i82bw1AR6fJR7C4VsfYiv6u/k3A9nEgP4zXke8DiYHyAOMK+QxPIgnZ9GqSHr1itQJ8DK2fTerDQ+S/bHRXQJaHSCwNIZ2Xh+7+S3VAmwNMBA/tuPZtErgKquUmdMWIFlRURvdamRNEXGwIWrlP47pTMzLiunxghGMwTLvcTWlHAp77s4QNSrYMQtss6ZMgWqCm5cHoDHO1nbk6K8zEN8+3zatv2Hn1b59EqJZdxmYUERg9P9KwpIiAOTdWUWBXuLzB/vZG3P1Un4PNp2d1MbmyD45TWCxuCsQm0x56bHGHFYEZwxok7toAA9Sfw3hCcoL/NOwi9QO5wmWO1j4JEgZxTkodmcWRGkf3pcX0r8xoAaBixKu4U5/xwndM+0tpAvS6mP+PZK2nb1UBvPEKwKMLDvPj4ESGc55lGy303sdJKQdZB2rkMdctAB/4gzN+/Q2ENNd4LyUi/xN+bTtquX2thk5nk4wI3gAF+OMNcA1nFQDfK+BY5GqbkwWabTY5QZhXWlnNx1ntrY1Rz87fuvw29m/Sn8J+PUGAFj5T19baA1IspuBZp7cx1x4SwG1cEf+lgRSROs8jGwb+Ht4QB/GSSsAhYano39LWIBxNEIbP14hPDuiyS2VtJuHXQlKKvxM/jiXDq/D/xPlwifGMkJZB2NIoKpr69nxeiZxLHicFSFVWfGqBidIP3LSjrWltD94CyufF/4kQgPuVz2Lz93+dDRa9eu5QQ8Hg8/iXee+Dy4CKMs7xqn4nwKz9IirhQqmVuB42m8ey+x7LMoD6iAON782eChhqmRuXfvXgKBAKqKqtI0/8nNKrQI4BVYXkzHgzPpC88gWuHL/caXrhLoGiN0apSKr0ZZRBZM7q2w5ZnLR1oAnHOMjY0hra2tFBQUYIyZmstvVT1Z6eDlAuEVq7merxmwueNPDXy9PvybjKP5mctHLk4/XTKZRJqbm/H7/VNw1VyEMYbW4FN3WNWnnchKoy5sHeVGBRX6VWi3ymFx7r11Ix8MTX/y5C2RSPC/AQB61erowbpqSwAAAABJRU5ErkJggg=="
},
"$:/plugins/felixhayashi/vis/img/network/cross.png": {
"title": "$:/plugins/felixhayashi/vis/img/network/cross.png",
"type": "image/png",
"text": "iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAYAAADEUlfTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAADvGaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAyMSA3OS4xNTQ5MTEsIDIwMTMvMTAvMjktMTE6NDc6MTYgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iCiAgICAgICAgICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOkNyZWF0b3JUb29sPkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHhtcDpDcmVhdGVEYXRlPjIwMTQtMDItMTRUMTE6NTU6MzUrMDE6MDA8L3htcDpDcmVhdGVEYXRlPgogICAgICAgICA8eG1wOk1ldGFkYXRhRGF0ZT4yMDE0LTAyLTE0VDEyOjA1OjE3KzAxOjAwPC94bXA6TWV0YWRhdGFEYXRlPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxNC0wMi0xNFQxMjowNToxNyswMTowMDwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXBNTTpJbnN0YW5jZUlEPnhtcC5paWQ6NjU0YmM5YmQtMWI2Yi1jYjRhLTllOWQtNWY2MzgxNDVjZjk0PC94bXBNTTpJbnN0YW5jZUlEPgogICAgICAgICA8eG1wTU06RG9jdW1lbnRJRD54bXAuZGlkOjk4MmM2MGIwLWUzZjMtMDk0MC04MjU0LTFiZTliNWE0ZTE4MzwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjk4MmM2MGIwLWUzZjMtMDk0MC04MjU0LTFiZTliNWE0ZTE4MzwveG1wTU06T3JpZ2luYWxEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06SGlzdG9yeT4KICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmNyZWF0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDo5ODJjNjBiMC1lM2YzLTA5NDAtODI1NC0xYmU5YjVhNGUxODM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDItMTRUMTE6NTU6MzUrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjIxODYxNmM2LTM1MWMtNDI0OS04YWFkLWJkZDQ2ZTczNWE0NDwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNC0wMi0xNFQxMTo1NTozNSswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6NjU0YmM5YmQtMWI2Yi1jYjRhLTllOWQtNWY2MzgxNDVjZjk0PC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE0LTAyLTE0VDEyOjA1OjE3KzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6U2VxPgogICAgICAgICA8L3htcE1NOkhpc3Rvcnk+CiAgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2UvcG5nPC9kYzpmb3JtYXQ+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDxwaG90b3Nob3A6SUNDUHJvZmlsZT5zUkdCIElFQzYxOTY2LTIuMTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDAwMC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzIwMDAwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjc8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFlEaW1lbnNpb24+NzwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+cZUZMwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAA2ElEQVR42gDLADT/AS0tLUQFBQUVFxcXtPHx8fPl5eUNCAgITCkpKesEHx8fGgYGBjH+/v4a+Pj4qgQEBFU6OjodMTExzwQUFBSvEBAQEfX19SD19fVqNDQ0CElJSd/9/f2vAwEBAfrn5+fkBwcHLRYWFgsXFxfz29vbo9LS0uwDDQ0NDfPz81orKysXIyMj+ODg4Avh4eEa/f391gMkJCRYPz8/KUhISOMCAgKh8fHxHRsbGx4UFBQQBDk5OeY7Ozv7CAgItPb29vMEBASaJSUlTQ0NDesDAEwpT0Ko8Ri2AAAAAElFTkSuQmCC"
},
"$:/plugins/felixhayashi/vis/img/network/cross2.png": {
"title": "$:/plugins/felixhayashi/vis/img/network/cross2.png",
"type": "image/png",
"text": "iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAADoRaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAyMSA3OS4xNTQ5MTEsIDIwMTMvMTAvMjktMTE6NDc6MTYgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iCiAgICAgICAgICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOkNyZWF0b3JUb29sPkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHhtcDpDcmVhdGVEYXRlPjIwMTQtMDItMTRUMTE6NTY6MTUrMDE6MDA8L3htcDpDcmVhdGVEYXRlPgogICAgICAgICA8eG1wOk1ldGFkYXRhRGF0ZT4yMDE0LTAyLTE0VDExOjU2OjE1KzAxOjAwPC94bXA6TWV0YWRhdGFEYXRlPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxNC0wMi0xNFQxMTo1NjoxNSswMTowMDwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXBNTTpJbnN0YW5jZUlEPnhtcC5paWQ6OWIwNjRhODctYWNlZi1jMjQ5LTg5MWUtNDAxOTVmMWJjMTNkPC94bXBNTTpJbnN0YW5jZUlEPgogICAgICAgICA8eG1wTU06RG9jdW1lbnRJRD54bXAuZGlkOjlmYTI2M2QyLTljOWMtNWY0OC1iYjNiLThmYmQ5NmI5ZTBhMjwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjlmYTI2M2QyLTljOWMtNWY0OC1iYjNiLThmYmQ5NmI5ZTBhMjwveG1wTU06T3JpZ2luYWxEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06SGlzdG9yeT4KICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmNyZWF0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDo5ZmEyNjNkMi05YzljLTVmNDgtYmIzYi04ZmJkOTZiOWUwYTI8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDItMTRUMTE6NTY6MTUrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjliMDY0YTg3LWFjZWYtYzI0OS04OTFlLTQwMTk1ZjFiYzEzZDwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNC0wMi0xNFQxMTo1NjoxNSswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8cGhvdG9zaG9wOkNvbG9yTW9kZT4zPC9waG90b3Nob3A6Q29sb3JNb2RlPgogICAgICAgICA8cGhvdG9zaG9wOklDQ1Byb2ZpbGU+c1JHQiBJRUM2MTk2Ni0yLjE8L3Bob3Rvc2hvcDpJQ0NQcm9maWxlPgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj43MjAwMDAvMTAwMDA8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDx0aWZmOllSZXNvbHV0aW9uPjcyMDAwMC8xMDAwMDwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT4xPC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj41PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjU8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/PvQ0yV0AAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAAAHZJREFUeNoAaQCW/wE1NTWrERER3+3t7Xbp6emKOTk5IgQtLS3kBAQEdfLy8ipOTk5LQ0NDkAE0NDQAEhISxiEhITkTExPH9PT0OgMGBgaPMzMzVS8vL7XU1NRC7+/vEQNfX19lUFBQtfPz82EEBAQMNTU1HwMAMI4nIAoe9RQAAAAASUVORK5CYII="
},
"$:/plugins/felixhayashi/vis/img/network/deleteIcon.png": {
"title": "$:/plugins/felixhayashi/vis/img/network/deleteIcon.png",
"type": "image/png",
"text": "iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAEEOaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAyMSA3OS4xNTQ5MTEsIDIwMTMvMTAvMjktMTE6NDc6MTYgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNC0wMi0wNFQxNDo0MTowNCswMTowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTQtMDItMDRUMTQ6NDE6MDQrMDE6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOjc3NDkzYmUxLTEyZGItOTg0NC1iNDYyLTg2NGVmNGIzMzM3MTwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6RUE2MEEyNEUxOTg0RTMxMUFEQUZFRkU2RUMzMzNFMDM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDEtMjNUMTk6MTg6MDcrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+c2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDowNmE3NWYwMy04MDdhLWUzNGYtYjk1Zi1jZGU2MjM0Mzg4OGY8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDItMDRUMTQ6NDE6MDQrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jb252ZXJ0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+ZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZzwvc3RFdnQ6cGFyYW1ldGVycz4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmRlcml2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+Y29udmVydGVkIGZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmc8L3N0RXZ0OnBhcmFtZXRlcnM+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjc3NDkzYmUxLTEyZGItOTg0NC1iNDYyLTg2NGVmNGIzMzM3MTwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNC0wMi0wNFQxNDo0MTowNCswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8eG1wTU06RGVyaXZlZEZyb20gcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICA8c3RSZWY6aW5zdGFuY2VJRD54bXAuaWlkOjA2YTc1ZjAzLTgwN2EtZTM0Zi1iOTVmLWNkZTYyMzQzODg4Zjwvc3RSZWY6aW5zdGFuY2VJRD4KICAgICAgICAgICAgPHN0UmVmOmRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgICAgPHN0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdFJlZjpvcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDwveG1wTU06RGVyaXZlZEZyb20+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDxwaG90b3Nob3A6SUNDUHJvZmlsZT5zUkdCIElFQzYxOTY2LTIuMTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDA5MC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzIwMDkwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz4aYJzYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAYGSURBVHjalJZ7UJTnFcZ/73m/72PdJY1RbhoQp6lkXRAvmIYxdCUadLVOozPNtGObap1JsKipjiShbdoRbeKEiQHpQK3xj0xa03aamTbaTGyAYV1QGeqFi+JyiZFLAlmESBkWRmS3fyzslGkmnZ5/v/M873Oe75zzvqqoqAibzQaAiKCUAkApRdHIK/NFsx2NR91nOSILADDoJyzNaM4xxbtvPHh0iC+JiYkJ1OHDh4mJiUEpFSXPv/ziPC28TIiXDCOSrAClQDSEpsCwJPIhrEBRQpiSytXlQwDhcBilFPfu3UMVFxdjt9ujFTzfcLBADCoEEAFr1ZbrrNjch2vtEImPBgHob7fTcWE+bVXJNJ/NiFQlEGLvieXHKmYqGB8fRx05cgSbzYaIsPvywV8pKFaA7fGtLTzz61YWpo/xVTHQbufsq5lcez9zWuWhk5mvFwMEg0H0+vXrMU2Tn1wp3CtCiQ5DjGd3A/m/v8IDCZP8r4iNmyRrWx/j/5qktykZpXKzAjVDVxPzGqemptDr1q1jX3NRnIJarcDKK2hgR2ULXRfncv7UYv7xpovhnhiW5Mz+kefeSKO6LJ1A1xzEuk/Ojm4mRibpuZaMZW3OCtRUND60NmiICCIUShisx7a2sLMiQn4s77uEQgIabnqdfHIlgT1/qQeg8vs5dHhdCNB1wYn3RIiC995j26stjAbsNH+YiZJCESnS1Y/XxIXu8r4YIPv/VkVs3CTnTy2ms34xro1+sp9po6sxlTu34ultmsPVvy6is86FCHgO+DDs49zpjufBpCG+seYOC9OHaTidieicb9ouVAhKtouAseI710ma7pLuqwmgYfHqAFt+6WdLoQ/LBl11Lm7VudAa8vb72PCin9TlAWIsGGhLACD+kSAZnusYBii1XQAPYWDllt6ov2lrBkDBR2+6Ofuak2//3M+G/T4wAAPW7fPhKfRTVeqk9qQbFKRmDUTxS3N7QYGYmwzCkqklBGlPDEcTNv+sg9tNCbTXuvBWujE0bHrZj9JE1B/wU1Pm5PwJN6YBS9a2kVvQEcWnrh5GTFD3lxkYkqRMgYQlwVldUvDnen73LHTUuqitdKM0eAr9AFQfd1J/yo2aJn+2sn4Wdn5qEFODJskgBIjx5T0uCrQA08pnIjS9PERDjPnfOKXAMEBECUoGEIHBj+2zkt76UQ6dXheGAev3+cg74Kf6uJPqcicbfuond7cPy4SOiy7+tD9nFvZurx00KOk3CNEC+mE+vjSPBc7IWqgqTaPT60IMcO/xsXGa3HfKjRgRdbl7/KDg0jtubje6aHj7c7J3dgLQ2zoPwwQ91SooOQdAW1VKVMHty0kA5Bb48BycJn/LjWFGbLv4thvvb53kFvjJ+XEdWkPfjQVR/CcNKYgGMc8JWt5Fa2j+MIPPuyI2pa4IoHSkt6vLIuRaQ9q32khzt4GCxtNu6k46GeiIR2lIfDQQsafPzq1LGRGL9Gk9d+vrwewvfHPQOoexQVjxdB/auk/zmaUMdsfz6bVUtIalT7bxveP1ZHh6GPDPYeSzeD69kcpIfxymFWLNrka+ljhBTWkWwz2JiJT84YHnz2iPx0P20PkmRF5i6HYiwZFJsn/YzdezbzE3cQibY5xV266z6RfXohakb+xB9CjanCD9qTbW7Grk4WV38VZm0l6dhQiEw9taHSuDqrS0FIfDwXM3X9mHMsvRAk/sauDpQy38P+GtzOTGB9mEpkD0C2dS8n8zOjqK9ng8WJZFU+JTjasGvaCNXPpvJBPoMlm0OoDNMfWVxONfWNSUPUZ7TUQ56tCZlPwSgMnJSVRpaSmxsbFE1raw82ZxAZZRQUiBYUKGp5UlOX2krBzmoUVjiIKhHge9rfPo+Wcy3ZeXIYASgL1/X5RfMXMvj46OosrLy7HZbGitUUohIuzoem0RofALaOsghgWGjky0MiJTL8b0lOvI8hN1DKXKP0jd3TNTWDgcJhgMoo4ePYrD4Yi+KmaeLlprnrtXFo9h/AAlG1AqE8yFmBrC+jO0bgH9EVpO/1F2Dc5g//OAsbEx/j0Af+USsQynL1UAAAAASUVORK5CYII="
},
"$:/plugins/felixhayashi/vis/img/network/downArrow.png": {
"title": "$:/plugins/felixhayashi/vis/img/network/downArrow.png",
"type": "image/png",
"text": "iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAGYktHRAD/AP8A/6C9p5MAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQffARwOJDdL2KxuAAAGRklEQVRIx52XXWwTVxaAzznXDn9xLUcFjyOShowhEzuwSSQXMN38gEJEoOwDaxkCCMr2FaXhJ0/sWmmfCkULSAgUtdknHpBWEYi2oGhlmc2fWrwJCDL+wYF4XEicZBMbgrFDY/eh4wjMmJjel5m595z73XPuPeeeQcihORwO9Hg8f2aM7UylUluIyAgAOgAARJxBxAAA9APA9zzP97S3t6cWmxPfNVhXV0d6vf4LRDyLiID4u7jSk4heVz0eDAbPuVyu5HuD7Xb7ZwDQSUSAiFBYWDhmMpkks9kcLikpiWq12gQAQDQaXTI6Oqr1+Xx6r9dbPDY2ZiAiSCaTgIhHOjs7/5UzeO/evV8CwN8RETZs2ODbvn27WF1dPZnLtty7d2+l0+k0iaJYJnvpq46Ojn9kyjEF6DkAaENEaGho+Ono0aM/GQyGGOTYOI6Lbd68OfjixYtfg8HgakSstVgsOrfbfSurxXa7/WsiagMAaG5u/s+uXbseZU7s8XgKrly58sn4+DiHiMBx3Pj+/ft7BUGYzpTt7u7mr127tk3+PHPp0qW2tyy22+2fIeJpIoJDhw51NzU1PVay6MKFCw3hcJgjImCMQSwWyw8GgwV1dXW+TFme52dWrFjxf1EUecbYFovFIt25c+cuAAABANhsNkZEnUQEO3bs6G9sbBzN5sqJiQmOiKCjo6Pj8uXLHYgIExMT3DsiY3Tr1q398kI7bTYbWwAzxloQEdavX+87cODAg3fGX0boMMYyQ+mttmfPngcmk8mLiGAwGFoAAMjhcCARnQUAaGxsFBcN/D8ABgCoqakRGWOgUqnOOhwOJL/fXwMAUFRUNFZVVbVoyCiBcgGXl5dPGQyGMSKCZ8+e1RAiNiEilJeXS7mES6bFKpUqJ7B82CQiArVa3USIaJXB4VyUiegNUDqz5dJKS0vD8sI3qxBxLSJCSUlJNJuC3+8v8Hg8XDwez8sEp3N4V1dX5bJly+bWrl07bjQap5XmKSoqisq661SIqCMiSOdeJejFixf/+rq1Snvsdrs/BgDo7e2FI0eO/Jvn+bfgGo0mIevqVIu5yuPxcAAAFRUV4tKlS+dev6UAAKqqqu6m++bm5vL8fr9pZGSEUwK/fhBVqVRqhoj00Wh0yapVq15mCs7PzzP5QMwfPHjw58zxffv2LfRdvXp1EyLCq1evVErQ58+fL5HBM0RED4kIJEnSKgmXlZWNExGIomgOBAIF2Tzz6NGjAq/XW0FEwPP8uJLM06dPtbJ3/EREA4gIDx8+1CsJm83mSUEQvMlkkq5fv27NBr5165YVAGjdunVeQRAmlGRCoZBeBg8QIv4AAODz+YqzTXr48OFenU4XmZycLOzp6SnNHO/r6yudmpoq1Gq1EZvN1pttHkmSihljAAA/0urVq/+LiBAOhw3379//UElBrVYnKysrRSICl8u1KR6PL+xhIpFQDQwMbEJEMJvNolqtVix3AoHAh9PT0wYigpqamh5qb29PIeJxAACXy2XKttqdO3c+4Djul0QikX/jxo2qdP/NmzcrY7FYPsdxvzQ0NGS9YAYHB01yBB2vr69P/n7EZmbOy+4Wurq6KrIp19bWDhERDA8PbwiFQtonT55oh4eH/8QYA6vVejebntPprHj8+LEAABCPx88vFAKiKKYsFksIEf8iSVKRRqOZKi4ujiqUNbOSJOVHIpGV4XD4g0AgUDQ7O6srLS31bdu2TdHaoaGhj/r6+urlMPr81KlT/3ujAnG73UMbN25cgYhbvF6vMRvcaDSODQ0NGSORyMpYLKZdvnz5bHNzc3deXt68EtTpdDbKJ/lMW1vb6axVZktLyzlEbCEiqK2t7d+9e/dblszOzuZ5vV4OAEAQhPH8/Py5TJnbt29XuN1uq1zqnj9x4sQXi5a3ra2tpxljJxERBEHwWa1WURCEnMrbkZGRlYODgyZJkspk9545duxYW84F/cmTJ/8GAN+mLwW9Xj/G83xwzZo1YYPB8Eyj0STSaXBycvKDYDCoD4VCH0UiEUM6dyPi562trd+99y+Mw+Ggly9ftjLGvlGpVAsVCCKCnAjeuK3S74h4orq6+p/19fXv/wuTuYBkMvkJIn6KiFYi4olIJ4NmEHGEiPoB4IbFYul9FzDdfgOenj3/W2qSyQAAAABJRU5ErkJggg=="
},
"$:/plugins/felixhayashi/vis/img/network/editIcon.png": {
"title": "$:/plugins/felixhayashi/vis/img/network/editIcon.png",
"type": "image/png",
"text": "iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAEEOaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAyMSA3OS4xNTQ5MTEsIDIwMTMvMTAvMjktMTE6NDc6MTYgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNC0wMi0wNVQxNDoxMjoyNSswMTowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTQtMDItMDVUMTQ6MTI6MjUrMDE6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOjY5OTM3ZGZjLTJjNzQtYTU0YS05OTIzLTQyMmZhNDNkMjljNDwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6RUE2MEEyNEUxOTg0RTMxMUFEQUZFRkU2RUMzMzNFMDM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDEtMjNUMTk6MTg6MDcrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+c2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDozOWNhNzE5ZC03YzNlLTUyNGEtYmY1NS03NGVmMmM1MzE0YTc8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDItMDVUMTQ6MTI6MjUrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jb252ZXJ0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+ZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZzwvc3RFdnQ6cGFyYW1ldGVycz4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmRlcml2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+Y29udmVydGVkIGZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmc8L3N0RXZ0OnBhcmFtZXRlcnM+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjY5OTM3ZGZjLTJjNzQtYTU0YS05OTIzLTQyMmZhNDNkMjljNDwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNC0wMi0wNVQxNDoxMjoyNSswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8eG1wTU06RGVyaXZlZEZyb20gcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICA8c3RSZWY6aW5zdGFuY2VJRD54bXAuaWlkOjM5Y2E3MTlkLTdjM2UtNTI0YS1iZjU1LTc0ZWYyYzUzMTRhNzwvc3RSZWY6aW5zdGFuY2VJRD4KICAgICAgICAgICAgPHN0UmVmOmRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgICAgPHN0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdFJlZjpvcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDwveG1wTU06RGVyaXZlZEZyb20+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDxwaG90b3Nob3A6SUNDUHJvZmlsZT5zUkdCIElFQzYxOTY2LTIuMTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDA5MC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzIwMDkwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz4ykninAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAYpSURBVHjafFZtTFvnFX7Oea+NudiY2Hwam4CBlgQwXdKREDKUoYg0jbRJ29RJ2VZ1mjRFUxSpA3VTfkzJfkQbS7spU6rtx5Z2UtppScjaHxvLuiatWi2jLEoMIUDCh23g2gbj7+tPuPvhOurawPl1dc99n+c55z33fV46ceIEZFkGADAziAgAQERoe/9ZK4GPM/AcgbsIXAcABCgMvkfAqAa89eDoJyF8LogIqqqChoaGYDAYHr8kItS8uc8iIH6iAa9IkAo5EAQX8pqmgUVBCBggYFgDhv0/GAsBgKZpICJkMhnQ4OAgZFkGEYGZUXmp+0cS+CKBwWA0DVRPOg5Zl2q6zaHyJlnVAMQXVTkwHrUqH0Xsvn+tdQAAMQDgpPLS2MViFY8rkGUZzIzaS/t/xqCzGggtz9e697zsnKhoLUtim4jOq/LE6x7X0nsh16dEZ5a/O3a2SCAOHjwInU6Hujd6ThJ4mCDQ+b2G232v7v6vwarPbQn8MGlMr+X0kpE3Wr5Zt5hL5HPhqYSdQIfKJ+yhxDPKWC6Xg+jt7UXD5b5KBt1kCHS85Ljd8/On3NupfnhFaZj4rWff1B98B1R/hnUmKd36bdtCNl4g0en4edNE/cXwLq8qMTMIPAQwmo/WuHvObA8+9c58k/dKtD0TyZWXN5YGA7ej7epKxspM//7SoNOdWc/Jyq2wiwhDzPxT8cP0jys3VMM7OmL0/77zn4Ydui3b8uiK0jD7RrA77c9Wd57cefPpF+2T6bWsFPWkaiPTCWvTsZpHFU+XrS+8G3AR08F6X+1FJvBxQQzHQOWk2SmrW4FPX/U2LVwPuDZj+fJKl2khPpeyAqA9rzR/YqwuiWXX8taN/CabGkrVuq9YJlkQQDjOAJ5jAhz9Vt9W4N5/rNp8I+vtMV/aZm4zLnUNNt0urdYnF68HWoJj4Wo1mLGUNRr8LEgDgNqeCh8xQIKOsgC7iAjVe83rT9zQa8uNM28u70kspessu8q8zq/V3NcZpVzb9+0zmVhOvvvrhaMVzrJg0zeq7xMVCCwdpnWSGBqjUyJwLTFgbvxie3w31uoWR1Y74r60rdxZqrR8q85t2W2MGCp12bm/KC3hyaSTiMhxuGrKcahqpbjOaDOoEhOEoFqJQCCJvqA85I6bfTdDjQlf2lbxVNlS6wt19yy7jRHZZlDnrinNj/6sHMhnNw2Ogco7O79e5fm/xQywRBBCEAuwn4gQ96bkYj4Vyuq9N1Z3Bj4Od5bs0MXt/dZZ21ctiqFan174q985P+Lfp+U1g7XDON/1ctP458WlVjLyJhOISZE0wM0S1QfuRC3lTjkJAKKEtNC9eIOhSh9xHLZOJRZTFuXDsEoStLkR/768ummsaJG9Pb9oe+9J+xaeSVokiQDSJphAo5uaBuWjiKP4QTqS1cUWU7ayesN66wu22frD1vmVW6GW6T8u9eVjGyZzs+w78Nqu0a2mbvVu1KEJQAgeZRL0liQYyx+GOmKeQpu0rMYsAJPNEFGD2dLodLIy6c9Ys7G8yeSUl3tf2/X3rcBVJSOv34l3sCBogi7z1LH/rBHjl4IJ93/ncQFAnjeImJD0Z8zuCwu9q3djDXqTlAKID5xv+9t2R8n8VcUFBljQ8Gyfe40BYBM4DwDLt8Kue79ZcFkbzfEdbUbv+oN4c9KTtsfm1MbYQqqh+2zrVZYKs/7Ef+byimt1POYiJhDhPBFBIiIEXhxfs7/dfYoIF+auBfYTE/pebx/V8hqBP2ODvD34yvuh/WCAmU75Bx6sIgaI/v5+6PV6JLqUsYr7dpDAoehs0h73pHTWrvKgThYbRSt9UmSjef3MpaUvBz4O72UmADgTOPJguGiZor+/HyUlJWBmJFz+D8xTtlUiOpbwpmrmrweeSXrT+g11k4SBN3RGKUcAVCVdFhyP1nreDbY//NPyEXUlU/Pp4XYycGT6V0Ux2WwWdO7cOZSWlkII8diX7SPPNgDaKdbxoNAxwATBAEkEEgSWCEQAqPAMwqvMdCEwMO0tVqZpWsGTT58+DaPR+PhGIYQAAAgh0P7B3ioW/B0iGiCGiwXbCuOHFSJys6AbYFye2T+xWhT3WYJEIoH/DQBMw3kes8OJPgAAAABJRU5ErkJggg=="
},
"$:/plugins/felixhayashi/vis/img/network/leftArrow.png": {
"title": "$:/plugins/felixhayashi/vis/img/network/leftArrow.png",
"type": "image/png",
"text": "iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAGYktHRAD/AP8A/6C9p5MAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQffARwOIyX3IEvhAAAGn0lEQVRIx62XX1BT+RXHzzn3FgYhIjuBcC2BwCVIYGEIcIGopTiiO7I6OLE2jujYbXf6os5WAV9KyWj74m7/bH3TsfTBFx+Y6dhWZ6eLDNkV1oRsoqI3CX9mTTIC2dD8U0ICNLcPTRx0+efW83LvzO/8zud3z+/3+55zETZhRqMRHQ7HjxiGeV+SpF1EVAoAOQAAiBhExEkAGAGAf/I8/+XFixeljWLieoMtLS2kUCh+hYh/QERA/J/7ak8iWjm10+12fzo0NJR4Y7DBYPgAAPqICBARtm/fPlNRUeGprKz0qVSqcHZ2dhwAIBwOpz99+jTb5XIpnE5n4czMDEdEkEgkABF/3tfX99dNg48dO3YJAH6DiFBdXe3av3+/WFtb69/Mtjx8+DB3cHCwQhTFHcks/fbatWu9r/sxq0A/BYALiAj79u0znz171sxxXBQ2afn5+VGdTueen59fdrvdBYj4Y0EQcqxW62drgg0Gw2Ui6kREOH78+IDBYHDC97Sqqipfenp6yOVylSBikyAImVar9fPvgA0GwweI+DERwalTp/7V1tb2DfyfxvN8MDMz89+iKPIMw+wSBMEzOjr64CX46NGjDMMwXxMRHDhwYESv14/DWzKVShWKxWJxj8ejJKL2wsLC34miKLEAAAzDfISIUFVV5Tpx4sTjjYKNjY3lOhyO/LS0tP9UVFTMlpWVBdbzP3LkyOO5ubl3HA5HOcdxHwHAH9FoNOLExEQCAKCrq+tvWq12zdO7tLREV69e3e1wOMpT95aI4MyZM/1qtXpduMPhkF+/fl0PACCTyYgdHx9vRkRQKpUz60H7+/srbTZbZSQS2caybKK6uvrJ8vIyI4pihdPpzN8IrNFo5jiOm/H5fFwkEmlmEbENEUGj0XhWm2CxWLiBgYGaZ8+eKREROI6bNhgMw6WlpcEbN240sCwL8Xg8bZOHzeP3+zkiamMRcWcS7FvpFIlE0vr6+na6XK4yIgKZTPaitbXV3NraOvVSfZJSef/+/YbR0dEGAABJkl5uAQBAXl7ebHt7+z2e5wMlJSU+s9kMiKhjEVGNiKBSqcKpgM+fP0+7dOnST6LRaBbLsglBEB7q9foHWVlZS6/IXlK/EREkSQIiAoZhXtHxubm5/Fu3bu0+f/7835VKZTi5oDIWEXOICFLaCwBgs9nyo9FoVlFRkcdgMIyoVKrIaqnr6OiwdHR0WNZLb29v7y9DoVB+8lDFk+AcNlUEVpokSbhKxXkrlorJSpIUJCJFOBxOz8vLWwAA0Gq1M3fu3Hnh8XgKr1y58sO6urpHer3enpGRsbwyyM2bNxsePXpUQ0SvLPL1d7lcPpvcwvTkWJCIaIKIwOPxZKecs7OzF3t6evrLy8vHJUlibDab9vLlyz81mUwlr69+JTT1ntp3IoK8vLzZgwcP3gMAmJ6ezk6OjbNE9BUi7p6YmFDU19fPpoJu3bp18fTp00M2m801NDSknZ6eLrh9+3arzWabPnz48HBxcXEwFbyurs7S3t7+YKM0e71eRXJbv2Jqa2sXEfFni4uLTEtLy3c0muO4FzqdbiIej8cjkYgsFArl2u12jd/vT19aWvpBMBjM5Xn+G57nN6zXg4ODDbFYTCZJ0q+poKDgC0QEn8/HjY2NydeadOjQocfd3d39ZWVlToZhSBTFqsnJyQoAALVaPbsRdHJyUh4IBDgigubm5i8Zk8kE9fX1zxHxvfn5eWxsbHSvNZlhGKmmpsbNcZwnMzMzrFKpnu7du9eiUqkCG4EHBgbqw+GwHAA6T548OcIAAJSUlFi2bNnSGwgE5LFYLK7RaL5dL4hcLo+q1Wofz/P+bdu2LWwixe8+efJECwAQi8XeN5lMEgMAIIqiJAiCFxHbPR6PUiaTzRUWFobfxr212+1Fw8PDe5In/8Oenp6vX+lArFarvbGxMRMRdzmdztK3Abfb7UWDg4PvJa/QJxcuXPh41Z7LYrF83tTUlIOITU6nszQej8d37Njx7feBmkymd1NfKknSn7u6ujrX7TLNZvNnOp0uk2GYXV6vV+n1erMyMjKicrl8U53m1NRU7t27dwWHw6FNpveTzs7Ozk039N3d3b8AgOspNVIoFDM8z7uLi4t9HMdFZDJZPCWDfr9/q9vtVni93qJQKMStqFofnjt37i9v/AtjNBppYWHhHMMwv2dZNnWlABFflr81JLOrtrb2T3v27HnzX5jXF5BIJHYj4iFE3ElEPBHlJEFBRJwiohEA+IcgCPfWA6bsv6nEjVSaQsrEAAAAAElFTkSuQmCC"
},
"$:/plugins/felixhayashi/vis/img/network/minus.png": {
"title": "$:/plugins/felixhayashi/vis/img/network/minus.png",
"type": "image/png",
"text": "iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAGYktHRAD/AP8A/6C9p5MAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQffARwOJCdWb7wKAAAE/UlEQVRIx7WXXUwUVxTH/+fcMcTQLaFZd3cMu66MBVnFBOJEELqVByVSGxKNWWNMjK3xjViyyBNlQ9uXak31xQfS0kfeTOxXTK0bbP3I6io1mtldPoI7mwjLCuxiFDZpdvrgDtlStKjwTyYzc++d+7tzztxzzhCWoUAgQJFI5AMhxEeGYTQw8yYApQBARDNENALgJoCfFUX5s6enx/i/OelVnbt27WK73f4ZEZ0lIhC9GL7UmZkLH/XH4/FzAwMDudcG+3y+YwD6mBlEhPXr1497PB59y5YtSbfbnSkpKckCQCaTKXr06FFJLBazR6NR1/j4uMzMyOVyIKJP+vr6flg2+NChQ18A+JyIsG3bttiePXu02tra1HLccv/+/XXBYNCjaVpl3kpf9vb2di8eJ5aAngPQSUTYvXt3qK2tLSTL8nMsUw6H43l9fX382bNnf8fj8TIi+lBV1dJwOHz5pWCfz/c1M/uJCIcPH/7d5/NF8Yaqrq5OFhUVpWOxWDkR1amqWhwOh6/8B+zz+Y4R0WlmxtGjR39raWkZw1tKUZSZ4uLiKU3TFCFEg6qq+p07d/5aAB88eFAIIe4yM/bu3Xtz//79Q1ghud3u9Pz8fFbXdSczt7pcrq80TTMYAIQQJ4kI1dXVsSNHjjzECuvAgQMPPR5PlIggy/JJAOBAIEDMfBYAmpubNaySvF6vJoSAJElnA4EA8dDQkBcAnE7neE1NTWq1wFVVVU9kWR5nZszOznqZiFqICFVVVTpWWYqi6MyMNWvWtEhEtDMPTpoDIpHIe/39/Y2Tk5MOMxyaIdG8Lrw3DANCvNgghmEstNtstonW1tbriqJMA0B5eXkyFAqBiOqZiN4nIrjd7owJ7u/vb0ylUo5CyOLDjNHmwgzDABFBkiRIkgQhBKamphyXLl1qNOd1Op2ZfAiukIiolJlhxl4ASCaTDiEELly40Ps2pu3u7j6RTqcd5r3FYsnmF10qmUmgUEu1rZRMa0mGYcwwsz2TyRTZbLY5AJBleWJyctLR1tZ2otC8helvKb8vnpyZYbVaJ8z2p0+fFuX7ZpiZh5kZuq6XFCSK6w6HY+JlvpUkacn2wgUSEWw228S+ffuum/M+fvy4JN83JDHzLSJqHB4etm/fvn0CACoqKqa7urp+XGkzJxIJe96Ft5iIfgGAWCzmWu19rOu6K7/tfuWysrI/iAjJZFJ+8OCBdbWgIyMj1unpaZmZ4fV6/+Senh6DiPwAMDAw4Fkt8L179zx5//ubmppyLz6xmZnzeXNvvnjx4taVhgaDwa1jY2ObAWB+fv78Qj7WNM1QVTVBRK26rjstFssTl8uVWQno4ODghhs3bjTlv/zjXV1dd/9VgYTD4cEdO3YUE1FDNBrdtBLwwcHBDcFgsDm/hc50dnaeXrLmun379pW6urpSIqqLRqObstlstrKycvJNoNeuXdtqvqlhGOc7Ojr8r6wyQ6HQ5fr6+mIhREMikXAmEol31q5d+9xqtS6r0hwdHV139epVNRKJ1OTNe8bv9/uXXdCfOnXqUwDfmdHIbrePK4oS37hxY1KW5VmLxZI1w2AqlXo3Ho/bE4nEhnQ6LZuRi4iOt7e3f//avzCBQIDn5ubahRDfSJKEfH0GIlrIvy8JmR21tbXfNjU1vf4vzOIF5HK5RiL6mIh2MrPCzKV50AwRjTLzTQA/qap6/VVAU/8Apxa13K97LqUAAAAASUVORK5CYII="
},
"$:/plugins/felixhayashi/vis/img/network/plus.png": {
"title": "$:/plugins/felixhayashi/vis/img/network/plus.png",
"type": "image/png",
"text": "iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAGYktHRAD/AP8A/6C9p5MAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQffARwOJQd0Gq2DAAAFq0lEQVRIx61XbUxTZxR+znmvMQY7xJT2XieI1jmoHwlIY1CG4KIExuSHITVqYtwM/wgSEI1hNrhfw5mpP9Q0G/tl+Gd0XzFkNoCIaex0RtJSPwZto7RFPooRMFm4++G9BGuBYnaS5va+99zzvOc5H++5hCTE4XCQz+f7TAjxhaqqO5h5PYA0ACCiUSJ6CqAHwG8Wi+V2c3OzupBNmu9hcXExm83mY0R0johA9FY90ZWZZ79aHwgEznd0dEwvGthutx8B0MrMICKsWrVq0Gq1Bjdu3BjJysqKpaamvgGAWCy2dGBgINXv95v7+voyBwcHFWbG9PQ0iOir1tbWn5MG3r9//xkA3xARtmzZ4t+zZ483Ly9vKJmwPHz4MN3lclm9Xu+nGkvfOp3O0/F6IgHoeQCNRITdu3e7a2pq3IqiTCBJkWV5oqCgIPD69et/A4HAaiLaabPZ0jwez805Pbbb7d8xcyMAHDhw4M+Kiop/4g37fL6VV69eLQyHwzIRQZbl8MGDB7uzs7NH4nXb29st169f/1y7PXv58uXG9zy22+1HiKiFmXH48OH28vLy/kQeXbx4cXckEpGZGUIITExMLA8EAiuLi4v98boWi2U0JSVl2Ov1WoQQO2w2W/DevXt/AwADQFVVlWDmVmZGWVlZT2lp6cBcVEajUZmZ4XQ6nVeuXHESEaLRqDxPZQzs2rWrR9toa1VVlZgBFkLUEhE2b97sP3ToUO+89RdXOkKI+FJ6T/bt29drtVr7iAiKotQCADscDmLmcwBQWlrqXbDwPwAYAIqKirxCCEiSdM7hcBA/fvy4CAAyMjIGc3NzFyyZREDJAOfk5LxUFGWQmTE+Pl7ERFRORMjJyQkmUy7xHkuSlBSwlmxBZsaSJUvKJSLargFHZpdMW1tbYTQalXUg3fjs//q9qqo4ceJENQCoqjqzbjKZwpWVld0Wi2UEANatWxdxu90gogImok+ICFlZWTHdWFtbW+HQ0JCsgyT6xTOgqiqICJIkQZIkCCEwPDws37hxo1DXzcjIiGkteINERGnMDL33AkAkEpGFELh06ZJzIfpaWlrm1Dl9+nT12NjYTKkZDIY32qbTJP0QiE+W+LX/S3S2JFVVR5nZHIvFlppMpkkAUBQlHI1G5ZqamurZ9M5OLN3TU6dOVSeKu341Go1hff3Vq1dLtWejzMxPmBnBYDB11kHRLctyeK7YSpL0Dkh84ulnt8lkCldUVHTrui9evEjVnj2WmPkuERU+efLEnJ+fHwaADRs2jDQ1Nf2SiKqTJ09WJ6LuzJkzC+ZDKBQyayG8y0T0OwD4/f7MxcQokccLSTAYzBRCAMAfvHr16i4iQiQSUR49emRMxsBsqpPtXE+fPjWOjIwozIyioqLb3NzcrBJRPQB0dHRYP8TjZOT+/ftWLf71JSUl029TbHT0gkZ39rVr1zYtBpiIoNE3p7hcrk39/f3ZADA1NXVhZhDwer2qzWYLEVFlMBjMMBgMLzMzM2OJjPT29n48NTW1vLOzc2tXV9dWZkZ6eno4Pz/fn0j/wYMHa+7cuVOibfhoU1PTX+9MIB6P58G2bdtSiGhHX1/f+rnA09PTh54/f75ycnJyuRACRqMxXFZW1r1ixYrJRKAul6tUK6GzjY2NLXNOmbW1teeJqJaZsXPnzp69e/f2fkiH6uzs3OTxeLZro+6FhoaGY/NOmW63+2ZBQUGKEGJHKBTKCIVCy5ctWzZhNBqTmjSfPXuWfuvWLZvP58vV6D1bX19fn/RAf/z48a8B/KjXqdlsHrRYLIG1a9dGFEUZNxgMb/Q2ODQ09FEgEDCHQqE1Y2Njit65iOhoXV3dT4v+hHE4HDw5OVknhPher10hxDuZPEfLbMjLy/uhpKRk8Z8w8RuYnp4uJKIviWg7M1uYOU0DGiWiZ8zcA+BXm83WPR+gLv8BUhzshlEbZ/0AAAAASUVORK5CYII="
},
"$:/plugins/felixhayashi/vis/img/network/rightArrow.png": {
"title": "$:/plugins/felixhayashi/vis/img/network/rightArrow.png",
"type": "image/png",
"text": "iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAGYktHRAD/AP8A/6C9p5MAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQffARwOJRIZx0loAAAGfElEQVRIx61XXUwb2RU+5147CIPrOoLYQ2LjYAdqjKOAmGAw1YYHsgqrCilZy1YUlG5ZVcoD2kYQP9G10valu/0hipSHKE0fiaiqRu0SrXYTFxdDBHhlIojH5kfgcWMwJoYpBeyksftQT+QQCE6aTxrNaGbu+c4959zvnouQB1wuF3Ic90NK6UeZTMZKCDEAgBIAABHXEHEOAEYB4Cu9Xj989erVzH428U0fT506RVQq1c8Q8beICIj/+323OyEkd2h3OBzuGxoaSr81sd1u/wQAbhNCABGhrKxsqbq6mjeZTDGdTicoFIoUAIAgCAWLi4uKUCikCgaD2qWlJYYQAul0GhDxJ7dv3/5j3sQOh+MXAPBzRITjx4+HTp8+Hairq4vnk5ZHjx6Vut3u6kAgUJWN0i9v3rz5+c7/6C6kfQDgRERobW0d6+rqGmMYZgvyhFqt3mpsbAxvbm7+JxwOH0HED1iWVfp8vq/3JLbb7b8mhHQjIpw/f/6+3W4PwjvCbDbHCgoK1kOhUAUiWliWLfL5fN++Rmy32z9BxC8IIXDx4sVv2traFuD/hF6vXysqKnoaCAT0lFIry7L8xMTE5Etim81GKaXfEULgzJkzo2fPnp2B9wSdTreeTCZTPM9rCCHtWq32V4FAICMBAKCUfoaIYDabQxcuXJjOx2AoFDrIcZz6+fPn1Gg0LtfU1OxZfOfOnZteXV09yHHcDxiG+QwAfoculwtnZ2fTAAA9PT1/qa2t3bd6Z2ZmDl6/fv1jAHi5fo1GY7Czs9MrlUp3Xbscx5XcunXrLACAXC4ntKys7ANE/LFGo1nq6Ojw5zNbr9d7dHFxUWsymQIMwyw/ffq0NJFIlPp8vgpBEKCqquo150tLS7empqbKtra25Mlk8u8EEdsQEYxGI59v3pLJ5AFCCMhksmednZ0PL1269GeVShUVBOH7w8PD1mvXrp2ZnJxkdik2nhACUqm0TYKITVniWE5YDvb39zevrKyoRTkUQyo+i4oGAGAwGNacTudXQ0NDeo/H0/DkyRPNnTt3ND6fb8Zut4/K5fJnAAAVFRWxsbExQMRGgojHEBF0Op0gEvf39zfH43F1LsnOK1erc7R93ul0/ollWb9UKk0vLCxU9vX1fbyxsXEAAECj0QhZhysliKgkhICovQAAsVhMTSmFGzdu3Hzb5VNYWPjcZrNNWCyW0ODgYFM0GtVyHKc+efIkL5fLU1mnlZLckInY7d27QLSRyWQw1zYAgCSTyawRQlSCIBQcOnRoGwCAYZjllZUVdVdX10935jQ31ydOnJh0OBzjOwpPcu/evdrp6enj6XSaymSyf1dXVy8BAGxsbBRkx69JCCGzhBAVz/MKkdjhcHgHBgZey7M4A4lE8or3IkZGRiq8Xq8lmUwWZ4tupr29/WVxRaNRRdbGjIQQ8hARm2dnZ1X19fXLAACVlZWJ3t7ev+4Vwrt3754YHx8/KToSDoeVg4OD1ng8Xpbdu//Z1NTkN5lMS7njIpGIKjvmoQQRBwHgSigU0gLAozwL6JlEIoFUKnVgYGCgkeM4EyIShUKxbjKZAq2trbvKLs/zWkopvHjx4p7kyJEj/4hGoxCLxZipqakSs9m8uh/xsWPHlkdHR2Fubq5aDLnBYAjabLY9JXNubq4kkUgwhBCwWq3D1OPxQH19/QYifri5uYkNDQ3h/YiVSuV2eXn5QnFxceLw4cPR5ubmiZaWFo5SumeTd//+/XpBEEoAoLujo2OUZhVlXCaTfZ5IJEqSyWTKaDSu5EOu1+vjBoMhVlJS8sYOxe121zx+/Lg2W/UfeTyeDAUACAQCGZZlI4jYzvO8Ri6Xr2q1WuF97Md+v798ZGSkJbsCPu3t7f3ulQ7E5/P5GxoaihDRGgwGDe+D3O/3l7vd7g+zTd+XTqfzi117rvHx8W8tFosSES3BYNCQSqVSVVVVK+9C6vF4asSZZjKZaz09Pd1v7DLHxsa+bmxsLKKUWiORiCYSiRQXFhZu7ZdHEfPz86UPHjxgOY6rzYb3y+7u7u68G/orV650AsAtUbVUKtWSXq8PHz16NMYwzL/kcnlKlMF4PP69cDisikQi5evr64x46kDETy9fvvyHtz7CuFwusr29fZlS+htRJimlgIhAKX1lf859RsSeurq637e0tLz9EWanA+l0uhkRf4SITYQQPSFEmSVaQ8R5QsgoAPyNZVnvmwhF/BfnjYAmDVlf5AAAAABJRU5ErkJggg=="
},
"$:/plugins/felixhayashi/vis/img/network/upArrow.png": {
"title": "$:/plugins/felixhayashi/vis/img/network/upArrow.png",
"type": "image/png",
"text": "iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAGYktHRAD/AP8A/6C9p5MAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQffARwOJTG7oDgaAAAGZUlEQVRIx7WXXWxTVxLHZ+ZcY1mON8li44/GruPrsMT5UElzgSRswEIBOdUSARsZoUioHxIPCKUowBPUyrYv2y5aeOABtMsKJJ5YIaR+qBQwCS1u4zihUVw7DqTE1yFOlObDDmDTEHsfeo1SY1NTaefF8j3/md+5c86ZORehAHO5XBgMBv/MGHsrnU43EZEVAEoBABBxHhHvA4AHAD7jef7r7u7u9G/FxJcNbt26lbRa7fuIeBIRAfEXea5fIlrp2hUOh0/19PSkXhnsdDrfBoDzRASICAaDIWqz2cSqqqpps9kcKy4ufgoAEIvF5OPj48WhUEg7MjJiikajeiKCVCoFiPjO+fPn/1MweO/evX8DgBOICLW1taHt27cH6urqZgpZlqGhIY3b7bYFAoE/SVn68Ny5cx9k61gO6CkAOIaI0NLS0nfo0KE+vV7/ZKUmHo+v8ng8r42PjxevXr06IZfLlzNjOp3uSUNDQ/jx48fPwuFwGSJuEQSh1OfzfZkX7HQ6/05EXYgI+/btu+F0OkeyJxaPx1edOHHirwMDAza/32/1eDzWxsbG0Eo4AEBNTc20XC5fCIVCFkTcJAiC0ufzXX8B7HQ630bEj4kI9u/f/1Vra+uDXKk8c+bM5mg0aigvLxdLS0tjs7OzmomJCcWmTZvC2Vqe5+eVSuVsIBDgGWNNgiCI/f393z8Ht7e3M8bYABGBw+Hw7N69ezQXtL+/X3f9+vUmxtjygQMHvqqurp7o6+urnJ2d1eh0uocGg+FRto/ZbF5IJpNPRVE0ElGbyWT6KBAIpAkAgDHWiYhQU1MT6ujo8OfbONeuXatDRBAEYdhiscQsFkusvr5+mIjgxo0bdfn89uzZ47fZbCOICHq9vhMAgFwuFxLRSQCAHTt2BPI5X758uXpiYqKsqKjokdPpHFyxRIMqlerR5ORk2dWrV6vz+Tc3NwcYY8Bx3EmXy4U0OjraDABgNBqj69evz3lklpaWaHBw0MYYA4fD8Z1SqXyWGVMoFM9aWlq+4zgOhoaGbEtLS5QrRmVl5U96vT5KRBCPx5sJEVsRESorK8V8sz179uzmeDxeYjAYJrdt2/Zj9rjdbv9Rp9NNLi4ully8eHFzvjg8z4tEBDKZrJUQsVECT+cSDw8Pq4PB4DqO41Lt7e2efEF37drl4TguFQqF1gWDQU0ujcVimZbKawMhYgUigtlsjuUSh0IhHRFBbW1tYO3atXP5wFarda6qquoHjuNgbGxMl0tjNBpjUgleyyFiKRFBpvZmm0wmSxERLC8v04ULFzZkandHR4cXAODSpUvPn6XTaYaIIJPJlnPFUqlUT6VmUsplnPKZzWabunXrFgSDQRsRwQq9V1qKNzLPAQCICKxW61S+eBkdl06n54lIG4vF5GvWrElkCysqKuYOHjz439HRUV0ikVjl9Xo3ZAciIhAEwatQKH7meX6K5/mcS7K4uCiXwPMcEd0jIq0oisW5wBl4RUXFHACA1+vdwHHcC+C2trbvf6tzTU5OFkvZGiUi+hYR4d69e9pC2l5Ww3/h/8ssEolopVb5LSHi59LuNf1ecKFwURRNjDEAgC+orKzsNiLC9PS0fnh4WF1IgJWpLvSt79+/r56bm9MTETQ3N39N3d3daUTsAgDo6emx/b9SPTg4aJNORJfdbk/9ssXm509L6V535cqV6lcBIyJI6ctrbre7+sGDB+sAAJLJ5Onn/TgQCKQFQYggYpsoikaVSvWTyWTKWcn8fv9ryWSyqLe3983bt2+/SUSg0Wim6uvrQ7n0d+/eff3OnTt2acLvHT9+fOBXNxCfz3d348aNSkRsGhkZseaDazSamYcPH/4xkUgUMcZArVZPORyOb0pKShK5oG63e4e0kz85duzYx3lvmZ2dnacQsZOIYMuWLZ6dO3f64XdYb29vtc/na5SuuqePHDny/ktvmX19fV82NDQoGWNNkUjEGIlEihQKxRO1Wv2kEODY2Jjm5s2bQjAYXC+l95Ourq6ugi/0R48efRcA/pU5p1qtNsrzfLi8vHxar9fHVSrV00wZnJmZ+UM4HNZGIpHXFxYW9JmvDkR87/Dhw/9+5U8Yl8tFiUTiMGPsH5mzyxj71U7ObhDSkTlSV1f3T7vd/uqfMNkTSKVSmxHxL4jYSEQ8EZVKoHlEHCMiDwB8KgjCNy8DZux/ivJJxnpJh8sAAAAASUVORK5CYII="
},
"$:/plugins/felixhayashi/vis/img/network/zoomExtends.png": {
"title": "$:/plugins/felixhayashi/vis/img/network/zoomExtends.png",
"type": "image/png",
"text": "iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAGYktHRAD/AP8A/6C9p5MAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQffARwOJgNYWjpZAAAGOElEQVRIx62XUUxUZxbH//9zJxkI4DgRMoxBRsVddDqYQFgHBTvsCxfZXdyYaBoSY9o0PLgm3YZd9EH70D5tu6Q18cmsNtm3No0+rGsYQQK60GABNcI4oxg7M8lepuNlABUdsXP7wL3jQIvF2pNMvnvvd+75fd+Zc853Ltvb2yEiIAkA2WvrniQSiQQB7Cb5BwD1IrIFgNOcTwGYJDlE8oJhGFe/afvCAAACMLAoBGCQ+HP/+zAMA7Zc0HLg1NSUkPwrya7lczmji6RLROoB/B0A6r5o6wDw2chbX2YMEwoAGWQgIotgy6CIZHcMAIlE4m2SZ62FrV+/XvN6vTGv15vYuHHj7Nq1a9MAMDMzY49Go45IJOIKh8Plmqa5RaQrk8l01X3V9s43B778HFkxsvZ5+PDhJVBzpx+SPEES27dvjzQ1NYVqamqSWIXcvHmzpK+vzxsKhSpNj3w0sv+rD2C6/Y9X/gKSUPx+f3bHJvQzkp0k0dTUNHzkyJFht9s9j1VKaWnp/M6dO6OPHz9+Ho1Gy0QkUBb2Of/vvd1NEpVx/4/BU1NT/xCRDpJoa2vrPXDgQBi/UKqqqhJ2u30mEolsJllXdvuNgilvpKcyvmMRXFdXBxGBpmlvk/xYRHDo0KFLLS0t9/GaUlFRkSooKNBDoVCFoij1ZeE3YgUFBTdILgaXpmmKiJwliebm5iFVVb89duxYu+WJ1tbWoN/vj64GNjIy4unu7lat++PHj5+enp4eGhgY2AXgbDKZ/LfL5fpezP/2PZKoqqqKHDx4cNxKlVeFAkBtbW10z549QRHJBu2+ffvGvV5vmCQURXlPRCCaplFEugBAVdWQZYAkWltbgxcuXFCvXbvmWS14dHTUc+nSJbW5uTmoKEr2+e7du0OKokBRlC5d12kTkTcBYMOGDVp1dXU2Zfbu3Rv0+/1RksGLFy+q58+fT83NzTmX572VhiICh8ORstvtTlVVgzU1NVEAQUvH6/U+cLvdWiKRcGcymTcFQAtJbNu2LZa7csu9O3bsiKbT6VR+fv4SqPWz2WzZReTl5TmfPXuWMqGwxpxgi5nvtNhI7jLBiZXcNzc353z06BFOnTp1+mVuPnr0aLthGM6V5jdv3pwYHh4GyZ02kr8hCY/HM7vSC7mB8jIxg2fF+bKyslnTzm9tJJ0iAqv2rgRejeSecj8la9asSZu2nLafU34V+GpsZc8FACmSmJ2dtb+uq38O/PDhQ7tpKyUk74oIYrGY49cAv0xP0zSHmRl3bCS/Jtlw9+5dV21t7dRPveBwOFJ5eXnOzs7O9lzjiqIs6VyKi4uxsLCQWgkci8Vcpv7XIiL/BYBIJFK+vAIBwNjYmCcvL8+5sLCQyoXabLYf5fTz589TdrvdOT4+7gEAa8wBlyuKAhG5aCN5xeyr3Ldu3Squqqp6AADBYFAlGezp6VGbmpqC1dXVq6rX4+PjnsHBQZVkcHBwUPX5fKcBYHJysnh6etpttj5XpbS01CDZAQD9/f3e3Jx8VSgA+Hy+aENDQ9CEZ5+PjY15Tc90rFu3LiPm5EnT3VvPnTvny23oent71Rs3bqz6kJiYmLB2nLXR19fnu3///lZT5SRJ8MSJExARJJPJd0ieURQF+/fvDzY0NETxK8j169c9vb29KkkYhvGu0+k8YxgGlMbGRpBEUVHR9fn5+QKS9eFweEtRUdGD8vLy2deF9vX1Wbv/ZLyx/2NPYttiRgQCgWxUFhYW9jx58sRJsi4cDm9Jp9PpysrK734JtL+/3zc0NPR7M5hOTjQOdJBE+dTWxZoeCASWNOiFhYXdT58+LRCR+ng8viEejxfm5+fPFxcXr6rTvHfvXsnly5d/Fw6Hq83U++R249UOkcXDw/Pd4o5tuVFsjSUlJZ26rkcA/OvOnTuVk5OTlS6XS6uoqIhu2rQp4Xa754qKitJWGUwmk2ui0agrHo97ZmZm3DmNwruhwJUzQmXxK4Ivqppt+YoNw7DgZ3Rd/xzA+wD+qeu6W9d19+jo6JLjL7eoWNeGYfyN5KehwJWM0NSDIGN8vzI4V0pKSjIi0qXr+qcAGkj+yTCMXSQrDMNwmodCCsA9ERki+R8A/5toHMgoVAASxItcFr4osT8Aaa5QMU/uqTYAAAAASUVORK5CYII="
},
"$:/plugins/felixhayashi/vis/img/timeline/delete.png": {
"title": "$:/plugins/felixhayashi/vis/img/timeline/delete.png",
"type": "image/png",
"text": "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAl2cEFnAAAAEAAAABAAXMatwwAAAVRJREFUOMt108FKG1EUBuBvYtxbRGwxiGBXeYCW0mVpDSKVvIJ0F/syJsFdn6GCkaZ9gro3G1u0ILQgheJKRUwXPQNnxvTAcGf+c/7/nPvfO8UEKLCFJg5w31aNqGtgG3c4xLSZyP0QgI8Tpu0quQhyPwTgsBnkAVYD3MM9DibVId5GbiW+B+VIt7hJha1IdhPWDayVsBvcFtHlDYZ4mgou8D7e+zXyN/TwuUhjbkSXLHIZ61KNvItxaYyayBDrZsf36DyGdilQE+ngA57UyD+xg08luTSxHvP/wRuRewDm7uV9WJ4hsBy5rczJJm7G/tcS6VesjxN2Hj4c5S10Qj2Tz/AunrOEr0VtB+Z6vMJ+zfkfcVQjnMbRvcRC5B/hBU4auMbVjBFHCRsFdp6wK1yXHjz37xItRuejfFQ1nwb4HXVfs4nPYsQv0p+oKlLgNf7gGP4Cw4ZUK7kMJVEAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDExLTA1LTE2VDExOjM1OjIxKzAyOjAw9uVF5gAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxMS0wNS0xNlQxMTozNToyMSswMjowMIe4/VoAAAAASUVORK5CYII="
},
"$:/plugins/felixhayashi/vis/readme": {
"title": "$:/plugins/felixhayashi/vis/readme",
"text": "! TW5-Vis.js\n\nA tiddlywiki plugin for the vis.js library.\n\n---\n\n! Notes on Copyright\n\n!! TiddlyWiki\n\nCreated by Jeremy Ruston, (jeremy [at] jermolene [dot] com)\n\nCopyright © Jeremy Ruston 2004-2007 Copyright © UnaMesa Association 2007-2014\n\nPublished under the following [licenses](https://github.com/Jermolene/TiddlyWiki5/tree/master/licenses):\n\n1. BSD 3-clause \"New\" or \"Revised\" License (including any right to adopt any future version of a license if permitted)\n2. Creative Commons Attribution 3.0 (including any right to adopt any future version of a license if permitted)\n\n!! The **vis.js** library\n\nCopyright (c) 2014 [Almende B.V.](https://github.com/almende/vis)\n\nPublished under the following licenses:\n\n1. Apache License Version 2.0, January 2004 http://www.apache.org/licenses/\n2. MIT License (MIT)\n"
},
"$:/plugins/felixhayashi/vis/vis.css": {
"title": "$:/plugins/felixhayashi/vis/vis.css",
"type": "text/vnd.tiddlywiki",
"tags": "$:/tags/Stylesheet",
"text": "\\rules except list\n\n\\define datauri(title)\n<$macrocall $name=\"makedatauri\" type={{$title$!!type}} text={{$title$}}/>\n\\end\n\n.vis .overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10}.vis-active{box-shadow:0 0 10px #86d5f8}.vis [class*=\"span\"]{min-height:0;width:auto}div.vis-configuration{position:relative;display:block;float:left;font-size:12px}div.vis-configuration-wrapper{display:block;width:700px}div.vis-configuration-wrapper::after{clear:both;content:\"\";display:block}div.vis-configuration.vis-config-option-container{display:block;width:495px;background-color:#fff;border:2px solid #f7f8fa;border-radius:4px;margin-top:20px;left:10px;padding-left:5px}div.vis-configuration.vis-config-button{display:block;width:495px;height:25px;vertical-align:middle;line-height:25px;background-color:#f7f8fa;border:2px solid #ceced0;border-radius:4px;margin-top:20px;left:10px;padding-left:5px;cursor:pointer;margin-bottom:30px}div.vis-configuration.vis-config-button.hover{background-color:#4588e6;border:2px solid #214373;color:#fff}div.vis-configuration.vis-config-item{display:block;float:left;width:495px;height:25px;vertical-align:middle;line-height:25px}div.vis-configuration.vis-config-item.vis-config-s2{left:10px;background-color:#f7f8fa;padding-left:5px;border-radius:3px}div.vis-configuration.vis-config-item.vis-config-s3{left:20px;background-color:#e4e9f0;padding-left:5px;border-radius:3px}div.vis-configuration.vis-config-item.vis-config-s4{left:30px;background-color:#cfd8e6;padding-left:5px;border-radius:3px}div.vis-configuration.vis-config-header{font-size:18px;font-weight:bold}div.vis-configuration.vis-config-label{width:120px;height:25px;line-height:25px}div.vis-configuration.vis-config-label.vis-config-s3{width:110px}div.vis-configuration.vis-config-label.vis-config-s4{width:100px}div.vis-configuration.vis-config-colorBlock{top:1px;width:30px;height:19px;border:1px solid #444;border-radius:2px;padding:0;margin:0;cursor:pointer}input.vis-configuration.vis-config-checkbox{left:-5px}input.vis-configuration.vis-config-rangeinput{position:relative;top:-5px;width:60px;padding:1px;margin:0;pointer-events:none}input.vis-configuration.vis-config-range{-webkit-appearance:none;border:0 solid white;background-color:rgba(0,0,0,0);width:300px;height:20px}input.vis-configuration.vis-config-range::-webkit-slider-runnable-track{width:300px;height:5px;background:#dedede;background:-moz-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#dedede),color-stop(99%,#c8c8c8));background:-webkit-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-o-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-ms-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:linear-gradient(to bottom,#dedede 0,#c8c8c8 99%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#dedede',endColorstr='#c8c8c8',GradientType=0);border:1px solid #999;box-shadow:#aaa 0 0 3px 0;border-radius:3px}input.vis-configuration.vis-config-range::-webkit-slider-thumb{-webkit-appearance:none;border:1px solid #14334b;height:17px;width:17px;border-radius:50%;background:#3876c2;background:-moz-linear-gradient(top,#3876c2 0,#385380 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#3876c2),color-stop(100%,#385380));background:-webkit-linear-gradient(top,#3876c2 0,#385380 100%);background:-o-linear-gradient(top,#3876c2 0,#385380 100%);background:-ms-linear-gradient(top,#3876c2 0,#385380 100%);background:linear-gradient(to bottom,#3876c2 0,#385380 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#3876c2',endColorstr='#385380',GradientType=0);box-shadow:#111927 0 0 1px 0;margin-top:-7px}input.vis-configuration.vis-config-range:focus{outline:0}input.vis-configuration.vis-config-range:focus::-webkit-slider-runnable-track{background:#9d9d9d;background:-moz-linear-gradient(top,#9d9d9d 0,#c8c8c8 99%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#9d9d9d),color-stop(99%,#c8c8c8));background:-webkit-linear-gradient(top,#9d9d9d 0,#c8c8c8 99%);background:-o-linear-gradient(top,#9d9d9d 0,#c8c8c8 99%);background:-ms-linear-gradient(top,#9d9d9d 0,#c8c8c8 99%);background:linear-gradient(to bottom,#9d9d9d 0,#c8c8c8 99%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#9d9d9d',endColorstr='#c8c8c8',GradientType=0)}input.vis-configuration.vis-config-range::-moz-range-track{width:300px;height:10px;background:#dedede;background:-moz-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#dedede),color-stop(99%,#c8c8c8));background:-webkit-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-o-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-ms-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:linear-gradient(to bottom,#dedede 0,#c8c8c8 99%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#dedede',endColorstr='#c8c8c8',GradientType=0);border:1px solid #999;box-shadow:#aaa 0 0 3px 0;border-radius:3px}input.vis-configuration.vis-config-range::-moz-range-thumb{border:0;height:16px;width:16px;border-radius:50%;background:#385380}input.vis-configuration.vis-config-range:-moz-focusring{outline:1px solid white;outline-offset:-1px}input.vis-configuration.vis-config-range::-ms-track{width:300px;height:5px;background:transparent;border-color:transparent;border-width:6px 0;color:transparent}input.vis-configuration.vis-config-range::-ms-fill-lower{background:#777;border-radius:10px}input.vis-configuration.vis-config-range::-ms-fill-upper{background:#ddd;border-radius:10px}input.vis-configuration.vis-config-range::-ms-thumb{border:0;height:16px;width:16px;border-radius:50%;background:#385380}input.vis-configuration.vis-config-range:focus::-ms-fill-lower{background:#888}input.vis-configuration.vis-config-range:focus::-ms-fill-upper{background:#ccc}.vis-configuration-popup{position:absolute;background:rgba(57,76,89,0.85);border:2px solid #f2faff;line-height:30px;height:30px;width:150px;text-align:center;color:#fff;font-size:14px;border-radius:4px;-webkit-transition:opacity .3s ease-in-out;-moz-transition:opacity .3s ease-in-out;transition:opacity .3s ease-in-out}.vis-configuration-popup:after,.vis-configuration-popup:before{left:100%;top:50%;border:solid transparent;content:\" \";height:0;width:0;position:absolute;pointer-events:none}.vis-configuration-popup:after{border-color:rgba(136,183,213,0);border-left-color:rgba(57,76,89,0.85);border-width:8px;margin-top:-8px}.vis-configuration-popup:before{border-color:rgba(194,225,245,0);border-left-color:#f2faff;border-width:12px;margin-top:-12px}div.vis-tooltip{position:absolute;visibility:hidden;padding:5px;white-space:nowrap;font-family:verdana;font-size:14px;color:#000;background-color:#f5f4ed;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;border:1px solid #808074;box-shadow:3px 3px 10px rgba(0,0,0,0.2);pointer-events:none;z-index:5}div.vis-color-picker{position:absolute;top:0;left:30px;margin-top:-140px;margin-left:30px;width:310px;height:444px;z-index:1;padding:10px;border-radius:15px;background-color:#fff;display:none;box-shadow:rgba(0,0,0,0.5) 0 0 10px 0}div.vis-color-picker div.vis-arrow{position:absolute;top:147px;left:5px}div.vis-color-picker div.vis-arrow::after,div.vis-color-picker div.vis-arrow::before{right:100%;top:50%;border:solid transparent;content:\" \";height:0;width:0;position:absolute;pointer-events:none}div.vis-color-picker div.vis-arrow:after{border-color:rgba(255,255,255,0);border-right-color:#fff;border-width:30px;margin-top:-30px}div.vis-color-picker div.vis-color{position:absolute;width:289px;height:289px;cursor:pointer}div.vis-color-picker div.vis-brightness{position:absolute;top:313px}div.vis-color-picker div.vis-opacity{position:absolute;top:350px}div.vis-color-picker div.vis-selector{position:absolute;top:137px;left:137px;width:15px;height:15px;border-radius:15px;border:1px solid #fff;background:#4c4c4c;background:-moz-linear-gradient(top,#4c4c4c 0,#595959 12%,#666 25%,#474747 39%,#2c2c2c 50%,#000 51%,#111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#4c4c4c),color-stop(12%,#595959),color-stop(25%,#666),color-stop(39%,#474747),color-stop(50%,#2c2c2c),color-stop(51%,#000),color-stop(60%,#111),color-stop(76%,#2b2b2b),color-stop(91%,#1c1c1c),color-stop(100%,#131313));background:-webkit-linear-gradient(top,#4c4c4c 0,#595959 12%,#666 25%,#474747 39%,#2c2c2c 50%,#000 51%,#111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313 100%);background:-o-linear-gradient(top,#4c4c4c 0,#595959 12%,#666 25%,#474747 39%,#2c2c2c 50%,#000 51%,#111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313 100%);background:-ms-linear-gradient(top,#4c4c4c 0,#595959 12%,#666 25%,#474747 39%,#2c2c2c 50%,#000 51%,#111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313 100%);background:linear-gradient(to bottom,#4c4c4c 0,#595959 12%,#666 25%,#474747 39%,#2c2c2c 50%,#000 51%,#111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#4c4c4c',endColorstr='#131313',GradientType=0)}div.vis-color-picker div.vis-new-color{position:absolute;width:140px;height:20px;border:1px solid rgba(0,0,0,0.1);border-radius:5px;top:380px;left:159px;text-align:right;padding-right:2px;font-size:10px;color:rgba(0,0,0,0.4);vertical-align:middle;line-height:20px}div.vis-color-picker div.vis-initial-color{position:absolute;width:140px;height:20px;border:1px solid rgba(0,0,0,0.1);border-radius:5px;top:380px;left:10px;text-align:left;padding-left:2px;font-size:10px;color:rgba(0,0,0,0.4);vertical-align:middle;line-height:20px}div.vis-color-picker div.vis-label{position:absolute;width:300px;left:10px}div.vis-color-picker div.vis-label.vis-brightness{top:300px}div.vis-color-picker div.vis-label.vis-opacity{top:338px}div.vis-color-picker div.vis-button{position:absolute;width:68px;height:25px;border-radius:10px;vertical-align:middle;text-align:center;line-height:25px;top:410px;border:2px solid #d9d9d9;background-color:#f7f7f7;cursor:pointer}div.vis-color-picker div.vis-button.vis-cancel{left:5px}div.vis-color-picker div.vis-button.vis-load{left:82px}div.vis-color-picker div.vis-button.vis-apply{left:159px}div.vis-color-picker div.vis-button.vis-save{left:236px}div.vis-color-picker input.vis-range{width:290px;height:20px}div.vis-network div.vis-manipulation{box-sizing:content-box;border-width:0;border-bottom:1px;border-style:solid;border-color:#d6d9d8;background:#fff;background:-moz-linear-gradient(top,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#fff),color-stop(48%,#fcfcfc),color-stop(50%,#fafafa),color-stop(100%,#fcfcfc));background:-webkit-linear-gradient(top,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%);background:-o-linear-gradient(top,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%);background:-ms-linear-gradient(top,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%);background:linear-gradient(to bottom,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff',endColorstr='#fcfcfc',GradientType=0);padding-top:4px;position:absolute;left:0;top:0;width:100%;height:28px}div.vis-network div.vis-edit-mode{position:absolute;left:0;top:5px;height:30px}div.vis-network div.vis-close{position:absolute;right:0;top:0;width:30px;height:30px;background-position:20px 3px;background-repeat:no-repeat;background-image:url(<<datauri \"$:/plugins/felixhayashi/vis/img/network/cross.png\">>);cursor:pointer;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}div.vis-network div.vis-close:hover{opacity:.6}div.vis-network div.vis-manipulation div.vis-button,div.vis-network div.vis-edit-mode div.vis-button{float:left;font-family:verdana;font-size:12px;-moz-border-radius:15px;border-radius:15px;display:inline-block;background-position:0 0;background-repeat:no-repeat;height:24px;margin-left:10px;cursor:pointer;padding:0 8px 0 8px;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}div.vis-network div.vis-manipulation div.vis-button:hover{box-shadow:1px 1px 8px rgba(0,0,0,0.20)}div.vis-network div.vis-manipulation div.vis-button:active{box-shadow:1px 1px 8px rgba(0,0,0,0.50)}div.vis-network div.vis-manipulation div.vis-button.vis-back{background-image:url(<<datauri \"$:/plugins/felixhayashi/vis/img/network/backIcon.png\">>)}div.vis-network div.vis-manipulation div.vis-button.vis-none:hover{box-shadow:1px 1px 8px rgba(0,0,0,0.0);cursor:default}div.vis-network div.vis-manipulation div.vis-button.vis-none:active{box-shadow:1px 1px 8px rgba(0,0,0,0.0)}div.vis-network div.vis-manipulation div.vis-button.vis-none{padding:0}div.vis-network div.vis-manipulation div.notification{margin:2px;font-weight:bold}div.vis-network div.vis-manipulation div.vis-button.vis-add{background-image:url(<<datauri \"$:/plugins/felixhayashi/vis/img/network/addNodeIcon.png\">>)}div.vis-network div.vis-manipulation div.vis-button.vis-edit,div.vis-network div.vis-edit-mode div.vis-button.vis-edit{background-image:url(<<datauri \"$:/plugins/felixhayashi/vis/img/network/editIcon.png\">>)}div.vis-network div.vis-edit-mode div.vis-button.vis-edit.vis-edit-mode{background-color:#fcfcfc;border:1px solid #ccc}div.vis-network div.vis-manipulation div.vis-button.vis-connect{background-image:url(<<datauri \"$:/plugins/felixhayashi/vis/img/network/connectIcon.png\">>)}div.vis-network div.vis-manipulation div.vis-button.vis-delete{background-image:url(<<datauri \"$:/plugins/felixhayashi/vis/img/network/deleteIcon.png\">>)}div.vis-network div.vis-manipulation div.vis-label,div.vis-network div.vis-edit-mode div.vis-label{margin:0 0 0 23px;line-height:25px}div.vis-network div.vis-manipulation div.vis-separator-line{float:left;display:inline-block;width:1px;height:21px;background-color:#bdbdbd;margin:0 7px 0 15px}div.vis-network div.vis-navigation div.vis-button{width:34px;height:34px;-moz-border-radius:17px;border-radius:17px;position:absolute;display:inline-block;background-position:2px 2px;background-repeat:no-repeat;cursor:pointer;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}div.vis-network div.vis-navigation div.vis-button:hover{box-shadow:0 0 3px 3px rgba(56,207,21,0.30)}div.vis-network div.vis-navigation div.vis-button:active{box-shadow:0 0 1px 3px rgba(56,207,21,0.95)}div.vis-network div.vis-navigation div.vis-button.vis-up{background-image:url(<<datauri \"$:/plugins/felixhayashi/vis/img/network/upArrow.png\">>);bottom:50px;left:55px}div.vis-network div.vis-navigation div.vis-button.vis-down{background-image:url(<<datauri \"$:/plugins/felixhayashi/vis/img/network/downArrow.png\">>);bottom:10px;left:55px}div.vis-network div.vis-navigation div.vis-button.vis-left{background-image:url(<<datauri \"$:/plugins/felixhayashi/vis/img/network/leftArrow.png\">>);bottom:10px;left:15px}div.vis-network div.vis-navigation div.vis-button.vis-right{background-image:url(<<datauri \"$:/plugins/felixhayashi/vis/img/network/rightArrow.png\">>);bottom:10px;left:95px}div.vis-network div.vis-navigation div.vis-button.vis-zoomIn{background-image:url(<<datauri \"$:/plugins/felixhayashi/vis/img/network/plus.png\">>);bottom:10px;right:15px}div.vis-network div.vis-navigation div.vis-button.vis-zoomOut{background-image:url(<<datauri \"$:/plugins/felixhayashi/vis/img/network/minus.png\">>);bottom:10px;right:55px}div.vis-network div.vis-navigation div.vis-button.vis-zoomExtends{background-image:url(<<datauri \"$:/plugins/felixhayashi/vis/img/network/zoomExtends.png\">>);bottom:50px;right:15px}.vis-current-time{background-color:#ff7f6e;width:2px;z-index:1;pointer-events:none}.vis-rolling-mode-btn{height:40px;width:40px;position:absolute;top:7px;right:20px;border-radius:50%;font-size:28px;cursor:pointer;opacity:.8;color:white;font-weight:bold;text-align:center;background:#3876c2}.vis-rolling-mode-btn:before{content:\"\\26F6\"}.vis-rolling-mode-btn:hover{opacity:1}.vis-custom-time{background-color:#6e94ff;width:2px;cursor:move;z-index:1}.vis-panel.vis-background.vis-horizontal .vis-grid.vis-horizontal{position:absolute;width:100%;height:0;border-bottom:1px solid}.vis-panel.vis-background.vis-horizontal .vis-grid.vis-minor{border-color:#e5e5e5}.vis-panel.vis-background.vis-horizontal .vis-grid.vis-major{border-color:#bfbfbf}.vis-data-axis .vis-y-axis.vis-major{width:100%;position:absolute;color:#4d4d4d;white-space:nowrap}.vis-data-axis .vis-y-axis.vis-major.vis-measure{padding:0;margin:0;border:0;visibility:hidden;width:auto}.vis-data-axis .vis-y-axis.vis-minor{position:absolute;width:100%;color:#bebebe;white-space:nowrap}.vis-data-axis .vis-y-axis.vis-minor.vis-measure{padding:0;margin:0;border:0;visibility:hidden;width:auto}.vis-data-axis .vis-y-axis.vis-title{position:absolute;color:#4d4d4d;white-space:nowrap;bottom:20px;text-align:center}.vis-data-axis .vis-y-axis.vis-title.vis-measure{padding:0;margin:0;visibility:hidden;width:auto}.vis-data-axis .vis-y-axis.vis-title.vis-left{bottom:0;-webkit-transform-origin:left top;-moz-transform-origin:left top;-ms-transform-origin:left top;-o-transform-origin:left top;transform-origin:left bottom;-webkit-transform:rotate(-90deg);-moz-transform:rotate(-90deg);-ms-transform:rotate(-90deg);-o-transform:rotate(-90deg);transform:rotate(-90deg)}.vis-data-axis .vis-y-axis.vis-title.vis-right{bottom:0;-webkit-transform-origin:right bottom;-moz-transform-origin:right bottom;-ms-transform-origin:right bottom;-o-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.vis-legend{background-color:rgba(247,252,255,0.65);padding:5px;border:1px solid #b3b3b3;box-shadow:2px 2px 10px rgba(154,154,154,0.55)}.vis-legend-text{white-space:nowrap;display:inline-block}.vis-item{position:absolute;color:#1a1a1a;border-color:#97b0f8;border-width:1px;background-color:#d5ddf6;display:inline-block;z-index:1}.vis-item.vis-selected{border-color:#ffc200;background-color:#fff785;z-index:2}.vis-editable.vis-selected{cursor:move}.vis-item.vis-point.vis-selected{background-color:#fff785}.vis-item.vis-box{text-align:center;border-style:solid;border-radius:2px}.vis-item.vis-point{background:0}.vis-item.vis-dot{position:absolute;padding:0;border-width:4px;border-style:solid;border-radius:4px}.vis-item.vis-range{border-style:solid;border-radius:2px;box-sizing:border-box}.vis-item.vis-background{border:0;background-color:rgba(213,221,246,0.4);box-sizing:border-box;padding:0;margin:0}.vis-item .vis-item-overflow{position:relative;width:100%;height:100%;padding:0;margin:0;overflow:hidden}.vis-item-visible-frame{white-space:nowrap}.vis-item.vis-range .vis-item-content{position:relative;display:inline-block}.vis-item.vis-background .vis-item-content{position:absolute;display:inline-block}.vis-item.vis-line{padding:0;position:absolute;width:0;border-left-width:1px;border-left-style:solid}.vis-item .vis-item-content{white-space:nowrap;box-sizing:border-box;padding:5px}.vis-item .vis-onUpdateTime-tooltip{position:absolute;background:#4f81bd;color:white;width:200px;text-align:center;white-space:nowrap;padding:5px;border-radius:1px;transition:.4s;-o-transition:.4s;-moz-transition:.4s;-webkit-transition:.4s}.vis-item .vis-delete,.vis-item .vis-delete-rtl{position:absolute;top:0;width:24px;height:24px;box-sizing:border-box;padding:0 5px;cursor:pointer;-webkit-transition:background .2s linear;-moz-transition:background .2s linear;-ms-transition:background .2s linear;-o-transition:background .2s linear;transition:background .2s linear}.vis-item .vis-delete{right:-24px}.vis-item .vis-delete-rtl{left:-24px}.vis-item .vis-delete:after,.vis-item .vis-delete-rtl:after{content:\"\\00D7\";color:red;font-family:arial,sans-serif;font-size:22px;font-weight:bold;-webkit-transition:color .2s linear;-moz-transition:color .2s linear;-ms-transition:color .2s linear;-o-transition:color .2s linear;transition:color .2s linear}.vis-item .vis-delete:hover,.vis-item .vis-delete-rtl:hover{background:red}.vis-item .vis-delete:hover:after,.vis-item .vis-delete-rtl:hover:after{color:white}.vis-item .vis-drag-center{position:absolute;width:100%;height:100%;top:0;left:0;cursor:move}.vis-item.vis-range .vis-drag-left{position:absolute;width:24px;max-width:20%;min-width:2px;height:100%;top:0;left:-4px;cursor:w-resize}.vis-item.vis-range .vis-drag-right{position:absolute;width:24px;max-width:20%;min-width:2px;height:100%;top:0;right:-4px;cursor:e-resize}.vis-range.vis-item.vis-readonly .vis-drag-left,.vis-range.vis-item.vis-readonly .vis-drag-right{cursor:auto}.vis-itemset{position:relative;padding:0;margin:0;box-sizing:border-box}.vis-itemset .vis-background,.vis-itemset .vis-foreground{position:absolute;width:100%;height:100%;overflow:visible}.vis-axis{position:absolute;width:100%;height:0;left:0;z-index:1}.vis-foreground .vis-group{position:relative;box-sizing:border-box;border-bottom:1px solid #bfbfbf}.vis-foreground .vis-group:last-child{border-bottom:0}.vis-nesting-group{cursor:pointer}.vis-nested-group{background:#f5f5f5}.vis-label.vis-nesting-group.expanded:before{content:\"\\25BC\"}.vis-label.vis-nesting-group.collapsed-rtl:before{content:\"\\25C0\"}.vis-label.vis-nesting-group.collapsed:before{content:\"\\25B6\"}.vis-overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10}.vis-labelset{position:relative;overflow:hidden;box-sizing:border-box}.vis-labelset .vis-label{position:relative;left:0;top:0;width:100%;color:#4d4d4d;box-sizing:border-box}.vis-labelset .vis-label{border-bottom:1px solid #bfbfbf}.vis-labelset .vis-label.draggable{cursor:pointer}.vis-labelset .vis-label:last-child{border-bottom:0}.vis-labelset .vis-label .vis-inner{display:inline-block;padding:5px}.vis-labelset .vis-label .vis-inner.vis-hidden{padding:0}.vis-panel{position:absolute;padding:0;margin:0;box-sizing:border-box}.vis-panel.vis-center,.vis-panel.vis-left,.vis-panel.vis-right,.vis-panel.vis-top,.vis-panel.vis-bottom{border:1px #bfbfbf}.vis-panel.vis-center,.vis-panel.vis-left,.vis-panel.vis-right{border-top-style:solid;border-bottom-style:solid;overflow:hidden}.vis-left.vis-panel.vis-vertical-scroll,.vis-right.vis-panel.vis-vertical-scroll{height:100%;overflow-x:hidden;overflow-y:scroll}.vis-left.vis-panel.vis-vertical-scroll{direction:rtl}.vis-left.vis-panel.vis-vertical-scroll .vis-content{direction:ltr}.vis-right.vis-panel.vis-vertical-scroll{direction:ltr}.vis-right.vis-panel.vis-vertical-scroll .vis-content{direction:rtl}.vis-panel.vis-center,.vis-panel.vis-top,.vis-panel.vis-bottom{border-left-style:solid;border-right-style:solid}.vis-background{overflow:hidden}.vis-panel>.vis-content{position:relative}.vis-panel .vis-shadow{position:absolute;width:100%;height:1px;box-shadow:0 0 10px rgba(0,0,0,0.8)}.vis-panel .vis-shadow.vis-top{top:-1px;left:0}.vis-panel .vis-shadow.vis-bottom{bottom:-1px;left:0}.vis-graph-group0{fill:#4f81bd;fill-opacity:0;stroke-width:2px;stroke:#4f81bd}.vis-graph-group1{fill:#f79646;fill-opacity:0;stroke-width:2px;stroke:#f79646}.vis-graph-group2{fill:#8c51cf;fill-opacity:0;stroke-width:2px;stroke:#8c51cf}.vis-graph-group3{fill:#75c841;fill-opacity:0;stroke-width:2px;stroke:#75c841}.vis-graph-group4{fill:#ff0100;fill-opacity:0;stroke-width:2px;stroke:#ff0100}.vis-graph-group5{fill:#37d8e6;fill-opacity:0;stroke-width:2px;stroke:#37d8e6}.vis-graph-group6{fill:#042662;fill-opacity:0;stroke-width:2px;stroke:#042662}.vis-graph-group7{fill:#00ff26;fill-opacity:0;stroke-width:2px;stroke:#00ff26}.vis-graph-group8{fill:#f0f;fill-opacity:0;stroke-width:2px;stroke:#f0f}.vis-graph-group9{fill:#8f3938;fill-opacity:0;stroke-width:2px;stroke:#8f3938}.vis-timeline .vis-fill{fill-opacity:.1;stroke:none}.vis-timeline .vis-bar{fill-opacity:.5;stroke-width:1px}.vis-timeline .vis-point{stroke-width:2px;fill-opacity:1.0}.vis-timeline .vis-legend-background{stroke-width:1px;fill-opacity:.9;fill:#fff;stroke:#c2c2c2}.vis-timeline .vis-outline{stroke-width:1px;fill-opacity:1;fill:#fff;stroke:#e5e5e5}.vis-timeline .vis-icon-fill{fill-opacity:.3;stroke:none}.vis-time-axis{position:relative;overflow:hidden}.vis-time-axis.vis-foreground{top:0;left:0;width:100%}.vis-time-axis.vis-background{position:absolute;top:0;left:0;width:100%;height:100%}.vis-time-axis .vis-text{position:absolute;color:#4d4d4d;padding:3px;overflow:hidden;box-sizing:border-box;white-space:nowrap}.vis-time-axis .vis-text.vis-measure{position:absolute;padding-left:0;padding-right:0;margin-left:0;margin-right:0;visibility:hidden}.vis-time-axis .vis-grid.vis-vertical{position:absolute;border-left:1px solid}.vis-time-axis .vis-grid.vis-vertical-rtl{position:absolute;border-right:1px solid}.vis-time-axis .vis-grid.vis-minor{border-color:#e5e5e5}.vis-time-axis .vis-grid.vis-major{border-color:#bfbfbf}.vis-timeline{position:relative;border:1px solid #bfbfbf;overflow:hidden;padding:0;margin:0;box-sizing:border-box}"
},
"$:/plugins/felixhayashi/vis/vis.js": {
"title": "$:/plugins/felixhayashi/vis/vis.js",
"text": "/*\\\ntitle: $:/plugins/felixhayashi/vis/vis.js\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\\*/\n\n/*** TO AVOID STRANGE LIB ERRORS FROM BUBBLING UP *****************/\n\nif($tw.boot.tasks.trapErrors) {\n\n var defaultHandler = window.onerror;\n window.onerror = function(errorMsg, url, lineNumber) {\n \n if(errorMsg.indexOf(\"NS_ERROR_NOT_AVAILABLE\") !== -1\n && url == \"$:/plugins/felixhayashi/vis/vis.js\") {\n \n var text = \"Strange firefox related vis.js error (see #125)\";\n console.error(text, arguments);\n \n } else if(errorMsg.indexOf(\"Permission denied to access property\") !== -1) {\n \n var text = \"Strange firefox related vis.js error (see #163)\";\n console.error(text, arguments);\n \n } else if(defaultHandler) {\n \n defaultHandler.apply(this, arguments);\n \n }\n \n }\n \n}\n\n/******************************************************************/\n\n/**\n * vis.js\n * https://github.com/almende/vis\n *\n * A dynamic, browser-based visualization library.\n *\n * @version 4.21.0\n * @date 2017-10-12\n *\n * @license\n * Copyright (C) 2011-2017 Almende B.V, http://almende.com\n *\n * Vis.js is dual licensed under both\n *\n * * The Apache 2.0 License\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * and\n *\n * * The MIT License\n * http://opensource.org/licenses/MIT\n *\n * Vis.js may be distributed under either license.\n */\n\"use strict\";(function webpackUniversalModuleDefinition(root,factory){if(typeof exports===\"object\"&&typeof module===\"object\")module.exports=factory();else if(typeof define===\"function\"&&define.amd)define([],factory);else if(typeof exports===\"object\")exports[\"vis\"]=factory();else root[\"vis\"]=factory()})(this,function(){return function(modules){var installedModules={};function __webpack_require__(moduleId){if(installedModules[moduleId]){return installedModules[moduleId].exports}var module=installedModules[moduleId]={i:moduleId,l:false,exports:{}};modules[moduleId].call(module.exports,module,module.exports,__webpack_require__);module.l=true;return module.exports}__webpack_require__.m=modules;__webpack_require__.c=installedModules;__webpack_require__.d=function(exports,name,getter){if(!__webpack_require__.o(exports,name)){Object.defineProperty(exports,name,{configurable:false,enumerable:true,get:getter})}};__webpack_require__.n=function(module){var getter=module&&module.__esModule?function getDefault(){return module[\"default\"]}:function getModuleExports(){return module};__webpack_require__.d(getter,\"a\",getter);return getter};__webpack_require__.o=function(object,property){return Object.prototype.hasOwnProperty.call(object,property)};__webpack_require__.p=\"\";return __webpack_require__(__webpack_require__.s=123)}([function(module,exports,__webpack_require__){\"use strict\";exports.__esModule=true;exports.default=function(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError(\"Cannot call a class as a function\")}}},function(module,exports,__webpack_require__){\"use strict\";exports.__esModule=true;var _defineProperty=__webpack_require__(169);var _defineProperty2=_interopRequireDefault(_defineProperty);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}exports.default=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if(\"value\"in descriptor)descriptor.writable=true;(0,_defineProperty2.default)(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor}}()},function(module,exports,__webpack_require__){\"use strict\";var _getIterator2=__webpack_require__(77);var _getIterator3=_interopRequireDefault(_getIterator2);var _create=__webpack_require__(29);var _create2=_interopRequireDefault(_create);var _keys=__webpack_require__(8);var _keys2=_interopRequireDefault(_keys);var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var moment=__webpack_require__(9);var uuid=__webpack_require__(157);exports.isNumber=function(object){return object instanceof Number||typeof object==\"number\"};exports.recursiveDOMDelete=function(DOMobject){if(DOMobject){while(DOMobject.hasChildNodes()===true){exports.recursiveDOMDelete(DOMobject.firstChild);DOMobject.removeChild(DOMobject.firstChild)}}};exports.giveRange=function(min,max,total,value){if(max==min){return.5}else{var scale=1/(max-min);return Math.max(0,(value-min)*scale)}};exports.isString=function(object){return object instanceof String||typeof object==\"string\"};exports.isDate=function(object){if(object instanceof Date){return true}else if(exports.isString(object)){var match=ASPDateRegex.exec(object);if(match){return true}else if(!isNaN(Date.parse(object))){return true}}return false};exports.randomUUID=function(){return uuid.v4()};exports.assignAllKeys=function(obj,value){for(var prop in obj){if(obj.hasOwnProperty(prop)){if((0,_typeof3[\"default\"])(obj[prop])!==\"object\"){obj[prop]=value}}}};function copyOrDelete(a,b,prop,allowDeletion){var doDeletion=false;if(allowDeletion===true){doDeletion=b[prop]===null&&a[prop]!==undefined}if(doDeletion){delete a[prop]}else{a[prop]=b[prop]}}exports.fillIfDefined=function(a,b){var allowDeletion=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;for(var prop in a){if(b[prop]!==undefined){if(b[prop]===null||(0,_typeof3[\"default\"])(b[prop])!==\"object\"){copyOrDelete(a,b,prop,allowDeletion)}else{if((0,_typeof3[\"default\"])(a[prop])===\"object\"){exports.fillIfDefined(a[prop],b[prop],allowDeletion)}}}}};exports.extend=function(a,b){for(var i=1;i<arguments.length;i++){var other=arguments[i];for(var prop in other){if(other.hasOwnProperty(prop)){a[prop]=other[prop]}}}return a};exports.selectiveExtend=function(props,a,b){if(!Array.isArray(props)){throw new Error(\"Array with property names expected as first argument\")}for(var i=2;i<arguments.length;i++){var other=arguments[i];for(var p=0;p<props.length;p++){var prop=props[p];if(other&&other.hasOwnProperty(prop)){a[prop]=other[prop]}}}return a};exports.selectiveDeepExtend=function(props,a,b){var allowDeletion=arguments.length>3&&arguments[3]!==undefined?arguments[3]:false;if(Array.isArray(b)){throw new TypeError(\"Arrays are not supported by deepExtend\")}for(var p=0;p<props.length;p++){var prop=props[p];if(b.hasOwnProperty(prop)){if(b[prop]&&b[prop].constructor===Object){if(a[prop]===undefined){a[prop]={}}if(a[prop].constructor===Object){exports.deepExtend(a[prop],b[prop],false,allowDeletion)}else{copyOrDelete(a,b,prop,allowDeletion)}}else if(Array.isArray(b[prop])){throw new TypeError(\"Arrays are not supported by deepExtend\")}else{copyOrDelete(a,b,prop,allowDeletion)}}}return a};exports.selectiveNotDeepExtend=function(propsToExclude,a,b){var allowDeletion=arguments.length>3&&arguments[3]!==undefined?arguments[3]:false;if(Array.isArray(b)){throw new TypeError(\"Arrays are not supported by deepExtend\")}for(var prop in b){if(!b.hasOwnProperty(prop))continue;if(propsToExclude.indexOf(prop)!==-1)continue;if(b[prop]&&b[prop].constructor===Object){if(a[prop]===undefined){a[prop]={}}if(a[prop].constructor===Object){exports.deepExtend(a[prop],b[prop])}else{copyOrDelete(a,b,prop,allowDeletion)}}else if(Array.isArray(b[prop])){a[prop]=[];for(var i=0;i<b[prop].length;i++){a[prop].push(b[prop][i])}}else{copyOrDelete(a,b,prop,allowDeletion)}}return a};exports.deepExtend=function(a,b){var protoExtend=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;var allowDeletion=arguments.length>3&&arguments[3]!==undefined?arguments[3]:false;for(var prop in b){if(b.hasOwnProperty(prop)||protoExtend===true){if(b[prop]&&b[prop].constructor===Object){if(a[prop]===undefined){a[prop]={}}if(a[prop].constructor===Object){exports.deepExtend(a[prop],b[prop],protoExtend)}else{copyOrDelete(a,b,prop,allowDeletion)}}else if(Array.isArray(b[prop])){a[prop]=[];for(var i=0;i<b[prop].length;i++){a[prop].push(b[prop][i])}}else{copyOrDelete(a,b,prop,allowDeletion)}}}return a};exports.equalArray=function(a,b){if(a.length!=b.length)return false;for(var i=0,len=a.length;i<len;i++){if(a[i]!=b[i])return false}return true};exports.convert=function(object,type){var match;if(object===undefined){return undefined}if(object===null){return null}if(!type){return object}if(!(typeof type===\"string\")&&!(type instanceof String)){throw new Error(\"Type must be a string\")}switch(type){case\"boolean\":case\"Boolean\":return Boolean(object);case\"number\":case\"Number\":if(exports.isString(object)&&!isNaN(Date.parse(object))){return moment(object).valueOf()}else{return Number(object.valueOf())}case\"string\":case\"String\":return String(object);case\"Date\":if(exports.isNumber(object)){return new Date(object)}if(object instanceof Date){return new Date(object.valueOf())}else if(moment.isMoment(object)){return new Date(object.valueOf())}if(exports.isString(object)){match=ASPDateRegex.exec(object);if(match){return new Date(Number(match[1]))}else{return moment(new Date(object)).toDate()}}else{throw new Error(\"Cannot convert object of type \"+exports.getType(object)+\" to type Date\")}case\"Moment\":if(exports.isNumber(object)){return moment(object)}if(object instanceof Date){return moment(object.valueOf())}else if(moment.isMoment(object)){return moment(object)}if(exports.isString(object)){match=ASPDateRegex.exec(object);if(match){return moment(Number(match[1]))}else{return moment(object)}}else{throw new Error(\"Cannot convert object of type \"+exports.getType(object)+\" to type Date\")}case\"ISODate\":if(exports.isNumber(object)){return new Date(object)}else if(object instanceof Date){return object.toISOString()}else if(moment.isMoment(object)){return object.toDate().toISOString()}else if(exports.isString(object)){match=ASPDateRegex.exec(object);if(match){return new Date(Number(match[1])).toISOString()}else{return moment(object).format()}}else{throw new Error(\"Cannot convert object of type \"+exports.getType(object)+\" to type ISODate\")}case\"ASPDate\":if(exports.isNumber(object)){return\"/Date(\"+object+\")/\"}else if(object instanceof Date){return\"/Date(\"+object.valueOf()+\")/\"}else if(exports.isString(object)){match=ASPDateRegex.exec(object);var value;if(match){value=new Date(Number(match[1])).valueOf()}else{value=new Date(object).valueOf()}return\"/Date(\"+value+\")/\"}else{throw new Error(\"Cannot convert object of type \"+exports.getType(object)+\" to type ASPDate\")}default:throw new Error('Unknown type \"'+type+'\"')}};var ASPDateRegex=/^\\/?Date\\((\\-?\\d+)/i;exports.getType=function(object){var type=typeof object===\"undefined\"?\"undefined\":(0,_typeof3[\"default\"])(object);if(type==\"object\"){if(object===null){return\"null\"}if(object instanceof Boolean){return\"Boolean\"}if(object instanceof Number){return\"Number\"}if(object instanceof String){return\"String\"}if(Array.isArray(object)){return\"Array\"}if(object instanceof Date){return\"Date\"}return\"Object\"}else if(type==\"number\"){return\"Number\"}else if(type==\"boolean\"){return\"Boolean\"}else if(type==\"string\"){return\"String\"}else if(type===undefined){return\"undefined\"}return type};exports.copyAndExtendArray=function(arr,newValue){var newArr=[];for(var i=0;i<arr.length;i++){newArr.push(arr[i])}newArr.push(newValue);return newArr};exports.copyArray=function(arr){var newArr=[];for(var i=0;i<arr.length;i++){newArr.push(arr[i])}return newArr};exports.getAbsoluteLeft=function(elem){return elem.getBoundingClientRect().left};exports.getAbsoluteRight=function(elem){return elem.getBoundingClientRect().right};exports.getAbsoluteTop=function(elem){return elem.getBoundingClientRect().top};exports.addClassName=function(elem,classNames){var classes=elem.className.split(\" \");var newClasses=classNames.split(\" \");classes=classes.concat(newClasses.filter(function(className){return classes.indexOf(className)<0}));elem.className=classes.join(\" \")};exports.removeClassName=function(elem,classNames){var classes=elem.className.split(\" \");var oldClasses=classNames.split(\" \");classes=classes.filter(function(className){return oldClasses.indexOf(className)<0});elem.className=classes.join(\" \")};exports.forEach=function(object,callback){var i,len;if(Array.isArray(object)){for(i=0,len=object.length;i<len;i++){callback(object[i],i,object)}}else{for(i in object){if(object.hasOwnProperty(i)){callback(object[i],i,object)}}}};exports.toArray=function(object){var array=[];for(var prop in object){if(object.hasOwnProperty(prop))array.push(object[prop])}return array};exports.updateProperty=function(object,key,value){if(object[key]!==value){object[key]=value;return true}else{return false}};exports.throttle=function(fn){var scheduled=false;return function throttled(){if(!scheduled){scheduled=true;requestAnimationFrame(function(){scheduled=false;fn()})}}};exports.addEventListener=function(element,action,listener,useCapture){if(element.addEventListener){if(useCapture===undefined)useCapture=false;if(action===\"mousewheel\"&&navigator.userAgent.indexOf(\"Firefox\")>=0){action=\"DOMMouseScroll\"}element.addEventListener(action,listener,useCapture)}else{element.attachEvent(\"on\"+action,listener)}};exports.removeEventListener=function(element,action,listener,useCapture){if(element.removeEventListener){if(useCapture===undefined)useCapture=false;if(action===\"mousewheel\"&&navigator.userAgent.indexOf(\"Firefox\")>=0){action=\"DOMMouseScroll\"}element.removeEventListener(action,listener,useCapture)}else{element.detachEvent(\"on\"+action,listener)}};exports.preventDefault=function(event){if(!event)event=window.event;if(event.preventDefault){event.preventDefault()}else{event.returnValue=false}};exports.getTarget=function(event){if(!event){event=window.event}var target;if(event.target){target=event.target}else if(event.srcElement){target=event.srcElement}if(target.nodeType!=undefined&&target.nodeType==3){target=target.parentNode}return target};exports.hasParent=function(element,parent){var e=element;while(e){if(e===parent){return true}e=e.parentNode}return false};exports.option={};exports.option.asBoolean=function(value,defaultValue){if(typeof value==\"function\"){value=value()}if(value!=null){return value!=false}return defaultValue||null};exports.option.asNumber=function(value,defaultValue){if(typeof value==\"function\"){value=value()}if(value!=null){return Number(value)||defaultValue||null}return defaultValue||null};exports.option.asString=function(value,defaultValue){if(typeof value==\"function\"){value=value()}if(value!=null){return String(value)}return defaultValue||null};exports.option.asSize=function(value,defaultValue){if(typeof value==\"function\"){value=value()}if(exports.isString(value)){return value}else if(exports.isNumber(value)){return value+\"px\"}else{return defaultValue||null}};exports.option.asElement=function(value,defaultValue){if(typeof value==\"function\"){value=value()}return value||defaultValue||null};exports.hexToRGB=function(hex){var shorthandRegex=/^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i;hex=hex.replace(shorthandRegex,function(m,r,g,b){return r+r+g+g+b+b});var result=/^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);return result?{r:parseInt(result[1],16),g:parseInt(result[2],16),b:parseInt(result[3],16)}:null};exports.overrideOpacity=function(color,opacity){var rgb;if(color.indexOf(\"rgba\")!=-1){return color}else if(color.indexOf(\"rgb\")!=-1){rgb=color.substr(color.indexOf(\"(\")+1).replace(\")\",\"\").split(\",\");return\"rgba(\"+rgb[0]+\",\"+rgb[1]+\",\"+rgb[2]+\",\"+opacity+\")\"}else{rgb=exports.hexToRGB(color);if(rgb==null){return color}else{return\"rgba(\"+rgb.r+\",\"+rgb.g+\",\"+rgb.b+\",\"+opacity+\")\"}}};exports.RGBToHex=function(red,green,blue){return\"#\"+((1<<24)+(red<<16)+(green<<8)+blue).toString(16).slice(1)};exports.parseColor=function(color){var c;if(exports.isString(color)===true){if(exports.isValidRGB(color)===true){var rgb=color.substr(4).substr(0,color.length-5).split(\",\").map(function(value){return parseInt(value)});color=exports.RGBToHex(rgb[0],rgb[1],rgb[2])}if(exports.isValidHex(color)===true){var hsv=exports.hexToHSV(color);var lighterColorHSV={h:hsv.h,s:hsv.s*.8,v:Math.min(1,hsv.v*1.02)};var darkerColorHSV={h:hsv.h,s:Math.min(1,hsv.s*1.25),v:hsv.v*.8};var darkerColorHex=exports.HSVToHex(darkerColorHSV.h,darkerColorHSV.s,darkerColorHSV.v);var lighterColorHex=exports.HSVToHex(lighterColorHSV.h,lighterColorHSV.s,lighterColorHSV.v);c={background:color,border:darkerColorHex,highlight:{background:lighterColorHex,border:darkerColorHex},hover:{background:lighterColorHex,border:darkerColorHex}}}else{c={background:color,border:color,highlight:{background:color,border:color},hover:{background:color,border:color}}}}else{c={};c.background=color.background||undefined;c.border=color.border||undefined;if(exports.isString(color.highlight)){c.highlight={border:color.highlight,background:color.highlight}}else{c.highlight={};c.highlight.background=color.highlight&&color.highlight.background||undefined;c.highlight.border=color.highlight&&color.highlight.border||undefined}if(exports.isString(color.hover)){c.hover={border:color.hover,background:color.hover}}else{c.hover={};c.hover.background=color.hover&&color.hover.background||undefined;c.hover.border=color.hover&&color.hover.border||undefined}}return c};exports.RGBToHSV=function(red,green,blue){red=red/255;green=green/255;blue=blue/255;var minRGB=Math.min(red,Math.min(green,blue));var maxRGB=Math.max(red,Math.max(green,blue));if(minRGB==maxRGB){return{h:0,s:0,v:minRGB}}var d=red==minRGB?green-blue:blue==minRGB?red-green:blue-red;var h=red==minRGB?3:blue==minRGB?1:5;var hue=60*(h-d/(maxRGB-minRGB))/360;var saturation=(maxRGB-minRGB)/maxRGB;var value=maxRGB;return{h:hue,s:saturation,v:value}};var cssUtil={split:function split(cssText){var styles={};cssText.split(\";\").forEach(function(style){if(style.trim()!=\"\"){var parts=style.split(\":\");var key=parts[0].trim();var value=parts[1].trim();styles[key]=value}});return styles},join:function join(styles){return(0,_keys2[\"default\"])(styles).map(function(key){return key+\": \"+styles[key]}).join(\"; \")}};exports.addCssText=function(element,cssText){var currentStyles=cssUtil.split(element.style.cssText);var newStyles=cssUtil.split(cssText);var styles=exports.extend(currentStyles,newStyles);element.style.cssText=cssUtil.join(styles)};exports.removeCssText=function(element,cssText){var styles=cssUtil.split(element.style.cssText);var removeStyles=cssUtil.split(cssText);for(var key in removeStyles){if(removeStyles.hasOwnProperty(key)){delete styles[key]}}element.style.cssText=cssUtil.join(styles)};exports.HSVToRGB=function(h,s,v){var r,g,b;var i=Math.floor(h*6);var f=h*6-i;var p=v*(1-s);var q=v*(1-f*s);var t=v*(1-(1-f)*s);switch(i%6){case 0:r=v,g=t,b=p;break;case 1:r=q,g=v,b=p;break;case 2:r=p,g=v,b=t;break;case 3:r=p,g=q,b=v;break;case 4:r=t,g=p,b=v;break;case 5:r=v,g=p,b=q;break}return{r:Math.floor(r*255),g:Math.floor(g*255),b:Math.floor(b*255)}};exports.HSVToHex=function(h,s,v){var rgb=exports.HSVToRGB(h,s,v);return exports.RGBToHex(rgb.r,rgb.g,rgb.b)};exports.hexToHSV=function(hex){var rgb=exports.hexToRGB(hex);return exports.RGBToHSV(rgb.r,rgb.g,rgb.b)};exports.isValidHex=function(hex){var isOk=/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(hex);return isOk};exports.isValidRGB=function(rgb){rgb=rgb.replace(\" \",\"\");var isOk=/rgb\\((\\d{1,3}),(\\d{1,3}),(\\d{1,3})\\)/i.test(rgb);return isOk};exports.isValidRGBA=function(rgba){rgba=rgba.replace(\" \",\"\");var isOk=/rgba\\((\\d{1,3}),(\\d{1,3}),(\\d{1,3}),(.{1,3})\\)/i.test(rgba);return isOk};exports.selectiveBridgeObject=function(fields,referenceObject){if(referenceObject!==null&&(typeof referenceObject===\"undefined\"?\"undefined\":(0,_typeof3[\"default\"])(referenceObject))===\"object\"){var objectTo=(0,_create2[\"default\"])(referenceObject);for(var i=0;i<fields.length;i++){if(referenceObject.hasOwnProperty(fields[i])){if((0,_typeof3[\"default\"])(referenceObject[fields[i]])==\"object\"){objectTo[fields[i]]=exports.bridgeObject(referenceObject[fields[i]])}}}return objectTo}else{return null}};exports.bridgeObject=function(referenceObject){if(referenceObject!==null&&(typeof referenceObject===\"undefined\"?\"undefined\":(0,_typeof3[\"default\"])(referenceObject))===\"object\"){var objectTo=(0,_create2[\"default\"])(referenceObject);if(referenceObject instanceof Element){objectTo=referenceObject}else{objectTo=(0,_create2[\"default\"])(referenceObject);for(var i in referenceObject){if(referenceObject.hasOwnProperty(i)){if((0,_typeof3[\"default\"])(referenceObject[i])==\"object\"){objectTo[i]=exports.bridgeObject(referenceObject[i])}}}}return objectTo}else{return null}};exports.insertSort=function(a,compare){for(var i=0;i<a.length;i++){var k=a[i];for(var j=i;j>0&&compare(k,a[j-1])<0;j--){a[j]=a[j-1]}a[j]=k}return a};exports.mergeOptions=function(mergeTarget,options,option){var globalOptions=arguments.length>3&&arguments[3]!==undefined?arguments[3]:{};var isPresent=function isPresent(obj){return obj!==null&&obj!==undefined};var isObject=function isObject(obj){return obj!==null&&(typeof obj===\"undefined\"?\"undefined\":(0,_typeof3[\"default\"])(obj))===\"object\"};var isEmpty=function isEmpty(obj){for(var x in obj){if(obj.hasOwnProperty(x))return false}return true};if(!isObject(mergeTarget)){throw new Error(\"Parameter mergeTarget must be an object\")}if(!isObject(options)){throw new Error(\"Parameter options must be an object\")}if(!isPresent(option)){throw new Error(\"Parameter option must have a value\")}if(!isObject(globalOptions)){throw new Error(\"Parameter globalOptions must be an object\")}var doMerge=function doMerge(target,options,option){if(!isObject(target[option])){target[option]={}}var src=options[option];var dst=target[option];for(var prop in src){if(src.hasOwnProperty(prop)){dst[prop]=src[prop]}}};var srcOption=options[option];var globalPassed=isObject(globalOptions)&&!isEmpty(globalOptions);var globalOption=globalPassed?globalOptions[option]:undefined;var globalEnabled=globalOption?globalOption.enabled:undefined;if(srcOption===undefined){return}if(typeof srcOption===\"boolean\"){if(!isObject(mergeTarget[option])){mergeTarget[option]={}}mergeTarget[option].enabled=srcOption;return}if(srcOption===null&&!isObject(mergeTarget[option])){if(isPresent(globalOption)){mergeTarget[option]=(0,_create2[\"default\"])(globalOption)}else{return}}if(!isObject(srcOption)){return}var enabled=true;if(srcOption.enabled!==undefined){enabled=srcOption.enabled}else{if(globalEnabled!==undefined){enabled=globalOption.enabled}}doMerge(mergeTarget,options,option);mergeTarget[option].enabled=enabled};exports.binarySearchCustom=function(orderedItems,comparator,field,field2){var maxIterations=1e4;var iteration=0;var low=0;var high=orderedItems.length-1;while(low<=high&&iteration<maxIterations){var middle=Math.floor((low+high)/2);var item=orderedItems[middle];var value=field2===undefined?item[field]:item[field][field2];var searchResult=comparator(value);if(searchResult==0){return middle}else if(searchResult==-1){low=middle+1}else{high=middle-1}iteration++}return-1};exports.binarySearchValue=function(orderedItems,target,field,sidePreference,comparator){var maxIterations=1e4;var iteration=0;var low=0;var high=orderedItems.length-1;var prevValue,value,nextValue,middle;comparator=comparator!=undefined?comparator:function(a,b){return a==b?0:a<b?-1:1};while(low<=high&&iteration<maxIterations){middle=Math.floor(.5*(high+low));prevValue=orderedItems[Math.max(0,middle-1)][field];value=orderedItems[middle][field];nextValue=orderedItems[Math.min(orderedItems.length-1,middle+1)][field];if(comparator(value,target)==0){return middle}else if(comparator(prevValue,target)<0&&comparator(value,target)>0){return sidePreference==\"before\"?Math.max(0,middle-1):middle}else if(comparator(value,target)<0&&comparator(nextValue,target)>0){return sidePreference==\"before\"?middle:Math.min(orderedItems.length-1,middle+1)}else{if(comparator(value,target)<0){low=middle+1}else{high=middle-1}}iteration++}return-1};exports.easingFunctions={linear:function linear(t){return t},easeInQuad:function easeInQuad(t){return t*t},easeOutQuad:function easeOutQuad(t){return t*(2-t)},easeInOutQuad:function easeInOutQuad(t){return t<.5?2*t*t:-1+(4-2*t)*t},easeInCubic:function easeInCubic(t){return t*t*t},easeOutCubic:function easeOutCubic(t){return--t*t*t+1},easeInOutCubic:function easeInOutCubic(t){return t<.5?4*t*t*t:(t-1)*(2*t-2)*(2*t-2)+1},easeInQuart:function easeInQuart(t){return t*t*t*t},easeOutQuart:function easeOutQuart(t){return 1- --t*t*t*t},easeInOutQuart:function easeInOutQuart(t){return t<.5?8*t*t*t*t:1-8*--t*t*t*t},easeInQuint:function easeInQuint(t){return t*t*t*t*t},easeOutQuint:function easeOutQuint(t){return 1+--t*t*t*t*t},easeInOutQuint:function easeInOutQuint(t){return t<.5?16*t*t*t*t*t:1+16*--t*t*t*t*t}};exports.getScrollBarWidth=function(){var inner=document.createElement(\"p\");inner.style.width=\"100%\";inner.style.height=\"200px\";var outer=document.createElement(\"div\");outer.style.position=\"absolute\";outer.style.top=\"0px\";outer.style.left=\"0px\";outer.style.visibility=\"hidden\";outer.style.width=\"200px\";outer.style.height=\"150px\";outer.style.overflow=\"hidden\";outer.appendChild(inner);document.body.appendChild(outer);var w1=inner.offsetWidth;outer.style.overflow=\"scroll\";var w2=inner.offsetWidth;if(w1==w2)w2=outer.clientWidth;document.body.removeChild(outer);return w1-w2};exports.topMost=function(pile,accessors){var candidate=void 0;if(!Array.isArray(accessors)){accessors=[accessors]}var _iteratorNormalCompletion=true;var _didIteratorError=false;var _iteratorError=undefined;try{for(var _iterator=(0,_getIterator3[\"default\"])(pile),_step;!(_iteratorNormalCompletion=(_step=_iterator.next()).done);_iteratorNormalCompletion=true){var member=_step.value;if(member){candidate=member[accessors[0]];for(var i=1;i<accessors.length;i++){if(candidate){candidate=candidate[accessors[i]]}else{continue}}if(typeof candidate!=\"undefined\"){break}}}}catch(err){_didIteratorError=true;_iteratorError=err}finally{try{if(!_iteratorNormalCompletion&&_iterator[\"return\"]){_iterator[\"return\"]()}}finally{if(_didIteratorError){throw _iteratorError}}}return candidate}},function(module,exports,__webpack_require__){module.exports={default:__webpack_require__(194),__esModule:true}},function(module,exports,__webpack_require__){\"use strict\";exports.__esModule=true;var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}exports.default=function(self,call){if(!self){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")}return call&&((typeof call===\"undefined\"?\"undefined\":(0,_typeof3.default)(call))===\"object\"||typeof call===\"function\")?call:self}},function(module,exports,__webpack_require__){\"use strict\";exports.__esModule=true;var _setPrototypeOf=__webpack_require__(196);var _setPrototypeOf2=_interopRequireDefault(_setPrototypeOf);var _create=__webpack_require__(29);var _create2=_interopRequireDefault(_create);var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}exports.default=function(subClass,superClass){if(typeof superClass!==\"function\"&&superClass!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+(typeof superClass===\"undefined\"?\"undefined\":(0,_typeof3.default)(superClass)))}subClass.prototype=(0,_create2.default)(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)_setPrototypeOf2.default?(0,_setPrototypeOf2.default)(subClass,superClass):subClass.__proto__=superClass}},function(module,exports,__webpack_require__){\"use strict\";exports.__esModule=true;var _iterator=__webpack_require__(142);var _iterator2=_interopRequireDefault(_iterator);var _symbol=__webpack_require__(144);var _symbol2=_interopRequireDefault(_symbol);var _typeof=typeof _symbol2.default===\"function\"&&typeof _iterator2.default===\"symbol\"?function(obj){return typeof obj}:function(obj){return obj&&typeof _symbol2.default===\"function\"&&obj.constructor===_symbol2.default&&obj!==_symbol2.default.prototype?\"symbol\":typeof obj};function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}exports.default=typeof _symbol2.default===\"function\"&&_typeof(_iterator2.default)===\"symbol\"?function(obj){return typeof obj===\"undefined\"?\"undefined\":_typeof(obj)}:function(obj){return obj&&typeof _symbol2.default===\"function\"&&obj.constructor===_symbol2.default&&obj!==_symbol2.default.prototype?\"symbol\":typeof obj===\"undefined\"?\"undefined\":_typeof(obj)}},function(module,exports){var core=module.exports={version:\"2.5.1\"};if(typeof __e==\"number\")__e=core},function(module,exports,__webpack_require__){module.exports={default:__webpack_require__(140),__esModule:true}},function(module,exports,__webpack_require__){\"use strict\";module.exports=typeof window!==\"undefined\"&&window[\"moment\"]||__webpack_require__(154)},function(module,exports,__webpack_require__){\"use strict\";function hammerMock(){var noop=function noop(){};return{on:noop,off:noop,destroy:noop,emit:noop,get:function get(m){return{set:noop}}}}if(typeof window!==\"undefined\"){var propagating=__webpack_require__(175);var Hammer=window[\"Hammer\"]||__webpack_require__(176);module.exports=propagating(Hammer,{preventDefault:\"mouse\"})}else{module.exports=function(){return hammerMock()}}},function(module,exports,__webpack_require__){\"use strict\";var _stringify=__webpack_require__(19);var _stringify2=_interopRequireDefault(_stringify);var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);var _keys=__webpack_require__(8);var _keys2=_interopRequireDefault(_keys);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var Queue=__webpack_require__(43);function DataSet(data,options){if(data&&!Array.isArray(data)){options=data;data=null}this._options=options||{};this._data={};this.length=0;this._fieldId=this._options.fieldId||\"id\";this._type={};if(this._options.type){var fields=(0,_keys2[\"default\"])(this._options.type);for(var i=0,len=fields.length;i<len;i++){var field=fields[i];var value=this._options.type[field];if(value==\"Date\"||value==\"ISODate\"||value==\"ASPDate\"){this._type[field]=\"Date\"}else{this._type[field]=value}}}this._subscribers={};if(data){this.add(data)}this.setOptions(options)}DataSet.prototype.setOptions=function(options){if(options&&options.queue!==undefined){if(options.queue===false){if(this._queue){this._queue.destroy();delete this._queue}}else{if(!this._queue){this._queue=Queue.extend(this,{replace:[\"add\",\"update\",\"remove\"]})}if((0,_typeof3[\"default\"])(options.queue)===\"object\"){this._queue.setOptions(options.queue)}}}};DataSet.prototype.on=function(event,callback){var subscribers=this._subscribers[event];if(!subscribers){subscribers=[];this._subscribers[event]=subscribers}subscribers.push({callback:callback})};DataSet.prototype.off=function(event,callback){var subscribers=this._subscribers[event];if(subscribers){this._subscribers[event]=subscribers.filter(function(listener){return listener.callback!=callback})}};DataSet.prototype._trigger=function(event,params,senderId){if(event==\"*\"){throw new Error(\"Cannot trigger event *\")}var subscribers=[];if(event in this._subscribers){subscribers=subscribers.concat(this._subscribers[event])}if(\"*\"in this._subscribers){subscribers=subscribers.concat(this._subscribers[\"*\"])}for(var i=0,len=subscribers.length;i<len;i++){var subscriber=subscribers[i];if(subscriber.callback){subscriber.callback(event,params,senderId||null)}}};DataSet.prototype.add=function(data,senderId){var addedIds=[],id,me=this;if(Array.isArray(data)){for(var i=0,len=data.length;i<len;i++){id=me._addItem(data[i]);addedIds.push(id)}}else if(data&&(typeof data===\"undefined\"?\"undefined\":(0,_typeof3[\"default\"])(data))===\"object\"){id=me._addItem(data);addedIds.push(id)}else{throw new Error(\"Unknown dataType\")}if(addedIds.length){this._trigger(\"add\",{items:addedIds},senderId)}return addedIds};DataSet.prototype.update=function(data,senderId){var addedIds=[];var updatedIds=[];var oldData=[];var updatedData=[];var me=this;var fieldId=me._fieldId;var addOrUpdate=function addOrUpdate(item){var id=item[fieldId];if(me._data[id]){var oldItem=util.extend({},me._data[id]);id=me._updateItem(item);updatedIds.push(id);updatedData.push(item);oldData.push(oldItem)}else{id=me._addItem(item);addedIds.push(id)}};if(Array.isArray(data)){for(var i=0,len=data.length;i<len;i++){if(data[i]&&(0,_typeof3[\"default\"])(data[i])===\"object\"){addOrUpdate(data[i])}else{console.warn(\"Ignoring input item, which is not an object at index \"+i)}}}else if(data&&(typeof data===\"undefined\"?\"undefined\":(0,_typeof3[\"default\"])(data))===\"object\"){addOrUpdate(data)}else{throw new Error(\"Unknown dataType\")}if(addedIds.length){this._trigger(\"add\",{items:addedIds},senderId)}if(updatedIds.length){var props={items:updatedIds,oldData:oldData,data:updatedData};this._trigger(\"update\",props,senderId)}return addedIds.concat(updatedIds)};DataSet.prototype.get=function(args){var me=this;var id,ids,options;var firstType=util.getType(arguments[0]);if(firstType==\"String\"||firstType==\"Number\"){id=arguments[0];options=arguments[1]}else if(firstType==\"Array\"){\nids=arguments[0];options=arguments[1]}else{options=arguments[0]}var returnType;if(options&&options.returnType){var allowedValues=[\"Array\",\"Object\"];returnType=allowedValues.indexOf(options.returnType)==-1?\"Array\":options.returnType}else{returnType=\"Array\"}var type=options&&options.type||this._options.type;var filter=options&&options.filter;var items=[],item,itemIds,itemId,i,len;if(id!=undefined){item=me._getItem(id,type);if(item&&filter&&!filter(item)){item=null}}else if(ids!=undefined){for(i=0,len=ids.length;i<len;i++){item=me._getItem(ids[i],type);if(!filter||filter(item)){items.push(item)}}}else{itemIds=(0,_keys2[\"default\"])(this._data);for(i=0,len=itemIds.length;i<len;i++){itemId=itemIds[i];item=me._getItem(itemId,type);if(!filter||filter(item)){items.push(item)}}}if(options&&options.order&&id==undefined){this._sort(items,options.order)}if(options&&options.fields){var fields=options.fields;if(id!=undefined){item=this._filterFields(item,fields)}else{for(i=0,len=items.length;i<len;i++){items[i]=this._filterFields(items[i],fields)}}}if(returnType==\"Object\"){var result={},resultant;for(i=0,len=items.length;i<len;i++){resultant=items[i];result[resultant.id]=resultant}return result}else{if(id!=undefined){return item}else{return items}}};DataSet.prototype.getIds=function(options){var data=this._data,filter=options&&options.filter,order=options&&options.order,type=options&&options.type||this._options.type,itemIds=(0,_keys2[\"default\"])(data),i,len,id,item,items,ids=[];if(filter){if(order){items=[];for(i=0,len=itemIds.length;i<len;i++){id=itemIds[i];item=this._getItem(id,type);if(filter(item)){items.push(item)}}this._sort(items,order);for(i=0,len=items.length;i<len;i++){ids.push(items[i][this._fieldId])}}else{for(i=0,len=itemIds.length;i<len;i++){id=itemIds[i];item=this._getItem(id,type);if(filter(item)){ids.push(item[this._fieldId])}}}}else{if(order){items=[];for(i=0,len=itemIds.length;i<len;i++){id=itemIds[i];items.push(data[id])}this._sort(items,order);for(i=0,len=items.length;i<len;i++){ids.push(items[i][this._fieldId])}}else{for(i=0,len=itemIds.length;i<len;i++){id=itemIds[i];item=data[id];ids.push(item[this._fieldId])}}}return ids};DataSet.prototype.getDataSet=function(){return this};DataSet.prototype.forEach=function(callback,options){var filter=options&&options.filter,type=options&&options.type||this._options.type,data=this._data,itemIds=(0,_keys2[\"default\"])(data),i,len,item,id;if(options&&options.order){var items=this.get(options);for(i=0,len=items.length;i<len;i++){item=items[i];id=item[this._fieldId];callback(item,id)}}else{for(i=0,len=itemIds.length;i<len;i++){id=itemIds[i];item=this._getItem(id,type);if(!filter||filter(item)){callback(item,id)}}}};DataSet.prototype.map=function(callback,options){var filter=options&&options.filter,type=options&&options.type||this._options.type,mappedItems=[],data=this._data,itemIds=(0,_keys2[\"default\"])(data),i,len,id,item;for(i=0,len=itemIds.length;i<len;i++){id=itemIds[i];item=this._getItem(id,type);if(!filter||filter(item)){mappedItems.push(callback(item,id))}}if(options&&options.order){this._sort(mappedItems,options.order)}return mappedItems};DataSet.prototype._filterFields=function(item,fields){if(!item){return item}var filteredItem={},itemFields=(0,_keys2[\"default\"])(item),len=itemFields.length,i,field;if(Array.isArray(fields)){for(i=0;i<len;i++){field=itemFields[i];if(fields.indexOf(field)!=-1){filteredItem[field]=item[field]}}}else{for(i=0;i<len;i++){field=itemFields[i];if(fields.hasOwnProperty(field)){filteredItem[fields[field]]=item[field]}}}return filteredItem};DataSet.prototype._sort=function(items,order){if(util.isString(order)){var name=order;items.sort(function(a,b){var av=a[name];var bv=b[name];return av>bv?1:av<bv?-1:0})}else if(typeof order===\"function\"){items.sort(order)}else{throw new TypeError(\"Order must be a function or a string\")}};DataSet.prototype.remove=function(id,senderId){var removedIds=[],removedItems=[],ids=[],i,len,itemId,item;ids=Array.isArray(id)?id:[id];for(i=0,len=ids.length;i<len;i++){item=this._remove(ids[i]);if(item){itemId=item[this._fieldId];if(itemId!=undefined){removedIds.push(itemId);removedItems.push(item)}}}if(removedIds.length){this._trigger(\"remove\",{items:removedIds,oldData:removedItems},senderId)}return removedIds};DataSet.prototype._remove=function(id){var item,ident;if(util.isNumber(id)||util.isString(id)){ident=id}else if(id&&(typeof id===\"undefined\"?\"undefined\":(0,_typeof3[\"default\"])(id))===\"object\"){ident=id[this._fieldId]}if(ident!==undefined&&this._data[ident]){item=this._data[ident];delete this._data[ident];this.length--;return item}return null};DataSet.prototype.clear=function(senderId){var i,len;var ids=(0,_keys2[\"default\"])(this._data);var items=[];for(i=0,len=ids.length;i<len;i++){items.push(this._data[ids[i]])}this._data={};this.length=0;this._trigger(\"remove\",{items:ids,oldData:items},senderId);return ids};DataSet.prototype.max=function(field){var data=this._data,itemIds=(0,_keys2[\"default\"])(data),max=null,maxField=null,i,len;for(i=0,len=itemIds.length;i<len;i++){var id=itemIds[i];var item=data[id];var itemField=item[field];if(itemField!=null&&(!max||itemField>maxField)){max=item;maxField=itemField}}return max};DataSet.prototype.min=function(field){var data=this._data,itemIds=(0,_keys2[\"default\"])(data),min=null,minField=null,i,len;for(i=0,len=itemIds.length;i<len;i++){var id=itemIds[i];var item=data[id];var itemField=item[field];if(itemField!=null&&(!min||itemField<minField)){min=item;minField=itemField}}return min};DataSet.prototype.distinct=function(field){var data=this._data;var itemIds=(0,_keys2[\"default\"])(data);var values=[];var fieldType=this._options.type&&this._options.type[field]||null;var count=0;var i,j,len;for(i=0,len=itemIds.length;i<len;i++){var id=itemIds[i];var item=data[id];var value=item[field];var exists=false;for(j=0;j<count;j++){if(values[j]==value){exists=true;break}}if(!exists&&value!==undefined){values[count]=value;count++}}if(fieldType){for(i=0,len=values.length;i<len;i++){values[i]=util.convert(values[i],fieldType)}}return values};DataSet.prototype._addItem=function(item){var id=item[this._fieldId];if(id!=undefined){if(this._data[id]){throw new Error(\"Cannot add item: item with id \"+id+\" already exists\")}}else{id=util.randomUUID();item[this._fieldId]=id}var d={},fields=(0,_keys2[\"default\"])(item),i,len;for(i=0,len=fields.length;i<len;i++){var field=fields[i];var fieldType=this._type[field];d[field]=util.convert(item[field],fieldType)}this._data[id]=d;this.length++;return id};DataSet.prototype._getItem=function(id,types){var field,value,i,len;var raw=this._data[id];if(!raw){return null}var converted={},fields=(0,_keys2[\"default\"])(raw);if(types){for(i=0,len=fields.length;i<len;i++){field=fields[i];value=raw[field];converted[field]=util.convert(value,types[field])}}else{for(i=0,len=fields.length;i<len;i++){field=fields[i];value=raw[field];converted[field]=value}}if(!converted[this._fieldId]){converted[this._fieldId]=raw.id}return converted};DataSet.prototype._updateItem=function(item){var id=item[this._fieldId];if(id==undefined){throw new Error(\"Cannot update item: item has no id (item: \"+(0,_stringify2[\"default\"])(item)+\")\")}var d=this._data[id];if(!d){throw new Error(\"Cannot update item: no item with id \"+id+\" found\")}var fields=(0,_keys2[\"default\"])(item);for(var i=0,len=fields.length;i<len;i++){var field=fields[i];var fieldType=this._type[field];d[field]=util.convert(item[field],fieldType)}return id};module.exports=DataSet},function(module,exports,__webpack_require__){\"use strict\";var _keys=__webpack_require__(8);var _keys2=_interopRequireDefault(_keys);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var DataSet=__webpack_require__(11);function DataView(data,options){this._data=null;this._ids={};this.length=0;this._options=options||{};this._fieldId=\"id\";this._subscribers={};var me=this;this.listener=function(){me._onEvent.apply(me,arguments)};this.setData(data)}DataView.prototype.setData=function(data){var ids,id,i,len,items;if(this._data){if(this._data.off){this._data.off(\"*\",this.listener)}ids=this._data.getIds({filter:this._options&&this._options.filter});items=[];for(i=0,len=ids.length;i<len;i++){items.push(this._data._data[ids[i]])}this._ids={};this.length=0;this._trigger(\"remove\",{items:ids,oldData:items})}this._data=data;if(this._data){this._fieldId=this._options.fieldId||this._data&&this._data.options&&this._data.options.fieldId||\"id\";ids=this._data.getIds({filter:this._options&&this._options.filter});for(i=0,len=ids.length;i<len;i++){id=ids[i];this._ids[id]=true}this.length=ids.length;this._trigger(\"add\",{items:ids});if(this._data.on){this._data.on(\"*\",this.listener)}}};DataView.prototype.refresh=function(){var id,i,len;var ids=this._data.getIds({filter:this._options&&this._options.filter}),oldIds=(0,_keys2[\"default\"])(this._ids),newIds={},addedIds=[],removedIds=[],removedItems=[];for(i=0,len=ids.length;i<len;i++){id=ids[i];newIds[id]=true;if(!this._ids[id]){addedIds.push(id);this._ids[id]=true}}for(i=0,len=oldIds.length;i<len;i++){id=oldIds[i];if(!newIds[id]){removedIds.push(id);removedItems.push(this._data._data[id]);delete this._ids[id]}}this.length+=addedIds.length-removedIds.length;if(addedIds.length){this._trigger(\"add\",{items:addedIds})}if(removedIds.length){this._trigger(\"remove\",{items:removedIds,oldData:removedItems})}};DataView.prototype.get=function(args){var me=this;var ids,options,data;var firstType=util.getType(arguments[0]);if(firstType==\"String\"||firstType==\"Number\"||firstType==\"Array\"){ids=arguments[0];options=arguments[1];data=arguments[2]}else{options=arguments[0];data=arguments[1]}var viewOptions=util.extend({},this._options,options);if(this._options.filter&&options&&options.filter){viewOptions.filter=function(item){return me._options.filter(item)&&options.filter(item)}}var getArguments=[];if(ids!=undefined){getArguments.push(ids)}getArguments.push(viewOptions);getArguments.push(data);return this._data&&this._data.get.apply(this._data,getArguments)};DataView.prototype.getIds=function(options){var ids;if(this._data){var defaultFilter=this._options.filter;var filter;if(options&&options.filter){if(defaultFilter){filter=function filter(item){return defaultFilter(item)&&options.filter(item)}}else{filter=options.filter}}else{filter=defaultFilter}ids=this._data.getIds({filter:filter,order:options&&options.order})}else{ids=[]}return ids};DataView.prototype.map=function(callback,options){var mappedItems=[];if(this._data){var defaultFilter=this._options.filter;var filter;if(options&&options.filter){if(defaultFilter){filter=function filter(item){return defaultFilter(item)&&options.filter(item)}}else{filter=options.filter}}else{filter=defaultFilter}mappedItems=this._data.map(callback,{filter:filter,order:options&&options.order})}else{mappedItems=[]}return mappedItems};DataView.prototype.getDataSet=function(){var dataSet=this;while(dataSet instanceof DataView){dataSet=dataSet._data}return dataSet||null};DataView.prototype._onEvent=function(event,params,senderId){var i,len,id,item;var ids=params&¶ms.items;var addedIds=[],updatedIds=[],removedIds=[],oldItems=[],updatedItems=[],removedItems=[];if(ids&&this._data){switch(event){case\"add\":for(i=0,len=ids.length;i<len;i++){id=ids[i];item=this.get(id);if(item){this._ids[id]=true;addedIds.push(id)}}break;case\"update\":for(i=0,len=ids.length;i<len;i++){id=ids[i];item=this.get(id);if(item){if(this._ids[id]){updatedIds.push(id);updatedItems.push(params.data[i]);oldItems.push(params.oldData[i])}else{this._ids[id]=true;addedIds.push(id)}}else{if(this._ids[id]){delete this._ids[id];removedIds.push(id);removedItems.push(params.oldData[i])}else{}}}break;case\"remove\":for(i=0,len=ids.length;i<len;i++){id=ids[i];if(this._ids[id]){delete this._ids[id];removedIds.push(id);removedItems.push(params.oldData[i])}}break}this.length+=addedIds.length-removedIds.length;if(addedIds.length){this._trigger(\"add\",{items:addedIds},senderId)}if(updatedIds.length){this._trigger(\"update\",{items:updatedIds,oldData:oldItems,data:updatedItems},senderId)}if(removedIds.length){this._trigger(\"remove\",{items:removedIds,oldData:removedItems},senderId)}}};DataView.prototype.on=DataSet.prototype.on;DataView.prototype.off=DataSet.prototype.off;DataView.prototype._trigger=DataSet.prototype._trigger;DataView.prototype.subscribe=DataView.prototype.on;DataView.prototype.unsubscribe=DataView.prototype.off;module.exports=DataView},function(module,exports,__webpack_require__){var store=__webpack_require__(57)(\"wks\");var uid=__webpack_require__(40);var Symbol=__webpack_require__(18).Symbol;var USE_SYMBOL=typeof Symbol==\"function\";var $exports=module.exports=function(name){return store[name]||(store[name]=USE_SYMBOL&&Symbol[name]||(USE_SYMBOL?Symbol:uid)(\"Symbol.\"+name))};$exports.store=store},function(module,exports,__webpack_require__){\"use strict\";exports.prepareElements=function(JSONcontainer){for(var elementType in JSONcontainer){if(JSONcontainer.hasOwnProperty(elementType)){JSONcontainer[elementType].redundant=JSONcontainer[elementType].used;JSONcontainer[elementType].used=[]}}};exports.cleanupElements=function(JSONcontainer){for(var elementType in JSONcontainer){if(JSONcontainer.hasOwnProperty(elementType)){if(JSONcontainer[elementType].redundant){for(var i=0;i<JSONcontainer[elementType].redundant.length;i++){JSONcontainer[elementType].redundant[i].parentNode.removeChild(JSONcontainer[elementType].redundant[i])}JSONcontainer[elementType].redundant=[]}}}};exports.resetElements=function(JSONcontainer){exports.prepareElements(JSONcontainer);exports.cleanupElements(JSONcontainer);exports.prepareElements(JSONcontainer)};exports.getSVGElement=function(elementType,JSONcontainer,svgContainer){var element;if(JSONcontainer.hasOwnProperty(elementType)){if(JSONcontainer[elementType].redundant.length>0){element=JSONcontainer[elementType].redundant[0];JSONcontainer[elementType].redundant.shift()}else{element=document.createElementNS(\"http://www.w3.org/2000/svg\",elementType);svgContainer.appendChild(element)}}else{element=document.createElementNS(\"http://www.w3.org/2000/svg\",elementType);JSONcontainer[elementType]={used:[],redundant:[]};svgContainer.appendChild(element)}JSONcontainer[elementType].used.push(element);return element};exports.getDOMElement=function(elementType,JSONcontainer,DOMContainer,insertBefore){var element;if(JSONcontainer.hasOwnProperty(elementType)){if(JSONcontainer[elementType].redundant.length>0){element=JSONcontainer[elementType].redundant[0];JSONcontainer[elementType].redundant.shift()}else{element=document.createElement(elementType);if(insertBefore!==undefined){DOMContainer.insertBefore(element,insertBefore)}else{DOMContainer.appendChild(element)}}}else{element=document.createElement(elementType);JSONcontainer[elementType]={used:[],redundant:[]};if(insertBefore!==undefined){DOMContainer.insertBefore(element,insertBefore)}else{DOMContainer.appendChild(element)}}JSONcontainer[elementType].used.push(element);return element};exports.drawPoint=function(x,y,groupTemplate,JSONcontainer,svgContainer,labelObj){var point;if(groupTemplate.style==\"circle\"){point=exports.getSVGElement(\"circle\",JSONcontainer,svgContainer);point.setAttributeNS(null,\"cx\",x);point.setAttributeNS(null,\"cy\",y);point.setAttributeNS(null,\"r\",.5*groupTemplate.size)}else{point=exports.getSVGElement(\"rect\",JSONcontainer,svgContainer);point.setAttributeNS(null,\"x\",x-.5*groupTemplate.size);point.setAttributeNS(null,\"y\",y-.5*groupTemplate.size);point.setAttributeNS(null,\"width\",groupTemplate.size);point.setAttributeNS(null,\"height\",groupTemplate.size)}if(groupTemplate.styles!==undefined){point.setAttributeNS(null,\"style\",groupTemplate.styles)}point.setAttributeNS(null,\"class\",groupTemplate.className+\" vis-point\");if(labelObj){var label=exports.getSVGElement(\"text\",JSONcontainer,svgContainer);if(labelObj.xOffset){x=x+labelObj.xOffset}if(labelObj.yOffset){y=y+labelObj.yOffset}if(labelObj.content){label.textContent=labelObj.content}if(labelObj.className){label.setAttributeNS(null,\"class\",labelObj.className+\" vis-label\")}label.setAttributeNS(null,\"x\",x);label.setAttributeNS(null,\"y\",y)}return point};exports.drawBar=function(x,y,width,height,className,JSONcontainer,svgContainer,style){if(height!=0){if(height<0){height*=-1;y-=height}var rect=exports.getSVGElement(\"rect\",JSONcontainer,svgContainer);rect.setAttributeNS(null,\"x\",x-.5*width);rect.setAttributeNS(null,\"y\",y);rect.setAttributeNS(null,\"width\",width);rect.setAttributeNS(null,\"height\",height);rect.setAttributeNS(null,\"class\",className);if(style){rect.setAttributeNS(null,\"style\",style)}}}},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.printStyle=undefined;var _stringify=__webpack_require__(19);var _stringify2=_interopRequireDefault(_stringify);var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);var _keys=__webpack_require__(8);var _keys2=_interopRequireDefault(_keys);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var errorFound=false;var allOptions=void 0;var printStyle=\"background: #FFeeee; color: #dd0000\";var Validator=function(){function Validator(){(0,_classCallCheck3[\"default\"])(this,Validator)}(0,_createClass3[\"default\"])(Validator,null,[{key:\"validate\",value:function validate(options,referenceOptions,subObject){errorFound=false;allOptions=referenceOptions;var usedOptions=referenceOptions;if(subObject!==undefined){usedOptions=referenceOptions[subObject]}Validator.parse(options,usedOptions,[]);return errorFound}},{key:\"parse\",value:function parse(options,referenceOptions,path){for(var option in options){if(options.hasOwnProperty(option)){Validator.check(option,options,referenceOptions,path)}}}},{key:\"check\",value:function check(option,options,referenceOptions,path){if(referenceOptions[option]===undefined&&referenceOptions.__any__===undefined){Validator.getSuggestion(option,referenceOptions,path);return}var referenceOption=option;var is_object=true;if(referenceOptions[option]===undefined&&referenceOptions.__any__!==undefined){referenceOption=\"__any__\";is_object=Validator.getType(options[option])===\"object\"}else{}var refOptionObj=referenceOptions[referenceOption];if(is_object&&refOptionObj.__type__!==undefined){refOptionObj=refOptionObj.__type__}Validator.checkFields(option,options,referenceOptions,referenceOption,refOptionObj,path)}},{key:\"checkFields\",value:function checkFields(option,options,referenceOptions,referenceOption,refOptionObj,path){var log=function log(message){console.log(\"%c\"+message+Validator.printLocation(path,option),printStyle)};var optionType=Validator.getType(options[option]);var refOptionType=refOptionObj[optionType];if(refOptionType!==undefined){if(Validator.getType(refOptionType)===\"array\"&&refOptionType.indexOf(options[option])===-1){log('Invalid option detected in \"'+option+'\".'+\" Allowed values are:\"+Validator.print(refOptionType)+' not \"'+options[option]+'\". ');errorFound=true}else if(optionType===\"object\"&&referenceOption!==\"__any__\"){path=util.copyAndExtendArray(path,option);Validator.parse(options[option],referenceOptions[referenceOption],path)}}else if(refOptionObj[\"any\"]===undefined){log('Invalid type received for \"'+option+'\". Expected: '+Validator.print((0,_keys2[\"default\"])(refOptionObj))+\". Received [\"+optionType+'] \"'+options[option]+'\"');errorFound=true}}},{key:\"getType\",value:function getType(object){var type=typeof object===\"undefined\"?\"undefined\":(0,_typeof3[\"default\"])(object);if(type===\"object\"){if(object===null){return\"null\"}if(object instanceof Boolean){return\"boolean\"}if(object instanceof Number){return\"number\"}if(object instanceof String){return\"string\"}if(Array.isArray(object)){return\"array\"}if(object instanceof Date){return\"date\"}if(object.nodeType!==undefined){return\"dom\"}if(object._isAMomentObject===true){return\"moment\"}return\"object\"}else if(type===\"number\"){return\"number\"}else if(type===\"boolean\"){return\"boolean\"}else if(type===\"string\"){return\"string\"}else if(type===undefined){return\"undefined\"}return type}},{key:\"getSuggestion\",value:function getSuggestion(option,options,path){var localSearch=Validator.findInOptions(option,options,path,false);var globalSearch=Validator.findInOptions(option,allOptions,[],true);var localSearchThreshold=8;var globalSearchThreshold=4;var msg=void 0;if(localSearch.indexMatch!==undefined){msg=\" in \"+Validator.printLocation(localSearch.path,option,\"\")+'Perhaps it was incomplete? Did you mean: \"'+localSearch.indexMatch+'\"?\\n\\n'}else if(globalSearch.distance<=globalSearchThreshold&&localSearch.distance>globalSearch.distance){msg=\" in \"+Validator.printLocation(localSearch.path,option,\"\")+\"Perhaps it was misplaced? Matching option found at: \"+Validator.printLocation(globalSearch.path,globalSearch.closestMatch,\"\")}else if(localSearch.distance<=localSearchThreshold){msg='. Did you mean \"'+localSearch.closestMatch+'\"?'+Validator.printLocation(localSearch.path,option)}else{msg=\". Did you mean one of these: \"+Validator.print((0,_keys2[\"default\"])(options))+Validator.printLocation(path,option)}console.log('%cUnknown option detected: \"'+option+'\"'+msg,printStyle);errorFound=true}},{key:\"findInOptions\",value:function findInOptions(option,options,path){var recursive=arguments.length>3&&arguments[3]!==undefined?arguments[3]:false;var min=1e9;var closestMatch=\"\";var closestMatchPath=[];var lowerCaseOption=option.toLowerCase();var indexMatch=undefined;for(var op in options){var distance=void 0;if(options[op].__type__!==undefined&&recursive===true){var result=Validator.findInOptions(option,options[op],util.copyAndExtendArray(path,op));if(min>result.distance){closestMatch=result.closestMatch;closestMatchPath=result.path;min=result.distance;indexMatch=result.indexMatch}}else{if(op.toLowerCase().indexOf(lowerCaseOption)!==-1){indexMatch=op}distance=Validator.levenshteinDistance(option,op);if(min>distance){closestMatch=op;closestMatchPath=util.copyArray(path);min=distance}}}return{closestMatch:closestMatch,path:closestMatchPath,distance:min,indexMatch:indexMatch}}},{key:\"printLocation\",value:function printLocation(path,option){var prefix=arguments.length>2&&arguments[2]!==undefined?arguments[2]:\"Problem value found at: \\n\";var str=\"\\n\\n\"+prefix+\"options = {\\n\";for(var i=0;i<path.length;i++){for(var j=0;j<i+1;j++){str+=\" \"}str+=path[i]+\": {\\n\"}for(var _j=0;_j<path.length+1;_j++){str+=\" \"}str+=option+\"\\n\";for(var _i=0;_i<path.length+1;_i++){for(var _j2=0;_j2<path.length-_i;_j2++){str+=\" \"}str+=\"}\\n\"}return str+\"\\n\\n\"}},{key:\"print\",value:function print(options){return(0,_stringify2[\"default\"])(options).replace(/(\\\")|(\\[)|(\\])|(,\"__type__\")/g,\"\").replace(/(\\,)/g,\", \")}},{key:\"levenshteinDistance\",value:function levenshteinDistance(a,b){if(a.length===0)return b.length;if(b.length===0)return a.length;var matrix=[];var i;for(i=0;i<=b.length;i++){matrix[i]=[i]}var j;for(j=0;j<=a.length;j++){matrix[0][j]=j}for(i=1;i<=b.length;i++){for(j=1;j<=a.length;j++){if(b.charAt(i-1)==a.charAt(j-1)){matrix[i][j]=matrix[i-1][j-1]}else{matrix[i][j]=Math.min(matrix[i-1][j-1]+1,Math.min(matrix[i][j-1]+1,matrix[i-1][j]+1))}}}return matrix[b.length][a.length]}}]);return Validator}();exports[\"default\"]=Validator;exports.printStyle=printStyle},function(module,exports,__webpack_require__){\"use strict\";var util=__webpack_require__(2);function Component(body,options){this.options=null;this.props=null}Component.prototype.setOptions=function(options){if(options){util.extend(this.options,options)}};Component.prototype.redraw=function(){return false};Component.prototype.destroy=function(){};Component.prototype._isResized=function(){var resized=this.props._previousWidth!==this.props.width||this.props._previousHeight!==this.props.height;this.props._previousWidth=this.props.width;this.props._previousHeight=this.props.height;return resized};module.exports=Component},function(module,exports,__webpack_require__){var global=__webpack_require__(18);var core=__webpack_require__(7);var ctx=__webpack_require__(80);var hide=__webpack_require__(26);var PROTOTYPE=\"prototype\";var $export=function(type,name,source){var IS_FORCED=type&$export.F;var IS_GLOBAL=type&$export.G;var IS_STATIC=type&$export.S;var IS_PROTO=type&$export.P;var IS_BIND=type&$export.B;var IS_WRAP=type&$export.W;var exports=IS_GLOBAL?core:core[name]||(core[name]={});var expProto=exports[PROTOTYPE];var target=IS_GLOBAL?global:IS_STATIC?global[name]:(global[name]||{})[PROTOTYPE];var key,own,out;if(IS_GLOBAL)source=name;for(key in source){own=!IS_FORCED&&target&&target[key]!==undefined;if(own&&key in exports)continue;out=own?target[key]:source[key];exports[key]=IS_GLOBAL&&typeof target[key]!=\"function\"?source[key]:IS_BIND&&own?ctx(out,global):IS_WRAP&&target[key]==out?function(C){var F=function(a,b,c){if(this instanceof C){switch(arguments.length){case 0:return new C;case 1:return new C(a);case 2:return new C(a,b)}return new C(a,b,c)}return C.apply(this,arguments)};F[PROTOTYPE]=C[PROTOTYPE];return F}(out):IS_PROTO&&typeof out==\"function\"?ctx(Function.call,out):out;if(IS_PROTO){(exports.virtual||(exports.virtual={}))[key]=out;if(type&$export.R&&expProto&&!expProto[key])hide(expProto,key,out)}}};$export.F=1;$export.G=2;$export.S=4;$export.P=8;$export.B=16;$export.W=32;$export.U=64;$export.R=128;module.exports=$export},function(module,exports){var global=module.exports=typeof window!=\"undefined\"&&window.Math==Math?window:typeof self!=\"undefined\"&&self.Math==Math?self:Function(\"return this\")();if(typeof __g==\"number\")__g=global},function(module,exports,__webpack_require__){module.exports={default:__webpack_require__(160),__esModule:true}},function(module,exports,__webpack_require__){var anObject=__webpack_require__(27);var IE8_DOM_DEFINE=__webpack_require__(81);var toPrimitive=__webpack_require__(53);var dP=Object.defineProperty;exports.f=__webpack_require__(21)?Object.defineProperty:function defineProperty(O,P,Attributes){anObject(O);P=toPrimitive(P,true);anObject(Attributes);if(IE8_DOM_DEFINE)try{return dP(O,P,Attributes)}catch(e){}if(\"get\"in Attributes||\"set\"in Attributes)throw TypeError(\"Accessors not supported!\");if(\"value\"in Attributes)O[P]=Attributes.value;return O}},function(module,exports,__webpack_require__){module.exports=!__webpack_require__(28)(function(){return Object.defineProperty({},\"a\",{get:function(){return 7}}).a!=7})},function(module,exports){var hasOwnProperty={}.hasOwnProperty;module.exports=function(it,key){return hasOwnProperty.call(it,key)}},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var NodeBase=function(){function NodeBase(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,NodeBase);this.body=body;this.labelModule=labelModule;this.setOptions(options);this.top=undefined;this.left=undefined;this.height=undefined;this.width=undefined;this.radius=undefined;this.margin=undefined;this.refreshNeeded=true;this.boundingBox={top:0,left:0,right:0,bottom:0}}(0,_createClass3[\"default\"])(NodeBase,[{key:\"setOptions\",value:function setOptions(options){this.options=options}},{key:\"_setMargins\",value:function _setMargins(labelModule){this.margin={};if(this.options.margin){if((0,_typeof3[\"default\"])(this.options.margin)==\"object\"){this.margin.top=this.options.margin.top;this.margin.right=this.options.margin.right;this.margin.bottom=this.options.margin.bottom;this.margin.left=this.options.margin.left}else{this.margin.top=this.options.margin;this.margin.right=this.options.margin;this.margin.bottom=this.options.margin;this.margin.left=this.options.margin}}labelModule.adjustSizes(this.margin)}},{key:\"_distanceToBorder\",value:function _distanceToBorder(ctx,angle){var borderWidth=this.options.borderWidth;this.resize(ctx);return Math.min(Math.abs(this.width/2/Math.cos(angle)),Math.abs(this.height/2/Math.sin(angle)))+borderWidth}},{key:\"enableShadow\",value:function enableShadow(ctx,values){if(values.shadow){ctx.shadowColor=values.shadowColor;ctx.shadowBlur=values.shadowSize;ctx.shadowOffsetX=values.shadowX;ctx.shadowOffsetY=values.shadowY}}},{key:\"disableShadow\",value:function disableShadow(ctx,values){if(values.shadow){ctx.shadowColor=\"rgba(0,0,0,0)\";ctx.shadowBlur=0;ctx.shadowOffsetX=0;ctx.shadowOffsetY=0}}},{key:\"enableBorderDashes\",value:function enableBorderDashes(ctx,values){if(values.borderDashes!==false){if(ctx.setLineDash!==undefined){var dashes=values.borderDashes;if(dashes===true){dashes=[5,15]}ctx.setLineDash(dashes)}else{console.warn(\"setLineDash is not supported in this browser. The dashed borders cannot be used.\");this.options.shapeProperties.borderDashes=false;values.borderDashes=false}}}},{key:\"disableBorderDashes\",value:function disableBorderDashes(ctx,values){if(values.borderDashes!==false){if(ctx.setLineDash!==undefined){ctx.setLineDash([0])}else{console.warn(\"setLineDash is not supported in this browser. The dashed borders cannot be used.\");this.options.shapeProperties.borderDashes=false;values.borderDashes=false}}}},{key:\"needsRefresh\",value:function needsRefresh(selected,hover){if(this.refreshNeeded===true){this.refreshNeeded=false;return true}return this.width===undefined||this.labelModule.differentState(selected,hover)}},{key:\"initContextForDraw\",value:function initContextForDraw(ctx,values){var borderWidth=values.borderWidth/this.body.view.scale;ctx.lineWidth=Math.min(this.width,borderWidth);ctx.strokeStyle=values.borderColor;ctx.fillStyle=values.color}},{key:\"performStroke\",value:function performStroke(ctx,values){var borderWidth=values.borderWidth/this.body.view.scale;ctx.save();if(borderWidth>0){this.enableBorderDashes(ctx,values);ctx.stroke();this.disableBorderDashes(ctx,values)}ctx.restore()}},{key:\"performFill\",value:function performFill(ctx,values){this.enableShadow(ctx,values);ctx.fill();this.disableShadow(ctx,values);this.performStroke(ctx,values)}},{key:\"_addBoundingBoxMargin\",value:function _addBoundingBoxMargin(margin){this.boundingBox.left-=margin;this.boundingBox.top-=margin;this.boundingBox.bottom+=margin;this.boundingBox.right+=margin}},{key:\"_updateBoundingBox\",value:function _updateBoundingBox(x,y,ctx,selected,hover){if(ctx!==undefined){this.resize(ctx,selected,hover)}this.left=x-this.width/2;this.top=y-this.height/2;this.boundingBox.left=this.left;this.boundingBox.top=this.top;this.boundingBox.bottom=this.top+this.height;this.boundingBox.right=this.left+this.width}},{key:\"updateBoundingBox\",value:function updateBoundingBox(x,y,ctx,selected,hover){this._updateBoundingBox(x,y,ctx,selected,hover)}},{key:\"getDimensionsFromLabel\",value:function getDimensionsFromLabel(ctx,selected,hover){this.textSize=this.labelModule.getTextSize(ctx,selected,hover);var width=this.textSize.width;var height=this.textSize.height;var DEFAULT_SIZE=14;if(width===0){width=DEFAULT_SIZE;height=DEFAULT_SIZE}return{width:width,height:height}}}]);return NodeBase}();exports[\"default\"]=NodeBase},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2)\n;var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _NodeBase2=__webpack_require__(23);var _NodeBase3=_interopRequireDefault(_NodeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var ShapeBase=function(_NodeBase){(0,_inherits3[\"default\"])(ShapeBase,_NodeBase);function ShapeBase(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,ShapeBase);return(0,_possibleConstructorReturn3[\"default\"])(this,(ShapeBase.__proto__||(0,_getPrototypeOf2[\"default\"])(ShapeBase)).call(this,options,body,labelModule))}(0,_createClass3[\"default\"])(ShapeBase,[{key:\"resize\",value:function resize(ctx){var selected=arguments.length>1&&arguments[1]!==undefined?arguments[1]:this.selected;var hover=arguments.length>2&&arguments[2]!==undefined?arguments[2]:this.hover;var values=arguments.length>3&&arguments[3]!==undefined?arguments[3]:{size:this.options.size};if(this.needsRefresh(selected,hover)){this.labelModule.getTextSize(ctx,selected,hover);var size=2*values.size;this.width=size;this.height=size;this.radius=.5*this.width}}},{key:\"_drawShape\",value:function _drawShape(ctx,shape,sizeMultiplier,x,y,selected,hover,values){this.resize(ctx,selected,hover,values);this.left=x-this.width/2;this.top=y-this.height/2;this.initContextForDraw(ctx,values);ctx[shape](x,y,values.size);this.performFill(ctx,values);if(this.options.label!==undefined){this.labelModule.calculateLabelSize(ctx,selected,hover,x,y,\"hanging\");var yLabel=y+.5*this.height+.5*this.labelModule.size.height;this.labelModule.draw(ctx,x,yLabel,selected,hover,\"hanging\")}this.updateBoundingBox(x,y)}},{key:\"updateBoundingBox\",value:function updateBoundingBox(x,y){this.boundingBox.top=y-this.options.size;this.boundingBox.left=x-this.options.size;this.boundingBox.right=x+this.options.size;this.boundingBox.bottom=y+this.options.size;if(this.options.label!==undefined&&this.labelModule.size.width>0){this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left);this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width);this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelModule.size.height)}}}]);return ShapeBase}(_NodeBase3[\"default\"]);exports[\"default\"]=ShapeBase},function(module,exports,__webpack_require__){var IObject=__webpack_require__(78);var defined=__webpack_require__(51);module.exports=function(it){return IObject(defined(it))}},function(module,exports,__webpack_require__){var dP=__webpack_require__(20);var createDesc=__webpack_require__(39);module.exports=__webpack_require__(21)?function(object,key,value){return dP.f(object,key,createDesc(1,value))}:function(object,key,value){object[key]=value;return object}},function(module,exports,__webpack_require__){var isObject=__webpack_require__(32);module.exports=function(it){if(!isObject(it))throw TypeError(it+\" is not an object!\");return it}},function(module,exports){module.exports=function(exec){try{return!!exec()}catch(e){return true}}},function(module,exports,__webpack_require__){module.exports={default:__webpack_require__(138),__esModule:true}},function(module,exports,__webpack_require__){\"use strict\";exports.__esModule=true;var _isIterable2=__webpack_require__(188);var _isIterable3=_interopRequireDefault(_isIterable2);var _getIterator2=__webpack_require__(77);var _getIterator3=_interopRequireDefault(_getIterator2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}exports.default=function(){function sliceIterator(arr,i){var _arr=[];var _n=true;var _d=false;var _e=undefined;try{for(var _i=(0,_getIterator3.default)(arr),_s;!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break}}catch(err){_d=true;_e=err}finally{try{if(!_n&&_i[\"return\"])_i[\"return\"]()}finally{if(_d)throw _e}}return _arr}return function(arr,i){if(Array.isArray(arr)){return arr}else if((0,_isIterable3.default)(Object(arr))){return sliceIterator(arr,i)}else{throw new TypeError(\"Invalid attempt to destructure non-iterable instance\")}}}()},function(module,exports){module.exports={}},function(module,exports){module.exports=function(it){return typeof it===\"object\"?it!==null:typeof it===\"function\"}},function(module,exports,__webpack_require__){var $keys=__webpack_require__(84);var enumBugKeys=__webpack_require__(58);module.exports=Object.keys||function keys(O){return $keys(O,enumBugKeys)}},function(module,exports,__webpack_require__){\"use strict\";function Point3d(x,y,z){this.x=x!==undefined?x:0;this.y=y!==undefined?y:0;this.z=z!==undefined?z:0}Point3d.subtract=function(a,b){var sub=new Point3d;sub.x=a.x-b.x;sub.y=a.y-b.y;sub.z=a.z-b.z;return sub};Point3d.add=function(a,b){var sum=new Point3d;sum.x=a.x+b.x;sum.y=a.y+b.y;sum.z=a.z+b.z;return sum};Point3d.avg=function(a,b){return new Point3d((a.x+b.x)/2,(a.y+b.y)/2,(a.z+b.z)/2)};Point3d.crossProduct=function(a,b){var crossproduct=new Point3d;crossproduct.x=a.y*b.z-a.z*b.y;crossproduct.y=a.z*b.x-a.x*b.z;crossproduct.z=a.x*b.y-a.y*b.x;return crossproduct};Point3d.prototype.length=function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)};module.exports=Point3d},function(module,exports,__webpack_require__){\"use strict\";var __WEBPACK_AMD_DEFINE_FACTORY__,__WEBPACK_AMD_DEFINE_ARRAY__,__WEBPACK_AMD_DEFINE_RESULT__;(function(root,factory){if(true){!(__WEBPACK_AMD_DEFINE_ARRAY__=[],__WEBPACK_AMD_DEFINE_FACTORY__=factory,__WEBPACK_AMD_DEFINE_RESULT__=typeof __WEBPACK_AMD_DEFINE_FACTORY__===\"function\"?__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports,__WEBPACK_AMD_DEFINE_ARRAY__):__WEBPACK_AMD_DEFINE_FACTORY__,__WEBPACK_AMD_DEFINE_RESULT__!==undefined&&(module.exports=__WEBPACK_AMD_DEFINE_RESULT__))}else if(typeof exports===\"object\"){module.exports=factory()}else{root.keycharm=factory()}})(this,function(){function keycharm(options){var preventDefault=options&&options.preventDefault||false;var container=options&&options.container||window;var _exportFunctions={};var _bound={keydown:{},keyup:{}};var _keys={};var i;for(i=97;i<=122;i++){_keys[String.fromCharCode(i)]={code:65+(i-97),shift:false}}for(i=65;i<=90;i++){_keys[String.fromCharCode(i)]={code:i,shift:true}}for(i=0;i<=9;i++){_keys[\"\"+i]={code:48+i,shift:false}}for(i=1;i<=12;i++){_keys[\"F\"+i]={code:111+i,shift:false}}for(i=0;i<=9;i++){_keys[\"num\"+i]={code:96+i,shift:false}}_keys[\"num*\"]={code:106,shift:false};_keys[\"num+\"]={code:107,shift:false};_keys[\"num-\"]={code:109,shift:false};_keys[\"num/\"]={code:111,shift:false};_keys[\"num.\"]={code:110,shift:false};_keys[\"left\"]={code:37,shift:false};_keys[\"up\"]={code:38,shift:false};_keys[\"right\"]={code:39,shift:false};_keys[\"down\"]={code:40,shift:false};_keys[\"space\"]={code:32,shift:false};_keys[\"enter\"]={code:13,shift:false};_keys[\"shift\"]={code:16,shift:undefined};_keys[\"esc\"]={code:27,shift:false};_keys[\"backspace\"]={code:8,shift:false};_keys[\"tab\"]={code:9,shift:false};_keys[\"ctrl\"]={code:17,shift:false};_keys[\"alt\"]={code:18,shift:false};_keys[\"delete\"]={code:46,shift:false};_keys[\"pageup\"]={code:33,shift:false};_keys[\"pagedown\"]={code:34,shift:false};_keys[\"=\"]={code:187,shift:false};_keys[\"-\"]={code:189,shift:false};_keys[\"]\"]={code:221,shift:false};_keys[\"[\"]={code:219,shift:false};var down=function(event){handleEvent(event,\"keydown\")};var up=function(event){handleEvent(event,\"keyup\")};var handleEvent=function(event,type){if(_bound[type][event.keyCode]!==undefined){var bound=_bound[type][event.keyCode];for(var i=0;i<bound.length;i++){if(bound[i].shift===undefined){bound[i].fn(event)}else if(bound[i].shift==true&&event.shiftKey==true){bound[i].fn(event)}else if(bound[i].shift==false&&event.shiftKey==false){bound[i].fn(event)}}if(preventDefault==true){event.preventDefault()}}};_exportFunctions.bind=function(key,callback,type){if(type===undefined){type=\"keydown\"}if(_keys[key]===undefined){throw new Error(\"unsupported key: \"+key)}if(_bound[type][_keys[key].code]===undefined){_bound[type][_keys[key].code]=[]}_bound[type][_keys[key].code].push({fn:callback,shift:_keys[key].shift})};_exportFunctions.bindAll=function(callback,type){if(type===undefined){type=\"keydown\"}for(var key in _keys){if(_keys.hasOwnProperty(key)){_exportFunctions.bind(key,callback,type)}}};_exportFunctions.getKey=function(event){for(var key in _keys){if(_keys.hasOwnProperty(key)){if(event.shiftKey==true&&_keys[key].shift==true&&event.keyCode==_keys[key].code){return key}else if(event.shiftKey==false&&_keys[key].shift==false&&event.keyCode==_keys[key].code){return key}else if(event.keyCode==_keys[key].code&&key==\"shift\"){return key}}}return\"unknown key, currently not supported\"};_exportFunctions.unbind=function(key,callback,type){if(type===undefined){type=\"keydown\"}if(_keys[key]===undefined){throw new Error(\"unsupported key: \"+key)}if(callback!==undefined){var newBindings=[];var bound=_bound[type][_keys[key].code];if(bound!==undefined){for(var i=0;i<bound.length;i++){if(!(bound[i].fn==callback&&bound[i].shift==_keys[key].shift)){newBindings.push(_bound[type][_keys[key].code][i])}}}_bound[type][_keys[key].code]=newBindings}else{_bound[type][_keys[key].code]=[]}};_exportFunctions.reset=function(){_bound={keydown:{},keyup:{}}};_exportFunctions.destroy=function(){_bound={keydown:{},keyup:{}};container.removeEventListener(\"keydown\",down,true);container.removeEventListener(\"keyup\",up,true)};container.addEventListener(\"keydown\",down,true);container.addEventListener(\"keyup\",up,true);return _exportFunctions}return keycharm})},function(module,exports,__webpack_require__){\"use strict\";exports.convertHiddenOptions=function(moment,body,hiddenDates){if(hiddenDates&&!Array.isArray(hiddenDates)){return exports.convertHiddenOptions(moment,body,[hiddenDates])}body.hiddenDates=[];if(hiddenDates){if(Array.isArray(hiddenDates)==true){for(var i=0;i<hiddenDates.length;i++){if(hiddenDates[i].repeat===undefined){var dateItem={};dateItem.start=moment(hiddenDates[i].start).toDate().valueOf();dateItem.end=moment(hiddenDates[i].end).toDate().valueOf();body.hiddenDates.push(dateItem)}}body.hiddenDates.sort(function(a,b){return a.start-b.start})}}};exports.updateHiddenDates=function(moment,body,hiddenDates){if(hiddenDates&&!Array.isArray(hiddenDates)){return exports.updateHiddenDates(moment,body,[hiddenDates])}if(hiddenDates&&body.domProps.centerContainer.width!==undefined){exports.convertHiddenOptions(moment,body,hiddenDates);var start=moment(body.range.start);var end=moment(body.range.end);var totalRange=body.range.end-body.range.start;var pixelTime=totalRange/body.domProps.centerContainer.width;for(var i=0;i<hiddenDates.length;i++){if(hiddenDates[i].repeat!==undefined){var startDate=moment(hiddenDates[i].start);var endDate=moment(hiddenDates[i].end);if(startDate._d==\"Invalid Date\"){throw new Error(\"Supplied start date is not valid: \"+hiddenDates[i].start)}if(endDate._d==\"Invalid Date\"){throw new Error(\"Supplied end date is not valid: \"+hiddenDates[i].end)}var duration=endDate-startDate;if(duration>=4*pixelTime){var offset=0;var runUntil=end.clone();switch(hiddenDates[i].repeat){case\"daily\":if(startDate.day()!=endDate.day()){offset=1}startDate.dayOfYear(start.dayOfYear());startDate.year(start.year());startDate.subtract(7,\"days\");endDate.dayOfYear(start.dayOfYear());endDate.year(start.year());endDate.subtract(7-offset,\"days\");runUntil.add(1,\"weeks\");break;case\"weekly\":var dayOffset=endDate.diff(startDate,\"days\");var day=startDate.day();startDate.date(start.date());startDate.month(start.month());startDate.year(start.year());endDate=startDate.clone();startDate.day(day);endDate.day(day);endDate.add(dayOffset,\"days\");startDate.subtract(1,\"weeks\");endDate.subtract(1,\"weeks\");runUntil.add(1,\"weeks\");break;case\"monthly\":if(startDate.month()!=endDate.month()){offset=1}startDate.month(start.month());startDate.year(start.year());startDate.subtract(1,\"months\");endDate.month(start.month());endDate.year(start.year());endDate.subtract(1,\"months\");endDate.add(offset,\"months\");runUntil.add(1,\"months\");break;case\"yearly\":if(startDate.year()!=endDate.year()){offset=1}startDate.year(start.year());startDate.subtract(1,\"years\");endDate.year(start.year());endDate.subtract(1,\"years\");endDate.add(offset,\"years\");runUntil.add(1,\"years\");break;default:console.log(\"Wrong repeat format, allowed are: daily, weekly, monthly, yearly. Given:\",hiddenDates[i].repeat);return}while(startDate<runUntil){body.hiddenDates.push({start:startDate.valueOf(),end:endDate.valueOf()});switch(hiddenDates[i].repeat){case\"daily\":startDate.add(1,\"days\");endDate.add(1,\"days\");break;case\"weekly\":startDate.add(1,\"weeks\");endDate.add(1,\"weeks\");break;case\"monthly\":startDate.add(1,\"months\");endDate.add(1,\"months\");break;case\"yearly\":startDate.add(1,\"y\");endDate.add(1,\"y\");break;default:console.log(\"Wrong repeat format, allowed are: daily, weekly, monthly, yearly. Given:\",hiddenDates[i].repeat);return}}body.hiddenDates.push({start:startDate.valueOf(),end:endDate.valueOf()})}}}exports.removeDuplicates(body);var startHidden=exports.isHidden(body.range.start,body.hiddenDates);var endHidden=exports.isHidden(body.range.end,body.hiddenDates);var rangeStart=body.range.start;var rangeEnd=body.range.end;if(startHidden.hidden==true){rangeStart=body.range.startToFront==true?startHidden.startDate-1:startHidden.endDate+1}if(endHidden.hidden==true){rangeEnd=body.range.endToFront==true?endHidden.startDate-1:endHidden.endDate+1}if(startHidden.hidden==true||endHidden.hidden==true){body.range._applyRange(rangeStart,rangeEnd)}}};exports.removeDuplicates=function(body){var hiddenDates=body.hiddenDates;var safeDates=[];for(var i=0;i<hiddenDates.length;i++){for(var j=0;j<hiddenDates.length;j++){if(i!=j&&hiddenDates[j].remove!=true&&hiddenDates[i].remove!=true){if(hiddenDates[j].start>=hiddenDates[i].start&&hiddenDates[j].end<=hiddenDates[i].end){hiddenDates[j].remove=true}else if(hiddenDates[j].start>=hiddenDates[i].start&&hiddenDates[j].start<=hiddenDates[i].end){hiddenDates[i].end=hiddenDates[j].end;hiddenDates[j].remove=true}else if(hiddenDates[j].end>=hiddenDates[i].start&&hiddenDates[j].end<=hiddenDates[i].end){hiddenDates[i].start=hiddenDates[j].start;hiddenDates[j].remove=true}}}}for(i=0;i<hiddenDates.length;i++){if(hiddenDates[i].remove!==true){safeDates.push(hiddenDates[i])}}body.hiddenDates=safeDates;body.hiddenDates.sort(function(a,b){return a.start-b.start})};exports.printDates=function(dates){for(var i=0;i<dates.length;i++){console.log(i,new Date(dates[i].start),new Date(dates[i].end),dates[i].start,dates[i].end,dates[i].remove)}};exports.stepOverHiddenDates=function(moment,timeStep,previousTime){var stepInHidden=false;var currentValue=timeStep.current.valueOf();for(var i=0;i<timeStep.hiddenDates.length;i++){var startDate=timeStep.hiddenDates[i].start;var endDate=timeStep.hiddenDates[i].end;if(currentValue>=startDate&¤tValue<endDate){stepInHidden=true;break}}if(stepInHidden==true&¤tValue<timeStep._end.valueOf()&¤tValue!=previousTime){var prevValue=moment(previousTime);var newValue=moment(endDate);if(prevValue.year()!=newValue.year()){timeStep.switchedYear=true}else if(prevValue.month()!=newValue.month()){timeStep.switchedMonth=true}else if(prevValue.dayOfYear()!=newValue.dayOfYear()){timeStep.switchedDay=true}timeStep.current=newValue}};exports.toScreen=function(Core,time,width){var conversion;if(Core.body.hiddenDates.length==0){conversion=Core.range.conversion(width);return(time.valueOf()-conversion.offset)*conversion.scale}else{var hidden=exports.isHidden(time,Core.body.hiddenDates);if(hidden.hidden==true){time=hidden.startDate}var duration=exports.getHiddenDurationBetween(Core.body.hiddenDates,Core.range.start,Core.range.end);if(time<Core.range.start){conversion=Core.range.conversion(width,duration);var hiddenBeforeStart=exports.getHiddenDurationBeforeStart(Core.body.hiddenDates,time,conversion.offset);time=Core.options.moment(time).toDate().valueOf();time=time+hiddenBeforeStart;return-(conversion.offset-time.valueOf())*conversion.scale}else if(time>Core.range.end){var rangeAfterEnd={start:Core.range.start,end:time};time=exports.correctTimeForHidden(Core.options.moment,Core.body.hiddenDates,rangeAfterEnd,time);conversion=Core.range.conversion(width,duration);return(time.valueOf()-conversion.offset)*conversion.scale}else{time=exports.correctTimeForHidden(Core.options.moment,Core.body.hiddenDates,Core.range,time);conversion=Core.range.conversion(width,duration);return(time.valueOf()-conversion.offset)*conversion.scale}}};exports.toTime=function(Core,x,width){if(Core.body.hiddenDates.length==0){var conversion=Core.range.conversion(width);return new Date(x/conversion.scale+conversion.offset)}else{var hiddenDuration=exports.getHiddenDurationBetween(Core.body.hiddenDates,Core.range.start,Core.range.end);var totalDuration=Core.range.end-Core.range.start-hiddenDuration;var partialDuration=totalDuration*x/width;var accumulatedHiddenDuration=exports.getAccumulatedHiddenDuration(Core.body.hiddenDates,Core.range,partialDuration);return new Date(accumulatedHiddenDuration+partialDuration+Core.range.start)}};exports.getHiddenDurationBetween=function(hiddenDates,start,end){var duration=0;for(var i=0;i<hiddenDates.length;i++){var startDate=hiddenDates[i].start;var endDate=hiddenDates[i].end;if(startDate>=start&&endDate<end){duration+=endDate-startDate}}return duration};exports.getHiddenDurationBeforeStart=function(hiddenDates,start,end){var duration=0;for(var i=0;i<hiddenDates.length;i++){var startDate=hiddenDates[i].start;var endDate=hiddenDates[i].end;if(startDate>=start&&endDate<=end){duration+=endDate-startDate}}return duration};exports.correctTimeForHidden=function(moment,hiddenDates,range,time){time=moment(time).toDate().valueOf();time-=exports.getHiddenDurationBefore(moment,hiddenDates,range,time);return time};exports.getHiddenDurationBefore=function(moment,hiddenDates,range,time){var timeOffset=0;time=moment(time).toDate().valueOf();for(var i=0;i<hiddenDates.length;i++){var startDate=hiddenDates[i].start;var endDate=hiddenDates[i].end;if(startDate>=range.start&&endDate<range.end){if(time>=endDate){timeOffset+=endDate-startDate}}}return timeOffset};exports.getAccumulatedHiddenDuration=function(hiddenDates,range,requiredDuration){var hiddenDuration=0;var duration=0;var previousPoint=range.start;for(var i=0;i<hiddenDates.length;i++){var startDate=hiddenDates[i].start;var endDate=hiddenDates[i].end;if(startDate>=range.start&&endDate<range.end){duration+=startDate-previousPoint;previousPoint=endDate;if(duration>=requiredDuration){break}else{hiddenDuration+=endDate-startDate}}}return hiddenDuration};exports.snapAwayFromHidden=function(hiddenDates,time,direction,correctionEnabled){var isHidden=exports.isHidden(time,hiddenDates);if(isHidden.hidden==true){if(direction<0){if(correctionEnabled==true){return isHidden.startDate-(isHidden.endDate-time)-1}else{return isHidden.startDate-1}}else{if(correctionEnabled==true){return isHidden.endDate+(time-isHidden.startDate)+1}else{return isHidden.endDate+1}}}else{return time}};exports.isHidden=function(time,hiddenDates){for(var i=0;i<hiddenDates.length;i++){var startDate=hiddenDates[i].start;var endDate=hiddenDates[i].end;if(time>=startDate&&time<endDate){return{hidden:true,startDate:startDate,endDate:endDate}}}return{hidden:false,startDate:startDate,endDate:endDate}}},function(module,exports,__webpack_require__){\"use strict\";exports.onTouch=function(hammer,callback){callback.inputHandler=function(event){if(event.isFirst){callback(event)}};hammer.on(\"hammer.input\",callback.inputHandler)};exports.onRelease=function(hammer,callback){callback.inputHandler=function(event){if(event.isFinal){callback(event)}};return hammer.on(\"hammer.input\",callback.inputHandler)};exports.offTouch=function(hammer,callback){hammer.off(\"hammer.input\",callback.inputHandler)};exports.offRelease=exports.offTouch;exports.disablePreventDefaultVertically=function(pinchRecognizer){var TOUCH_ACTION_PAN_Y=\"pan-y\";pinchRecognizer.getTouchAction=function(){return[TOUCH_ACTION_PAN_Y]};return pinchRecognizer}},function(module,exports,__webpack_require__){\"use strict\";var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);var _keys=__webpack_require__(8);var _keys2=_interopRequireDefault(_keys);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Hammer=__webpack_require__(10);var util=__webpack_require__(2);var moment=__webpack_require__(9);function Item(data,conversion,options){this.id=null;this.parent=null;this.data=data;this.dom=null;this.conversion=conversion||{};this.options=options||{};this.selected=false;this.displayed=false;this.groupShowing=true;this.dirty=true;this.top=null;this.right=null;this.left=null;this.width=null;this.height=null;this.editable=null;this._updateEditStatus()}Item.prototype.stack=true;Item.prototype.select=function(){this.selected=true;this.dirty=true;if(this.displayed)this.redraw()};Item.prototype.unselect=function(){this.selected=false;this.dirty=true;if(this.displayed)this.redraw()};Item.prototype.setData=function(data){var groupChanged=data.group!=undefined&&this.data.group!=data.group;if(groupChanged&&this.parent!=null){this.parent.itemSet._moveToGroup(this,data.group)}if(this.parent){this.parent.stackDirty=true}var subGroupChanged=data.subgroup!=undefined&&this.data.subgroup!=data.subgroup;if(subGroupChanged&&this.parent!=null){this.parent.changeSubgroup(this,this.data.subgroup,data.subgroup)}this.data=data;this._updateEditStatus();this.dirty=true;if(this.displayed)this.redraw()};Item.prototype.setParent=function(parent){if(this.displayed){this.hide();this.parent=parent;if(this.parent){this.show()}}else{this.parent=parent}};Item.prototype.isVisible=function(range){return false};Item.prototype.show=function(){return false};Item.prototype.hide=function(){return false};Item.prototype.redraw=function(){};Item.prototype.repositionX=function(){};Item.prototype.repositionY=function(){};Item.prototype._repaintDragCenter=function(){if(this.selected&&this.options.editable.updateTime&&!this.dom.dragCenter){var me=this;var dragCenter=document.createElement(\"div\");dragCenter.className=\"vis-drag-center\";dragCenter.dragCenterItem=this;var hammer=new Hammer(dragCenter);hammer.on(\"tap\",function(event){me.parent.itemSet.body.emitter.emit(\"click\",{event:event,item:me.id})});hammer.on(\"doubletap\",function(event){event.stopPropagation();me.parent.itemSet._onUpdateItem(me);me.parent.itemSet.body.emitter.emit(\"doubleClick\",{event:event,item:me.id})});if(this.dom.box){if(this.dom.dragLeft){this.dom.box.insertBefore(dragCenter,this.dom.dragLeft)}else{this.dom.box.appendChild(dragCenter)}}else if(this.dom.point){this.dom.point.appendChild(dragCenter)}this.dom.dragCenter=dragCenter}else if(!this.selected&&this.dom.dragCenter){if(this.dom.dragCenter.parentNode){this.dom.dragCenter.parentNode.removeChild(this.dom.dragCenter)}this.dom.dragCenter=null}};Item.prototype._repaintDeleteButton=function(anchor){var editable=(this.options.editable.overrideItems||this.editable==null)&&this.options.editable.remove||!this.options.editable.overrideItems&&this.editable!=null&&this.editable.remove;if(this.selected&&editable&&!this.dom.deleteButton){var me=this;var deleteButton=document.createElement(\"div\");if(this.options.rtl){deleteButton.className=\"vis-delete-rtl\"}else{deleteButton.className=\"vis-delete\"}deleteButton.title=\"Delete this item\";new Hammer(deleteButton).on(\"tap\",function(event){event.stopPropagation();me.parent.removeFromDataSet(me)});anchor.appendChild(deleteButton);this.dom.deleteButton=deleteButton}else if(!this.selected&&this.dom.deleteButton){if(this.dom.deleteButton.parentNode){this.dom.deleteButton.parentNode.removeChild(this.dom.deleteButton)}this.dom.deleteButton=null}};Item.prototype._repaintOnItemUpdateTimeTooltip=function(anchor){if(!this.options.tooltipOnItemUpdateTime)return;var editable=(this.options.editable.updateTime||this.data.editable===true)&&this.data.editable!==false;if(this.selected&&editable&&!this.dom.onItemUpdateTimeTooltip){var onItemUpdateTimeTooltip=document.createElement(\"div\");onItemUpdateTimeTooltip.className=\"vis-onUpdateTime-tooltip\";anchor.appendChild(onItemUpdateTimeTooltip);this.dom.onItemUpdateTimeTooltip=onItemUpdateTimeTooltip}else if(!this.selected&&this.dom.onItemUpdateTimeTooltip){if(this.dom.onItemUpdateTimeTooltip.parentNode){this.dom.onItemUpdateTimeTooltip.parentNode.removeChild(this.dom.onItemUpdateTimeTooltip)}this.dom.onItemUpdateTimeTooltip=null}if(this.dom.onItemUpdateTimeTooltip){this.dom.onItemUpdateTimeTooltip.style.visibility=this.parent.itemSet.touchParams.itemIsDragging?\"visible\":\"hidden\";if(this.options.rtl){this.dom.onItemUpdateTimeTooltip.style.right=this.dom.content.style.right}else{this.dom.onItemUpdateTimeTooltip.style.left=this.dom.content.style.left}var tooltipOffset=50;var scrollTop=this.parent.itemSet.body.domProps.scrollTop;var itemDistanceFromTop;if(this.options.orientation.item==\"top\"){itemDistanceFromTop=this.top}else{itemDistanceFromTop=this.parent.height-this.top-this.height}var isCloseToTop=itemDistanceFromTop+this.parent.top-tooltipOffset<-scrollTop;if(isCloseToTop){this.dom.onItemUpdateTimeTooltip.style.bottom=\"\";this.dom.onItemUpdateTimeTooltip.style.top=this.height+2+\"px\"}else{this.dom.onItemUpdateTimeTooltip.style.top=\"\";this.dom.onItemUpdateTimeTooltip.style.bottom=this.height+2+\"px\"}var content;var templateFunction;if(this.options.tooltipOnItemUpdateTime&&this.options.tooltipOnItemUpdateTime.template){templateFunction=this.options.tooltipOnItemUpdateTime.template.bind(this);content=templateFunction(this.data)}else{content=\"start: \"+moment(this.data.start).format(\"MM/DD/YYYY hh:mm\");if(this.data.end){content+=\"<br> end: \"+moment(this.data.end).format(\"MM/DD/YYYY hh:mm\")}}this.dom.onItemUpdateTimeTooltip.innerHTML=content}};Item.prototype._updateContents=function(element){var content;var changed;var templateFunction;var itemVisibleFrameContent;var visibleFrameTemplateFunction;var itemData=this.parent.itemSet.itemsData.get(this.id);var frameElement=this.dom.box||this.dom.point;var itemVisibleFrameContentElement=frameElement.getElementsByClassName(\"vis-item-visible-frame\")[0];if(this.options.visibleFrameTemplate){visibleFrameTemplateFunction=this.options.visibleFrameTemplate.bind(this);itemVisibleFrameContent=visibleFrameTemplateFunction(itemData,frameElement)}else{itemVisibleFrameContent=\"\"}if(itemVisibleFrameContentElement){if(itemVisibleFrameContent instanceof Object&&!(itemVisibleFrameContent instanceof Element)){visibleFrameTemplateFunction(itemData,itemVisibleFrameContentElement)}else{changed=this._contentToString(this.itemVisibleFrameContent)!==this._contentToString(itemVisibleFrameContent);if(changed){if(itemVisibleFrameContent instanceof Element){itemVisibleFrameContentElement.innerHTML=\"\";itemVisibleFrameContentElement.appendChild(itemVisibleFrameContent)}else if(itemVisibleFrameContent!=undefined){itemVisibleFrameContentElement.innerHTML=itemVisibleFrameContent}else{if(!(this.data.type==\"background\"&&this.data.content===undefined)){throw new Error('Property \"content\" missing in item '+this.id)}}this.itemVisibleFrameContent=itemVisibleFrameContent}}}if(this.options.template){templateFunction=this.options.template.bind(this);content=templateFunction(itemData,element,this.data)}else{content=this.data.content}if(content instanceof Object&&!(content instanceof Element)){templateFunction(itemData,element)}else{changed=this._contentToString(this.content)!==this._contentToString(content);if(changed){if(content instanceof Element){element.innerHTML=\"\";element.appendChild(content)}else if(content!=undefined){element.innerHTML=content}else{if(!(this.data.type==\"background\"&&this.data.content===undefined)){throw new Error('Property \"content\" missing in item '+this.id)}}this.content=content}}};Item.prototype._updateDataAttributes=function(element){if(this.options.dataAttributes&&this.options.dataAttributes.length>0){var attributes=[];if(Array.isArray(this.options.dataAttributes)){attributes=this.options.dataAttributes}else if(this.options.dataAttributes==\"all\"){attributes=(0,_keys2[\"default\"])(this.data)}else{return}for(var i=0;i<attributes.length;i++){var name=attributes[i];var value=this.data[name];if(value!=null){element.setAttribute(\"data-\"+name,value)}else{element.removeAttribute(\"data-\"+name)}}}};Item.prototype._updateStyle=function(element){if(this.style){util.removeCssText(element,this.style);this.style=null}if(this.data.style){util.addCssText(element,this.data.style);this.style=this.data.style}};Item.prototype._contentToString=function(content){if(typeof content===\"string\")return content;if(content&&\"outerHTML\"in content)return content.outerHTML;return content};Item.prototype._updateEditStatus=function(){if(this.options){if(typeof this.options.editable===\"boolean\"){this.editable={updateTime:this.options.editable,updateGroup:this.options.editable,remove:this.options.editable}}else if((0,_typeof3[\"default\"])(this.options.editable)===\"object\"){this.editable={};util.selectiveExtend([\"updateTime\",\"updateGroup\",\"remove\"],this.editable,this.options.editable)}}if(!this.options||!this.options.editable||this.options.editable.overrideItems!==true){if(this.data){if(typeof this.data.editable===\"boolean\"){this.editable={updateTime:this.data.editable,updateGroup:this.data.editable,remove:this.data.editable}}else if((0,_typeof3[\"default\"])(this.data.editable)===\"object\"){this.editable={};util.selectiveExtend([\"updateTime\",\"updateGroup\",\"remove\"],this.editable,this.data.editable)}}}};Item.prototype.getWidthLeft=function(){return 0};Item.prototype.getWidthRight=function(){return 0};Item.prototype.getTitle=function(){return this.data.title};module.exports=Item},function(module,exports){module.exports=function(bitmap,value){return{enumerable:!(bitmap&1),configurable:!(bitmap&2),writable:!(bitmap&4),value:value}}},function(module,exports){var id=0;var px=Math.random();module.exports=function(key){return\"Symbol(\".concat(key===undefined?\"\":key,\")_\",(++id+px).toString(36))}},function(module,exports,__webpack_require__){var defined=__webpack_require__(51);module.exports=function(it){return Object(defined(it))}},function(module,exports){exports.f={}.propertyIsEnumerable},function(module,exports,__webpack_require__){\"use strict\";function Queue(options){this.delay=null;this.max=Infinity;this._queue=[];this._timeout=null;this._extended=null;this.setOptions(options)}Queue.prototype.setOptions=function(options){if(options&&typeof options.delay!==\"undefined\"){this.delay=options.delay}if(options&&typeof options.max!==\"undefined\"){this.max=options.max}this._flushIfNeeded()};Queue.extend=function(object,options){var queue=new Queue(options);if(object.flush!==undefined){throw new Error(\"Target object already has a property flush\")}object.flush=function(){queue.flush()};var methods=[{name:\"flush\",original:undefined}];if(options&&options.replace){for(var i=0;i<options.replace.length;i++){var name=options.replace[i];methods.push({name:name,original:object[name]});queue.replace(object,name)}}queue._extended={object:object,methods:methods};return queue};Queue.prototype.destroy=function(){this.flush();if(this._extended){var object=this._extended.object;var methods=this._extended.methods;for(var i=0;i<methods.length;i++){var method=methods[i];if(method.original){object[method.name]=method.original}else{delete object[method.name]}}this._extended=null}};Queue.prototype.replace=function(object,method){var me=this;var original=object[method];if(!original){throw new Error(\"Method \"+method+\" undefined\")}object[method]=function(){var args=[];for(var i=0;i<arguments.length;i++){args[i]=arguments[i]}me.queue({args:args,fn:original,context:this})}};Queue.prototype.queue=function(entry){if(typeof entry===\"function\"){this._queue.push({fn:entry})}else{this._queue.push(entry)}this._flushIfNeeded()};Queue.prototype._flushIfNeeded=function(){\nif(this._queue.length>this.max){this.flush()}clearTimeout(this._timeout);if(this.queue.length>0&&typeof this.delay===\"number\"){var me=this;this._timeout=setTimeout(function(){me.flush()},this.delay)}};Queue.prototype.flush=function(){while(this._queue.length>0){var entry=this._queue.shift();entry.fn.apply(entry.context||entry.fn,entry.args||[])}};module.exports=Queue},function(module,exports){module.exports=Emitter;function Emitter(obj){if(obj)return mixin(obj)}function mixin(obj){for(var key in Emitter.prototype){obj[key]=Emitter.prototype[key]}return obj}Emitter.prototype.on=Emitter.prototype.addEventListener=function(event,fn){this._callbacks=this._callbacks||{};(this._callbacks[event]=this._callbacks[event]||[]).push(fn);return this};Emitter.prototype.once=function(event,fn){var self=this;this._callbacks=this._callbacks||{};function on(){self.off(event,on);fn.apply(this,arguments)}on.fn=fn;this.on(event,on);return this};Emitter.prototype.off=Emitter.prototype.removeListener=Emitter.prototype.removeAllListeners=Emitter.prototype.removeEventListener=function(event,fn){this._callbacks=this._callbacks||{};if(0==arguments.length){this._callbacks={};return this}var callbacks=this._callbacks[event];if(!callbacks)return this;if(1==arguments.length){delete this._callbacks[event];return this}var cb;for(var i=0;i<callbacks.length;i++){cb=callbacks[i];if(cb===fn||cb.fn===fn){callbacks.splice(i,1);break}}return this};Emitter.prototype.emit=function(event){this._callbacks=this._callbacks||{};var args=[].slice.call(arguments,1),callbacks=this._callbacks[event];if(callbacks){callbacks=callbacks.slice(0);for(var i=0,len=callbacks.length;i<len;++i){callbacks[i].apply(this,args)}}return this};Emitter.prototype.listeners=function(event){this._callbacks=this._callbacks||{};return this._callbacks[event]||[]};Emitter.prototype.hasListeners=function(event){return!!this.listeners(event).length}},function(module,exports,__webpack_require__){\"use strict\";var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var Component=__webpack_require__(16);var TimeStep=__webpack_require__(66);var DateUtil=__webpack_require__(36);var moment=__webpack_require__(9);function TimeAxis(body,options){this.dom={foreground:null,lines:[],majorTexts:[],minorTexts:[],redundant:{lines:[],majorTexts:[],minorTexts:[]}};this.props={range:{start:0,end:0,minimumStep:0},lineTop:0};this.defaultOptions={orientation:{axis:\"bottom\"},showMinorLabels:true,showMajorLabels:true,maxMinorChars:7,format:TimeStep.FORMAT,moment:moment,timeAxis:null};this.options=util.extend({},this.defaultOptions);this.body=body;this._create();this.setOptions(options)}TimeAxis.prototype=new Component;TimeAxis.prototype.setOptions=function(options){if(options){util.selectiveExtend([\"showMinorLabels\",\"showMajorLabels\",\"maxMinorChars\",\"hiddenDates\",\"timeAxis\",\"moment\",\"rtl\"],this.options,options);util.selectiveDeepExtend([\"format\"],this.options,options);if(\"orientation\"in options){if(typeof options.orientation===\"string\"){this.options.orientation.axis=options.orientation}else if((0,_typeof3[\"default\"])(options.orientation)===\"object\"&&\"axis\"in options.orientation){this.options.orientation.axis=options.orientation.axis}}if(\"locale\"in options){if(typeof moment.locale===\"function\"){moment.locale(options.locale)}else{moment.lang(options.locale)}}}};TimeAxis.prototype._create=function(){this.dom.foreground=document.createElement(\"div\");this.dom.background=document.createElement(\"div\");this.dom.foreground.className=\"vis-time-axis vis-foreground\";this.dom.background.className=\"vis-time-axis vis-background\"};TimeAxis.prototype.destroy=function(){if(this.dom.foreground.parentNode){this.dom.foreground.parentNode.removeChild(this.dom.foreground)}if(this.dom.background.parentNode){this.dom.background.parentNode.removeChild(this.dom.background)}this.body=null};TimeAxis.prototype.redraw=function(){var props=this.props;var foreground=this.dom.foreground;var background=this.dom.background;var parent=this.options.orientation.axis==\"top\"?this.body.dom.top:this.body.dom.bottom;var parentChanged=foreground.parentNode!==parent;this._calculateCharSize();var showMinorLabels=this.options.showMinorLabels&&this.options.orientation.axis!==\"none\";var showMajorLabels=this.options.showMajorLabels&&this.options.orientation.axis!==\"none\";props.minorLabelHeight=showMinorLabels?props.minorCharHeight:0;props.majorLabelHeight=showMajorLabels?props.majorCharHeight:0;props.height=props.minorLabelHeight+props.majorLabelHeight;props.width=foreground.offsetWidth;props.minorLineHeight=this.body.domProps.root.height-props.majorLabelHeight-(this.options.orientation.axis==\"top\"?this.body.domProps.bottom.height:this.body.domProps.top.height);props.minorLineWidth=1;props.majorLineHeight=props.minorLineHeight+props.majorLabelHeight;props.majorLineWidth=1;var foregroundNextSibling=foreground.nextSibling;var backgroundNextSibling=background.nextSibling;foreground.parentNode&&foreground.parentNode.removeChild(foreground);background.parentNode&&background.parentNode.removeChild(background);foreground.style.height=this.props.height+\"px\";this._repaintLabels();if(foregroundNextSibling){parent.insertBefore(foreground,foregroundNextSibling)}else{parent.appendChild(foreground)}if(backgroundNextSibling){this.body.dom.backgroundVertical.insertBefore(background,backgroundNextSibling)}else{this.body.dom.backgroundVertical.appendChild(background)}return this._isResized()||parentChanged};TimeAxis.prototype._repaintLabels=function(){var orientation=this.options.orientation.axis;var start=util.convert(this.body.range.start,\"Number\");var end=util.convert(this.body.range.end,\"Number\");var timeLabelsize=this.body.util.toTime((this.props.minorCharWidth||10)*this.options.maxMinorChars).valueOf();var minimumStep=timeLabelsize-DateUtil.getHiddenDurationBefore(this.options.moment,this.body.hiddenDates,this.body.range,timeLabelsize);minimumStep-=this.body.util.toTime(0).valueOf();var step=new TimeStep(new Date(start),new Date(end),minimumStep,this.body.hiddenDates,this.options);step.setMoment(this.options.moment);if(this.options.format){step.setFormat(this.options.format)}if(this.options.timeAxis){step.setScale(this.options.timeAxis)}this.step=step;var dom=this.dom;dom.redundant.lines=dom.lines;dom.redundant.majorTexts=dom.majorTexts;dom.redundant.minorTexts=dom.minorTexts;dom.lines=[];dom.majorTexts=[];dom.minorTexts=[];var current;var next;var x;var xNext;var isMajor;var nextIsMajor;var showMinorGrid;var width=0,prevWidth;var line;var labelMinor;var xFirstMajorLabel=undefined;var count=0;var MAX=1e3;var className;step.start();next=step.getCurrent();xNext=this.body.util.toScreen(next);while(step.hasNext()&&count<MAX){count++;isMajor=step.isMajor();className=step.getClassName();labelMinor=step.getLabelMinor();current=next;x=xNext;step.next();next=step.getCurrent();nextIsMajor=step.isMajor();xNext=this.body.util.toScreen(next);prevWidth=width;width=xNext-x;switch(step.scale){case\"week\":showMinorGrid=true;break;default:showMinorGrid=width>=prevWidth*.4;break}if(this.options.showMinorLabels&&showMinorGrid){var label=this._repaintMinorText(x,labelMinor,orientation,className);label.style.width=width+\"px\"}if(isMajor&&this.options.showMajorLabels){if(x>0){if(xFirstMajorLabel==undefined){xFirstMajorLabel=x}label=this._repaintMajorText(x,step.getLabelMajor(),orientation,className)}line=this._repaintMajorLine(x,width,orientation,className)}else{if(showMinorGrid){line=this._repaintMinorLine(x,width,orientation,className)}else{if(line){line.style.width=parseInt(line.style.width)+width+\"px\"}}}}if(count===MAX&&!warnedForOverflow){console.warn(\"Something is wrong with the Timeline scale. Limited drawing of grid lines to \"+MAX+\" lines.\");warnedForOverflow=true}if(this.options.showMajorLabels){var leftTime=this.body.util.toTime(0),leftText=step.getLabelMajor(leftTime),widthText=leftText.length*(this.props.majorCharWidth||10)+10;if(xFirstMajorLabel==undefined||widthText<xFirstMajorLabel){this._repaintMajorText(0,leftText,orientation,className)}}util.forEach(this.dom.redundant,function(arr){while(arr.length){var elem=arr.pop();if(elem&&elem.parentNode){elem.parentNode.removeChild(elem)}}})};TimeAxis.prototype._repaintMinorText=function(x,text,orientation,className){var label=this.dom.redundant.minorTexts.shift();if(!label){var content=document.createTextNode(\"\");label=document.createElement(\"div\");label.appendChild(content);this.dom.foreground.appendChild(label)}this.dom.minorTexts.push(label);label.innerHTML=text;label.style.top=orientation==\"top\"?this.props.majorLabelHeight+\"px\":\"0\";if(this.options.rtl){label.style.left=\"\";label.style.right=x+\"px\"}else{label.style.left=x+\"px\"}label.className=\"vis-text vis-minor \"+className;return label};TimeAxis.prototype._repaintMajorText=function(x,text,orientation,className){var label=this.dom.redundant.majorTexts.shift();if(!label){var content=document.createElement(\"div\");label=document.createElement(\"div\");label.appendChild(content);this.dom.foreground.appendChild(label)}label.childNodes[0].innerHTML=text;label.className=\"vis-text vis-major \"+className;label.style.top=orientation==\"top\"?\"0\":this.props.minorLabelHeight+\"px\";if(this.options.rtl){label.style.left=\"\";label.style.right=x+\"px\"}else{label.style.left=x+\"px\"}this.dom.majorTexts.push(label);return label};TimeAxis.prototype._repaintMinorLine=function(x,width,orientation,className){var line=this.dom.redundant.lines.shift();if(!line){line=document.createElement(\"div\");this.dom.background.appendChild(line)}this.dom.lines.push(line);var props=this.props;if(orientation==\"top\"){line.style.top=props.majorLabelHeight+\"px\"}else{line.style.top=this.body.domProps.top.height+\"px\"}line.style.height=props.minorLineHeight+\"px\";if(this.options.rtl){line.style.left=\"\";line.style.right=x-props.minorLineWidth/2+\"px\";line.className=\"vis-grid vis-vertical-rtl vis-minor \"+className}else{line.style.left=x-props.minorLineWidth/2+\"px\";line.className=\"vis-grid vis-vertical vis-minor \"+className}line.style.width=width+\"px\";return line};TimeAxis.prototype._repaintMajorLine=function(x,width,orientation,className){var line=this.dom.redundant.lines.shift();if(!line){line=document.createElement(\"div\");this.dom.background.appendChild(line)}this.dom.lines.push(line);var props=this.props;if(orientation==\"top\"){line.style.top=\"0\"}else{line.style.top=this.body.domProps.top.height+\"px\"}if(this.options.rtl){line.style.left=\"\";line.style.right=x-props.majorLineWidth/2+\"px\";line.className=\"vis-grid vis-vertical-rtl vis-major \"+className}else{line.style.left=x-props.majorLineWidth/2+\"px\";line.className=\"vis-grid vis-vertical vis-major \"+className}line.style.height=props.majorLineHeight+\"px\";line.style.width=width+\"px\";return line};TimeAxis.prototype._calculateCharSize=function(){if(!this.dom.measureCharMinor){this.dom.measureCharMinor=document.createElement(\"DIV\");this.dom.measureCharMinor.className=\"vis-text vis-minor vis-measure\";this.dom.measureCharMinor.style.position=\"absolute\";this.dom.measureCharMinor.appendChild(document.createTextNode(\"0\"));this.dom.foreground.appendChild(this.dom.measureCharMinor)}this.props.minorCharHeight=this.dom.measureCharMinor.clientHeight;this.props.minorCharWidth=this.dom.measureCharMinor.clientWidth;if(!this.dom.measureCharMajor){this.dom.measureCharMajor=document.createElement(\"DIV\");this.dom.measureCharMajor.className=\"vis-text vis-major vis-measure\";this.dom.measureCharMajor.style.position=\"absolute\";this.dom.measureCharMajor.appendChild(document.createTextNode(\"0\"));this.dom.foreground.appendChild(this.dom.measureCharMajor)}this.props.majorCharHeight=this.dom.measureCharMajor.clientHeight;this.props.majorCharWidth=this.dom.measureCharMajor.clientWidth};var warnedForOverflow=false;module.exports=TimeAxis},function(module,exports,__webpack_require__){\"use strict\";var Hammer=__webpack_require__(10);var util=__webpack_require__(2);var Component=__webpack_require__(16);var moment=__webpack_require__(9);var locales=__webpack_require__(98);function CustomTime(body,options){this.body=body;this.defaultOptions={moment:moment,locales:locales,locale:\"en\",id:undefined,title:undefined};this.options=util.extend({},this.defaultOptions);if(options&&options.time){this.customTime=options.time}else{this.customTime=new Date}this.eventParams={};this.setOptions(options);this._create()}CustomTime.prototype=new Component;CustomTime.prototype.setOptions=function(options){if(options){util.selectiveExtend([\"moment\",\"locale\",\"locales\",\"id\"],this.options,options)}};CustomTime.prototype._create=function(){var bar=document.createElement(\"div\");bar[\"custom-time\"]=this;bar.className=\"vis-custom-time \"+(this.options.id||\"\");bar.style.position=\"absolute\";bar.style.top=\"0px\";bar.style.height=\"100%\";this.bar=bar;var drag=document.createElement(\"div\");drag.style.position=\"relative\";drag.style.top=\"0px\";drag.style.left=\"-10px\";drag.style.height=\"100%\";drag.style.width=\"20px\";function onMouseWheel(e){this.body.range._onMouseWheel(e)}if(drag.addEventListener){drag.addEventListener(\"mousewheel\",onMouseWheel.bind(this),false);drag.addEventListener(\"DOMMouseScroll\",onMouseWheel.bind(this),false)}else{drag.attachEvent(\"onmousewheel\",onMouseWheel.bind(this))}bar.appendChild(drag);this.hammer=new Hammer(drag);this.hammer.on(\"panstart\",this._onDragStart.bind(this));this.hammer.on(\"panmove\",this._onDrag.bind(this));this.hammer.on(\"panend\",this._onDragEnd.bind(this));this.hammer.get(\"pan\").set({threshold:5,direction:Hammer.DIRECTION_HORIZONTAL})};CustomTime.prototype.destroy=function(){this.hide();this.hammer.destroy();this.hammer=null;this.body=null};CustomTime.prototype.redraw=function(){var parent=this.body.dom.backgroundVertical;if(this.bar.parentNode!=parent){if(this.bar.parentNode){this.bar.parentNode.removeChild(this.bar)}parent.appendChild(this.bar)}var x=this.body.util.toScreen(this.customTime);var locale=this.options.locales[this.options.locale];if(!locale){if(!this.warned){console.log(\"WARNING: options.locales['\"+this.options.locale+\"'] not found. See http://visjs.org/docs/timeline/#Localization\");this.warned=true}locale=this.options.locales[\"en\"]}var title=this.options.title;if(title===undefined){title=locale.time+\": \"+this.options.moment(this.customTime).format(\"dddd, MMMM Do YYYY, H:mm:ss\");title=title.charAt(0).toUpperCase()+title.substring(1)}else if(typeof title===\"function\"){title=title.call(this.customTime)}this.bar.style.left=x+\"px\";this.bar.title=title;return false};CustomTime.prototype.hide=function(){if(this.bar.parentNode){this.bar.parentNode.removeChild(this.bar)}};CustomTime.prototype.setCustomTime=function(time){this.customTime=util.convert(time,\"Date\");this.redraw()};CustomTime.prototype.getCustomTime=function(){return new Date(this.customTime.valueOf())};CustomTime.prototype.setCustomTitle=function(title){this.options.title=title};CustomTime.prototype._onDragStart=function(event){this.eventParams.dragging=true;this.eventParams.customTime=this.customTime;event.stopPropagation()};CustomTime.prototype._onDrag=function(event){if(!this.eventParams.dragging)return;var x=this.body.util.toScreen(this.eventParams.customTime)+event.deltaX;var time=this.body.util.toTime(x);this.setCustomTime(time);this.body.emitter.emit(\"timechange\",{id:this.options.id,time:new Date(this.customTime.valueOf()),event:event});event.stopPropagation()};CustomTime.prototype._onDragEnd=function(event){if(!this.eventParams.dragging)return;this.body.emitter.emit(\"timechanged\",{id:this.options.id,time:new Date(this.customTime.valueOf()),event:event});event.stopPropagation()};CustomTime.customTimeFromTarget=function(event){var target=event.target;while(target){if(target.hasOwnProperty(\"custom-time\")){return target[\"custom-time\"]}target=target.parentNode}return null};module.exports=CustomTime},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var Label=__webpack_require__(117)[\"default\"];var ComponentUtil=__webpack_require__(48)[\"default\"];var Box=__webpack_require__(193)[\"default\"];var Circle=__webpack_require__(200)[\"default\"];var CircularImage=__webpack_require__(201)[\"default\"];var Database=__webpack_require__(202)[\"default\"];var Diamond=__webpack_require__(203)[\"default\"];var Dot=__webpack_require__(204)[\"default\"];var Ellipse=__webpack_require__(205)[\"default\"];var Icon=__webpack_require__(206)[\"default\"];var Image=__webpack_require__(207)[\"default\"];var Square=__webpack_require__(208)[\"default\"];var Hexagon=__webpack_require__(209)[\"default\"];var Star=__webpack_require__(210)[\"default\"];var Text=__webpack_require__(211)[\"default\"];var Triangle=__webpack_require__(212)[\"default\"];var TriangleDown=__webpack_require__(213)[\"default\"];var _require=__webpack_require__(15),printStyle=_require.printStyle;var Node=function(){function Node(options,body,imagelist,grouplist,globalOptions,defaultOptions){(0,_classCallCheck3[\"default\"])(this,Node);this.options=util.bridgeObject(globalOptions);this.globalOptions=globalOptions;this.defaultOptions=defaultOptions;this.body=body;this.edges=[];this.id=undefined;this.imagelist=imagelist;this.grouplist=grouplist;this.x=undefined;this.y=undefined;this.baseSize=this.options.size;this.baseFontSize=this.options.font.size;this.predefinedPosition=false;this.selected=false;this.hover=false;this.labelModule=new Label(this.body,this.options,false);this.setOptions(options)}(0,_createClass3[\"default\"])(Node,[{key:\"attachEdge\",value:function attachEdge(edge){if(this.edges.indexOf(edge)===-1){this.edges.push(edge)}}},{key:\"detachEdge\",value:function detachEdge(edge){var index=this.edges.indexOf(edge);if(index!=-1){this.edges.splice(index,1)}}},{key:\"setOptions\",value:function setOptions(options){var currentShape=this.options.shape;if(!options){return}if(options.id!==undefined){this.id=options.id}if(this.id===undefined){throw new Error(\"Node must have an id\")}Node.checkMass(options,this.id);if(options.x!==undefined){if(options.x===null){this.x=undefined;this.predefinedPosition=false}else{this.x=parseInt(options.x);this.predefinedPosition=true}}if(options.y!==undefined){if(options.y===null){this.y=undefined;this.predefinedPosition=false}else{this.y=parseInt(options.y);this.predefinedPosition=true}}if(options.size!==undefined){this.baseSize=options.size}if(options.value!==undefined){options.value=parseFloat(options.value)}Node.parseOptions(this.options,options,true,this.globalOptions,this.grouplist);var pile=[options,this.options,this.defaultOptions];this.chooser=ComponentUtil.choosify(\"node\",pile);this._load_images();this.updateLabelModule(options);this.updateShape(currentShape);return options.hidden!==undefined||options.physics!==undefined}},{key:\"_load_images\",value:function _load_images(){if(this.options.shape!==\"circularImage\"&&this.options.shape!==\"image\"){return}if(this.options.image===undefined){throw new Error(\"Option image must be defined for node type '\"+this.options.shape+\"'\")}if(this.imagelist===undefined){throw new Error(\"Internal Error: No images provided\")}if(typeof this.options.image===\"string\"){this.imageObj=this.imagelist.load(this.options.image,this.options.brokenImage,this.id)}else{if(this.options.image.unselected===undefined){throw new Error(\"No unselected image provided\")}this.imageObj=this.imagelist.load(this.options.image.unselected,this.options.brokenImage,this.id);if(this.options.image.selected!==undefined){this.imageObjAlt=this.imagelist.load(this.options.image.selected,this.options.brokenImage,this.id)}else{this.imageObjAlt=undefined}}}},{key:\"getFormattingValues\",value:function getFormattingValues(){var values={color:this.options.color.background,borderWidth:this.options.borderWidth,borderColor:this.options.color.border,size:this.options.size,borderDashes:this.options.shapeProperties.borderDashes,borderRadius:this.options.shapeProperties.borderRadius,shadow:this.options.shadow.enabled,shadowColor:this.options.shadow.color,shadowSize:this.options.shadow.size,shadowX:this.options.shadow.x,shadowY:this.options.shadow.y};if(this.selected||this.hover){if(this.chooser===true){if(this.selected){values.borderWidth*=2;values.color=this.options.color.highlight.background;values.borderColor=this.options.color.highlight.border;values.shadow=this.options.shadow.enabled}else if(this.hover){values.color=this.options.color.hover.background;values.borderColor=this.options.color.hover.border;values.shadow=this.options.shadow.enabled}}else if(typeof this.chooser===\"function\"){this.chooser(values,this.options.id,this.selected,this.hover);if(values.shadow===false){if(values.shadowColor!==this.options.shadow.color||values.shadowSize!==this.options.shadow.size||values.shadowX!==this.options.shadow.x||values.shadowY!==this.options.shadow.y){values.shadow=true}}}}else{values.shadow=this.options.shadow.enabled}return values}},{key:\"updateLabelModule\",value:function updateLabelModule(options){if(this.options.label===undefined||this.options.label===null){this.options.label=\"\"}Node.updateGroupOptions(this.options,options,this.grouplist);var currentGroup=this.grouplist.get(this.options.group,false);var pile=[options,this.options,currentGroup,this.globalOptions,this.defaultOptions];this.labelModule.update(this.options,pile);if(this.labelModule.baseSize!==undefined){this.baseFontSize=this.labelModule.baseSize}}},{key:\"updateShape\",value:function updateShape(currentShape){if(currentShape===this.options.shape&&this.shape){this.shape.setOptions(this.options,this.imageObj,this.imageObjAlt)}else{switch(this.options.shape){case\"box\":this.shape=new Box(this.options,this.body,this.labelModule);break;case\"circle\":this.shape=new Circle(this.options,this.body,this.labelModule);break;case\"circularImage\":this.shape=new CircularImage(this.options,this.body,this.labelModule,this.imageObj,this.imageObjAlt);break;case\"database\":this.shape=new Database(this.options,this.body,this.labelModule);break;case\"diamond\":this.shape=new Diamond(this.options,this.body,this.labelModule);break;case\"dot\":this.shape=new Dot(this.options,this.body,this.labelModule);break;case\"ellipse\":this.shape=new Ellipse(this.options,this.body,this.labelModule);break;case\"icon\":this.shape=new Icon(this.options,this.body,this.labelModule);break;case\"image\":this.shape=new Image(this.options,this.body,this.labelModule,this.imageObj,this.imageObjAlt);break;case\"square\":this.shape=new Square(this.options,this.body,this.labelModule);break;case\"hexagon\":this.shape=new Hexagon(this.options,this.body,this.labelModule);break;case\"star\":this.shape=new Star(this.options,this.body,this.labelModule);break;case\"text\":this.shape=new Text(this.options,this.body,this.labelModule);break;case\"triangle\":this.shape=new Triangle(this.options,this.body,this.labelModule);break;case\"triangleDown\":this.shape=new TriangleDown(this.options,this.body,this.labelModule);break;default:this.shape=new Ellipse(this.options,this.body,this.labelModule);break}}this.needsRefresh()}},{key:\"select\",value:function select(){this.selected=true;this.needsRefresh()}},{key:\"unselect\",value:function unselect(){this.selected=false;this.needsRefresh()}},{key:\"needsRefresh\",value:function needsRefresh(){this.shape.refreshNeeded=true}},{key:\"getTitle\",value:function getTitle(){return this.options.title}},{key:\"distanceToBorder\",value:function distanceToBorder(ctx,angle){return this.shape.distanceToBorder(ctx,angle)}},{key:\"isFixed\",value:function isFixed(){return this.options.fixed.x&&this.options.fixed.y}},{key:\"isSelected\",value:function isSelected(){return this.selected}},{key:\"getValue\",value:function getValue(){return this.options.value}},{key:\"getLabelSize\",value:function getLabelSize(){return this.labelModule.size()}},{key:\"setValueRange\",value:function setValueRange(min,max,total){if(this.options.value!==undefined){var scale=this.options.scaling.customScalingFunction(min,max,total,this.options.value);var sizeDiff=this.options.scaling.max-this.options.scaling.min;if(this.options.scaling.label.enabled===true){var fontDiff=this.options.scaling.label.max-this.options.scaling.label.min;this.options.font.size=this.options.scaling.label.min+scale*fontDiff}this.options.size=this.options.scaling.min+scale*sizeDiff}else{this.options.size=this.baseSize;this.options.font.size=this.baseFontSize}this.updateLabelModule()}},{key:\"draw\",value:function draw(ctx){var values=this.getFormattingValues();this.shape.draw(ctx,this.x,this.y,this.selected,this.hover,values)}},{key:\"updateBoundingBox\",value:function updateBoundingBox(ctx){this.shape.updateBoundingBox(this.x,this.y,ctx)}},{key:\"resize\",value:function resize(ctx){var values=this.getFormattingValues();this.shape.resize(ctx,this.selected,this.hover,values)}},{key:\"getItemsOnPoint\",value:function getItemsOnPoint(point){var ret=[];if(this.labelModule.visible()){if(ComponentUtil.pointInRect(this.labelModule.getSize(),point)){ret.push({nodeId:this.id,labelId:0})}}if(ComponentUtil.pointInRect(this.shape.boundingBox,point)){ret.push({nodeId:this.id})}return ret}},{key:\"isOverlappingWith\",value:function isOverlappingWith(obj){return this.shape.left<obj.right&&this.shape.left+this.shape.width>obj.left&&this.shape.top<obj.bottom&&this.shape.top+this.shape.height>obj.top}},{key:\"isBoundingBoxOverlappingWith\",value:function isBoundingBoxOverlappingWith(obj){return this.shape.boundingBox.left<obj.right&&this.shape.boundingBox.right>obj.left&&this.shape.boundingBox.top<obj.bottom&&this.shape.boundingBox.bottom>obj.top}}],[{key:\"updateGroupOptions\",value:function updateGroupOptions(parentOptions,newOptions,groupList){if(groupList===undefined)return;var group=parentOptions.group;if(newOptions!==undefined&&newOptions.group!==undefined&&group!==newOptions.group){throw new Error(\"updateGroupOptions: group values in options don't match.\")}var hasGroup=typeof group===\"number\"||typeof group===\"string\"&&group!=\"\";if(!hasGroup)return;var groupObj=groupList.get(group);util.selectiveNotDeepExtend([\"font\"],parentOptions,groupObj);parentOptions.color=util.parseColor(parentOptions.color)}},{key:\"parseOptions\",value:function parseOptions(parentOptions,newOptions){var allowDeletion=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;var globalOptions=arguments.length>3&&arguments[3]!==undefined?arguments[3]:{};var groupList=arguments[4];var fields=[\"color\",\"fixed\",\"shadow\"];util.selectiveNotDeepExtend(fields,parentOptions,newOptions,allowDeletion);Node.checkMass(newOptions);util.mergeOptions(parentOptions,newOptions,\"shadow\",globalOptions);if(newOptions.color!==undefined&&newOptions.color!==null){var parsedColor=util.parseColor(newOptions.color);util.fillIfDefined(parentOptions.color,parsedColor)}else if(allowDeletion===true&&newOptions.color===null){parentOptions.color=util.bridgeObject(globalOptions.color)}if(newOptions.fixed!==undefined&&newOptions.fixed!==null){if(typeof newOptions.fixed===\"boolean\"){parentOptions.fixed.x=newOptions.fixed;parentOptions.fixed.y=newOptions.fixed}else{if(newOptions.fixed.x!==undefined&&typeof newOptions.fixed.x===\"boolean\"){parentOptions.fixed.x=newOptions.fixed.x}if(newOptions.fixed.y!==undefined&&typeof newOptions.fixed.y===\"boolean\"){parentOptions.fixed.y=newOptions.fixed.y}}}if(allowDeletion===true&&newOptions.font===null){parentOptions.font=util.bridgeObject(globalOptions.font)}Node.updateGroupOptions(parentOptions,newOptions,groupList);if(newOptions.scaling!==undefined){util.mergeOptions(parentOptions.scaling,newOptions.scaling,\"label\",globalOptions.scaling)}}},{key:\"checkMass\",value:function checkMass(options,id){if(options.mass!==undefined&&options.mass<=0){var strId=\"\";if(id!==undefined){strId=\" in node id: \"+id}console.log(\"%cNegative or zero mass disallowed\"+strId+\", setting mass to 1.\",printStyle);options.mass=1}}}]);return Node}();exports[\"default\"]=Node},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var ComponentUtil=function(){function ComponentUtil(){(0,_classCallCheck3[\"default\"])(this,ComponentUtil)}(0,_createClass3[\"default\"])(ComponentUtil,null,[{key:\"choosify\",value:function choosify(subOption,pile){var allowed=[\"node\",\"edge\",\"label\"];var value=true;var chosen=util.topMost(pile,\"chosen\");if(typeof chosen===\"boolean\"){value=chosen}else if((typeof chosen===\"undefined\"?\"undefined\":(0,_typeof3[\"default\"])(chosen))===\"object\"){if(allowed.indexOf(subOption)===-1){throw new Error(\"choosify: subOption '\"+subOption+\"' should be one of \"+\"'\"+allowed.join(\"', '\")+\"'\")}var chosenEdge=util.topMost(pile,[\"chosen\",subOption]);if(typeof chosenEdge===\"boolean\"||typeof chosenEdge===\"function\"){value=chosenEdge}}return value}},{key:\"pointInRect\",value:function pointInRect(rect,point,rotationPoint){if(rect.width<=0||rect.height<=0){return false}if(rotationPoint!==undefined){var tmp={x:point.x-rotationPoint.x,y:point.y-rotationPoint.y};if(rotationPoint.angle!==0){var angle=-rotationPoint.angle;var tmp2={x:Math.cos(angle)*tmp.x-Math.sin(angle)*tmp.y,y:Math.sin(angle)*tmp.x+Math.cos(angle)*tmp.y};point=tmp2}else{point=tmp}}var right=rect.x+rect.width;var bottom=rect.y+rect.width;return rect.left<point.x&&right>point.x&&rect.top<point.y&&bottom>point.y}},{key:\"isValidLabel\",value:function isValidLabel(text){return typeof text===\"string\"&&text!==\"\"}}]);return ComponentUtil}();exports[\"default\"]=ComponentUtil},function(module,exports,__webpack_require__){__webpack_require__(125);var global=__webpack_require__(18);var hide=__webpack_require__(26);var Iterators=__webpack_require__(31);var TO_STRING_TAG=__webpack_require__(13)(\"toStringTag\");var DOMIterables=(\"CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,\"+\"DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,\"+\"MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,\"+\"SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,\"+\"TextTrackList,TouchList\").split(\",\");for(var i=0;i<DOMIterables.length;i++){var NAME=DOMIterables[i];var Collection=global[NAME];var proto=Collection&&Collection.prototype;if(proto&&!proto[TO_STRING_TAG])hide(proto,TO_STRING_TAG,NAME);Iterators[NAME]=Iterators.Array}},function(module,exports){var toString={}.toString;module.exports=function(it){return toString.call(it).slice(8,-1)}},function(module,exports){module.exports=function(it){if(it==undefined)throw TypeError(\"Can't call method on \"+it);return it}},function(module,exports){module.exports=true},function(module,exports,__webpack_require__){var isObject=__webpack_require__(32);module.exports=function(it,S){if(!isObject(it))return it;var fn,val;if(S&&typeof(fn=it.toString)==\"function\"&&!isObject(val=fn.call(it)))return val;if(typeof(fn=it.valueOf)==\"function\"&&!isObject(val=fn.call(it)))return val;if(!S&&typeof(fn=it.toString)==\"function\"&&!isObject(val=fn.call(it)))return val;throw TypeError(\"Can't convert object to primitive value\")}},function(module,exports,__webpack_require__){var anObject=__webpack_require__(27);var dPs=__webpack_require__(130);var enumBugKeys=__webpack_require__(58);var IE_PROTO=__webpack_require__(56)(\"IE_PROTO\")\n;var Empty=function(){};var PROTOTYPE=\"prototype\";var createDict=function(){var iframe=__webpack_require__(82)(\"iframe\");var i=enumBugKeys.length;var lt=\"<\";var gt=\">\";var iframeDocument;iframe.style.display=\"none\";__webpack_require__(134).appendChild(iframe);iframe.src=\"javascript:\";iframeDocument=iframe.contentWindow.document;iframeDocument.open();iframeDocument.write(lt+\"script\"+gt+\"document.F=Object\"+lt+\"/script\"+gt);iframeDocument.close();createDict=iframeDocument.F;while(i--)delete createDict[PROTOTYPE][enumBugKeys[i]];return createDict()};module.exports=Object.create||function create(O,Properties){var result;if(O!==null){Empty[PROTOTYPE]=anObject(O);result=new Empty;Empty[PROTOTYPE]=null;result[IE_PROTO]=O}else result=createDict();return Properties===undefined?result:dPs(result,Properties)}},function(module,exports){var ceil=Math.ceil;var floor=Math.floor;module.exports=function(it){return isNaN(it=+it)?0:(it>0?floor:ceil)(it)}},function(module,exports,__webpack_require__){var shared=__webpack_require__(57)(\"keys\");var uid=__webpack_require__(40);module.exports=function(key){return shared[key]||(shared[key]=uid(key))}},function(module,exports,__webpack_require__){var global=__webpack_require__(18);var SHARED=\"__core-js_shared__\";var store=global[SHARED]||(global[SHARED]={});module.exports=function(key){return store[key]||(store[key]={})}},function(module,exports){module.exports=\"constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf\".split(\",\")},function(module,exports,__webpack_require__){var def=__webpack_require__(20).f;var has=__webpack_require__(22);var TAG=__webpack_require__(13)(\"toStringTag\");module.exports=function(it,tag,stat){if(it&&!has(it=stat?it:it.prototype,TAG))def(it,TAG,{configurable:true,value:tag})}},function(module,exports,__webpack_require__){\"use strict\";var $at=__webpack_require__(135)(true);__webpack_require__(79)(String,\"String\",function(iterated){this._t=String(iterated);this._i=0},function(){var O=this._t;var index=this._i;var point;if(index>=O.length)return{value:undefined,done:true};point=$at(O,index);this._i+=point.length;return{value:point,done:false}})},function(module,exports,__webpack_require__){exports.f=__webpack_require__(13)},function(module,exports,__webpack_require__){var global=__webpack_require__(18);var core=__webpack_require__(7);var LIBRARY=__webpack_require__(52);var wksExt=__webpack_require__(61);var defineProperty=__webpack_require__(20).f;module.exports=function(name){var $Symbol=core.Symbol||(core.Symbol=LIBRARY?{}:global.Symbol||{});if(name.charAt(0)!=\"_\"&&!(name in $Symbol))defineProperty($Symbol,name,{value:wksExt.f(name)})}},function(module,exports){exports.f=Object.getOwnPropertySymbols},function(module,exports,__webpack_require__){\"use strict\";var _keys=__webpack_require__(8);var _keys2=_interopRequireDefault(_keys);var _stringify=__webpack_require__(19);var _stringify2=_interopRequireDefault(_stringify);var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var moment=__webpack_require__(9);var Component=__webpack_require__(16);var DateUtil=__webpack_require__(36);function Range(body,options){var now=moment().hours(0).minutes(0).seconds(0).milliseconds(0);var start=now.clone().add(-3,\"days\").valueOf();var end=now.clone().add(3,\"days\").valueOf();this.millisecondsPerPixelCache=undefined;if(options===undefined){this.start=start;this.end=end}else{this.start=options.start||start;this.end=options.end||end}this.rolling=false;this.body=body;this.deltaDifference=0;this.scaleOffset=0;this.startToFront=false;this.endToFront=true;this.defaultOptions={rtl:false,start:null,end:null,moment:moment,direction:\"horizontal\",moveable:true,zoomable:true,min:null,max:null,zoomMin:10,zoomMax:1e3*60*60*24*365*1e4,rollingMode:{follow:false,offset:.5}};this.options=util.extend({},this.defaultOptions);this.props={touch:{}};this.animationTimer=null;this.body.emitter.on(\"panstart\",this._onDragStart.bind(this));this.body.emitter.on(\"panmove\",this._onDrag.bind(this));this.body.emitter.on(\"panend\",this._onDragEnd.bind(this));this.body.emitter.on(\"mousewheel\",this._onMouseWheel.bind(this));this.body.emitter.on(\"touch\",this._onTouch.bind(this));this.body.emitter.on(\"pinch\",this._onPinch.bind(this));this.body.dom.rollingModeBtn.addEventListener(\"click\",this.startRolling.bind(this));this.setOptions(options)}Range.prototype=new Component;Range.prototype.setOptions=function(options){if(options){var fields=[\"animation\",\"direction\",\"min\",\"max\",\"zoomMin\",\"zoomMax\",\"moveable\",\"zoomable\",\"moment\",\"activate\",\"hiddenDates\",\"zoomKey\",\"rtl\",\"showCurrentTime\",\"rollingMode\",\"horizontalScroll\"];util.selectiveExtend(fields,this.options,options);if(options.rollingMode&&options.rollingMode.follow){this.startRolling()}if(\"start\"in options||\"end\"in options){this.setRange(options.start,options.end)}}};function validateDirection(direction){if(direction!=\"horizontal\"&&direction!=\"vertical\"){throw new TypeError('Unknown direction \"'+direction+'\". '+'Choose \"horizontal\" or \"vertical\".')}}Range.prototype.startRolling=function(){var me=this;function update(){me.stopRolling();me.rolling=true;var interval=me.end-me.start;var t=util.convert(new Date,\"Date\").valueOf();var start=t-interval*me.options.rollingMode.offset;var end=t+interval*(1-me.options.rollingMode.offset);var options={animation:false};me.setRange(start,end,options);var scale=me.conversion(me.body.domProps.center.width).scale;interval=1/scale/10;if(interval<30)interval=30;if(interval>1e3)interval=1e3;me.body.dom.rollingModeBtn.style.visibility=\"hidden\";me.currentTimeTimer=setTimeout(update,interval)}update()};Range.prototype.stopRolling=function(){if(this.currentTimeTimer!==undefined){clearTimeout(this.currentTimeTimer);this.rolling=false;this.body.dom.rollingModeBtn.style.visibility=\"visible\"}};Range.prototype.setRange=function(start,end,options,callback,frameCallback){if(!options){options={}}if(options.byUser!==true){options.byUser=false}var me=this;var finalStart=start!=undefined?util.convert(start,\"Date\").valueOf():null;var finalEnd=end!=undefined?util.convert(end,\"Date\").valueOf():null;this._cancelAnimation();this.millisecondsPerPixelCache=undefined;if(options.animation){var initStart=this.start;var initEnd=this.end;var duration=(0,_typeof3[\"default\"])(options.animation)===\"object\"&&\"duration\"in options.animation?options.animation.duration:500;var easingName=(0,_typeof3[\"default\"])(options.animation)===\"object\"&&\"easingFunction\"in options.animation?options.animation.easingFunction:\"easeInOutQuad\";var easingFunction=util.easingFunctions[easingName];if(!easingFunction){throw new Error(\"Unknown easing function \"+(0,_stringify2[\"default\"])(easingName)+\". \"+\"Choose from: \"+(0,_keys2[\"default\"])(util.easingFunctions).join(\", \"))}var initTime=(new Date).valueOf();var anyChanged=false;var next=function next(){if(!me.props.touch.dragging){var now=(new Date).valueOf();var time=now-initTime;var ease=easingFunction(time/duration);var done=time>duration;var s=done||finalStart===null?finalStart:initStart+(finalStart-initStart)*ease;var e=done||finalEnd===null?finalEnd:initEnd+(finalEnd-initEnd)*ease;changed=me._applyRange(s,e);DateUtil.updateHiddenDates(me.options.moment,me.body,me.options.hiddenDates);anyChanged=anyChanged||changed;var params={start:new Date(me.start),end:new Date(me.end),byUser:options.byUser,event:options.event};if(frameCallback){frameCallback(ease,changed,done)}if(changed){me.body.emitter.emit(\"rangechange\",params)}if(done){if(anyChanged){me.body.emitter.emit(\"rangechanged\",params);if(callback){return callback()}}}else{me.animationTimer=setTimeout(next,20)}}};return next()}else{var changed=this._applyRange(finalStart,finalEnd);DateUtil.updateHiddenDates(this.options.moment,this.body,this.options.hiddenDates);if(changed){var params={start:new Date(this.start),end:new Date(this.end),byUser:options.byUser,event:options.event};this.body.emitter.emit(\"rangechange\",params);clearTimeout(me.timeoutID);me.timeoutID=setTimeout(function(){me.body.emitter.emit(\"rangechanged\",params)},200);if(callback){return callback()}}}};Range.prototype.getMillisecondsPerPixel=function(){if(this.millisecondsPerPixelCache===undefined){this.millisecondsPerPixelCache=(this.end-this.start)/this.body.dom.center.clientWidth}return this.millisecondsPerPixelCache};Range.prototype._cancelAnimation=function(){if(this.animationTimer){clearTimeout(this.animationTimer);this.animationTimer=null}};Range.prototype._applyRange=function(start,end){var newStart=start!=null?util.convert(start,\"Date\").valueOf():this.start,newEnd=end!=null?util.convert(end,\"Date\").valueOf():this.end,max=this.options.max!=null?util.convert(this.options.max,\"Date\").valueOf():null,min=this.options.min!=null?util.convert(this.options.min,\"Date\").valueOf():null,diff;if(isNaN(newStart)||newStart===null){throw new Error('Invalid start \"'+start+'\"')}if(isNaN(newEnd)||newEnd===null){throw new Error('Invalid end \"'+end+'\"')}if(newEnd<newStart){newEnd=newStart}if(min!==null){if(newStart<min){diff=min-newStart;newStart+=diff;newEnd+=diff;if(max!=null){if(newEnd>max){newEnd=max}}}}if(max!==null){if(newEnd>max){diff=newEnd-max;newStart-=diff;newEnd-=diff;if(min!=null){if(newStart<min){newStart=min}}}}if(this.options.zoomMin!==null){var zoomMin=parseFloat(this.options.zoomMin);if(zoomMin<0){zoomMin=0}if(newEnd-newStart<zoomMin){var compensation=.5;if(this.end-this.start===zoomMin&&newStart>=this.start-compensation&&newEnd<=this.end){newStart=this.start;newEnd=this.end}else{diff=zoomMin-(newEnd-newStart);newStart-=diff/2;newEnd+=diff/2}}}if(this.options.zoomMax!==null){var zoomMax=parseFloat(this.options.zoomMax);if(zoomMax<0){zoomMax=0}if(newEnd-newStart>zoomMax){if(this.end-this.start===zoomMax&&newStart<this.start&&newEnd>this.end){newStart=this.start;newEnd=this.end}else{diff=newEnd-newStart-zoomMax;newStart+=diff/2;newEnd-=diff/2}}}var changed=this.start!=newStart||this.end!=newEnd;if(!(newStart>=this.start&&newStart<=this.end||newEnd>=this.start&&newEnd<=this.end)&&!(this.start>=newStart&&this.start<=newEnd||this.end>=newStart&&this.end<=newEnd)){this.body.emitter.emit(\"checkRangedItems\")}this.start=newStart;this.end=newEnd;return changed};Range.prototype.getRange=function(){return{start:this.start,end:this.end}};Range.prototype.conversion=function(width,totalHidden){return Range.conversion(this.start,this.end,width,totalHidden)};Range.conversion=function(start,end,width,totalHidden){if(totalHidden===undefined){totalHidden=0}if(width!=0&&end-start!=0){return{offset:start,scale:width/(end-start-totalHidden)}}else{return{offset:0,scale:1}}};Range.prototype._onDragStart=function(event){this.deltaDifference=0;this.previousDelta=0;if(!this.options.moveable)return;if(!this._isInsideRange(event))return;if(!this.props.touch.allowDragging)return;this.stopRolling();this.props.touch.start=this.start;this.props.touch.end=this.end;this.props.touch.dragging=true;if(this.body.dom.root){this.body.dom.root.style.cursor=\"move\"}};Range.prototype._onDrag=function(event){if(!event)return;if(!this.props.touch.dragging)return;if(!this.options.moveable)return;if(!this.props.touch.allowDragging)return;var direction=this.options.direction;validateDirection(direction);var delta=direction==\"horizontal\"?event.deltaX:event.deltaY;delta-=this.deltaDifference;var interval=this.props.touch.end-this.props.touch.start;var duration=DateUtil.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end);interval-=duration;var width=direction==\"horizontal\"?this.body.domProps.center.width:this.body.domProps.center.height;var diffRange;if(this.options.rtl){diffRange=delta/width*interval}else{diffRange=-delta/width*interval}var newStart=this.props.touch.start+diffRange;var newEnd=this.props.touch.end+diffRange;var safeStart=DateUtil.snapAwayFromHidden(this.body.hiddenDates,newStart,this.previousDelta-delta,true);var safeEnd=DateUtil.snapAwayFromHidden(this.body.hiddenDates,newEnd,this.previousDelta-delta,true);if(safeStart!=newStart||safeEnd!=newEnd){this.deltaDifference+=delta;this.props.touch.start=safeStart;this.props.touch.end=safeEnd;this._onDrag(event);return}this.previousDelta=delta;this._applyRange(newStart,newEnd);var startDate=new Date(this.start);var endDate=new Date(this.end);this.body.emitter.emit(\"rangechange\",{start:startDate,end:endDate,byUser:true,event:event});this.body.emitter.emit(\"panmove\")};Range.prototype._onDragEnd=function(event){if(!this.props.touch.dragging)return;if(!this.options.moveable)return;if(!this.props.touch.allowDragging)return;this.props.touch.dragging=false;if(this.body.dom.root){this.body.dom.root.style.cursor=\"auto\"}this.body.emitter.emit(\"rangechanged\",{start:new Date(this.start),end:new Date(this.end),byUser:true,event:event})};Range.prototype._onMouseWheel=function(event){var delta=0;if(event.wheelDelta){delta=event.wheelDelta/120}else if(event.detail){delta=-event.detail/3}if(this.options.zoomKey&&!event[this.options.zoomKey]&&this.options.zoomable||!this.options.zoomable&&this.options.moveable){return}if(!(this.options.zoomable&&this.options.moveable))return;if(!this._isInsideRange(event))return;if(delta){var scale;if(delta<0){scale=1-delta/5}else{scale=1/(1+delta/5)}var pointerDate;if(this.rolling){pointerDate=this.start+(this.end-this.start)*this.options.rollingMode.offset}else{var pointer=this.getPointer({x:event.clientX,y:event.clientY},this.body.dom.center);pointerDate=this._pointerToDate(pointer)}this.zoom(scale,pointerDate,delta,event);event.preventDefault()}};Range.prototype._onTouch=function(event){this.props.touch.start=this.start;this.props.touch.end=this.end;this.props.touch.allowDragging=true;this.props.touch.center=null;this.scaleOffset=0;this.deltaDifference=0;util.preventDefault(event)};Range.prototype._onPinch=function(event){if(!(this.options.zoomable&&this.options.moveable))return;util.preventDefault(event);this.props.touch.allowDragging=false;if(!this.props.touch.center){this.props.touch.center=this.getPointer(event.center,this.body.dom.center)}this.stopRolling();var scale=1/(event.scale+this.scaleOffset);var centerDate=this._pointerToDate(this.props.touch.center);var hiddenDuration=DateUtil.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end);var hiddenDurationBefore=DateUtil.getHiddenDurationBefore(this.options.moment,this.body.hiddenDates,this,centerDate);var hiddenDurationAfter=hiddenDuration-hiddenDurationBefore;var newStart=centerDate-hiddenDurationBefore+(this.props.touch.start-(centerDate-hiddenDurationBefore))*scale;var newEnd=centerDate+hiddenDurationAfter+(this.props.touch.end-(centerDate+hiddenDurationAfter))*scale;this.startToFront=1-scale<=0;this.endToFront=scale-1<=0;var safeStart=DateUtil.snapAwayFromHidden(this.body.hiddenDates,newStart,1-scale,true);var safeEnd=DateUtil.snapAwayFromHidden(this.body.hiddenDates,newEnd,scale-1,true);if(safeStart!=newStart||safeEnd!=newEnd){this.props.touch.start=safeStart;this.props.touch.end=safeEnd;this.scaleOffset=1-event.scale;newStart=safeStart;newEnd=safeEnd}var options={animation:false,byUser:true,event:event};this.setRange(newStart,newEnd,options);this.startToFront=false;this.endToFront=true};Range.prototype._isInsideRange=function(event){var clientX=event.center?event.center.x:event.clientX;var x;if(this.options.rtl){x=clientX-util.getAbsoluteLeft(this.body.dom.centerContainer)}else{x=util.getAbsoluteRight(this.body.dom.centerContainer)-clientX}var time=this.body.util.toTime(x);return time>=this.start&&time<=this.end};Range.prototype._pointerToDate=function(pointer){var conversion;var direction=this.options.direction;validateDirection(direction);if(direction==\"horizontal\"){return this.body.util.toTime(pointer.x).valueOf()}else{var height=this.body.domProps.center.height;conversion=this.conversion(height);return pointer.y/conversion.scale+conversion.offset}};Range.prototype.getPointer=function(touch,element){if(this.options.rtl){return{x:util.getAbsoluteRight(element)-touch.x,y:touch.y-util.getAbsoluteTop(element)}}else{return{x:touch.x-util.getAbsoluteLeft(element),y:touch.y-util.getAbsoluteTop(element)}}};Range.prototype.zoom=function(scale,center,delta,event){if(center==null){center=(this.start+this.end)/2}var hiddenDuration=DateUtil.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end);var hiddenDurationBefore=DateUtil.getHiddenDurationBefore(this.options.moment,this.body.hiddenDates,this,center);var hiddenDurationAfter=hiddenDuration-hiddenDurationBefore;var newStart=center-hiddenDurationBefore+(this.start-(center-hiddenDurationBefore))*scale;var newEnd=center+hiddenDurationAfter+(this.end-(center+hiddenDurationAfter))*scale;this.startToFront=delta>0?false:true;this.endToFront=-delta>0?false:true;var safeStart=DateUtil.snapAwayFromHidden(this.body.hiddenDates,newStart,delta,true);var safeEnd=DateUtil.snapAwayFromHidden(this.body.hiddenDates,newEnd,-delta,true);if(safeStart!=newStart||safeEnd!=newEnd){newStart=safeStart;newEnd=safeEnd}var options={animation:false,byUser:true,event:event};this.setRange(newStart,newEnd,options);this.startToFront=false;this.endToFront=true};Range.prototype.move=function(delta){var diff=this.end-this.start;var newStart=this.start+diff*delta;var newEnd=this.end+diff*delta;this.start=newStart;this.end=newEnd};Range.prototype.moveTo=function(moveTo){var center=(this.start+this.end)/2;var diff=center-moveTo;var newStart=this.start-diff;var newEnd=this.end-diff;var options={animation:false,byUser:true,event:null};this.setRange(newStart,newEnd,options)};module.exports=Range},function(module,exports,__webpack_require__){\"use strict\";var _stringify=__webpack_require__(19);var _stringify2=_interopRequireDefault(_stringify);var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Emitter=__webpack_require__(44);var Hammer=__webpack_require__(10);var hammerUtil=__webpack_require__(37);var util=__webpack_require__(2);var TimeAxis=__webpack_require__(45);var Activator=__webpack_require__(97);var DateUtil=__webpack_require__(36);var CustomTime=__webpack_require__(46);function Core(){}Emitter(Core.prototype);Core.prototype._create=function(container){this.dom={};this.dom.container=container;this.dom.root=document.createElement(\"div\");this.dom.background=document.createElement(\"div\");this.dom.backgroundVertical=document.createElement(\"div\");this.dom.backgroundHorizontal=document.createElement(\"div\");this.dom.centerContainer=document.createElement(\"div\");this.dom.leftContainer=document.createElement(\"div\");this.dom.rightContainer=document.createElement(\"div\");this.dom.center=document.createElement(\"div\");this.dom.left=document.createElement(\"div\");this.dom.right=document.createElement(\"div\");this.dom.top=document.createElement(\"div\");this.dom.bottom=document.createElement(\"div\");this.dom.shadowTop=document.createElement(\"div\");this.dom.shadowBottom=document.createElement(\"div\");this.dom.shadowTopLeft=document.createElement(\"div\");this.dom.shadowBottomLeft=document.createElement(\"div\");this.dom.shadowTopRight=document.createElement(\"div\");this.dom.shadowBottomRight=document.createElement(\"div\");this.dom.rollingModeBtn=document.createElement(\"div\");this.dom.root.className=\"vis-timeline\";this.dom.background.className=\"vis-panel vis-background\";this.dom.backgroundVertical.className=\"vis-panel vis-background vis-vertical\";this.dom.backgroundHorizontal.className=\"vis-panel vis-background vis-horizontal\";this.dom.centerContainer.className=\"vis-panel vis-center\";this.dom.leftContainer.className=\"vis-panel vis-left\";this.dom.rightContainer.className=\"vis-panel vis-right\";this.dom.top.className=\"vis-panel vis-top\";this.dom.bottom.className=\"vis-panel vis-bottom\";this.dom.left.className=\"vis-content\";this.dom.center.className=\"vis-content\";this.dom.right.className=\"vis-content\";this.dom.shadowTop.className=\"vis-shadow vis-top\";this.dom.shadowBottom.className=\"vis-shadow vis-bottom\";this.dom.shadowTopLeft.className=\"vis-shadow vis-top\";this.dom.shadowBottomLeft.className=\"vis-shadow vis-bottom\";this.dom.shadowTopRight.className=\"vis-shadow vis-top\";this.dom.shadowBottomRight.className=\"vis-shadow vis-bottom\";this.dom.rollingModeBtn.className=\"vis-rolling-mode-btn\";this.dom.root.appendChild(this.dom.background);this.dom.root.appendChild(this.dom.backgroundVertical);this.dom.root.appendChild(this.dom.backgroundHorizontal);this.dom.root.appendChild(this.dom.centerContainer);this.dom.root.appendChild(this.dom.leftContainer);this.dom.root.appendChild(this.dom.rightContainer);this.dom.root.appendChild(this.dom.top);this.dom.root.appendChild(this.dom.bottom);this.dom.root.appendChild(this.dom.bottom);this.dom.root.appendChild(this.dom.rollingModeBtn);this.dom.centerContainer.appendChild(this.dom.center);this.dom.leftContainer.appendChild(this.dom.left);this.dom.rightContainer.appendChild(this.dom.right);this.dom.centerContainer.appendChild(this.dom.shadowTop);this.dom.centerContainer.appendChild(this.dom.shadowBottom);this.dom.leftContainer.appendChild(this.dom.shadowTopLeft);this.dom.leftContainer.appendChild(this.dom.shadowBottomLeft);this.dom.rightContainer.appendChild(this.dom.shadowTopRight);this.dom.rightContainer.appendChild(this.dom.shadowBottomRight);this.props={root:{},background:{},centerContainer:{},leftContainer:{},rightContainer:{},center:{},left:{},right:{},top:{},bottom:{},border:{},scrollTop:0,scrollTopMin:0};this.on(\"rangechange\",function(){if(this.initialDrawDone===true){this._redraw()}}.bind(this));this.on(\"rangechanged\",function(){if(!this.initialRangeChangeDone){this.initialRangeChangeDone=true}}.bind(this));this.on(\"touch\",this._onTouch.bind(this));this.on(\"panmove\",this._onDrag.bind(this));var me=this;this._origRedraw=this._redraw.bind(this);this._redraw=util.throttle(this._origRedraw);this.on(\"_change\",function(properties){if(me.itemSet&&me.itemSet.initialItemSetDrawn&&properties&&properties.queue==true){me._redraw()}else{me._origRedraw()}});this.hammer=new Hammer(this.dom.root);var pinchRecognizer=this.hammer.get(\"pinch\").set({enable:true});hammerUtil.disablePreventDefaultVertically(pinchRecognizer);this.hammer.get(\"pan\").set({threshold:5,direction:Hammer.DIRECTION_HORIZONTAL});this.listeners={};var events=[\"tap\",\"doubletap\",\"press\",\"pinch\",\"pan\",\"panstart\",\"panmove\",\"panend\"];events.forEach(function(type){var listener=function listener(event){if(me.isActive()){me.emit(type,event)}};me.hammer.on(type,listener);me.listeners[type]=listener});hammerUtil.onTouch(this.hammer,function(event){me.emit(\"touch\",event)}.bind(this));hammerUtil.onRelease(this.hammer,function(event){me.emit(\"release\",event)}.bind(this));function onMouseWheel(event){if(this.isActive()){this.emit(\"mousewheel\",event)}var deltaX=0;var deltaY=0;if(\"detail\"in event){deltaY=event.detail*-1}if(\"wheelDelta\"in event){deltaY=event.wheelDelta}if(\"wheelDeltaY\"in event){deltaY=event.wheelDeltaY}if(\"wheelDeltaX\"in event){deltaX=event.wheelDeltaX*-1}if(\"axis\"in event&&event.axis===event.HORIZONTAL_AXIS){deltaX=deltaY*-1;deltaY=0}if(\"deltaY\"in event){deltaY=event.deltaY*-1}if(\"deltaX\"in event){deltaX=event.deltaX}if(!this.options.zoomKey||event[this.options.zoomKey])return;event.preventDefault();if(this.options.verticalScroll&&Math.abs(deltaY)>=Math.abs(deltaX)){var current=this.props.scrollTop;var adjusted=current+deltaY;if(this.isActive()){this._setScrollTop(adjusted);this._redraw();this.emit(\"scroll\",event)}}else if(this.options.horizontalScroll){var delta=Math.abs(deltaX)>=Math.abs(deltaY)?deltaX:deltaY;var diff=delta/120*(this.range.end-this.range.start)/20;var newStart=this.range.start+diff;var newEnd=this.range.end+diff;var options={animation:false,byUser:true,event:event};this.range.setRange(newStart,newEnd,options)}}if(this.dom.centerContainer.addEventListener){this.dom.centerContainer.addEventListener(\"mousewheel\",onMouseWheel.bind(this),false);this.dom.centerContainer.addEventListener(\"DOMMouseScroll\",onMouseWheel.bind(this),false)}else{this.dom.centerContainer.attachEvent(\"onmousewheel\",onMouseWheel.bind(this))}function onMouseScrollSide(event){if(!me.options.verticalScroll)return;event.preventDefault();if(me.isActive()){var adjusted=-event.target.scrollTop;me._setScrollTop(adjusted);me._redraw();me.emit(\"scrollSide\",event)}}this.dom.left.parentNode.addEventListener(\"scroll\",onMouseScrollSide.bind(this));this.dom.right.parentNode.addEventListener(\"scroll\",onMouseScrollSide.bind(this));var itemAddedToTimeline=false;function handleDragOver(event){if(event.preventDefault){event.preventDefault()}if(!event.target.className.indexOf(\"vis\")>-1)return;if(itemAddedToTimeline)return;event.dataTransfer.dropEffect=\"move\";itemAddedToTimeline=true;return false}function handleDrop(event){if(event.preventDefault){event.preventDefault()}if(event.stopPropagation){event.stopPropagation()}try{var itemData=JSON.parse(event.dataTransfer.getData(\"text\"));if(!itemData||!itemData.content)return}catch(err){return false}itemAddedToTimeline=false;event.center={x:event.clientX,y:event.clientY};if(itemData.target!==\"item\"){me.itemSet._onAddItem(event)}else{me.itemSet._onDropObjectOnItem(event)}me.emit(\"drop\",me.getEventProperties(event));return false}this.dom.center.addEventListener(\"dragover\",handleDragOver.bind(this),false);this.dom.center.addEventListener(\"drop\",handleDrop.bind(this),false);this.customTimes=[];this.touch={};this.redrawCount=0;this.initialDrawDone=false;this.initialRangeChangeDone=false;if(!container)throw new Error(\"No container provided\");container.appendChild(this.dom.root)};Core.prototype.setOptions=function(options){if(options){var fields=[\"width\",\"height\",\"minHeight\",\"maxHeight\",\"autoResize\",\"start\",\"end\",\"clickToUse\",\"dataAttributes\",\"hiddenDates\",\"locale\",\"locales\",\"moment\",\"rtl\",\"zoomKey\",\"horizontalScroll\",\"verticalScroll\"];util.selectiveExtend(fields,this.options,options);this.dom.rollingModeBtn.style.visibility=\"hidden\";if(this.options.rtl){this.dom.container.style.direction=\"rtl\";this.dom.backgroundVertical.className=\"vis-panel vis-background vis-vertical-rtl\"}if(this.options.verticalScroll){if(this.options.rtl){this.dom.rightContainer.className=\"vis-panel vis-right vis-vertical-scroll\"}else{this.dom.leftContainer.className=\"vis-panel vis-left vis-vertical-scroll\"}}if((0,_typeof3[\"default\"])(this.options.orientation)!==\"object\"){this.options.orientation={item:undefined,axis:undefined}}if(\"orientation\"in options){if(typeof options.orientation===\"string\"){this.options.orientation={item:options.orientation,axis:options.orientation}}else if((0,_typeof3[\"default\"])(options.orientation)===\"object\"){if(\"item\"in options.orientation){this.options.orientation.item=options.orientation.item}if(\"axis\"in options.orientation){this.options.orientation.axis=options.orientation.axis}}}if(this.options.orientation.axis===\"both\"){if(!this.timeAxis2){var timeAxis2=this.timeAxis2=new TimeAxis(this.body);timeAxis2.setOptions=function(options){var _options=options?util.extend({},options):{};_options.orientation=\"top\";TimeAxis.prototype.setOptions.call(timeAxis2,_options)};this.components.push(timeAxis2)}}else{if(this.timeAxis2){var index=this.components.indexOf(this.timeAxis2);if(index!==-1){this.components.splice(index,1)}this.timeAxis2.destroy();this.timeAxis2=null}}if(typeof options.drawPoints==\"function\"){options.drawPoints={onRender:options.drawPoints}}if(\"hiddenDates\"in this.options){DateUtil.convertHiddenOptions(this.options.moment,this.body,this.options.hiddenDates)}if(\"clickToUse\"in options){if(options.clickToUse){if(!this.activator){this.activator=new Activator(this.dom.root)}}else{if(this.activator){this.activator.destroy();delete this.activator}}}if(\"showCustomTime\"in options){throw new Error(\"Option `showCustomTime` is deprecated. Create a custom time bar via timeline.addCustomTime(time [, id])\")}this._initAutoResize()}this.components.forEach(function(component){return component.setOptions(options)});if(\"configure\"in options){if(!this.configurator){this.configurator=this._createConfigurator()}this.configurator.setOptions(options.configure);var appliedOptions=util.deepExtend({},this.options);this.components.forEach(function(component){util.deepExtend(appliedOptions,component.options)});this.configurator.setModuleOptions({global:appliedOptions})}this._redraw()};Core.prototype.isActive=function(){return!this.activator||this.activator.active};Core.prototype.destroy=function(){this.setItems(null);this.setGroups(null);this.off();this._stopAutoResize();if(this.dom.root.parentNode){this.dom.root.parentNode.removeChild(this.dom.root)}this.dom=null;if(this.activator){this.activator.destroy();delete this.activator}for(var event in this.listeners){if(this.listeners.hasOwnProperty(event)){delete this.listeners[event]}}this.listeners=null;this.hammer=null;this.components.forEach(function(component){return component.destroy()});this.body=null};Core.prototype.setCustomTime=function(time,id){var customTimes=this.customTimes.filter(function(component){return id===component.options.id});if(customTimes.length===0){throw new Error(\"No custom time bar found with id \"+(0,_stringify2[\"default\"])(id))}if(customTimes.length>0){customTimes[0].setCustomTime(time)}};Core.prototype.getCustomTime=function(id){var customTimes=this.customTimes.filter(function(component){return component.options.id===id});if(customTimes.length===0){throw new Error(\"No custom time bar found with id \"+(0,_stringify2[\"default\"])(id))}return customTimes[0].getCustomTime()};Core.prototype.setCustomTimeTitle=function(title,id){var customTimes=this.customTimes.filter(function(component){return component.options.id===id});if(customTimes.length===0){throw new Error(\"No custom time bar found with id \"+(0,_stringify2[\"default\"])(id))}if(customTimes.length>0){return customTimes[0].setCustomTitle(title)}};Core.prototype.getEventProperties=function(event){return{event:event}};Core.prototype.addCustomTime=function(time,id){var timestamp=time!==undefined?util.convert(time,\"Date\").valueOf():new Date;var exists=this.customTimes.some(function(customTime){return customTime.options.id===id});if(exists){throw new Error(\"A custom time with id \"+(0,_stringify2[\"default\"])(id)+\" already exists\")}var customTime=new CustomTime(this.body,util.extend({},this.options,{time:timestamp,id:id}));this.customTimes.push(customTime);this.components.push(customTime);this._redraw();return id};Core.prototype.removeCustomTime=function(id){var customTimes=this.customTimes.filter(function(bar){return bar.options.id===id});if(customTimes.length===0){throw new Error(\"No custom time bar found with id \"+(0,_stringify2[\"default\"])(id))}customTimes.forEach(function(customTime){this.customTimes.splice(this.customTimes.indexOf(customTime),1);this.components.splice(this.components.indexOf(customTime),1);customTime.destroy()}.bind(this))};Core.prototype.getVisibleItems=function(){return this.itemSet&&this.itemSet.getVisibleItems()||[]};Core.prototype.fit=function(options,callback){var range=this.getDataRange();if(range.min===null&&range.max===null){return}var interval=range.max-range.min;var min=new Date(range.min.valueOf()-interval*.01);var max=new Date(range.max.valueOf()+interval*.01);var animation=options&&options.animation!==undefined?options.animation:true;this.range.setRange(min,max,{animation:animation},callback)};Core.prototype.getDataRange=function(){throw new Error(\"Cannot invoke abstract method getDataRange\")};Core.prototype.setWindow=function(start,end,options,callback){if(typeof arguments[2]==\"function\"){callback=arguments[2];options={}}var animation;var range;if(arguments.length==1){range=arguments[0];animation=range.animation!==undefined?range.animation:true;this.range.setRange(range.start,range.end,{animation:animation})}else if(arguments.length==2&&typeof arguments[1]==\"function\"){range=arguments[0];callback=arguments[1];animation=range.animation!==undefined?range.animation:true\n;this.range.setRange(range.start,range.end,{animation:animation},callback)}else{animation=options&&options.animation!==undefined?options.animation:true;this.range.setRange(start,end,{animation:animation},callback)}};Core.prototype.moveTo=function(time,options,callback){if(typeof arguments[1]==\"function\"){callback=arguments[1];options={}}var interval=this.range.end-this.range.start;var t=util.convert(time,\"Date\").valueOf();var start=t-interval/2;var end=t+interval/2;var animation=options&&options.animation!==undefined?options.animation:true;this.range.setRange(start,end,{animation:animation},callback)};Core.prototype.getWindow=function(){var range=this.range.getRange();return{start:new Date(range.start),end:new Date(range.end)}};Core.prototype.zoomIn=function(percentage,options,callback){if(!percentage||percentage<0||percentage>1)return;if(typeof arguments[1]==\"function\"){callback=arguments[1];options={}}var range=this.getWindow();var start=range.start.valueOf();var end=range.end.valueOf();var interval=end-start;var newInterval=interval/(1+percentage);var distance=(interval-newInterval)/2;var newStart=start+distance;var newEnd=end-distance;this.setWindow(newStart,newEnd,options,callback)};Core.prototype.zoomOut=function(percentage,options,callback){if(!percentage||percentage<0||percentage>1)return;if(typeof arguments[1]==\"function\"){callback=arguments[1];options={}}var range=this.getWindow();var start=range.start.valueOf();var end=range.end.valueOf();var interval=end-start;var newStart=start-interval*percentage/2;var newEnd=end+interval*percentage/2;this.setWindow(newStart,newEnd,options,callback)};Core.prototype.redraw=function(){this._redraw()};Core.prototype._redraw=function(){this.redrawCount++;var resized=false;var options=this.options;var props=this.props;var dom=this.dom;if(!dom||!dom.container||dom.root.offsetWidth==0)return;DateUtil.updateHiddenDates(this.options.moment,this.body,this.options.hiddenDates);if(options.orientation==\"top\"){util.addClassName(dom.root,\"vis-top\");util.removeClassName(dom.root,\"vis-bottom\")}else{util.removeClassName(dom.root,\"vis-top\");util.addClassName(dom.root,\"vis-bottom\")}dom.root.style.maxHeight=util.option.asSize(options.maxHeight,\"\");dom.root.style.minHeight=util.option.asSize(options.minHeight,\"\");dom.root.style.width=util.option.asSize(options.width,\"\");props.border.left=(dom.centerContainer.offsetWidth-dom.centerContainer.clientWidth)/2;props.border.right=props.border.left;props.border.top=(dom.centerContainer.offsetHeight-dom.centerContainer.clientHeight)/2;props.border.bottom=props.border.top;props.borderRootHeight=dom.root.offsetHeight-dom.root.clientHeight;props.borderRootWidth=dom.root.offsetWidth-dom.root.clientWidth;if(dom.centerContainer.clientHeight===0){props.border.left=props.border.top;props.border.right=props.border.left}if(dom.root.clientHeight===0){props.borderRootWidth=props.borderRootHeight}props.center.height=dom.center.offsetHeight;props.left.height=dom.left.offsetHeight;props.right.height=dom.right.offsetHeight;props.top.height=dom.top.clientHeight||-props.border.top;props.bottom.height=dom.bottom.clientHeight||-props.border.bottom;var contentHeight=Math.max(props.left.height,props.center.height,props.right.height);var autoHeight=props.top.height+contentHeight+props.bottom.height+props.borderRootHeight+props.border.top+props.border.bottom;dom.root.style.height=util.option.asSize(options.height,autoHeight+\"px\");props.root.height=dom.root.offsetHeight;props.background.height=props.root.height-props.borderRootHeight;var containerHeight=props.root.height-props.top.height-props.bottom.height-props.borderRootHeight;props.centerContainer.height=containerHeight;props.leftContainer.height=containerHeight;props.rightContainer.height=props.leftContainer.height;props.root.width=dom.root.offsetWidth;props.background.width=props.root.width-props.borderRootWidth;if(!this.initialDrawDone){props.scrollbarWidth=util.getScrollBarWidth()}if(options.verticalScroll){if(options.rtl){props.left.width=dom.leftContainer.clientWidth||-props.border.left;props.right.width=dom.rightContainer.clientWidth+props.scrollbarWidth||-props.border.right}else{props.left.width=dom.leftContainer.clientWidth+props.scrollbarWidth||-props.border.left;props.right.width=dom.rightContainer.clientWidth||-props.border.right}}else{props.left.width=dom.leftContainer.clientWidth||-props.border.left;props.right.width=dom.rightContainer.clientWidth||-props.border.right}this._setDOM();var offset=this._updateScrollTop();if(options.orientation.item!=\"top\"){offset+=Math.max(props.centerContainer.height-props.center.height-props.border.top-props.border.bottom,0)}dom.center.style.top=offset+\"px\";var visibilityTop=props.scrollTop==0?\"hidden\":\"\";var visibilityBottom=props.scrollTop==props.scrollTopMin?\"hidden\":\"\";dom.shadowTop.style.visibility=visibilityTop;dom.shadowBottom.style.visibility=visibilityBottom;dom.shadowTopLeft.style.visibility=visibilityTop;dom.shadowBottomLeft.style.visibility=visibilityBottom;dom.shadowTopRight.style.visibility=visibilityTop;dom.shadowBottomRight.style.visibility=visibilityBottom;if(options.verticalScroll){dom.rightContainer.className=\"vis-panel vis-right vis-vertical-scroll\";dom.leftContainer.className=\"vis-panel vis-left vis-vertical-scroll\";dom.shadowTopRight.style.visibility=\"hidden\";dom.shadowBottomRight.style.visibility=\"hidden\";dom.shadowTopLeft.style.visibility=\"hidden\";dom.shadowBottomLeft.style.visibility=\"hidden\";dom.left.style.top=\"0px\";dom.right.style.top=\"0px\"}if(!options.verticalScroll||props.center.height<props.centerContainer.height){dom.left.style.top=offset+\"px\";dom.right.style.top=offset+\"px\";dom.rightContainer.className=dom.rightContainer.className.replace(new RegExp(\"(?:^|\\\\s)\"+\"vis-vertical-scroll\"+\"(?:\\\\s|$)\"),\" \");dom.leftContainer.className=dom.leftContainer.className.replace(new RegExp(\"(?:^|\\\\s)\"+\"vis-vertical-scroll\"+\"(?:\\\\s|$)\"),\" \");props.left.width=dom.leftContainer.clientWidth||-props.border.left;props.right.width=dom.rightContainer.clientWidth||-props.border.right;this._setDOM()}var contentsOverflow=props.center.height>props.centerContainer.height;this.hammer.get(\"pan\").set({direction:contentsOverflow?Hammer.DIRECTION_ALL:Hammer.DIRECTION_HORIZONTAL});this.components.forEach(function(component){resized=component.redraw()||resized});var MAX_REDRAW=5;if(resized){if(this.redrawCount<MAX_REDRAW){this.body.emitter.emit(\"_change\");return}else{console.log(\"WARNING: infinite loop in redraw?\")}}else{this.redrawCount=0}this.body.emitter.emit(\"changed\")};Core.prototype._setDOM=function(){var props=this.props;var dom=this.dom;props.leftContainer.width=props.left.width;props.rightContainer.width=props.right.width;var centerWidth=props.root.width-props.left.width-props.right.width-props.borderRootWidth;props.center.width=centerWidth;props.centerContainer.width=centerWidth;props.top.width=centerWidth;props.bottom.width=centerWidth;dom.background.style.height=props.background.height+\"px\";dom.backgroundVertical.style.height=props.background.height+\"px\";dom.backgroundHorizontal.style.height=props.centerContainer.height+\"px\";dom.centerContainer.style.height=props.centerContainer.height+\"px\";dom.leftContainer.style.height=props.leftContainer.height+\"px\";dom.rightContainer.style.height=props.rightContainer.height+\"px\";dom.background.style.width=props.background.width+\"px\";dom.backgroundVertical.style.width=props.centerContainer.width+\"px\";dom.backgroundHorizontal.style.width=props.background.width+\"px\";dom.centerContainer.style.width=props.center.width+\"px\";dom.top.style.width=props.top.width+\"px\";dom.bottom.style.width=props.bottom.width+\"px\";dom.background.style.left=\"0\";dom.background.style.top=\"0\";dom.backgroundVertical.style.left=props.left.width+props.border.left+\"px\";dom.backgroundVertical.style.top=\"0\";dom.backgroundHorizontal.style.left=\"0\";dom.backgroundHorizontal.style.top=props.top.height+\"px\";dom.centerContainer.style.left=props.left.width+\"px\";dom.centerContainer.style.top=props.top.height+\"px\";dom.leftContainer.style.left=\"0\";dom.leftContainer.style.top=props.top.height+\"px\";dom.rightContainer.style.left=props.left.width+props.center.width+\"px\";dom.rightContainer.style.top=props.top.height+\"px\";dom.top.style.left=props.left.width+\"px\";dom.top.style.top=\"0\";dom.bottom.style.left=props.left.width+\"px\";dom.bottom.style.top=props.top.height+props.centerContainer.height+\"px\";dom.center.style.left=\"0\";dom.left.style.left=\"0\";dom.right.style.left=\"0\"};Core.prototype.repaint=function(){throw new Error(\"Function repaint is deprecated. Use redraw instead.\")};Core.prototype.setCurrentTime=function(time){if(!this.currentTime){throw new Error(\"Option showCurrentTime must be true\")}this.currentTime.setCurrentTime(time)};Core.prototype.getCurrentTime=function(){if(!this.currentTime){throw new Error(\"Option showCurrentTime must be true\")}return this.currentTime.getCurrentTime()};Core.prototype._toTime=function(x){return DateUtil.toTime(this,x,this.props.center.width)};Core.prototype._toGlobalTime=function(x){return DateUtil.toTime(this,x,this.props.root.width)};Core.prototype._toScreen=function(time){return DateUtil.toScreen(this,time,this.props.center.width)};Core.prototype._toGlobalScreen=function(time){return DateUtil.toScreen(this,time,this.props.root.width)};Core.prototype._initAutoResize=function(){if(this.options.autoResize==true){this._startAutoResize()}else{this._stopAutoResize()}};Core.prototype._startAutoResize=function(){var me=this;this._stopAutoResize();this._onResize=function(){if(me.options.autoResize!=true){me._stopAutoResize();return}if(me.dom.root){if(me.dom.root.offsetWidth!=me.props.lastWidth||me.dom.root.offsetHeight!=me.props.lastHeight){me.props.lastWidth=me.dom.root.offsetWidth;me.props.lastHeight=me.dom.root.offsetHeight;me.props.scrollbarWidth=util.getScrollBarWidth();me.body.emitter.emit(\"_change\")}}};util.addEventListener(window,\"resize\",this._onResize);if(me.dom.root){me.props.lastWidth=me.dom.root.offsetWidth;me.props.lastHeight=me.dom.root.offsetHeight}this.watchTimer=setInterval(this._onResize,1e3)};Core.prototype._stopAutoResize=function(){if(this.watchTimer){clearInterval(this.watchTimer);this.watchTimer=undefined}if(this._onResize){util.removeEventListener(window,\"resize\",this._onResize);this._onResize=null}};Core.prototype._onTouch=function(event){this.touch.allowDragging=true;this.touch.initialScrollTop=this.props.scrollTop};Core.prototype._onPinch=function(event){this.touch.allowDragging=false};Core.prototype._onDrag=function(event){if(!event)return;if(!this.touch.allowDragging)return;var delta=event.deltaY;var oldScrollTop=this._getScrollTop();var newScrollTop=this._setScrollTop(this.touch.initialScrollTop+delta);if(this.options.verticalScroll){this.dom.left.parentNode.scrollTop=-this.props.scrollTop;this.dom.right.parentNode.scrollTop=-this.props.scrollTop}if(newScrollTop!=oldScrollTop){this.emit(\"verticalDrag\")}};Core.prototype._setScrollTop=function(scrollTop){this.props.scrollTop=scrollTop;this._updateScrollTop();return this.props.scrollTop};Core.prototype._updateScrollTop=function(){var scrollTopMin=Math.min(this.props.centerContainer.height-this.props.center.height,0);if(scrollTopMin!=this.props.scrollTopMin){if(this.options.orientation.item!=\"top\"){this.props.scrollTop+=scrollTopMin-this.props.scrollTopMin}this.props.scrollTopMin=scrollTopMin}if(this.props.scrollTop>0)this.props.scrollTop=0;if(this.props.scrollTop<scrollTopMin)this.props.scrollTop=scrollTopMin;if(this.options.verticalScroll){this.dom.left.parentNode.scrollTop=-this.props.scrollTop;this.dom.right.parentNode.scrollTop=-this.props.scrollTop}return this.props.scrollTop};Core.prototype._getScrollTop=function(){return this.props.scrollTop};Core.prototype._createConfigurator=function(){throw new Error(\"Cannot invoke abstract method _createConfigurator\")};module.exports=Core},function(module,exports,__webpack_require__){\"use strict\";var moment=__webpack_require__(9);var DateUtil=__webpack_require__(36);var util=__webpack_require__(2);function TimeStep(start,end,minimumStep,hiddenDates,options){this.moment=moment;this.current=this.moment();this._start=this.moment();this._end=this.moment();this.autoScale=true;this.scale=\"day\";this.step=1;this.setRange(start,end,minimumStep);this.switchedDay=false;this.switchedMonth=false;this.switchedYear=false;if(Array.isArray(hiddenDates)){this.hiddenDates=hiddenDates}else if(hiddenDates!=undefined){this.hiddenDates=[hiddenDates]}else{this.hiddenDates=[]}this.format=TimeStep.FORMAT;this.options=options?options:{}}TimeStep.FORMAT={minorLabels:{millisecond:\"SSS\",second:\"s\",minute:\"HH:mm\",hour:\"HH:mm\",weekday:\"ddd D\",day:\"D\",week:\"w\",month:\"MMM\",year:\"YYYY\"},majorLabels:{millisecond:\"HH:mm:ss\",second:\"D MMMM HH:mm\",minute:\"ddd D MMMM\",hour:\"ddd D MMMM\",weekday:\"MMMM YYYY\",day:\"MMMM YYYY\",week:\"MMMM YYYY\",month:\"YYYY\",year:\"\"}};TimeStep.prototype.setMoment=function(moment){this.moment=moment;this.current=this.moment(this.current.valueOf());this._start=this.moment(this._start.valueOf());this._end=this.moment(this._end.valueOf())};TimeStep.prototype.setFormat=function(format){var defaultFormat=util.deepExtend({},TimeStep.FORMAT);this.format=util.deepExtend(defaultFormat,format)};TimeStep.prototype.setRange=function(start,end,minimumStep){if(!(start instanceof Date)||!(end instanceof Date)){throw\"No legal start or end date in method setRange\"}this._start=start!=undefined?this.moment(start.valueOf()):new Date;this._end=end!=undefined?this.moment(end.valueOf()):new Date;if(this.autoScale){this.setMinimumStep(minimumStep)}};TimeStep.prototype.start=function(){this.current=this._start.clone();this.roundToMinor()};TimeStep.prototype.roundToMinor=function(){if(this.scale==\"week\"){this.current.weekday(0)}switch(this.scale){case\"year\":this.current.year(this.step*Math.floor(this.current.year()/this.step));this.current.month(0);case\"month\":this.current.date(1);case\"week\":case\"day\":case\"weekday\":this.current.hours(0);case\"hour\":this.current.minutes(0);case\"minute\":this.current.seconds(0);case\"second\":this.current.milliseconds(0)}if(this.step!=1){switch(this.scale){case\"millisecond\":this.current.subtract(this.current.milliseconds()%this.step,\"milliseconds\");break;case\"second\":this.current.subtract(this.current.seconds()%this.step,\"seconds\");break;case\"minute\":this.current.subtract(this.current.minutes()%this.step,\"minutes\");break;case\"hour\":this.current.subtract(this.current.hours()%this.step,\"hours\");break;case\"weekday\":case\"day\":this.current.subtract((this.current.date()-1)%this.step,\"day\");break;case\"week\":this.current.subtract(this.current.week()%this.step,\"week\");break;case\"month\":this.current.subtract(this.current.month()%this.step,\"month\");break;case\"year\":this.current.subtract(this.current.year()%this.step,\"year\");break;default:break}}};TimeStep.prototype.hasNext=function(){return this.current.valueOf()<=this._end.valueOf()};TimeStep.prototype.next=function(){var prev=this.current.valueOf();switch(this.scale){case\"millisecond\":this.current.add(this.step,\"millisecond\");break;case\"second\":this.current.add(this.step,\"second\");break;case\"minute\":this.current.add(this.step,\"minute\");break;case\"hour\":this.current.add(this.step,\"hour\");if(this.current.month()<6){this.current.subtract(this.current.hours()%this.step,\"hour\")}else{if(this.current.hours()%this.step!==0){this.current.add(this.step-this.current.hours()%this.step,\"hour\")}}break;case\"weekday\":case\"day\":this.current.add(this.step,\"day\");break;case\"week\":if(this.current.weekday()!==0){this.current.weekday(0);this.current.add(this.step,\"week\")}else if(this.options.showMajorLabels===false){this.current.add(this.step,\"week\")}else{var nextWeek=this.current.clone();nextWeek.add(1,\"week\");if(nextWeek.isSame(this.current,\"month\")){this.current.add(this.step,\"week\")}else{this.current.add(this.step,\"week\");this.current.date(1)}}break;case\"month\":this.current.add(this.step,\"month\");break;case\"year\":this.current.add(this.step,\"year\");break;default:break}if(this.step!=1){switch(this.scale){case\"millisecond\":if(this.current.milliseconds()>0&&this.current.milliseconds()<this.step)this.current.milliseconds(0);break;case\"second\":if(this.current.seconds()>0&&this.current.seconds()<this.step)this.current.seconds(0);break;case\"minute\":if(this.current.minutes()>0&&this.current.minutes()<this.step)this.current.minutes(0);break;case\"hour\":if(this.current.hours()>0&&this.current.hours()<this.step)this.current.hours(0);break;case\"weekday\":case\"day\":if(this.current.date()<this.step+1)this.current.date(1);break;case\"week\":if(this.current.week()<this.step)this.current.week(1);break;case\"month\":if(this.current.month()<this.step)this.current.month(0);break;case\"year\":break;default:break}}if(this.current.valueOf()==prev){this.current=this._end.clone()}this.switchedDay=false;this.switchedMonth=false;this.switchedYear=false;DateUtil.stepOverHiddenDates(this.moment,this,prev)};TimeStep.prototype.getCurrent=function(){return this.current};TimeStep.prototype.setScale=function(params){if(params&&typeof params.scale==\"string\"){this.scale=params.scale;this.step=params.step>0?params.step:1;this.autoScale=false}};TimeStep.prototype.setAutoScale=function(enable){this.autoScale=enable};TimeStep.prototype.setMinimumStep=function(minimumStep){if(minimumStep==undefined){return}var stepYear=1e3*60*60*24*30*12;var stepMonth=1e3*60*60*24*30;var stepDay=1e3*60*60*24;var stepHour=1e3*60*60;var stepMinute=1e3*60;var stepSecond=1e3;var stepMillisecond=1;if(stepYear*1e3>minimumStep){this.scale=\"year\";this.step=1e3}if(stepYear*500>minimumStep){this.scale=\"year\";this.step=500}if(stepYear*100>minimumStep){this.scale=\"year\";this.step=100}if(stepYear*50>minimumStep){this.scale=\"year\";this.step=50}if(stepYear*10>minimumStep){this.scale=\"year\";this.step=10}if(stepYear*5>minimumStep){this.scale=\"year\";this.step=5}if(stepYear>minimumStep){this.scale=\"year\";this.step=1}if(stepMonth*3>minimumStep){this.scale=\"month\";this.step=3}if(stepMonth>minimumStep){this.scale=\"month\";this.step=1}if(stepDay*5>minimumStep){this.scale=\"day\";this.step=5}if(stepDay*2>minimumStep){this.scale=\"day\";this.step=2}if(stepDay>minimumStep){this.scale=\"day\";this.step=1}if(stepDay/2>minimumStep){this.scale=\"weekday\";this.step=1}if(stepHour*4>minimumStep){this.scale=\"hour\";this.step=4}if(stepHour>minimumStep){this.scale=\"hour\";this.step=1}if(stepMinute*15>minimumStep){this.scale=\"minute\";this.step=15}if(stepMinute*10>minimumStep){this.scale=\"minute\";this.step=10}if(stepMinute*5>minimumStep){this.scale=\"minute\";this.step=5}if(stepMinute>minimumStep){this.scale=\"minute\";this.step=1}if(stepSecond*15>minimumStep){this.scale=\"second\";this.step=15}if(stepSecond*10>minimumStep){this.scale=\"second\";this.step=10}if(stepSecond*5>minimumStep){this.scale=\"second\";this.step=5}if(stepSecond>minimumStep){this.scale=\"second\";this.step=1}if(stepMillisecond*200>minimumStep){this.scale=\"millisecond\";this.step=200}if(stepMillisecond*100>minimumStep){this.scale=\"millisecond\";this.step=100}if(stepMillisecond*50>minimumStep){this.scale=\"millisecond\";this.step=50}if(stepMillisecond*10>minimumStep){this.scale=\"millisecond\";this.step=10}if(stepMillisecond*5>minimumStep){this.scale=\"millisecond\";this.step=5}if(stepMillisecond>minimumStep){this.scale=\"millisecond\";this.step=1}};TimeStep.snap=function(date,scale,step){var clone=moment(date);if(scale==\"year\"){var year=clone.year()+Math.round(clone.month()/12);clone.year(Math.round(year/step)*step);clone.month(0);clone.date(0);clone.hours(0);clone.minutes(0);clone.seconds(0);clone.milliseconds(0)}else if(scale==\"month\"){if(clone.date()>15){clone.date(1);clone.add(1,\"month\")}else{clone.date(1)}clone.hours(0);clone.minutes(0);clone.seconds(0);clone.milliseconds(0)}else if(scale==\"week\"){if(clone.weekday()>2){clone.weekday(0);clone.add(1,\"week\")}else{clone.weekday(0)}clone.hours(0);clone.minutes(0);clone.seconds(0);clone.milliseconds(0)}else if(scale==\"day\"){switch(step){case 5:case 2:clone.hours(Math.round(clone.hours()/24)*24);break;default:clone.hours(Math.round(clone.hours()/12)*12);break}clone.minutes(0);clone.seconds(0);clone.milliseconds(0)}else if(scale==\"weekday\"){switch(step){case 5:case 2:clone.hours(Math.round(clone.hours()/12)*12);break;default:clone.hours(Math.round(clone.hours()/6)*6);break}clone.minutes(0);clone.seconds(0);clone.milliseconds(0)}else if(scale==\"hour\"){switch(step){case 4:clone.minutes(Math.round(clone.minutes()/60)*60);break;default:clone.minutes(Math.round(clone.minutes()/30)*30);break}clone.seconds(0);clone.milliseconds(0)}else if(scale==\"minute\"){switch(step){case 15:case 10:clone.minutes(Math.round(clone.minutes()/5)*5);clone.seconds(0);break;case 5:clone.seconds(Math.round(clone.seconds()/60)*60);break;default:clone.seconds(Math.round(clone.seconds()/30)*30);break}clone.milliseconds(0)}else if(scale==\"second\"){switch(step){case 15:case 10:clone.seconds(Math.round(clone.seconds()/5)*5);clone.milliseconds(0);break;case 5:clone.milliseconds(Math.round(clone.milliseconds()/1e3)*1e3);break;default:clone.milliseconds(Math.round(clone.milliseconds()/500)*500);break}}else if(scale==\"millisecond\"){var _step=step>5?step/2:1;clone.milliseconds(Math.round(clone.milliseconds()/_step)*_step)}return clone};TimeStep.prototype.isMajor=function(){if(this.switchedYear==true){switch(this.scale){case\"year\":case\"month\":case\"week\":case\"weekday\":case\"day\":case\"hour\":case\"minute\":case\"second\":case\"millisecond\":return true;default:return false}}else if(this.switchedMonth==true){switch(this.scale){case\"week\":case\"weekday\":case\"day\":case\"hour\":case\"minute\":case\"second\":case\"millisecond\":return true;default:return false}}else if(this.switchedDay==true){switch(this.scale){case\"millisecond\":case\"second\":case\"minute\":case\"hour\":return true;default:return false}}var date=this.moment(this.current);switch(this.scale){case\"millisecond\":return date.milliseconds()==0;case\"second\":return date.seconds()==0;case\"minute\":return date.hours()==0&&date.minutes()==0;case\"hour\":return date.hours()==0;case\"weekday\":case\"day\":return date.date()==1;case\"week\":return date.date()==1;case\"month\":return date.month()==0;case\"year\":return false;default:return false}};TimeStep.prototype.getLabelMinor=function(date){if(date==undefined){date=this.current}if(date instanceof Date){date=this.moment(date)}if(typeof this.format.minorLabels===\"function\"){return this.format.minorLabels(date,this.scale,this.step)}var format=this.format.minorLabels[this.scale];switch(this.scale){case\"week\":if(this.isMajor()&&date.weekday()!==0){return\"\"}default:return format&&format.length>0?this.moment(date).format(format):\"\"}};TimeStep.prototype.getLabelMajor=function(date){if(date==undefined){date=this.current}if(date instanceof Date){date=this.moment(date)}if(typeof this.format.majorLabels===\"function\"){return this.format.majorLabels(date,this.scale,this.step)}var format=this.format.majorLabels[this.scale];return format&&format.length>0?this.moment(date).format(format):\"\"};TimeStep.prototype.getClassName=function(){var _moment=this.moment;var m=this.moment(this.current);var current=m.locale?m.locale(\"en\"):m.lang(\"en\");var step=this.step;var classNames=[];function even(value){return value/step%2==0?\" vis-even\":\" vis-odd\"}function today(date){if(date.isSame(new Date,\"day\")){return\" vis-today\"}if(date.isSame(_moment().add(1,\"day\"),\"day\")){return\" vis-tomorrow\"}if(date.isSame(_moment().add(-1,\"day\"),\"day\")){return\" vis-yesterday\"}return\"\"}function currentWeek(date){return date.isSame(new Date,\"week\")?\" vis-current-week\":\"\"}function currentMonth(date){return date.isSame(new Date,\"month\")?\" vis-current-month\":\"\"}function currentYear(date){return date.isSame(new Date,\"year\")?\" vis-current-year\":\"\"}switch(this.scale){case\"millisecond\":classNames.push(today(current));classNames.push(even(current.milliseconds()));break;case\"second\":classNames.push(today(current));classNames.push(even(current.seconds()));break;case\"minute\":classNames.push(today(current));classNames.push(even(current.minutes()));break;case\"hour\":classNames.push(\"vis-h\"+current.hours()+(this.step==4?\"-h\"+(current.hours()+4):\"\"));classNames.push(today(current));classNames.push(even(current.hours()));break;case\"weekday\":classNames.push(\"vis-\"+current.format(\"dddd\").toLowerCase());classNames.push(today(current));classNames.push(currentWeek(current));classNames.push(even(current.date()));break;case\"day\":classNames.push(\"vis-day\"+current.date());classNames.push(\"vis-\"+current.format(\"MMMM\").toLowerCase());classNames.push(today(current));classNames.push(currentMonth(current));classNames.push(this.step<=2?today(current):\"\");classNames.push(this.step<=2?\"vis-\"+current.format(\"dddd\").toLowerCase():\"\");classNames.push(even(current.date()-1));break;case\"week\":classNames.push(\"vis-week\"+current.format(\"w\"));classNames.push(currentWeek(current));classNames.push(even(current.week()));break;case\"month\":classNames.push(\"vis-\"+current.format(\"MMMM\").toLowerCase());classNames.push(currentMonth(current));classNames.push(even(current.month()));break;case\"year\":classNames.push(\"vis-year\"+current.year());classNames.push(currentYear(current));classNames.push(even(current.year()));break}return classNames.filter(String).join(\" \")};module.exports=TimeStep},function(module,exports,__webpack_require__){\"use strict\";var util=__webpack_require__(2);var Component=__webpack_require__(16);var moment=__webpack_require__(9);var locales=__webpack_require__(98);function CurrentTime(body,options){this.body=body;this.defaultOptions={rtl:false,showCurrentTime:true,moment:moment,locales:locales,locale:\"en\"};this.options=util.extend({},this.defaultOptions);this.offset=0;this._create();this.setOptions(options)}CurrentTime.prototype=new Component;CurrentTime.prototype._create=function(){var bar=document.createElement(\"div\");bar.className=\"vis-current-time\";bar.style.position=\"absolute\";bar.style.top=\"0px\";bar.style.height=\"100%\";this.bar=bar};CurrentTime.prototype.destroy=function(){this.options.showCurrentTime=false;this.redraw();this.body=null};CurrentTime.prototype.setOptions=function(options){if(options){util.selectiveExtend([\"rtl\",\"showCurrentTime\",\"moment\",\"locale\",\"locales\"],this.options,options)}};CurrentTime.prototype.redraw=function(){if(this.options.showCurrentTime){var parent=this.body.dom.backgroundVertical;if(this.bar.parentNode!=parent){if(this.bar.parentNode){this.bar.parentNode.removeChild(this.bar)}parent.appendChild(this.bar);this.start()}var now=this.options.moment((new Date).valueOf()+this.offset);var x=this.body.util.toScreen(now);var locale=this.options.locales[this.options.locale];if(!locale){if(!this.warned){console.log(\"WARNING: options.locales['\"+this.options.locale+\"'] not found. See http://visjs.org/docs/timeline/#Localization\");this.warned=true}locale=this.options.locales[\"en\"]}var title=locale.current+\" \"+locale.time+\": \"+now.format(\"dddd, MMMM Do YYYY, H:mm:ss\");title=title.charAt(0).toUpperCase()+title.substring(1);if(this.options.rtl){this.bar.style.right=x+\"px\"}else{this.bar.style.left=x+\"px\"}this.bar.title=title}else{if(this.bar.parentNode){this.bar.parentNode.removeChild(this.bar)}this.stop()}return false};CurrentTime.prototype.start=function(){var me=this;function update(){me.stop();var scale=me.body.range.conversion(me.body.domProps.center.width).scale;var interval=1/scale/10;if(interval<30)interval=30;if(interval>1e3)interval=1e3;me.redraw();me.body.emitter.emit(\"currentTimeTick\");me.currentTimeTimer=setTimeout(update,interval)}update()};CurrentTime.prototype.stop=function(){if(this.currentTimeTimer!==undefined){clearTimeout(this.currentTimeTimer);delete this.currentTimeTimer}};CurrentTime.prototype.setCurrentTime=function(time){var t=util.convert(time,\"Date\").valueOf();var now=(new Date).valueOf();this.offset=t-now;this.redraw()};CurrentTime.prototype.getCurrentTime=function(){return new Date((new Date).valueOf()+this.offset)};module.exports=CurrentTime},function(module,exports,__webpack_require__){\"use strict\";var _keys=__webpack_require__(8);var _keys2=_interopRequireDefault(_keys);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var stack=__webpack_require__(100);function Group(groupId,data,itemSet){this.groupId=groupId;this.subgroups={};this.subgroupStack={};this.subgroupStackAll=false;this.doInnerStack=false;this.subgroupIndex=0;this.subgroupOrderer=data&&data.subgroupOrder;this.itemSet=itemSet;this.isVisible=null;this.stackDirty=true;if(data&&data.nestedGroups){this.nestedGroups=data.nestedGroups;if(data.showNested==false){this.showNested=false}else{this.showNested=true}}if(data&&data.subgroupStack){if(typeof data.subgroupStack===\"boolean\"){this.doInnerStack=data.subgroupStack;this.subgroupStackAll=data.subgroupStack}else{for(var key in data.subgroupStack){this.subgroupStack[key]=data.subgroupStack[key];this.doInnerStack=this.doInnerStack||data.subgroupStack[key]}}}this.nestedInGroup=null;this.dom={};this.props={label:{width:0,height:0}};this.className=null;this.items={};this.visibleItems=[];this.itemsInRange=[];this.orderedItems={byStart:[],byEnd:[]};this.checkRangedItems=false;var me=this;this.itemSet.body.emitter.on(\"checkRangedItems\",function(){me.checkRangedItems=true});this._create();this.setData(data)}Group.prototype._create=function(){var label=document.createElement(\"div\");if(this.itemSet.options.groupEditable.order){label.className=\"vis-label draggable\"}else{label.className=\"vis-label\"}this.dom.label=label;var inner=document.createElement(\"div\");inner.className=\"vis-inner\";label.appendChild(inner);this.dom.inner=inner;var foreground=document.createElement(\"div\");foreground.className=\"vis-group\";foreground[\"timeline-group\"]=this;this.dom.foreground=foreground;this.dom.background=document.createElement(\"div\");this.dom.background.className=\"vis-group\";this.dom.axis=document.createElement(\"div\");this.dom.axis.className=\"vis-group\";this.dom.marker=document.createElement(\"div\");this.dom.marker.style.visibility=\"hidden\";this.dom.marker.style.position=\"absolute\";this.dom.marker.innerHTML=\"\";this.dom.background.appendChild(this.dom.marker)};Group.prototype.setData=function(data){var content;var templateFunction;if(this.itemSet.options&&this.itemSet.options.groupTemplate){templateFunction=this.itemSet.options.groupTemplate.bind(this);content=templateFunction(data,this.dom.inner)}else{content=data&&data.content}if(content instanceof Element){this.dom.inner.appendChild(content);while(this.dom.inner.firstChild){this.dom.inner.removeChild(this.dom.inner.firstChild)}this.dom.inner.appendChild(content)}else if(content instanceof Object){templateFunction(data,this.dom.inner)}else if(content!==undefined&&content!==null){this.dom.inner.innerHTML=content}else{this.dom.inner.innerHTML=this.groupId||\"\"}this.dom.label.title=data&&data.title||\"\";if(!this.dom.inner.firstChild){util.addClassName(this.dom.inner,\"vis-hidden\")}else{util.removeClassName(this.dom.inner,\"vis-hidden\")}if(data&&data.nestedGroups){if(!this.nestedGroups||this.nestedGroups!=data.nestedGroups){this.nestedGroups=data.nestedGroups}if(data.showNested!==undefined||this.showNested===undefined){if(data.showNested==false){this.showNested=false}else{this.showNested=true}}util.addClassName(this.dom.label,\"vis-nesting-group\");var collapsedDirClassName=this.itemSet.options.rtl?\"collapsed-rtl\":\"collapsed\";if(this.showNested){util.removeClassName(this.dom.label,collapsedDirClassName);util.addClassName(this.dom.label,\"expanded\")}else{util.removeClassName(this.dom.label,\"expanded\");util.addClassName(this.dom.label,collapsedDirClassName)}}else if(this.nestedGroups){this.nestedGroups=null;collapsedDirClassName=this.itemSet.options.rtl?\"collapsed-rtl\":\"collapsed\";util.removeClassName(this.dom.label,collapsedDirClassName);util.removeClassName(this.dom.label,\"expanded\");util.removeClassName(this.dom.label,\"vis-nesting-group\")}if(data&&data.nestedInGroup){util.addClassName(this.dom.label,\"vis-nested-group\");if(this.itemSet.options&&this.itemSet.options.rtl){this.dom.inner.style.paddingRight=\"30px\"}else{\nthis.dom.inner.style.paddingLeft=\"30px\"}}var className=data&&data.className||null;if(className!=this.className){if(this.className){util.removeClassName(this.dom.label,this.className);util.removeClassName(this.dom.foreground,this.className);util.removeClassName(this.dom.background,this.className);util.removeClassName(this.dom.axis,this.className)}util.addClassName(this.dom.label,className);util.addClassName(this.dom.foreground,className);util.addClassName(this.dom.background,className);util.addClassName(this.dom.axis,className);this.className=className}if(this.style){util.removeCssText(this.dom.label,this.style);this.style=null}if(data&&data.style){util.addCssText(this.dom.label,data.style);this.style=data.style}};Group.prototype.getLabelWidth=function(){return this.props.label.width};Group.prototype._didMarkerHeightChange=function(){var markerHeight=this.dom.marker.clientHeight;if(markerHeight!=this.lastMarkerHeight){this.lastMarkerHeight=markerHeight;var redrawQueue={};var redrawQueueLength=0;util.forEach(this.items,function(item,key){item.dirty=true;if(item.displayed){var returnQueue=true;redrawQueue[key]=item.redraw(returnQueue);redrawQueueLength=redrawQueue[key].length}});var needRedraw=redrawQueueLength>0;if(needRedraw){for(var i=0;i<redrawQueueLength;i++){util.forEach(redrawQueue,function(fns){fns[i]()})}}return true}};Group.prototype._calculateGroupSizeAndPosition=function(){var offsetTop=this.dom.foreground.offsetTop;var offsetLeft=this.dom.foreground.offsetLeft;var offsetWidth=this.dom.foreground.offsetWidth;this.top=offsetTop;this.right=offsetLeft;this.width=offsetWidth};Group.prototype._redrawItems=function(forceRestack,lastIsVisible,margin,range){var restack=forceRestack||this.stackDirty||this.isVisible&&!lastIsVisible;if(restack){var visibleSubgroups={};var subgroup=null;if(typeof this.itemSet.options.order===\"function\"){var me=this;var limitSize=false;var redrawQueue={};var redrawQueueLength=0;util.forEach(this.items,function(item,key){if(!item.displayed){var returnQueue=true;redrawQueue[key]=item.redraw(returnQueue);redrawQueueLength=redrawQueue[key].length;me.visibleItems.push(item)}});var needRedraw=redrawQueueLength>0;if(needRedraw){for(var i=0;i<redrawQueueLength;i++){util.forEach(redrawQueue,function(fns){fns[i]()})}}util.forEach(this.items,function(item){item.repositionX(limitSize)});if(this.doInnerStack&&this.itemSet.options.stackSubgroups){for(subgroup in this.subgroups){visibleSubgroups[subgroup]=this.subgroups[subgroup].items.slice().sort(function(a,b){return me.itemSet.options.order(a.data,b.data)})}stack.stackSubgroupsWithInnerStack(visibleSubgroups,margin,this.subgroups)}else{var customOrderedItems=this.orderedItems.byStart.slice().sort(function(a,b){return me.itemSet.options.order(a.data,b.data)});stack.stack(customOrderedItems,margin,true)}this.visibleItems=this._updateItemsInRange(this.orderedItems,this.visibleItems,range)}else{this.visibleItems=this._updateItemsInRange(this.orderedItems,this.visibleItems,range);if(this.itemSet.options.stack){if(this.doInnerStack&&this.itemSet.options.stackSubgroups){for(subgroup in this.subgroups){visibleSubgroups[subgroup]=this.subgroups[subgroup].items}stack.stackSubgroupsWithInnerStack(visibleSubgroups,margin,this.subgroups)}else{stack.stack(this.visibleItems,margin,true)}}else{stack.nostack(this.visibleItems,margin,this.subgroups,this.itemSet.options.stackSubgroups)}}this.stackDirty=false}};Group.prototype._didResize=function(resized,height){resized=util.updateProperty(this,\"height\",height)||resized;var labelWidth=this.dom.inner.clientWidth;var labelHeight=this.dom.inner.clientHeight;resized=util.updateProperty(this.props.label,\"width\",labelWidth)||resized;resized=util.updateProperty(this.props.label,\"height\",labelHeight)||resized;return resized};Group.prototype._applyGroupHeight=function(height){this.dom.background.style.height=height+\"px\";this.dom.foreground.style.height=height+\"px\";this.dom.label.style.height=height+\"px\"};Group.prototype._updateItemsVerticalPosition=function(margin){for(var i=0,ii=this.visibleItems.length;i<ii;i++){var item=this.visibleItems[i];item.repositionY(margin);if(!this.isVisible&&this.groupId!=\"__background__\"){if(item.displayed)item.hide()}}};Group.prototype.redraw=function(range,margin,forceRestack,returnQueue){var resized=false;var lastIsVisible=this.isVisible;var height;var queue=[function(){forceRestack=this._didMarkerHeightChange.bind(this)}.bind(this),this._updateSubGroupHeights.bind(this,margin),this._calculateGroupSizeAndPosition.bind(this),function(){this.isVisible=this._isGroupVisible.bind(this)(range,margin)}.bind(this),function(){this._redrawItems.bind(this)(forceRestack,lastIsVisible,margin,range)}.bind(this),this._updateSubgroupsSizes.bind(this),function(){height=this._calculateHeight.bind(this)(margin)}.bind(this),this._calculateGroupSizeAndPosition.bind(this),function(){resized=this._didResize.bind(this)(resized,height)}.bind(this),function(){this._applyGroupHeight.bind(this)(height)}.bind(this),function(){this._updateItemsVerticalPosition.bind(this)(margin)}.bind(this),function(){if(!this.isVisible&&this.height){resized=false}return resized}];if(returnQueue){return queue}else{var result;queue.forEach(function(fn){result=fn()});return result}};Group.prototype._updateSubGroupHeights=function(margin){if((0,_keys2[\"default\"])(this.subgroups).length>0){var me=this;this.resetSubgroups();util.forEach(this.visibleItems,function(item){if(item.data.subgroup!==undefined){me.subgroups[item.data.subgroup].height=Math.max(me.subgroups[item.data.subgroup].height,item.height+margin.item.vertical);me.subgroups[item.data.subgroup].visible=true}})}};Group.prototype._isGroupVisible=function(range,margin){return this.top<=range.body.domProps.centerContainer.height-range.body.domProps.scrollTop+margin.axis&&this.top+this.height+margin.axis>=-range.body.domProps.scrollTop};Group.prototype._calculateHeight=function(margin){var height;var itemsInRange=this.visibleItems;if(itemsInRange.length>0){var min=itemsInRange[0].top;var max=itemsInRange[0].top+itemsInRange[0].height;util.forEach(itemsInRange,function(item){min=Math.min(min,item.top);max=Math.max(max,item.top+item.height)});if(min>margin.axis){var offset=min-margin.axis;max-=offset;util.forEach(itemsInRange,function(item){item.top-=offset})}height=max+margin.item.vertical/2}else{height=0}height=Math.max(height,this.props.label.height);return height};Group.prototype.show=function(){if(!this.dom.label.parentNode){this.itemSet.dom.labelSet.appendChild(this.dom.label)}if(!this.dom.foreground.parentNode){this.itemSet.dom.foreground.appendChild(this.dom.foreground)}if(!this.dom.background.parentNode){this.itemSet.dom.background.appendChild(this.dom.background)}if(!this.dom.axis.parentNode){this.itemSet.dom.axis.appendChild(this.dom.axis)}};Group.prototype.hide=function(){var label=this.dom.label;if(label.parentNode){label.parentNode.removeChild(label)}var foreground=this.dom.foreground;if(foreground.parentNode){foreground.parentNode.removeChild(foreground)}var background=this.dom.background;if(background.parentNode){background.parentNode.removeChild(background)}var axis=this.dom.axis;if(axis.parentNode){axis.parentNode.removeChild(axis)}};Group.prototype.add=function(item){this.items[item.id]=item;item.setParent(this);this.stackDirty=true;if(item.data.subgroup!==undefined){this._addToSubgroup(item);this.orderSubgroups()}if(this.visibleItems.indexOf(item)==-1){var range=this.itemSet.body.range;this._checkIfVisible(item,this.visibleItems,range)}};Group.prototype._addToSubgroup=function(item,subgroupId){subgroupId=subgroupId||item.data.subgroup;if(subgroupId!=undefined&&this.subgroups[subgroupId]===undefined){this.subgroups[subgroupId]={height:0,top:0,start:item.data.start,end:item.data.end||item.data.start,visible:false,index:this.subgroupIndex,items:[],stack:this.subgroupStackAll||this.subgroupStack[subgroupId]||false};this.subgroupIndex++}if(new Date(item.data.start)<new Date(this.subgroups[subgroupId].start)){this.subgroups[subgroupId].start=item.data.start}var itemEnd=item.data.end||item.data.start;if(new Date(itemEnd)>new Date(this.subgroups[subgroupId].end)){this.subgroups[subgroupId].end=itemEnd}this.subgroups[subgroupId].items.push(item)};Group.prototype._updateSubgroupsSizes=function(){var me=this;if(me.subgroups){for(var subgroup in me.subgroups){var initialEnd=me.subgroups[subgroup].items[0].data.end||me.subgroups[subgroup].items[0].data.start;var newStart=me.subgroups[subgroup].items[0].data.start;var newEnd=initialEnd-1;me.subgroups[subgroup].items.forEach(function(item){if(new Date(item.data.start)<new Date(newStart)){newStart=item.data.start}var itemEnd=item.data.end||item.data.start;if(new Date(itemEnd)>new Date(newEnd)){newEnd=itemEnd}});me.subgroups[subgroup].start=newStart;me.subgroups[subgroup].end=new Date(newEnd-1)}}};Group.prototype.orderSubgroups=function(){if(this.subgroupOrderer!==undefined){var sortArray=[];var subgroup;if(typeof this.subgroupOrderer==\"string\"){for(subgroup in this.subgroups){sortArray.push({subgroup:subgroup,sortField:this.subgroups[subgroup].items[0].data[this.subgroupOrderer]})}sortArray.sort(function(a,b){return a.sortField-b.sortField})}else if(typeof this.subgroupOrderer==\"function\"){for(subgroup in this.subgroups){sortArray.push(this.subgroups[subgroup].items[0].data)}sortArray.sort(this.subgroupOrderer)}if(sortArray.length>0){for(var i=0;i<sortArray.length;i++){this.subgroups[sortArray[i].subgroup].index=i}}}};Group.prototype.resetSubgroups=function(){for(var subgroup in this.subgroups){if(this.subgroups.hasOwnProperty(subgroup)){this.subgroups[subgroup].visible=false;this.subgroups[subgroup].height=0}}};Group.prototype.remove=function(item){delete this.items[item.id];item.setParent(null);this.stackDirty=true;var index=this.visibleItems.indexOf(item);if(index!=-1)this.visibleItems.splice(index,1);if(item.data.subgroup!==undefined){this._removeFromSubgroup(item);this.orderSubgroups()}};Group.prototype._removeFromSubgroup=function(item,subgroupId){subgroupId=subgroupId||item.data.subgroup;if(subgroupId!=undefined){var subgroup=this.subgroups[subgroupId];if(subgroup){var itemIndex=subgroup.items.indexOf(item);if(itemIndex>=0){subgroup.items.splice(itemIndex,1);if(!subgroup.items.length){delete this.subgroups[subgroupId]}else{this._updateSubgroupsSizes()}}}}};Group.prototype.removeFromDataSet=function(item){this.itemSet.removeItem(item.id)};Group.prototype.order=function(){var array=util.toArray(this.items);var startArray=[];var endArray=[];for(var i=0;i<array.length;i++){if(array[i].data.end!==undefined){endArray.push(array[i])}startArray.push(array[i])}this.orderedItems={byStart:startArray,byEnd:endArray};stack.orderByStart(this.orderedItems.byStart);stack.orderByEnd(this.orderedItems.byEnd)};Group.prototype._updateItemsInRange=function(orderedItems,oldVisibleItems,range){var visibleItems=[];var visibleItemsLookup={};var interval=(range.end-range.start)/4;var lowerBound=range.start-interval;var upperBound=range.end+interval;var searchFunction=function searchFunction(value){if(value<lowerBound){return-1}else if(value<=upperBound){return 0}else{return 1}};if(oldVisibleItems.length>0){for(var i=0;i<oldVisibleItems.length;i++){this._checkIfVisibleWithReference(oldVisibleItems[i],visibleItems,visibleItemsLookup,range)}}var initialPosByStart=util.binarySearchCustom(orderedItems.byStart,searchFunction,\"data\",\"start\");this._traceVisible(initialPosByStart,orderedItems.byStart,visibleItems,visibleItemsLookup,function(item){return item.data.start<lowerBound||item.data.start>upperBound});if(this.checkRangedItems==true){this.checkRangedItems=false;for(i=0;i<orderedItems.byEnd.length;i++){this._checkIfVisibleWithReference(orderedItems.byEnd[i],visibleItems,visibleItemsLookup,range)}}else{var initialPosByEnd=util.binarySearchCustom(orderedItems.byEnd,searchFunction,\"data\",\"end\");this._traceVisible(initialPosByEnd,orderedItems.byEnd,visibleItems,visibleItemsLookup,function(item){return item.data.end<lowerBound||item.data.end>upperBound})}var redrawQueue={};var redrawQueueLength=0;for(i=0;i<visibleItems.length;i++){var item=visibleItems[i];if(!item.displayed){var returnQueue=true;redrawQueue[i]=item.redraw(returnQueue);redrawQueueLength=redrawQueue[i].length}}var needRedraw=redrawQueueLength>0;if(needRedraw){for(var j=0;j<redrawQueueLength;j++){util.forEach(redrawQueue,function(fns){fns[j]()})}}for(i=0;i<visibleItems.length;i++){visibleItems[i].repositionX()}return visibleItems};Group.prototype._traceVisible=function(initialPos,items,visibleItems,visibleItemsLookup,breakCondition){if(initialPos!=-1){var i,item;for(i=initialPos;i>=0;i--){item=items[i];if(breakCondition(item)){break}else{if(visibleItemsLookup[item.id]===undefined){visibleItemsLookup[item.id]=true;visibleItems.push(item)}}}for(i=initialPos+1;i<items.length;i++){item=items[i];if(breakCondition(item)){break}else{if(visibleItemsLookup[item.id]===undefined){visibleItemsLookup[item.id]=true;visibleItems.push(item)}}}}};Group.prototype._checkIfVisible=function(item,visibleItems,range){if(item.isVisible(range)){if(!item.displayed)item.show();item.repositionX();visibleItems.push(item)}else{if(item.displayed)item.hide()}};Group.prototype._checkIfVisibleWithReference=function(item,visibleItems,visibleItemsLookup,range){if(item.isVisible(range)){if(visibleItemsLookup[item.id]===undefined){visibleItemsLookup[item.id]=true;visibleItems.push(item)}}else{if(item.displayed)item.hide()}};Group.prototype.changeSubgroup=function(item,oldSubgroup,newSubgroup){this._removeFromSubgroup(item,oldSubgroup);this._addToSubgroup(item,newSubgroup);this.orderSubgroups()};module.exports=Group},function(module,exports,__webpack_require__){\"use strict\";var _create=__webpack_require__(29);var _create2=_interopRequireDefault(_create);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Group=__webpack_require__(68);function BackgroundGroup(groupId,data,itemSet){Group.call(this,groupId,data,itemSet);this.width=0;this.height=0;this.top=0;this.left=0}BackgroundGroup.prototype=(0,_create2[\"default\"])(Group.prototype);BackgroundGroup.prototype.redraw=function(range,margin,forceRestack){var resized=false;this.visibleItems=this._updateItemsInRange(this.orderedItems,this.visibleItems,range);this.width=this.dom.background.offsetWidth;this.dom.background.style.height=\"0\";for(var i=0,ii=this.visibleItems.length;i<ii;i++){var item=this.visibleItems[i];item.repositionY(margin)}return resized};BackgroundGroup.prototype.show=function(){if(!this.dom.background.parentNode){this.itemSet.dom.background.appendChild(this.dom.background)}};module.exports=BackgroundGroup},function(module,exports,__webpack_require__){\"use strict\";var Item=__webpack_require__(38);function RangeItem(data,conversion,options){this.props={content:{width:0}};this.overflow=false;this.options=options;if(data){if(data.start==undefined){throw new Error('Property \"start\" missing in item '+data.id)}if(data.end==undefined){throw new Error('Property \"end\" missing in item '+data.id)}}Item.call(this,data,conversion,options)}RangeItem.prototype=new Item(null,null,null);RangeItem.prototype.baseClassName=\"vis-item vis-range\";RangeItem.prototype.isVisible=function(range){return this.data.start<range.end&&this.data.end>range.start};RangeItem.prototype._createDomElement=function(){if(!this.dom){this.dom={};this.dom.box=document.createElement(\"div\");this.dom.frame=document.createElement(\"div\");this.dom.frame.className=\"vis-item-overflow\";this.dom.box.appendChild(this.dom.frame);this.dom.visibleFrame=document.createElement(\"div\");this.dom.visibleFrame.className=\"vis-item-visible-frame\";this.dom.box.appendChild(this.dom.visibleFrame);this.dom.content=document.createElement(\"div\");this.dom.content.className=\"vis-item-content\";this.dom.frame.appendChild(this.dom.content);this.dom.box[\"timeline-item\"]=this;this.dirty=true}};RangeItem.prototype._appendDomElement=function(){if(!this.parent){throw new Error(\"Cannot redraw item: no parent attached\")}if(!this.dom.box.parentNode){var foreground=this.parent.dom.foreground;if(!foreground){throw new Error(\"Cannot redraw item: parent has no foreground container element\")}foreground.appendChild(this.dom.box)}this.displayed=true};RangeItem.prototype._updateDirtyDomComponents=function(){if(this.dirty){this._updateContents(this.dom.content);this._updateDataAttributes(this.dom.box);this._updateStyle(this.dom.box);var editable=this.editable.updateTime||this.editable.updateGroup;var className=(this.data.className?\" \"+this.data.className:\"\")+(this.selected?\" vis-selected\":\"\")+(editable?\" vis-editable\":\" vis-readonly\");this.dom.box.className=this.baseClassName+className;this.dom.content.style.maxWidth=\"none\"}};RangeItem.prototype._getDomComponentsSizes=function(){this.overflow=window.getComputedStyle(this.dom.frame).overflow!==\"hidden\";return{content:{width:this.dom.content.offsetWidth},box:{height:this.dom.box.offsetHeight}}};RangeItem.prototype._updateDomComponentsSizes=function(sizes){this.props.content.width=sizes.content.width;this.height=sizes.box.height;this.dom.content.style.maxWidth=\"\";this.dirty=false};RangeItem.prototype._repaintDomAdditionals=function(){this._repaintOnItemUpdateTimeTooltip(this.dom.box);this._repaintDeleteButton(this.dom.box);this._repaintDragCenter();this._repaintDragLeft();this._repaintDragRight()};RangeItem.prototype.redraw=function(returnQueue){var sizes;var queue=[this._createDomElement.bind(this),this._appendDomElement.bind(this),this._updateDirtyDomComponents.bind(this),function(){if(this.dirty){sizes=this._getDomComponentsSizes.bind(this)()}}.bind(this),function(){if(this.dirty){this._updateDomComponentsSizes.bind(this)(sizes)}}.bind(this),this._repaintDomAdditionals.bind(this)];if(returnQueue){return queue}else{var result;queue.forEach(function(fn){result=fn()});return result}};RangeItem.prototype.show=function(){if(!this.displayed){this.redraw()}};RangeItem.prototype.hide=function(){if(this.displayed){var box=this.dom.box;if(box.parentNode){box.parentNode.removeChild(box)}this.displayed=false}};RangeItem.prototype.repositionX=function(limitSize){var parentWidth=this.parent.width;var start=this.conversion.toScreen(this.data.start);var end=this.conversion.toScreen(this.data.end);var align=this.data.align===undefined?this.options.align:this.data.align;var contentStartPosition;var contentWidth;if(this.data.limitSize!==false&&(limitSize===undefined||limitSize===true)){if(start<-parentWidth){start=-parentWidth}if(end>2*parentWidth){end=2*parentWidth}}var boxWidth=Math.max(end-start+.5,1);if(this.overflow){if(this.options.rtl){this.right=start}else{this.left=start}this.width=boxWidth+this.props.content.width;contentWidth=this.props.content.width}else{if(this.options.rtl){this.right=start}else{this.left=start}this.width=boxWidth;contentWidth=Math.min(end-start,this.props.content.width)}if(this.options.rtl){this.dom.box.style.right=this.right+\"px\"}else{this.dom.box.style.left=this.left+\"px\"}this.dom.box.style.width=boxWidth+\"px\";switch(align){case\"left\":if(this.options.rtl){this.dom.content.style.right=\"0\"}else{this.dom.content.style.left=\"0\"}break;case\"right\":if(this.options.rtl){this.dom.content.style.right=Math.max(boxWidth-contentWidth,0)+\"px\"}else{this.dom.content.style.left=Math.max(boxWidth-contentWidth,0)+\"px\"}break;case\"center\":if(this.options.rtl){this.dom.content.style.right=Math.max((boxWidth-contentWidth)/2,0)+\"px\"}else{this.dom.content.style.left=Math.max((boxWidth-contentWidth)/2,0)+\"px\"}break;default:if(this.overflow){if(end>0){contentStartPosition=Math.max(-start,0)}else{contentStartPosition=-contentWidth}}else{if(start<0){contentStartPosition=-start}else{contentStartPosition=0}}if(this.options.rtl){this.dom.content.style.right=contentStartPosition+\"px\"}else{this.dom.content.style.left=contentStartPosition+\"px\";this.dom.content.style.width=\"calc(100% - \"+contentStartPosition+\"px)\"}}};RangeItem.prototype.repositionY=function(){var orientation=this.options.orientation.item;var box=this.dom.box;if(orientation==\"top\"){box.style.top=this.top+\"px\"}else{box.style.top=this.parent.height-this.top-this.height+\"px\"}};RangeItem.prototype._repaintDragLeft=function(){if((this.selected||this.options.itemsAlwaysDraggable.range)&&this.options.editable.updateTime&&!this.dom.dragLeft){var dragLeft=document.createElement(\"div\");dragLeft.className=\"vis-drag-left\";dragLeft.dragLeftItem=this;this.dom.box.appendChild(dragLeft);this.dom.dragLeft=dragLeft}else if(!this.selected&&!this.options.itemsAlwaysDraggable.range&&this.dom.dragLeft){if(this.dom.dragLeft.parentNode){this.dom.dragLeft.parentNode.removeChild(this.dom.dragLeft)}this.dom.dragLeft=null}};RangeItem.prototype._repaintDragRight=function(){if((this.selected||this.options.itemsAlwaysDraggable.range)&&this.options.editable.updateTime&&!this.dom.dragRight){var dragRight=document.createElement(\"div\");dragRight.className=\"vis-drag-right\";dragRight.dragRightItem=this;this.dom.box.appendChild(dragRight);this.dom.dragRight=dragRight}else if(!this.selected&&!this.options.itemsAlwaysDraggable.range&&this.dom.dragRight){if(this.dom.dragRight.parentNode){this.dom.dragRight.parentNode.removeChild(this.dom.dragRight)}this.dom.dragRight=null}};module.exports=RangeItem},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _stringify=__webpack_require__(19);var _stringify2=_interopRequireDefault(_stringify);var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var ColorPicker=__webpack_require__(179)[\"default\"];var Configurator=function(){function Configurator(parentModule,defaultContainer,configureOptions){var pixelRatio=arguments.length>3&&arguments[3]!==undefined?arguments[3]:1;(0,_classCallCheck3[\"default\"])(this,Configurator);this.parent=parentModule;this.changedOptions=[];this.container=defaultContainer;this.allowCreation=false;this.options={};this.initialized=false;this.popupCounter=0;this.defaultOptions={enabled:false,filter:true,container:undefined,showButton:true};util.extend(this.options,this.defaultOptions);this.configureOptions=configureOptions;this.moduleOptions={};this.domElements=[];this.popupDiv={};this.popupLimit=5;this.popupHistory={};this.colorPicker=new ColorPicker(pixelRatio);this.wrapper=undefined}(0,_createClass3[\"default\"])(Configurator,[{key:\"setOptions\",value:function setOptions(options){if(options!==undefined){this.popupHistory={};this._removePopup();var enabled=true;if(typeof options===\"string\"){this.options.filter=options}else if(options instanceof Array){this.options.filter=options.join()}else if((typeof options===\"undefined\"?\"undefined\":(0,_typeof3[\"default\"])(options))===\"object\"){if(options.container!==undefined){this.options.container=options.container}if(options.filter!==undefined){this.options.filter=options.filter}if(options.showButton!==undefined){this.options.showButton=options.showButton}if(options.enabled!==undefined){enabled=options.enabled}}else if(typeof options===\"boolean\"){this.options.filter=true;enabled=options}else if(typeof options===\"function\"){this.options.filter=options;enabled=true}if(this.options.filter===false){enabled=false}this.options.enabled=enabled}this._clean()}},{key:\"setModuleOptions\",value:function setModuleOptions(moduleOptions){this.moduleOptions=moduleOptions;if(this.options.enabled===true){this._clean();if(this.options.container!==undefined){this.container=this.options.container}this._create()}}},{key:\"_create\",value:function _create(){var _this=this;this._clean();this.changedOptions=[];var filter=this.options.filter;var counter=0;var show=false;for(var option in this.configureOptions){if(this.configureOptions.hasOwnProperty(option)){this.allowCreation=false;show=false;if(typeof filter===\"function\"){show=filter(option,[]);show=show||this._handleObject(this.configureOptions[option],[option],true)}else if(filter===true||filter.indexOf(option)!==-1){show=true}if(show!==false){this.allowCreation=true;if(counter>0){this._makeItem([])}this._makeHeader(option);this._handleObject(this.configureOptions[option],[option])}counter++}}if(this.options.showButton===true){var generateButton=document.createElement(\"div\");generateButton.className=\"vis-configuration vis-config-button\";generateButton.innerHTML=\"generate options\";generateButton.onclick=function(){_this._printOptions()};generateButton.onmouseover=function(){generateButton.className=\"vis-configuration vis-config-button hover\"};generateButton.onmouseout=function(){generateButton.className=\"vis-configuration vis-config-button\"};this.optionsContainer=document.createElement(\"div\");this.optionsContainer.className=\"vis-configuration vis-config-option-container\";this.domElements.push(this.optionsContainer);this.domElements.push(generateButton)}this._push()}},{key:\"_push\",value:function _push(){this.wrapper=document.createElement(\"div\");this.wrapper.className=\"vis-configuration-wrapper\";this.container.appendChild(this.wrapper);for(var i=0;i<this.domElements.length;i++){this.wrapper.appendChild(this.domElements[i])}this._showPopupIfNeeded()}},{key:\"_clean\",value:function _clean(){for(var i=0;i<this.domElements.length;i++){this.wrapper.removeChild(this.domElements[i])}if(this.wrapper!==undefined){this.container.removeChild(this.wrapper);this.wrapper=undefined}this.domElements=[];this._removePopup()}},{key:\"_getValue\",value:function _getValue(path){var base=this.moduleOptions;for(var i=0;i<path.length;i++){if(base[path[i]]!==undefined){base=base[path[i]]}else{base=undefined;break}}return base}},{key:\"_makeItem\",value:function _makeItem(path){if(this.allowCreation===true){var item=document.createElement(\"div\");item.className=\"vis-configuration vis-config-item vis-config-s\"+path.length;for(var _len=arguments.length,domElements=Array(_len>1?_len-1:0),_key=1;_key<_len;_key++){domElements[_key-1]=arguments[_key]}domElements.forEach(function(element){item.appendChild(element)});this.domElements.push(item);return this.domElements.length}return 0}},{key:\"_makeHeader\",value:function _makeHeader(name){var div=document.createElement(\"div\");div.className=\"vis-configuration vis-config-header\";div.innerHTML=name;this._makeItem([],div)}},{key:\"_makeLabel\",value:function _makeLabel(name,path){var objectLabel=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;var div=document.createElement(\"div\");div.className=\"vis-configuration vis-config-label vis-config-s\"+path.length;if(objectLabel===true){div.innerHTML=\"<i><b>\"+name+\":</b></i>\"}else{div.innerHTML=name+\":\"}return div}},{key:\"_makeDropdown\",value:function _makeDropdown(arr,value,path){var select=document.createElement(\"select\");select.className=\"vis-configuration vis-config-select\";var selectedValue=0;if(value!==undefined){if(arr.indexOf(value)!==-1){selectedValue=arr.indexOf(value)}}for(var i=0;i<arr.length;i++){var option=document.createElement(\"option\");option.value=arr[i];if(i===selectedValue){option.selected=\"selected\"}option.innerHTML=arr[i];select.appendChild(option)}var me=this;select.onchange=function(){me._update(this.value,path)};var label=this._makeLabel(path[path.length-1],path);this._makeItem(path,label,select)}},{key:\"_makeRange\",value:function _makeRange(arr,value,path){var defaultValue=arr[0];var min=arr[1];var max=arr[2];var step=arr[3];var range=document.createElement(\"input\");range.className=\"vis-configuration vis-config-range\";try{range.type=\"range\";range.min=min;range.max=max}catch(err){}range.step=step;var popupString=\"\";var popupValue=0;if(value!==undefined){var factor=1.2;if(value<0&&value*factor<min){range.min=Math.ceil(value*factor);popupValue=range.min;popupString=\"range increased\"}else if(value/factor<min){range.min=Math.ceil(value/factor);popupValue=range.min;popupString=\"range increased\"}if(value*factor>max&&max!==1){range.max=Math.ceil(value*factor);popupValue=range.max;popupString=\"range increased\"}range.value=value}else{range.value=defaultValue}var input=document.createElement(\"input\");input.className=\"vis-configuration vis-config-rangeinput\";input.value=range.value;var me=this;range.onchange=function(){input.value=this.value;me._update(Number(this.value),path)};range.oninput=function(){input.value=this.value};var label=this._makeLabel(path[path.length-1],path);var itemIndex=this._makeItem(path,label,range,input);if(popupString!==\"\"&&this.popupHistory[itemIndex]!==popupValue){this.popupHistory[itemIndex]=popupValue;this._setupPopup(popupString,itemIndex)}}},{key:\"_setupPopup\",value:function _setupPopup(string,index){var _this2=this;if(this.initialized===true&&this.allowCreation===true&&this.popupCounter<this.popupLimit){var div=document.createElement(\"div\");div.id=\"vis-configuration-popup\";div.className=\"vis-configuration-popup\";div.innerHTML=string;div.onclick=function(){_this2._removePopup()};this.popupCounter+=1;this.popupDiv={html:div,index:index}}}},{key:\"_removePopup\",value:function _removePopup(){if(this.popupDiv.html!==undefined){this.popupDiv.html.parentNode.removeChild(this.popupDiv.html);clearTimeout(this.popupDiv.hideTimeout);clearTimeout(this.popupDiv.deleteTimeout);this.popupDiv={}}}},{key:\"_showPopupIfNeeded\",value:function _showPopupIfNeeded(){var _this3=this;if(this.popupDiv.html!==undefined){var correspondingElement=this.domElements[this.popupDiv.index];var rect=correspondingElement.getBoundingClientRect();this.popupDiv.html.style.left=rect.left+\"px\";this.popupDiv.html.style.top=rect.top-30+\"px\";document.body.appendChild(this.popupDiv.html);this.popupDiv.hideTimeout=setTimeout(function(){_this3.popupDiv.html.style.opacity=0},1500);this.popupDiv.deleteTimeout=setTimeout(function(){_this3._removePopup()},1800)}}},{key:\"_makeCheckbox\",value:function _makeCheckbox(defaultValue,value,path){var checkbox=document.createElement(\"input\");checkbox.type=\"checkbox\";checkbox.className=\"vis-configuration vis-config-checkbox\";checkbox.checked=defaultValue;if(value!==undefined){checkbox.checked=value;if(value!==defaultValue){if((typeof defaultValue===\"undefined\"?\"undefined\":(0,_typeof3[\"default\"])(defaultValue))===\"object\"){if(value!==defaultValue.enabled){this.changedOptions.push({path:path,value:value})}}else{this.changedOptions.push({path:path,value:value})}}}var me=this;checkbox.onchange=function(){me._update(this.checked,path)};var label=this._makeLabel(path[path.length-1],path);this._makeItem(path,label,checkbox)}},{key:\"_makeTextInput\",value:function _makeTextInput(defaultValue,value,path){var checkbox=document.createElement(\"input\");checkbox.type=\"text\";checkbox.className=\"vis-configuration vis-config-text\";checkbox.value=value;if(value!==defaultValue){this.changedOptions.push({path:path,value:value})}var me=this;checkbox.onchange=function(){me._update(this.value,path)};var label=this._makeLabel(path[path.length-1],path);this._makeItem(path,label,checkbox)}},{key:\"_makeColorField\",value:function _makeColorField(arr,value,path){var _this4=this;var defaultColor=arr[1];var div=document.createElement(\"div\");value=value===undefined?defaultColor:value;if(value!==\"none\"){div.className=\"vis-configuration vis-config-colorBlock\";div.style.backgroundColor=value}else{div.className=\"vis-configuration vis-config-colorBlock none\"}value=value===undefined?defaultColor:value;div.onclick=function(){_this4._showColorPicker(value,div,path)};var label=this._makeLabel(path[path.length-1],path);this._makeItem(path,label,div)}},{key:\"_showColorPicker\",value:function _showColorPicker(value,div,path){var _this5=this;div.onclick=function(){};this.colorPicker.insertTo(div);this.colorPicker.show();this.colorPicker.setColor(value);this.colorPicker.setUpdateCallback(function(color){\nvar colorString=\"rgba(\"+color.r+\",\"+color.g+\",\"+color.b+\",\"+color.a+\")\";div.style.backgroundColor=colorString;_this5._update(colorString,path)});this.colorPicker.setCloseCallback(function(){div.onclick=function(){_this5._showColorPicker(value,div,path)}})}},{key:\"_handleObject\",value:function _handleObject(obj){var path=arguments.length>1&&arguments[1]!==undefined?arguments[1]:[];var checkOnly=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;var show=false;var filter=this.options.filter;var visibleInSet=false;for(var subObj in obj){if(obj.hasOwnProperty(subObj)){show=true;var item=obj[subObj];var newPath=util.copyAndExtendArray(path,subObj);if(typeof filter===\"function\"){show=filter(subObj,path);if(show===false){if(!(item instanceof Array)&&typeof item!==\"string\"&&typeof item!==\"boolean\"&&item instanceof Object){this.allowCreation=false;show=this._handleObject(item,newPath,true);this.allowCreation=checkOnly===false}}}if(show!==false){visibleInSet=true;var value=this._getValue(newPath);if(item instanceof Array){this._handleArray(item,value,newPath)}else if(typeof item===\"string\"){this._makeTextInput(item,value,newPath)}else if(typeof item===\"boolean\"){this._makeCheckbox(item,value,newPath)}else if(item instanceof Object){var draw=true;if(path.indexOf(\"physics\")!==-1){if(this.moduleOptions.physics.solver!==subObj){draw=false}}if(draw===true){if(item.enabled!==undefined){var enabledPath=util.copyAndExtendArray(newPath,\"enabled\");var enabledValue=this._getValue(enabledPath);if(enabledValue===true){var label=this._makeLabel(subObj,newPath,true);this._makeItem(newPath,label);visibleInSet=this._handleObject(item,newPath)||visibleInSet}else{this._makeCheckbox(item,enabledValue,newPath)}}else{var _label=this._makeLabel(subObj,newPath,true);this._makeItem(newPath,_label);visibleInSet=this._handleObject(item,newPath)||visibleInSet}}}else{console.error(\"dont know how to handle\",item,subObj,newPath)}}}}return visibleInSet}},{key:\"_handleArray\",value:function _handleArray(arr,value,path){if(typeof arr[0]===\"string\"&&arr[0]===\"color\"){this._makeColorField(arr,value,path);if(arr[1]!==value){this.changedOptions.push({path:path,value:value})}}else if(typeof arr[0]===\"string\"){this._makeDropdown(arr,value,path);if(arr[0]!==value){this.changedOptions.push({path:path,value:value})}}else if(typeof arr[0]===\"number\"){this._makeRange(arr,value,path);if(arr[0]!==value){this.changedOptions.push({path:path,value:Number(value)})}}}},{key:\"_update\",value:function _update(value,path){var options=this._constructOptions(value,path);if(this.parent.body&&this.parent.body.emitter&&this.parent.body.emitter.emit){this.parent.body.emitter.emit(\"configChange\",options)}this.initialized=true;this.parent.setOptions(options)}},{key:\"_constructOptions\",value:function _constructOptions(value,path){var optionsObj=arguments.length>2&&arguments[2]!==undefined?arguments[2]:{};var pointer=optionsObj;value=value===\"true\"?true:value;value=value===\"false\"?false:value;for(var i=0;i<path.length;i++){if(path[i]!==\"global\"){if(pointer[path[i]]===undefined){pointer[path[i]]={}}if(i!==path.length-1){pointer=pointer[path[i]]}else{pointer[path[i]]=value}}}return optionsObj}},{key:\"_printOptions\",value:function _printOptions(){var options=this.getOptions();this.optionsContainer.innerHTML=\"<pre>var options = \"+(0,_stringify2[\"default\"])(options,null,2)+\"</pre>\"}},{key:\"getOptions\",value:function getOptions(){var options={};for(var i=0;i<this.changedOptions.length;i++){this._constructOptions(this.changedOptions[i].value,this.changedOptions[i].path,options)}return options}}]);return Configurator}();exports[\"default\"]=Configurator},function(module,exports,__webpack_require__){\"use strict\";var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var DOMutil=__webpack_require__(14);function Points(groupId,options){}Points.draw=function(dataset,group,framework,offset){offset=offset||0;var callback=getCallback(framework,group);for(var i=0;i<dataset.length;i++){if(!callback){DOMutil.drawPoint(dataset[i].screen_x+offset,dataset[i].screen_y,getGroupTemplate(group),framework.svgElements,framework.svg,dataset[i].label)}else{var callbackResult=callback(dataset[i],group);if(callbackResult===true||(typeof callbackResult===\"undefined\"?\"undefined\":(0,_typeof3[\"default\"])(callbackResult))===\"object\"){DOMutil.drawPoint(dataset[i].screen_x+offset,dataset[i].screen_y,getGroupTemplate(group,callbackResult),framework.svgElements,framework.svg,dataset[i].label)}}}};Points.drawIcon=function(group,x,y,iconWidth,iconHeight,framework){var fillHeight=iconHeight*.5;var outline=DOMutil.getSVGElement(\"rect\",framework.svgElements,framework.svg);outline.setAttributeNS(null,\"x\",x);outline.setAttributeNS(null,\"y\",y-fillHeight);outline.setAttributeNS(null,\"width\",iconWidth);outline.setAttributeNS(null,\"height\",2*fillHeight);outline.setAttributeNS(null,\"class\",\"vis-outline\");DOMutil.drawPoint(x+.5*iconWidth,y,getGroupTemplate(group),framework.svgElements,framework.svg)};function getGroupTemplate(group,callbackResult){callbackResult=typeof callbackResult===\"undefined\"?{}:callbackResult;return{style:callbackResult.style||group.options.drawPoints.style,styles:callbackResult.styles||group.options.drawPoints.styles,size:callbackResult.size||group.options.drawPoints.size,className:callbackResult.className||group.className}}function getCallback(framework,group){var callback=undefined;if(framework.options&&framework.options.drawPoints&&framework.options.drawPoints.onRender&&typeof framework.options.drawPoints.onRender==\"function\"){callback=framework.options.drawPoints.onRender}if(group.group.options&&group.group.options.drawPoints&&group.group.options.drawPoints.onRender&&typeof group.group.options.drawPoints.onRender==\"function\"){callback=group.group.options.drawPoints.onRender}return callback}module.exports=Points},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _NodeBase2=__webpack_require__(23);var _NodeBase3=_interopRequireDefault(_NodeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var CircleImageBase=function(_NodeBase){(0,_inherits3[\"default\"])(CircleImageBase,_NodeBase);function CircleImageBase(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,CircleImageBase);var _this=(0,_possibleConstructorReturn3[\"default\"])(this,(CircleImageBase.__proto__||(0,_getPrototypeOf2[\"default\"])(CircleImageBase)).call(this,options,body,labelModule));_this.labelOffset=0;_this.selected=false;return _this}(0,_createClass3[\"default\"])(CircleImageBase,[{key:\"setOptions\",value:function setOptions(options,imageObj,imageObjAlt){this.options=options;if(!(imageObj===undefined&&imageObjAlt===undefined)){this.setImages(imageObj,imageObjAlt)}}},{key:\"setImages\",value:function setImages(imageObj,imageObjAlt){if(imageObjAlt&&this.selected){this.imageObj=imageObjAlt;this.imageObjAlt=imageObj}else{this.imageObj=imageObj;this.imageObjAlt=imageObjAlt}}},{key:\"switchImages\",value:function switchImages(selected){var selection_changed=selected&&!this.selected||!selected&&this.selected;this.selected=selected;if(this.imageObjAlt!==undefined&&selection_changed){var imageTmp=this.imageObj;this.imageObj=this.imageObjAlt;this.imageObjAlt=imageTmp}}},{key:\"_resizeImage\",value:function _resizeImage(){var width,height;if(this.options.shapeProperties.useImageSize===false){var ratio_width=1;var ratio_height=1;if(this.imageObj.width&&this.imageObj.height){if(this.imageObj.width>this.imageObj.height){ratio_width=this.imageObj.width/this.imageObj.height}else{ratio_height=this.imageObj.height/this.imageObj.width}}width=this.options.size*2*ratio_width;height=this.options.size*2*ratio_height}else{width=this.imageObj.width;height=this.imageObj.height}this.width=width;this.height=height;this.radius=.5*this.width}},{key:\"_drawRawCircle\",value:function _drawRawCircle(ctx,x,y,values){this.initContextForDraw(ctx,values);ctx.circle(x,y,values.size);this.performFill(ctx,values)}},{key:\"_drawImageAtPosition\",value:function _drawImageAtPosition(ctx,values){if(this.imageObj.width!=0){ctx.globalAlpha=1;this.enableShadow(ctx,values);var factor=1;if(this.options.shapeProperties.interpolation===true){factor=this.imageObj.width/this.width/this.body.view.scale}this.imageObj.drawImageAtPosition(ctx,factor,this.left,this.top,this.width,this.height);this.disableShadow(ctx,values)}}},{key:\"_drawImageLabel\",value:function _drawImageLabel(ctx,x,y,selected,hover){var yLabel;var offset=0;if(this.height!==undefined){offset=this.height*.5;var labelDimensions=this.labelModule.getTextSize(ctx,selected,hover);if(labelDimensions.lineCount>=1){offset+=labelDimensions.height/2}}yLabel=y+offset;if(this.options.label){this.labelOffset=offset}this.labelModule.draw(ctx,x,yLabel,selected,hover,\"hanging\")}}]);return CircleImageBase}(_NodeBase3[\"default\"]);exports[\"default\"]=CircleImageBase},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _stringify=__webpack_require__(19);var _stringify2=_interopRequireDefault(_stringify);var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);var _create=__webpack_require__(29);var _create2=_interopRequireDefault(_create);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var Label=__webpack_require__(117)[\"default\"];var ComponentUtil=__webpack_require__(48)[\"default\"];var CubicBezierEdge=__webpack_require__(215)[\"default\"];var BezierEdgeDynamic=__webpack_require__(217)[\"default\"];var BezierEdgeStatic=__webpack_require__(218)[\"default\"];var StraightEdge=__webpack_require__(219)[\"default\"];var Edge=function(){function Edge(options,body,globalOptions,defaultOptions){(0,_classCallCheck3[\"default\"])(this,Edge);if(body===undefined){throw new Error(\"No body provided\")}this.options=util.bridgeObject(globalOptions);this.globalOptions=globalOptions;this.defaultOptions=defaultOptions;this.body=body;this.id=undefined;this.fromId=undefined;this.toId=undefined;this.selected=false;this.hover=false;this.labelDirty=true;this.baseWidth=this.options.width;this.baseFontSize=this.options.font.size;this.from=undefined;this.to=undefined;this.edgeType=undefined;this.connected=false;this.labelModule=new Label(this.body,this.options,true);this.setOptions(options)}(0,_createClass3[\"default\"])(Edge,[{key:\"setOptions\",value:function setOptions(options){if(!options){return}Edge.parseOptions(this.options,options,true,this.globalOptions);if(options.id!==undefined){this.id=options.id}if(options.from!==undefined){this.fromId=options.from}if(options.to!==undefined){this.toId=options.to}if(options.title!==undefined){this.title=options.title}if(options.value!==undefined){options.value=parseFloat(options.value)}var pile=[options,this.options,this.defaultOptions];this.chooser=ComponentUtil.choosify(\"edge\",pile);this.updateLabelModule(options);var dataChanged=this.updateEdgeType();this._setInteractionWidths();this.connect();if(options.hidden!==undefined||options.physics!==undefined){dataChanged=true}return dataChanged}},{key:\"getFormattingValues\",value:function getFormattingValues(){var toArrow=this.options.arrows.to===true||this.options.arrows.to.enabled===true;var fromArrow=this.options.arrows.from===true||this.options.arrows.from.enabled===true;var middleArrow=this.options.arrows.middle===true||this.options.arrows.middle.enabled===true;var inheritsColor=this.options.color.inherit;var values={toArrow:toArrow,toArrowScale:this.options.arrows.to.scaleFactor,toArrowType:this.options.arrows.to.type,middleArrow:middleArrow,middleArrowScale:this.options.arrows.middle.scaleFactor,middleArrowType:this.options.arrows.middle.type,fromArrow:fromArrow,fromArrowScale:this.options.arrows.from.scaleFactor,fromArrowType:this.options.arrows.from.type,arrowStrikethrough:this.options.arrowStrikethrough,color:inheritsColor?undefined:this.options.color.color,inheritsColor:inheritsColor,opacity:this.options.color.opacity,hidden:this.options.hidden,length:this.options.length,shadow:this.options.shadow.enabled,shadowColor:this.options.shadow.color,shadowSize:this.options.shadow.size,shadowX:this.options.shadow.x,shadowY:this.options.shadow.y,dashes:this.options.dashes,width:this.options.width};if(this.selected||this.hover){if(this.chooser===true){if(this.selected){var selectedWidth=this.options.selectionWidth;if(typeof selectedWidth===\"function\"){values.width=selectedWidth(values.width)}else if(typeof selectedWidth===\"number\"){values.width+=selectedWidth}values.width=Math.max(values.width,.3/this.body.view.scale);values.color=this.options.color.highlight;values.shadow=this.options.shadow.enabled}else if(this.hover){var hoverWidth=this.options.hoverWidth;if(typeof hoverWidth===\"function\"){values.width=hoverWidth(values.width)}else if(typeof hoverWidth===\"number\"){values.width+=hoverWidth}values.width=Math.max(values.width,.3/this.body.view.scale);values.color=this.options.color.hover;values.shadow=this.options.shadow.enabled}}else if(typeof this.chooser===\"function\"){this.chooser(values,this.options.id,this.selected,this.hover);if(values.color!==undefined){values.inheritsColor=false}if(values.shadow===false){if(values.shadowColor!==this.options.shadow.color||values.shadowSize!==this.options.shadow.size||values.shadowX!==this.options.shadow.x||values.shadowY!==this.options.shadow.y){values.shadow=true}}}}else{values.shadow=this.options.shadow.enabled;values.width=Math.max(values.width,.3/this.body.view.scale)}return values}},{key:\"updateLabelModule\",value:function updateLabelModule(options){var pile=[options,this.options,this.globalOptions,this.defaultOptions];this.labelModule.update(this.options,pile);if(this.labelModule.baseSize!==undefined){this.baseFontSize=this.labelModule.baseSize}}},{key:\"updateEdgeType\",value:function updateEdgeType(){var smooth=this.options.smooth;var dataChanged=false;var changeInType=true;if(this.edgeType!==undefined){if(this.edgeType instanceof BezierEdgeDynamic&&smooth.enabled===true&&smooth.type===\"dynamic\"||this.edgeType instanceof CubicBezierEdge&&smooth.enabled===true&&smooth.type===\"cubicBezier\"||this.edgeType instanceof BezierEdgeStatic&&smooth.enabled===true&&smooth.type!==\"dynamic\"&&smooth.type!==\"cubicBezier\"||this.edgeType instanceof StraightEdge&&smooth.type.enabled===false){changeInType=false}if(changeInType===true){dataChanged=this.cleanup()}}if(changeInType===true){if(smooth.enabled===true){if(smooth.type===\"dynamic\"){dataChanged=true;this.edgeType=new BezierEdgeDynamic(this.options,this.body,this.labelModule)}else if(smooth.type===\"cubicBezier\"){this.edgeType=new CubicBezierEdge(this.options,this.body,this.labelModule)}else{this.edgeType=new BezierEdgeStatic(this.options,this.body,this.labelModule)}}else{this.edgeType=new StraightEdge(this.options,this.body,this.labelModule)}}else{this.edgeType.setOptions(this.options)}return dataChanged}},{key:\"connect\",value:function connect(){this.disconnect();this.from=this.body.nodes[this.fromId]||undefined;this.to=this.body.nodes[this.toId]||undefined;this.connected=this.from!==undefined&&this.to!==undefined;if(this.connected===true){this.from.attachEdge(this);this.to.attachEdge(this)}else{if(this.from){this.from.detachEdge(this)}if(this.to){this.to.detachEdge(this)}}this.edgeType.connect()}},{key:\"disconnect\",value:function disconnect(){if(this.from){this.from.detachEdge(this);this.from=undefined}if(this.to){this.to.detachEdge(this);this.to=undefined}this.connected=false}},{key:\"getTitle\",value:function getTitle(){return this.title}},{key:\"isSelected\",value:function isSelected(){return this.selected}},{key:\"getValue\",value:function getValue(){return this.options.value}},{key:\"setValueRange\",value:function setValueRange(min,max,total){if(this.options.value!==undefined){var scale=this.options.scaling.customScalingFunction(min,max,total,this.options.value);var widthDiff=this.options.scaling.max-this.options.scaling.min;if(this.options.scaling.label.enabled===true){var fontDiff=this.options.scaling.label.max-this.options.scaling.label.min;this.options.font.size=this.options.scaling.label.min+scale*fontDiff}this.options.width=this.options.scaling.min+scale*widthDiff}else{this.options.width=this.baseWidth;this.options.font.size=this.baseFontSize}this._setInteractionWidths();this.updateLabelModule()}},{key:\"_setInteractionWidths\",value:function _setInteractionWidths(){if(typeof this.options.hoverWidth===\"function\"){this.edgeType.hoverWidth=this.options.hoverWidth(this.options.width)}else{this.edgeType.hoverWidth=this.options.hoverWidth+this.options.width}if(typeof this.options.selectionWidth===\"function\"){this.edgeType.selectionWidth=this.options.selectionWidth(this.options.width)}else{this.edgeType.selectionWidth=this.options.selectionWidth+this.options.width}}},{key:\"draw\",value:function draw(ctx){var values=this.getFormattingValues();if(values.hidden){return}var viaNode=this.edgeType.getViaNode();var arrowData={};this.edgeType.fromPoint=this.edgeType.from;this.edgeType.toPoint=this.edgeType.to;if(values.fromArrow){arrowData.from=this.edgeType.getArrowData(ctx,\"from\",viaNode,this.selected,this.hover,values);if(values.arrowStrikethrough===false)this.edgeType.fromPoint=arrowData.from.core}if(values.toArrow){arrowData.to=this.edgeType.getArrowData(ctx,\"to\",viaNode,this.selected,this.hover,values);if(values.arrowStrikethrough===false)this.edgeType.toPoint=arrowData.to.core}if(values.middleArrow){arrowData.middle=this.edgeType.getArrowData(ctx,\"middle\",viaNode,this.selected,this.hover,values)}this.edgeType.drawLine(ctx,values,this.selected,this.hover,viaNode);this.drawArrows(ctx,arrowData,values);this.drawLabel(ctx,viaNode)}},{key:\"drawArrows\",value:function drawArrows(ctx,arrowData,values){if(values.fromArrow){this.edgeType.drawArrowHead(ctx,values,this.selected,this.hover,arrowData.from)}if(values.middleArrow){this.edgeType.drawArrowHead(ctx,values,this.selected,this.hover,arrowData.middle)}if(values.toArrow){this.edgeType.drawArrowHead(ctx,values,this.selected,this.hover,arrowData.to)}}},{key:\"drawLabel\",value:function drawLabel(ctx,viaNode){if(this.options.label!==undefined){var node1=this.from;var node2=this.to;if(this.labelModule.differentState(this.selected,this.hover)){this.labelModule.getTextSize(ctx,this.selected,this.hover)}if(node1.id!=node2.id){this.labelModule.pointToSelf=false;var point=this.edgeType.getPoint(.5,viaNode);ctx.save();var rotationPoint=this._getRotation(ctx);if(rotationPoint.angle!=0){ctx.translate(rotationPoint.x,rotationPoint.y);ctx.rotate(rotationPoint.angle)}this.labelModule.draw(ctx,point.x,point.y,this.selected,this.hover);ctx.restore()}else{this.labelModule.pointToSelf=true;var x,y;var radius=this.options.selfReferenceSize;if(node1.shape.width>node1.shape.height){x=node1.x+node1.shape.width*.5;y=node1.y-radius}else{x=node1.x+radius;y=node1.y-node1.shape.height*.5}point=this._pointOnCircle(x,y,radius,.125);this.labelModule.draw(ctx,point.x,point.y,this.selected,this.hover)}}}},{key:\"getItemsOnPoint\",value:function getItemsOnPoint(point){var ret=[];if(this.labelModule.visible()){var rotationPoint=this._getRotation();if(ComponentUtil.pointInRect(this.labelModule.getSize(),point,rotationPoint)){ret.push({edgeId:this.id,labelId:0})}}var obj={left:point.x,top:point.y};if(this.isOverlappingWith(obj)){ret.push({edgeId:this.id})}return ret}},{key:\"isOverlappingWith\",value:function isOverlappingWith(obj){if(this.connected){var distMax=10;var xFrom=this.from.x;var yFrom=this.from.y;var xTo=this.to.x;var yTo=this.to.y;var xObj=obj.left;var yObj=obj.top;var dist=this.edgeType.getDistanceToEdge(xFrom,yFrom,xTo,yTo,xObj,yObj);return dist<distMax}else{return false}}},{key:\"_getRotation\",value:function _getRotation(ctx){var viaNode=this.edgeType.getViaNode();var point=this.edgeType.getPoint(.5,viaNode);if(ctx!==undefined){this.labelModule.calculateLabelSize(ctx,this.selected,this.hover,point.x,point.y)}var ret={x:point.x,y:this.labelModule.size.yLine,angle:0};if(!this.labelModule.visible()){return ret}if(this.options.font.align===\"horizontal\"){return ret}var dy=this.from.y-this.to.y;var dx=this.from.x-this.to.x;var angle=Math.atan2(dy,dx);if(angle<-1&&dx<0||angle>0&&dx<0){angle+=Math.PI}ret.angle=angle;return ret}},{key:\"_pointOnCircle\",value:function _pointOnCircle(x,y,radius,percentage){var angle=percentage*2*Math.PI;return{x:x+radius*Math.cos(angle),y:y-radius*Math.sin(angle)}}},{key:\"select\",value:function select(){this.selected=true}},{key:\"unselect\",value:function unselect(){this.selected=false}},{key:\"cleanup\",value:function cleanup(){return this.edgeType.cleanup()}},{key:\"remove\",value:function remove(){this.cleanup();this.disconnect();delete this.body.edges[this.id]}},{key:\"endPointsValid\",value:function endPointsValid(){return this.body.nodes[this.fromId]!==undefined&&this.body.nodes[this.toId]!==undefined}}],[{key:\"parseOptions\",value:function parseOptions(parentOptions,newOptions){var allowDeletion=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;var globalOptions=arguments.length>3&&arguments[3]!==undefined?arguments[3]:{};var copyFromGlobals=arguments.length>4&&arguments[4]!==undefined?arguments[4]:false;var fields=[\"arrowStrikethrough\",\"id\",\"from\",\"hidden\",\"hoverWidth\",\"labelHighlightBold\",\"length\",\"line\",\"opacity\",\"physics\",\"scaling\",\"selectionWidth\",\"selfReferenceSize\",\"to\",\"title\",\"value\",\"width\",\"font\",\"chosen\",\"widthConstraint\"];util.selectiveDeepExtend(fields,parentOptions,newOptions,allowDeletion);if(ComponentUtil.isValidLabel(newOptions.label)){parentOptions.label=newOptions.label}else{parentOptions.label=undefined}util.mergeOptions(parentOptions,newOptions,\"smooth\",globalOptions);util.mergeOptions(parentOptions,newOptions,\"shadow\",globalOptions);if(newOptions.dashes!==undefined&&newOptions.dashes!==null){parentOptions.dashes=newOptions.dashes}else if(allowDeletion===true&&newOptions.dashes===null){parentOptions.dashes=(0,_create2[\"default\"])(globalOptions.dashes)}if(newOptions.scaling!==undefined&&newOptions.scaling!==null){if(newOptions.scaling.min!==undefined){parentOptions.scaling.min=newOptions.scaling.min}if(newOptions.scaling.max!==undefined){parentOptions.scaling.max=newOptions.scaling.max}util.mergeOptions(parentOptions.scaling,newOptions.scaling,\"label\",globalOptions.scaling)}else if(allowDeletion===true&&newOptions.scaling===null){parentOptions.scaling=(0,_create2[\"default\"])(globalOptions.scaling)}if(newOptions.arrows!==undefined&&newOptions.arrows!==null){if(typeof newOptions.arrows===\"string\"){var arrows=newOptions.arrows.toLowerCase();parentOptions.arrows.to.enabled=arrows.indexOf(\"to\")!=-1;parentOptions.arrows.middle.enabled=arrows.indexOf(\"middle\")!=-1;parentOptions.arrows.from.enabled=arrows.indexOf(\"from\")!=-1}else if((0,_typeof3[\"default\"])(newOptions.arrows)===\"object\"){util.mergeOptions(parentOptions.arrows,newOptions.arrows,\"to\",globalOptions.arrows);util.mergeOptions(parentOptions.arrows,newOptions.arrows,\"middle\",globalOptions.arrows);util.mergeOptions(parentOptions.arrows,newOptions.arrows,\"from\",globalOptions.arrows)}else{throw new Error(\"The arrow newOptions can only be an object or a string. Refer to the documentation. You used:\"+(0,_stringify2[\"default\"])(newOptions.arrows))}}else if(allowDeletion===true&&newOptions.arrows===null){parentOptions.arrows=(0,_create2[\"default\"])(globalOptions.arrows)}if(newOptions.color!==undefined&&newOptions.color!==null){var fromColor=newOptions.color;var toColor=parentOptions.color;if(copyFromGlobals){util.deepExtend(toColor,globalOptions.color,false,allowDeletion)}else{for(var i in toColor){if(toColor.hasOwnProperty(i)){delete toColor[i]}}}if(util.isString(toColor)){toColor.color=toColor;toColor.highlight=toColor;toColor.hover=toColor;toColor.inherit=false;if(fromColor.opacity===undefined){toColor.opacity=1}}else{var colorsDefined=false;if(fromColor.color!==undefined){toColor.color=fromColor.color;colorsDefined=true}if(fromColor.highlight!==undefined){toColor.highlight=fromColor.highlight;colorsDefined=true}if(fromColor.hover!==undefined){toColor.hover=fromColor.hover;colorsDefined=true}if(fromColor.inherit!==undefined){toColor.inherit=fromColor.inherit}if(fromColor.opacity!==undefined){toColor.opacity=Math.min(1,Math.max(0,fromColor.opacity))}if(colorsDefined===true){toColor.inherit=false}else{if(toColor.inherit===undefined){toColor.inherit=\"from\"}}}}else if(allowDeletion===true&&newOptions.color===null){parentOptions.color=util.bridgeObject(globalOptions.color)}if(allowDeletion===true&&newOptions.font===null){parentOptions.font=util.bridgeObject(globalOptions.font)}}}]);return Edge}();exports[\"default\"]=Edge},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _EdgeBase2=__webpack_require__(118);var _EdgeBase3=_interopRequireDefault(_EdgeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var BezierEdgeBase=function(_EdgeBase){(0,_inherits3[\"default\"])(BezierEdgeBase,_EdgeBase);function BezierEdgeBase(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,BezierEdgeBase);return(0,_possibleConstructorReturn3[\"default\"])(this,(BezierEdgeBase.__proto__||(0,_getPrototypeOf2[\"default\"])(BezierEdgeBase)).call(this,options,body,labelModule))}(0,_createClass3[\"default\"])(BezierEdgeBase,[{key:\"_findBorderPositionBezier\",value:function _findBorderPositionBezier(nearNode,ctx){var viaNode=arguments.length>2&&arguments[2]!==undefined?arguments[2]:this._getViaCoordinates();var maxIterations=10;var iteration=0;var low=0;var high=1;var pos,angle,distanceToBorder,distanceToPoint,difference;var threshold=.2;var node=this.to;var from=false;if(nearNode.id===this.from.id){node=this.from;from=true}while(low<=high&&iteration<maxIterations){var middle=(low+high)*.5;pos=this.getPoint(middle,viaNode);angle=Math.atan2(node.y-pos.y,node.x-pos.x);distanceToBorder=node.distanceToBorder(ctx,angle);distanceToPoint=Math.sqrt(Math.pow(pos.x-node.x,2)+Math.pow(pos.y-node.y,2));difference=distanceToBorder-distanceToPoint;if(Math.abs(difference)<threshold){break}else if(difference<0){if(from===false){low=middle}else{high=middle}}else{if(from===false){high=middle}else{low=middle}}iteration++}pos.t=middle;return pos}},{key:\"_getDistanceToBezierEdge\",value:function _getDistanceToBezierEdge(x1,y1,x2,y2,x3,y3,via){var minDistance=1e9;var distance=void 0;var i=void 0,t=void 0,x=void 0,y=void 0;var lastX=x1;var lastY=y1;for(i=1;i<10;i++){t=.1*i;x=Math.pow(1-t,2)*x1+2*t*(1-t)*via.x+Math.pow(t,2)*x2;y=Math.pow(1-t,2)*y1+2*t*(1-t)*via.y+Math.pow(t,2)*y2;if(i>0){distance=this._getDistanceToLine(lastX,lastY,x,y,x3,y3);minDistance=distance<minDistance?distance:minDistance}lastX=x;lastY=y}return minDistance}},{key:\"_bezierCurve\",value:function _bezierCurve(ctx,values,viaNode1,viaNode2){var hasNode1=viaNode1!==undefined&&viaNode1.x!==undefined;var hasNode2=viaNode2!==undefined&&viaNode2.x!==undefined;ctx.beginPath();ctx.moveTo(this.fromPoint.x,this.fromPoint.y);if(hasNode1&&hasNode2){ctx.bezierCurveTo(viaNode1.x,viaNode1.y,viaNode2.x,viaNode2.y,this.toPoint.x,this.toPoint.y)}else if(hasNode1){ctx.quadraticCurveTo(viaNode1.x,viaNode1.y,this.toPoint.x,this.toPoint.y)}else{ctx.lineTo(this.toPoint.x,this.toPoint.y)}this.enableShadow(ctx,values);ctx.stroke();this.disableShadow(ctx,values)}},{key:\"getViaNode\",value:function getViaNode(){return this._getViaCoordinates()}}]);return BezierEdgeBase}(_EdgeBase3[\"default\"]);exports[\"default\"]=BezierEdgeBase},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var NetworkUtil=function(){function NetworkUtil(){(0,_classCallCheck3[\"default\"])(this,NetworkUtil)}(0,_createClass3[\"default\"])(NetworkUtil,null,[{key:\"getRange\",value:function getRange(allNodes){var specificNodes=arguments.length>1&&arguments[1]!==undefined?arguments[1]:[];var minY=1e9,maxY=-1e9,minX=1e9,maxX=-1e9,node;if(specificNodes.length>0){for(var i=0;i<specificNodes.length;i++){node=allNodes[specificNodes[i]];if(minX>node.shape.boundingBox.left){minX=node.shape.boundingBox.left}if(maxX<node.shape.boundingBox.right){maxX=node.shape.boundingBox.right}if(minY>node.shape.boundingBox.top){minY=node.shape.boundingBox.top}if(maxY<node.shape.boundingBox.bottom){maxY=node.shape.boundingBox.bottom}}}if(minX===1e9&&maxX===-1e9&&minY===1e9&&maxY===-1e9){minY=0,maxY=0,minX=0,maxX=0}return{minX:minX,maxX:maxX,minY:minY,maxY:maxY}}},{key:\"getRangeCore\",value:function getRangeCore(allNodes){var specificNodes=arguments.length>1&&arguments[1]!==undefined?arguments[1]:[];var minY=1e9,maxY=-1e9,minX=1e9,maxX=-1e9,node;if(specificNodes.length>0){for(var i=0;i<specificNodes.length;i++){node=allNodes[specificNodes[i]];if(minX>node.x){minX=node.x}if(maxX<node.x){maxX=node.x}if(minY>node.y){minY=node.y}if(maxY<node.y){maxY=node.y}}}if(minX===1e9&&maxX===-1e9&&minY===1e9&&maxY===-1e9){minY=0,maxY=0,minX=0,maxX=0}return{minX:minX,maxX:maxX,minY:minY,maxY:maxY}}},{key:\"findCenter\",value:function findCenter(range){return{x:.5*(range.maxX+range.minX),y:.5*(range.maxY+range.minY)}}},{key:\"cloneOptions\",value:function cloneOptions(item,type){var clonedOptions={};if(type===undefined||type===\"node\"){util.deepExtend(clonedOptions,item.options,true);clonedOptions.x=item.x;clonedOptions.y=item.y;clonedOptions.amountOfConnections=item.edges.length}else{util.deepExtend(clonedOptions,item.options,true)}return clonedOptions}}]);return NetworkUtil}();exports[\"default\"]=NetworkUtil},function(module,exports,__webpack_require__){module.exports={default:__webpack_require__(124),__esModule:true}},function(module,exports,__webpack_require__){var cof=__webpack_require__(50);module.exports=Object(\"z\").propertyIsEnumerable(0)?Object:function(it){return cof(it)==\"String\"?it.split(\"\"):Object(it)}},function(module,exports,__webpack_require__){\"use strict\";var LIBRARY=__webpack_require__(52);var $export=__webpack_require__(17);var redefine=__webpack_require__(83);var hide=__webpack_require__(26);var has=__webpack_require__(22);var Iterators=__webpack_require__(31);var $iterCreate=__webpack_require__(129);var setToStringTag=__webpack_require__(59);var getPrototypeOf=__webpack_require__(85);var ITERATOR=__webpack_require__(13)(\"iterator\");var BUGGY=!([].keys&&\"next\"in[].keys())\n;var FF_ITERATOR=\"@@iterator\";var KEYS=\"keys\";var VALUES=\"values\";var returnThis=function(){return this};module.exports=function(Base,NAME,Constructor,next,DEFAULT,IS_SET,FORCED){$iterCreate(Constructor,NAME,next);var getMethod=function(kind){if(!BUGGY&&kind in proto)return proto[kind];switch(kind){case KEYS:return function keys(){return new Constructor(this,kind)};case VALUES:return function values(){return new Constructor(this,kind)}}return function entries(){return new Constructor(this,kind)}};var TAG=NAME+\" Iterator\";var DEF_VALUES=DEFAULT==VALUES;var VALUES_BUG=false;var proto=Base.prototype;var $native=proto[ITERATOR]||proto[FF_ITERATOR]||DEFAULT&&proto[DEFAULT];var $default=$native||getMethod(DEFAULT);var $entries=DEFAULT?!DEF_VALUES?$default:getMethod(\"entries\"):undefined;var $anyNative=NAME==\"Array\"?proto.entries||$native:$native;var methods,key,IteratorPrototype;if($anyNative){IteratorPrototype=getPrototypeOf($anyNative.call(new Base));if(IteratorPrototype!==Object.prototype&&IteratorPrototype.next){setToStringTag(IteratorPrototype,TAG,true);if(!LIBRARY&&!has(IteratorPrototype,ITERATOR))hide(IteratorPrototype,ITERATOR,returnThis)}}if(DEF_VALUES&&$native&&$native.name!==VALUES){VALUES_BUG=true;$default=function values(){return $native.call(this)}}if((!LIBRARY||FORCED)&&(BUGGY||VALUES_BUG||!proto[ITERATOR])){hide(proto,ITERATOR,$default)}Iterators[NAME]=$default;Iterators[TAG]=returnThis;if(DEFAULT){methods={values:DEF_VALUES?$default:getMethod(VALUES),keys:IS_SET?$default:getMethod(KEYS),entries:$entries};if(FORCED)for(key in methods){if(!(key in proto))redefine(proto,key,methods[key])}else $export($export.P+$export.F*(BUGGY||VALUES_BUG),NAME,methods)}return methods}},function(module,exports,__webpack_require__){var aFunction=__webpack_require__(128);module.exports=function(fn,that,length){aFunction(fn);if(that===undefined)return fn;switch(length){case 1:return function(a){return fn.call(that,a)};case 2:return function(a,b){return fn.call(that,a,b)};case 3:return function(a,b,c){return fn.call(that,a,b,c)}}return function(){return fn.apply(that,arguments)}}},function(module,exports,__webpack_require__){module.exports=!__webpack_require__(21)&&!__webpack_require__(28)(function(){return Object.defineProperty(__webpack_require__(82)(\"div\"),\"a\",{get:function(){return 7}}).a!=7})},function(module,exports,__webpack_require__){var isObject=__webpack_require__(32);var document=__webpack_require__(18).document;var is=isObject(document)&&isObject(document.createElement);module.exports=function(it){return is?document.createElement(it):{}}},function(module,exports,__webpack_require__){module.exports=__webpack_require__(26)},function(module,exports,__webpack_require__){var has=__webpack_require__(22);var toIObject=__webpack_require__(25);var arrayIndexOf=__webpack_require__(131)(false);var IE_PROTO=__webpack_require__(56)(\"IE_PROTO\");module.exports=function(object,names){var O=toIObject(object);var i=0;var result=[];var key;for(key in O)if(key!=IE_PROTO)has(O,key)&&result.push(key);while(names.length>i)if(has(O,key=names[i++])){~arrayIndexOf(result,key)||result.push(key)}return result}},function(module,exports,__webpack_require__){var has=__webpack_require__(22);var toObject=__webpack_require__(41);var IE_PROTO=__webpack_require__(56)(\"IE_PROTO\");var ObjectProto=Object.prototype;module.exports=Object.getPrototypeOf||function(O){O=toObject(O);if(has(O,IE_PROTO))return O[IE_PROTO];if(typeof O.constructor==\"function\"&&O instanceof O.constructor){return O.constructor.prototype}return O instanceof Object?ObjectProto:null}},function(module,exports,__webpack_require__){var cof=__webpack_require__(50);var TAG=__webpack_require__(13)(\"toStringTag\");var ARG=cof(function(){return arguments}())==\"Arguments\";var tryGet=function(it,key){try{return it[key]}catch(e){}};module.exports=function(it){var O,T,B;return it===undefined?\"Undefined\":it===null?\"Null\":typeof(T=tryGet(O=Object(it),TAG))==\"string\"?T:ARG?cof(O):(B=cof(O))==\"Object\"&&typeof O.callee==\"function\"?\"Arguments\":B}},function(module,exports,__webpack_require__){var $export=__webpack_require__(17);var core=__webpack_require__(7);var fails=__webpack_require__(28);module.exports=function(KEY,exec){var fn=(core.Object||{})[KEY]||Object[KEY];var exp={};exp[KEY]=exec(fn);$export($export.S+$export.F*fails(function(){fn(1)}),\"Object\",exp)}},function(module,exports,__webpack_require__){var $keys=__webpack_require__(84);var hiddenKeys=__webpack_require__(58).concat(\"length\",\"prototype\");exports.f=Object.getOwnPropertyNames||function getOwnPropertyNames(O){return $keys(O,hiddenKeys)}},function(module,exports,__webpack_require__){var pIE=__webpack_require__(42);var createDesc=__webpack_require__(39);var toIObject=__webpack_require__(25);var toPrimitive=__webpack_require__(53);var has=__webpack_require__(22);var IE8_DOM_DEFINE=__webpack_require__(81);var gOPD=Object.getOwnPropertyDescriptor;exports.f=__webpack_require__(21)?gOPD:function getOwnPropertyDescriptor(O,P){O=toIObject(O);P=toPrimitive(P,true);if(IE8_DOM_DEFINE)try{return gOPD(O,P)}catch(e){}if(has(O,P))return createDesc(!pIE.f.call(O,P),O[P])}},function(module,exports,__webpack_require__){module.exports={default:__webpack_require__(162),__esModule:true}},function(module,exports,__webpack_require__){\"use strict\";function Point2d(x,y){this.x=x!==undefined?x:0;this.y=y!==undefined?y:0}module.exports=Point2d},function(module,exports,__webpack_require__){\"use strict\";var util=__webpack_require__(2);function Slider(container,options){if(container===undefined){throw new Error(\"No container element defined\")}this.container=container;this.visible=options&&options.visible!=undefined?options.visible:true;if(this.visible){this.frame=document.createElement(\"DIV\");this.frame.style.width=\"100%\";this.frame.style.position=\"relative\";this.container.appendChild(this.frame);this.frame.prev=document.createElement(\"INPUT\");this.frame.prev.type=\"BUTTON\";this.frame.prev.value=\"Prev\";this.frame.appendChild(this.frame.prev);this.frame.play=document.createElement(\"INPUT\");this.frame.play.type=\"BUTTON\";this.frame.play.value=\"Play\";this.frame.appendChild(this.frame.play);this.frame.next=document.createElement(\"INPUT\");this.frame.next.type=\"BUTTON\";this.frame.next.value=\"Next\";this.frame.appendChild(this.frame.next);this.frame.bar=document.createElement(\"INPUT\");this.frame.bar.type=\"BUTTON\";this.frame.bar.style.position=\"absolute\";this.frame.bar.style.border=\"1px solid red\";this.frame.bar.style.width=\"100px\";this.frame.bar.style.height=\"6px\";this.frame.bar.style.borderRadius=\"2px\";this.frame.bar.style.MozBorderRadius=\"2px\";this.frame.bar.style.border=\"1px solid #7F7F7F\";this.frame.bar.style.backgroundColor=\"#E5E5E5\";this.frame.appendChild(this.frame.bar);this.frame.slide=document.createElement(\"INPUT\");this.frame.slide.type=\"BUTTON\";this.frame.slide.style.margin=\"0px\";this.frame.slide.value=\" \";this.frame.slide.style.position=\"relative\";this.frame.slide.style.left=\"-100px\";this.frame.appendChild(this.frame.slide);var me=this;this.frame.slide.onmousedown=function(event){me._onMouseDown(event)};this.frame.prev.onclick=function(event){me.prev(event)};this.frame.play.onclick=function(event){me.togglePlay(event)};this.frame.next.onclick=function(event){me.next(event)}}this.onChangeCallback=undefined;this.values=[];this.index=undefined;this.playTimeout=undefined;this.playInterval=1e3;this.playLoop=true}Slider.prototype.prev=function(){var index=this.getIndex();if(index>0){index--;this.setIndex(index)}};Slider.prototype.next=function(){var index=this.getIndex();if(index<this.values.length-1){index++;this.setIndex(index)}};Slider.prototype.playNext=function(){var start=new Date;var index=this.getIndex();if(index<this.values.length-1){index++;this.setIndex(index)}else if(this.playLoop){index=0;this.setIndex(index)}var end=new Date;var diff=end-start;var interval=Math.max(this.playInterval-diff,0);var me=this;this.playTimeout=setTimeout(function(){me.playNext()},interval)};Slider.prototype.togglePlay=function(){if(this.playTimeout===undefined){this.play()}else{this.stop()}};Slider.prototype.play=function(){if(this.playTimeout)return;this.playNext();if(this.frame){this.frame.play.value=\"Stop\"}};Slider.prototype.stop=function(){clearInterval(this.playTimeout);this.playTimeout=undefined;if(this.frame){this.frame.play.value=\"Play\"}};Slider.prototype.setOnChangeCallback=function(callback){this.onChangeCallback=callback};Slider.prototype.setPlayInterval=function(interval){this.playInterval=interval};Slider.prototype.getPlayInterval=function(){return this.playInterval};Slider.prototype.setPlayLoop=function(doLoop){this.playLoop=doLoop};Slider.prototype.onChange=function(){if(this.onChangeCallback!==undefined){this.onChangeCallback()}};Slider.prototype.redraw=function(){if(this.frame){this.frame.bar.style.top=this.frame.clientHeight/2-this.frame.bar.offsetHeight/2+\"px\";this.frame.bar.style.width=this.frame.clientWidth-this.frame.prev.clientWidth-this.frame.play.clientWidth-this.frame.next.clientWidth-30+\"px\";var left=this.indexToLeft(this.index);this.frame.slide.style.left=left+\"px\"}};Slider.prototype.setValues=function(values){this.values=values;if(this.values.length>0)this.setIndex(0);else this.index=undefined};Slider.prototype.setIndex=function(index){if(index<this.values.length){this.index=index;this.redraw();this.onChange()}else{throw new Error(\"Index out of range\")}};Slider.prototype.getIndex=function(){return this.index};Slider.prototype.get=function(){return this.values[this.index]};Slider.prototype._onMouseDown=function(event){var leftButtonDown=event.which?event.which===1:event.button===1;if(!leftButtonDown)return;this.startClientX=event.clientX;this.startSlideX=parseFloat(this.frame.slide.style.left);this.frame.style.cursor=\"move\";var me=this;this.onmousemove=function(event){me._onMouseMove(event)};this.onmouseup=function(event){me._onMouseUp(event)};util.addEventListener(document,\"mousemove\",this.onmousemove);util.addEventListener(document,\"mouseup\",this.onmouseup);util.preventDefault(event)};Slider.prototype.leftToIndex=function(left){var width=parseFloat(this.frame.bar.style.width)-this.frame.slide.clientWidth-10;var x=left-3;var index=Math.round(x/width*(this.values.length-1));if(index<0)index=0;if(index>this.values.length-1)index=this.values.length-1;return index};Slider.prototype.indexToLeft=function(index){var width=parseFloat(this.frame.bar.style.width)-this.frame.slide.clientWidth-10;var x=index/(this.values.length-1)*width;var left=x+3;return left};Slider.prototype._onMouseMove=function(event){var diff=event.clientX-this.startClientX;var x=this.startSlideX+diff;var index=this.leftToIndex(x);this.setIndex(index);util.preventDefault()};Slider.prototype._onMouseUp=function(event){this.frame.style.cursor=\"auto\";util.removeEventListener(document,\"mousemove\",this.onmousemove);util.removeEventListener(document,\"mouseup\",this.onmouseup);util.preventDefault()};module.exports=Slider},function(module,exports,__webpack_require__){\"use strict\";function StepNumber(start,end,step,prettyStep){this._start=0;this._end=0;this._step=1;this.prettyStep=true;this.precision=5;this._current=0;this.setRange(start,end,step,prettyStep)}StepNumber.prototype.isNumeric=function(n){return!isNaN(parseFloat(n))&&isFinite(n)};StepNumber.prototype.setRange=function(start,end,step,prettyStep){if(!this.isNumeric(start)){throw new Error(\"Parameter 'start' is not numeric; value: \"+start)}if(!this.isNumeric(end)){throw new Error(\"Parameter 'end' is not numeric; value: \"+start)}if(!this.isNumeric(step)){throw new Error(\"Parameter 'step' is not numeric; value: \"+start)}this._start=start?start:0;this._end=end?end:0;this.setStep(step,prettyStep)};StepNumber.prototype.setStep=function(step,prettyStep){if(step===undefined||step<=0)return;if(prettyStep!==undefined)this.prettyStep=prettyStep;if(this.prettyStep===true)this._step=StepNumber.calculatePrettyStep(step);else this._step=step};StepNumber.calculatePrettyStep=function(step){var log10=function log10(x){return Math.log(x)/Math.LN10};var step1=Math.pow(10,Math.round(log10(step))),step2=2*Math.pow(10,Math.round(log10(step/2))),step5=5*Math.pow(10,Math.round(log10(step/5)));var prettyStep=step1;if(Math.abs(step2-step)<=Math.abs(prettyStep-step))prettyStep=step2;if(Math.abs(step5-step)<=Math.abs(prettyStep-step))prettyStep=step5;if(prettyStep<=0){prettyStep=1}return prettyStep};StepNumber.prototype.getCurrent=function(){return parseFloat(this._current.toPrecision(this.precision))};StepNumber.prototype.getStep=function(){return this._step};StepNumber.prototype.start=function(checkFirst){if(checkFirst===undefined){checkFirst=false}this._current=this._start-this._start%this._step;if(checkFirst){if(this.getCurrent()<this._start){this.next()}}};StepNumber.prototype.next=function(){this._current+=this._step};StepNumber.prototype.end=function(){return this._current>this._end};module.exports=StepNumber},function(module,exports,__webpack_require__){\"use strict\";var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var Camera=__webpack_require__(95);var Point3d=__webpack_require__(34);var STYLE={BAR:0,BARCOLOR:1,BARSIZE:2,DOT:3,DOTLINE:4,DOTCOLOR:5,DOTSIZE:6,GRID:7,LINE:8,SURFACE:9};var STYLENAME={dot:STYLE.DOT,\"dot-line\":STYLE.DOTLINE,\"dot-color\":STYLE.DOTCOLOR,\"dot-size\":STYLE.DOTSIZE,line:STYLE.LINE,grid:STYLE.GRID,surface:STYLE.SURFACE,bar:STYLE.BAR,\"bar-color\":STYLE.BARCOLOR,\"bar-size\":STYLE.BARSIZE};var OPTIONKEYS=[\"width\",\"height\",\"filterLabel\",\"legendLabel\",\"xLabel\",\"yLabel\",\"zLabel\",\"xValueLabel\",\"yValueLabel\",\"zValueLabel\",\"showXAxis\",\"showYAxis\",\"showZAxis\",\"showGrid\",\"showPerspective\",\"showShadow\",\"keepAspectRatio\",\"verticalRatio\",\"dotSizeRatio\",\"dotSizeMinFraction\",\"dotSizeMaxFraction\",\"showAnimationControls\",\"animationInterval\",\"animationPreload\",\"animationAutoStart\",\"axisColor\",\"gridColor\",\"xCenter\",\"yCenter\"];var PREFIXEDOPTIONKEYS=[\"xBarWidth\",\"yBarWidth\",\"valueMin\",\"valueMax\",\"xMin\",\"xMax\",\"xStep\",\"yMin\",\"yMax\",\"yStep\",\"zMin\",\"zMax\",\"zStep\"];var DEFAULTS=undefined;function isEmpty(obj){for(var prop in obj){if(obj.hasOwnProperty(prop))return false}return true}function capitalize(str){if(str===undefined||str===\"\"||typeof str!=\"string\"){return str}return str.charAt(0).toUpperCase()+str.slice(1)}function prefixFieldName(prefix,fieldName){if(prefix===undefined||prefix===\"\"){return fieldName}return prefix+capitalize(fieldName)}function forceCopy(src,dst,fields,prefix){var srcKey;var dstKey;for(var i=0;i<fields.length;++i){srcKey=fields[i];dstKey=prefixFieldName(prefix,srcKey);dst[dstKey]=src[srcKey]}}function safeCopy(src,dst,fields,prefix){var srcKey;var dstKey;for(var i=0;i<fields.length;++i){srcKey=fields[i];if(src[srcKey]===undefined)continue;dstKey=prefixFieldName(prefix,srcKey);dst[dstKey]=src[srcKey]}}function setDefaults(src,dst){if(src===undefined||isEmpty(src)){throw new Error(\"No DEFAULTS passed\")}if(dst===undefined){throw new Error(\"No dst passed\")}DEFAULTS=src;forceCopy(src,dst,OPTIONKEYS);forceCopy(src,dst,PREFIXEDOPTIONKEYS,\"default\");setSpecialSettings(src,dst);dst.margin=10;dst.showGrayBottom=false;dst.showTooltip=false;dst.onclick_callback=null;dst.eye=new Point3d(0,0,-1)}function setOptions(options,dst){if(options===undefined){return}if(dst===undefined){throw new Error(\"No dst passed\")}if(DEFAULTS===undefined||isEmpty(DEFAULTS)){throw new Error(\"DEFAULTS not set for module Settings\")}safeCopy(options,dst,OPTIONKEYS);safeCopy(options,dst,PREFIXEDOPTIONKEYS,\"default\");setSpecialSettings(options,dst)}function setSpecialSettings(src,dst){if(src.backgroundColor!==undefined){setBackgroundColor(src.backgroundColor,dst)}setDataColor(src.dataColor,dst);setStyle(src.style,dst);setShowLegend(src.showLegend,dst);setCameraPosition(src.cameraPosition,dst);if(src.tooltip!==undefined){dst.showTooltip=src.tooltip}if(src.onclick!=undefined){dst.onclick_callback=src.onclick}if(src.tooltipStyle!==undefined){util.selectiveDeepExtend([\"tooltipStyle\"],dst,src)}}function setShowLegend(showLegend,dst){if(showLegend===undefined){var isAutoByDefault=DEFAULTS.showLegend===undefined;if(isAutoByDefault){var isLegendGraphStyle=dst.style===STYLE.DOTCOLOR||dst.style===STYLE.DOTSIZE;dst.showLegend=isLegendGraphStyle}else{}}else{dst.showLegend=showLegend}}function getStyleNumberByName(styleName){var number=STYLENAME[styleName];if(number===undefined){return-1}return number}function checkStyleNumber(style){var valid=false;for(var n in STYLE){if(STYLE[n]===style){valid=true;break}}return valid}function setStyle(style,dst){if(style===undefined){return}var styleNumber;if(typeof style===\"string\"){styleNumber=getStyleNumberByName(style);if(styleNumber===-1){throw new Error(\"Style '\"+style+\"' is invalid\")}}else{if(!checkStyleNumber(style)){throw new Error(\"Style '\"+style+\"' is invalid\")}styleNumber=style}dst.style=styleNumber}function setBackgroundColor(backgroundColor,dst){var fill=\"white\";var stroke=\"gray\";var strokeWidth=1;if(typeof backgroundColor===\"string\"){fill=backgroundColor;stroke=\"none\";strokeWidth=0}else if((typeof backgroundColor===\"undefined\"?\"undefined\":(0,_typeof3[\"default\"])(backgroundColor))===\"object\"){if(backgroundColor.fill!==undefined)fill=backgroundColor.fill;if(backgroundColor.stroke!==undefined)stroke=backgroundColor.stroke;if(backgroundColor.strokeWidth!==undefined)strokeWidth=backgroundColor.strokeWidth}else{throw new Error(\"Unsupported type of backgroundColor\")}dst.frame.style.backgroundColor=fill;dst.frame.style.borderColor=stroke;dst.frame.style.borderWidth=strokeWidth+\"px\";dst.frame.style.borderStyle=\"solid\"}function setDataColor(dataColor,dst){if(dataColor===undefined){return}if(dst.dataColor===undefined){dst.dataColor={}}if(typeof dataColor===\"string\"){dst.dataColor.fill=dataColor;dst.dataColor.stroke=dataColor}else{if(dataColor.fill){dst.dataColor.fill=dataColor.fill}if(dataColor.stroke){dst.dataColor.stroke=dataColor.stroke}if(dataColor.strokeWidth!==undefined){dst.dataColor.strokeWidth=dataColor.strokeWidth}}}function setCameraPosition(cameraPosition,dst){var camPos=cameraPosition;if(camPos===undefined){return}if(dst.camera===undefined){dst.camera=new Camera}dst.camera.setArmRotation(camPos.horizontal,camPos.vertical);dst.camera.setArmLength(camPos.distance)}module.exports.STYLE=STYLE;module.exports.setDefaults=setDefaults;module.exports.setOptions=setOptions;module.exports.setCameraPosition=setCameraPosition},function(module,exports,__webpack_require__){\"use strict\";var _sign=__webpack_require__(165);var _sign2=_interopRequireDefault(_sign);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Point3d=__webpack_require__(34);function Camera(){this.armLocation=new Point3d;this.armRotation={};this.armRotation.horizontal=0;this.armRotation.vertical=0;this.armLength=1.7;this.cameraOffset=new Point3d;this.offsetMultiplier=.6;this.cameraLocation=new Point3d;this.cameraRotation=new Point3d(.5*Math.PI,0,0);this.calculateCameraOrientation()}Camera.prototype.setOffset=function(x,y){var abs=Math.abs,sign=_sign2[\"default\"],mul=this.offsetMultiplier,border=this.armLength*mul;if(abs(x)>border){x=sign(x)*border}if(abs(y)>border){y=sign(y)*border}this.cameraOffset.x=x;this.cameraOffset.y=y;this.calculateCameraOrientation()};Camera.prototype.getOffset=function(){return this.cameraOffset};Camera.prototype.setArmLocation=function(x,y,z){this.armLocation.x=x;this.armLocation.y=y;this.armLocation.z=z;this.calculateCameraOrientation()};Camera.prototype.setArmRotation=function(horizontal,vertical){if(horizontal!==undefined){this.armRotation.horizontal=horizontal}if(vertical!==undefined){this.armRotation.vertical=vertical;if(this.armRotation.vertical<0)this.armRotation.vertical=0;if(this.armRotation.vertical>.5*Math.PI)this.armRotation.vertical=.5*Math.PI}if(horizontal!==undefined||vertical!==undefined){this.calculateCameraOrientation()}};Camera.prototype.getArmRotation=function(){var rot={};rot.horizontal=this.armRotation.horizontal;rot.vertical=this.armRotation.vertical;return rot};Camera.prototype.setArmLength=function(length){if(length===undefined)return;this.armLength=length;if(this.armLength<.71)this.armLength=.71;if(this.armLength>5)this.armLength=5;this.setOffset(this.cameraOffset.x,this.cameraOffset.y);this.calculateCameraOrientation()};Camera.prototype.getArmLength=function(){return this.armLength};Camera.prototype.getCameraLocation=function(){return this.cameraLocation};Camera.prototype.getCameraRotation=function(){return this.cameraRotation};Camera.prototype.calculateCameraOrientation=function(){this.cameraLocation.x=this.armLocation.x-this.armLength*Math.sin(this.armRotation.horizontal)*Math.cos(this.armRotation.vertical);this.cameraLocation.y=this.armLocation.y-this.armLength*Math.cos(this.armRotation.horizontal)*Math.cos(this.armRotation.vertical);this.cameraLocation.z=this.armLocation.z+this.armLength*Math.sin(this.armRotation.vertical);this.cameraRotation.x=Math.PI/2-this.armRotation.vertical;this.cameraRotation.y=0;this.cameraRotation.z=-this.armRotation.horizontal;var xa=this.cameraRotation.x;var za=this.cameraRotation.z;var dx=this.cameraOffset.x;var dy=this.cameraOffset.y;var sin=Math.sin,cos=Math.cos;this.cameraLocation.x=this.cameraLocation.x+dx*cos(za)+dy*-sin(za)*cos(xa);this.cameraLocation.y=this.cameraLocation.y+dx*sin(za)+dy*cos(za)*cos(xa);this.cameraLocation.z=this.cameraLocation.z+dy*sin(xa)};module.exports=Camera},function(module,exports,__webpack_require__){\"use strict\";var DataView=__webpack_require__(12);function Filter(dataGroup,column,graph){this.dataGroup=dataGroup;this.column=column;this.graph=graph;this.index=undefined;this.value=undefined;this.values=dataGroup.getDistinctValues(this.column);if(this.values.length>0){this.selectValue(0)}this.dataPoints=[];this.loaded=false;this.onLoadCallback=undefined;if(graph.animationPreload){this.loaded=false;this.loadInBackground()}else{this.loaded=true}}Filter.prototype.isLoaded=function(){return this.loaded};Filter.prototype.getLoadedProgress=function(){var len=this.values.length;var i=0;while(this.dataPoints[i]){i++}return Math.round(i/len*100)};Filter.prototype.getLabel=function(){return this.graph.filterLabel};Filter.prototype.getColumn=function(){return this.column};Filter.prototype.getSelectedValue=function(){if(this.index===undefined)return undefined;return this.values[this.index]};Filter.prototype.getValues=function(){return this.values};Filter.prototype.getValue=function(index){if(index>=this.values.length)throw new Error(\"Index out of range\");return this.values[index]};Filter.prototype._getDataPoints=function(index){if(index===undefined)index=this.index;if(index===undefined)return[];var dataPoints;if(this.dataPoints[index]){dataPoints=this.dataPoints[index]}else{var f={};f.column=this.column;f.value=this.values[index];var dataView=new DataView(this.dataGroup.getDataSet(),{filter:function filter(item){return item[f.column]==f.value}}).get();dataPoints=this.dataGroup._getDataPoints(dataView);this.dataPoints[index]=dataPoints}return dataPoints};Filter.prototype.setOnLoadCallback=function(callback){this.onLoadCallback=callback};Filter.prototype.selectValue=function(index){if(index>=this.values.length)throw new Error(\"Index out of range\");this.index=index;this.value=this.values[index]};Filter.prototype.loadInBackground=function(index){if(index===undefined)index=0;var frame=this.graph.frame;if(index<this.values.length){if(frame.progress===undefined){frame.progress=document.createElement(\"DIV\");frame.progress.style.position=\"absolute\";frame.progress.style.color=\"gray\";frame.appendChild(frame.progress)}var progress=this.getLoadedProgress();frame.progress.innerHTML=\"Loading animation... \"+progress+\"%\";frame.progress.style.bottom=60+\"px\";frame.progress.style.left=10+\"px\";var me=this;setTimeout(function(){me.loadInBackground(index+1)},10);this.loaded=false}else{this.loaded=true;if(frame.progress!==undefined){frame.removeChild(frame.progress);frame.progress=undefined}if(this.onLoadCallback)this.onLoadCallback()}};module.exports=Filter},function(module,exports,__webpack_require__){\"use strict\";var keycharm=__webpack_require__(35);var Emitter=__webpack_require__(44);var Hammer=__webpack_require__(10);var util=__webpack_require__(2);function Activator(container){this.active=false;this.dom={container:container};this.dom.overlay=document.createElement(\"div\");this.dom.overlay.className=\"vis-overlay\";this.dom.container.appendChild(this.dom.overlay);this.hammer=Hammer(this.dom.overlay);this.hammer.on(\"tap\",this._onTapOverlay.bind(this));var me=this;var events=[\"tap\",\"doubletap\",\"press\",\"pinch\",\"pan\",\"panstart\",\"panmove\",\"panend\"];events.forEach(function(event){me.hammer.on(event,function(event){event.stopPropagation()})});if(document&&document.body){this.onClick=function(event){if(!_hasParent(event.target,container)){me.deactivate()}};document.body.addEventListener(\"click\",this.onClick)}if(this.keycharm!==undefined){this.keycharm.destroy()}this.keycharm=keycharm();this.escListener=this.deactivate.bind(this)}Emitter(Activator.prototype);Activator.current=null;Activator.prototype.destroy=function(){this.deactivate();this.dom.overlay.parentNode.removeChild(this.dom.overlay);if(this.onClick){document.body.removeEventListener(\"click\",this.onClick)}this.hammer.destroy();this.hammer=null};Activator.prototype.activate=function(){if(Activator.current){Activator.current.deactivate()}Activator.current=this;this.active=true;this.dom.overlay.style.display=\"none\";util.addClassName(this.dom.container,\"vis-active\");this.emit(\"change\");this.emit(\"activate\");this.keycharm.bind(\"esc\",this.escListener)};Activator.prototype.deactivate=function(){this.active=false;this.dom.overlay.style.display=\"\";util.removeClassName(this.dom.container,\"vis-active\");this.keycharm.unbind(\"esc\",this.escListener);this.emit(\"change\");this.emit(\"deactivate\")};Activator.prototype._onTapOverlay=function(event){this.activate();event.stopPropagation()};function _hasParent(element,parent){while(element){if(element===parent){return true}element=element.parentNode}return false}module.exports=Activator},function(module,exports,__webpack_require__){\"use strict\";exports[\"en\"]={current:\"current\",time:\"time\"};exports[\"en_EN\"]=exports[\"en\"];exports[\"en_US\"]=exports[\"en\"];exports[\"it\"]={current:\"attuale\",time:\"tempo\"};exports[\"it_IT\"]=exports[\"it\"];exports[\"it_CH\"]=exports[\"it\"];exports[\"nl\"]={current:\"huidige\",time:\"tijd\"};exports[\"nl_NL\"]=exports[\"nl\"];exports[\"nl_BE\"]=exports[\"nl\"];exports[\"de\"]={current:\"Aktuelle\",time:\"Zeit\"};exports[\"de_DE\"]=exports[\"de\"];exports[\"fr\"]={current:\"actuel\",time:\"heure\"};exports[\"fr_FR\"]=exports[\"fr\"];exports[\"fr_CA\"]=exports[\"fr\"];exports[\"fr_BE\"]=exports[\"fr\"];exports[\"es\"]={current:\"corriente\",time:\"hora\"};exports[\"es_ES\"]=exports[\"es\"]},function(module,exports,__webpack_require__){\"use strict\";var _create=__webpack_require__(29);var _create2=_interopRequireDefault(_create);var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Hammer=__webpack_require__(10);var util=__webpack_require__(2);var DataSet=__webpack_require__(11);var DataView=__webpack_require__(12);var TimeStep=__webpack_require__(66);var Component=__webpack_require__(16);var Group=__webpack_require__(68);var BackgroundGroup=__webpack_require__(69);var BoxItem=__webpack_require__(101);var PointItem=__webpack_require__(102);var RangeItem=__webpack_require__(70);var BackgroundItem=__webpack_require__(103);var Popup=__webpack_require__(104)[\"default\"];var UNGROUPED=\"__ungrouped__\";var BACKGROUND=\"__background__\";function ItemSet(body,options){this.body=body;this.defaultOptions={type:null,orientation:{item:\"bottom\"},align:\"auto\",stack:true,stackSubgroups:true,groupOrderSwap:function groupOrderSwap(fromGroup,toGroup,groups){var targetOrder=toGroup.order;toGroup.order=fromGroup.order;fromGroup.order=targetOrder},groupOrder:\"order\",selectable:true,multiselect:false,itemsAlwaysDraggable:{item:false,range:false},editable:{updateTime:false,updateGroup:false,add:false,remove:false,overrideItems:false},groupEditable:{order:false,add:false,remove:false},snap:TimeStep.snap,onDropObjectOnItem:function onDropObjectOnItem(objectData,item,callback){callback(item)},onAdd:function onAdd(item,callback){callback(item)},onUpdate:function onUpdate(item,callback){callback(item)},onMove:function onMove(item,callback){callback(item)},onRemove:function onRemove(item,callback){callback(item)},onMoving:function onMoving(item,callback){callback(item)},onAddGroup:function onAddGroup(item,callback){callback(item)},onMoveGroup:function onMoveGroup(item,callback){callback(item)},onRemoveGroup:function onRemoveGroup(item,callback){callback(item)},margin:{item:{horizontal:10,vertical:10},axis:20},showTooltips:true,tooltip:{followMouse:false,overflowMethod:\"flip\"},tooltipOnItemUpdateTime:false};this.options=util.extend({},this.defaultOptions);this.options.rtl=options.rtl;this.itemOptions={type:{start:\"Date\",end:\"Date\"}};this.conversion={toScreen:body.util.toScreen,toTime:body.util.toTime};this.dom={};this.props={};this.hammer=null;var me=this;this.itemsData=null;this.groupsData=null;this.itemListeners={add:function add(event,params,senderId){me._onAdd(params.items)},update:function update(event,params,senderId){me._onUpdate(params.items)},remove:function remove(event,params,senderId){me._onRemove(params.items)}};this.groupListeners={add:function add(event,params,senderId){me._onAddGroups(params.items);if(me.groupsData&&me.groupsData.length>0){var groupsData=me.groupsData.getDataSet();groupsData.get().forEach(function(groupData){if(groupData.nestedGroups){if(groupData.showNested!=false){groupData.showNested=true}var updatedGroups=[];groupData.nestedGroups.forEach(function(nestedGroupId){var updatedNestedGroup=groupsData.get(nestedGroupId);if(!updatedNestedGroup){return}updatedNestedGroup.nestedInGroup=groupData.id;if(groupData.showNested==false){updatedNestedGroup.visible=false}updatedGroups=updatedGroups.concat(updatedNestedGroup)});groupsData.update(updatedGroups,senderId)}})}},update:function update(event,params,senderId){me._onUpdateGroups(params.items)},remove:function remove(event,params,senderId){me._onRemoveGroups(params.items)}};this.items={};this.groups={};this.groupIds=[];this.selection=[];this.popup=null;this.touchParams={};this.groupTouchParams={};this._create();this.setOptions(options)}ItemSet.prototype=new Component;ItemSet.types={background:BackgroundItem,box:BoxItem,range:RangeItem,point:PointItem};ItemSet.prototype._create=function(){var frame=document.createElement(\"div\");frame.className=\"vis-itemset\";frame[\"timeline-itemset\"]=this;this.dom.frame=frame;var background=document.createElement(\"div\");background.className=\"vis-background\";frame.appendChild(background);this.dom.background=background;var foreground=document.createElement(\"div\");foreground.className=\"vis-foreground\";frame.appendChild(foreground);this.dom.foreground=foreground;var axis=document.createElement(\"div\");axis.className=\"vis-axis\";this.dom.axis=axis;var labelSet=document.createElement(\"div\");labelSet.className=\"vis-labelset\";this.dom.labelSet=labelSet;this._updateUngrouped();var backgroundGroup=new BackgroundGroup(BACKGROUND,null,this);backgroundGroup.show();this.groups[BACKGROUND]=backgroundGroup;this.hammer=new Hammer(this.body.dom.centerContainer);this.hammer.on(\"hammer.input\",function(event){if(event.isFirst){this._onTouch(event)}}.bind(this));this.hammer.on(\"panstart\",this._onDragStart.bind(this));this.hammer.on(\"panmove\",this._onDrag.bind(this));this.hammer.on(\"panend\",this._onDragEnd.bind(this));this.hammer.get(\"pan\").set({threshold:5,direction:Hammer.DIRECTION_HORIZONTAL});this.hammer.on(\"tap\",this._onSelectItem.bind(this));this.hammer.on(\"press\",this._onMultiSelectItem.bind(this));this.hammer.on(\"doubletap\",this._onAddItem.bind(this));if(this.options.rtl){\nthis.groupHammer=new Hammer(this.body.dom.rightContainer)}else{this.groupHammer=new Hammer(this.body.dom.leftContainer)}this.groupHammer.on(\"tap\",this._onGroupClick.bind(this));this.groupHammer.on(\"panstart\",this._onGroupDragStart.bind(this));this.groupHammer.on(\"panmove\",this._onGroupDrag.bind(this));this.groupHammer.on(\"panend\",this._onGroupDragEnd.bind(this));this.groupHammer.get(\"pan\").set({threshold:5,direction:Hammer.DIRECTION_VERTICAL});this.body.dom.centerContainer.addEventListener(\"mouseover\",this._onMouseOver.bind(this));this.body.dom.centerContainer.addEventListener(\"mouseout\",this._onMouseOut.bind(this));this.body.dom.centerContainer.addEventListener(\"mousemove\",this._onMouseMove.bind(this));this.body.dom.centerContainer.addEventListener(\"contextmenu\",this._onDragEnd.bind(this));this.body.dom.centerContainer.addEventListener(\"mousewheel\",this._onMouseWheel.bind(this));this.show()};ItemSet.prototype.setOptions=function(options){if(options){var fields=[\"type\",\"rtl\",\"align\",\"order\",\"stack\",\"stackSubgroups\",\"selectable\",\"multiselect\",\"multiselectPerGroup\",\"groupOrder\",\"dataAttributes\",\"template\",\"groupTemplate\",\"visibleFrameTemplate\",\"hide\",\"snap\",\"groupOrderSwap\",\"showTooltips\",\"tooltip\",\"tooltipOnItemUpdateTime\"];util.selectiveExtend(fields,this.options,options);if(\"itemsAlwaysDraggable\"in options){if(typeof options.itemsAlwaysDraggable===\"boolean\"){this.options.itemsAlwaysDraggable.item=options.itemsAlwaysDraggable;this.options.itemsAlwaysDraggable.range=false}else if((0,_typeof3[\"default\"])(options.itemsAlwaysDraggable)===\"object\"){util.selectiveExtend([\"item\",\"range\"],this.options.itemsAlwaysDraggable,options.itemsAlwaysDraggable);if(!this.options.itemsAlwaysDraggable.item){this.options.itemsAlwaysDraggable.range=false}}}if(\"orientation\"in options){if(typeof options.orientation===\"string\"){this.options.orientation.item=options.orientation===\"top\"?\"top\":\"bottom\"}else if((0,_typeof3[\"default\"])(options.orientation)===\"object\"&&\"item\"in options.orientation){this.options.orientation.item=options.orientation.item}}if(\"margin\"in options){if(typeof options.margin===\"number\"){this.options.margin.axis=options.margin;this.options.margin.item.horizontal=options.margin;this.options.margin.item.vertical=options.margin}else if((0,_typeof3[\"default\"])(options.margin)===\"object\"){util.selectiveExtend([\"axis\"],this.options.margin,options.margin);if(\"item\"in options.margin){if(typeof options.margin.item===\"number\"){this.options.margin.item.horizontal=options.margin.item;this.options.margin.item.vertical=options.margin.item}else if((0,_typeof3[\"default\"])(options.margin.item)===\"object\"){util.selectiveExtend([\"horizontal\",\"vertical\"],this.options.margin.item,options.margin.item)}}}}if(\"editable\"in options){if(typeof options.editable===\"boolean\"){this.options.editable.updateTime=options.editable;this.options.editable.updateGroup=options.editable;this.options.editable.add=options.editable;this.options.editable.remove=options.editable;this.options.editable.overrideItems=false}else if((0,_typeof3[\"default\"])(options.editable)===\"object\"){util.selectiveExtend([\"updateTime\",\"updateGroup\",\"add\",\"remove\",\"overrideItems\"],this.options.editable,options.editable)}}if(\"groupEditable\"in options){if(typeof options.groupEditable===\"boolean\"){this.options.groupEditable.order=options.groupEditable;this.options.groupEditable.add=options.groupEditable;this.options.groupEditable.remove=options.groupEditable}else if((0,_typeof3[\"default\"])(options.groupEditable)===\"object\"){util.selectiveExtend([\"order\",\"add\",\"remove\"],this.options.groupEditable,options.groupEditable)}}var addCallback=function(name){var fn=options[name];if(fn){if(!(fn instanceof Function)){throw new Error(\"option \"+name+\" must be a function \"+name+\"(item, callback)\")}this.options[name]=fn}}.bind(this);[\"onDropObjectOnItem\",\"onAdd\",\"onUpdate\",\"onRemove\",\"onMove\",\"onMoving\",\"onAddGroup\",\"onMoveGroup\",\"onRemoveGroup\"].forEach(addCallback);this.markDirty()}};ItemSet.prototype.markDirty=function(options){this.groupIds=[];if(options&&options.refreshItems){util.forEach(this.items,function(item){item.dirty=true;if(item.displayed)item.redraw()})}};ItemSet.prototype.destroy=function(){this.hide();this.setItems(null);this.setGroups(null);this.hammer=null;this.body=null;this.conversion=null};ItemSet.prototype.hide=function(){if(this.dom.frame.parentNode){this.dom.frame.parentNode.removeChild(this.dom.frame)}if(this.dom.axis.parentNode){this.dom.axis.parentNode.removeChild(this.dom.axis)}if(this.dom.labelSet.parentNode){this.dom.labelSet.parentNode.removeChild(this.dom.labelSet)}};ItemSet.prototype.show=function(){if(!this.dom.frame.parentNode){this.body.dom.center.appendChild(this.dom.frame)}if(!this.dom.axis.parentNode){this.body.dom.backgroundVertical.appendChild(this.dom.axis)}if(!this.dom.labelSet.parentNode){if(this.options.rtl){this.body.dom.right.appendChild(this.dom.labelSet)}else{this.body.dom.left.appendChild(this.dom.labelSet)}}};ItemSet.prototype.setSelection=function(ids){var i,ii,id,item;if(ids==undefined)ids=[];if(!Array.isArray(ids))ids=[ids];for(i=0,ii=this.selection.length;i<ii;i++){id=this.selection[i];item=this.items[id];if(item)item.unselect()}this.selection=[];for(i=0,ii=ids.length;i<ii;i++){id=ids[i];item=this.items[id];if(item){this.selection.push(id);item.select()}}};ItemSet.prototype.getSelection=function(){return this.selection.concat([])};ItemSet.prototype.getVisibleItems=function(){var range=this.body.range.getRange();var right,left;if(this.options.rtl){right=this.body.util.toScreen(range.start);left=this.body.util.toScreen(range.end)}else{left=this.body.util.toScreen(range.start);right=this.body.util.toScreen(range.end)}var ids=[];for(var groupId in this.groups){if(this.groups.hasOwnProperty(groupId)){var group=this.groups[groupId];var rawVisibleItems=group.isVisible?group.visibleItems:[];for(var i=0;i<rawVisibleItems.length;i++){var item=rawVisibleItems[i];if(this.options.rtl){if(item.right<left&&item.right+item.width>right){ids.push(item.id)}}else{if(item.left<right&&item.left+item.width>left){ids.push(item.id)}}}}}return ids};ItemSet.prototype._deselect=function(id){var selection=this.selection;for(var i=0,ii=selection.length;i<ii;i++){if(selection[i]==id){selection.splice(i,1);break}}};ItemSet.prototype.redraw=function(){var margin=this.options.margin,range=this.body.range,asSize=util.option.asSize,options=this.options,orientation=options.orientation.item,resized=false,frame=this.dom.frame;this.props.top=this.body.domProps.top.height+this.body.domProps.border.top;if(this.options.rtl){this.props.right=this.body.domProps.right.width+this.body.domProps.border.right}else{this.props.left=this.body.domProps.left.width+this.body.domProps.border.left}frame.className=\"vis-itemset\";resized=this._orderGroups()||resized;var visibleInterval=range.end-range.start;var zoomed=visibleInterval!=this.lastVisibleInterval||this.props.width!=this.props.lastWidth;var scrolled=range.start!=this.lastRangeStart;var changedStackOption=options.stack!=this.lastStack;var changedStackSubgroupsOption=options.stackSubgroups!=this.lastStackSubgroups;var forceRestack=zoomed||scrolled||changedStackOption||changedStackSubgroupsOption;this.lastVisibleInterval=visibleInterval;this.lastRangeStart=range.start;this.lastStack=options.stack;this.lastStackSubgroups=options.stackSubgroups;this.props.lastWidth=this.props.width;var firstGroup=this._firstGroup();var firstMargin={item:margin.item,axis:margin.axis};var nonFirstMargin={item:margin.item,axis:margin.item.vertical/2};var height=0;var minHeight=margin.axis+margin.item.vertical;this.groups[BACKGROUND].redraw(range,nonFirstMargin,forceRestack);var redrawQueue={};var redrawQueueLength=0;util.forEach(this.groups,function(group,key){if(key===BACKGROUND)return;var groupMargin=group==firstGroup?firstMargin:nonFirstMargin;var returnQueue=true;redrawQueue[key]=group.redraw(range,groupMargin,forceRestack,returnQueue);redrawQueueLength=redrawQueue[key].length});var needRedraw=redrawQueueLength>0;if(needRedraw){var redrawResults={};for(var i=0;i<redrawQueueLength;i++){util.forEach(redrawQueue,function(fns,key){redrawResults[key]=fns[i]()})}util.forEach(this.groups,function(group,key){if(key===BACKGROUND)return;var groupResized=redrawResults[key];resized=groupResized||resized;height+=group.height});height=Math.max(height,minHeight)}height=Math.max(height,minHeight);frame.style.height=asSize(height);this.props.width=frame.offsetWidth;this.props.height=height;this.dom.axis.style.top=asSize(orientation==\"top\"?this.body.domProps.top.height+this.body.domProps.border.top:this.body.domProps.top.height+this.body.domProps.centerContainer.height);if(this.options.rtl){this.dom.axis.style.right=\"0\"}else{this.dom.axis.style.left=\"0\"}this.initialItemSetDrawn=true;resized=this._isResized()||resized;return resized};ItemSet.prototype._firstGroup=function(){var firstGroupIndex=this.options.orientation.item==\"top\"?0:this.groupIds.length-1;var firstGroupId=this.groupIds[firstGroupIndex];var firstGroup=this.groups[firstGroupId]||this.groups[UNGROUPED];return firstGroup||null};ItemSet.prototype._updateUngrouped=function(){var ungrouped=this.groups[UNGROUPED];var item,itemId;if(this.groupsData){if(ungrouped){ungrouped.hide();delete this.groups[UNGROUPED];for(itemId in this.items){if(this.items.hasOwnProperty(itemId)){item=this.items[itemId];item.parent&&item.parent.remove(item);var groupId=this._getGroupId(item.data);var group=this.groups[groupId];group&&group.add(item)||item.hide()}}}}else{if(!ungrouped){var id=null;var data=null;ungrouped=new Group(id,data,this);this.groups[UNGROUPED]=ungrouped;for(itemId in this.items){if(this.items.hasOwnProperty(itemId)){item=this.items[itemId];ungrouped.add(item)}}ungrouped.show()}}};ItemSet.prototype.getLabelSet=function(){return this.dom.labelSet};ItemSet.prototype.setItems=function(items){var me=this,ids,oldItemsData=this.itemsData;if(!items){this.itemsData=null}else if(items instanceof DataSet||items instanceof DataView){this.itemsData=items}else{throw new TypeError(\"Data must be an instance of DataSet or DataView\")}if(oldItemsData){util.forEach(this.itemListeners,function(callback,event){oldItemsData.off(event,callback)});ids=oldItemsData.getIds();this._onRemove(ids)}if(this.itemsData){var id=this.id;util.forEach(this.itemListeners,function(callback,event){me.itemsData.on(event,callback,id)});ids=this.itemsData.getIds();this._onAdd(ids);this._updateUngrouped()}this.body.emitter.emit(\"_change\",{queue:true})};ItemSet.prototype.getItems=function(){return this.itemsData};ItemSet.prototype.setGroups=function(groups){var me=this,ids;if(this.groupsData){util.forEach(this.groupListeners,function(callback,event){me.groupsData.off(event,callback)});ids=this.groupsData.getIds();this.groupsData=null;this._onRemoveGroups(ids)}if(!groups){this.groupsData=null}else if(groups instanceof DataSet||groups instanceof DataView){this.groupsData=groups}else{throw new TypeError(\"Data must be an instance of DataSet or DataView\")}if(this.groupsData){var groupsData=this.groupsData;if(this.groupsData instanceof DataView){groupsData=this.groupsData.getDataSet()}groupsData.get().forEach(function(group){if(group.nestedGroups){group.nestedGroups.forEach(function(nestedGroupId){var updatedNestedGroup=groupsData.get(nestedGroupId);updatedNestedGroup.nestedInGroup=group.id;if(group.showNested==false){updatedNestedGroup.visible=false}groupsData.update(updatedNestedGroup)})}});var id=this.id;util.forEach(this.groupListeners,function(callback,event){me.groupsData.on(event,callback,id)});ids=this.groupsData.getIds();this._onAddGroups(ids)}this._updateUngrouped();this._order();this.body.emitter.emit(\"_change\",{queue:true})};ItemSet.prototype.getGroups=function(){return this.groupsData};ItemSet.prototype.removeItem=function(id){var item=this.itemsData.get(id),dataset=this.itemsData.getDataSet();if(item){this.options.onRemove(item,function(item){if(item){dataset.remove(id)}})}};ItemSet.prototype._getType=function(itemData){return itemData.type||this.options.type||(itemData.end?\"range\":\"box\")};ItemSet.prototype._getGroupId=function(itemData){var type=this._getType(itemData);if(type==\"background\"&&itemData.group==undefined){return BACKGROUND}else{return this.groupsData?itemData.group:UNGROUPED}};ItemSet.prototype._onUpdate=function(ids){var me=this;ids.forEach(function(id){var itemData=me.itemsData.get(id,me.itemOptions);var item=me.items[id];var type=itemData?me._getType(itemData):null;var constructor=ItemSet.types[type];var selected;if(item){if(!constructor||!(item instanceof constructor)){selected=item.selected;me._removeItem(item);item=null}else{me._updateItem(item,itemData)}}if(!item&&itemData){if(constructor){item=new constructor(itemData,me.conversion,me.options);item.id=id;me._addItem(item);if(selected){this.selection.push(id);item.select()}}else if(type==\"rangeoverflow\"){throw new TypeError('Item type \"rangeoverflow\" is deprecated. Use css styling instead: '+\".vis-item.vis-range .vis-item-content {overflow: visible;}\")}else{throw new TypeError('Unknown item type \"'+type+'\"')}}}.bind(this));this._order();this.body.emitter.emit(\"_change\",{queue:true})};ItemSet.prototype._onAdd=ItemSet.prototype._onUpdate;ItemSet.prototype._onRemove=function(ids){var count=0;var me=this;ids.forEach(function(id){var item=me.items[id];if(item){count++;me._removeItem(item)}});if(count){this._order();this.body.emitter.emit(\"_change\",{queue:true})}};ItemSet.prototype._order=function(){util.forEach(this.groups,function(group){group.order()})};ItemSet.prototype._onUpdateGroups=function(ids){this._onAddGroups(ids)};ItemSet.prototype._onAddGroups=function(ids){var me=this;ids.forEach(function(id){var groupData=me.groupsData.get(id);var group=me.groups[id];if(!group){if(id==UNGROUPED||id==BACKGROUND){throw new Error(\"Illegal group id. \"+id+\" is a reserved id.\")}var groupOptions=(0,_create2[\"default\"])(me.options);util.extend(groupOptions,{height:null});group=new Group(id,groupData,me);me.groups[id]=group;for(var itemId in me.items){if(me.items.hasOwnProperty(itemId)){var item=me.items[itemId];if(item.data.group==id){group.add(item)}}}group.order();group.show()}else{group.setData(groupData)}});this.body.emitter.emit(\"_change\",{queue:true})};ItemSet.prototype._onRemoveGroups=function(ids){var groups=this.groups;ids.forEach(function(id){var group=groups[id];if(group){group.hide();delete groups[id]}});this.markDirty();this.body.emitter.emit(\"_change\",{queue:true})};ItemSet.prototype._orderGroups=function(){if(this.groupsData){var groupIds=this.groupsData.getIds({order:this.options.groupOrder});groupIds=this._orderNestedGroups(groupIds);var changed=!util.equalArray(groupIds,this.groupIds);if(changed){var groups=this.groups;groupIds.forEach(function(groupId){groups[groupId].hide()});groupIds.forEach(function(groupId){groups[groupId].show()});this.groupIds=groupIds}return changed}else{return false}};ItemSet.prototype._orderNestedGroups=function(groupIds){var newGroupIdsOrder=[];groupIds.forEach(function(groupId){var groupData=this.groupsData.get(groupId);if(!groupData.nestedInGroup){newGroupIdsOrder.push(groupId)}if(groupData.nestedGroups){var nestedGroups=this.groupsData.get({filter:function filter(nestedGroup){return nestedGroup.nestedInGroup==groupId},order:this.options.groupOrder});var nestedGroupIds=nestedGroups.map(function(nestedGroup){return nestedGroup.id});newGroupIdsOrder=newGroupIdsOrder.concat(nestedGroupIds)}},this);return newGroupIdsOrder};ItemSet.prototype._addItem=function(item){this.items[item.id]=item;var groupId=this._getGroupId(item.data);var group=this.groups[groupId];if(!group){item.groupShowing=false}else if(group&&group.data&&group.data.showNested){item.groupShowing=true}if(group)group.add(item)};ItemSet.prototype._updateItem=function(item,itemData){item.setData(itemData);var groupId=this._getGroupId(item.data);var group=this.groups[groupId];if(!group){item.groupShowing=false}else if(group&&group.data&&group.data.showNested){item.groupShowing=true}};ItemSet.prototype._removeItem=function(item){item.hide();delete this.items[item.id];var index=this.selection.indexOf(item.id);if(index!=-1)this.selection.splice(index,1);item.parent&&item.parent.remove(item)};ItemSet.prototype._constructByEndArray=function(array){var endArray=[];for(var i=0;i<array.length;i++){if(array[i]instanceof RangeItem){endArray.push(array[i])}}return endArray};ItemSet.prototype._onTouch=function(event){this.touchParams.item=this.itemFromTarget(event);this.touchParams.dragLeftItem=event.target.dragLeftItem||false;this.touchParams.dragRightItem=event.target.dragRightItem||false;this.touchParams.itemProps=null};ItemSet.prototype._getGroupIndex=function(groupId){for(var i=0;i<this.groupIds.length;i++){if(groupId==this.groupIds[i])return i}};ItemSet.prototype._onDragStart=function(event){if(this.touchParams.itemIsDragging){return}var item=this.touchParams.item||null;var me=this;var props;if(item&&(item.selected||this.options.itemsAlwaysDraggable.item)){if(this.options.editable.overrideItems&&!this.options.editable.updateTime&&!this.options.editable.updateGroup){return}if(item.editable!=null&&!item.editable.updateTime&&!item.editable.updateGroup&&!this.options.editable.overrideItems){return}var dragLeftItem=this.touchParams.dragLeftItem;var dragRightItem=this.touchParams.dragRightItem;this.touchParams.itemIsDragging=true;this.touchParams.selectedItem=item;if(dragLeftItem){props={item:dragLeftItem,initialX:event.center.x,dragLeft:true,data:this._cloneItemData(item.data)};this.touchParams.itemProps=[props]}else if(dragRightItem){props={item:dragRightItem,initialX:event.center.x,dragRight:true,data:this._cloneItemData(item.data)};this.touchParams.itemProps=[props]}else if(this.options.editable.add&&(event.srcEvent.ctrlKey||event.srcEvent.metaKey)){this._onDragStartAddItem(event)}else{if(this.groupIds.length<1){this.redraw()}var baseGroupIndex=this._getGroupIndex(item.data.group);var itemsToDrag=this.options.itemsAlwaysDraggable.item&&!item.selected?[item.id]:this.getSelection();this.touchParams.itemProps=itemsToDrag.map(function(id){var item=me.items[id];var groupIndex=me._getGroupIndex(item.data.group);return{item:item,initialX:event.center.x,groupOffset:baseGroupIndex-groupIndex,data:this._cloneItemData(item.data)}}.bind(this))}event.stopPropagation()}else if(this.options.editable.add&&(event.srcEvent.ctrlKey||event.srcEvent.metaKey)){this._onDragStartAddItem(event)}};ItemSet.prototype._onDragStartAddItem=function(event){var xAbs;var x;var snap=this.options.snap||null;if(this.options.rtl){xAbs=util.getAbsoluteRight(this.dom.frame);x=xAbs-event.center.x+10}else{xAbs=util.getAbsoluteLeft(this.dom.frame);x=event.center.x-xAbs-10}var time=this.body.util.toTime(x);var scale=this.body.util.getScale();var step=this.body.util.getStep();var start=snap?snap(time,scale,step):time;var end=start;var itemData={type:\"range\",start:start,end:end,content:\"new item\"};var id=util.randomUUID();itemData[this.itemsData._fieldId]=id;var group=this.groupFromTarget(event);if(group){itemData.group=group.groupId}var newItem=new RangeItem(itemData,this.conversion,this.options);newItem.id=id;newItem.data=this._cloneItemData(itemData);this._addItem(newItem);this.touchParams.selectedItem=newItem;var props={item:newItem,initialX:event.center.x,data:newItem.data};if(this.options.rtl){props.dragLeft=true}else{props.dragRight=true}this.touchParams.itemProps=[props];event.stopPropagation()};ItemSet.prototype._onDrag=function(event){if(this.touchParams.itemProps){event.stopPropagation();var me=this;var snap=this.options.snap||null;var xOffset;if(this.options.rtl){xOffset=this.body.dom.root.offsetLeft+this.body.domProps.right.width}else{xOffset=this.body.dom.root.offsetLeft+this.body.domProps.left.width}var scale=this.body.util.getScale();var step=this.body.util.getStep();var selectedItem=this.touchParams.selectedItem;var updateGroupAllowed=(this.options.editable.overrideItems||selectedItem.editable==null)&&this.options.editable.updateGroup||!this.options.editable.overrideItems&&selectedItem.editable!=null&&selectedItem.editable.updateGroup;var newGroupBase=null;if(updateGroupAllowed&&selectedItem){if(selectedItem.data.group!=undefined){var group=me.groupFromTarget(event);if(group){newGroupBase=this._getGroupIndex(group.groupId)}}}this.touchParams.itemProps.forEach(function(props){var current=me.body.util.toTime(event.center.x-xOffset);var initial=me.body.util.toTime(props.initialX-xOffset);var offset;var initialStart;var initialEnd;var start;var end;if(this.options.rtl){offset=-(current-initial)}else{offset=current-initial}var itemData=this._cloneItemData(props.item.data);if(props.item.editable!=null&&!props.item.editable.updateTime&&!props.item.editable.updateGroup&&!me.options.editable.overrideItems){return}var updateTimeAllowed=(this.options.editable.overrideItems||selectedItem.editable==null)&&this.options.editable.updateTime||!this.options.editable.overrideItems&&selectedItem.editable!=null&&selectedItem.editable.updateTime;if(updateTimeAllowed){if(props.dragLeft){if(this.options.rtl){if(itemData.end!=undefined){initialEnd=util.convert(props.data.end,\"Date\");end=new Date(initialEnd.valueOf()+offset);itemData.end=snap?snap(end,scale,step):end}}else{if(itemData.start!=undefined){initialStart=util.convert(props.data.start,\"Date\");start=new Date(initialStart.valueOf()+offset);itemData.start=snap?snap(start,scale,step):start}}}else if(props.dragRight){if(this.options.rtl){if(itemData.start!=undefined){initialStart=util.convert(props.data.start,\"Date\");start=new Date(initialStart.valueOf()+offset);itemData.start=snap?snap(start,scale,step):start}}else{if(itemData.end!=undefined){initialEnd=util.convert(props.data.end,\"Date\");end=new Date(initialEnd.valueOf()+offset);itemData.end=snap?snap(end,scale,step):end}}}else{if(itemData.start!=undefined){initialStart=util.convert(props.data.start,\"Date\").valueOf();start=new Date(initialStart+offset);if(itemData.end!=undefined){initialEnd=util.convert(props.data.end,\"Date\");var duration=initialEnd.valueOf()-initialStart.valueOf();itemData.start=snap?snap(start,scale,step):start;itemData.end=new Date(itemData.start.valueOf()+duration)}else{itemData.start=snap?snap(start,scale,step):start}}}}if(updateGroupAllowed&&!props.dragLeft&&!props.dragRight&&newGroupBase!=null){if(itemData.group!=undefined){var newOffset=newGroupBase-props.groupOffset;newOffset=Math.max(0,newOffset);newOffset=Math.min(me.groupIds.length-1,newOffset);itemData.group=me.groupIds[newOffset]}}itemData=this._cloneItemData(itemData);me.options.onMoving(itemData,function(itemData){if(itemData){props.item.setData(this._cloneItemData(itemData,\"Date\"))}}.bind(this))}.bind(this));this.body.emitter.emit(\"_change\")}};ItemSet.prototype._moveToGroup=function(item,groupId){var group=this.groups[groupId];if(group&&group.groupId!=item.data.group){var oldGroup=item.parent;oldGroup.remove(item);oldGroup.order();item.data.group=group.groupId;group.add(item);group.order()}};ItemSet.prototype._onDragEnd=function(event){this.touchParams.itemIsDragging=false;if(this.touchParams.itemProps){event.stopPropagation();var me=this;var dataset=this.itemsData.getDataSet();var itemProps=this.touchParams.itemProps;this.touchParams.itemProps=null;itemProps.forEach(function(props){var id=props.item.id;var exists=me.itemsData.get(id,me.itemOptions)!=null;if(!exists){me.options.onAdd(props.item.data,function(itemData){me._removeItem(props.item);if(itemData){me.itemsData.getDataSet().add(itemData)}me.body.emitter.emit(\"_change\")})}else{var itemData=this._cloneItemData(props.item.data);me.options.onMove(itemData,function(itemData){if(itemData){itemData[dataset._fieldId]=id;dataset.update(itemData)}else{props.item.setData(props.data);me.body.emitter.emit(\"_change\")}})}}.bind(this))}};ItemSet.prototype._onGroupClick=function(event){var group=this.groupFromTarget(event);if(!group||!group.nestedGroups)return;var groupsData=this.groupsData.getDataSet();var nestingGroup=groupsData.get(group.groupId);if(nestingGroup.showNested==undefined){nestingGroup.showNested=true}nestingGroup.showNested=!nestingGroup.showNested;var nestedGroups=groupsData.get(group.nestedGroups).map(function(nestedGroup){nestedGroup.visible=nestingGroup.showNested;return nestedGroup});groupsData.update(nestedGroups.concat(nestingGroup));if(nestingGroup.showNested){util.removeClassName(group.dom.label,\"collapsed\");util.addClassName(group.dom.label,\"expanded\")}else{util.removeClassName(group.dom.label,\"expanded\");var collapsedDirClassName=this.options.rtl?\"collapsed-rtl\":\"collapsed\";util.addClassName(group.dom.label,collapsedDirClassName)}};ItemSet.prototype._onGroupDragStart=function(event){if(this.options.groupEditable.order){this.groupTouchParams.group=this.groupFromTarget(event);if(this.groupTouchParams.group){event.stopPropagation();this.groupTouchParams.originalOrder=this.groupsData.getIds({order:this.options.groupOrder})}}};ItemSet.prototype._onGroupDrag=function(event){if(this.options.groupEditable.order&&this.groupTouchParams.group){event.stopPropagation();var groupsData=this.groupsData;if(this.groupsData instanceof DataView){groupsData=this.groupsData.getDataSet()}var group=this.groupFromTarget(event);if(group&&group.height!=this.groupTouchParams.group.height){var movingUp=group.top<this.groupTouchParams.group.top;var clientY=event.center?event.center.y:event.clientY;var targetGroupTop=util.getAbsoluteTop(group.dom.foreground);var draggedGroupHeight=this.groupTouchParams.group.height;if(movingUp){if(targetGroupTop+draggedGroupHeight<clientY){return}}else{var targetGroupHeight=group.height;if(targetGroupTop+targetGroupHeight-draggedGroupHeight>clientY){return}}}if(group&&group!=this.groupTouchParams.group){var targetGroup=groupsData.get(group.groupId);var draggedGroup=groupsData.get(this.groupTouchParams.group.groupId);if(draggedGroup&&targetGroup){this.options.groupOrderSwap(draggedGroup,targetGroup,groupsData);groupsData.update(draggedGroup);groupsData.update(targetGroup)}var newOrder=groupsData.getIds({order:this.options.groupOrder});if(!util.equalArray(newOrder,this.groupTouchParams.originalOrder)){var origOrder=this.groupTouchParams.originalOrder;var draggedId=this.groupTouchParams.group.groupId;var numGroups=Math.min(origOrder.length,newOrder.length);var curPos=0;var newOffset=0;var orgOffset=0;while(curPos<numGroups){while(curPos+newOffset<numGroups&&curPos+orgOffset<numGroups&&newOrder[curPos+newOffset]==origOrder[curPos+orgOffset]){curPos++}if(curPos+newOffset>=numGroups){break}if(newOrder[curPos+newOffset]==draggedId){newOffset=1}else if(origOrder[curPos+orgOffset]==draggedId){orgOffset=1}else{var slippedPosition=newOrder.indexOf(origOrder[curPos+orgOffset]);var switchGroup=groupsData.get(newOrder[curPos+newOffset]);var shouldBeGroup=groupsData.get(origOrder[curPos+orgOffset]);this.options.groupOrderSwap(switchGroup,shouldBeGroup,groupsData);groupsData.update(switchGroup);groupsData.update(shouldBeGroup);var switchGroupId=newOrder[curPos+newOffset];newOrder[curPos+newOffset]=origOrder[curPos+orgOffset];newOrder[slippedPosition]=switchGroupId;curPos++}}}}}};ItemSet.prototype._onGroupDragEnd=function(event){if(this.options.groupEditable.order&&this.groupTouchParams.group){event.stopPropagation();var me=this;var id=me.groupTouchParams.group.groupId;var dataset=me.groupsData.getDataSet();var groupData=util.extend({},dataset.get(id));me.options.onMoveGroup(groupData,function(groupData){if(groupData){groupData[dataset._fieldId]=id;dataset.update(groupData)}else{var newOrder=dataset.getIds({order:me.options.groupOrder});if(!util.equalArray(newOrder,me.groupTouchParams.originalOrder)){var origOrder=me.groupTouchParams.originalOrder;var numGroups=Math.min(origOrder.length,newOrder.length);var curPos=0;while(curPos<numGroups){while(curPos<numGroups&&newOrder[curPos]==origOrder[curPos]){curPos++}if(curPos>=numGroups){break}var slippedPosition=newOrder.indexOf(origOrder[curPos]);var switchGroup=dataset.get(newOrder[curPos]);var shouldBeGroup=dataset.get(origOrder[curPos]);me.options.groupOrderSwap(switchGroup,shouldBeGroup,dataset);dataset.update(switchGroup);dataset.update(shouldBeGroup);var switchGroupId=newOrder[curPos];newOrder[curPos]=origOrder[curPos];newOrder[slippedPosition]=switchGroupId;curPos++}}}});me.body.emitter.emit(\"groupDragged\",{groupId:id})}};ItemSet.prototype._onSelectItem=function(event){if(!this.options.selectable)return;var ctrlKey=event.srcEvent&&(event.srcEvent.ctrlKey||event.srcEvent.metaKey);var shiftKey=event.srcEvent&&event.srcEvent.shiftKey;if(ctrlKey||shiftKey){this._onMultiSelectItem(event);return}var oldSelection=this.getSelection();var item=this.itemFromTarget(event);var selection=item?[item.id]:[];this.setSelection(selection);var newSelection=this.getSelection();if(newSelection.length>0||oldSelection.length>0){this.body.emitter.emit(\"select\",{items:newSelection,event:event})}};ItemSet.prototype._onMouseOver=function(event){var item=this.itemFromTarget(event);if(!item)return;var related=this.itemFromRelatedTarget(event);if(item===related){return}var title=item.getTitle();if(this.options.showTooltips&&title){if(this.popup==null){this.popup=new Popup(this.body.dom.root,this.options.tooltip.overflowMethod||\"flip\")}this.popup.setText(title);var container=this.body.dom.centerContainer;this.popup.setPosition(event.clientX-util.getAbsoluteLeft(container)+container.offsetLeft,event.clientY-util.getAbsoluteTop(container)+container.offsetTop);this.popup.show()}else{if(this.popup!=null){this.popup.hide()}}this.body.emitter.emit(\"itemover\",{item:item.id,event:event})};ItemSet.prototype._onMouseOut=function(event){var item=this.itemFromTarget(event);if(!item)return;var related=this.itemFromRelatedTarget(event);if(item===related){return}if(this.popup!=null){this.popup.hide()}this.body.emitter.emit(\"itemout\",{item:item.id,event:event})};ItemSet.prototype._onMouseMove=function(event){var item=this.itemFromTarget(event);if(!item)return;if(this.options.showTooltips&&this.options.tooltip.followMouse){if(this.popup){if(!this.popup.hidden){var container=this.body.dom.centerContainer;this.popup.setPosition(event.clientX-util.getAbsoluteLeft(container)+container.offsetLeft,event.clientY-util.getAbsoluteTop(container)+container.offsetTop);this.popup.show()}}}};ItemSet.prototype._onMouseWheel=function(event){if(this.touchParams.itemIsDragging){this._onDragEnd(event)}};ItemSet.prototype._onUpdateItem=function(item){if(!this.options.selectable)return;if(!this.options.editable.add)return;var me=this;if(item){var itemData=me.itemsData.get(item.id);this.options.onUpdate(itemData,function(itemData){if(itemData){me.itemsData.getDataSet().update(itemData)}})}};ItemSet.prototype._onDropObjectOnItem=function(event){var item=this.itemFromTarget(event);var objectData=JSON.parse(event.dataTransfer.getData(\"text\"));this.options.onDropObjectOnItem(objectData,item)};ItemSet.prototype._onAddItem=function(event){if(!this.options.selectable)return;if(!this.options.editable.add)return;var me=this;var snap=this.options.snap||null;var xAbs;var x;if(this.options.rtl){xAbs=util.getAbsoluteRight(this.dom.frame);x=xAbs-event.center.x}else{xAbs=util.getAbsoluteLeft(this.dom.frame);x=event.center.x-xAbs}var start=this.body.util.toTime(x);var scale=this.body.util.getScale();var step=this.body.util.getStep();var end;var newItemData;if(event.type==\"drop\"){newItemData=JSON.parse(event.dataTransfer.getData(\"text\"));newItemData.content=newItemData.content?newItemData.content:\"new item\";newItemData.start=newItemData.start?newItemData.start:snap?snap(start,scale,step):start;newItemData.type=newItemData.type||\"box\";newItemData[this.itemsData._fieldId]=newItemData.id||util.randomUUID();if(newItemData.type==\"range\"&&!newItemData.end){end=this.body.util.toTime(x+this.props.width/5);newItemData.end=snap?snap(end,scale,step):end}}else{newItemData={start:snap?snap(start,scale,step):start,content:\"new item\"};newItemData[this.itemsData._fieldId]=util.randomUUID();if(this.options.type===\"range\"){\nend=this.body.util.toTime(x+this.props.width/5);newItemData.end=snap?snap(end,scale,step):end}}var group=this.groupFromTarget(event);if(group){newItemData.group=group.groupId}newItemData=this._cloneItemData(newItemData);this.options.onAdd(newItemData,function(item){if(item){me.itemsData.getDataSet().add(item);if(event.type==\"drop\"){me.setSelection([item.id])}}})};ItemSet.prototype._onMultiSelectItem=function(event){if(!this.options.selectable)return;var item=this.itemFromTarget(event);if(item){var selection=this.options.multiselect?this.getSelection():[];var shiftKey=event.srcEvent&&event.srcEvent.shiftKey||false;if(shiftKey&&this.options.multiselect){var itemGroup=this.itemsData.get(item.id).group;var lastSelectedGroup=undefined;if(this.options.multiselectPerGroup){if(selection.length>0){lastSelectedGroup=this.itemsData.get(selection[0]).group}}if(!this.options.multiselectPerGroup||lastSelectedGroup==undefined||lastSelectedGroup==itemGroup){selection.push(item.id)}var range=ItemSet._getItemRange(this.itemsData.get(selection,this.itemOptions));if(!this.options.multiselectPerGroup||lastSelectedGroup==itemGroup){selection=[];for(var id in this.items){if(this.items.hasOwnProperty(id)){var _item=this.items[id];var start=_item.data.start;var end=_item.data.end!==undefined?_item.data.end:start;if(start>=range.min&&end<=range.max&&(!this.options.multiselectPerGroup||lastSelectedGroup==this.itemsData.get(_item.id).group)&&!(_item instanceof BackgroundItem)){selection.push(_item.id)}}}}}else{var index=selection.indexOf(item.id);if(index==-1){selection.push(item.id)}else{selection.splice(index,1)}}this.setSelection(selection);this.body.emitter.emit(\"select\",{items:this.getSelection(),event:event})}};ItemSet._getItemRange=function(itemsData){var max=null;var min=null;itemsData.forEach(function(data){if(min==null||data.start<min){min=data.start}if(data.end!=undefined){if(max==null||data.end>max){max=data.end}}else{if(max==null||data.start>max){max=data.start}}});return{min:min,max:max}};ItemSet.prototype.itemFromElement=function(element){var cur=element;while(cur){if(cur.hasOwnProperty(\"timeline-item\")){return cur[\"timeline-item\"]}cur=cur.parentNode}return null};ItemSet.prototype.itemFromTarget=function(event){return this.itemFromElement(event.target)};ItemSet.prototype.itemFromRelatedTarget=function(event){return this.itemFromElement(event.relatedTarget)};ItemSet.prototype.groupFromTarget=function(event){var clientY=event.center?event.center.y:event.clientY;var groupIds=this.groupIds;if(groupIds.length<=0&&this.groupsData){groupIds=this.groupsData.getIds({order:this.options.groupOrder})}for(var i=0;i<groupIds.length;i++){var groupId=groupIds[i];var group=this.groups[groupId];var foreground=group.dom.foreground;var top=util.getAbsoluteTop(foreground);if(clientY>top&&clientY<top+foreground.offsetHeight){return group}if(this.options.orientation.item===\"top\"){if(i===this.groupIds.length-1&&clientY>top){return group}}else{if(i===0&&clientY<top+foreground.offset){return group}}}return null};ItemSet.itemSetFromTarget=function(event){var target=event.target;while(target){if(target.hasOwnProperty(\"timeline-itemset\")){return target[\"timeline-itemset\"]}target=target.parentNode}return null};ItemSet.prototype._cloneItemData=function(itemData,type){var clone=util.extend({},itemData);if(!type){type=this.itemsData.getDataSet()._options.type}if(clone.start!=undefined){clone.start=util.convert(clone.start,type&&type.start||\"Date\")}if(clone.end!=undefined){clone.end=util.convert(clone.end,type&&type.end||\"Date\")}return clone};module.exports=ItemSet},function(module,exports,__webpack_require__){\"use strict\";var EPSILON=.001;exports.orderByStart=function(items){items.sort(function(a,b){return a.data.start-b.data.start})};exports.orderByEnd=function(items){items.sort(function(a,b){var aTime=\"end\"in a.data?a.data.end:a.data.start,bTime=\"end\"in b.data?b.data.end:b.data.start;return aTime-bTime})};exports.stack=function(items,margin,force){if(force){for(var i=0;i<items.length;i++){items[i].top=null}}for(var i=0;i<items.length;i++){var item=items[i];if(item.stack&&item.top===null){item.top=margin.axis;do{var collidingItem=null;for(var j=0,jj=items.length;j<jj;j++){var other=items[j];if(other.top!==null&&other!==item&&other.stack&&exports.collision(item,other,margin.item,other.options.rtl)){collidingItem=other;break}}if(collidingItem!=null){item.top=collidingItem.top+collidingItem.height+margin.item.vertical}}while(collidingItem)}}};exports.substack=function(items,margin,subgroup){for(var i=0;i<items.length;i++){items[i].top=null}var subgroupHeight=subgroup.height;for(i=0;i<items.length;i++){var item=items[i];if(item.stack&&item.top===null){item.top=item.baseTop;do{var collidingItem=null;for(var j=0,jj=items.length;j<jj;j++){var other=items[j];if(other.top!==null&&other!==item&&exports.collision(item,other,margin.item,other.options.rtl)){collidingItem=other;break}}if(collidingItem!=null){item.top=collidingItem.top+collidingItem.height+margin.item.vertical}if(item.top+item.height>subgroupHeight){subgroupHeight=item.top+item.height}}while(collidingItem)}}subgroup.height=subgroupHeight-subgroup.top+.5*margin.item.vertical};exports.nostack=function(items,margin,subgroups,stackSubgroups){for(var i=0;i<items.length;i++){if(items[i].data.subgroup==undefined){items[i].top=margin.item.vertical}else if(items[i].data.subgroup!==undefined&&stackSubgroups){var newTop=0;for(var subgroup in subgroups){if(subgroups.hasOwnProperty(subgroup)){if(subgroups[subgroup].visible==true&&subgroups[subgroup].index<subgroups[items[i].data.subgroup].index){newTop+=subgroups[subgroup].height;subgroups[items[i].data.subgroup].top=newTop}}}items[i].top=newTop+.5*margin.item.vertical}}if(!stackSubgroups){exports.stackSubgroups(items,margin,subgroups)}};exports.stackSubgroups=function(items,margin,subgroups){for(var subgroup in subgroups){if(subgroups.hasOwnProperty(subgroup)){subgroups[subgroup].top=0;do{var collidingItem=null;for(var otherSubgroup in subgroups){if(subgroups[otherSubgroup].top!==null&&otherSubgroup!==subgroup&&subgroups[subgroup].index>subgroups[otherSubgroup].index&&exports.collisionByTimes(subgroups[subgroup],subgroups[otherSubgroup])){collidingItem=subgroups[otherSubgroup];break}}if(collidingItem!=null){subgroups[subgroup].top=collidingItem.top+collidingItem.height}}while(collidingItem)}}for(var i=0;i<items.length;i++){if(items[i].data.subgroup!==undefined){items[i].top=subgroups[items[i].data.subgroup].top+.5*margin.item.vertical}}};exports.stackSubgroupsWithInnerStack=function(subgroupItems,margin,subgroups){var doSubStack=false;var subgroupOrder=[];for(var subgroup in subgroups){if(subgroups[subgroup].hasOwnProperty(\"index\")){subgroupOrder[subgroups[subgroup].index]=subgroup}else{subgroupOrder.push(subgroup)}}for(var j=0;j<subgroupOrder.length;j++){subgroup=subgroupOrder[j];if(subgroups.hasOwnProperty(subgroup)){doSubStack=doSubStack||subgroups[subgroup].stack;subgroups[subgroup].top=0;for(var otherSubgroup in subgroups){if(subgroups[otherSubgroup].visible&&subgroups[subgroup].index>subgroups[otherSubgroup].index){subgroups[subgroup].top+=subgroups[otherSubgroup].height}}var items=subgroupItems[subgroup];for(var i=0;i<items.length;i++){if(items[i].data.subgroup!==undefined){items[i].top=subgroups[items[i].data.subgroup].top+.5*margin.item.vertical;if(subgroups[subgroup].stack){items[i].baseTop=items[i].top}}}if(doSubStack&&subgroups[subgroup].stack){exports.substack(subgroupItems[subgroup],margin,subgroups[subgroup])}}}};exports.collision=function(a,b,margin,rtl){if(rtl){return a.right-margin.horizontal+EPSILON<b.right+b.width&&a.right+a.width+margin.horizontal-EPSILON>b.right&&a.top-margin.vertical+EPSILON<b.top+b.height&&a.top+a.height+margin.vertical-EPSILON>b.top}else{return a.left-margin.horizontal+EPSILON<b.left+b.width&&a.left+a.width+margin.horizontal-EPSILON>b.left&&a.top-margin.vertical+EPSILON<b.top+b.height&&a.top+a.height+margin.vertical-EPSILON>b.top}};exports.collisionByTimes=function(a,b){return a.start<=b.start&&a.end>=b.start&&a.top<b.top+b.height&&a.top+a.height>b.top||b.start<=a.start&&b.end>=a.start&&b.top<a.top+a.height&&b.top+b.height>a.top}},function(module,exports,__webpack_require__){\"use strict\";var Item=__webpack_require__(38);function BoxItem(data,conversion,options){this.props={dot:{width:0,height:0},line:{width:0,height:0}};this.options=options;if(data){if(data.start==undefined){throw new Error('Property \"start\" missing in item '+data)}}Item.call(this,data,conversion,options)}BoxItem.prototype=new Item(null,null,null);BoxItem.prototype.isVisible=function(range){var isVisible;var align=this.options.align;var widthInMs=this.width*range.getMillisecondsPerPixel();if(align==\"right\"){isVisible=this.data.start.getTime()>range.start&&this.data.start.getTime()-widthInMs<range.end}else if(align==\"left\"){isVisible=this.data.start.getTime()+widthInMs>range.start&&this.data.start.getTime()<range.end}else{isVisible=this.data.start.getTime()+widthInMs/2>range.start&&this.data.start.getTime()-widthInMs/2<range.end}return isVisible};BoxItem.prototype._createDomElement=function(){if(!this.dom){this.dom={};this.dom.box=document.createElement(\"DIV\");this.dom.content=document.createElement(\"DIV\");this.dom.content.className=\"vis-item-content\";this.dom.box.appendChild(this.dom.content);this.dom.line=document.createElement(\"DIV\");this.dom.line.className=\"vis-line\";this.dom.dot=document.createElement(\"DIV\");this.dom.dot.className=\"vis-dot\";this.dom.box[\"timeline-item\"]=this;this.dirty=true}};BoxItem.prototype._appendDomElement=function(){if(!this.parent){throw new Error(\"Cannot redraw item: no parent attached\")}if(!this.dom.box.parentNode){var foreground=this.parent.dom.foreground;if(!foreground)throw new Error(\"Cannot redraw item: parent has no foreground container element\");foreground.appendChild(this.dom.box)}if(!this.dom.line.parentNode){var background=this.parent.dom.background;if(!background)throw new Error(\"Cannot redraw item: parent has no background container element\");background.appendChild(this.dom.line)}if(!this.dom.dot.parentNode){var axis=this.parent.dom.axis;if(!background)throw new Error(\"Cannot redraw item: parent has no axis container element\");axis.appendChild(this.dom.dot)}this.displayed=true};BoxItem.prototype._updateDirtyDomComponents=function(){if(this.dirty){this._updateContents(this.dom.content);this._updateDataAttributes(this.dom.box);this._updateStyle(this.dom.box);var editable=this.editable.updateTime||this.editable.updateGroup;var className=(this.data.className?\" \"+this.data.className:\"\")+(this.selected?\" vis-selected\":\"\")+(editable?\" vis-editable\":\" vis-readonly\");this.dom.box.className=\"vis-item vis-box\"+className;this.dom.line.className=\"vis-item vis-line\"+className;this.dom.dot.className=\"vis-item vis-dot\"+className}};BoxItem.prototype._getDomComponentsSizes=function(){return{previous:{right:this.dom.box.style.right,left:this.dom.box.style.left},dot:{height:this.dom.dot.offsetHeight,width:this.dom.dot.offsetWidth},line:{width:this.dom.line.offsetWidth},box:{width:this.dom.box.offsetWidth,height:this.dom.box.offsetHeight}}};BoxItem.prototype._updateDomComponentsSizes=function(sizes){if(this.options.rtl){this.dom.box.style.right=\"0px\"}else{this.dom.box.style.left=\"0px\"}this.props.dot.height=sizes.dot.height;this.props.dot.width=sizes.dot.width;this.props.line.width=sizes.line.width;this.width=sizes.box.width;this.height=sizes.box.height;if(this.options.rtl){this.dom.box.style.right=sizes.previous.right}else{this.dom.box.style.left=sizes.previous.left}this.dirty=false};BoxItem.prototype._repaintDomAdditionals=function(){this._repaintOnItemUpdateTimeTooltip(this.dom.box);this._repaintDragCenter();this._repaintDeleteButton(this.dom.box)};BoxItem.prototype.redraw=function(returnQueue){var sizes;var queue=[this._createDomElement.bind(this),this._appendDomElement.bind(this),this._updateDirtyDomComponents.bind(this),function(){if(this.dirty){sizes=this._getDomComponentsSizes()}}.bind(this),function(){if(this.dirty){this._updateDomComponentsSizes.bind(this)(sizes)}}.bind(this),this._repaintDomAdditionals.bind(this)];if(returnQueue){return queue}else{var result;queue.forEach(function(fn){result=fn()});return result}};BoxItem.prototype.show=function(){if(!this.displayed){this.redraw()}};BoxItem.prototype.hide=function(){if(this.displayed){var dom=this.dom;if(dom.box.parentNode)dom.box.parentNode.removeChild(dom.box);if(dom.line.parentNode)dom.line.parentNode.removeChild(dom.line);if(dom.dot.parentNode)dom.dot.parentNode.removeChild(dom.dot);this.displayed=false}};BoxItem.prototype.repositionX=function(){var start=this.conversion.toScreen(this.data.start);var align=this.options.align;if(align==\"right\"){if(this.options.rtl){this.right=start-this.width;this.dom.box.style.right=this.right+\"px\";this.dom.line.style.right=start-this.props.line.width+\"px\";this.dom.dot.style.right=start-this.props.line.width/2-this.props.dot.width/2+\"px\"}else{this.left=start-this.width;this.dom.box.style.left=this.left+\"px\";this.dom.line.style.left=start-this.props.line.width+\"px\";this.dom.dot.style.left=start-this.props.line.width/2-this.props.dot.width/2+\"px\"}}else if(align==\"left\"){if(this.options.rtl){this.right=start;this.dom.box.style.right=this.right+\"px\";this.dom.line.style.right=start+\"px\";this.dom.dot.style.right=start+this.props.line.width/2-this.props.dot.width/2+\"px\"}else{this.left=start;this.dom.box.style.left=this.left+\"px\";this.dom.line.style.left=start+\"px\";this.dom.dot.style.left=start+this.props.line.width/2-this.props.dot.width/2+\"px\"}}else{if(this.options.rtl){this.right=start-this.width/2;this.dom.box.style.right=this.right+\"px\";this.dom.line.style.right=start-this.props.line.width+\"px\";this.dom.dot.style.right=start-this.props.dot.width/2+\"px\"}else{this.left=start-this.width/2;this.dom.box.style.left=this.left+\"px\";this.dom.line.style.left=start-this.props.line.width/2+\"px\";this.dom.dot.style.left=start-this.props.dot.width/2+\"px\"}}};BoxItem.prototype.repositionY=function(){var orientation=this.options.orientation.item;var box=this.dom.box;var line=this.dom.line;var dot=this.dom.dot;if(orientation==\"top\"){box.style.top=(this.top||0)+\"px\";line.style.top=\"0\";line.style.height=this.parent.top+this.top+1+\"px\";line.style.bottom=\"\"}else{var itemSetHeight=this.parent.itemSet.props.height;var lineHeight=itemSetHeight-this.parent.top-this.parent.height+this.top;box.style.top=(this.parent.height-this.top-this.height||0)+\"px\";line.style.top=itemSetHeight-lineHeight+\"px\";line.style.bottom=\"0\"}dot.style.top=-this.props.dot.height/2+\"px\"};BoxItem.prototype.getWidthLeft=function(){return this.width/2};BoxItem.prototype.getWidthRight=function(){return this.width/2};module.exports=BoxItem},function(module,exports,__webpack_require__){\"use strict\";var Item=__webpack_require__(38);function PointItem(data,conversion,options){this.props={dot:{top:0,width:0,height:0},content:{height:0,marginLeft:0,marginRight:0}};this.options=options;if(data){if(data.start==undefined){throw new Error('Property \"start\" missing in item '+data)}}Item.call(this,data,conversion,options)}PointItem.prototype=new Item(null,null,null);PointItem.prototype.isVisible=function(range){var widthInMs=this.width*range.getMillisecondsPerPixel();return this.data.start.getTime()+widthInMs>range.start&&this.data.start<range.end};PointItem.prototype._createDomElement=function(){if(!this.dom){this.dom={};this.dom.point=document.createElement(\"div\");this.dom.content=document.createElement(\"div\");this.dom.content.className=\"vis-item-content\";this.dom.point.appendChild(this.dom.content);this.dom.dot=document.createElement(\"div\");this.dom.point.appendChild(this.dom.dot);this.dom.point[\"timeline-item\"]=this;this.dirty=true}};PointItem.prototype._appendDomElement=function(){if(!this.parent){throw new Error(\"Cannot redraw item: no parent attached\")}if(!this.dom.point.parentNode){var foreground=this.parent.dom.foreground;if(!foreground){throw new Error(\"Cannot redraw item: parent has no foreground container element\")}foreground.appendChild(this.dom.point)}this.displayed=true};PointItem.prototype._updateDirtyDomComponents=function(){if(this.dirty){this._updateContents(this.dom.content);this._updateDataAttributes(this.dom.point);this._updateStyle(this.dom.point);var editable=this.editable.updateTime||this.editable.updateGroup;var className=(this.data.className?\" \"+this.data.className:\"\")+(this.selected?\" vis-selected\":\"\")+(editable?\" vis-editable\":\" vis-readonly\");this.dom.point.className=\"vis-item vis-point\"+className;this.dom.dot.className=\"vis-item vis-dot\"+className}};PointItem.prototype._getDomComponentsSizes=function(){return{dot:{width:this.dom.dot.offsetWidth,height:this.dom.dot.offsetHeight},content:{width:this.dom.content.offsetWidth,height:this.dom.content.offsetHeight},point:{width:this.dom.point.offsetWidth,height:this.dom.point.offsetHeight}}};PointItem.prototype._updateDomComponentsSizes=function(sizes){this.props.dot.width=sizes.dot.width;this.props.dot.height=sizes.dot.height;this.props.content.height=sizes.content.height;if(this.options.rtl){this.dom.content.style.marginRight=2*this.props.dot.width+\"px\"}else{this.dom.content.style.marginLeft=2*this.props.dot.width+\"px\"}this.width=sizes.point.width;this.height=sizes.point.height;this.dom.dot.style.top=(this.height-this.props.dot.height)/2+\"px\";if(this.options.rtl){this.dom.dot.style.right=this.props.dot.width/2+\"px\"}else{this.dom.dot.style.left=this.props.dot.width/2+\"px\"}this.dirty=false};PointItem.prototype._repaintDomAdditionals=function(){this._repaintOnItemUpdateTimeTooltip(this.dom.point);this._repaintDragCenter();this._repaintDeleteButton(this.dom.point)};PointItem.prototype.redraw=function(returnQueue){var sizes;var queue=[this._createDomElement.bind(this),this._appendDomElement.bind(this),this._updateDirtyDomComponents.bind(this),function(){if(this.dirty){sizes=this._getDomComponentsSizes()}}.bind(this),function(){if(this.dirty){this._updateDomComponentsSizes.bind(this)(sizes)}}.bind(this),this._repaintDomAdditionals.bind(this)];if(returnQueue){return queue}else{var result;queue.forEach(function(fn){result=fn()});return result}};PointItem.prototype.show=function(){if(!this.displayed){this.redraw()}};PointItem.prototype.hide=function(){if(this.displayed){if(this.dom.point.parentNode){this.dom.point.parentNode.removeChild(this.dom.point)}this.displayed=false}};PointItem.prototype.repositionX=function(){var start=this.conversion.toScreen(this.data.start);if(this.options.rtl){this.right=start-this.props.dot.width;this.dom.point.style.right=this.right+\"px\"}else{this.left=start-this.props.dot.width;this.dom.point.style.left=this.left+\"px\"}};PointItem.prototype.repositionY=function(){var orientation=this.options.orientation.item;var point=this.dom.point;if(orientation==\"top\"){point.style.top=this.top+\"px\"}else{point.style.top=this.parent.height-this.top-this.height+\"px\"}};PointItem.prototype.getWidthLeft=function(){return this.props.dot.width};PointItem.prototype.getWidthRight=function(){return this.props.dot.width};module.exports=PointItem},function(module,exports,__webpack_require__){\"use strict\";var Item=__webpack_require__(38);var BackgroundGroup=__webpack_require__(69);var RangeItem=__webpack_require__(70);function BackgroundItem(data,conversion,options){this.props={content:{width:0}};this.overflow=false;if(data){if(data.start==undefined){throw new Error('Property \"start\" missing in item '+data.id)}if(data.end==undefined){throw new Error('Property \"end\" missing in item '+data.id)}}Item.call(this,data,conversion,options)}BackgroundItem.prototype=new Item(null,null,null);BackgroundItem.prototype.baseClassName=\"vis-item vis-background\";BackgroundItem.prototype.stack=false;BackgroundItem.prototype.isVisible=function(range){return this.data.start<range.end&&this.data.end>range.start};BackgroundItem.prototype._createDomElement=function(){if(!this.dom){this.dom={};this.dom.box=document.createElement(\"div\");this.dom.frame=document.createElement(\"div\");this.dom.frame.className=\"vis-item-overflow\";this.dom.box.appendChild(this.dom.frame);this.dom.content=document.createElement(\"div\");this.dom.content.className=\"vis-item-content\";this.dom.frame.appendChild(this.dom.content);this.dirty=true}};BackgroundItem.prototype._appendDomElement=function(){if(!this.parent){throw new Error(\"Cannot redraw item: no parent attached\")}if(!this.dom.box.parentNode){var background=this.parent.dom.background;if(!background){throw new Error(\"Cannot redraw item: parent has no background container element\")}background.appendChild(this.dom.box)}this.displayed=true};BackgroundItem.prototype._updateDirtyDomComponents=function(){if(this.dirty){this._updateContents(this.dom.content);this._updateDataAttributes(this.dom.content);this._updateStyle(this.dom.box);var className=(this.data.className?\" \"+this.data.className:\"\")+(this.selected?\" vis-selected\":\"\");this.dom.box.className=this.baseClassName+className}};BackgroundItem.prototype._getDomComponentsSizes=function(){this.overflow=window.getComputedStyle(this.dom.content).overflow!==\"hidden\";return{content:{width:this.dom.content.offsetWidth}}};BackgroundItem.prototype._updateDomComponentsSizes=function(sizes){this.props.content.width=sizes.content.width;this.height=0;this.dirty=false};BackgroundItem.prototype._repaintDomAdditionals=function(){};BackgroundItem.prototype.redraw=function(returnQueue){var sizes;var queue=[this._createDomElement.bind(this),this._appendDomElement.bind(this),this._updateDirtyDomComponents.bind(this),function(){if(this.dirty){sizes=this._getDomComponentsSizes.bind(this)()}}.bind(this),function(){if(this.dirty){this._updateDomComponentsSizes.bind(this)(sizes)}}.bind(this),this._repaintDomAdditionals.bind(this)];if(returnQueue){return queue}else{var result;queue.forEach(function(fn){result=fn()});return result}};BackgroundItem.prototype.show=RangeItem.prototype.show;BackgroundItem.prototype.hide=RangeItem.prototype.hide;BackgroundItem.prototype.repositionX=RangeItem.prototype.repositionX;BackgroundItem.prototype.repositionY=function(margin){var height;var orientation=this.options.orientation.item;if(this.data.subgroup!==undefined){var itemSubgroup=this.data.subgroup;this.dom.box.style.height=this.parent.subgroups[itemSubgroup].height+\"px\";if(orientation==\"top\"){this.dom.box.style.top=this.parent.top+this.parent.subgroups[itemSubgroup].top+\"px\"}else{this.dom.box.style.top=this.parent.top+this.parent.height-this.parent.subgroups[itemSubgroup].top-this.parent.subgroups[itemSubgroup].height+\"px\"}this.dom.box.style.bottom=\"\"}else{if(this.parent instanceof BackgroundGroup){height=Math.max(this.parent.height,this.parent.itemSet.body.domProps.center.height,this.parent.itemSet.body.domProps.centerContainer.height);this.dom.box.style.bottom=orientation==\"bottom\"?\"0\":\"\";this.dom.box.style.top=orientation==\"top\"?\"0\":\"\"}else{height=this.parent.height;this.dom.box.style.top=this.parent.top+\"px\";this.dom.box.style.bottom=\"\"}}this.dom.box.style.height=height+\"px\"};module.exports=BackgroundItem},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Popup=function(){function Popup(container,overflowMethod){(0,_classCallCheck3[\"default\"])(this,Popup);this.container=container;this.overflowMethod=overflowMethod||\"cap\";this.x=0;this.y=0;this.padding=5;this.hidden=false;this.frame=document.createElement(\"div\");this.frame.className=\"vis-tooltip\";this.container.appendChild(this.frame)}(0,_createClass3[\"default\"])(Popup,[{key:\"setPosition\",value:function setPosition(x,y){this.x=parseInt(x);this.y=parseInt(y)}},{key:\"setText\",value:function setText(content){if(content instanceof Element){this.frame.innerHTML=\"\";this.frame.appendChild(content)}else{this.frame.innerHTML=content}}},{key:\"show\",value:function show(doShow){if(doShow===undefined){doShow=true}if(doShow===true){var height=this.frame.clientHeight;var width=this.frame.clientWidth;var maxHeight=this.frame.parentNode.clientHeight;var maxWidth=this.frame.parentNode.clientWidth;var left=0,top=0;if(this.overflowMethod==\"flip\"){var isLeft=false,isTop=true;if(this.y-height<this.padding){isTop=false}if(this.x+width>maxWidth-this.padding){isLeft=true}if(isLeft){left=this.x-width}else{left=this.x}if(isTop){top=this.y-height}else{top=this.y}}else{top=this.y-height;if(top+height+this.padding>maxHeight){top=maxHeight-height-this.padding}if(top<this.padding){top=this.padding}left=this.x;if(left+width+this.padding>maxWidth){left=maxWidth-width-this.padding}if(left<this.padding){left=this.padding}}this.frame.style.left=left+\"px\";this.frame.style.top=top+\"px\";this.frame.style.visibility=\"visible\";this.hidden=false}else{this.hide()}}},{key:\"hide\",value:function hide(){this.hidden=true;this.frame.style.left=\"0\";this.frame.style.top=\"0\";this.frame.style.visibility=\"hidden\"}},{key:\"destroy\",value:function destroy(){this.frame.parentNode.removeChild(this.frame)}}]);return Popup}();exports[\"default\"]=Popup},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var string=\"string\";var bool=\"boolean\";var number=\"number\";var array=\"array\";var date=\"date\";var object=\"object\";var dom=\"dom\";var moment=\"moment\";var any=\"any\";var allOptions={configure:{enabled:{boolean:bool},filter:{boolean:bool,function:\"function\"},container:{dom:dom},__type__:{object:object,boolean:bool,function:\"function\"}},align:{string:string},rtl:{boolean:bool,undefined:\"undefined\"},rollingMode:{follow:{boolean:bool},offset:{number:number,undefined:\"undefined\"},__type__:{object:object}},verticalScroll:{boolean:bool,undefined:\"undefined\"},horizontalScroll:{boolean:bool,undefined:\"undefined\"},autoResize:{boolean:bool},throttleRedraw:{number:number},clickToUse:{boolean:bool},dataAttributes:{string:string,array:array},editable:{add:{boolean:bool,undefined:\"undefined\"},remove:{boolean:bool,undefined:\"undefined\"},updateGroup:{boolean:bool,undefined:\"undefined\"},updateTime:{boolean:bool,undefined:\"undefined\"},overrideItems:{boolean:bool,undefined:\"undefined\"},__type__:{boolean:bool,object:object}},end:{number:number,date:date,string:string,moment:moment},format:{minorLabels:{millisecond:{string:string,undefined:\"undefined\"},second:{string:string,undefined:\"undefined\"},minute:{string:string,undefined:\"undefined\"},hour:{string:string,undefined:\"undefined\"},weekday:{string:string,undefined:\"undefined\"},day:{string:string,undefined:\"undefined\"},week:{string:string,undefined:\"undefined\"},month:{string:string,undefined:\"undefined\"},year:{string:string,undefined:\"undefined\"},__type__:{object:object,function:\"function\"}},majorLabels:{millisecond:{string:string,undefined:\"undefined\"},second:{string:string,undefined:\"undefined\"},minute:{string:string,undefined:\"undefined\"},hour:{string:string,undefined:\"undefined\"},weekday:{string:string,undefined:\"undefined\"},day:{string:string,undefined:\"undefined\"},week:{string:string,undefined:\"undefined\"},month:{string:string,undefined:\"undefined\"},year:{string:string,undefined:\"undefined\"},__type__:{object:object,function:\"function\"}},__type__:{object:object}},moment:{function:\"function\"},groupOrder:{string:string,function:\"function\"},groupEditable:{add:{boolean:bool,undefined:\"undefined\"},remove:{boolean:bool,undefined:\"undefined\"},order:{boolean:bool,undefined:\"undefined\"},__type__:{boolean:bool,object:object}},groupOrderSwap:{function:\"function\"},height:{string:string,number:number},hiddenDates:{start:{date:date,number:number,string:string,moment:moment},end:{date:date,number:number,string:string,moment:moment},repeat:{string:string},__type__:{object:object,array:array}},itemsAlwaysDraggable:{item:{boolean:bool,undefined:\"undefined\"},range:{boolean:bool,undefined:\"undefined\"},__type__:{boolean:bool,object:object}},limitSize:{boolean:bool},locale:{string:string},locales:{__any__:{any:any},__type__:{object:object}},margin:{axis:{number:number},item:{horizontal:{number:number,undefined:\"undefined\"},vertical:{number:number,undefined:\"undefined\"},__type__:{object:object,number:number}},__type__:{object:object,number:number}},max:{date:date,number:number,string:string,moment:moment},maxHeight:{number:number,string:string},maxMinorChars:{number:number},min:{date:date,number:number,string:string,moment:moment},minHeight:{number:number,string:string},moveable:{boolean:bool},multiselect:{boolean:bool},multiselectPerGroup:{boolean:bool},onAdd:{function:\"function\"},onDropObjectOnItem:{function:\"function\"},onUpdate:{function:\"function\"},onMove:{function:\"function\"},onMoving:{function:\"function\"},onRemove:{function:\"function\"},onAddGroup:{function:\"function\"},onMoveGroup:{function:\"function\"},onRemoveGroup:{function:\"function\"},onInitialDrawComplete:{function:\"function\"},order:{function:\"function\"},orientation:{axis:{string:string,undefined:\"undefined\"},item:{string:string,undefined:\"undefined\"},__type__:{string:string,object:object}},selectable:{boolean:bool},showCurrentTime:{boolean:bool},showMajorLabels:{boolean:bool},showMinorLabels:{boolean:bool},stack:{boolean:bool},stackSubgroups:{boolean:bool},snap:{function:\"function\",null:\"null\"},start:{date:date,number:number,string:string,moment:moment},template:{function:\"function\"},groupTemplate:{function:\"function\"},visibleFrameTemplate:{string:string,function:\"function\"},showTooltips:{boolean:bool},tooltip:{followMouse:{boolean:bool},overflowMethod:{string:[\"cap\",\"flip\"]},__type__:{object:object}},tooltipOnItemUpdateTime:{template:{function:\"function\"},__type__:{boolean:bool,object:object}},timeAxis:{scale:{string:string,undefined:\"undefined\"},step:{number:number,undefined:\"undefined\"},__type__:{object:object}},type:{string:string},width:{string:string,number:number},zoomable:{boolean:bool},zoomKey:{string:[\"ctrlKey\",\"altKey\",\"metaKey\",\"\"]},zoomMax:{number:number},zoomMin:{number:number},__type__:{object:object}};var configureOptions={global:{align:[\"center\",\"left\",\"right\"],direction:false,autoResize:true,clickToUse:false,editable:{add:false,remove:false,updateGroup:false,updateTime:false},end:\"\",format:{minorLabels:{millisecond:\"SSS\",second:\"s\",minute:\"HH:mm\",hour:\"HH:mm\",weekday:\"ddd D\",day:\"D\",week:\"w\",month:\"MMM\",year:\"YYYY\"},majorLabels:{millisecond:\"HH:mm:ss\",second:\"D MMMM HH:mm\",minute:\"ddd D MMMM\",hour:\"ddd D MMMM\",weekday:\"MMMM YYYY\",day:\"MMMM YYYY\",week:\"MMMM YYYY\",month:\"YYYY\",year:\"\"}},groupsDraggable:false,height:\"\",locale:\"\",margin:{axis:[20,0,100,1],item:{horizontal:[10,0,100,1],vertical:[10,0,100,1]}},max:\"\",maxHeight:\"\",maxMinorChars:[7,0,20,1],min:\"\",minHeight:\"\",moveable:false,multiselect:false,multiselectPerGroup:false,orientation:{axis:[\"both\",\"bottom\",\"top\"],item:[\"bottom\",\"top\"]},selectable:true,showCurrentTime:false,showMajorLabels:true,showMinorLabels:true,stack:true,stackSubgroups:true,start:\"\",showTooltips:true,tooltip:{followMouse:false,overflowMethod:\"flip\"},tooltipOnItemUpdateTime:false,type:[\"box\",\"point\",\"range\",\"background\"],width:\"100%\",zoomable:true,zoomKey:[\"ctrlKey\",\"altKey\",\"metaKey\",\"\"],zoomMax:[31536e10,10,31536e10,1],zoomMin:[10,10,31536e10,1]}};exports.allOptions=allOptions;exports.configureOptions=configureOptions},function(module,exports,__webpack_require__){\"use strict\";var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var DOMutil=__webpack_require__(14);var DataSet=__webpack_require__(11);var DataView=__webpack_require__(12);var Component=__webpack_require__(16);var DataAxis=__webpack_require__(107);var GraphGroup=__webpack_require__(109);var Legend=__webpack_require__(112);var Bars=__webpack_require__(110)\n;var Lines=__webpack_require__(111);var Points=__webpack_require__(72);var UNGROUPED=\"__ungrouped__\";function LineGraph(body,options){this.id=util.randomUUID();this.body=body;this.defaultOptions={yAxisOrientation:\"left\",defaultGroup:\"default\",sort:true,sampling:true,stack:false,graphHeight:\"400px\",shaded:{enabled:false,orientation:\"bottom\"},style:\"line\",barChart:{width:50,sideBySide:false,align:\"center\"},interpolation:{enabled:true,parametrization:\"centripetal\",alpha:.5},drawPoints:{enabled:true,size:6,style:\"square\"},dataAxis:{},legend:{},groups:{visibility:{}}};this.options=util.extend({},this.defaultOptions);this.dom={};this.props={};this.hammer=null;this.groups={};this.abortedGraphUpdate=false;this.updateSVGheight=false;this.updateSVGheightOnResize=false;this.forceGraphUpdate=true;var me=this;this.itemsData=null;this.groupsData=null;this.itemListeners={add:function add(event,params,senderId){me._onAdd(params.items)},update:function update(event,params,senderId){me._onUpdate(params.items)},remove:function remove(event,params,senderId){me._onRemove(params.items)}};this.groupListeners={add:function add(event,params,senderId){me._onAddGroups(params.items)},update:function update(event,params,senderId){me._onUpdateGroups(params.items)},remove:function remove(event,params,senderId){me._onRemoveGroups(params.items)}};this.items={};this.selection=[];this.lastStart=this.body.range.start;this.touchParams={};this.svgElements={};this.setOptions(options);this.groupsUsingDefaultStyles=[0];this.body.emitter.on(\"rangechanged\",function(){me.lastStart=me.body.range.start;me.svg.style.left=util.option.asSize(-me.props.width);me.forceGraphUpdate=true;me.redraw.call(me)});this._create();this.framework={svg:this.svg,svgElements:this.svgElements,options:this.options,groups:this.groups}}LineGraph.prototype=new Component;LineGraph.prototype._create=function(){var frame=document.createElement(\"div\");frame.className=\"vis-line-graph\";this.dom.frame=frame;this.svg=document.createElementNS(\"http://www.w3.org/2000/svg\",\"svg\");this.svg.style.position=\"relative\";this.svg.style.height=(\"\"+this.options.graphHeight).replace(\"px\",\"\")+\"px\";this.svg.style.display=\"block\";frame.appendChild(this.svg);this.options.dataAxis.orientation=\"left\";this.yAxisLeft=new DataAxis(this.body,this.options.dataAxis,this.svg,this.options.groups);this.options.dataAxis.orientation=\"right\";this.yAxisRight=new DataAxis(this.body,this.options.dataAxis,this.svg,this.options.groups);delete this.options.dataAxis.orientation;this.legendLeft=new Legend(this.body,this.options.legend,\"left\",this.options.groups);this.legendRight=new Legend(this.body,this.options.legend,\"right\",this.options.groups);this.show()};LineGraph.prototype.setOptions=function(options){if(options){var fields=[\"sampling\",\"defaultGroup\",\"stack\",\"height\",\"graphHeight\",\"yAxisOrientation\",\"style\",\"barChart\",\"dataAxis\",\"sort\",\"groups\"];if(options.graphHeight===undefined&&options.height!==undefined){this.updateSVGheight=true;this.updateSVGheightOnResize=true}else if(this.body.domProps.centerContainer.height!==undefined&&options.graphHeight!==undefined){if(parseInt((options.graphHeight+\"\").replace(\"px\",\"\"))<this.body.domProps.centerContainer.height){this.updateSVGheight=true}}util.selectiveDeepExtend(fields,this.options,options);util.mergeOptions(this.options,options,\"interpolation\");util.mergeOptions(this.options,options,\"drawPoints\");util.mergeOptions(this.options,options,\"shaded\");util.mergeOptions(this.options,options,\"legend\");if(options.interpolation){if((0,_typeof3[\"default\"])(options.interpolation)==\"object\"){if(options.interpolation.parametrization){if(options.interpolation.parametrization==\"uniform\"){this.options.interpolation.alpha=0}else if(options.interpolation.parametrization==\"chordal\"){this.options.interpolation.alpha=1}else{this.options.interpolation.parametrization=\"centripetal\";this.options.interpolation.alpha=.5}}}}if(this.yAxisLeft){if(options.dataAxis!==undefined){this.yAxisLeft.setOptions(this.options.dataAxis);this.yAxisRight.setOptions(this.options.dataAxis)}}if(this.legendLeft){if(options.legend!==undefined){this.legendLeft.setOptions(this.options.legend);this.legendRight.setOptions(this.options.legend)}}if(this.groups.hasOwnProperty(UNGROUPED)){this.groups[UNGROUPED].setOptions(options)}}if(this.dom.frame){this.forceGraphUpdate=true;this.body.emitter.emit(\"_change\",{queue:true})}};LineGraph.prototype.hide=function(){if(this.dom.frame.parentNode){this.dom.frame.parentNode.removeChild(this.dom.frame)}};LineGraph.prototype.show=function(){if(!this.dom.frame.parentNode){this.body.dom.center.appendChild(this.dom.frame)}};LineGraph.prototype.setItems=function(items){var me=this,ids,oldItemsData=this.itemsData;if(!items){this.itemsData=null}else if(items instanceof DataSet||items instanceof DataView){this.itemsData=items}else{throw new TypeError(\"Data must be an instance of DataSet or DataView\")}if(oldItemsData){util.forEach(this.itemListeners,function(callback,event){oldItemsData.off(event,callback)});ids=oldItemsData.getIds();this._onRemove(ids)}if(this.itemsData){var id=this.id;util.forEach(this.itemListeners,function(callback,event){me.itemsData.on(event,callback,id)});ids=this.itemsData.getIds();this._onAdd(ids)}};LineGraph.prototype.setGroups=function(groups){var me=this;var ids;if(this.groupsData){util.forEach(this.groupListeners,function(callback,event){me.groupsData.off(event,callback)});ids=this.groupsData.getIds();this.groupsData=null;for(var i=0;i<ids.length;i++){this._removeGroup(ids[i])}}if(!groups){this.groupsData=null}else if(groups instanceof DataSet||groups instanceof DataView){this.groupsData=groups}else{throw new TypeError(\"Data must be an instance of DataSet or DataView\")}if(this.groupsData){var id=this.id;util.forEach(this.groupListeners,function(callback,event){me.groupsData.on(event,callback,id)});ids=this.groupsData.getIds();this._onAddGroups(ids)}};LineGraph.prototype._onUpdate=function(ids){this._updateAllGroupData(ids)};LineGraph.prototype._onAdd=function(ids){this._onUpdate(ids)};LineGraph.prototype._onRemove=function(ids){this._onUpdate(ids)};LineGraph.prototype._onUpdateGroups=function(groupIds){this._updateAllGroupData(null,groupIds)};LineGraph.prototype._onAddGroups=function(groupIds){this._onUpdateGroups(groupIds)};LineGraph.prototype._onRemoveGroups=function(groupIds){for(var i=0;i<groupIds.length;i++){this._removeGroup(groupIds[i])}this.forceGraphUpdate=true;this.body.emitter.emit(\"_change\",{queue:true})};LineGraph.prototype._removeGroup=function(groupId){if(this.groups.hasOwnProperty(groupId)){if(this.groups[groupId].options.yAxisOrientation==\"right\"){this.yAxisRight.removeGroup(groupId);this.legendRight.removeGroup(groupId);this.legendRight.redraw()}else{this.yAxisLeft.removeGroup(groupId);this.legendLeft.removeGroup(groupId);this.legendLeft.redraw()}delete this.groups[groupId]}};LineGraph.prototype._updateGroup=function(group,groupId){if(!this.groups.hasOwnProperty(groupId)){this.groups[groupId]=new GraphGroup(group,groupId,this.options,this.groupsUsingDefaultStyles);if(this.groups[groupId].options.yAxisOrientation==\"right\"){this.yAxisRight.addGroup(groupId,this.groups[groupId]);this.legendRight.addGroup(groupId,this.groups[groupId])}else{this.yAxisLeft.addGroup(groupId,this.groups[groupId]);this.legendLeft.addGroup(groupId,this.groups[groupId])}}else{this.groups[groupId].update(group);if(this.groups[groupId].options.yAxisOrientation==\"right\"){this.yAxisRight.updateGroup(groupId,this.groups[groupId]);this.legendRight.updateGroup(groupId,this.groups[groupId]);this.yAxisLeft.removeGroup(groupId);this.legendLeft.removeGroup(groupId)}else{this.yAxisLeft.updateGroup(groupId,this.groups[groupId]);this.legendLeft.updateGroup(groupId,this.groups[groupId]);this.yAxisRight.removeGroup(groupId);this.legendRight.removeGroup(groupId)}}this.legendLeft.redraw();this.legendRight.redraw()};LineGraph.prototype._updateAllGroupData=function(ids,groupIds){if(this.itemsData!=null){var groupsContent={};var items=this.itemsData.get();var fieldId=this.itemsData._fieldId;var idMap={};if(ids){ids.map(function(id){idMap[id]=id})}var groupCounts={};for(var i=0;i<items.length;i++){var item=items[i];var groupId=item.group;if(groupId===null||groupId===undefined){groupId=UNGROUPED}groupCounts.hasOwnProperty(groupId)?groupCounts[groupId]++:groupCounts[groupId]=1}var existingItemsMap={};if(!groupIds&&ids){for(groupId in this.groups){if(this.groups.hasOwnProperty(groupId)){group=this.groups[groupId];var existing_items=group.getItems();groupsContent[groupId]=existing_items.filter(function(item){existingItemsMap[item[fieldId]]=item[fieldId];return item[fieldId]!==idMap[item[fieldId]]});var newLength=groupCounts[groupId];groupCounts[groupId]-=groupsContent[groupId].length;if(groupsContent[groupId].length<newLength){groupsContent[groupId][newLength-1]={}}}}}for(i=0;i<items.length;i++){item=items[i];groupId=item.group;if(groupId===null||groupId===undefined){groupId=UNGROUPED}if(!groupIds&&ids&&item[fieldId]!==idMap[item[fieldId]]&&existingItemsMap.hasOwnProperty(item[fieldId])){continue}if(!groupsContent.hasOwnProperty(groupId)){groupsContent[groupId]=new Array(groupCounts[groupId])}var extended=util.bridgeObject(item);extended.x=util.convert(item.x,\"Date\");extended.end=util.convert(item.end,\"Date\");extended.orginalY=item.y;extended.y=Number(item.y);extended[fieldId]=item[fieldId];var index=groupsContent[groupId].length-groupCounts[groupId]--;groupsContent[groupId][index]=extended}for(groupId in this.groups){if(this.groups.hasOwnProperty(groupId)){if(!groupsContent.hasOwnProperty(groupId)){groupsContent[groupId]=new Array(0)}}}for(groupId in groupsContent){if(groupsContent.hasOwnProperty(groupId)){if(groupsContent[groupId].length==0){if(this.groups.hasOwnProperty(groupId)){this._removeGroup(groupId)}}else{var group=undefined;if(this.groupsData!=undefined){group=this.groupsData.get(groupId)}if(group==undefined){group={id:groupId,content:this.options.defaultGroup+groupId}}this._updateGroup(group,groupId);this.groups[groupId].setItems(groupsContent[groupId])}}}this.forceGraphUpdate=true;this.body.emitter.emit(\"_change\",{queue:true})}};LineGraph.prototype.redraw=function(){var resized=false;this.props.width=this.dom.frame.offsetWidth;this.props.height=this.body.domProps.centerContainer.height-this.body.domProps.border.top-this.body.domProps.border.bottom;resized=this._isResized()||resized;var visibleInterval=this.body.range.end-this.body.range.start;var zoomed=visibleInterval!=this.lastVisibleInterval;this.lastVisibleInterval=visibleInterval;if(resized==true){this.svg.style.width=util.option.asSize(3*this.props.width);this.svg.style.left=util.option.asSize(-this.props.width);if((this.options.height+\"\").indexOf(\"%\")!=-1||this.updateSVGheightOnResize==true){this.updateSVGheight=true}}if(this.updateSVGheight==true){if(this.options.graphHeight!=this.props.height+\"px\"){this.options.graphHeight=this.props.height+\"px\";this.svg.style.height=this.props.height+\"px\"}this.updateSVGheight=false}else{this.svg.style.height=(\"\"+this.options.graphHeight).replace(\"px\",\"\")+\"px\"}if(resized==true||zoomed==true||this.abortedGraphUpdate==true||this.forceGraphUpdate==true){resized=this._updateGraph()||resized;this.forceGraphUpdate=false}else{if(this.lastStart!=0){var offset=this.body.range.start-this.lastStart;var range=this.body.range.end-this.body.range.start;if(this.props.width!=0){var rangePerPixelInv=this.props.width/range;var xOffset=offset*rangePerPixelInv;this.svg.style.left=-this.props.width-xOffset+\"px\"}}}this.legendLeft.redraw();this.legendRight.redraw();return resized};LineGraph.prototype._getSortedGroupIds=function(){var grouplist=[];for(var groupId in this.groups){if(this.groups.hasOwnProperty(groupId)){var group=this.groups[groupId];if(group.visible==true&&(this.options.groups.visibility[groupId]===undefined||this.options.groups.visibility[groupId]==true)){grouplist.push({id:groupId,zIndex:group.options.zIndex})}}}util.insertSort(grouplist,function(a,b){var az=a.zIndex;var bz=b.zIndex;if(az===undefined)az=0;if(bz===undefined)bz=0;return az==bz?0:az<bz?-1:1});var groupIds=new Array(grouplist.length);for(var i=0;i<grouplist.length;i++){groupIds[i]=grouplist[i].id}return groupIds};LineGraph.prototype._updateGraph=function(){DOMutil.prepareElements(this.svgElements);if(this.props.width!=0&&this.itemsData!=null){var group,i;var groupRanges={};var changeCalled=false;var minDate=this.body.util.toGlobalTime(-this.body.domProps.root.width);var maxDate=this.body.util.toGlobalTime(2*this.body.domProps.root.width);var groupIds=this._getSortedGroupIds();if(groupIds.length>0){var groupsData={};this._getRelevantData(groupIds,groupsData,minDate,maxDate);this._applySampling(groupIds,groupsData);for(i=0;i<groupIds.length;i++){this._convertXcoordinates(groupsData[groupIds[i]])}this._getYRanges(groupIds,groupsData,groupRanges);changeCalled=this._updateYAxis(groupIds,groupRanges);if(changeCalled==true){DOMutil.cleanupElements(this.svgElements);this.abortedGraphUpdate=true;return true}this.abortedGraphUpdate=false;var below=undefined;for(i=0;i<groupIds.length;i++){group=this.groups[groupIds[i]];if(this.options.stack===true&&this.options.style===\"line\"){if(group.options.excludeFromStacking==undefined||!group.options.excludeFromStacking){if(below!=undefined){this._stack(groupsData[group.id],groupsData[below.id]);if(group.options.shaded.enabled==true&&group.options.shaded.orientation!==\"group\"){if(group.options.shaded.orientation==\"top\"&&below.options.shaded.orientation!==\"group\"){below.options.shaded.orientation=\"group\";below.options.shaded.groupId=group.id}else{group.options.shaded.orientation=\"group\";group.options.shaded.groupId=below.id}}}below=group}}this._convertYcoordinates(groupsData[groupIds[i]],group)}var paths={};for(i=0;i<groupIds.length;i++){group=this.groups[groupIds[i]];if(group.options.style===\"line\"&&group.options.shaded.enabled==true){var dataset=groupsData[groupIds[i]];if(dataset==null||dataset.length==0){continue}if(!paths.hasOwnProperty(groupIds[i])){paths[groupIds[i]]=Lines.calcPath(dataset,group)}if(group.options.shaded.orientation===\"group\"){var subGroupId=group.options.shaded.groupId;if(groupIds.indexOf(subGroupId)===-1){console.log(group.id+\": Unknown shading group target given:\"+subGroupId);continue}if(!paths.hasOwnProperty(subGroupId)){paths[subGroupId]=Lines.calcPath(groupsData[subGroupId],this.groups[subGroupId])}Lines.drawShading(paths[groupIds[i]],group,paths[subGroupId],this.framework)}else{Lines.drawShading(paths[groupIds[i]],group,undefined,this.framework)}}}Bars.draw(groupIds,groupsData,this.framework);for(i=0;i<groupIds.length;i++){group=this.groups[groupIds[i]];if(groupsData[groupIds[i]].length>0){switch(group.options.style){case\"line\":if(!paths.hasOwnProperty(groupIds[i])){paths[groupIds[i]]=Lines.calcPath(groupsData[groupIds[i]],group)}Lines.draw(paths[groupIds[i]],group,this.framework);case\"point\":case\"points\":if(group.options.style==\"point\"||group.options.style==\"points\"||group.options.drawPoints.enabled==true){Points.draw(groupsData[groupIds[i]],group,this.framework)}break;case\"bar\":default:}}}}}DOMutil.cleanupElements(this.svgElements);return false};LineGraph.prototype._stack=function(data,subData){var index,dx,dy,subPrevPoint,subNextPoint;index=0;for(var j=0;j<data.length;j++){subPrevPoint=undefined;subNextPoint=undefined;for(var k=index;k<subData.length;k++){if(subData[k].x===data[j].x){subPrevPoint=subData[k];subNextPoint=subData[k];index=k;break}else if(subData[k].x>data[j].x){subNextPoint=subData[k];if(k==0){subPrevPoint=subNextPoint}else{subPrevPoint=subData[k-1]}index=k;break}}if(subNextPoint===undefined){subPrevPoint=subData[subData.length-1];subNextPoint=subData[subData.length-1]}dx=subNextPoint.x-subPrevPoint.x;dy=subNextPoint.y-subPrevPoint.y;if(dx==0){data[j].y=data[j].orginalY+subNextPoint.y}else{data[j].y=data[j].orginalY+dy/dx*(data[j].x-subPrevPoint.x)+subPrevPoint.y}}};LineGraph.prototype._getRelevantData=function(groupIds,groupsData,minDate,maxDate){var group,i,j,item;if(groupIds.length>0){for(i=0;i<groupIds.length;i++){group=this.groups[groupIds[i]];var itemsData=group.getItems();if(group.options.sort==true){var dateComparator=function dateComparator(a,b){return a.getTime()==b.getTime()?0:a<b?-1:1};var first=Math.max(0,util.binarySearchValue(itemsData,minDate,\"x\",\"before\",dateComparator));var last=Math.min(itemsData.length,util.binarySearchValue(itemsData,maxDate,\"x\",\"after\",dateComparator)+1);if(last<=0){last=itemsData.length}var dataContainer=new Array(last-first);for(j=first;j<last;j++){item=group.itemsData[j];dataContainer[j-first]=item}groupsData[groupIds[i]]=dataContainer}else{groupsData[groupIds[i]]=group.itemsData}}}};LineGraph.prototype._applySampling=function(groupIds,groupsData){var group;if(groupIds.length>0){for(var i=0;i<groupIds.length;i++){group=this.groups[groupIds[i]];if(group.options.sampling==true){var dataContainer=groupsData[groupIds[i]];if(dataContainer.length>0){var increment=1;var amountOfPoints=dataContainer.length;var xDistance=this.body.util.toGlobalScreen(dataContainer[dataContainer.length-1].x)-this.body.util.toGlobalScreen(dataContainer[0].x);var pointsPerPixel=amountOfPoints/xDistance;increment=Math.min(Math.ceil(.2*amountOfPoints),Math.max(1,Math.round(pointsPerPixel)));var sampledData=new Array(amountOfPoints);for(var j=0;j<amountOfPoints;j+=increment){var idx=Math.round(j/increment);sampledData[idx]=dataContainer[j]}groupsData[groupIds[i]]=sampledData.splice(0,Math.round(amountOfPoints/increment))}}}}};LineGraph.prototype._getYRanges=function(groupIds,groupsData,groupRanges){var groupData,group,i;var combinedDataLeft=[];var combinedDataRight=[];var options;if(groupIds.length>0){for(i=0;i<groupIds.length;i++){groupData=groupsData[groupIds[i]];options=this.groups[groupIds[i]].options;if(groupData.length>0){group=this.groups[groupIds[i]];if(options.stack===true&&options.style===\"bar\"){if(options.yAxisOrientation===\"left\"){combinedDataLeft=combinedDataLeft.concat(groupData)}else{combinedDataRight=combinedDataRight.concat(groupData)}}else{groupRanges[groupIds[i]]=group.getYRange(groupData,groupIds[i])}}}Bars.getStackedYRange(combinedDataLeft,groupRanges,groupIds,\"__barStackLeft\",\"left\");Bars.getStackedYRange(combinedDataRight,groupRanges,groupIds,\"__barStackRight\",\"right\")}};LineGraph.prototype._updateYAxis=function(groupIds,groupRanges){var resized=false;var yAxisLeftUsed=false;var yAxisRightUsed=false;var minLeft=1e9,minRight=1e9,maxLeft=-1e9,maxRight=-1e9,minVal,maxVal;if(groupIds.length>0){for(var i=0;i<groupIds.length;i++){var group=this.groups[groupIds[i]];if(group&&group.options.yAxisOrientation!=\"right\"){yAxisLeftUsed=true;minLeft=1e9;maxLeft=-1e9}else if(group&&group.options.yAxisOrientation){yAxisRightUsed=true;minRight=1e9;maxRight=-1e9}}for(i=0;i<groupIds.length;i++){if(groupRanges.hasOwnProperty(groupIds[i])){if(groupRanges[groupIds[i]].ignore!==true){minVal=groupRanges[groupIds[i]].min;maxVal=groupRanges[groupIds[i]].max;if(groupRanges[groupIds[i]].yAxisOrientation!=\"right\"){yAxisLeftUsed=true;minLeft=minLeft>minVal?minVal:minLeft;maxLeft=maxLeft<maxVal?maxVal:maxLeft}else{yAxisRightUsed=true;minRight=minRight>minVal?minVal:minRight;maxRight=maxRight<maxVal?maxVal:maxRight}}}}if(yAxisLeftUsed==true){this.yAxisLeft.setRange(minLeft,maxLeft)}if(yAxisRightUsed==true){this.yAxisRight.setRange(minRight,maxRight)}}resized=this._toggleAxisVisiblity(yAxisLeftUsed,this.yAxisLeft)||resized;resized=this._toggleAxisVisiblity(yAxisRightUsed,this.yAxisRight)||resized;if(yAxisRightUsed==true&&yAxisLeftUsed==true){this.yAxisLeft.drawIcons=true;this.yAxisRight.drawIcons=true}else{this.yAxisLeft.drawIcons=false;this.yAxisRight.drawIcons=false}this.yAxisRight.master=!yAxisLeftUsed;this.yAxisRight.masterAxis=this.yAxisLeft;if(this.yAxisRight.master==false){if(yAxisRightUsed==true){this.yAxisLeft.lineOffset=this.yAxisRight.width}else{this.yAxisLeft.lineOffset=0}resized=this.yAxisLeft.redraw()||resized;resized=this.yAxisRight.redraw()||resized}else{resized=this.yAxisRight.redraw()||resized}var tempGroups=[\"__barStackLeft\",\"__barStackRight\",\"__lineStackLeft\",\"__lineStackRight\"];for(i=0;i<tempGroups.length;i++){if(groupIds.indexOf(tempGroups[i])!=-1){groupIds.splice(groupIds.indexOf(tempGroups[i]),1)}}return resized};LineGraph.prototype._toggleAxisVisiblity=function(axisUsed,axis){var changed=false;if(axisUsed==false){if(axis.dom.frame.parentNode&&axis.hidden==false){axis.hide();changed=true}}else{if(!axis.dom.frame.parentNode&&axis.hidden==true){axis.show();changed=true}}return changed};LineGraph.prototype._convertXcoordinates=function(datapoints){var toScreen=this.body.util.toScreen;for(var i=0;i<datapoints.length;i++){datapoints[i].screen_x=toScreen(datapoints[i].x)+this.props.width;datapoints[i].screen_y=datapoints[i].y;if(datapoints[i].end!=undefined){datapoints[i].screen_end=toScreen(datapoints[i].end)+this.props.width}else{datapoints[i].screen_end=undefined}}};LineGraph.prototype._convertYcoordinates=function(datapoints,group){var axis=this.yAxisLeft;var svgHeight=Number(this.svg.style.height.replace(\"px\",\"\"));if(group.options.yAxisOrientation==\"right\"){axis=this.yAxisRight}for(var i=0;i<datapoints.length;i++){datapoints[i].screen_y=Math.round(axis.convertValue(datapoints[i].y))}group.setZeroPosition(Math.min(svgHeight,axis.convertValue(0)))};module.exports=LineGraph},function(module,exports,__webpack_require__){\"use strict\";var _keys=__webpack_require__(8);var _keys2=_interopRequireDefault(_keys);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var DOMutil=__webpack_require__(14);var Component=__webpack_require__(16);var DataScale=__webpack_require__(108);function DataAxis(body,options,svg,linegraphOptions){this.id=util.randomUUID();this.body=body;this.defaultOptions={orientation:\"left\",showMinorLabels:true,showMajorLabels:true,icons:false,majorLinesOffset:7,minorLinesOffset:4,labelOffsetX:10,labelOffsetY:2,iconWidth:20,width:\"40px\",visible:true,alignZeros:true,left:{range:{min:undefined,max:undefined},format:function format(value){return\"\"+parseFloat(value.toPrecision(3))},title:{text:undefined,style:undefined}},right:{range:{min:undefined,max:undefined},format:function format(value){return\"\"+parseFloat(value.toPrecision(3))},title:{text:undefined,style:undefined}}};this.linegraphOptions=linegraphOptions;this.linegraphSVG=svg;this.props={};this.DOMelements={lines:{},labels:{},title:{}};this.dom={};this.scale=undefined;this.range={start:0,end:0};this.options=util.extend({},this.defaultOptions);this.conversionFactor=1;this.setOptions(options);this.width=Number((\"\"+this.options.width).replace(\"px\",\"\"));this.minWidth=this.width;this.height=this.linegraphSVG.getBoundingClientRect().height;this.hidden=false;this.stepPixels=25;this.zeroCrossing=-1;this.amountOfSteps=-1;this.lineOffset=0;this.master=true;this.masterAxis=null;this.svgElements={};this.iconsRemoved=false;this.groups={};this.amountOfGroups=0;this._create();this.framework={svg:this.svg,svgElements:this.svgElements,options:this.options,groups:this.groups};var me=this;this.body.emitter.on(\"verticalDrag\",function(){me.dom.lineContainer.style.top=me.body.domProps.scrollTop+\"px\"})}DataAxis.prototype=new Component;DataAxis.prototype.addGroup=function(label,graphOptions){if(!this.groups.hasOwnProperty(label)){this.groups[label]=graphOptions}this.amountOfGroups+=1};DataAxis.prototype.updateGroup=function(label,graphOptions){if(!this.groups.hasOwnProperty(label)){this.amountOfGroups+=1}this.groups[label]=graphOptions};DataAxis.prototype.removeGroup=function(label){if(this.groups.hasOwnProperty(label)){delete this.groups[label];this.amountOfGroups-=1}};DataAxis.prototype.setOptions=function(options){if(options){var redraw=false;if(this.options.orientation!=options.orientation&&options.orientation!==undefined){redraw=true}var fields=[\"orientation\",\"showMinorLabels\",\"showMajorLabels\",\"icons\",\"majorLinesOffset\",\"minorLinesOffset\",\"labelOffsetX\",\"labelOffsetY\",\"iconWidth\",\"width\",\"visible\",\"left\",\"right\",\"alignZeros\"];util.selectiveDeepExtend(fields,this.options,options);this.minWidth=Number((\"\"+this.options.width).replace(\"px\",\"\"));if(redraw===true&&this.dom.frame){this.hide();this.show()}}};DataAxis.prototype._create=function(){this.dom.frame=document.createElement(\"div\");this.dom.frame.style.width=this.options.width;this.dom.frame.style.height=this.height;this.dom.lineContainer=document.createElement(\"div\");this.dom.lineContainer.style.width=\"100%\";this.dom.lineContainer.style.height=this.height;this.dom.lineContainer.style.position=\"relative\";this.svg=document.createElementNS(\"http://www.w3.org/2000/svg\",\"svg\");this.svg.style.position=\"absolute\";this.svg.style.top=\"0px\";this.svg.style.height=\"100%\";this.svg.style.width=\"100%\";this.svg.style.display=\"block\";this.dom.frame.appendChild(this.svg)};DataAxis.prototype._redrawGroupIcons=function(){DOMutil.prepareElements(this.svgElements);var x;var iconWidth=this.options.iconWidth;var iconHeight=15;var iconOffset=4;var y=iconOffset+.5*iconHeight;if(this.options.orientation===\"left\"){x=iconOffset}else{x=this.width-iconWidth-iconOffset}var groupArray=(0,_keys2[\"default\"])(this.groups);groupArray.sort(function(a,b){return a<b?-1:1});for(var i=0;i<groupArray.length;i++){var groupId=groupArray[i];if(this.groups[groupId].visible===true&&(this.linegraphOptions.visibility[groupId]===undefined||this.linegraphOptions.visibility[groupId]===true)){this.groups[groupId].getLegend(iconWidth,iconHeight,this.framework,x,y);y+=iconHeight+iconOffset}}DOMutil.cleanupElements(this.svgElements);this.iconsRemoved=false};DataAxis.prototype._cleanupIcons=function(){if(this.iconsRemoved===false){DOMutil.prepareElements(this.svgElements);DOMutil.cleanupElements(this.svgElements);this.iconsRemoved=true}};DataAxis.prototype.show=function(){this.hidden=false;if(!this.dom.frame.parentNode){if(this.options.orientation===\"left\"){this.body.dom.left.appendChild(this.dom.frame)}else{this.body.dom.right.appendChild(this.dom.frame)}}if(!this.dom.lineContainer.parentNode){this.body.dom.backgroundHorizontal.appendChild(this.dom.lineContainer)}};DataAxis.prototype.hide=function(){this.hidden=true;if(this.dom.frame.parentNode){this.dom.frame.parentNode.removeChild(this.dom.frame)}if(this.dom.lineContainer.parentNode){this.dom.lineContainer.parentNode.removeChild(this.dom.lineContainer)}};DataAxis.prototype.setRange=function(start,end){this.range.start=start;this.range.end=end};DataAxis.prototype.redraw=function(){var resized=false;var activeGroups=0;this.dom.lineContainer.style.top=this.body.domProps.scrollTop+\"px\";for(var groupId in this.groups){if(this.groups.hasOwnProperty(groupId)){if(this.groups[groupId].visible===true&&(this.linegraphOptions.visibility[groupId]===undefined||this.linegraphOptions.visibility[groupId]===true)){activeGroups++}}}if(this.amountOfGroups===0||activeGroups===0){this.hide()}else{this.show();this.height=Number(this.linegraphSVG.style.height.replace(\"px\",\"\"));this.dom.lineContainer.style.height=this.height+\"px\";this.width=this.options.visible===true?Number((\"\"+this.options.width).replace(\"px\",\"\")):0;var props=this.props;var frame=this.dom.frame;frame.className=\"vis-data-axis\";this._calculateCharSize();var orientation=this.options.orientation;var showMinorLabels=this.options.showMinorLabels;var showMajorLabels=this.options.showMajorLabels;props.minorLabelHeight=showMinorLabels?props.minorCharHeight:0;props.majorLabelHeight=showMajorLabels?props.majorCharHeight:0;props.minorLineWidth=this.body.dom.backgroundHorizontal.offsetWidth-this.lineOffset-this.width+2*this.options.minorLinesOffset;props.minorLineHeight=1;props.majorLineWidth=this.body.dom.backgroundHorizontal.offsetWidth-this.lineOffset-this.width+2*this.options.majorLinesOffset;props.majorLineHeight=1;if(orientation===\"left\"){frame.style.top=\"0\";frame.style.left=\"0\";frame.style.bottom=\"\";frame.style.width=this.width+\"px\";frame.style.height=this.height+\"px\";this.props.width=this.body.domProps.left.width;this.props.height=this.body.domProps.left.height}else{frame.style.top=\"\";frame.style.bottom=\"0\";frame.style.left=\"0\";frame.style.width=this.width+\"px\";frame.style.height=this.height+\"px\";this.props.width=this.body.domProps.right.width;this.props.height=this.body.domProps.right.height}resized=this._redrawLabels();resized=this._isResized()||resized;if(this.options.icons===true){this._redrawGroupIcons()}else{this._cleanupIcons()}this._redrawTitle(orientation)}return resized};DataAxis.prototype._redrawLabels=function(){var _this=this;var resized=false;DOMutil.prepareElements(this.DOMelements.lines);DOMutil.prepareElements(this.DOMelements.labels);var orientation=this.options[\"orientation\"];var customRange=this.options[orientation].range!=undefined?this.options[orientation].range:{};var autoScaleEnd=true;if(customRange.max!=undefined){this.range.end=customRange.max;autoScaleEnd=false}var autoScaleStart=true;if(customRange.min!=undefined){this.range.start=customRange.min;autoScaleStart=false}this.scale=new DataScale(this.range.start,this.range.end,autoScaleStart,autoScaleEnd,this.dom.frame.offsetHeight,this.props.majorCharHeight,this.options.alignZeros,this.options[orientation].format);if(this.master===false&&this.masterAxis!=undefined){this.scale.followScale(this.masterAxis.scale)}this.maxLabelSize=0;var lines=this.scale.getLines();lines.forEach(function(line){var y=line.y;var isMajor=line.major;if(_this.options[\"showMinorLabels\"]&&isMajor===false){_this._redrawLabel(y-2,line.val,orientation,\"vis-y-axis vis-minor\",_this.props.minorCharHeight)}if(isMajor){if(y>=0){_this._redrawLabel(y-2,line.val,orientation,\"vis-y-axis vis-major\",_this.props.majorCharHeight)}}if(_this.master===true){if(isMajor){_this._redrawLine(y,orientation,\"vis-grid vis-horizontal vis-major\",_this.options.majorLinesOffset,_this.props.majorLineWidth)}else{_this._redrawLine(y,orientation,\"vis-grid vis-horizontal vis-minor\",_this.options.minorLinesOffset,_this.props.minorLineWidth)}}});var titleWidth=0;if(this.options[orientation].title!==undefined&&this.options[orientation].title.text!==undefined){titleWidth=this.props.titleCharHeight}var offset=this.options.icons===true?Math.max(this.options.iconWidth,titleWidth)+this.options.labelOffsetX+15:titleWidth+this.options.labelOffsetX+15;if(this.maxLabelSize>this.width-offset&&this.options.visible===true){this.width=this.maxLabelSize+offset;this.options.width=this.width+\"px\";DOMutil.cleanupElements(this.DOMelements.lines);DOMutil.cleanupElements(this.DOMelements.labels);this.redraw();resized=true}else if(this.maxLabelSize<this.width-offset&&this.options.visible===true&&this.width>this.minWidth){this.width=Math.max(this.minWidth,this.maxLabelSize+offset);this.options.width=this.width+\"px\";DOMutil.cleanupElements(this.DOMelements.lines);DOMutil.cleanupElements(this.DOMelements.labels);this.redraw();resized=true}else{DOMutil.cleanupElements(this.DOMelements.lines);DOMutil.cleanupElements(this.DOMelements.labels);resized=false}return resized};DataAxis.prototype.convertValue=function(value){return this.scale.convertValue(value)};DataAxis.prototype.screenToValue=function(x){return this.scale.screenToValue(x)};DataAxis.prototype._redrawLabel=function(y,text,orientation,className,characterHeight){var label=DOMutil.getDOMElement(\"div\",this.DOMelements.labels,this.dom.frame);label.className=className;label.innerHTML=text;if(orientation===\"left\"){label.style.left=\"-\"+this.options.labelOffsetX+\"px\";label.style.textAlign=\"right\"}else{label.style.right=\"-\"+this.options.labelOffsetX+\"px\";label.style.textAlign=\"left\"}label.style.top=y-.5*characterHeight+this.options.labelOffsetY+\"px\";text+=\"\";var largestWidth=Math.max(this.props.majorCharWidth,this.props.minorCharWidth);if(this.maxLabelSize<text.length*largestWidth){this.maxLabelSize=text.length*largestWidth}};DataAxis.prototype._redrawLine=function(y,orientation,className,offset,width){if(this.master===true){\nvar line=DOMutil.getDOMElement(\"div\",this.DOMelements.lines,this.dom.lineContainer);line.className=className;line.innerHTML=\"\";if(orientation===\"left\"){line.style.left=this.width-offset+\"px\"}else{line.style.right=this.width-offset+\"px\"}line.style.width=width+\"px\";line.style.top=y+\"px\"}};DataAxis.prototype._redrawTitle=function(orientation){DOMutil.prepareElements(this.DOMelements.title);if(this.options[orientation].title!==undefined&&this.options[orientation].title.text!==undefined){var title=DOMutil.getDOMElement(\"div\",this.DOMelements.title,this.dom.frame);title.className=\"vis-y-axis vis-title vis-\"+orientation;title.innerHTML=this.options[orientation].title.text;if(this.options[orientation].title.style!==undefined){util.addCssText(title,this.options[orientation].title.style)}if(orientation===\"left\"){title.style.left=this.props.titleCharHeight+\"px\"}else{title.style.right=this.props.titleCharHeight+\"px\"}title.style.width=this.height+\"px\"}DOMutil.cleanupElements(this.DOMelements.title)};DataAxis.prototype._calculateCharSize=function(){if(!(\"minorCharHeight\"in this.props)){var textMinor=document.createTextNode(\"0\");var measureCharMinor=document.createElement(\"div\");measureCharMinor.className=\"vis-y-axis vis-minor vis-measure\";measureCharMinor.appendChild(textMinor);this.dom.frame.appendChild(measureCharMinor);this.props.minorCharHeight=measureCharMinor.clientHeight;this.props.minorCharWidth=measureCharMinor.clientWidth;this.dom.frame.removeChild(measureCharMinor)}if(!(\"majorCharHeight\"in this.props)){var textMajor=document.createTextNode(\"0\");var measureCharMajor=document.createElement(\"div\");measureCharMajor.className=\"vis-y-axis vis-major vis-measure\";measureCharMajor.appendChild(textMajor);this.dom.frame.appendChild(measureCharMajor);this.props.majorCharHeight=measureCharMajor.clientHeight;this.props.majorCharWidth=measureCharMajor.clientWidth;this.dom.frame.removeChild(measureCharMajor)}if(!(\"titleCharHeight\"in this.props)){var textTitle=document.createTextNode(\"0\");var measureCharTitle=document.createElement(\"div\");measureCharTitle.className=\"vis-y-axis vis-title vis-measure\";measureCharTitle.appendChild(textTitle);this.dom.frame.appendChild(measureCharTitle);this.props.titleCharHeight=measureCharTitle.clientHeight;this.props.titleCharWidth=measureCharTitle.clientWidth;this.dom.frame.removeChild(measureCharTitle)}};module.exports=DataAxis},function(module,exports,__webpack_require__){\"use strict\";function DataScale(start,end,autoScaleStart,autoScaleEnd,containerHeight,majorCharHeight){var zeroAlign=arguments.length>6&&arguments[6]!==undefined?arguments[6]:false;var formattingFunction=arguments.length>7&&arguments[7]!==undefined?arguments[7]:false;this.majorSteps=[1,2,5,10];this.minorSteps=[.25,.5,1,2];this.customLines=null;this.containerHeight=containerHeight;this.majorCharHeight=majorCharHeight;this._start=start;this._end=end;this.scale=1;this.minorStepIdx=-1;this.magnitudefactor=1;this.determineScale();this.zeroAlign=zeroAlign;this.autoScaleStart=autoScaleStart;this.autoScaleEnd=autoScaleEnd;this.formattingFunction=formattingFunction;if(autoScaleStart||autoScaleEnd){var me=this;var roundToMinor=function roundToMinor(value){var rounded=value-value%(me.magnitudefactor*me.minorSteps[me.minorStepIdx]);if(value%(me.magnitudefactor*me.minorSteps[me.minorStepIdx])>.5*(me.magnitudefactor*me.minorSteps[me.minorStepIdx])){return rounded+me.magnitudefactor*me.minorSteps[me.minorStepIdx]}else{return rounded}};if(autoScaleStart){this._start-=this.magnitudefactor*2*this.minorSteps[this.minorStepIdx];this._start=roundToMinor(this._start)}if(autoScaleEnd){this._end+=this.magnitudefactor*this.minorSteps[this.minorStepIdx];this._end=roundToMinor(this._end)}this.determineScale()}}DataScale.prototype.setCharHeight=function(majorCharHeight){this.majorCharHeight=majorCharHeight};DataScale.prototype.setHeight=function(containerHeight){this.containerHeight=containerHeight};DataScale.prototype.determineScale=function(){var range=this._end-this._start;this.scale=this.containerHeight/range;var minimumStepValue=this.majorCharHeight/this.scale;var orderOfMagnitude=range>0?Math.round(Math.log(range)/Math.LN10):0;this.minorStepIdx=-1;this.magnitudefactor=Math.pow(10,orderOfMagnitude);var start=0;if(orderOfMagnitude<0){start=orderOfMagnitude}var solutionFound=false;for(var l=start;Math.abs(l)<=Math.abs(orderOfMagnitude);l++){this.magnitudefactor=Math.pow(10,l);for(var j=0;j<this.minorSteps.length;j++){var stepSize=this.magnitudefactor*this.minorSteps[j];if(stepSize>=minimumStepValue){solutionFound=true;this.minorStepIdx=j;break}}if(solutionFound===true){break}}};DataScale.prototype.is_major=function(value){return value%(this.magnitudefactor*this.majorSteps[this.minorStepIdx])===0};DataScale.prototype.getStep=function(){return this.magnitudefactor*this.minorSteps[this.minorStepIdx]};DataScale.prototype.getFirstMajor=function(){var majorStep=this.magnitudefactor*this.majorSteps[this.minorStepIdx];return this.convertValue(this._start+(majorStep-this._start%majorStep)%majorStep)};DataScale.prototype.formatValue=function(current){var returnValue=current.toPrecision(5);if(typeof this.formattingFunction===\"function\"){returnValue=this.formattingFunction(current)}if(typeof returnValue===\"number\"){return\"\"+returnValue}else if(typeof returnValue===\"string\"){return returnValue}else{return current.toPrecision(5)}};DataScale.prototype.getLines=function(){var lines=[];var step=this.getStep();var bottomOffset=(step-this._start%step)%step;for(var i=this._start+bottomOffset;this._end-i>1e-5;i+=step){if(i!=this._start){lines.push({major:this.is_major(i),y:this.convertValue(i),val:this.formatValue(i)})}}return lines};DataScale.prototype.followScale=function(other){var oldStepIdx=this.minorStepIdx;var oldStart=this._start;var oldEnd=this._end;var me=this;var increaseMagnitude=function increaseMagnitude(){me.magnitudefactor*=2};var decreaseMagnitude=function decreaseMagnitude(){me.magnitudefactor/=2};if(other.minorStepIdx<=1&&this.minorStepIdx<=1||other.minorStepIdx>1&&this.minorStepIdx>1){}else if(other.minorStepIdx<this.minorStepIdx){this.minorStepIdx=1;if(oldStepIdx==2){increaseMagnitude()}else{increaseMagnitude();increaseMagnitude()}}else{this.minorStepIdx=2;if(oldStepIdx==1){decreaseMagnitude()}else{decreaseMagnitude();decreaseMagnitude()}}var otherZero=other.convertValue(0);var otherStep=other.getStep()*other.scale;var done=false;var count=0;while(!done&&count++<5){this.scale=otherStep/(this.minorSteps[this.minorStepIdx]*this.magnitudefactor);var newRange=this.containerHeight/this.scale;this._start=oldStart;this._end=this._start+newRange;var myOriginalZero=this._end*this.scale;var majorStep=this.magnitudefactor*this.majorSteps[this.minorStepIdx];var majorOffset=this.getFirstMajor()-other.getFirstMajor();if(this.zeroAlign){var zeroOffset=otherZero-myOriginalZero;this._end+=zeroOffset/this.scale;this._start=this._end-newRange}else{if(!this.autoScaleStart){this._start+=majorStep-majorOffset/this.scale;this._end=this._start+newRange}else{this._start-=majorOffset/this.scale;this._end=this._start+newRange}}if(!this.autoScaleEnd&&this._end>oldEnd+1e-5){decreaseMagnitude();done=false;continue}if(!this.autoScaleStart&&this._start<oldStart-1e-5){if(this.zeroAlign&&oldStart>=0){console.warn(\"Can't adhere to given 'min' range, due to zeroalign\")}else{decreaseMagnitude();done=false;continue}}if(this.autoScaleStart&&this.autoScaleEnd&&newRange<oldEnd-oldStart){increaseMagnitude();done=false;continue}done=true}};DataScale.prototype.convertValue=function(value){return this.containerHeight-(value-this._start)*this.scale};DataScale.prototype.screenToValue=function(pixels){return(this.containerHeight-pixels)/this.scale+this._start};module.exports=DataScale},function(module,exports,__webpack_require__){\"use strict\";var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var Bars=__webpack_require__(110);var Lines=__webpack_require__(111);var Points=__webpack_require__(72);function GraphGroup(group,groupId,options,groupsUsingDefaultStyles){this.id=groupId;var fields=[\"sampling\",\"style\",\"sort\",\"yAxisOrientation\",\"barChart\",\"drawPoints\",\"shaded\",\"interpolation\",\"zIndex\",\"excludeFromStacking\",\"excludeFromLegend\"];this.options=util.selectiveBridgeObject(fields,options);this.usingDefaultStyle=group.className===undefined;this.groupsUsingDefaultStyles=groupsUsingDefaultStyles;this.zeroPosition=0;this.update(group);if(this.usingDefaultStyle==true){this.groupsUsingDefaultStyles[0]+=1}this.itemsData=[];this.visible=group.visible===undefined?true:group.visible}GraphGroup.prototype.setItems=function(items){if(items!=null){this.itemsData=items;if(this.options.sort==true){util.insertSort(this.itemsData,function(a,b){return a.x>b.x?1:-1})}}else{this.itemsData=[]}};GraphGroup.prototype.getItems=function(){return this.itemsData};GraphGroup.prototype.setZeroPosition=function(pos){this.zeroPosition=pos};GraphGroup.prototype.setOptions=function(options){if(options!==undefined){var fields=[\"sampling\",\"style\",\"sort\",\"yAxisOrientation\",\"barChart\",\"zIndex\",\"excludeFromStacking\",\"excludeFromLegend\"];util.selectiveDeepExtend(fields,this.options,options);if(typeof options.drawPoints==\"function\"){options.drawPoints={onRender:options.drawPoints}}util.mergeOptions(this.options,options,\"interpolation\");util.mergeOptions(this.options,options,\"drawPoints\");util.mergeOptions(this.options,options,\"shaded\");if(options.interpolation){if((0,_typeof3[\"default\"])(options.interpolation)==\"object\"){if(options.interpolation.parametrization){if(options.interpolation.parametrization==\"uniform\"){this.options.interpolation.alpha=0}else if(options.interpolation.parametrization==\"chordal\"){this.options.interpolation.alpha=1}else{this.options.interpolation.parametrization=\"centripetal\";this.options.interpolation.alpha=.5}}}}}};GraphGroup.prototype.update=function(group){this.group=group;this.content=group.content||\"graph\";this.className=group.className||this.className||\"vis-graph-group\"+this.groupsUsingDefaultStyles[0]%10;this.visible=group.visible===undefined?true:group.visible;this.style=group.style;this.setOptions(group.options)};GraphGroup.prototype.getLegend=function(iconWidth,iconHeight,framework,x,y){if(framework==undefined||framework==null){var svg=document.createElementNS(\"http://www.w3.org/2000/svg\",\"svg\");framework={svg:svg,svgElements:{},options:this.options,groups:[this]}}if(x==undefined||x==null){x=0}if(y==undefined||y==null){y=.5*iconHeight}switch(this.options.style){case\"line\":Lines.drawIcon(this,x,y,iconWidth,iconHeight,framework);break;case\"points\":case\"point\":Points.drawIcon(this,x,y,iconWidth,iconHeight,framework);break;case\"bar\":Bars.drawIcon(this,x,y,iconWidth,iconHeight,framework);break}return{icon:framework.svg,label:this.content,orientation:this.options.yAxisOrientation}};GraphGroup.prototype.getYRange=function(groupData){var yMin=groupData[0].y;var yMax=groupData[0].y;for(var j=0;j<groupData.length;j++){yMin=yMin>groupData[j].y?groupData[j].y:yMin;yMax=yMax<groupData[j].y?groupData[j].y:yMax}return{min:yMin,max:yMax,yAxisOrientation:this.options.yAxisOrientation}};module.exports=GraphGroup},function(module,exports,__webpack_require__){\"use strict\";var DOMutil=__webpack_require__(14);var Points=__webpack_require__(72);function Bargraph(groupId,options){}Bargraph.drawIcon=function(group,x,y,iconWidth,iconHeight,framework){var fillHeight=iconHeight*.5;var outline=DOMutil.getSVGElement(\"rect\",framework.svgElements,framework.svg);outline.setAttributeNS(null,\"x\",x);outline.setAttributeNS(null,\"y\",y-fillHeight);outline.setAttributeNS(null,\"width\",iconWidth);outline.setAttributeNS(null,\"height\",2*fillHeight);outline.setAttributeNS(null,\"class\",\"vis-outline\");var barWidth=Math.round(.3*iconWidth);var originalWidth=group.options.barChart.width;var scale=originalWidth/barWidth;var bar1Height=Math.round(.4*iconHeight);var bar2Height=Math.round(.75*iconHeight);var offset=Math.round((iconWidth-2*barWidth)/3);DOMutil.drawBar(x+.5*barWidth+offset,y+fillHeight-bar1Height-1,barWidth,bar1Height,group.className+\" vis-bar\",framework.svgElements,framework.svg,group.style);DOMutil.drawBar(x+1.5*barWidth+offset+2,y+fillHeight-bar2Height-1,barWidth,bar2Height,group.className+\" vis-bar\",framework.svgElements,framework.svg,group.style);if(group.options.drawPoints.enabled==true){var groupTemplate={style:group.options.drawPoints.style,styles:group.options.drawPoints.styles,size:group.options.drawPoints.size/scale,className:group.className};DOMutil.drawPoint(x+.5*barWidth+offset,y+fillHeight-bar1Height-1,groupTemplate,framework.svgElements,framework.svg);DOMutil.drawPoint(x+1.5*barWidth+offset+2,y+fillHeight-bar2Height-1,groupTemplate,framework.svgElements,framework.svg)}};Bargraph.draw=function(groupIds,processedGroupData,framework){var combinedData=[];var intersections={};var coreDistance;var key,drawData;var group;var i,j;var barPoints=0;for(i=0;i<groupIds.length;i++){group=framework.groups[groupIds[i]];if(group.options.style===\"bar\"){if(group.visible===true&&(framework.options.groups.visibility[groupIds[i]]===undefined||framework.options.groups.visibility[groupIds[i]]===true)){for(j=0;j<processedGroupData[groupIds[i]].length;j++){combinedData.push({screen_x:processedGroupData[groupIds[i]][j].screen_x,screen_end:processedGroupData[groupIds[i]][j].screen_end,screen_y:processedGroupData[groupIds[i]][j].screen_y,x:processedGroupData[groupIds[i]][j].x,end:processedGroupData[groupIds[i]][j].end,y:processedGroupData[groupIds[i]][j].y,groupId:groupIds[i],label:processedGroupData[groupIds[i]][j].label});barPoints+=1}}}}if(barPoints===0){return}combinedData.sort(function(a,b){if(a.screen_x===b.screen_x){return a.groupId<b.groupId?-1:1}else{return a.screen_x-b.screen_x}});Bargraph._getDataIntersections(intersections,combinedData);for(i=0;i<combinedData.length;i++){group=framework.groups[combinedData[i].groupId];var minWidth=group.options.barChart.minWidth!=undefined?group.options.barChart.minWidth:.1*group.options.barChart.width;key=combinedData[i].screen_x;var heightOffset=0;if(intersections[key]===undefined){if(i+1<combinedData.length){coreDistance=Math.abs(combinedData[i+1].screen_x-key)}drawData=Bargraph._getSafeDrawData(coreDistance,group,minWidth)}else{var nextKey=i+(intersections[key].amount-intersections[key].resolved);if(nextKey<combinedData.length){coreDistance=Math.abs(combinedData[nextKey].screen_x-key)}drawData=Bargraph._getSafeDrawData(coreDistance,group,minWidth);intersections[key].resolved+=1;if(group.options.stack===true&&group.options.excludeFromStacking!==true){if(combinedData[i].screen_y<group.zeroPosition){heightOffset=intersections[key].accumulatedNegative;intersections[key].accumulatedNegative+=group.zeroPosition-combinedData[i].screen_y}else{heightOffset=intersections[key].accumulatedPositive;intersections[key].accumulatedPositive+=group.zeroPosition-combinedData[i].screen_y}}else if(group.options.barChart.sideBySide===true){drawData.width=drawData.width/intersections[key].amount;drawData.offset+=intersections[key].resolved*drawData.width-.5*drawData.width*(intersections[key].amount+1)}}var dataWidth=drawData.width;var start=combinedData[i].screen_x;if(combinedData[i].screen_end!=undefined){dataWidth=combinedData[i].screen_end-combinedData[i].screen_x;start+=dataWidth*.5}else{start+=drawData.offset}DOMutil.drawBar(start,combinedData[i].screen_y-heightOffset,dataWidth,group.zeroPosition-combinedData[i].screen_y,group.className+\" vis-bar\",framework.svgElements,framework.svg,group.style);if(group.options.drawPoints.enabled===true){var pointData={screen_x:combinedData[i].screen_x,screen_y:combinedData[i].screen_y-heightOffset,x:combinedData[i].x,y:combinedData[i].y,groupId:combinedData[i].groupId,label:combinedData[i].label};Points.draw([pointData],group,framework,drawData.offset)}}};Bargraph._getDataIntersections=function(intersections,combinedData){var coreDistance;for(var i=0;i<combinedData.length;i++){if(i+1<combinedData.length){coreDistance=Math.abs(combinedData[i+1].screen_x-combinedData[i].screen_x)}if(i>0){coreDistance=Math.min(coreDistance,Math.abs(combinedData[i-1].screen_x-combinedData[i].screen_x))}if(coreDistance===0){if(intersections[combinedData[i].screen_x]===undefined){intersections[combinedData[i].screen_x]={amount:0,resolved:0,accumulatedPositive:0,accumulatedNegative:0}}intersections[combinedData[i].screen_x].amount+=1}}};Bargraph._getSafeDrawData=function(coreDistance,group,minWidth){var width,offset;if(coreDistance<group.options.barChart.width&&coreDistance>0){width=coreDistance<minWidth?minWidth:coreDistance;offset=0;if(group.options.barChart.align===\"left\"){offset-=.5*coreDistance}else if(group.options.barChart.align===\"right\"){offset+=.5*coreDistance}}else{width=group.options.barChart.width;offset=0;if(group.options.barChart.align===\"left\"){offset-=.5*group.options.barChart.width}else if(group.options.barChart.align===\"right\"){offset+=.5*group.options.barChart.width}}return{width:width,offset:offset}};Bargraph.getStackedYRange=function(combinedData,groupRanges,groupIds,groupLabel,orientation){if(combinedData.length>0){combinedData.sort(function(a,b){if(a.screen_x===b.screen_x){return a.groupId<b.groupId?-1:1}else{return a.screen_x-b.screen_x}});var intersections={};Bargraph._getDataIntersections(intersections,combinedData);groupRanges[groupLabel]=Bargraph._getStackedYRange(intersections,combinedData);groupRanges[groupLabel].yAxisOrientation=orientation;groupIds.push(groupLabel)}};Bargraph._getStackedYRange=function(intersections,combinedData){var key;var yMin=combinedData[0].screen_y;var yMax=combinedData[0].screen_y;for(var i=0;i<combinedData.length;i++){key=combinedData[i].screen_x;if(intersections[key]===undefined){yMin=yMin>combinedData[i].screen_y?combinedData[i].screen_y:yMin;yMax=yMax<combinedData[i].screen_y?combinedData[i].screen_y:yMax}else{if(combinedData[i].screen_y<0){intersections[key].accumulatedNegative+=combinedData[i].screen_y}else{intersections[key].accumulatedPositive+=combinedData[i].screen_y}}}for(var xpos in intersections){if(intersections.hasOwnProperty(xpos)){yMin=yMin>intersections[xpos].accumulatedNegative?intersections[xpos].accumulatedNegative:yMin;yMin=yMin>intersections[xpos].accumulatedPositive?intersections[xpos].accumulatedPositive:yMin;yMax=yMax<intersections[xpos].accumulatedNegative?intersections[xpos].accumulatedNegative:yMax;yMax=yMax<intersections[xpos].accumulatedPositive?intersections[xpos].accumulatedPositive:yMax}}return{min:yMin,max:yMax}};module.exports=Bargraph},function(module,exports,__webpack_require__){\"use strict\";var DOMutil=__webpack_require__(14);function Line(groupId,options){}Line.calcPath=function(dataset,group){if(dataset!=null){if(dataset.length>0){var d=[];if(group.options.interpolation.enabled==true){d=Line._catmullRom(dataset,group)}else{d=Line._linear(dataset)}return d}}};Line.drawIcon=function(group,x,y,iconWidth,iconHeight,framework){var fillHeight=iconHeight*.5;var path,fillPath;var outline=DOMutil.getSVGElement(\"rect\",framework.svgElements,framework.svg);outline.setAttributeNS(null,\"x\",x);outline.setAttributeNS(null,\"y\",y-fillHeight);outline.setAttributeNS(null,\"width\",iconWidth);outline.setAttributeNS(null,\"height\",2*fillHeight);outline.setAttributeNS(null,\"class\",\"vis-outline\");path=DOMutil.getSVGElement(\"path\",framework.svgElements,framework.svg);path.setAttributeNS(null,\"class\",group.className);if(group.style!==undefined){path.setAttributeNS(null,\"style\",group.style)}path.setAttributeNS(null,\"d\",\"M\"+x+\",\"+y+\" L\"+(x+iconWidth)+\",\"+y+\"\");if(group.options.shaded.enabled==true){fillPath=DOMutil.getSVGElement(\"path\",framework.svgElements,framework.svg);if(group.options.shaded.orientation==\"top\"){fillPath.setAttributeNS(null,\"d\",\"M\"+x+\", \"+(y-fillHeight)+\"L\"+x+\",\"+y+\" L\"+(x+iconWidth)+\",\"+y+\" L\"+(x+iconWidth)+\",\"+(y-fillHeight))}else{fillPath.setAttributeNS(null,\"d\",\"M\"+x+\",\"+y+\" \"+\"L\"+x+\",\"+(y+fillHeight)+\" \"+\"L\"+(x+iconWidth)+\",\"+(y+fillHeight)+\"L\"+(x+iconWidth)+\",\"+y)}fillPath.setAttributeNS(null,\"class\",group.className+\" vis-icon-fill\");if(group.options.shaded.style!==undefined&&group.options.shaded.style!==\"\"){fillPath.setAttributeNS(null,\"style\",group.options.shaded.style)}}if(group.options.drawPoints.enabled==true){var groupTemplate={style:group.options.drawPoints.style,styles:group.options.drawPoints.styles,size:group.options.drawPoints.size,className:group.className};DOMutil.drawPoint(x+.5*iconWidth,y,groupTemplate,framework.svgElements,framework.svg)}};Line.drawShading=function(pathArray,group,subPathArray,framework){if(group.options.shaded.enabled==true){var svgHeight=Number(framework.svg.style.height.replace(\"px\",\"\"));var fillPath=DOMutil.getSVGElement(\"path\",framework.svgElements,framework.svg);var type=\"L\";if(group.options.interpolation.enabled==true){type=\"C\"}var dFill;var zero=0;if(group.options.shaded.orientation==\"top\"){zero=0}else if(group.options.shaded.orientation==\"bottom\"){zero=svgHeight}else{zero=Math.min(Math.max(0,group.zeroPosition),svgHeight)}if(group.options.shaded.orientation==\"group\"&&subPathArray!=null&&subPathArray!=undefined){dFill=\"M\"+pathArray[0][0]+\",\"+pathArray[0][1]+\" \"+this.serializePath(pathArray,type,false)+\" L\"+subPathArray[subPathArray.length-1][0]+\",\"+subPathArray[subPathArray.length-1][1]+\" \"+this.serializePath(subPathArray,type,true)+subPathArray[0][0]+\",\"+subPathArray[0][1]+\" Z\"}else{dFill=\"M\"+pathArray[0][0]+\",\"+pathArray[0][1]+\" \"+this.serializePath(pathArray,type,false)+\" V\"+zero+\" H\"+pathArray[0][0]+\" Z\"}fillPath.setAttributeNS(null,\"class\",group.className+\" vis-fill\");if(group.options.shaded.style!==undefined){fillPath.setAttributeNS(null,\"style\",group.options.shaded.style)}fillPath.setAttributeNS(null,\"d\",dFill)}};Line.draw=function(pathArray,group,framework){if(pathArray!=null&&pathArray!=undefined){var path=DOMutil.getSVGElement(\"path\",framework.svgElements,framework.svg);path.setAttributeNS(null,\"class\",group.className);if(group.style!==undefined){path.setAttributeNS(null,\"style\",group.style)}var type=\"L\";if(group.options.interpolation.enabled==true){type=\"C\"}path.setAttributeNS(null,\"d\",\"M\"+pathArray[0][0]+\",\"+pathArray[0][1]+\" \"+this.serializePath(pathArray,type,false))}};Line.serializePath=function(pathArray,type,inverse){if(pathArray.length<2){return\"\"}var d=type;var i;if(inverse){for(i=pathArray.length-2;i>0;i--){d+=pathArray[i][0]+\",\"+pathArray[i][1]+\" \"}}else{for(i=1;i<pathArray.length;i++){d+=pathArray[i][0]+\",\"+pathArray[i][1]+\" \"}}return d};Line._catmullRomUniform=function(data){var p0,p1,p2,p3,bp1,bp2;var d=[];d.push([Math.round(data[0].screen_x),Math.round(data[0].screen_y)]);var normalization=1/6;var length=data.length;for(var i=0;i<length-1;i++){p0=i==0?data[0]:data[i-1];p1=data[i];p2=data[i+1];p3=i+2<length?data[i+2]:p2;bp1={screen_x:(-p0.screen_x+6*p1.screen_x+p2.screen_x)*normalization,screen_y:(-p0.screen_y+6*p1.screen_y+p2.screen_y)*normalization};bp2={screen_x:(p1.screen_x+6*p2.screen_x-p3.screen_x)*normalization,screen_y:(p1.screen_y+6*p2.screen_y-p3.screen_y)*normalization};d.push([bp1.screen_x,bp1.screen_y]);d.push([bp2.screen_x,bp2.screen_y]);d.push([p2.screen_x,p2.screen_y])}return d};Line._catmullRom=function(data,group){var alpha=group.options.interpolation.alpha;if(alpha==0||alpha===undefined){return this._catmullRomUniform(data)}else{var p0,p1,p2,p3,bp1,bp2,d1,d2,d3,A,B,N,M;var d3powA,d2powA,d3pow2A,d2pow2A,d1pow2A,d1powA;var d=[];d.push([Math.round(data[0].screen_x),Math.round(data[0].screen_y)]);var length=data.length;for(var i=0;i<length-1;i++){p0=i==0?data[0]:data[i-1];p1=data[i];p2=data[i+1];p3=i+2<length?data[i+2]:p2;d1=Math.sqrt(Math.pow(p0.screen_x-p1.screen_x,2)+Math.pow(p0.screen_y-p1.screen_y,2));d2=Math.sqrt(Math.pow(p1.screen_x-p2.screen_x,2)+Math.pow(p1.screen_y-p2.screen_y,2));d3=Math.sqrt(Math.pow(p2.screen_x-p3.screen_x,2)+Math.pow(p2.screen_y-p3.screen_y,2));d3powA=Math.pow(d3,alpha);d3pow2A=Math.pow(d3,2*alpha);d2powA=Math.pow(d2,alpha);d2pow2A=Math.pow(d2,2*alpha);d1powA=Math.pow(d1,alpha);d1pow2A=Math.pow(d1,2*alpha);A=2*d1pow2A+3*d1powA*d2powA+d2pow2A;B=2*d3pow2A+3*d3powA*d2powA+d2pow2A;N=3*d1powA*(d1powA+d2powA);if(N>0){N=1/N}M=3*d3powA*(d3powA+d2powA);if(M>0){M=1/M}bp1={screen_x:(-d2pow2A*p0.screen_x+A*p1.screen_x+d1pow2A*p2.screen_x)*N,screen_y:(-d2pow2A*p0.screen_y+A*p1.screen_y+d1pow2A*p2.screen_y)*N};bp2={screen_x:(d3pow2A*p1.screen_x+B*p2.screen_x-d2pow2A*p3.screen_x)*M,screen_y:(d3pow2A*p1.screen_y+B*p2.screen_y-d2pow2A*p3.screen_y)*M};if(bp1.screen_x==0&&bp1.screen_y==0){bp1=p1}if(bp2.screen_x==0&&bp2.screen_y==0){bp2=p2}d.push([bp1.screen_x,bp1.screen_y]);d.push([bp2.screen_x,bp2.screen_y]);d.push([p2.screen_x,p2.screen_y])}return d}};Line._linear=function(data){var d=[];for(var i=0;i<data.length;i++){d.push([data[i].screen_x,data[i].screen_y])}return d};module.exports=Line},function(module,exports,__webpack_require__){\"use strict\";var _keys=__webpack_require__(8);var _keys2=_interopRequireDefault(_keys);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var DOMutil=__webpack_require__(14);var Component=__webpack_require__(16);function Legend(body,options,side,linegraphOptions){this.body=body;this.defaultOptions={enabled:false,icons:true,iconSize:20,iconSpacing:6,left:{visible:true,position:\"top-left\"},right:{visible:true,position:\"top-right\"}};this.side=side;this.options=util.extend({},this.defaultOptions);this.linegraphOptions=linegraphOptions;this.svgElements={};this.dom={};this.groups={};this.amountOfGroups=0;this._create();this.framework={svg:this.svg,svgElements:this.svgElements,options:this.options,groups:this.groups};this.setOptions(options)}Legend.prototype=new Component;Legend.prototype.clear=function(){this.groups={};this.amountOfGroups=0};Legend.prototype.addGroup=function(label,graphOptions){if(graphOptions.options.excludeFromLegend!=true){if(!this.groups.hasOwnProperty(label)){this.groups[label]=graphOptions}this.amountOfGroups+=1}};Legend.prototype.updateGroup=function(label,graphOptions){this.groups[label]=graphOptions};Legend.prototype.removeGroup=function(label){if(this.groups.hasOwnProperty(label)){delete this.groups[label];this.amountOfGroups-=1}};Legend.prototype._create=function(){this.dom.frame=document.createElement(\"div\");this.dom.frame.className=\"vis-legend\";this.dom.frame.style.position=\"absolute\";this.dom.frame.style.top=\"10px\";this.dom.frame.style.display=\"block\";this.dom.textArea=document.createElement(\"div\");this.dom.textArea.className=\"vis-legend-text\";this.dom.textArea.style.position=\"relative\";this.dom.textArea.style.top=\"0px\";this.svg=document.createElementNS(\"http://www.w3.org/2000/svg\",\"svg\");this.svg.style.position=\"absolute\";this.svg.style.top=0+\"px\";this.svg.style.width=this.options.iconSize+5+\"px\";this.svg.style.height=\"100%\";this.dom.frame.appendChild(this.svg);this.dom.frame.appendChild(this.dom.textArea)};Legend.prototype.hide=function(){if(this.dom.frame.parentNode){this.dom.frame.parentNode.removeChild(this.dom.frame)}};Legend.prototype.show=function(){if(!this.dom.frame.parentNode){this.body.dom.center.appendChild(this.dom.frame)}};Legend.prototype.setOptions=function(options){var fields=[\"enabled\",\"orientation\",\"icons\",\"left\",\"right\"];util.selectiveDeepExtend(fields,this.options,options)};Legend.prototype.redraw=function(){var activeGroups=0;var groupArray=(0,_keys2[\"default\"])(this.groups);groupArray.sort(function(a,b){return a<b?-1:1});for(var i=0;i<groupArray.length;i++){var groupId=groupArray[i];if(this.groups[groupId].visible==true&&(this.linegraphOptions.visibility[groupId]===undefined||this.linegraphOptions.visibility[groupId]==true)){activeGroups++}}if(this.options[this.side].visible==false||this.amountOfGroups==0||this.options.enabled==false||activeGroups==0){this.hide()}else{this.show();if(this.options[this.side].position==\"top-left\"||this.options[this.side].position==\"bottom-left\"){this.dom.frame.style.left=\"4px\";this.dom.frame.style.textAlign=\"left\";this.dom.textArea.style.textAlign=\"left\";this.dom.textArea.style.left=this.options.iconSize+15+\"px\";this.dom.textArea.style.right=\"\";this.svg.style.left=0+\"px\";this.svg.style.right=\"\"}else{this.dom.frame.style.right=\"4px\";this.dom.frame.style.textAlign=\"right\";this.dom.textArea.style.textAlign=\"right\";this.dom.textArea.style.right=this.options.iconSize+15+\"px\";this.dom.textArea.style.left=\"\";this.svg.style.right=0+\"px\";this.svg.style.left=\"\"}if(this.options[this.side].position==\"top-left\"||this.options[this.side].position==\"top-right\"){this.dom.frame.style.top=4-Number(this.body.dom.center.style.top.replace(\"px\",\"\"))+\"px\";this.dom.frame.style.bottom=\"\"}else{var scrollableHeight=this.body.domProps.center.height-this.body.domProps.centerContainer.height;this.dom.frame.style.bottom=4+scrollableHeight+Number(this.body.dom.center.style.top.replace(\"px\",\"\"))+\"px\";this.dom.frame.style.top=\"\"}if(this.options.icons==false){this.dom.frame.style.width=this.dom.textArea.offsetWidth+10+\"px\";this.dom.textArea.style.right=\"\";this.dom.textArea.style.left=\"\";this.svg.style.width=\"0px\"}else{this.dom.frame.style.width=this.options.iconSize+15+this.dom.textArea.offsetWidth+10+\"px\";this.drawLegendIcons()}var content=\"\";for(i=0;i<groupArray.length;i++){groupId=groupArray[i];if(this.groups[groupId].visible==true&&(this.linegraphOptions.visibility[groupId]===undefined||this.linegraphOptions.visibility[groupId]==true)){content+=this.groups[groupId].content+\"<br />\"}}this.dom.textArea.innerHTML=content;this.dom.textArea.style.lineHeight=.75*this.options.iconSize+this.options.iconSpacing+\"px\"}};Legend.prototype.drawLegendIcons=function(){if(this.dom.frame.parentNode){var groupArray=(0,_keys2[\"default\"])(this.groups);groupArray.sort(function(a,b){return a<b?-1:1});DOMutil.resetElements(this.svgElements);var padding=window.getComputedStyle(this.dom.frame).paddingTop;var iconOffset=Number(padding.replace(\"px\",\"\"));var x=iconOffset;var iconWidth=this.options.iconSize;var iconHeight=.75*this.options.iconSize;var y=iconOffset+.5*iconHeight+3;this.svg.style.width=iconWidth+5+iconOffset+\"px\";for(var i=0;i<groupArray.length;i++){var groupId=groupArray[i];if(this.groups[groupId].visible==true&&(this.linegraphOptions.visibility[groupId]===undefined||this.linegraphOptions.visibility[groupId]==true)){this.groups[groupId].getLegend(iconWidth,iconHeight,this.framework,x,y);y+=iconHeight+this.options.iconSpacing}}}};module.exports=Legend},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var string=\"string\";var bool=\"boolean\";var number=\"number\";var array=\"array\";var date=\"date\";var object=\"object\";var dom=\"dom\";var moment=\"moment\";var any=\"any\";var allOptions={configure:{enabled:{boolean:bool},filter:{boolean:bool,function:\"function\"},container:{dom:dom},__type__:{object:object,boolean:bool,function:\"function\"}},yAxisOrientation:{string:[\"left\",\"right\"]},defaultGroup:{string:string},sort:{boolean:bool},sampling:{boolean:bool},stack:{boolean:bool},graphHeight:{string:string,number:number},shaded:{enabled:{boolean:bool},orientation:{string:[\"bottom\",\"top\",\"zero\",\"group\"]},groupId:{object:object},__type__:{boolean:bool,object:object}},style:{string:[\"line\",\"bar\",\"points\"]},barChart:{width:{number:number},minWidth:{number:number},sideBySide:{boolean:bool},align:{string:[\"left\",\"center\",\"right\"]},__type__:{object:object}},interpolation:{enabled:{boolean:bool},parametrization:{string:[\"centripetal\",\"chordal\",\"uniform\"]},alpha:{number:number},__type__:{object:object,boolean:bool}},drawPoints:{enabled:{boolean:bool},onRender:{function:\"function\"},size:{number:number},style:{string:[\"square\",\"circle\"]},__type__:{object:object,boolean:bool,function:\"function\"}},dataAxis:{showMinorLabels:{boolean:bool},showMajorLabels:{boolean:bool},icons:{boolean:bool},width:{string:string,number:number},visible:{boolean:bool},alignZeros:{boolean:bool},left:{range:{min:{\nnumber:number,undefined:\"undefined\"},max:{number:number,undefined:\"undefined\"},__type__:{object:object}},format:{function:\"function\"},title:{text:{string:string,number:number,undefined:\"undefined\"},style:{string:string,undefined:\"undefined\"},__type__:{object:object}},__type__:{object:object}},right:{range:{min:{number:number,undefined:\"undefined\"},max:{number:number,undefined:\"undefined\"},__type__:{object:object}},format:{function:\"function\"},title:{text:{string:string,number:number,undefined:\"undefined\"},style:{string:string,undefined:\"undefined\"},__type__:{object:object}},__type__:{object:object}},__type__:{object:object}},legend:{enabled:{boolean:bool},icons:{boolean:bool},left:{visible:{boolean:bool},position:{string:[\"top-right\",\"bottom-right\",\"top-left\",\"bottom-left\"]},__type__:{object:object}},right:{visible:{boolean:bool},position:{string:[\"top-right\",\"bottom-right\",\"top-left\",\"bottom-left\"]},__type__:{object:object}},__type__:{object:object,boolean:bool}},groups:{visibility:{any:any},__type__:{object:object}},autoResize:{boolean:bool},throttleRedraw:{number:number},clickToUse:{boolean:bool},end:{number:number,date:date,string:string,moment:moment},format:{minorLabels:{millisecond:{string:string,undefined:\"undefined\"},second:{string:string,undefined:\"undefined\"},minute:{string:string,undefined:\"undefined\"},hour:{string:string,undefined:\"undefined\"},weekday:{string:string,undefined:\"undefined\"},day:{string:string,undefined:\"undefined\"},month:{string:string,undefined:\"undefined\"},year:{string:string,undefined:\"undefined\"},__type__:{object:object}},majorLabels:{millisecond:{string:string,undefined:\"undefined\"},second:{string:string,undefined:\"undefined\"},minute:{string:string,undefined:\"undefined\"},hour:{string:string,undefined:\"undefined\"},weekday:{string:string,undefined:\"undefined\"},day:{string:string,undefined:\"undefined\"},month:{string:string,undefined:\"undefined\"},year:{string:string,undefined:\"undefined\"},__type__:{object:object}},__type__:{object:object}},moment:{function:\"function\"},height:{string:string,number:number},hiddenDates:{start:{date:date,number:number,string:string,moment:moment},end:{date:date,number:number,string:string,moment:moment},repeat:{string:string},__type__:{object:object,array:array}},locale:{string:string},locales:{__any__:{any:any},__type__:{object:object}},max:{date:date,number:number,string:string,moment:moment},maxHeight:{number:number,string:string},maxMinorChars:{number:number},min:{date:date,number:number,string:string,moment:moment},minHeight:{number:number,string:string},moveable:{boolean:bool},multiselect:{boolean:bool},orientation:{string:string},showCurrentTime:{boolean:bool},showMajorLabels:{boolean:bool},showMinorLabels:{boolean:bool},start:{date:date,number:number,string:string,moment:moment},timeAxis:{scale:{string:string,undefined:\"undefined\"},step:{number:number,undefined:\"undefined\"},__type__:{object:object}},width:{string:string,number:number},zoomable:{boolean:bool},zoomKey:{string:[\"ctrlKey\",\"altKey\",\"metaKey\",\"\"]},zoomMax:{number:number},zoomMin:{number:number},zIndex:{number:number},__type__:{object:object}};var configureOptions={global:{sort:true,sampling:true,stack:false,shaded:{enabled:false,orientation:[\"zero\",\"top\",\"bottom\",\"group\"]},style:[\"line\",\"bar\",\"points\"],barChart:{width:[50,5,100,5],minWidth:[50,5,100,5],sideBySide:false,align:[\"left\",\"center\",\"right\"]},interpolation:{enabled:true,parametrization:[\"centripetal\",\"chordal\",\"uniform\"]},drawPoints:{enabled:true,size:[6,2,30,1],style:[\"square\",\"circle\"]},dataAxis:{showMinorLabels:true,showMajorLabels:true,icons:false,width:[40,0,200,1],visible:true,alignZeros:true,left:{title:{text:\"\",style:\"\"}},right:{title:{text:\"\",style:\"\"}}},legend:{enabled:false,icons:true,left:{visible:true,position:[\"top-right\",\"bottom-right\",\"top-left\",\"bottom-left\"]},right:{visible:true,position:[\"top-right\",\"bottom-right\",\"top-left\",\"bottom-left\"]}},autoResize:true,clickToUse:false,end:\"\",format:{minorLabels:{millisecond:\"SSS\",second:\"s\",minute:\"HH:mm\",hour:\"HH:mm\",weekday:\"ddd D\",day:\"D\",month:\"MMM\",year:\"YYYY\"},majorLabels:{millisecond:\"HH:mm:ss\",second:\"D MMMM HH:mm\",minute:\"ddd D MMMM\",hour:\"ddd D MMMM\",weekday:\"MMMM YYYY\",day:\"MMMM YYYY\",month:\"YYYY\",year:\"\"}},height:\"\",locale:\"\",max:\"\",maxHeight:\"\",maxMinorChars:[7,0,20,1],min:\"\",minHeight:\"\",moveable:true,orientation:[\"both\",\"bottom\",\"top\"],showCurrentTime:false,showMajorLabels:true,showMinorLabels:true,start:\"\",width:\"100%\",zoomable:true,zoomKey:[\"ctrlKey\",\"altKey\",\"metaKey\",\"\"],zoomMax:[31536e10,10,31536e10,1],zoomMin:[10,10,31536e10,1],zIndex:0}};exports.allOptions=allOptions;exports.configureOptions=configureOptions},function(module,exports,__webpack_require__){\"use strict\";var _create=__webpack_require__(29);var _create2=_interopRequireDefault(_create);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function parseDOT(data){dot=data;return parseGraph()}var NODE_ATTR_MAPPING={fontsize:\"font.size\",fontcolor:\"font.color\",labelfontcolor:\"font.color\",fontname:\"font.face\",color:[\"color.border\",\"color.background\"],fillcolor:\"color.background\",tooltip:\"title\",labeltooltip:\"title\"};var EDGE_ATTR_MAPPING=(0,_create2[\"default\"])(NODE_ATTR_MAPPING);EDGE_ATTR_MAPPING.color=\"color.color\";EDGE_ATTR_MAPPING.style=\"dashes\";var TOKENTYPE={NULL:0,DELIMITER:1,IDENTIFIER:2,UNKNOWN:3};var DELIMITERS={\"{\":true,\"}\":true,\"[\":true,\"]\":true,\";\":true,\"=\":true,\",\":true,\"->\":true,\"--\":true};var dot=\"\";var index=0;var c=\"\";var token=\"\";var tokenType=TOKENTYPE.NULL;function first(){index=0;c=dot.charAt(0)}function next(){index++;c=dot.charAt(index)}function nextPreview(){return dot.charAt(index+1)}var regexAlphaNumeric=/[a-zA-Z_0-9.:#]/;function isAlphaNumeric(c){return regexAlphaNumeric.test(c)}function merge(a,b){if(!a){a={}}if(b){for(var name in b){if(b.hasOwnProperty(name)){a[name]=b[name]}}}return a}function setValue(obj,path,value){var keys=path.split(\".\");var o=obj;while(keys.length){var key=keys.shift();if(keys.length){if(!o[key]){o[key]={}}o=o[key]}else{o[key]=value}}}function addNode(graph,node){var i,len;var current=null;var graphs=[graph];var root=graph;while(root.parent){graphs.push(root.parent);root=root.parent}if(root.nodes){for(i=0,len=root.nodes.length;i<len;i++){if(node.id===root.nodes[i].id){current=root.nodes[i];break}}}if(!current){current={id:node.id};if(graph.node){current.attr=merge(current.attr,graph.node)}}for(i=graphs.length-1;i>=0;i--){var g=graphs[i];if(!g.nodes){g.nodes=[]}if(g.nodes.indexOf(current)===-1){g.nodes.push(current)}}if(node.attr){current.attr=merge(current.attr,node.attr)}}function addEdge(graph,edge){if(!graph.edges){graph.edges=[]}graph.edges.push(edge);if(graph.edge){var attr=merge({},graph.edge);edge.attr=merge(attr,edge.attr)}}function createEdge(graph,from,to,type,attr){var edge={from:from,to:to,type:type};if(graph.edge){edge.attr=merge({},graph.edge)}edge.attr=merge(edge.attr||{},attr);return edge}function getToken(){tokenType=TOKENTYPE.NULL;token=\"\";while(c===\" \"||c===\"\\t\"||c===\"\\n\"||c===\"\\r\"){next()}do{var isComment=false;if(c===\"#\"){var i=index-1;while(dot.charAt(i)===\" \"||dot.charAt(i)===\"\\t\"){i--}if(dot.charAt(i)===\"\\n\"||dot.charAt(i)===\"\"){while(c!=\"\"&&c!=\"\\n\"){next()}isComment=true}}if(c===\"/\"&&nextPreview()===\"/\"){while(c!=\"\"&&c!=\"\\n\"){next()}isComment=true}if(c===\"/\"&&nextPreview()===\"*\"){while(c!=\"\"){if(c===\"*\"&&nextPreview()===\"/\"){next();next();break}else{next()}}isComment=true}while(c===\" \"||c===\"\\t\"||c===\"\\n\"||c===\"\\r\"){next()}}while(isComment);if(c===\"\"){tokenType=TOKENTYPE.DELIMITER;return}var c2=c+nextPreview();if(DELIMITERS[c2]){tokenType=TOKENTYPE.DELIMITER;token=c2;next();next();return}if(DELIMITERS[c]){tokenType=TOKENTYPE.DELIMITER;token=c;next();return}if(isAlphaNumeric(c)||c===\"-\"){token+=c;next();while(isAlphaNumeric(c)){token+=c;next()}if(token===\"false\"){token=false}else if(token===\"true\"){token=true}else if(!isNaN(Number(token))){token=Number(token)}tokenType=TOKENTYPE.IDENTIFIER;return}if(c==='\"'){next();while(c!=\"\"&&(c!='\"'||c==='\"'&&nextPreview()==='\"')){if(c==='\"'){token+=c;next()}else if(c===\"\\\\\"&&nextPreview()===\"n\"){token+=\"\\n\";next()}else{token+=c}next()}if(c!='\"'){throw newSyntaxError('End of string \" expected')}next();tokenType=TOKENTYPE.IDENTIFIER;return}tokenType=TOKENTYPE.UNKNOWN;while(c!=\"\"){token+=c;next()}throw new SyntaxError('Syntax error in part \"'+chop(token,30)+'\"')}function parseGraph(){var graph={};first();getToken();if(token===\"strict\"){graph.strict=true;getToken()}if(token===\"graph\"||token===\"digraph\"){graph.type=token;getToken()}if(tokenType===TOKENTYPE.IDENTIFIER){graph.id=token;getToken()}if(token!=\"{\"){throw newSyntaxError(\"Angle bracket { expected\")}getToken();parseStatements(graph);if(token!=\"}\"){throw newSyntaxError(\"Angle bracket } expected\")}getToken();if(token!==\"\"){throw newSyntaxError(\"End of file expected\")}getToken();delete graph.node;delete graph.edge;delete graph.graph;return graph}function parseStatements(graph){while(token!==\"\"&&token!=\"}\"){parseStatement(graph);if(token===\";\"){getToken()}}}function parseStatement(graph){var subgraph=parseSubgraph(graph);if(subgraph){parseEdge(graph,subgraph);return}var attr=parseAttributeStatement(graph);if(attr){return}if(tokenType!=TOKENTYPE.IDENTIFIER){throw newSyntaxError(\"Identifier expected\")}var id=token;getToken();if(token===\"=\"){getToken();if(tokenType!=TOKENTYPE.IDENTIFIER){throw newSyntaxError(\"Identifier expected\")}graph[id]=token;getToken()}else{parseNodeStatement(graph,id)}}function parseSubgraph(graph){var subgraph=null;if(token===\"subgraph\"){subgraph={};subgraph.type=\"subgraph\";getToken();if(tokenType===TOKENTYPE.IDENTIFIER){subgraph.id=token;getToken()}}if(token===\"{\"){getToken();if(!subgraph){subgraph={}}subgraph.parent=graph;subgraph.node=graph.node;subgraph.edge=graph.edge;subgraph.graph=graph.graph;parseStatements(subgraph);if(token!=\"}\"){throw newSyntaxError(\"Angle bracket } expected\")}getToken();delete subgraph.node;delete subgraph.edge;delete subgraph.graph;delete subgraph.parent;if(!graph.subgraphs){graph.subgraphs=[]}graph.subgraphs.push(subgraph)}return subgraph}function parseAttributeStatement(graph){if(token===\"node\"){getToken();graph.node=parseAttributeList();return\"node\"}else if(token===\"edge\"){getToken();graph.edge=parseAttributeList();return\"edge\"}else if(token===\"graph\"){getToken();graph.graph=parseAttributeList();return\"graph\"}return null}function parseNodeStatement(graph,id){var node={id:id};var attr=parseAttributeList();if(attr){node.attr=attr}addNode(graph,node);parseEdge(graph,id)}function parseEdge(graph,from){while(token===\"->\"||token===\"--\"){var to;var type=token;getToken();var subgraph=parseSubgraph(graph);if(subgraph){to=subgraph}else{if(tokenType!=TOKENTYPE.IDENTIFIER){throw newSyntaxError(\"Identifier or subgraph expected\")}to=token;addNode(graph,{id:to});getToken()}var attr=parseAttributeList();var edge=createEdge(graph,from,to,type,attr);addEdge(graph,edge);from=to}}function parseAttributeList(){var attr=null;var edgeStyles={dashed:true,solid:false,dotted:[1,5]};while(token===\"[\"){getToken();attr={};while(token!==\"\"&&token!=\"]\"){if(tokenType!=TOKENTYPE.IDENTIFIER){throw newSyntaxError(\"Attribute name expected\")}var name=token;getToken();if(token!=\"=\"){throw newSyntaxError(\"Equal sign = expected\")}getToken();if(tokenType!=TOKENTYPE.IDENTIFIER){throw newSyntaxError(\"Attribute value expected\")}var value=token;if(name===\"style\"){value=edgeStyles[value]}setValue(attr,name,value);getToken();if(token==\",\"){getToken()}}if(token!=\"]\"){throw newSyntaxError(\"Bracket ] expected\")}getToken()}return attr}function newSyntaxError(message){return new SyntaxError(message+', got \"'+chop(token,30)+'\" (char '+index+\")\")}function chop(text,maxLength){return text.length<=maxLength?text:text.substr(0,27)+\"...\"}function forEach2(array1,array2,fn){if(Array.isArray(array1)){array1.forEach(function(elem1){if(Array.isArray(array2)){array2.forEach(function(elem2){fn(elem1,elem2)})}else{fn(elem1,array2)}})}else{if(Array.isArray(array2)){array2.forEach(function(elem2){fn(array1,elem2)})}else{fn(array1,array2)}}}function setProp(object,path,value){var names=path.split(\".\");var prop=names.pop();var obj=object;for(var i=0;i<names.length;i++){var name=names[i];if(!(name in obj)){obj[name]={}}obj=obj[name]}obj[prop]=value;return object}function convertAttr(attr,mapping){var converted={};for(var prop in attr){if(attr.hasOwnProperty(prop)){var visProp=mapping[prop];if(Array.isArray(visProp)){visProp.forEach(function(visPropI){setProp(converted,visPropI,attr[prop])})}else if(typeof visProp===\"string\"){setProp(converted,visProp,attr[prop])}else{setProp(converted,prop,attr[prop])}}}return converted}function DOTToGraph(data){var dotData=parseDOT(data);var graphData={nodes:[],edges:[],options:{}};if(dotData.nodes){dotData.nodes.forEach(function(dotNode){var graphNode={id:dotNode.id,label:String(dotNode.label||dotNode.id)};merge(graphNode,convertAttr(dotNode.attr,NODE_ATTR_MAPPING));if(graphNode.image){graphNode.shape=\"image\"}graphData.nodes.push(graphNode)})}if(dotData.edges){var convertEdge=function convertEdge(dotEdge){var graphEdge={from:dotEdge.from,to:dotEdge.to};merge(graphEdge,convertAttr(dotEdge.attr,EDGE_ATTR_MAPPING));graphEdge.arrows=dotEdge.type===\"->\"?\"to\":undefined;return graphEdge};dotData.edges.forEach(function(dotEdge){var from,to;if(dotEdge.from instanceof Object){from=dotEdge.from.nodes}else{from={id:dotEdge.from}}if(dotEdge.to instanceof Object){to=dotEdge.to.nodes}else{to={id:dotEdge.to}}if(dotEdge.from instanceof Object&&dotEdge.from.edges){dotEdge.from.edges.forEach(function(subEdge){var graphEdge=convertEdge(subEdge);graphData.edges.push(graphEdge)})}forEach2(from,to,function(from,to){var subEdge=createEdge(graphData,from.id,to.id,dotEdge.type,dotEdge.attr);var graphEdge=convertEdge(subEdge);graphData.edges.push(graphEdge)});if(dotEdge.to instanceof Object&&dotEdge.to.edges){dotEdge.to.edges.forEach(function(subEdge){var graphEdge=convertEdge(subEdge);graphData.edges.push(graphEdge)})}})}if(dotData.attr){graphData.options=dotData.attr}return graphData}exports.parseDOT=parseDOT;exports.DOTToGraph=DOTToGraph},function(module,exports,__webpack_require__){\"use strict\";function parseGephi(gephiJSON,optionsObj){var edges=[];var nodes=[];var options={edges:{inheritColor:false},nodes:{fixed:false,parseColor:false}};if(optionsObj!==undefined){if(optionsObj.fixed!==undefined){options.nodes.fixed=optionsObj.fixed}if(optionsObj.parseColor!==undefined){options.nodes.parseColor=optionsObj.parseColor}if(optionsObj.inheritColor!==undefined){options.edges.inheritColor=optionsObj.inheritColor}}var gEdges=gephiJSON.edges;var gNodes=gephiJSON.nodes;for(var i=0;i<gEdges.length;i++){var edge={};var gEdge=gEdges[i];edge[\"id\"]=gEdge.id;edge[\"from\"]=gEdge.source;edge[\"to\"]=gEdge.target;edge[\"attributes\"]=gEdge.attributes;edge[\"label\"]=gEdge.label;edge[\"title\"]=gEdge.attributes!==undefined?gEdge.attributes.title:undefined;if(gEdge[\"type\"]===\"Directed\"){edge[\"arrows\"]=\"to\"}if(gEdge.color&&options.inheritColor===false){edge[\"color\"]=gEdge.color}edges.push(edge)}for(var j=0;j<gNodes.length;j++){var node={};var gNode=gNodes[j];node[\"id\"]=gNode.id;node[\"attributes\"]=gNode.attributes;node[\"x\"]=gNode.x;node[\"y\"]=gNode.y;node[\"label\"]=gNode.label;node[\"title\"]=gNode.attributes!==undefined?gNode.attributes.title:gNode.title;if(options.nodes.parseColor===true){node[\"color\"]=gNode.color}else{node[\"color\"]=gNode.color!==undefined?{background:gNode.color,border:gNode.color,highlight:{background:gNode.color,border:gNode.color},hover:{background:gNode.color,border:gNode.color}}:undefined}node[\"size\"]=gNode.size;node[\"fixed\"]=options.nodes.fixed&&gNode.x!==undefined&&gNode.y!==undefined;nodes.push(node)}return{nodes:nodes,edges:edges}}exports.parseGephi=parseGephi},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _CachedImage=__webpack_require__(185);var _CachedImage2=_interopRequireDefault(_CachedImage);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Images=function(){function Images(callback){(0,_classCallCheck3[\"default\"])(this,Images);this.images={};this.imageBroken={};this.callback=callback}(0,_createClass3[\"default\"])(Images,[{key:\"_tryloadBrokenUrl\",value:function _tryloadBrokenUrl(url,brokenUrl,imageToLoadBrokenUrlOn){if(url===undefined||imageToLoadBrokenUrlOn===undefined)return;if(brokenUrl===undefined){console.warn(\"No broken url image defined\");return}imageToLoadBrokenUrlOn.onerror=function(){console.error(\"Could not load brokenImage:\",brokenUrl)};imageToLoadBrokenUrlOn.image.src=brokenUrl}},{key:\"_redrawWithImage\",value:function _redrawWithImage(imageToRedrawWith){if(this.callback){this.callback(imageToRedrawWith)}}},{key:\"load\",value:function load(url,brokenUrl){var _this=this;var cachedImage=this.images[url];if(cachedImage)return cachedImage;var img=new _CachedImage2[\"default\"];this.images[url]=img;img.image.onload=function(){_this._fixImageCoordinates(img.image);img.init();_this._redrawWithImage(img)};img.image.onerror=function(){console.error(\"Could not load image:\",url);_this._tryloadBrokenUrl(url,brokenUrl,img)};img.image.src=url;return img}},{key:\"_fixImageCoordinates\",value:function _fixImageCoordinates(imageToCache){if(imageToCache.width===0){document.body.appendChild(imageToCache);imageToCache.width=imageToCache.offsetWidth;imageToCache.height=imageToCache.offsetHeight;document.body.removeChild(imageToCache)}}}]);return Images}();exports[\"default\"]=Images},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _slicedToArray2=__webpack_require__(30);var _slicedToArray3=_interopRequireDefault(_slicedToArray2);var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var ComponentUtil=__webpack_require__(48)[\"default\"];var LabelSplitter=__webpack_require__(191)[\"default\"];var multiFontStyle=[\"bold\",\"ital\",\"boldital\",\"mono\"];var Label=function(){function Label(body,options){var edgelabel=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;(0,_classCallCheck3[\"default\"])(this,Label);this.body=body;this.pointToSelf=false;this.baseSize=undefined;this.fontOptions={};this.setOptions(options);this.size={top:0,left:0,width:0,height:0,yLine:0};this.isEdgeLabel=edgelabel}(0,_createClass3[\"default\"])(Label,[{key:\"setOptions\",value:function setOptions(options){this.elementOptions=options;this.initFontOptions(options.font);if(ComponentUtil.isValidLabel(options.label)){this.labelDirty=true}else{options.label=\"\"}if(options.font!==undefined&&options.font!==null){if(typeof options.font===\"string\"){this.baseSize=this.fontOptions.size}else if((0,_typeof3[\"default\"])(options.font)===\"object\"){var size=options.font.size;if(size!==undefined){this.baseSize=size}}}}},{key:\"initFontOptions\",value:function initFontOptions(newFontOptions){var _this=this;util.forEach(multiFontStyle,function(style){_this.fontOptions[style]={}});if(Label.parseFontString(this.fontOptions,newFontOptions)){this.fontOptions.vadjust=0;return}util.forEach(newFontOptions,function(prop,n){if(prop!==undefined&&prop!==null&&(typeof prop===\"undefined\"?\"undefined\":(0,_typeof3[\"default\"])(prop))!==\"object\"){_this.fontOptions[n]=prop}})}},{key:\"constrain\",value:function constrain(pile){var fontOptions={constrainWidth:false,maxWdt:-1,minWdt:-1,constrainHeight:false,minHgt:-1,valign:\"middle\"};var widthConstraint=util.topMost(pile,\"widthConstraint\");if(typeof widthConstraint===\"number\"){fontOptions.maxWdt=Number(widthConstraint);fontOptions.minWdt=Number(widthConstraint)}else if((typeof widthConstraint===\"undefined\"?\"undefined\":(0,_typeof3[\"default\"])(widthConstraint))===\"object\"){var widthConstraintMaximum=util.topMost(pile,[\"widthConstraint\",\"maximum\"]);if(typeof widthConstraintMaximum===\"number\"){fontOptions.maxWdt=Number(widthConstraintMaximum)}var widthConstraintMinimum=util.topMost(pile,[\"widthConstraint\",\"minimum\"]);if(typeof widthConstraintMinimum===\"number\"){fontOptions.minWdt=Number(widthConstraintMinimum)}}var heightConstraint=util.topMost(pile,\"heightConstraint\");if(typeof heightConstraint===\"number\"){fontOptions.minHgt=Number(heightConstraint)}else if((typeof heightConstraint===\"undefined\"?\"undefined\":(0,_typeof3[\"default\"])(heightConstraint))===\"object\"){var heightConstraintMinimum=util.topMost(pile,[\"heightConstraint\",\"minimum\"]);if(typeof heightConstraintMinimum===\"number\"){fontOptions.minHgt=Number(heightConstraintMinimum)}var heightConstraintValign=util.topMost(pile,[\"heightConstraint\",\"valign\"]);if(typeof heightConstraintValign===\"string\"){if(heightConstraintValign===\"top\"||heightConstraintValign===\"bottom\"){fontOptions.valign=heightConstraintValign}}}return fontOptions}},{key:\"update\",value:function update(options,pile){this.setOptions(options,true);this.propagateFonts(pile);util.deepExtend(this.fontOptions,this.constrain(pile));this.fontOptions.chooser=ComponentUtil.choosify(\"label\",pile)}},{key:\"adjustSizes\",value:function adjustSizes(margins){var widthBias=margins?margins.right+margins.left:0;if(this.fontOptions.constrainWidth){this.fontOptions.maxWdt-=widthBias;this.fontOptions.minWdt-=widthBias}var heightBias=margins?margins.top+margins.bottom:0;if(this.fontOptions.constrainHeight){this.fontOptions.minHgt-=heightBias}}},{key:\"addFontOptionsToPile\",value:function addFontOptionsToPile(dstPile,srcPile){for(var i=0;i<srcPile.length;++i){this.addFontToPile(dstPile,srcPile[i])}}},{key:\"addFontToPile\",value:function addFontToPile(pile,options){if(options===undefined)return;if(options.font===undefined||options.font===null)return;var item=options.font;pile.push(item)}},{key:\"getBasicOptions\",value:function getBasicOptions(pile){var ret={};for(var n=0;n<pile.length;++n){var fontOptions=pile[n];var tmpShorthand={};if(Label.parseFontString(tmpShorthand,fontOptions)){fontOptions=tmpShorthand}util.forEach(fontOptions,function(opt,name){if(opt===undefined)return;if(ret.hasOwnProperty(name))return;if(multiFontStyle.indexOf(name)!==-1){ret[name]={}}else{ret[name]=opt}})}return ret}},{key:\"getFontOption\",value:function getFontOption(pile,multiName,option){var multiFont=void 0;for(var n=0;n<pile.length;++n){var fontOptions=pile[n];if(fontOptions.hasOwnProperty(multiName)){multiFont=fontOptions[multiName];if(multiFont===undefined||multiFont===null)continue;var tmpShorthand={};if(Label.parseFontString(tmpShorthand,multiFont)){multiFont=tmpShorthand}if(multiFont.hasOwnProperty(option)){return multiFont[option]}}}if(this.fontOptions.hasOwnProperty(option)){return this.fontOptions[option]}throw new Error(\"Did not find value for multi-font for property: '\"+option+\"'\")}},{key:\"getFontOptions\",value:function getFontOptions(pile,multiName){var result={};var optionNames=[\"color\",\"size\",\"face\",\"mod\",\"vadjust\"];for(var i=0;i<optionNames.length;++i){var mod=optionNames[i];result[mod]=this.getFontOption(pile,multiName,mod)}return result}},{key:\"propagateFonts\",value:function propagateFonts(pile){var _this2=this;var fontPile=[];this.addFontOptionsToPile(fontPile,pile);this.fontOptions=this.getBasicOptions(fontPile);var _loop=function _loop(i){var mod=multiFontStyle[i];var modOptions=_this2.fontOptions[mod];var tmpMultiFontOptions=_this2.getFontOptions(fontPile,mod);util.forEach(tmpMultiFontOptions,function(option,n){modOptions[n]=option});modOptions.size=Number(modOptions.size);modOptions.vadjust=Number(modOptions.vadjust)};for(var i=0;i<multiFontStyle.length;++i){_loop(i)}}},{key:\"draw\",value:function draw(ctx,x,y,selected,hover){var baseline=arguments.length>5&&arguments[5]!==undefined?arguments[5]:\"middle\";if(this.elementOptions.label===undefined)return;var viewFontSize=this.fontOptions.size*this.body.view.scale;if(this.elementOptions.label&&viewFontSize<this.elementOptions.scaling.label.drawThreshold-1)return;if(viewFontSize>=this.elementOptions.scaling.label.maxVisible){viewFontSize=Number(this.elementOptions.scaling.label.maxVisible)/this.body.view.scale}this.calculateLabelSize(ctx,selected,hover,x,y,baseline);this._drawBackground(ctx);this._drawText(ctx,x,this.size.yLine,baseline,viewFontSize)}},{key:\"_drawBackground\",value:function _drawBackground(ctx){if(this.fontOptions.background!==undefined&&this.fontOptions.background!==\"none\"){ctx.fillStyle=this.fontOptions.background;var size=this.getSize();ctx.fillRect(size.left,size.top,size.width,size.height)}}},{key:\"_drawText\",value:function _drawText(ctx,x,y){var baseline=arguments.length>3&&arguments[3]!==undefined?arguments[3]:\"middle\";var viewFontSize=arguments[4];var _setAlignment2=this._setAlignment(ctx,x,y,baseline);var _setAlignment3=(0,_slicedToArray3[\"default\"])(_setAlignment2,2);x=_setAlignment3[0];y=_setAlignment3[1];ctx.textAlign=\"left\";x=x-this.size.width/2;if(this.fontOptions.valign&&this.size.height>this.size.labelHeight){if(this.fontOptions.valign===\"top\"){y-=(this.size.height-this.size.labelHeight)/2}if(this.fontOptions.valign===\"bottom\"){y+=(this.size.height-this.size.labelHeight)/2}}for(var i=0;i<this.lineCount;i++){var line=this.lines[i];if(line&&line.blocks){var width=0;if(this.isEdgeLabel||this.fontOptions.align===\"center\"){width+=(this.size.width-line.width)/2}else if(this.fontOptions.align===\"right\"){width+=this.size.width-line.width}for(var j=0;j<line.blocks.length;j++){var block=line.blocks[j];ctx.font=block.font;var _getColor2=this._getColor(block.color,viewFontSize,block.strokeColor),_getColor3=(0,_slicedToArray3[\"default\"])(_getColor2,2),fontColor=_getColor3[0],strokeColor=_getColor3[1];if(block.strokeWidth>0){ctx.lineWidth=block.strokeWidth;ctx.strokeStyle=strokeColor;ctx.lineJoin=\"round\"}ctx.fillStyle=fontColor;if(block.strokeWidth>0){ctx.strokeText(block.text,x+width,y+block.vadjust)}ctx.fillText(block.text,x+width,y+block.vadjust);width+=block.width}y+=line.height}}}},{key:\"_setAlignment\",value:function _setAlignment(ctx,x,y,baseline){if(this.isEdgeLabel&&this.fontOptions.align!==\"horizontal\"&&this.pointToSelf===false){x=0;y=0;var lineMargin=2;if(this.fontOptions.align===\"top\"){ctx.textBaseline=\"alphabetic\";y-=2*lineMargin}else if(this.fontOptions.align===\"bottom\"){ctx.textBaseline=\"hanging\";y+=2*lineMargin}else{ctx.textBaseline=\"middle\"}}else{ctx.textBaseline=baseline}return[x,y]}},{key:\"_getColor\",value:function _getColor(color,viewFontSize,initialStrokeColor){var fontColor=color||\"#000000\";var strokeColor=initialStrokeColor||\"#ffffff\";if(viewFontSize<=this.elementOptions.scaling.label.drawThreshold){var opacity=Math.max(0,Math.min(1,1-(this.elementOptions.scaling.label.drawThreshold-viewFontSize)));fontColor=util.overrideOpacity(fontColor,opacity);strokeColor=util.overrideOpacity(strokeColor,opacity)}return[fontColor,strokeColor]}},{key:\"getTextSize\",value:function getTextSize(ctx){var selected=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;var hover=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;this._processLabel(ctx,selected,hover);return{width:this.size.width,height:this.size.height,lineCount:this.lineCount}}},{key:\"getSize\",value:function getSize(){var lineMargin=2;var x=this.size.left;var y=this.size.top-.5*lineMargin;if(this.isEdgeLabel){var x2=-this.size.width*.5;switch(this.fontOptions.align){case\"middle\":x=x2;y=-this.size.height*.5;break;case\"top\":x=x2;y=-(this.size.height+lineMargin);break;case\"bottom\":x=x2;y=lineMargin;break}}var ret={left:x,top:y,width:this.size.width,height:this.size.height};return ret}},{key:\"calculateLabelSize\",value:function calculateLabelSize(ctx,selected,hover){var x=arguments.length>3&&arguments[3]!==undefined?arguments[3]:0;var y=arguments.length>4&&arguments[4]!==undefined?arguments[4]:0;var baseline=arguments.length>5&&arguments[5]!==undefined?arguments[5]:\"middle\";this._processLabel(ctx,selected,hover);this.size.left=x-this.size.width*.5;this.size.top=y-this.size.height*.5;this.size.yLine=y+(1-this.lineCount)*.5*this.fontOptions.size;if(baseline===\"hanging\"){this.size.top+=.5*this.fontOptions.size;this.size.top+=4;this.size.yLine+=4}}},{key:\"getFormattingValues\",value:function getFormattingValues(ctx,selected,hover,mod){var getValue=function getValue(fontOptions,mod,option){if(mod===\"normal\"){if(option===\"mod\")return\"\";return fontOptions[option]}if(fontOptions[mod][option]!==undefined){return fontOptions[mod][option]}else{return fontOptions[option]}};var values={color:getValue(this.fontOptions,mod,\"color\"),size:getValue(this.fontOptions,mod,\"size\"),face:getValue(this.fontOptions,mod,\"face\"),mod:getValue(this.fontOptions,mod,\"mod\"),vadjust:getValue(this.fontOptions,mod,\"vadjust\"),strokeWidth:this.fontOptions.strokeWidth,strokeColor:this.fontOptions.strokeColor};if(selected||hover){if(mod===\"normal\"&&this.fontOptions.chooser===true&&this.elementOptions.labelHighlightBold){values.mod=\"bold\"}else{if(typeof this.fontOptions.chooser===\"function\"){this.fontOptions.chooser(values,this.elementOptions.id,selected,hover)}}}var fontString=\"\";if(values.mod!==undefined&&values.mod!==\"\"){fontString+=values.mod+\" \"}fontString+=values.size+\"px \"+values.face;ctx.font=fontString.replace(/\"/g,\"\");values.font=ctx.font;values.height=values.size;return values}},{key:\"differentState\",value:function differentState(selected,hover){return selected!==this.selectedState||hover!==this.hoverState}},{key:\"_processLabelText\",value:function _processLabelText(ctx,selected,hover,inText){var splitter=new LabelSplitter(ctx,this,selected,hover);return splitter.process(inText)}},{key:\"_processLabel\",value:function _processLabel(ctx,selected,hover){if(this.labelDirty===false&&!this.differentState(selected,hover))return;var state=this._processLabelText(ctx,selected,hover,this.elementOptions.label);if(this.fontOptions.minWdt>0&&state.width<this.fontOptions.minWdt){state.width=this.fontOptions.minWdt}this.size.labelHeight=state.height;if(this.fontOptions.minHgt>0&&state.height<this.fontOptions.minHgt){state.height=this.fontOptions.minHgt}this.lines=state.lines;this.lineCount=state.lines.length;this.size.width=state.width;this.size.height=state.height;this.selectedState=selected;this.hoverState=hover;this.labelDirty=false}},{key:\"visible\",value:function visible(){if(this.size.width===0||this.size.height===0||this.elementOptions.label===undefined){return false}var viewFontSize=this.fontOptions.size*this.body.view.scale;if(viewFontSize<this.elementOptions.scaling.label.drawThreshold-1){return false}return true}}],[{key:\"parseFontString\",value:function parseFontString(outOptions,inOptions){if(!inOptions||typeof inOptions!==\"string\")return false;var newOptionsArray=inOptions.split(\" \");outOptions.size=newOptionsArray[0].replace(\"px\",\"\");outOptions.face=newOptionsArray[1];outOptions.color=newOptionsArray[2];return true}}]);return Label}();exports[\"default\"]=Label},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _slicedToArray2=__webpack_require__(30);var _slicedToArray3=_interopRequireDefault(_slicedToArray2);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var EndPoints=__webpack_require__(119)[\"default\"];var EdgeBase=function(){function EdgeBase(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,EdgeBase);this.body=body;this.labelModule=labelModule\n;this.options={};this.setOptions(options);this.colorDirty=true;this.color={};this.selectionWidth=2;this.hoverWidth=1.5;this.fromPoint=this.from;this.toPoint=this.to}(0,_createClass3[\"default\"])(EdgeBase,[{key:\"connect\",value:function connect(){this.from=this.body.nodes[this.options.from];this.to=this.body.nodes[this.options.to]}},{key:\"cleanup\",value:function cleanup(){return false}},{key:\"setOptions\",value:function setOptions(options){this.options=options;this.from=this.body.nodes[this.options.from];this.to=this.body.nodes[this.options.to];this.id=this.options.id}},{key:\"drawLine\",value:function drawLine(ctx,values,selected,hover,viaNode){ctx.strokeStyle=this.getColor(ctx,values,selected,hover);ctx.lineWidth=values.width;if(values.dashes!==false){this._drawDashedLine(ctx,values,viaNode)}else{this._drawLine(ctx,values,viaNode)}}},{key:\"_drawLine\",value:function _drawLine(ctx,values,viaNode,fromPoint,toPoint){if(this.from!=this.to){this._line(ctx,values,viaNode,fromPoint,toPoint)}else{var _getCircleData2=this._getCircleData(ctx),_getCircleData3=(0,_slicedToArray3[\"default\"])(_getCircleData2,3),x=_getCircleData3[0],y=_getCircleData3[1],radius=_getCircleData3[2];this._circle(ctx,values,x,y,radius)}}},{key:\"_drawDashedLine\",value:function _drawDashedLine(ctx,values,viaNode,fromPoint,toPoint){ctx.lineCap=\"round\";var pattern=[5,5];if(Array.isArray(values.dashes)===true){pattern=values.dashes}if(ctx.setLineDash!==undefined){ctx.save();ctx.setLineDash(pattern);ctx.lineDashOffset=0;if(this.from!=this.to){this._line(ctx,values,viaNode)}else{var _getCircleData4=this._getCircleData(ctx),_getCircleData5=(0,_slicedToArray3[\"default\"])(_getCircleData4,3),x=_getCircleData5[0],y=_getCircleData5[1],radius=_getCircleData5[2];this._circle(ctx,values,x,y,radius)}ctx.setLineDash([0]);ctx.lineDashOffset=0;ctx.restore()}else{if(this.from!=this.to){ctx.dashedLine(this.from.x,this.from.y,this.to.x,this.to.y,pattern)}else{var _getCircleData6=this._getCircleData(ctx),_getCircleData7=(0,_slicedToArray3[\"default\"])(_getCircleData6,3),_x=_getCircleData7[0],_y=_getCircleData7[1],_radius=_getCircleData7[2];this._circle(ctx,values,_x,_y,_radius)}this.enableShadow(ctx,values);ctx.stroke();this.disableShadow(ctx,values)}}},{key:\"findBorderPosition\",value:function findBorderPosition(nearNode,ctx,options){if(this.from!=this.to){return this._findBorderPosition(nearNode,ctx,options)}else{return this._findBorderPositionCircle(nearNode,ctx,options)}}},{key:\"findBorderPositions\",value:function findBorderPositions(ctx){var from={};var to={};if(this.from!=this.to){from=this._findBorderPosition(this.from,ctx);to=this._findBorderPosition(this.to,ctx)}else{var _getCircleData$slice=this._getCircleData(ctx).slice(0,2),_getCircleData$slice2=(0,_slicedToArray3[\"default\"])(_getCircleData$slice,2),x=_getCircleData$slice2[0],y=_getCircleData$slice2[1];from=this._findBorderPositionCircle(this.from,ctx,{x:x,y:y,low:.25,high:.6,direction:-1});to=this._findBorderPositionCircle(this.from,ctx,{x:x,y:y,low:.6,high:.8,direction:1})}return{from:from,to:to}}},{key:\"_getCircleData\",value:function _getCircleData(ctx){var x=void 0,y=void 0;var node=this.from;var radius=this.options.selfReferenceSize;if(ctx!==undefined){if(node.shape.width===undefined){node.shape.resize(ctx)}}if(node.shape.width>node.shape.height){x=node.x+node.shape.width*.5;y=node.y-radius}else{x=node.x+radius;y=node.y-node.shape.height*.5}return[x,y,radius]}},{key:\"_pointOnCircle\",value:function _pointOnCircle(x,y,radius,percentage){var angle=percentage*2*Math.PI;return{x:x+radius*Math.cos(angle),y:y-radius*Math.sin(angle)}}},{key:\"_findBorderPositionCircle\",value:function _findBorderPositionCircle(node,ctx,options){var x=options.x;var y=options.y;var low=options.low;var high=options.high;var direction=options.direction;var maxIterations=10;var iteration=0;var radius=this.options.selfReferenceSize;var pos=void 0,angle=void 0,distanceToBorder=void 0,distanceToPoint=void 0,difference=void 0;var threshold=.05;var middle=(low+high)*.5;while(low<=high&&iteration<maxIterations){middle=(low+high)*.5;pos=this._pointOnCircle(x,y,radius,middle);angle=Math.atan2(node.y-pos.y,node.x-pos.x);distanceToBorder=node.distanceToBorder(ctx,angle);distanceToPoint=Math.sqrt(Math.pow(pos.x-node.x,2)+Math.pow(pos.y-node.y,2));difference=distanceToBorder-distanceToPoint;if(Math.abs(difference)<threshold){break}else if(difference>0){if(direction>0){low=middle}else{high=middle}}else{if(direction>0){high=middle}else{low=middle}}iteration++}pos.t=middle;return pos}},{key:\"getLineWidth\",value:function getLineWidth(selected,hover){if(selected===true){return Math.max(this.selectionWidth,.3/this.body.view.scale)}else{if(hover===true){return Math.max(this.hoverWidth,.3/this.body.view.scale)}else{return Math.max(this.options.width,.3/this.body.view.scale)}}}},{key:\"getColor\",value:function getColor(ctx,values,selected,hover){if(values.inheritsColor!==false){if(values.inheritsColor===\"both\"&&this.from.id!==this.to.id){var grd=ctx.createLinearGradient(this.from.x,this.from.y,this.to.x,this.to.y);var fromColor=void 0,toColor=void 0;fromColor=this.from.options.color.highlight.border;toColor=this.to.options.color.highlight.border;if(this.from.selected===false&&this.to.selected===false){fromColor=util.overrideOpacity(this.from.options.color.border,values.opacity);toColor=util.overrideOpacity(this.to.options.color.border,values.opacity)}else if(this.from.selected===true&&this.to.selected===false){toColor=this.to.options.color.border}else if(this.from.selected===false&&this.to.selected===true){fromColor=this.from.options.color.border}grd.addColorStop(0,fromColor);grd.addColorStop(1,toColor);return grd}if(values.inheritsColor===\"to\"){return util.overrideOpacity(this.to.options.color.border,values.opacity)}else{return util.overrideOpacity(this.from.options.color.border,values.opacity)}}else{return util.overrideOpacity(values.color,values.opacity)}}},{key:\"_circle\",value:function _circle(ctx,values,x,y,radius){this.enableShadow(ctx,values);ctx.beginPath();ctx.arc(x,y,radius,0,2*Math.PI,false);ctx.stroke();this.disableShadow(ctx,values)}},{key:\"getDistanceToEdge\",value:function getDistanceToEdge(x1,y1,x2,y2,x3,y3,via,values){var returnValue=0;if(this.from!=this.to){returnValue=this._getDistanceToEdge(x1,y1,x2,y2,x3,y3,via)}else{var _getCircleData8=this._getCircleData(undefined),_getCircleData9=(0,_slicedToArray3[\"default\"])(_getCircleData8,3),x=_getCircleData9[0],y=_getCircleData9[1],radius=_getCircleData9[2];var dx=x-x3;var dy=y-y3;returnValue=Math.abs(Math.sqrt(dx*dx+dy*dy)-radius)}return returnValue}},{key:\"_getDistanceToLine\",value:function _getDistanceToLine(x1,y1,x2,y2,x3,y3){var px=x2-x1;var py=y2-y1;var something=px*px+py*py;var u=((x3-x1)*px+(y3-y1)*py)/something;if(u>1){u=1}else if(u<0){u=0}var x=x1+u*px;var y=y1+u*py;var dx=x-x3;var dy=y-y3;return Math.sqrt(dx*dx+dy*dy)}},{key:\"getArrowData\",value:function getArrowData(ctx,position,viaNode,selected,hover,values){var angle=void 0;var arrowPoint=void 0;var node1=void 0;var node2=void 0;var guideOffset=void 0;var scaleFactor=void 0;var type=void 0;var lineWidth=values.width;if(position===\"from\"){node1=this.from;node2=this.to;guideOffset=.1;scaleFactor=values.fromArrowScale;type=values.fromArrowType}else if(position===\"to\"){node1=this.to;node2=this.from;guideOffset=-.1;scaleFactor=values.toArrowScale;type=values.toArrowType}else{node1=this.to;node2=this.from;scaleFactor=values.middleArrowScale;type=values.middleArrowType}if(node1!=node2){if(position!==\"middle\"){if(this.options.smooth.enabled===true){arrowPoint=this.findBorderPosition(node1,ctx,{via:viaNode});var guidePos=this.getPoint(Math.max(0,Math.min(1,arrowPoint.t+guideOffset)),viaNode);angle=Math.atan2(arrowPoint.y-guidePos.y,arrowPoint.x-guidePos.x)}else{angle=Math.atan2(node1.y-node2.y,node1.x-node2.x);arrowPoint=this.findBorderPosition(node1,ctx)}}else{angle=Math.atan2(node1.y-node2.y,node1.x-node2.x);arrowPoint=this.getPoint(.5,viaNode)}}else{var _getCircleData10=this._getCircleData(ctx),_getCircleData11=(0,_slicedToArray3[\"default\"])(_getCircleData10,3),x=_getCircleData11[0],y=_getCircleData11[1],radius=_getCircleData11[2];if(position===\"from\"){arrowPoint=this.findBorderPosition(this.from,ctx,{x:x,y:y,low:.25,high:.6,direction:-1});angle=arrowPoint.t*-2*Math.PI+1.5*Math.PI+.1*Math.PI}else if(position===\"to\"){arrowPoint=this.findBorderPosition(this.from,ctx,{x:x,y:y,low:.6,high:1,direction:1});angle=arrowPoint.t*-2*Math.PI+1.5*Math.PI-1.1*Math.PI}else{arrowPoint=this._pointOnCircle(x,y,radius,.175);angle=3.9269908169872414}}if(position===\"middle\"&&scaleFactor<0)lineWidth*=-1;var length=15*scaleFactor+3*lineWidth;var xi=arrowPoint.x-length*.9*Math.cos(angle);var yi=arrowPoint.y-length*.9*Math.sin(angle);var arrowCore={x:xi,y:yi};return{point:arrowPoint,core:arrowCore,angle:angle,length:length,type:type}}},{key:\"drawArrowHead\",value:function drawArrowHead(ctx,values,selected,hover,arrowData){ctx.strokeStyle=this.getColor(ctx,values,selected,hover);ctx.fillStyle=ctx.strokeStyle;ctx.lineWidth=values.width;EndPoints.draw(ctx,arrowData);this.enableShadow(ctx,values);ctx.fill();this.disableShadow(ctx,values)}},{key:\"enableShadow\",value:function enableShadow(ctx,values){if(values.shadow===true){ctx.shadowColor=values.shadowColor;ctx.shadowBlur=values.shadowSize;ctx.shadowOffsetX=values.shadowX;ctx.shadowOffsetY=values.shadowY}}},{key:\"disableShadow\",value:function disableShadow(ctx,values){if(values.shadow===true){ctx.shadowColor=\"rgba(0,0,0,0)\";ctx.shadowBlur=0;ctx.shadowOffsetX=0;ctx.shadowOffsetY=0}}}]);return EdgeBase}();exports[\"default\"]=EdgeBase},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var EndPoint=function(){function EndPoint(){(0,_classCallCheck3[\"default\"])(this,EndPoint)}(0,_createClass3[\"default\"])(EndPoint,null,[{key:\"transform\",value:function transform(points,arrowData){if(!(points instanceof Array)){points=[points]}var x=arrowData.point.x;var y=arrowData.point.y;var angle=arrowData.angle;var length=arrowData.length;for(var i=0;i<points.length;++i){var p=points[i];var xt=p.x*Math.cos(angle)-p.y*Math.sin(angle);var yt=p.x*Math.sin(angle)+p.y*Math.cos(angle);p.x=x+length*xt;p.y=y+length*yt}}},{key:\"drawPath\",value:function drawPath(ctx,points){ctx.beginPath();ctx.moveTo(points[0].x,points[0].y);for(var i=1;i<points.length;++i){ctx.lineTo(points[i].x,points[i].y)}ctx.closePath()}}]);return EndPoint}();var Arrow=function(_EndPoint){(0,_inherits3[\"default\"])(Arrow,_EndPoint);function Arrow(){(0,_classCallCheck3[\"default\"])(this,Arrow);return(0,_possibleConstructorReturn3[\"default\"])(this,(Arrow.__proto__||(0,_getPrototypeOf2[\"default\"])(Arrow)).apply(this,arguments))}(0,_createClass3[\"default\"])(Arrow,null,[{key:\"draw\",value:function draw(ctx,arrowData){var points=[{x:0,y:0},{x:-1,y:.3},{x:-.9,y:0},{x:-1,y:-.3}];EndPoint.transform(points,arrowData);EndPoint.drawPath(ctx,points)}}]);return Arrow}(EndPoint);var Circle=function(){function Circle(){(0,_classCallCheck3[\"default\"])(this,Circle)}(0,_createClass3[\"default\"])(Circle,null,[{key:\"draw\",value:function draw(ctx,arrowData){var point={x:-.4,y:0};EndPoint.transform(point,arrowData);ctx.circle(point.x,point.y,arrowData.length*.4)}}]);return Circle}();var Bar=function(){function Bar(){(0,_classCallCheck3[\"default\"])(this,Bar)}(0,_createClass3[\"default\"])(Bar,null,[{key:\"draw\",value:function draw(ctx,arrowData){var points=[{x:0,y:.5},{x:0,y:-.5},{x:-.15,y:-.5},{x:-.15,y:.5}];EndPoint.transform(points,arrowData);EndPoint.drawPath(ctx,points)}}]);return Bar}();var EndPoints=function(){function EndPoints(){(0,_classCallCheck3[\"default\"])(this,EndPoints)}(0,_createClass3[\"default\"])(EndPoints,null,[{key:\"draw\",value:function draw(ctx,arrowData){var type;if(arrowData.type){type=arrowData.type.toLowerCase()}switch(type){case\"circle\":Circle.draw(ctx,arrowData);break;case\"bar\":Bar.draw(ctx,arrowData);break;case\"arrow\":default:Arrow.draw(ctx,arrowData)}}}]);return EndPoints}();exports[\"default\"]=EndPoints},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var BarnesHutSolver=function(){function BarnesHutSolver(body,physicsBody,options){(0,_classCallCheck3[\"default\"])(this,BarnesHutSolver);this.body=body;this.physicsBody=physicsBody;this.barnesHutTree;this.setOptions(options);this.randomSeed=5}(0,_createClass3[\"default\"])(BarnesHutSolver,[{key:\"setOptions\",value:function setOptions(options){this.options=options;this.thetaInversed=1/this.options.theta;this.overlapAvoidanceFactor=1-Math.max(0,Math.min(1,this.options.avoidOverlap))}},{key:\"seededRandom\",value:function seededRandom(){var x=Math.sin(this.randomSeed++)*1e4;return x-Math.floor(x)}},{key:\"solve\",value:function solve(){if(this.options.gravitationalConstant!==0&&this.physicsBody.physicsNodeIndices.length>0){var node=void 0;var nodes=this.body.nodes;var nodeIndices=this.physicsBody.physicsNodeIndices;var nodeCount=nodeIndices.length;var barnesHutTree=this._formBarnesHutTree(nodes,nodeIndices);this.barnesHutTree=barnesHutTree;for(var i=0;i<nodeCount;i++){node=nodes[nodeIndices[i]];if(node.options.mass>0){this._getForceContributions(barnesHutTree.root,node)}}}}},{key:\"_getForceContributions\",value:function _getForceContributions(parentBranch,node){this._getForceContribution(parentBranch.children.NW,node);this._getForceContribution(parentBranch.children.NE,node);this._getForceContribution(parentBranch.children.SW,node);this._getForceContribution(parentBranch.children.SE,node)}},{key:\"_getForceContribution\",value:function _getForceContribution(parentBranch,node){if(parentBranch.childrenCount>0){var dx=void 0,dy=void 0,distance=void 0;dx=parentBranch.centerOfMass.x-node.x;dy=parentBranch.centerOfMass.y-node.y;distance=Math.sqrt(dx*dx+dy*dy);if(distance*parentBranch.calcSize>this.thetaInversed){this._calculateForces(distance,dx,dy,node,parentBranch)}else{if(parentBranch.childrenCount===4){this._getForceContributions(parentBranch,node)}else{if(parentBranch.children.data.id!=node.id){this._calculateForces(distance,dx,dy,node,parentBranch)}}}}}},{key:\"_calculateForces\",value:function _calculateForces(distance,dx,dy,node,parentBranch){if(distance===0){distance=.1;dx=distance}if(this.overlapAvoidanceFactor<1&&node.shape.radius){distance=Math.max(.1+this.overlapAvoidanceFactor*node.shape.radius,distance-node.shape.radius)}var gravityForce=this.options.gravitationalConstant*parentBranch.mass*node.options.mass/Math.pow(distance,3);var fx=dx*gravityForce;var fy=dy*gravityForce;this.physicsBody.forces[node.id].x+=fx;this.physicsBody.forces[node.id].y+=fy}},{key:\"_formBarnesHutTree\",value:function _formBarnesHutTree(nodes,nodeIndices){var node=void 0;var nodeCount=nodeIndices.length;var minX=nodes[nodeIndices[0]].x;var minY=nodes[nodeIndices[0]].y;var maxX=nodes[nodeIndices[0]].x;var maxY=nodes[nodeIndices[0]].y;for(var i=1;i<nodeCount;i++){var _node=nodes[nodeIndices[i]];var x=_node.x;var y=_node.y;if(_node.options.mass>0){if(x<minX){minX=x}if(x>maxX){maxX=x}if(y<minY){minY=y}if(y>maxY){maxY=y}}}var sizeDiff=Math.abs(maxX-minX)-Math.abs(maxY-minY);if(sizeDiff>0){minY-=.5*sizeDiff;maxY+=.5*sizeDiff}else{minX+=.5*sizeDiff;maxX-=.5*sizeDiff}var minimumTreeSize=1e-5;var rootSize=Math.max(minimumTreeSize,Math.abs(maxX-minX));var halfRootSize=.5*rootSize;var centerX=.5*(minX+maxX),centerY=.5*(minY+maxY);var barnesHutTree={root:{centerOfMass:{x:0,y:0},mass:0,range:{minX:centerX-halfRootSize,maxX:centerX+halfRootSize,minY:centerY-halfRootSize,maxY:centerY+halfRootSize},size:rootSize,calcSize:1/rootSize,children:{data:null},maxWidth:0,level:0,childrenCount:4}};this._splitBranch(barnesHutTree.root);for(var _i=0;_i<nodeCount;_i++){node=nodes[nodeIndices[_i]];if(node.options.mass>0){this._placeInTree(barnesHutTree.root,node)}}return barnesHutTree}},{key:\"_updateBranchMass\",value:function _updateBranchMass(parentBranch,node){var centerOfMass=parentBranch.centerOfMass;var totalMass=parentBranch.mass+node.options.mass;var totalMassInv=1/totalMass;centerOfMass.x=centerOfMass.x*parentBranch.mass+node.x*node.options.mass;centerOfMass.x*=totalMassInv;centerOfMass.y=centerOfMass.y*parentBranch.mass+node.y*node.options.mass;centerOfMass.y*=totalMassInv;parentBranch.mass=totalMass;var biggestSize=Math.max(Math.max(node.height,node.radius),node.width);parentBranch.maxWidth=parentBranch.maxWidth<biggestSize?biggestSize:parentBranch.maxWidth}},{key:\"_placeInTree\",value:function _placeInTree(parentBranch,node,skipMassUpdate){if(skipMassUpdate!=true||skipMassUpdate===undefined){this._updateBranchMass(parentBranch,node)}var range=parentBranch.children.NW.range;var region=void 0;if(range.maxX>node.x){if(range.maxY>node.y){region=\"NW\"}else{region=\"SW\"}}else{if(range.maxY>node.y){region=\"NE\"}else{region=\"SE\"}}this._placeInRegion(parentBranch,node,region)}},{key:\"_placeInRegion\",value:function _placeInRegion(parentBranch,node,region){var children=parentBranch.children[region];switch(children.childrenCount){case 0:children.children.data=node;children.childrenCount=1;this._updateBranchMass(children,node);break;case 1:if(children.children.data.x===node.x&&children.children.data.y===node.y){node.x+=this.seededRandom();node.y+=this.seededRandom()}else{this._splitBranch(children);this._placeInTree(children,node)}break;case 4:this._placeInTree(children,node);break}}},{key:\"_splitBranch\",value:function _splitBranch(parentBranch){var containedNode=null;if(parentBranch.childrenCount===1){containedNode=parentBranch.children.data;parentBranch.mass=0;parentBranch.centerOfMass.x=0;parentBranch.centerOfMass.y=0}parentBranch.childrenCount=4;parentBranch.children.data=null;this._insertRegion(parentBranch,\"NW\");this._insertRegion(parentBranch,\"NE\");this._insertRegion(parentBranch,\"SW\");this._insertRegion(parentBranch,\"SE\");if(containedNode!=null){this._placeInTree(parentBranch,containedNode)}}},{key:\"_insertRegion\",value:function _insertRegion(parentBranch,region){var minX=void 0,maxX=void 0,minY=void 0,maxY=void 0;var childSize=.5*parentBranch.size;switch(region){case\"NW\":minX=parentBranch.range.minX;maxX=parentBranch.range.minX+childSize;minY=parentBranch.range.minY;maxY=parentBranch.range.minY+childSize;break;case\"NE\":minX=parentBranch.range.minX+childSize;maxX=parentBranch.range.maxX;minY=parentBranch.range.minY;maxY=parentBranch.range.minY+childSize;break;case\"SW\":minX=parentBranch.range.minX;maxX=parentBranch.range.minX+childSize;minY=parentBranch.range.minY+childSize;maxY=parentBranch.range.maxY;break;case\"SE\":minX=parentBranch.range.minX+childSize;maxX=parentBranch.range.maxX;minY=parentBranch.range.minY+childSize;maxY=parentBranch.range.maxY;break}parentBranch.children[region]={centerOfMass:{x:0,y:0},mass:0,range:{minX:minX,maxX:maxX,minY:minY,maxY:maxY},size:.5*parentBranch.size,calcSize:2*parentBranch.calcSize,children:{data:null},maxWidth:0,level:parentBranch.level+1,childrenCount:0}}},{key:\"_debug\",value:function _debug(ctx,color){if(this.barnesHutTree!==undefined){ctx.lineWidth=1;this._drawBranch(this.barnesHutTree.root,ctx,color)}}},{key:\"_drawBranch\",value:function _drawBranch(branch,ctx,color){if(color===undefined){color=\"#FF0000\"}if(branch.childrenCount===4){this._drawBranch(branch.children.NW,ctx);this._drawBranch(branch.children.NE,ctx);this._drawBranch(branch.children.SE,ctx);this._drawBranch(branch.children.SW,ctx)}ctx.strokeStyle=color;ctx.beginPath();ctx.moveTo(branch.range.minX,branch.range.minY);ctx.lineTo(branch.range.maxX,branch.range.minY);ctx.stroke();ctx.beginPath();ctx.moveTo(branch.range.maxX,branch.range.minY);ctx.lineTo(branch.range.maxX,branch.range.maxY);ctx.stroke();ctx.beginPath();ctx.moveTo(branch.range.maxX,branch.range.maxY);ctx.lineTo(branch.range.minX,branch.range.maxY);ctx.stroke();ctx.beginPath();ctx.moveTo(branch.range.minX,branch.range.maxY);ctx.lineTo(branch.range.minX,branch.range.minY);ctx.stroke()}}]);return BarnesHutSolver}();exports[\"default\"]=BarnesHutSolver},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var CentralGravitySolver=function(){function CentralGravitySolver(body,physicsBody,options){(0,_classCallCheck3[\"default\"])(this,CentralGravitySolver);this.body=body;this.physicsBody=physicsBody;this.setOptions(options)}(0,_createClass3[\"default\"])(CentralGravitySolver,[{key:\"setOptions\",value:function setOptions(options){this.options=options}},{key:\"solve\",value:function solve(){var dx=void 0,dy=void 0,distance=void 0,node=void 0;var nodes=this.body.nodes;var nodeIndices=this.physicsBody.physicsNodeIndices;var forces=this.physicsBody.forces;for(var i=0;i<nodeIndices.length;i++){var nodeId=nodeIndices[i];node=nodes[nodeId];dx=-node.x;dy=-node.y;distance=Math.sqrt(dx*dx+dy*dy);this._calculateForces(distance,dx,dy,forces,node)}}},{key:\"_calculateForces\",value:function _calculateForces(distance,dx,dy,forces,node){var gravityForce=distance===0?0:this.options.centralGravity/distance;forces[node.id].x=dx*gravityForce;forces[node.id].y=dy*gravityForce}}]);return CentralGravitySolver}();exports[\"default\"]=CentralGravitySolver},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var string=\"string\";var bool=\"boolean\";var number=\"number\";var array=\"array\";var object=\"object\";var dom=\"dom\";var any=\"any\";var endPoints=[\"arrow\",\"circle\",\"bar\"];var allOptions={configure:{enabled:{boolean:bool},filter:{boolean:bool,string:string,array:array,function:\"function\"},container:{dom:dom},showButton:{boolean:bool},__type__:{object:object,boolean:bool,string:string,array:array,function:\"function\"}},edges:{arrows:{to:{enabled:{boolean:bool},scaleFactor:{number:number},type:{string:endPoints},__type__:{object:object,boolean:bool}},middle:{enabled:{boolean:bool},scaleFactor:{number:number},type:{string:endPoints},__type__:{object:object,boolean:bool}},from:{enabled:{boolean:bool},scaleFactor:{number:number},type:{string:endPoints},__type__:{object:object,boolean:bool}},__type__:{string:[\"from\",\"to\",\"middle\"],object:object}},arrowStrikethrough:{boolean:bool},chosen:{label:{boolean:bool,function:\"function\"},edge:{boolean:bool,function:\"function\"},__type__:{object:object,boolean:bool}},color:{color:{string:string},highlight:{string:string},hover:{string:string},inherit:{string:[\"from\",\"to\",\"both\"],boolean:bool},opacity:{number:number},__type__:{object:object,string:string}},dashes:{boolean:bool,array:array},font:{color:{string:string},size:{number:number},face:{string:string},background:{string:string},strokeWidth:{number:number},strokeColor:{string:string},align:{string:[\"horizontal\",\"top\",\"middle\",\"bottom\"]},vadjust:{number:number},multi:{boolean:bool,string:string},bold:{color:{string:string},size:{number:number},face:{string:string},mod:{string:string},vadjust:{number:number},__type__:{object:object,string:string}},boldital:{color:{string:string},size:{number:number},face:{string:string},mod:{string:string},vadjust:{number:number},__type__:{object:object,string:string}},ital:{color:{string:string},size:{number:number},face:{string:string},mod:{string:string},vadjust:{number:number},__type__:{object:object,string:string}},mono:{color:{string:string},size:{number:number},face:{string:string},mod:{string:string},vadjust:{number:number},__type__:{object:object,string:string}},__type__:{object:object,string:string}},hidden:{boolean:bool},hoverWidth:{function:\"function\",number:number},label:{string:string,undefined:\"undefined\"},labelHighlightBold:{boolean:bool},length:{number:number,undefined:\"undefined\"},physics:{boolean:bool},scaling:{min:{number:number},max:{number:number},label:{enabled:{boolean:bool},min:{number:number},max:{number:number},maxVisible:{number:number},drawThreshold:{number:number},__type__:{object:object,boolean:bool}},customScalingFunction:{function:\"function\"},__type__:{object:object}},selectionWidth:{function:\"function\",number:number},selfReferenceSize:{number:number},shadow:{enabled:{boolean:bool},color:{string:string},size:{number:number},x:{number:number},y:{number:number},__type__:{object:object,boolean:bool}},smooth:{enabled:{boolean:bool},type:{string:[\"dynamic\",\"continuous\",\"discrete\",\"diagonalCross\",\"straightCross\",\"horizontal\",\"vertical\",\"curvedCW\",\"curvedCCW\",\"cubicBezier\"]},roundness:{number:number},forceDirection:{string:[\"horizontal\",\"vertical\",\"none\"],boolean:bool},__type__:{object:object,boolean:bool}},title:{string:string,undefined:\"undefined\"},width:{number:number},widthConstraint:{maximum:{number:number},__type__:{object:object,boolean:bool,number:number}},value:{number:number,undefined:\"undefined\"},__type__:{object:object}},groups:{useDefaultGroups:{boolean:bool},__any__:\"get from nodes, will be overwritten below\",__type__:{object:object}},interaction:{dragNodes:{boolean:bool},dragView:{boolean:bool},hideEdgesOnDrag:{boolean:bool},hideNodesOnDrag:{boolean:bool},hover:{boolean:bool},keyboard:{enabled:{boolean:bool},speed:{x:{number:number},y:{number:number},zoom:{number:number},__type__:{object:object}},bindToWindow:{boolean:bool},__type__:{object:object,boolean:bool}},multiselect:{boolean:bool},navigationButtons:{boolean:bool},selectable:{boolean:bool},selectConnectedEdges:{boolean:bool},hoverConnectedEdges:{boolean:bool},tooltipDelay:{number:number},zoomView:{boolean:bool},__type__:{object:object}},layout:{randomSeed:{undefined:\"undefined\",number:number},improvedLayout:{boolean:bool},hierarchical:{enabled:{boolean:bool},levelSeparation:{number:number},nodeSpacing:{number:number},treeSpacing:{number:number},blockShifting:{boolean:bool},edgeMinimization:{boolean:bool},parentCentralization:{boolean:bool},direction:{string:[\"UD\",\"DU\",\"LR\",\"RL\"]},sortMethod:{string:[\"hubsize\",\"directed\"]},__type__:{object:object,boolean:bool}},__type__:{object:object}},manipulation:{enabled:{boolean:bool},initiallyActive:{boolean:bool},addNode:{boolean:bool,function:\"function\"},addEdge:{boolean:bool,function:\"function\"},editNode:{function:\"function\"},editEdge:{editWithoutDrag:{function:\"function\"},__type__:{object:object,boolean:bool,function:\"function\"}},deleteNode:{boolean:bool,function:\"function\"},deleteEdge:{boolean:bool,function:\"function\"},controlNodeStyle:\"get from nodes, will be overwritten below\",__type__:{object:object,boolean:bool}},nodes:{borderWidth:{number:number},borderWidthSelected:{number:number,undefined:\"undefined\"},brokenImage:{string:string,undefined:\"undefined\"},chosen:{label:{boolean:bool,function:\"function\"},node:{boolean:bool,function:\"function\"},__type__:{object:object,boolean:bool}},color:{border:{string:string},background:{string:string},highlight:{border:{string:string},background:{string:string},__type__:{object:object,string:string}},hover:{border:{string:string},background:{string:string},__type__:{object:object,string:string}},__type__:{object:object,string:string}},fixed:{x:{boolean:bool},y:{boolean:bool},__type__:{object:object,boolean:bool}},font:{align:{string:string},color:{string:string},size:{number:number},face:{string:string},background:{string:string},strokeWidth:{number:number},strokeColor:{string:string},vadjust:{number:number},multi:{boolean:bool,string:string},bold:{color:{string:string},size:{number:number},face:{string:string},mod:{string:string},vadjust:{number:number},__type__:{object:object,string:string}},boldital:{color:{string:string},size:{number:number},face:{string:string},mod:{string:string},vadjust:{number:number},__type__:{object:object,string:string}},ital:{color:{string:string},size:{number:number},face:{string:string},mod:{string:string},vadjust:{number:number},__type__:{object:object,string:string}},mono:{color:{string:string},size:{number:number},face:{string:string},mod:{string:string},vadjust:{number:number},__type__:{object:object,string:string}},__type__:{object:object,string:string}},group:{string:string,number:number,undefined:\"undefined\"},heightConstraint:{minimum:{number:number},valign:{string:string},__type__:{object:object,boolean:bool,number:number}},hidden:{boolean:bool},icon:{face:{string:string},code:{string:string},size:{number:number},color:{string:string},__type__:{object:object}},id:{string:string,number:number},image:{selected:{string:string,undefined:\"undefined\"},unselected:{string:string,undefined:\"undefined\"},__type__:{object:object,string:string}},label:{string:string,undefined:\"undefined\"},labelHighlightBold:{boolean:bool},level:{number:number,undefined:\"undefined\"},margin:{top:{number:number},right:{number:number},bottom:{number:number},left:{number:number},__type__:{object:object,number:number}},mass:{number:number},physics:{boolean:bool},scaling:{min:{number:number},max:{number:number},label:{enabled:{boolean:bool},min:{number:number},max:{number:number},maxVisible:{number:number},drawThreshold:{number:number},__type__:{object:object,boolean:bool}},customScalingFunction:{function:\"function\"},__type__:{object:object}},shadow:{enabled:{boolean:bool},color:{string:string},size:{number:number},x:{number:number},y:{number:number},__type__:{object:object,boolean:bool}},shape:{string:[\"ellipse\",\"circle\",\"database\",\"box\",\"text\",\"image\",\"circularImage\",\"diamond\",\"dot\",\"star\",\"triangle\",\"triangleDown\",\"square\",\"icon\",\"hexagon\"]},shapeProperties:{borderDashes:{boolean:bool,array:array},borderRadius:{number:number},interpolation:{boolean:bool},useImageSize:{boolean:bool},useBorderWithImage:{boolean:bool},__type__:{object:object}},size:{number:number},title:{string:string,dom:dom,undefined:\"undefined\"},value:{number:number,undefined:\"undefined\"},widthConstraint:{minimum:{number:number},maximum:{number:number},__type__:{object:object,boolean:bool,number:number}},x:{number:number},y:{number:number},__type__:{object:object}},physics:{enabled:{boolean:bool},barnesHut:{gravitationalConstant:{number:number},centralGravity:{number:number},springLength:{number:number},springConstant:{number:number},damping:{number:number},avoidOverlap:{number:number},__type__:{object:object}},forceAtlas2Based:{gravitationalConstant:{number:number},centralGravity:{number:number},springLength:{number:number},springConstant:{number:number},damping:{number:number},avoidOverlap:{number:number},__type__:{object:object}},repulsion:{centralGravity:{number:number},springLength:{number:number},springConstant:{number:number},nodeDistance:{number:number},damping:{number:number},__type__:{object:object}},hierarchicalRepulsion:{centralGravity:{number:number},springLength:{number:number},springConstant:{number:number},nodeDistance:{number:number},damping:{number:number},__type__:{object:object}},maxVelocity:{number:number},minVelocity:{number:number},solver:{string:[\"barnesHut\",\"repulsion\",\"hierarchicalRepulsion\",\"forceAtlas2Based\"]},stabilization:{enabled:{boolean:bool},iterations:{number:number},updateInterval:{number:number},onlyDynamicEdges:{boolean:bool},\nfit:{boolean:bool},__type__:{object:object,boolean:bool}},timestep:{number:number},adaptiveTimestep:{boolean:bool},__type__:{object:object,boolean:bool}},autoResize:{boolean:bool},clickToUse:{boolean:bool},locale:{string:string},locales:{__any__:{any:any},__type__:{object:object}},height:{string:string},width:{string:string},__type__:{object:object}};allOptions.groups.__any__=allOptions.nodes;allOptions.manipulation.controlNodeStyle=allOptions.nodes;var configureOptions={nodes:{borderWidth:[1,0,10,1],borderWidthSelected:[2,0,10,1],color:{border:[\"color\",\"#2B7CE9\"],background:[\"color\",\"#97C2FC\"],highlight:{border:[\"color\",\"#2B7CE9\"],background:[\"color\",\"#D2E5FF\"]},hover:{border:[\"color\",\"#2B7CE9\"],background:[\"color\",\"#D2E5FF\"]}},fixed:{x:false,y:false},font:{color:[\"color\",\"#343434\"],size:[14,0,100,1],face:[\"arial\",\"verdana\",\"tahoma\"],background:[\"color\",\"none\"],strokeWidth:[0,0,50,1],strokeColor:[\"color\",\"#ffffff\"]},hidden:false,labelHighlightBold:true,physics:true,scaling:{min:[10,0,200,1],max:[30,0,200,1],label:{enabled:false,min:[14,0,200,1],max:[30,0,200,1],maxVisible:[30,0,200,1],drawThreshold:[5,0,20,1]}},shadow:{enabled:false,color:\"rgba(0,0,0,0.5)\",size:[10,0,20,1],x:[5,-30,30,1],y:[5,-30,30,1]},shape:[\"ellipse\",\"box\",\"circle\",\"database\",\"diamond\",\"dot\",\"square\",\"star\",\"text\",\"triangle\",\"triangleDown\",\"hexagon\"],shapeProperties:{borderDashes:false,borderRadius:[6,0,20,1],interpolation:true,useImageSize:false},size:[25,0,200,1]},edges:{arrows:{to:{enabled:false,scaleFactor:[1,0,3,.05],type:\"arrow\"},middle:{enabled:false,scaleFactor:[1,0,3,.05],type:\"arrow\"},from:{enabled:false,scaleFactor:[1,0,3,.05],type:\"arrow\"}},arrowStrikethrough:true,color:{color:[\"color\",\"#848484\"],highlight:[\"color\",\"#848484\"],hover:[\"color\",\"#848484\"],inherit:[\"from\",\"to\",\"both\",true,false],opacity:[1,0,1,.05]},dashes:false,font:{color:[\"color\",\"#343434\"],size:[14,0,100,1],face:[\"arial\",\"verdana\",\"tahoma\"],background:[\"color\",\"none\"],strokeWidth:[2,0,50,1],strokeColor:[\"color\",\"#ffffff\"],align:[\"horizontal\",\"top\",\"middle\",\"bottom\"]},hidden:false,hoverWidth:[1.5,0,5,.1],labelHighlightBold:true,physics:true,scaling:{min:[1,0,100,1],max:[15,0,100,1],label:{enabled:true,min:[14,0,200,1],max:[30,0,200,1],maxVisible:[30,0,200,1],drawThreshold:[5,0,20,1]}},selectionWidth:[1.5,0,5,.1],selfReferenceSize:[20,0,200,1],shadow:{enabled:false,color:\"rgba(0,0,0,0.5)\",size:[10,0,20,1],x:[5,-30,30,1],y:[5,-30,30,1]},smooth:{enabled:true,type:[\"dynamic\",\"continuous\",\"discrete\",\"diagonalCross\",\"straightCross\",\"horizontal\",\"vertical\",\"curvedCW\",\"curvedCCW\",\"cubicBezier\"],forceDirection:[\"horizontal\",\"vertical\",\"none\"],roundness:[.5,0,1,.05]},width:[1,0,30,1]},layout:{hierarchical:{enabled:false,levelSeparation:[150,20,500,5],nodeSpacing:[100,20,500,5],treeSpacing:[200,20,500,5],blockShifting:true,edgeMinimization:true,parentCentralization:true,direction:[\"UD\",\"DU\",\"LR\",\"RL\"],sortMethod:[\"hubsize\",\"directed\"]}},interaction:{dragNodes:true,dragView:true,hideEdgesOnDrag:false,hideNodesOnDrag:false,hover:false,keyboard:{enabled:false,speed:{x:[10,0,40,1],y:[10,0,40,1],zoom:[.02,0,.1,.005]},bindToWindow:true},multiselect:false,navigationButtons:false,selectable:true,selectConnectedEdges:true,hoverConnectedEdges:true,tooltipDelay:[300,0,1e3,25],zoomView:true},manipulation:{enabled:false,initiallyActive:false},physics:{enabled:true,barnesHut:{gravitationalConstant:[-2e3,-3e4,0,50],centralGravity:[.3,0,10,.05],springLength:[95,0,500,5],springConstant:[.04,0,1.2,.005],damping:[.09,0,1,.01],avoidOverlap:[0,0,1,.01]},forceAtlas2Based:{gravitationalConstant:[-50,-500,0,1],centralGravity:[.01,0,1,.005],springLength:[95,0,500,5],springConstant:[.08,0,1.2,.005],damping:[.4,0,1,.01],avoidOverlap:[0,0,1,.01]},repulsion:{centralGravity:[.2,0,10,.05],springLength:[200,0,500,5],springConstant:[.05,0,1.2,.005],nodeDistance:[100,0,500,5],damping:[.09,0,1,.01]},hierarchicalRepulsion:{centralGravity:[.2,0,10,.05],springLength:[100,0,500,5],springConstant:[.01,0,1.2,.005],nodeDistance:[120,0,500,5],damping:[.09,0,1,.01]},maxVelocity:[50,0,150,1],minVelocity:[.1,.01,.5,.01],solver:[\"barnesHut\",\"forceAtlas2Based\",\"repulsion\",\"hierarchicalRepulsion\"],timestep:[.5,.01,1,.01]}};exports.allOptions=allOptions;exports.configureOptions=configureOptions},function(module,exports,__webpack_require__){\"use strict\";var util=__webpack_require__(2);util.extend(exports,__webpack_require__(159));util.extend(exports,__webpack_require__(177));util.extend(exports,__webpack_require__(181))},function(module,exports,__webpack_require__){__webpack_require__(49);__webpack_require__(60);module.exports=__webpack_require__(136)},function(module,exports,__webpack_require__){\"use strict\";var addToUnscopables=__webpack_require__(126);var step=__webpack_require__(127);var Iterators=__webpack_require__(31);var toIObject=__webpack_require__(25);module.exports=__webpack_require__(79)(Array,\"Array\",function(iterated,kind){this._t=toIObject(iterated);this._i=0;this._k=kind},function(){var O=this._t;var kind=this._k;var index=this._i++;if(!O||index>=O.length){this._t=undefined;return step(1)}if(kind==\"keys\")return step(0,index);if(kind==\"values\")return step(0,O[index]);return step(0,[index,O[index]])},\"values\");Iterators.Arguments=Iterators.Array;addToUnscopables(\"keys\");addToUnscopables(\"values\");addToUnscopables(\"entries\")},function(module,exports){module.exports=function(){}},function(module,exports){module.exports=function(done,value){return{value:value,done:!!done}}},function(module,exports){module.exports=function(it){if(typeof it!=\"function\")throw TypeError(it+\" is not a function!\");return it}},function(module,exports,__webpack_require__){\"use strict\";var create=__webpack_require__(54);var descriptor=__webpack_require__(39);var setToStringTag=__webpack_require__(59);var IteratorPrototype={};__webpack_require__(26)(IteratorPrototype,__webpack_require__(13)(\"iterator\"),function(){return this});module.exports=function(Constructor,NAME,next){Constructor.prototype=create(IteratorPrototype,{next:descriptor(1,next)});setToStringTag(Constructor,NAME+\" Iterator\")}},function(module,exports,__webpack_require__){var dP=__webpack_require__(20);var anObject=__webpack_require__(27);var getKeys=__webpack_require__(33);module.exports=__webpack_require__(21)?Object.defineProperties:function defineProperties(O,Properties){anObject(O);var keys=getKeys(Properties);var length=keys.length;var i=0;var P;while(length>i)dP.f(O,P=keys[i++],Properties[P]);return O}},function(module,exports,__webpack_require__){var toIObject=__webpack_require__(25);var toLength=__webpack_require__(132);var toAbsoluteIndex=__webpack_require__(133);module.exports=function(IS_INCLUDES){return function($this,el,fromIndex){var O=toIObject($this);var length=toLength(O.length);var index=toAbsoluteIndex(fromIndex,length);var value;if(IS_INCLUDES&&el!=el)while(length>index){value=O[index++];if(value!=value)return true}else for(;length>index;index++)if(IS_INCLUDES||index in O){if(O[index]===el)return IS_INCLUDES||index||0}return!IS_INCLUDES&&-1}}},function(module,exports,__webpack_require__){var toInteger=__webpack_require__(55);var min=Math.min;module.exports=function(it){return it>0?min(toInteger(it),9007199254740991):0}},function(module,exports,__webpack_require__){var toInteger=__webpack_require__(55);var max=Math.max;var min=Math.min;module.exports=function(index,length){index=toInteger(index);return index<0?max(index+length,0):min(index,length)}},function(module,exports,__webpack_require__){var document=__webpack_require__(18).document;module.exports=document&&document.documentElement},function(module,exports,__webpack_require__){var toInteger=__webpack_require__(55);var defined=__webpack_require__(51);module.exports=function(TO_STRING){return function(that,pos){var s=String(defined(that));var i=toInteger(pos);var l=s.length;var a,b;if(i<0||i>=l)return TO_STRING?\"\":undefined;a=s.charCodeAt(i);return a<55296||a>56319||i+1===l||(b=s.charCodeAt(i+1))<56320||b>57343?TO_STRING?s.charAt(i):a:TO_STRING?s.slice(i,i+2):(a-55296<<10)+(b-56320)+65536}}},function(module,exports,__webpack_require__){var anObject=__webpack_require__(27);var get=__webpack_require__(137);module.exports=__webpack_require__(7).getIterator=function(it){var iterFn=get(it);if(typeof iterFn!=\"function\")throw TypeError(it+\" is not iterable!\");return anObject(iterFn.call(it))}},function(module,exports,__webpack_require__){var classof=__webpack_require__(86);var ITERATOR=__webpack_require__(13)(\"iterator\");var Iterators=__webpack_require__(31);module.exports=__webpack_require__(7).getIteratorMethod=function(it){if(it!=undefined)return it[ITERATOR]||it[\"@@iterator\"]||Iterators[classof(it)]}},function(module,exports,__webpack_require__){__webpack_require__(139);var $Object=__webpack_require__(7).Object;module.exports=function create(P,D){return $Object.create(P,D)}},function(module,exports,__webpack_require__){var $export=__webpack_require__(17);$export($export.S,\"Object\",{create:__webpack_require__(54)})},function(module,exports,__webpack_require__){__webpack_require__(141);module.exports=__webpack_require__(7).Object.keys},function(module,exports,__webpack_require__){var toObject=__webpack_require__(41);var $keys=__webpack_require__(33);__webpack_require__(87)(\"keys\",function(){return function keys(it){return $keys(toObject(it))}})},function(module,exports,__webpack_require__){module.exports={default:__webpack_require__(143),__esModule:true}},function(module,exports,__webpack_require__){__webpack_require__(60);__webpack_require__(49);module.exports=__webpack_require__(61).f(\"iterator\")},function(module,exports,__webpack_require__){module.exports={default:__webpack_require__(145),__esModule:true}},function(module,exports,__webpack_require__){__webpack_require__(146);__webpack_require__(151);__webpack_require__(152);__webpack_require__(153);module.exports=__webpack_require__(7).Symbol},function(module,exports,__webpack_require__){\"use strict\";var global=__webpack_require__(18);var has=__webpack_require__(22);var DESCRIPTORS=__webpack_require__(21);var $export=__webpack_require__(17);var redefine=__webpack_require__(83);var META=__webpack_require__(147).KEY;var $fails=__webpack_require__(28);var shared=__webpack_require__(57);var setToStringTag=__webpack_require__(59);var uid=__webpack_require__(40);var wks=__webpack_require__(13);var wksExt=__webpack_require__(61);var wksDefine=__webpack_require__(62);var enumKeys=__webpack_require__(148);var isArray=__webpack_require__(149);var anObject=__webpack_require__(27);var toIObject=__webpack_require__(25);var toPrimitive=__webpack_require__(53);var createDesc=__webpack_require__(39);var _create=__webpack_require__(54);var gOPNExt=__webpack_require__(150);var $GOPD=__webpack_require__(89);var $DP=__webpack_require__(20);var $keys=__webpack_require__(33);var gOPD=$GOPD.f;var dP=$DP.f;var gOPN=gOPNExt.f;var $Symbol=global.Symbol;var $JSON=global.JSON;var _stringify=$JSON&&$JSON.stringify;var PROTOTYPE=\"prototype\";var HIDDEN=wks(\"_hidden\");var TO_PRIMITIVE=wks(\"toPrimitive\");var isEnum={}.propertyIsEnumerable;var SymbolRegistry=shared(\"symbol-registry\");var AllSymbols=shared(\"symbols\");var OPSymbols=shared(\"op-symbols\");var ObjectProto=Object[PROTOTYPE];var USE_NATIVE=typeof $Symbol==\"function\";var QObject=global.QObject;var setter=!QObject||!QObject[PROTOTYPE]||!QObject[PROTOTYPE].findChild;var setSymbolDesc=DESCRIPTORS&&$fails(function(){return _create(dP({},\"a\",{get:function(){return dP(this,\"a\",{value:7}).a}})).a!=7})?function(it,key,D){var protoDesc=gOPD(ObjectProto,key);if(protoDesc)delete ObjectProto[key];dP(it,key,D);if(protoDesc&&it!==ObjectProto)dP(ObjectProto,key,protoDesc)}:dP;var wrap=function(tag){var sym=AllSymbols[tag]=_create($Symbol[PROTOTYPE]);sym._k=tag;return sym};var isSymbol=USE_NATIVE&&typeof $Symbol.iterator==\"symbol\"?function(it){return typeof it==\"symbol\"}:function(it){return it instanceof $Symbol};var $defineProperty=function defineProperty(it,key,D){if(it===ObjectProto)$defineProperty(OPSymbols,key,D);anObject(it);key=toPrimitive(key,true);anObject(D);if(has(AllSymbols,key)){if(!D.enumerable){if(!has(it,HIDDEN))dP(it,HIDDEN,createDesc(1,{}));it[HIDDEN][key]=true}else{if(has(it,HIDDEN)&&it[HIDDEN][key])it[HIDDEN][key]=false;D=_create(D,{enumerable:createDesc(0,false)})}return setSymbolDesc(it,key,D)}return dP(it,key,D)};var $defineProperties=function defineProperties(it,P){anObject(it);var keys=enumKeys(P=toIObject(P));var i=0;var l=keys.length;var key;while(l>i)$defineProperty(it,key=keys[i++],P[key]);return it};var $create=function create(it,P){return P===undefined?_create(it):$defineProperties(_create(it),P)};var $propertyIsEnumerable=function propertyIsEnumerable(key){var E=isEnum.call(this,key=toPrimitive(key,true));if(this===ObjectProto&&has(AllSymbols,key)&&!has(OPSymbols,key))return false;return E||!has(this,key)||!has(AllSymbols,key)||has(this,HIDDEN)&&this[HIDDEN][key]?E:true};var $getOwnPropertyDescriptor=function getOwnPropertyDescriptor(it,key){it=toIObject(it);key=toPrimitive(key,true);if(it===ObjectProto&&has(AllSymbols,key)&&!has(OPSymbols,key))return;var D=gOPD(it,key);if(D&&has(AllSymbols,key)&&!(has(it,HIDDEN)&&it[HIDDEN][key]))D.enumerable=true;return D};var $getOwnPropertyNames=function getOwnPropertyNames(it){var names=gOPN(toIObject(it));var result=[];var i=0;var key;while(names.length>i){if(!has(AllSymbols,key=names[i++])&&key!=HIDDEN&&key!=META)result.push(key)}return result};var $getOwnPropertySymbols=function getOwnPropertySymbols(it){var IS_OP=it===ObjectProto;var names=gOPN(IS_OP?OPSymbols:toIObject(it));var result=[];var i=0;var key;while(names.length>i){if(has(AllSymbols,key=names[i++])&&(IS_OP?has(ObjectProto,key):true))result.push(AllSymbols[key])}return result};if(!USE_NATIVE){$Symbol=function Symbol(){if(this instanceof $Symbol)throw TypeError(\"Symbol is not a constructor!\");var tag=uid(arguments.length>0?arguments[0]:undefined);var $set=function(value){if(this===ObjectProto)$set.call(OPSymbols,value);if(has(this,HIDDEN)&&has(this[HIDDEN],tag))this[HIDDEN][tag]=false;setSymbolDesc(this,tag,createDesc(1,value))};if(DESCRIPTORS&&setter)setSymbolDesc(ObjectProto,tag,{configurable:true,set:$set});return wrap(tag)};redefine($Symbol[PROTOTYPE],\"toString\",function toString(){return this._k});$GOPD.f=$getOwnPropertyDescriptor;$DP.f=$defineProperty;__webpack_require__(88).f=gOPNExt.f=$getOwnPropertyNames;__webpack_require__(42).f=$propertyIsEnumerable;__webpack_require__(63).f=$getOwnPropertySymbols;if(DESCRIPTORS&&!__webpack_require__(52)){redefine(ObjectProto,\"propertyIsEnumerable\",$propertyIsEnumerable,true)}wksExt.f=function(name){return wrap(wks(name))}}$export($export.G+$export.W+$export.F*!USE_NATIVE,{Symbol:$Symbol});for(var es6Symbols=\"hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables\".split(\",\"),j=0;es6Symbols.length>j;)wks(es6Symbols[j++]);for(var wellKnownSymbols=$keys(wks.store),k=0;wellKnownSymbols.length>k;)wksDefine(wellKnownSymbols[k++]);$export($export.S+$export.F*!USE_NATIVE,\"Symbol\",{for:function(key){return has(SymbolRegistry,key+=\"\")?SymbolRegistry[key]:SymbolRegistry[key]=$Symbol(key)},keyFor:function keyFor(sym){if(!isSymbol(sym))throw TypeError(sym+\" is not a symbol!\");for(var key in SymbolRegistry)if(SymbolRegistry[key]===sym)return key},useSetter:function(){setter=true},useSimple:function(){setter=false}});$export($export.S+$export.F*!USE_NATIVE,\"Object\",{create:$create,defineProperty:$defineProperty,defineProperties:$defineProperties,getOwnPropertyDescriptor:$getOwnPropertyDescriptor,getOwnPropertyNames:$getOwnPropertyNames,getOwnPropertySymbols:$getOwnPropertySymbols});$JSON&&$export($export.S+$export.F*(!USE_NATIVE||$fails(function(){var S=$Symbol();return _stringify([S])!=\"[null]\"||_stringify({a:S})!=\"{}\"||_stringify(Object(S))!=\"{}\"})),\"JSON\",{stringify:function stringify(it){if(it===undefined||isSymbol(it))return;var args=[it];var i=1;var replacer,$replacer;while(arguments.length>i)args.push(arguments[i++]);replacer=args[1];if(typeof replacer==\"function\")$replacer=replacer;if($replacer||!isArray(replacer))replacer=function(key,value){if($replacer)value=$replacer.call(this,key,value);if(!isSymbol(value))return value};args[1]=replacer;return _stringify.apply($JSON,args)}});$Symbol[PROTOTYPE][TO_PRIMITIVE]||__webpack_require__(26)($Symbol[PROTOTYPE],TO_PRIMITIVE,$Symbol[PROTOTYPE].valueOf);setToStringTag($Symbol,\"Symbol\");setToStringTag(Math,\"Math\",true);setToStringTag(global.JSON,\"JSON\",true)},function(module,exports,__webpack_require__){var META=__webpack_require__(40)(\"meta\");var isObject=__webpack_require__(32);var has=__webpack_require__(22);var setDesc=__webpack_require__(20).f;var id=0;var isExtensible=Object.isExtensible||function(){return true};var FREEZE=!__webpack_require__(28)(function(){return isExtensible(Object.preventExtensions({}))});var setMeta=function(it){setDesc(it,META,{value:{i:\"O\"+ ++id,w:{}}})};var fastKey=function(it,create){if(!isObject(it))return typeof it==\"symbol\"?it:(typeof it==\"string\"?\"S\":\"P\")+it;if(!has(it,META)){if(!isExtensible(it))return\"F\";if(!create)return\"E\";setMeta(it)}return it[META].i};var getWeak=function(it,create){if(!has(it,META)){if(!isExtensible(it))return true;if(!create)return false;setMeta(it)}return it[META].w};var onFreeze=function(it){if(FREEZE&&meta.NEED&&isExtensible(it)&&!has(it,META))setMeta(it);return it};var meta=module.exports={KEY:META,NEED:false,fastKey:fastKey,getWeak:getWeak,onFreeze:onFreeze}},function(module,exports,__webpack_require__){var getKeys=__webpack_require__(33);var gOPS=__webpack_require__(63);var pIE=__webpack_require__(42);module.exports=function(it){var result=getKeys(it);var getSymbols=gOPS.f;if(getSymbols){var symbols=getSymbols(it);var isEnum=pIE.f;var i=0;var key;while(symbols.length>i)if(isEnum.call(it,key=symbols[i++]))result.push(key)}return result}},function(module,exports,__webpack_require__){var cof=__webpack_require__(50);module.exports=Array.isArray||function isArray(arg){return cof(arg)==\"Array\"}},function(module,exports,__webpack_require__){var toIObject=__webpack_require__(25);var gOPN=__webpack_require__(88).f;var toString={}.toString;var windowNames=typeof window==\"object\"&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];var getWindowNames=function(it){try{return gOPN(it)}catch(e){return windowNames.slice()}};module.exports.f=function getOwnPropertyNames(it){return windowNames&&toString.call(it)==\"[object Window]\"?getWindowNames(it):gOPN(toIObject(it))}},function(module,exports){},function(module,exports,__webpack_require__){__webpack_require__(62)(\"asyncIterator\")},function(module,exports,__webpack_require__){__webpack_require__(62)(\"observable\")},function(module,exports,__webpack_require__){(function(module){var require;(function(global,factory){true?module.exports=factory():typeof define===\"function\"&&define.amd?define(factory):global.moment=factory()})(this,function(){\"use strict\";var hookCallback;function hooks(){return hookCallback.apply(null,arguments)}function setHookCallback(callback){hookCallback=callback}function isArray(input){return input instanceof Array||Object.prototype.toString.call(input)===\"[object Array]\"}function isObject(input){return input!=null&&Object.prototype.toString.call(input)===\"[object Object]\"}function isObjectEmpty(obj){if(Object.getOwnPropertyNames){return Object.getOwnPropertyNames(obj).length===0}else{var k;for(k in obj){if(obj.hasOwnProperty(k)){return false}}return true}}function isUndefined(input){return input===void 0}function isNumber(input){return typeof input===\"number\"||Object.prototype.toString.call(input)===\"[object Number]\"}function isDate(input){return input instanceof Date||Object.prototype.toString.call(input)===\"[object Date]\"}function map(arr,fn){var res=[],i;for(i=0;i<arr.length;++i){res.push(fn(arr[i],i))}return res}function hasOwnProp(a,b){return Object.prototype.hasOwnProperty.call(a,b)}function extend(a,b){for(var i in b){if(hasOwnProp(b,i)){a[i]=b[i]}}if(hasOwnProp(b,\"toString\")){a.toString=b.toString}if(hasOwnProp(b,\"valueOf\")){a.valueOf=b.valueOf}return a}function createUTC(input,format,locale,strict){return createLocalOrUTC(input,format,locale,strict,true).utc()}function defaultParsingFlags(){return{empty:false,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:false,invalidMonth:null,invalidFormat:false,userInvalidated:false,iso:false,parsedDateParts:[],meridiem:null,rfc2822:false,weekdayMismatch:false}}function getParsingFlags(m){if(m._pf==null){m._pf=defaultParsingFlags()}return m._pf}var some;if(Array.prototype.some){some=Array.prototype.some}else{some=function(fun){var t=Object(this);var len=t.length>>>0;for(var i=0;i<len;i++){if(i in t&&fun.call(this,t[i],i,t)){return true}}return false}}function isValid(m){if(m._isValid==null){var flags=getParsingFlags(m);var parsedParts=some.call(flags.parsedDateParts,function(i){return i!=null});var isNowValid=!isNaN(m._d.getTime())&&flags.overflow<0&&!flags.empty&&!flags.invalidMonth&&!flags.invalidWeekday&&!flags.weekdayMismatch&&!flags.nullInput&&!flags.invalidFormat&&!flags.userInvalidated&&(!flags.meridiem||flags.meridiem&&parsedParts);if(m._strict){isNowValid=isNowValid&&flags.charsLeftOver===0&&flags.unusedTokens.length===0&&flags.bigHour===undefined}if(Object.isFrozen==null||!Object.isFrozen(m)){m._isValid=isNowValid}else{return isNowValid}}return m._isValid}function createInvalid(flags){var m=createUTC(NaN);if(flags!=null){extend(getParsingFlags(m),flags)}else{getParsingFlags(m).userInvalidated=true}return m}var momentProperties=hooks.momentProperties=[];function copyConfig(to,from){var i,prop,val;if(!isUndefined(from._isAMomentObject)){to._isAMomentObject=from._isAMomentObject}if(!isUndefined(from._i)){to._i=from._i}if(!isUndefined(from._f)){to._f=from._f}if(!isUndefined(from._l)){to._l=from._l}if(!isUndefined(from._strict)){to._strict=from._strict}if(!isUndefined(from._tzm)){to._tzm=from._tzm}if(!isUndefined(from._isUTC)){to._isUTC=from._isUTC}if(!isUndefined(from._offset)){to._offset=from._offset}if(!isUndefined(from._pf)){to._pf=getParsingFlags(from)}if(!isUndefined(from._locale)){to._locale=from._locale}if(momentProperties.length>0){for(i=0;i<momentProperties.length;i++){prop=momentProperties[i];val=from[prop];if(!isUndefined(val)){to[prop]=val}}}return to}var updateInProgress=false;function Moment(config){copyConfig(this,config);this._d=new Date(config._d!=null?config._d.getTime():NaN);if(!this.isValid()){this._d=new Date(NaN)}if(updateInProgress===false){updateInProgress=true;hooks.updateOffset(this);updateInProgress=false}}function isMoment(obj){return obj instanceof Moment||obj!=null&&obj._isAMomentObject!=null}function absFloor(number){if(number<0){return Math.ceil(number)||0}else{return Math.floor(number)}}function toInt(argumentForCoercion){var coercedNumber=+argumentForCoercion,value=0;if(coercedNumber!==0&&isFinite(coercedNumber)){value=absFloor(coercedNumber)}return value}function compareArrays(array1,array2,dontConvert){var len=Math.min(array1.length,array2.length),lengthDiff=Math.abs(array1.length-array2.length),diffs=0,i;for(i=0;i<len;i++){if(dontConvert&&array1[i]!==array2[i]||!dontConvert&&toInt(array1[i])!==toInt(array2[i])){diffs++}}return diffs+lengthDiff}function warn(msg){if(hooks.suppressDeprecationWarnings===false&&typeof console!==\"undefined\"&&console.warn){console.warn(\"Deprecation warning: \"+msg)}}function deprecate(msg,fn){var firstTime=true;return extend(function(){if(hooks.deprecationHandler!=null){hooks.deprecationHandler(null,msg)}if(firstTime){var args=[];var arg;for(var i=0;i<arguments.length;i++){arg=\"\";if(typeof arguments[i]===\"object\"){arg+=\"\\n[\"+i+\"] \";for(var key in arguments[0]){arg+=key+\": \"+arguments[0][key]+\", \"}arg=arg.slice(0,-2)}else{arg=arguments[i]}args.push(arg)}warn(msg+\"\\nArguments: \"+Array.prototype.slice.call(args).join(\"\")+\"\\n\"+(new Error).stack);firstTime=false}return fn.apply(this,arguments)},fn)}var deprecations={};function deprecateSimple(name,msg){if(hooks.deprecationHandler!=null){hooks.deprecationHandler(name,msg)}if(!deprecations[name]){warn(msg);deprecations[name]=true}}hooks.suppressDeprecationWarnings=false;hooks.deprecationHandler=null;function isFunction(input){return input instanceof Function||Object.prototype.toString.call(input)===\"[object Function]\"}function set(config){var prop,i;for(i in config){prop=config[i];if(isFunction(prop)){this[i]=prop}else{this[\"_\"+i]=prop}}this._config=config;this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+\"|\"+/\\d{1,2}/.source)}function mergeConfigs(parentConfig,childConfig){var res=extend({},parentConfig),prop;for(prop in childConfig){if(hasOwnProp(childConfig,prop)){if(isObject(parentConfig[prop])&&isObject(childConfig[prop])){res[prop]={};extend(res[prop],parentConfig[prop]);extend(res[prop],childConfig[prop])}else if(childConfig[prop]!=null){res[prop]=childConfig[prop]}else{delete res[prop]}}}for(prop in parentConfig){if(hasOwnProp(parentConfig,prop)&&!hasOwnProp(childConfig,prop)&&isObject(parentConfig[prop])){res[prop]=extend({},res[prop])}}return res}function Locale(config){if(config!=null){this.set(config)}}var keys;if(Object.keys){keys=Object.keys}else{keys=function(obj){var i,res=[];for(i in obj){if(hasOwnProp(obj,i)){res.push(i)}}return res}}var defaultCalendar={sameDay:\"[Today at] LT\",nextDay:\"[Tomorrow at] LT\",nextWeek:\"dddd [at] LT\",lastDay:\"[Yesterday at] LT\",lastWeek:\"[Last] dddd [at] LT\",sameElse:\"L\"};function calendar(key,mom,now){var output=this._calendar[key]||this._calendar[\"sameElse\"];return isFunction(output)?output.call(mom,now):output}var defaultLongDateFormat={LTS:\"h:mm:ss A\",LT:\"h:mm A\",L:\"MM/DD/YYYY\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY h:mm A\",LLLL:\"dddd, MMMM D, YYYY h:mm A\"};function longDateFormat(key){var format=this._longDateFormat[key],formatUpper=this._longDateFormat[key.toUpperCase()];if(format||!formatUpper){return format}this._longDateFormat[key]=formatUpper.replace(/MMMM|MM|DD|dddd/g,function(val){return val.slice(1)});return this._longDateFormat[key]}var defaultInvalidDate=\"Invalid date\";function invalidDate(){return this._invalidDate}var defaultOrdinal=\"%d\";var defaultDayOfMonthOrdinalParse=/\\d{1,2}/;function ordinal(number){return this._ordinal.replace(\"%d\",number)}var defaultRelativeTime={future:\"in %s\",past:\"%s ago\",s:\"a few seconds\",ss:\"%d seconds\",m:\"a minute\",mm:\"%d minutes\",h:\"an hour\",hh:\"%d hours\",d:\"a day\",dd:\"%d days\",M:\"a month\",MM:\"%d months\",y:\"a year\",yy:\"%d years\"};function relativeTime(number,withoutSuffix,string,isFuture){var output=this._relativeTime[string];return isFunction(output)?output(number,withoutSuffix,string,isFuture):output.replace(/%d/i,number)}function pastFuture(diff,output){var format=this._relativeTime[diff>0?\"future\":\"past\"];return isFunction(format)?format(output):format.replace(/%s/i,output)}var aliases={};function addUnitAlias(unit,shorthand){var lowerCase=unit.toLowerCase();aliases[lowerCase]=aliases[lowerCase+\"s\"]=aliases[shorthand]=unit}function normalizeUnits(units){return typeof units===\"string\"?aliases[units]||aliases[units.toLowerCase()]:undefined}function normalizeObjectUnits(inputObject){var normalizedInput={},normalizedProp,prop;for(prop in inputObject){if(hasOwnProp(inputObject,prop)){normalizedProp=normalizeUnits(prop);if(normalizedProp){normalizedInput[normalizedProp]=inputObject[prop]}}}return normalizedInput}var priorities={};function addUnitPriority(unit,priority){priorities[unit]=priority}function getPrioritizedUnits(unitsObj){var units=[];for(var u in unitsObj){units.push({unit:u,priority:priorities[u]})}units.sort(function(a,b){return a.priority-b.priority});return units}function zeroFill(number,targetLength,forceSign){var absNumber=\"\"+Math.abs(number),zerosToFill=targetLength-absNumber.length,sign=number>=0;return(sign?forceSign?\"+\":\"\":\"-\")+Math.pow(10,Math.max(0,zerosToFill)).toString().substr(1)+absNumber}var formattingTokens=/(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g;var localFormattingTokens=/(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g;var formatFunctions={};var formatTokenFunctions={};function addFormatToken(token,padded,ordinal,callback){var func=callback;if(typeof callback===\"string\"){func=function(){return this[callback]()}}if(token){formatTokenFunctions[token]=func}if(padded){formatTokenFunctions[padded[0]]=function(){return zeroFill(func.apply(this,arguments),padded[1],padded[2])}}if(ordinal){formatTokenFunctions[ordinal]=function(){return this.localeData().ordinal(func.apply(this,arguments),token)}}}function removeFormattingTokens(input){if(input.match(/\\[[\\s\\S]/)){return input.replace(/^\\[|\\]$/g,\"\")}return input.replace(/\\\\/g,\"\")}function makeFormatFunction(format){var array=format.match(formattingTokens),i,length;for(i=0,length=array.length;i<length;i++){if(formatTokenFunctions[array[i]]){array[i]=formatTokenFunctions[array[i]]}else{array[i]=removeFormattingTokens(array[i])}}return function(mom){var output=\"\",i;for(i=0;i<length;i++){output+=isFunction(array[i])?array[i].call(mom,format):array[i]}return output}}function formatMoment(m,format){if(!m.isValid()){return m.localeData().invalidDate()}format=expandFormat(format,m.localeData());formatFunctions[format]=formatFunctions[format]||makeFormatFunction(format);return formatFunctions[format](m)}function expandFormat(format,locale){var i=5;function replaceLongDateFormatTokens(input){return locale.longDateFormat(input)||input}localFormattingTokens.lastIndex=0;while(i>=0&&localFormattingTokens.test(format)){format=format.replace(localFormattingTokens,replaceLongDateFormatTokens);localFormattingTokens.lastIndex=0;i-=1}return format}var match1=/\\d/;var match2=/\\d\\d/;var match3=/\\d{3}/;var match4=/\\d{4}/;var match6=/[+-]?\\d{6}/;var match1to2=/\\d\\d?/;var match3to4=/\\d\\d\\d\\d?/;var match5to6=/\\d\\d\\d\\d\\d\\d?/;var match1to3=/\\d{1,3}/;var match1to4=/\\d{1,4}/;var match1to6=/[+-]?\\d{1,6}/;var matchUnsigned=/\\d+/;var matchSigned=/[+-]?\\d+/;var matchOffset=/Z|[+-]\\d\\d:?\\d\\d/gi;var matchShortOffset=/Z|[+-]\\d\\d(?::?\\d\\d)?/gi;var matchTimestamp=/[+-]?\\d+(\\.\\d{1,3})?/;var matchWord=/[0-9]*['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]+|[\\u0600-\\u06FF\\/]+(\\s*?[\\u0600-\\u06FF]+){1,2}/i;var regexes={};function addRegexToken(token,regex,strictRegex){regexes[token]=isFunction(regex)?regex:function(isStrict,localeData){return isStrict&&strictRegex?strictRegex:regex}}function getParseRegexForToken(token,config){if(!hasOwnProp(regexes,token)){return new RegExp(unescapeFormat(token))}return regexes[token](config._strict,config._locale)}function unescapeFormat(s){return regexEscape(s.replace(\"\\\\\",\"\").replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,function(matched,p1,p2,p3,p4){return p1||p2||p3||p4}))}function regexEscape(s){return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g,\"\\\\$&\")}var tokens={};function addParseToken(token,callback){var i,func=callback;if(typeof token===\"string\"){token=[token]}if(isNumber(callback)){func=function(input,array){array[callback]=toInt(input)}}for(i=0;i<token.length;i++){tokens[token[i]]=func}}function addWeekParseToken(token,callback){addParseToken(token,function(input,array,config,token){config._w=config._w||{};callback(input,config._w,config,token)})}function addTimeToArrayFromToken(token,input,config){if(input!=null&&hasOwnProp(tokens,token)){tokens[token](input,config._a,config,token)}}var YEAR=0;var MONTH=1;var DATE=2;var HOUR=3;var MINUTE=4;var SECOND=5;var MILLISECOND=6;var WEEK=7;var WEEKDAY=8;addFormatToken(\"Y\",0,0,function(){var y=this.year();return y<=9999?\"\"+y:\"+\"+y});addFormatToken(0,[\"YY\",2],0,function(){return this.year()%100});addFormatToken(0,[\"YYYY\",4],0,\"year\");addFormatToken(0,[\"YYYYY\",5],0,\"year\");addFormatToken(0,[\"YYYYYY\",6,true],0,\"year\");addUnitAlias(\"year\",\"y\");addUnitPriority(\"year\",1);addRegexToken(\"Y\",matchSigned)\n;addRegexToken(\"YY\",match1to2,match2);addRegexToken(\"YYYY\",match1to4,match4);addRegexToken(\"YYYYY\",match1to6,match6);addRegexToken(\"YYYYYY\",match1to6,match6);addParseToken([\"YYYYY\",\"YYYYYY\"],YEAR);addParseToken(\"YYYY\",function(input,array){array[YEAR]=input.length===2?hooks.parseTwoDigitYear(input):toInt(input)});addParseToken(\"YY\",function(input,array){array[YEAR]=hooks.parseTwoDigitYear(input)});addParseToken(\"Y\",function(input,array){array[YEAR]=parseInt(input,10)});function daysInYear(year){return isLeapYear(year)?366:365}function isLeapYear(year){return year%4===0&&year%100!==0||year%400===0}hooks.parseTwoDigitYear=function(input){return toInt(input)+(toInt(input)>68?1900:2e3)};var getSetYear=makeGetSet(\"FullYear\",true);function getIsLeapYear(){return isLeapYear(this.year())}function makeGetSet(unit,keepTime){return function(value){if(value!=null){set$1(this,unit,value);hooks.updateOffset(this,keepTime);return this}else{return get(this,unit)}}}function get(mom,unit){return mom.isValid()?mom._d[\"get\"+(mom._isUTC?\"UTC\":\"\")+unit]():NaN}function set$1(mom,unit,value){if(mom.isValid()&&!isNaN(value)){if(unit===\"FullYear\"&&isLeapYear(mom.year())){mom._d[\"set\"+(mom._isUTC?\"UTC\":\"\")+unit](value,mom.month(),daysInMonth(value,mom.month()))}else{mom._d[\"set\"+(mom._isUTC?\"UTC\":\"\")+unit](value)}}}function stringGet(units){units=normalizeUnits(units);if(isFunction(this[units])){return this[units]()}return this}function stringSet(units,value){if(typeof units===\"object\"){units=normalizeObjectUnits(units);var prioritized=getPrioritizedUnits(units);for(var i=0;i<prioritized.length;i++){this[prioritized[i].unit](units[prioritized[i].unit])}}else{units=normalizeUnits(units);if(isFunction(this[units])){return this[units](value)}}return this}function mod(n,x){return(n%x+x)%x}var indexOf;if(Array.prototype.indexOf){indexOf=Array.prototype.indexOf}else{indexOf=function(o){var i;for(i=0;i<this.length;++i){if(this[i]===o){return i}}return-1}}function daysInMonth(year,month){if(isNaN(year)||isNaN(month)){return NaN}var modMonth=mod(month,12);year+=(month-modMonth)/12;return modMonth===1?isLeapYear(year)?29:28:31-modMonth%7%2}addFormatToken(\"M\",[\"MM\",2],\"Mo\",function(){return this.month()+1});addFormatToken(\"MMM\",0,0,function(format){return this.localeData().monthsShort(this,format)});addFormatToken(\"MMMM\",0,0,function(format){return this.localeData().months(this,format)});addUnitAlias(\"month\",\"M\");addUnitPriority(\"month\",8);addRegexToken(\"M\",match1to2);addRegexToken(\"MM\",match1to2,match2);addRegexToken(\"MMM\",function(isStrict,locale){return locale.monthsShortRegex(isStrict)});addRegexToken(\"MMMM\",function(isStrict,locale){return locale.monthsRegex(isStrict)});addParseToken([\"M\",\"MM\"],function(input,array){array[MONTH]=toInt(input)-1});addParseToken([\"MMM\",\"MMMM\"],function(input,array,config,token){var month=config._locale.monthsParse(input,token,config._strict);if(month!=null){array[MONTH]=month}else{getParsingFlags(config).invalidMonth=input}});var MONTHS_IN_FORMAT=/D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/;var defaultLocaleMonths=\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\");function localeMonths(m,format){if(!m){return isArray(this._months)?this._months:this._months[\"standalone\"]}return isArray(this._months)?this._months[m.month()]:this._months[(this._months.isFormat||MONTHS_IN_FORMAT).test(format)?\"format\":\"standalone\"][m.month()]}var defaultLocaleMonthsShort=\"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec\".split(\"_\");function localeMonthsShort(m,format){if(!m){return isArray(this._monthsShort)?this._monthsShort:this._monthsShort[\"standalone\"]}return isArray(this._monthsShort)?this._monthsShort[m.month()]:this._monthsShort[MONTHS_IN_FORMAT.test(format)?\"format\":\"standalone\"][m.month()]}function handleStrictParse(monthName,format,strict){var i,ii,mom,llc=monthName.toLocaleLowerCase();if(!this._monthsParse){this._monthsParse=[];this._longMonthsParse=[];this._shortMonthsParse=[];for(i=0;i<12;++i){mom=createUTC([2e3,i]);this._shortMonthsParse[i]=this.monthsShort(mom,\"\").toLocaleLowerCase();this._longMonthsParse[i]=this.months(mom,\"\").toLocaleLowerCase()}}if(strict){if(format===\"MMM\"){ii=indexOf.call(this._shortMonthsParse,llc);return ii!==-1?ii:null}else{ii=indexOf.call(this._longMonthsParse,llc);return ii!==-1?ii:null}}else{if(format===\"MMM\"){ii=indexOf.call(this._shortMonthsParse,llc);if(ii!==-1){return ii}ii=indexOf.call(this._longMonthsParse,llc);return ii!==-1?ii:null}else{ii=indexOf.call(this._longMonthsParse,llc);if(ii!==-1){return ii}ii=indexOf.call(this._shortMonthsParse,llc);return ii!==-1?ii:null}}}function localeMonthsParse(monthName,format,strict){var i,mom,regex;if(this._monthsParseExact){return handleStrictParse.call(this,monthName,format,strict)}if(!this._monthsParse){this._monthsParse=[];this._longMonthsParse=[];this._shortMonthsParse=[]}for(i=0;i<12;i++){mom=createUTC([2e3,i]);if(strict&&!this._longMonthsParse[i]){this._longMonthsParse[i]=new RegExp(\"^\"+this.months(mom,\"\").replace(\".\",\"\")+\"$\",\"i\");this._shortMonthsParse[i]=new RegExp(\"^\"+this.monthsShort(mom,\"\").replace(\".\",\"\")+\"$\",\"i\")}if(!strict&&!this._monthsParse[i]){regex=\"^\"+this.months(mom,\"\")+\"|^\"+this.monthsShort(mom,\"\");this._monthsParse[i]=new RegExp(regex.replace(\".\",\"\"),\"i\")}if(strict&&format===\"MMMM\"&&this._longMonthsParse[i].test(monthName)){return i}else if(strict&&format===\"MMM\"&&this._shortMonthsParse[i].test(monthName)){return i}else if(!strict&&this._monthsParse[i].test(monthName)){return i}}}function setMonth(mom,value){var dayOfMonth;if(!mom.isValid()){return mom}if(typeof value===\"string\"){if(/^\\d+$/.test(value)){value=toInt(value)}else{value=mom.localeData().monthsParse(value);if(!isNumber(value)){return mom}}}dayOfMonth=Math.min(mom.date(),daysInMonth(mom.year(),value));mom._d[\"set\"+(mom._isUTC?\"UTC\":\"\")+\"Month\"](value,dayOfMonth);return mom}function getSetMonth(value){if(value!=null){setMonth(this,value);hooks.updateOffset(this,true);return this}else{return get(this,\"Month\")}}function getDaysInMonth(){return daysInMonth(this.year(),this.month())}var defaultMonthsShortRegex=matchWord;function monthsShortRegex(isStrict){if(this._monthsParseExact){if(!hasOwnProp(this,\"_monthsRegex\")){computeMonthsParse.call(this)}if(isStrict){return this._monthsShortStrictRegex}else{return this._monthsShortRegex}}else{if(!hasOwnProp(this,\"_monthsShortRegex\")){this._monthsShortRegex=defaultMonthsShortRegex}return this._monthsShortStrictRegex&&isStrict?this._monthsShortStrictRegex:this._monthsShortRegex}}var defaultMonthsRegex=matchWord;function monthsRegex(isStrict){if(this._monthsParseExact){if(!hasOwnProp(this,\"_monthsRegex\")){computeMonthsParse.call(this)}if(isStrict){return this._monthsStrictRegex}else{return this._monthsRegex}}else{if(!hasOwnProp(this,\"_monthsRegex\")){this._monthsRegex=defaultMonthsRegex}return this._monthsStrictRegex&&isStrict?this._monthsStrictRegex:this._monthsRegex}}function computeMonthsParse(){function cmpLenRev(a,b){return b.length-a.length}var shortPieces=[],longPieces=[],mixedPieces=[],i,mom;for(i=0;i<12;i++){mom=createUTC([2e3,i]);shortPieces.push(this.monthsShort(mom,\"\"));longPieces.push(this.months(mom,\"\"));mixedPieces.push(this.months(mom,\"\"));mixedPieces.push(this.monthsShort(mom,\"\"))}shortPieces.sort(cmpLenRev);longPieces.sort(cmpLenRev);mixedPieces.sort(cmpLenRev);for(i=0;i<12;i++){shortPieces[i]=regexEscape(shortPieces[i]);longPieces[i]=regexEscape(longPieces[i])}for(i=0;i<24;i++){mixedPieces[i]=regexEscape(mixedPieces[i])}this._monthsRegex=new RegExp(\"^(\"+mixedPieces.join(\"|\")+\")\",\"i\");this._monthsShortRegex=this._monthsRegex;this._monthsStrictRegex=new RegExp(\"^(\"+longPieces.join(\"|\")+\")\",\"i\");this._monthsShortStrictRegex=new RegExp(\"^(\"+shortPieces.join(\"|\")+\")\",\"i\")}function createDate(y,m,d,h,M,s,ms){var date=new Date(y,m,d,h,M,s,ms);if(y<100&&y>=0&&isFinite(date.getFullYear())){date.setFullYear(y)}return date}function createUTCDate(y){var date=new Date(Date.UTC.apply(null,arguments));if(y<100&&y>=0&&isFinite(date.getUTCFullYear())){date.setUTCFullYear(y)}return date}function firstWeekOffset(year,dow,doy){var fwd=7+dow-doy,fwdlw=(7+createUTCDate(year,0,fwd).getUTCDay()-dow)%7;return-fwdlw+fwd-1}function dayOfYearFromWeeks(year,week,weekday,dow,doy){var localWeekday=(7+weekday-dow)%7,weekOffset=firstWeekOffset(year,dow,doy),dayOfYear=1+7*(week-1)+localWeekday+weekOffset,resYear,resDayOfYear;if(dayOfYear<=0){resYear=year-1;resDayOfYear=daysInYear(resYear)+dayOfYear}else if(dayOfYear>daysInYear(year)){resYear=year+1;resDayOfYear=dayOfYear-daysInYear(year)}else{resYear=year;resDayOfYear=dayOfYear}return{year:resYear,dayOfYear:resDayOfYear}}function weekOfYear(mom,dow,doy){var weekOffset=firstWeekOffset(mom.year(),dow,doy),week=Math.floor((mom.dayOfYear()-weekOffset-1)/7)+1,resWeek,resYear;if(week<1){resYear=mom.year()-1;resWeek=week+weeksInYear(resYear,dow,doy)}else if(week>weeksInYear(mom.year(),dow,doy)){resWeek=week-weeksInYear(mom.year(),dow,doy);resYear=mom.year()+1}else{resYear=mom.year();resWeek=week}return{week:resWeek,year:resYear}}function weeksInYear(year,dow,doy){var weekOffset=firstWeekOffset(year,dow,doy),weekOffsetNext=firstWeekOffset(year+1,dow,doy);return(daysInYear(year)-weekOffset+weekOffsetNext)/7}addFormatToken(\"w\",[\"ww\",2],\"wo\",\"week\");addFormatToken(\"W\",[\"WW\",2],\"Wo\",\"isoWeek\");addUnitAlias(\"week\",\"w\");addUnitAlias(\"isoWeek\",\"W\");addUnitPriority(\"week\",5);addUnitPriority(\"isoWeek\",5);addRegexToken(\"w\",match1to2);addRegexToken(\"ww\",match1to2,match2);addRegexToken(\"W\",match1to2);addRegexToken(\"WW\",match1to2,match2);addWeekParseToken([\"w\",\"ww\",\"W\",\"WW\"],function(input,week,config,token){week[token.substr(0,1)]=toInt(input)});function localeWeek(mom){return weekOfYear(mom,this._week.dow,this._week.doy).week}var defaultLocaleWeek={dow:0,doy:6};function localeFirstDayOfWeek(){return this._week.dow}function localeFirstDayOfYear(){return this._week.doy}function getSetWeek(input){var week=this.localeData().week(this);return input==null?week:this.add((input-week)*7,\"d\")}function getSetISOWeek(input){var week=weekOfYear(this,1,4).week;return input==null?week:this.add((input-week)*7,\"d\")}addFormatToken(\"d\",0,\"do\",\"day\");addFormatToken(\"dd\",0,0,function(format){return this.localeData().weekdaysMin(this,format)});addFormatToken(\"ddd\",0,0,function(format){return this.localeData().weekdaysShort(this,format)});addFormatToken(\"dddd\",0,0,function(format){return this.localeData().weekdays(this,format)});addFormatToken(\"e\",0,0,\"weekday\");addFormatToken(\"E\",0,0,\"isoWeekday\");addUnitAlias(\"day\",\"d\");addUnitAlias(\"weekday\",\"e\");addUnitAlias(\"isoWeekday\",\"E\");addUnitPriority(\"day\",11);addUnitPriority(\"weekday\",11);addUnitPriority(\"isoWeekday\",11);addRegexToken(\"d\",match1to2);addRegexToken(\"e\",match1to2);addRegexToken(\"E\",match1to2);addRegexToken(\"dd\",function(isStrict,locale){return locale.weekdaysMinRegex(isStrict)});addRegexToken(\"ddd\",function(isStrict,locale){return locale.weekdaysShortRegex(isStrict)});addRegexToken(\"dddd\",function(isStrict,locale){return locale.weekdaysRegex(isStrict)});addWeekParseToken([\"dd\",\"ddd\",\"dddd\"],function(input,week,config,token){var weekday=config._locale.weekdaysParse(input,token,config._strict);if(weekday!=null){week.d=weekday}else{getParsingFlags(config).invalidWeekday=input}});addWeekParseToken([\"d\",\"e\",\"E\"],function(input,week,config,token){week[token]=toInt(input)});function parseWeekday(input,locale){if(typeof input!==\"string\"){return input}if(!isNaN(input)){return parseInt(input,10)}input=locale.weekdaysParse(input);if(typeof input===\"number\"){return input}return null}function parseIsoWeekday(input,locale){if(typeof input===\"string\"){return locale.weekdaysParse(input)%7||7}return isNaN(input)?null:input}var defaultLocaleWeekdays=\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\");function localeWeekdays(m,format){if(!m){return isArray(this._weekdays)?this._weekdays:this._weekdays[\"standalone\"]}return isArray(this._weekdays)?this._weekdays[m.day()]:this._weekdays[this._weekdays.isFormat.test(format)?\"format\":\"standalone\"][m.day()]}var defaultLocaleWeekdaysShort=\"Sun_Mon_Tue_Wed_Thu_Fri_Sat\".split(\"_\");function localeWeekdaysShort(m){return m?this._weekdaysShort[m.day()]:this._weekdaysShort}var defaultLocaleWeekdaysMin=\"Su_Mo_Tu_We_Th_Fr_Sa\".split(\"_\");function localeWeekdaysMin(m){return m?this._weekdaysMin[m.day()]:this._weekdaysMin}function handleStrictParse$1(weekdayName,format,strict){var i,ii,mom,llc=weekdayName.toLocaleLowerCase();if(!this._weekdaysParse){this._weekdaysParse=[];this._shortWeekdaysParse=[];this._minWeekdaysParse=[];for(i=0;i<7;++i){mom=createUTC([2e3,1]).day(i);this._minWeekdaysParse[i]=this.weekdaysMin(mom,\"\").toLocaleLowerCase();this._shortWeekdaysParse[i]=this.weekdaysShort(mom,\"\").toLocaleLowerCase();this._weekdaysParse[i]=this.weekdays(mom,\"\").toLocaleLowerCase()}}if(strict){if(format===\"dddd\"){ii=indexOf.call(this._weekdaysParse,llc);return ii!==-1?ii:null}else if(format===\"ddd\"){ii=indexOf.call(this._shortWeekdaysParse,llc);return ii!==-1?ii:null}else{ii=indexOf.call(this._minWeekdaysParse,llc);return ii!==-1?ii:null}}else{if(format===\"dddd\"){ii=indexOf.call(this._weekdaysParse,llc);if(ii!==-1){return ii}ii=indexOf.call(this._shortWeekdaysParse,llc);if(ii!==-1){return ii}ii=indexOf.call(this._minWeekdaysParse,llc);return ii!==-1?ii:null}else if(format===\"ddd\"){ii=indexOf.call(this._shortWeekdaysParse,llc);if(ii!==-1){return ii}ii=indexOf.call(this._weekdaysParse,llc);if(ii!==-1){return ii}ii=indexOf.call(this._minWeekdaysParse,llc);return ii!==-1?ii:null}else{ii=indexOf.call(this._minWeekdaysParse,llc);if(ii!==-1){return ii}ii=indexOf.call(this._weekdaysParse,llc);if(ii!==-1){return ii}ii=indexOf.call(this._shortWeekdaysParse,llc);return ii!==-1?ii:null}}}function localeWeekdaysParse(weekdayName,format,strict){var i,mom,regex;if(this._weekdaysParseExact){return handleStrictParse$1.call(this,weekdayName,format,strict)}if(!this._weekdaysParse){this._weekdaysParse=[];this._minWeekdaysParse=[];this._shortWeekdaysParse=[];this._fullWeekdaysParse=[]}for(i=0;i<7;i++){mom=createUTC([2e3,1]).day(i);if(strict&&!this._fullWeekdaysParse[i]){this._fullWeekdaysParse[i]=new RegExp(\"^\"+this.weekdays(mom,\"\").replace(\".\",\".?\")+\"$\",\"i\");this._shortWeekdaysParse[i]=new RegExp(\"^\"+this.weekdaysShort(mom,\"\").replace(\".\",\".?\")+\"$\",\"i\");this._minWeekdaysParse[i]=new RegExp(\"^\"+this.weekdaysMin(mom,\"\").replace(\".\",\".?\")+\"$\",\"i\")}if(!this._weekdaysParse[i]){regex=\"^\"+this.weekdays(mom,\"\")+\"|^\"+this.weekdaysShort(mom,\"\")+\"|^\"+this.weekdaysMin(mom,\"\");this._weekdaysParse[i]=new RegExp(regex.replace(\".\",\"\"),\"i\")}if(strict&&format===\"dddd\"&&this._fullWeekdaysParse[i].test(weekdayName)){return i}else if(strict&&format===\"ddd\"&&this._shortWeekdaysParse[i].test(weekdayName)){return i}else if(strict&&format===\"dd\"&&this._minWeekdaysParse[i].test(weekdayName)){return i}else if(!strict&&this._weekdaysParse[i].test(weekdayName)){return i}}}function getSetDayOfWeek(input){if(!this.isValid()){return input!=null?this:NaN}var day=this._isUTC?this._d.getUTCDay():this._d.getDay();if(input!=null){input=parseWeekday(input,this.localeData());return this.add(input-day,\"d\")}else{return day}}function getSetLocaleDayOfWeek(input){if(!this.isValid()){return input!=null?this:NaN}var weekday=(this.day()+7-this.localeData()._week.dow)%7;return input==null?weekday:this.add(input-weekday,\"d\")}function getSetISODayOfWeek(input){if(!this.isValid()){return input!=null?this:NaN}if(input!=null){var weekday=parseIsoWeekday(input,this.localeData());return this.day(this.day()%7?weekday:weekday-7)}else{return this.day()||7}}var defaultWeekdaysRegex=matchWord;function weekdaysRegex(isStrict){if(this._weekdaysParseExact){if(!hasOwnProp(this,\"_weekdaysRegex\")){computeWeekdaysParse.call(this)}if(isStrict){return this._weekdaysStrictRegex}else{return this._weekdaysRegex}}else{if(!hasOwnProp(this,\"_weekdaysRegex\")){this._weekdaysRegex=defaultWeekdaysRegex}return this._weekdaysStrictRegex&&isStrict?this._weekdaysStrictRegex:this._weekdaysRegex}}var defaultWeekdaysShortRegex=matchWord;function weekdaysShortRegex(isStrict){if(this._weekdaysParseExact){if(!hasOwnProp(this,\"_weekdaysRegex\")){computeWeekdaysParse.call(this)}if(isStrict){return this._weekdaysShortStrictRegex}else{return this._weekdaysShortRegex}}else{if(!hasOwnProp(this,\"_weekdaysShortRegex\")){this._weekdaysShortRegex=defaultWeekdaysShortRegex}return this._weekdaysShortStrictRegex&&isStrict?this._weekdaysShortStrictRegex:this._weekdaysShortRegex}}var defaultWeekdaysMinRegex=matchWord;function weekdaysMinRegex(isStrict){if(this._weekdaysParseExact){if(!hasOwnProp(this,\"_weekdaysRegex\")){computeWeekdaysParse.call(this)}if(isStrict){return this._weekdaysMinStrictRegex}else{return this._weekdaysMinRegex}}else{if(!hasOwnProp(this,\"_weekdaysMinRegex\")){this._weekdaysMinRegex=defaultWeekdaysMinRegex}return this._weekdaysMinStrictRegex&&isStrict?this._weekdaysMinStrictRegex:this._weekdaysMinRegex}}function computeWeekdaysParse(){function cmpLenRev(a,b){return b.length-a.length}var minPieces=[],shortPieces=[],longPieces=[],mixedPieces=[],i,mom,minp,shortp,longp;for(i=0;i<7;i++){mom=createUTC([2e3,1]).day(i);minp=this.weekdaysMin(mom,\"\");shortp=this.weekdaysShort(mom,\"\");longp=this.weekdays(mom,\"\");minPieces.push(minp);shortPieces.push(shortp);longPieces.push(longp);mixedPieces.push(minp);mixedPieces.push(shortp);mixedPieces.push(longp)}minPieces.sort(cmpLenRev);shortPieces.sort(cmpLenRev);longPieces.sort(cmpLenRev);mixedPieces.sort(cmpLenRev);for(i=0;i<7;i++){shortPieces[i]=regexEscape(shortPieces[i]);longPieces[i]=regexEscape(longPieces[i]);mixedPieces[i]=regexEscape(mixedPieces[i])}this._weekdaysRegex=new RegExp(\"^(\"+mixedPieces.join(\"|\")+\")\",\"i\");this._weekdaysShortRegex=this._weekdaysRegex;this._weekdaysMinRegex=this._weekdaysRegex;this._weekdaysStrictRegex=new RegExp(\"^(\"+longPieces.join(\"|\")+\")\",\"i\");this._weekdaysShortStrictRegex=new RegExp(\"^(\"+shortPieces.join(\"|\")+\")\",\"i\");this._weekdaysMinStrictRegex=new RegExp(\"^(\"+minPieces.join(\"|\")+\")\",\"i\")}function hFormat(){return this.hours()%12||12}function kFormat(){return this.hours()||24}addFormatToken(\"H\",[\"HH\",2],0,\"hour\");addFormatToken(\"h\",[\"hh\",2],0,hFormat);addFormatToken(\"k\",[\"kk\",2],0,kFormat);addFormatToken(\"hmm\",0,0,function(){return\"\"+hFormat.apply(this)+zeroFill(this.minutes(),2)});addFormatToken(\"hmmss\",0,0,function(){return\"\"+hFormat.apply(this)+zeroFill(this.minutes(),2)+zeroFill(this.seconds(),2)});addFormatToken(\"Hmm\",0,0,function(){return\"\"+this.hours()+zeroFill(this.minutes(),2)});addFormatToken(\"Hmmss\",0,0,function(){return\"\"+this.hours()+zeroFill(this.minutes(),2)+zeroFill(this.seconds(),2)});function meridiem(token,lowercase){addFormatToken(token,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),lowercase)})}meridiem(\"a\",true);meridiem(\"A\",false);addUnitAlias(\"hour\",\"h\");addUnitPriority(\"hour\",13);function matchMeridiem(isStrict,locale){return locale._meridiemParse}addRegexToken(\"a\",matchMeridiem);addRegexToken(\"A\",matchMeridiem);addRegexToken(\"H\",match1to2);addRegexToken(\"h\",match1to2);addRegexToken(\"k\",match1to2);addRegexToken(\"HH\",match1to2,match2);addRegexToken(\"hh\",match1to2,match2);addRegexToken(\"kk\",match1to2,match2);addRegexToken(\"hmm\",match3to4);addRegexToken(\"hmmss\",match5to6);addRegexToken(\"Hmm\",match3to4);addRegexToken(\"Hmmss\",match5to6);addParseToken([\"H\",\"HH\"],HOUR);addParseToken([\"k\",\"kk\"],function(input,array,config){var kInput=toInt(input);array[HOUR]=kInput===24?0:kInput});addParseToken([\"a\",\"A\"],function(input,array,config){config._isPm=config._locale.isPM(input);config._meridiem=input});addParseToken([\"h\",\"hh\"],function(input,array,config){array[HOUR]=toInt(input);getParsingFlags(config).bigHour=true});addParseToken(\"hmm\",function(input,array,config){var pos=input.length-2;array[HOUR]=toInt(input.substr(0,pos));array[MINUTE]=toInt(input.substr(pos));getParsingFlags(config).bigHour=true});addParseToken(\"hmmss\",function(input,array,config){var pos1=input.length-4;var pos2=input.length-2;array[HOUR]=toInt(input.substr(0,pos1));array[MINUTE]=toInt(input.substr(pos1,2));array[SECOND]=toInt(input.substr(pos2));getParsingFlags(config).bigHour=true});addParseToken(\"Hmm\",function(input,array,config){var pos=input.length-2;array[HOUR]=toInt(input.substr(0,pos));array[MINUTE]=toInt(input.substr(pos))});addParseToken(\"Hmmss\",function(input,array,config){var pos1=input.length-4;var pos2=input.length-2;array[HOUR]=toInt(input.substr(0,pos1));array[MINUTE]=toInt(input.substr(pos1,2));array[SECOND]=toInt(input.substr(pos2))});function localeIsPM(input){return(input+\"\").toLowerCase().charAt(0)===\"p\"}var defaultLocaleMeridiemParse=/[ap]\\.?m?\\.?/i;function localeMeridiem(hours,minutes,isLower){if(hours>11){return isLower?\"pm\":\"PM\"}else{return isLower?\"am\":\"AM\"}}var getSetHour=makeGetSet(\"Hours\",true);var baseConfig={calendar:defaultCalendar,longDateFormat:defaultLongDateFormat,invalidDate:defaultInvalidDate,ordinal:defaultOrdinal,dayOfMonthOrdinalParse:defaultDayOfMonthOrdinalParse,relativeTime:defaultRelativeTime,months:defaultLocaleMonths,monthsShort:defaultLocaleMonthsShort,week:defaultLocaleWeek,weekdays:defaultLocaleWeekdays,weekdaysMin:defaultLocaleWeekdaysMin,weekdaysShort:defaultLocaleWeekdaysShort,meridiemParse:defaultLocaleMeridiemParse};var locales={};var localeFamilies={};var globalLocale;function normalizeLocale(key){return key?key.toLowerCase().replace(\"_\",\"-\"):key}function chooseLocale(names){var i=0,j,next,locale,split;while(i<names.length){split=normalizeLocale(names[i]).split(\"-\");j=split.length;next=normalizeLocale(names[i+1]);next=next?next.split(\"-\"):null;while(j>0){locale=loadLocale(split.slice(0,j).join(\"-\"));if(locale){return locale}if(next&&next.length>=j&&compareArrays(split,next,true)>=j-1){break}j--}i++}return null}function loadLocale(name){var oldLocale=null;if(!locales[name]&&typeof module!==\"undefined\"&&module&&module.exports){try{oldLocale=globalLocale._abbr;var aliasedRequire=require;!function webpackMissingModule(){var e=new Error('Cannot find module \"./locale\"');e.code=\"MODULE_NOT_FOUND\";throw e}();getSetGlobalLocale(oldLocale)}catch(e){}}return locales[name]}function getSetGlobalLocale(key,values){var data;if(key){if(isUndefined(values)){data=getLocale(key)}else{data=defineLocale(key,values)}if(data){globalLocale=data}}return globalLocale._abbr}function defineLocale(name,config){if(config!==null){var parentConfig=baseConfig;config.abbr=name;if(locales[name]!=null){deprecateSimple(\"defineLocaleOverride\",\"use moment.updateLocale(localeName, config) to change \"+\"an existing locale. moment.defineLocale(localeName, \"+\"config) should only be used for creating a new locale \"+\"See http://momentjs.com/guides/#/warnings/define-locale/ for more info.\");parentConfig=locales[name]._config}else if(config.parentLocale!=null){if(locales[config.parentLocale]!=null){parentConfig=locales[config.parentLocale]._config}else{if(!localeFamilies[config.parentLocale]){localeFamilies[config.parentLocale]=[]}localeFamilies[config.parentLocale].push({name:name,config:config});return null}}locales[name]=new Locale(mergeConfigs(parentConfig,config));if(localeFamilies[name]){localeFamilies[name].forEach(function(x){defineLocale(x.name,x.config)})}getSetGlobalLocale(name);return locales[name]}else{delete locales[name];return null}}function updateLocale(name,config){if(config!=null){var locale,parentConfig=baseConfig;if(locales[name]!=null){parentConfig=locales[name]._config}config=mergeConfigs(parentConfig,config);locale=new Locale(config);locale.parentLocale=locales[name];locales[name]=locale;getSetGlobalLocale(name)}else{if(locales[name]!=null){if(locales[name].parentLocale!=null){locales[name]=locales[name].parentLocale}else if(locales[name]!=null){delete locales[name]}}}return locales[name]}function getLocale(key){var locale;if(key&&key._locale&&key._locale._abbr){key=key._locale._abbr}if(!key){return globalLocale}if(!isArray(key)){locale=loadLocale(key);if(locale){return locale}key=[key]}return chooseLocale(key)}function listLocales(){return keys(locales)}function checkOverflow(m){var overflow;var a=m._a;if(a&&getParsingFlags(m).overflow===-2){overflow=a[MONTH]<0||a[MONTH]>11?MONTH:a[DATE]<1||a[DATE]>daysInMonth(a[YEAR],a[MONTH])?DATE:a[HOUR]<0||a[HOUR]>24||a[HOUR]===24&&(a[MINUTE]!==0||a[SECOND]!==0||a[MILLISECOND]!==0)?HOUR:a[MINUTE]<0||a[MINUTE]>59?MINUTE:a[SECOND]<0||a[SECOND]>59?SECOND:a[MILLISECOND]<0||a[MILLISECOND]>999?MILLISECOND:-1;if(getParsingFlags(m)._overflowDayOfYear&&(overflow<YEAR||overflow>DATE)){overflow=DATE}if(getParsingFlags(m)._overflowWeeks&&overflow===-1){overflow=WEEK}if(getParsingFlags(m)._overflowWeekday&&overflow===-1){overflow=WEEKDAY}getParsingFlags(m).overflow=overflow}return m}function defaults(a,b,c){if(a!=null){return a}if(b!=null){return b}return c}function currentDateArray(config){var nowValue=new Date(hooks.now());if(config._useUTC){return[nowValue.getUTCFullYear(),nowValue.getUTCMonth(),nowValue.getUTCDate()]}return[nowValue.getFullYear(),nowValue.getMonth(),nowValue.getDate()]}function configFromArray(config){var i,date,input=[],currentDate,yearToUse;if(config._d){return}currentDate=currentDateArray(config);if(config._w&&config._a[DATE]==null&&config._a[MONTH]==null){dayOfYearFromWeekInfo(config)}if(config._dayOfYear!=null){yearToUse=defaults(config._a[YEAR],currentDate[YEAR]);if(config._dayOfYear>daysInYear(yearToUse)||config._dayOfYear===0){getParsingFlags(config)._overflowDayOfYear=true}date=createUTCDate(yearToUse,0,config._dayOfYear);config._a[MONTH]=date.getUTCMonth();config._a[DATE]=date.getUTCDate()}for(i=0;i<3&&config._a[i]==null;++i){config._a[i]=input[i]=currentDate[i]}for(;i<7;i++){config._a[i]=input[i]=config._a[i]==null?i===2?1:0:config._a[i]}if(config._a[HOUR]===24&&config._a[MINUTE]===0&&config._a[SECOND]===0&&config._a[MILLISECOND]===0){config._nextDay=true;config._a[HOUR]=0}config._d=(config._useUTC?createUTCDate:createDate).apply(null,input);if(config._tzm!=null){config._d.setUTCMinutes(config._d.getUTCMinutes()-config._tzm)}if(config._nextDay){config._a[HOUR]=24}if(config._w&&typeof config._w.d!==\"undefined\"&&config._w.d!==config._d.getDay()){getParsingFlags(config).weekdayMismatch=true}}function dayOfYearFromWeekInfo(config){var w,weekYear,week,weekday,dow,doy,temp,weekdayOverflow;w=config._w;if(w.GG!=null||w.W!=null||w.E!=null){dow=1;doy=4;weekYear=defaults(w.GG,config._a[YEAR],weekOfYear(createLocal(),1,4).year);week=defaults(w.W,1);weekday=defaults(w.E,1);if(weekday<1||weekday>7){weekdayOverflow=true}}else{dow=config._locale._week.dow;doy=config._locale._week.doy;var curWeek=weekOfYear(createLocal(),dow,doy);weekYear=defaults(w.gg,config._a[YEAR],curWeek.year);week=defaults(w.w,curWeek.week);if(w.d!=null){weekday=w.d;if(weekday<0||weekday>6){weekdayOverflow=true}}else if(w.e!=null){weekday=w.e+dow;if(w.e<0||w.e>6){weekdayOverflow=true}}else{weekday=dow}}if(week<1||week>weeksInYear(weekYear,dow,doy)){getParsingFlags(config)._overflowWeeks=true}else if(weekdayOverflow!=null){getParsingFlags(config)._overflowWeekday=true}else{temp=dayOfYearFromWeeks(weekYear,week,weekday,dow,doy);config._a[YEAR]=temp.year;config._dayOfYear=temp.dayOfYear}}var extendedIsoRegex=/^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/;var basicIsoRegex=/^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/;var tzRegex=/Z|[+-]\\d\\d(?::?\\d\\d)?/;var isoDates=[[\"YYYYYY-MM-DD\",/[+-]\\d{6}-\\d\\d-\\d\\d/],[\"YYYY-MM-DD\",/\\d{4}-\\d\\d-\\d\\d/],[\"GGGG-[W]WW-E\",/\\d{4}-W\\d\\d-\\d/],[\"GGGG-[W]WW\",/\\d{4}-W\\d\\d/,false],[\"YYYY-DDD\",/\\d{4}-\\d{3}/],[\"YYYY-MM\",/\\d{4}-\\d\\d/,false],[\"YYYYYYMMDD\",/[+-]\\d{10}/],[\"YYYYMMDD\",/\\d{8}/],[\"GGGG[W]WWE\",/\\d{4}W\\d{3}/],[\"GGGG[W]WW\",/\\d{4}W\\d{2}/,false],[\"YYYYDDD\",/\\d{7}/]];var isoTimes=[[\"HH:mm:ss.SSSS\",/\\d\\d:\\d\\d:\\d\\d\\.\\d+/],[\"HH:mm:ss,SSSS\",/\\d\\d:\\d\\d:\\d\\d,\\d+/],[\"HH:mm:ss\",/\\d\\d:\\d\\d:\\d\\d/],[\"HH:mm\",/\\d\\d:\\d\\d/],[\"HHmmss.SSSS\",/\\d\\d\\d\\d\\d\\d\\.\\d+/],[\"HHmmss,SSSS\",/\\d\\d\\d\\d\\d\\d,\\d+/],[\"HHmmss\",/\\d\\d\\d\\d\\d\\d/],[\"HHmm\",/\\d\\d\\d\\d/],[\"HH\",/\\d\\d/]];var aspNetJsonRegex=/^\\/?Date\\((\\-?\\d+)/i;function configFromISO(config){var i,l,string=config._i,match=extendedIsoRegex.exec(string)||basicIsoRegex.exec(string),allowTime,dateFormat,timeFormat,tzFormat;if(match){getParsingFlags(config).iso=true;for(i=0,l=isoDates.length;i<l;i++){if(isoDates[i][1].exec(match[1])){dateFormat=isoDates[i][0];allowTime=isoDates[i][2]!==false;break}}if(dateFormat==null){config._isValid=false;return}if(match[3]){for(i=0,l=isoTimes.length;i<l;i++){if(isoTimes[i][1].exec(match[3])){timeFormat=(match[2]||\" \")+isoTimes[i][0];break}}if(timeFormat==null){config._isValid=false;return}}if(!allowTime&&timeFormat!=null){config._isValid=false;return}if(match[4]){if(tzRegex.exec(match[4])){tzFormat=\"Z\"}else{config._isValid=false;return}}config._f=dateFormat+(timeFormat||\"\")+(tzFormat||\"\");configFromStringAndFormat(config)}else{config._isValid=false}}var rfc2822=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/;function extractFromRFC2822Strings(yearStr,monthStr,dayStr,hourStr,minuteStr,secondStr){var result=[untruncateYear(yearStr),defaultLocaleMonthsShort.indexOf(monthStr),parseInt(dayStr,10),parseInt(hourStr,10),parseInt(minuteStr,10)];if(secondStr){result.push(parseInt(secondStr,10))}return result}function untruncateYear(yearStr){var year=parseInt(yearStr,10);if(year<=49){return 2e3+year}else if(year<=999){return 1900+year}return year}function preprocessRFC2822(s){return s.replace(/\\([^)]*\\)|[\\n\\t]/g,\" \").replace(/(\\s\\s+)/g,\" \").trim()}function checkWeekday(weekdayStr,parsedInput,config){if(weekdayStr){var weekdayProvided=defaultLocaleWeekdaysShort.indexOf(weekdayStr),weekdayActual=new Date(parsedInput[0],parsedInput[1],parsedInput[2]).getDay();if(weekdayProvided!==weekdayActual){getParsingFlags(config).weekdayMismatch=true;config._isValid=false;return false}}return true}var obsOffsets={UT:0,GMT:0,EDT:-4*60,EST:-5*60,CDT:-5*60,CST:-6*60,MDT:-6*60,MST:-7*60,PDT:-7*60,PST:-8*60};function calculateOffset(obsOffset,militaryOffset,numOffset){if(obsOffset){return obsOffsets[obsOffset]}else if(militaryOffset){return 0}else{var hm=parseInt(numOffset,10);var m=hm%100,h=(hm-m)/100;return h*60+m}}function configFromRFC2822(config){var match=rfc2822.exec(preprocessRFC2822(config._i));if(match){var parsedArray=extractFromRFC2822Strings(match[4],match[3],match[2],match[5],match[6],match[7]);if(!checkWeekday(match[1],parsedArray,config)){return}config._a=parsedArray;config._tzm=calculateOffset(match[8],match[9],match[10]);config._d=createUTCDate.apply(null,config._a);config._d.setUTCMinutes(config._d.getUTCMinutes()-config._tzm);getParsingFlags(config).rfc2822=true}else{config._isValid=false}}function configFromString(config){var matched=aspNetJsonRegex.exec(config._i);if(matched!==null){config._d=new Date(+matched[1]);return}configFromISO(config);if(config._isValid===false){delete config._isValid}else{return}configFromRFC2822(config);if(config._isValid===false){delete config._isValid}else{return}hooks.createFromInputFallback(config)}hooks.createFromInputFallback=deprecate(\"value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), \"+\"which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are \"+\"discouraged and will be removed in an upcoming major release. Please refer to \"+\"http://momentjs.com/guides/#/warnings/js-date/ for more info.\",function(config){config._d=new Date(config._i+(config._useUTC?\" UTC\":\"\"))});hooks.ISO_8601=function(){};hooks.RFC_2822=function(){};function configFromStringAndFormat(config){if(config._f===hooks.ISO_8601){configFromISO(config);return}if(config._f===hooks.RFC_2822){configFromRFC2822(config);return}config._a=[];getParsingFlags(config).empty=true\n;var string=\"\"+config._i,i,parsedInput,tokens,token,skipped,stringLength=string.length,totalParsedInputLength=0;tokens=expandFormat(config._f,config._locale).match(formattingTokens)||[];for(i=0;i<tokens.length;i++){token=tokens[i];parsedInput=(string.match(getParseRegexForToken(token,config))||[])[0];if(parsedInput){skipped=string.substr(0,string.indexOf(parsedInput));if(skipped.length>0){getParsingFlags(config).unusedInput.push(skipped)}string=string.slice(string.indexOf(parsedInput)+parsedInput.length);totalParsedInputLength+=parsedInput.length}if(formatTokenFunctions[token]){if(parsedInput){getParsingFlags(config).empty=false}else{getParsingFlags(config).unusedTokens.push(token)}addTimeToArrayFromToken(token,parsedInput,config)}else if(config._strict&&!parsedInput){getParsingFlags(config).unusedTokens.push(token)}}getParsingFlags(config).charsLeftOver=stringLength-totalParsedInputLength;if(string.length>0){getParsingFlags(config).unusedInput.push(string)}if(config._a[HOUR]<=12&&getParsingFlags(config).bigHour===true&&config._a[HOUR]>0){getParsingFlags(config).bigHour=undefined}getParsingFlags(config).parsedDateParts=config._a.slice(0);getParsingFlags(config).meridiem=config._meridiem;config._a[HOUR]=meridiemFixWrap(config._locale,config._a[HOUR],config._meridiem);configFromArray(config);checkOverflow(config)}function meridiemFixWrap(locale,hour,meridiem){var isPm;if(meridiem==null){return hour}if(locale.meridiemHour!=null){return locale.meridiemHour(hour,meridiem)}else if(locale.isPM!=null){isPm=locale.isPM(meridiem);if(isPm&&hour<12){hour+=12}if(!isPm&&hour===12){hour=0}return hour}else{return hour}}function configFromStringAndArray(config){var tempConfig,bestMoment,scoreToBeat,i,currentScore;if(config._f.length===0){getParsingFlags(config).invalidFormat=true;config._d=new Date(NaN);return}for(i=0;i<config._f.length;i++){currentScore=0;tempConfig=copyConfig({},config);if(config._useUTC!=null){tempConfig._useUTC=config._useUTC}tempConfig._f=config._f[i];configFromStringAndFormat(tempConfig);if(!isValid(tempConfig)){continue}currentScore+=getParsingFlags(tempConfig).charsLeftOver;currentScore+=getParsingFlags(tempConfig).unusedTokens.length*10;getParsingFlags(tempConfig).score=currentScore;if(scoreToBeat==null||currentScore<scoreToBeat){scoreToBeat=currentScore;bestMoment=tempConfig}}extend(config,bestMoment||tempConfig)}function configFromObject(config){if(config._d){return}var i=normalizeObjectUnits(config._i);config._a=map([i.year,i.month,i.day||i.date,i.hour,i.minute,i.second,i.millisecond],function(obj){return obj&&parseInt(obj,10)});configFromArray(config)}function createFromConfig(config){var res=new Moment(checkOverflow(prepareConfig(config)));if(res._nextDay){res.add(1,\"d\");res._nextDay=undefined}return res}function prepareConfig(config){var input=config._i,format=config._f;config._locale=config._locale||getLocale(config._l);if(input===null||format===undefined&&input===\"\"){return createInvalid({nullInput:true})}if(typeof input===\"string\"){config._i=input=config._locale.preparse(input)}if(isMoment(input)){return new Moment(checkOverflow(input))}else if(isDate(input)){config._d=input}else if(isArray(format)){configFromStringAndArray(config)}else if(format){configFromStringAndFormat(config)}else{configFromInput(config)}if(!isValid(config)){config._d=null}return config}function configFromInput(config){var input=config._i;if(isUndefined(input)){config._d=new Date(hooks.now())}else if(isDate(input)){config._d=new Date(input.valueOf())}else if(typeof input===\"string\"){configFromString(config)}else if(isArray(input)){config._a=map(input.slice(0),function(obj){return parseInt(obj,10)});configFromArray(config)}else if(isObject(input)){configFromObject(config)}else if(isNumber(input)){config._d=new Date(input)}else{hooks.createFromInputFallback(config)}}function createLocalOrUTC(input,format,locale,strict,isUTC){var c={};if(locale===true||locale===false){strict=locale;locale=undefined}if(isObject(input)&&isObjectEmpty(input)||isArray(input)&&input.length===0){input=undefined}c._isAMomentObject=true;c._useUTC=c._isUTC=isUTC;c._l=locale;c._i=input;c._f=format;c._strict=strict;return createFromConfig(c)}function createLocal(input,format,locale,strict){return createLocalOrUTC(input,format,locale,strict,false)}var prototypeMin=deprecate(\"moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/\",function(){var other=createLocal.apply(null,arguments);if(this.isValid()&&other.isValid()){return other<this?this:other}else{return createInvalid()}});var prototypeMax=deprecate(\"moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/\",function(){var other=createLocal.apply(null,arguments);if(this.isValid()&&other.isValid()){return other>this?this:other}else{return createInvalid()}});function pickBy(fn,moments){var res,i;if(moments.length===1&&isArray(moments[0])){moments=moments[0]}if(!moments.length){return createLocal()}res=moments[0];for(i=1;i<moments.length;++i){if(!moments[i].isValid()||moments[i][fn](res)){res=moments[i]}}return res}function min(){var args=[].slice.call(arguments,0);return pickBy(\"isBefore\",args)}function max(){var args=[].slice.call(arguments,0);return pickBy(\"isAfter\",args)}var now=function(){return Date.now?Date.now():+new Date};var ordering=[\"year\",\"quarter\",\"month\",\"week\",\"day\",\"hour\",\"minute\",\"second\",\"millisecond\"];function isDurationValid(m){for(var key in m){if(!(indexOf.call(ordering,key)!==-1&&(m[key]==null||!isNaN(m[key])))){return false}}var unitHasDecimal=false;for(var i=0;i<ordering.length;++i){if(m[ordering[i]]){if(unitHasDecimal){return false}if(parseFloat(m[ordering[i]])!==toInt(m[ordering[i]])){unitHasDecimal=true}}}return true}function isValid$1(){return this._isValid}function createInvalid$1(){return createDuration(NaN)}function Duration(duration){var normalizedInput=normalizeObjectUnits(duration),years=normalizedInput.year||0,quarters=normalizedInput.quarter||0,months=normalizedInput.month||0,weeks=normalizedInput.week||0,days=normalizedInput.day||0,hours=normalizedInput.hour||0,minutes=normalizedInput.minute||0,seconds=normalizedInput.second||0,milliseconds=normalizedInput.millisecond||0;this._isValid=isDurationValid(normalizedInput);this._milliseconds=+milliseconds+seconds*1e3+minutes*6e4+hours*1e3*60*60;this._days=+days+weeks*7;this._months=+months+quarters*3+years*12;this._data={};this._locale=getLocale();this._bubble()}function isDuration(obj){return obj instanceof Duration}function absRound(number){if(number<0){return Math.round(-1*number)*-1}else{return Math.round(number)}}function offset(token,separator){addFormatToken(token,0,0,function(){var offset=this.utcOffset();var sign=\"+\";if(offset<0){offset=-offset;sign=\"-\"}return sign+zeroFill(~~(offset/60),2)+separator+zeroFill(~~offset%60,2)})}offset(\"Z\",\":\");offset(\"ZZ\",\"\");addRegexToken(\"Z\",matchShortOffset);addRegexToken(\"ZZ\",matchShortOffset);addParseToken([\"Z\",\"ZZ\"],function(input,array,config){config._useUTC=true;config._tzm=offsetFromString(matchShortOffset,input)});var chunkOffset=/([\\+\\-]|\\d\\d)/gi;function offsetFromString(matcher,string){var matches=(string||\"\").match(matcher);if(matches===null){return null}var chunk=matches[matches.length-1]||[];var parts=(chunk+\"\").match(chunkOffset)||[\"-\",0,0];var minutes=+(parts[1]*60)+toInt(parts[2]);return minutes===0?0:parts[0]===\"+\"?minutes:-minutes}function cloneWithOffset(input,model){var res,diff;if(model._isUTC){res=model.clone();diff=(isMoment(input)||isDate(input)?input.valueOf():createLocal(input).valueOf())-res.valueOf();res._d.setTime(res._d.valueOf()+diff);hooks.updateOffset(res,false);return res}else{return createLocal(input).local()}}function getDateOffset(m){return-Math.round(m._d.getTimezoneOffset()/15)*15}hooks.updateOffset=function(){};function getSetOffset(input,keepLocalTime,keepMinutes){var offset=this._offset||0,localAdjust;if(!this.isValid()){return input!=null?this:NaN}if(input!=null){if(typeof input===\"string\"){input=offsetFromString(matchShortOffset,input);if(input===null){return this}}else if(Math.abs(input)<16&&!keepMinutes){input=input*60}if(!this._isUTC&&keepLocalTime){localAdjust=getDateOffset(this)}this._offset=input;this._isUTC=true;if(localAdjust!=null){this.add(localAdjust,\"m\")}if(offset!==input){if(!keepLocalTime||this._changeInProgress){addSubtract(this,createDuration(input-offset,\"m\"),1,false)}else if(!this._changeInProgress){this._changeInProgress=true;hooks.updateOffset(this,true);this._changeInProgress=null}}return this}else{return this._isUTC?offset:getDateOffset(this)}}function getSetZone(input,keepLocalTime){if(input!=null){if(typeof input!==\"string\"){input=-input}this.utcOffset(input,keepLocalTime);return this}else{return-this.utcOffset()}}function setOffsetToUTC(keepLocalTime){return this.utcOffset(0,keepLocalTime)}function setOffsetToLocal(keepLocalTime){if(this._isUTC){this.utcOffset(0,keepLocalTime);this._isUTC=false;if(keepLocalTime){this.subtract(getDateOffset(this),\"m\")}}return this}function setOffsetToParsedOffset(){if(this._tzm!=null){this.utcOffset(this._tzm,false,true)}else if(typeof this._i===\"string\"){var tZone=offsetFromString(matchOffset,this._i);if(tZone!=null){this.utcOffset(tZone)}else{this.utcOffset(0,true)}}return this}function hasAlignedHourOffset(input){if(!this.isValid()){return false}input=input?createLocal(input).utcOffset():0;return(this.utcOffset()-input)%60===0}function isDaylightSavingTime(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function isDaylightSavingTimeShifted(){if(!isUndefined(this._isDSTShifted)){return this._isDSTShifted}var c={};copyConfig(c,this);c=prepareConfig(c);if(c._a){var other=c._isUTC?createUTC(c._a):createLocal(c._a);this._isDSTShifted=this.isValid()&&compareArrays(c._a,other.toArray())>0}else{this._isDSTShifted=false}return this._isDSTShifted}function isLocal(){return this.isValid()?!this._isUTC:false}function isUtcOffset(){return this.isValid()?this._isUTC:false}function isUtc(){return this.isValid()?this._isUTC&&this._offset===0:false}var aspNetRegex=/^(\\-|\\+)?(?:(\\d*)[. ])?(\\d+)\\:(\\d+)(?:\\:(\\d+)(\\.\\d*)?)?$/;var isoRegex=/^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function createDuration(input,key){var duration=input,match=null,sign,ret,diffRes;if(isDuration(input)){duration={ms:input._milliseconds,d:input._days,M:input._months}}else if(isNumber(input)){duration={};if(key){duration[key]=input}else{duration.milliseconds=input}}else if(!!(match=aspNetRegex.exec(input))){sign=match[1]===\"-\"?-1:1;duration={y:0,d:toInt(match[DATE])*sign,h:toInt(match[HOUR])*sign,m:toInt(match[MINUTE])*sign,s:toInt(match[SECOND])*sign,ms:toInt(absRound(match[MILLISECOND]*1e3))*sign}}else if(!!(match=isoRegex.exec(input))){sign=match[1]===\"-\"?-1:match[1]===\"+\"?1:1;duration={y:parseIso(match[2],sign),M:parseIso(match[3],sign),w:parseIso(match[4],sign),d:parseIso(match[5],sign),h:parseIso(match[6],sign),m:parseIso(match[7],sign),s:parseIso(match[8],sign)}}else if(duration==null){duration={}}else if(typeof duration===\"object\"&&(\"from\"in duration||\"to\"in duration)){diffRes=momentsDifference(createLocal(duration.from),createLocal(duration.to));duration={};duration.ms=diffRes.milliseconds;duration.M=diffRes.months}ret=new Duration(duration);if(isDuration(input)&&hasOwnProp(input,\"_locale\")){ret._locale=input._locale}return ret}createDuration.fn=Duration.prototype;createDuration.invalid=createInvalid$1;function parseIso(inp,sign){var res=inp&&parseFloat(inp.replace(\",\",\".\"));return(isNaN(res)?0:res)*sign}function positiveMomentsDifference(base,other){var res={milliseconds:0,months:0};res.months=other.month()-base.month()+(other.year()-base.year())*12;if(base.clone().add(res.months,\"M\").isAfter(other)){--res.months}res.milliseconds=+other-+base.clone().add(res.months,\"M\");return res}function momentsDifference(base,other){var res;if(!(base.isValid()&&other.isValid())){return{milliseconds:0,months:0}}other=cloneWithOffset(other,base);if(base.isBefore(other)){res=positiveMomentsDifference(base,other)}else{res=positiveMomentsDifference(other,base);res.milliseconds=-res.milliseconds;res.months=-res.months}return res}function createAdder(direction,name){return function(val,period){var dur,tmp;if(period!==null&&!isNaN(+period)){deprecateSimple(name,\"moment().\"+name+\"(period, number) is deprecated. Please use moment().\"+name+\"(number, period). \"+\"See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.\");tmp=val;val=period;period=tmp}val=typeof val===\"string\"?+val:val;dur=createDuration(val,period);addSubtract(this,dur,direction);return this}}function addSubtract(mom,duration,isAdding,updateOffset){var milliseconds=duration._milliseconds,days=absRound(duration._days),months=absRound(duration._months);if(!mom.isValid()){return}updateOffset=updateOffset==null?true:updateOffset;if(months){setMonth(mom,get(mom,\"Month\")+months*isAdding)}if(days){set$1(mom,\"Date\",get(mom,\"Date\")+days*isAdding)}if(milliseconds){mom._d.setTime(mom._d.valueOf()+milliseconds*isAdding)}if(updateOffset){hooks.updateOffset(mom,days||months)}}var add=createAdder(1,\"add\");var subtract=createAdder(-1,\"subtract\");function getCalendarFormat(myMoment,now){var diff=myMoment.diff(now,\"days\",true);return diff<-6?\"sameElse\":diff<-1?\"lastWeek\":diff<0?\"lastDay\":diff<1?\"sameDay\":diff<2?\"nextDay\":diff<7?\"nextWeek\":\"sameElse\"}function calendar$1(time,formats){var now=time||createLocal(),sod=cloneWithOffset(now,this).startOf(\"day\"),format=hooks.calendarFormat(this,sod)||\"sameElse\";var output=formats&&(isFunction(formats[format])?formats[format].call(this,now):formats[format]);return this.format(output||this.localeData().calendar(format,this,createLocal(now)))}function clone(){return new Moment(this)}function isAfter(input,units){var localInput=isMoment(input)?input:createLocal(input);if(!(this.isValid()&&localInput.isValid())){return false}units=normalizeUnits(!isUndefined(units)?units:\"millisecond\");if(units===\"millisecond\"){return this.valueOf()>localInput.valueOf()}else{return localInput.valueOf()<this.clone().startOf(units).valueOf()}}function isBefore(input,units){var localInput=isMoment(input)?input:createLocal(input);if(!(this.isValid()&&localInput.isValid())){return false}units=normalizeUnits(!isUndefined(units)?units:\"millisecond\");if(units===\"millisecond\"){return this.valueOf()<localInput.valueOf()}else{return this.clone().endOf(units).valueOf()<localInput.valueOf()}}function isBetween(from,to,units,inclusivity){inclusivity=inclusivity||\"()\";return(inclusivity[0]===\"(\"?this.isAfter(from,units):!this.isBefore(from,units))&&(inclusivity[1]===\")\"?this.isBefore(to,units):!this.isAfter(to,units))}function isSame(input,units){var localInput=isMoment(input)?input:createLocal(input),inputMs;if(!(this.isValid()&&localInput.isValid())){return false}units=normalizeUnits(units||\"millisecond\");if(units===\"millisecond\"){return this.valueOf()===localInput.valueOf()}else{inputMs=localInput.valueOf();return this.clone().startOf(units).valueOf()<=inputMs&&inputMs<=this.clone().endOf(units).valueOf()}}function isSameOrAfter(input,units){return this.isSame(input,units)||this.isAfter(input,units)}function isSameOrBefore(input,units){return this.isSame(input,units)||this.isBefore(input,units)}function diff(input,units,asFloat){var that,zoneDelta,delta,output;if(!this.isValid()){return NaN}that=cloneWithOffset(input,this);if(!that.isValid()){return NaN}zoneDelta=(that.utcOffset()-this.utcOffset())*6e4;units=normalizeUnits(units);switch(units){case\"year\":output=monthDiff(this,that)/12;break;case\"month\":output=monthDiff(this,that);break;case\"quarter\":output=monthDiff(this,that)/3;break;case\"second\":output=(this-that)/1e3;break;case\"minute\":output=(this-that)/6e4;break;case\"hour\":output=(this-that)/36e5;break;case\"day\":output=(this-that-zoneDelta)/864e5;break;case\"week\":output=(this-that-zoneDelta)/6048e5;break;default:output=this-that}return asFloat?output:absFloor(output)}function monthDiff(a,b){var wholeMonthDiff=(b.year()-a.year())*12+(b.month()-a.month()),anchor=a.clone().add(wholeMonthDiff,\"months\"),anchor2,adjust;if(b-anchor<0){anchor2=a.clone().add(wholeMonthDiff-1,\"months\");adjust=(b-anchor)/(anchor-anchor2)}else{anchor2=a.clone().add(wholeMonthDiff+1,\"months\");adjust=(b-anchor)/(anchor2-anchor)}return-(wholeMonthDiff+adjust)||0}hooks.defaultFormat=\"YYYY-MM-DDTHH:mm:ssZ\";hooks.defaultFormatUtc=\"YYYY-MM-DDTHH:mm:ss[Z]\";function toString(){return this.clone().locale(\"en\").format(\"ddd MMM DD YYYY HH:mm:ss [GMT]ZZ\")}function toISOString(){if(!this.isValid()){return null}var m=this.clone().utc();if(m.year()<0||m.year()>9999){return formatMoment(m,\"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]\")}if(isFunction(Date.prototype.toISOString)){return this.toDate().toISOString()}return formatMoment(m,\"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]\")}function inspect(){if(!this.isValid()){return\"moment.invalid(/* \"+this._i+\" */)\"}var func=\"moment\";var zone=\"\";if(!this.isLocal()){func=this.utcOffset()===0?\"moment.utc\":\"moment.parseZone\";zone=\"Z\"}var prefix=\"[\"+func+'(\"]';var year=0<=this.year()&&this.year()<=9999?\"YYYY\":\"YYYYYY\";var datetime=\"-MM-DD[T]HH:mm:ss.SSS\";var suffix=zone+'[\")]';return this.format(prefix+year+datetime+suffix)}function format(inputString){if(!inputString){inputString=this.isUtc()?hooks.defaultFormatUtc:hooks.defaultFormat}var output=formatMoment(this,inputString);return this.localeData().postformat(output)}function from(time,withoutSuffix){if(this.isValid()&&(isMoment(time)&&time.isValid()||createLocal(time).isValid())){return createDuration({to:this,from:time}).locale(this.locale()).humanize(!withoutSuffix)}else{return this.localeData().invalidDate()}}function fromNow(withoutSuffix){return this.from(createLocal(),withoutSuffix)}function to(time,withoutSuffix){if(this.isValid()&&(isMoment(time)&&time.isValid()||createLocal(time).isValid())){return createDuration({from:this,to:time}).locale(this.locale()).humanize(!withoutSuffix)}else{return this.localeData().invalidDate()}}function toNow(withoutSuffix){return this.to(createLocal(),withoutSuffix)}function locale(key){var newLocaleData;if(key===undefined){return this._locale._abbr}else{newLocaleData=getLocale(key);if(newLocaleData!=null){this._locale=newLocaleData}return this}}var lang=deprecate(\"moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.\",function(key){if(key===undefined){return this.localeData()}else{return this.locale(key)}});function localeData(){return this._locale}function startOf(units){units=normalizeUnits(units);switch(units){case\"year\":this.month(0);case\"quarter\":case\"month\":this.date(1);case\"week\":case\"isoWeek\":case\"day\":case\"date\":this.hours(0);case\"hour\":this.minutes(0);case\"minute\":this.seconds(0);case\"second\":this.milliseconds(0)}if(units===\"week\"){this.weekday(0)}if(units===\"isoWeek\"){this.isoWeekday(1)}if(units===\"quarter\"){this.month(Math.floor(this.month()/3)*3)}return this}function endOf(units){units=normalizeUnits(units);if(units===undefined||units===\"millisecond\"){return this}if(units===\"date\"){units=\"day\"}return this.startOf(units).add(1,units===\"isoWeek\"?\"week\":units).subtract(1,\"ms\")}function valueOf(){return this._d.valueOf()-(this._offset||0)*6e4}function unix(){return Math.floor(this.valueOf()/1e3)}function toDate(){return new Date(this.valueOf())}function toArray(){var m=this;return[m.year(),m.month(),m.date(),m.hour(),m.minute(),m.second(),m.millisecond()]}function toObject(){var m=this;return{years:m.year(),months:m.month(),date:m.date(),hours:m.hours(),minutes:m.minutes(),seconds:m.seconds(),milliseconds:m.milliseconds()}}function toJSON(){return this.isValid()?this.toISOString():null}function isValid$2(){return isValid(this)}function parsingFlags(){return extend({},getParsingFlags(this))}function invalidAt(){return getParsingFlags(this).overflow}function creationData(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}addFormatToken(0,[\"gg\",2],0,function(){return this.weekYear()%100});addFormatToken(0,[\"GG\",2],0,function(){return this.isoWeekYear()%100});function addWeekYearFormatToken(token,getter){addFormatToken(0,[token,token.length],0,getter)}addWeekYearFormatToken(\"gggg\",\"weekYear\");addWeekYearFormatToken(\"ggggg\",\"weekYear\");addWeekYearFormatToken(\"GGGG\",\"isoWeekYear\");addWeekYearFormatToken(\"GGGGG\",\"isoWeekYear\");addUnitAlias(\"weekYear\",\"gg\");addUnitAlias(\"isoWeekYear\",\"GG\");addUnitPriority(\"weekYear\",1);addUnitPriority(\"isoWeekYear\",1);addRegexToken(\"G\",matchSigned);addRegexToken(\"g\",matchSigned);addRegexToken(\"GG\",match1to2,match2);addRegexToken(\"gg\",match1to2,match2);addRegexToken(\"GGGG\",match1to4,match4);addRegexToken(\"gggg\",match1to4,match4);addRegexToken(\"GGGGG\",match1to6,match6);addRegexToken(\"ggggg\",match1to6,match6);addWeekParseToken([\"gggg\",\"ggggg\",\"GGGG\",\"GGGGG\"],function(input,week,config,token){week[token.substr(0,2)]=toInt(input)});addWeekParseToken([\"gg\",\"GG\"],function(input,week,config,token){week[token]=hooks.parseTwoDigitYear(input)});function getSetWeekYear(input){return getSetWeekYearHelper.call(this,input,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)}function getSetISOWeekYear(input){return getSetWeekYearHelper.call(this,input,this.isoWeek(),this.isoWeekday(),1,4)}function getISOWeeksInYear(){return weeksInYear(this.year(),1,4)}function getWeeksInYear(){var weekInfo=this.localeData()._week;return weeksInYear(this.year(),weekInfo.dow,weekInfo.doy)}function getSetWeekYearHelper(input,week,weekday,dow,doy){var weeksTarget;if(input==null){return weekOfYear(this,dow,doy).year}else{weeksTarget=weeksInYear(input,dow,doy);if(week>weeksTarget){week=weeksTarget}return setWeekAll.call(this,input,week,weekday,dow,doy)}}function setWeekAll(weekYear,week,weekday,dow,doy){var dayOfYearData=dayOfYearFromWeeks(weekYear,week,weekday,dow,doy),date=createUTCDate(dayOfYearData.year,0,dayOfYearData.dayOfYear);this.year(date.getUTCFullYear());this.month(date.getUTCMonth());this.date(date.getUTCDate());return this}addFormatToken(\"Q\",0,\"Qo\",\"quarter\");addUnitAlias(\"quarter\",\"Q\");addUnitPriority(\"quarter\",7);addRegexToken(\"Q\",match1);addParseToken(\"Q\",function(input,array){array[MONTH]=(toInt(input)-1)*3});function getSetQuarter(input){return input==null?Math.ceil((this.month()+1)/3):this.month((input-1)*3+this.month()%3)}addFormatToken(\"D\",[\"DD\",2],\"Do\",\"date\");addUnitAlias(\"date\",\"D\");addUnitPriority(\"date\",9);addRegexToken(\"D\",match1to2);addRegexToken(\"DD\",match1to2,match2);addRegexToken(\"Do\",function(isStrict,locale){return isStrict?locale._dayOfMonthOrdinalParse||locale._ordinalParse:locale._dayOfMonthOrdinalParseLenient});addParseToken([\"D\",\"DD\"],DATE);addParseToken(\"Do\",function(input,array){array[DATE]=toInt(input.match(match1to2)[0],10)});var getSetDayOfMonth=makeGetSet(\"Date\",true);addFormatToken(\"DDD\",[\"DDDD\",3],\"DDDo\",\"dayOfYear\");addUnitAlias(\"dayOfYear\",\"DDD\");addUnitPriority(\"dayOfYear\",4);addRegexToken(\"DDD\",match1to3);addRegexToken(\"DDDD\",match3);addParseToken([\"DDD\",\"DDDD\"],function(input,array,config){config._dayOfYear=toInt(input)});function getSetDayOfYear(input){var dayOfYear=Math.round((this.clone().startOf(\"day\")-this.clone().startOf(\"year\"))/864e5)+1;return input==null?dayOfYear:this.add(input-dayOfYear,\"d\")}addFormatToken(\"m\",[\"mm\",2],0,\"minute\");addUnitAlias(\"minute\",\"m\");addUnitPriority(\"minute\",14);addRegexToken(\"m\",match1to2);addRegexToken(\"mm\",match1to2,match2);addParseToken([\"m\",\"mm\"],MINUTE);var getSetMinute=makeGetSet(\"Minutes\",false);addFormatToken(\"s\",[\"ss\",2],0,\"second\");addUnitAlias(\"second\",\"s\");addUnitPriority(\"second\",15);addRegexToken(\"s\",match1to2);addRegexToken(\"ss\",match1to2,match2);addParseToken([\"s\",\"ss\"],SECOND);var getSetSecond=makeGetSet(\"Seconds\",false);addFormatToken(\"S\",0,0,function(){return~~(this.millisecond()/100)});addFormatToken(0,[\"SS\",2],0,function(){return~~(this.millisecond()/10)});addFormatToken(0,[\"SSS\",3],0,\"millisecond\");addFormatToken(0,[\"SSSS\",4],0,function(){return this.millisecond()*10});addFormatToken(0,[\"SSSSS\",5],0,function(){return this.millisecond()*100});addFormatToken(0,[\"SSSSSS\",6],0,function(){return this.millisecond()*1e3});addFormatToken(0,[\"SSSSSSS\",7],0,function(){return this.millisecond()*1e4});addFormatToken(0,[\"SSSSSSSS\",8],0,function(){return this.millisecond()*1e5});addFormatToken(0,[\"SSSSSSSSS\",9],0,function(){return this.millisecond()*1e6});addUnitAlias(\"millisecond\",\"ms\");addUnitPriority(\"millisecond\",16);addRegexToken(\"S\",match1to3,match1);addRegexToken(\"SS\",match1to3,match2);addRegexToken(\"SSS\",match1to3,match3);var token;for(token=\"SSSS\";token.length<=9;token+=\"S\"){addRegexToken(token,matchUnsigned)}function parseMs(input,array){array[MILLISECOND]=toInt((\"0.\"+input)*1e3)}for(token=\"S\";token.length<=9;token+=\"S\"){addParseToken(token,parseMs)}var getSetMillisecond=makeGetSet(\"Milliseconds\",false);addFormatToken(\"z\",0,0,\"zoneAbbr\");addFormatToken(\"zz\",0,0,\"zoneName\");function getZoneAbbr(){return this._isUTC?\"UTC\":\"\"}function getZoneName(){return this._isUTC?\"Coordinated Universal Time\":\"\"}var proto=Moment.prototype;proto.add=add;proto.calendar=calendar$1;proto.clone=clone;proto.diff=diff;proto.endOf=endOf;proto.format=format;proto.from=from;proto.fromNow=fromNow;proto.to=to;proto.toNow=toNow;proto.get=stringGet;proto.invalidAt=invalidAt;proto.isAfter=isAfter;proto.isBefore=isBefore;proto.isBetween=isBetween;proto.isSame=isSame;proto.isSameOrAfter=isSameOrAfter;proto.isSameOrBefore=isSameOrBefore;proto.isValid=isValid$2;proto.lang=lang;proto.locale=locale;proto.localeData=localeData;proto.max=prototypeMax;proto.min=prototypeMin;proto.parsingFlags=parsingFlags;proto.set=stringSet;proto.startOf=startOf;proto.subtract=subtract;proto.toArray=toArray;proto.toObject=toObject;proto.toDate=toDate;proto.toISOString=toISOString;proto.inspect=inspect;proto.toJSON=toJSON;proto.toString=toString;proto.unix=unix;proto.valueOf=valueOf;proto.creationData=creationData;proto.year=getSetYear;proto.isLeapYear=getIsLeapYear;proto.weekYear=getSetWeekYear;proto.isoWeekYear=getSetISOWeekYear;proto.quarter=proto.quarters=getSetQuarter;proto.month=getSetMonth;proto.daysInMonth=getDaysInMonth;proto.week=proto.weeks=getSetWeek;proto.isoWeek=proto.isoWeeks=getSetISOWeek;proto.weeksInYear=getWeeksInYear;proto.isoWeeksInYear=getISOWeeksInYear;proto.date=getSetDayOfMonth;proto.day=proto.days=getSetDayOfWeek;proto.weekday=getSetLocaleDayOfWeek;proto.isoWeekday=getSetISODayOfWeek;proto.dayOfYear=getSetDayOfYear;proto.hour=proto.hours=getSetHour;proto.minute=proto.minutes=getSetMinute;proto.second=proto.seconds=getSetSecond;proto.millisecond=proto.milliseconds=getSetMillisecond;proto.utcOffset=getSetOffset;proto.utc=setOffsetToUTC;proto.local=setOffsetToLocal;proto.parseZone=setOffsetToParsedOffset;proto.hasAlignedHourOffset=hasAlignedHourOffset;proto.isDST=isDaylightSavingTime;proto.isLocal=isLocal;proto.isUtcOffset=isUtcOffset;proto.isUtc=isUtc;proto.isUTC=isUtc;proto.zoneAbbr=getZoneAbbr;proto.zoneName=getZoneName;proto.dates=deprecate(\"dates accessor is deprecated. Use date instead.\",getSetDayOfMonth);proto.months=deprecate(\"months accessor is deprecated. Use month instead\",getSetMonth);proto.years=deprecate(\"years accessor is deprecated. Use year instead\",getSetYear);proto.zone=deprecate(\"moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/\",getSetZone);proto.isDSTShifted=deprecate(\"isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information\",isDaylightSavingTimeShifted);function createUnix(input){return createLocal(input*1e3)}function createInZone(){return createLocal.apply(null,arguments).parseZone()}function preParsePostFormat(string){return string}var proto$1=Locale.prototype;proto$1.calendar=calendar;proto$1.longDateFormat=longDateFormat;proto$1.invalidDate=invalidDate;proto$1.ordinal=ordinal;proto$1.preparse=preParsePostFormat;proto$1.postformat=preParsePostFormat;proto$1.relativeTime=relativeTime;proto$1.pastFuture=pastFuture;proto$1.set=set;proto$1.months=localeMonths;proto$1.monthsShort=localeMonthsShort;proto$1.monthsParse=localeMonthsParse;proto$1.monthsRegex=monthsRegex;proto$1.monthsShortRegex=monthsShortRegex;proto$1.week=localeWeek;proto$1.firstDayOfYear=localeFirstDayOfYear;proto$1.firstDayOfWeek=localeFirstDayOfWeek;proto$1.weekdays=localeWeekdays;proto$1.weekdaysMin=localeWeekdaysMin;proto$1.weekdaysShort=localeWeekdaysShort;proto$1.weekdaysParse=localeWeekdaysParse;proto$1.weekdaysRegex=weekdaysRegex;proto$1.weekdaysShortRegex=weekdaysShortRegex;proto$1.weekdaysMinRegex=weekdaysMinRegex;proto$1.isPM=localeIsPM;proto$1.meridiem=localeMeridiem;function get$1(format,index,field,setter){var locale=getLocale();var utc=createUTC().set(setter,index);return locale[field](utc,format)}function listMonthsImpl(format,index,field){if(isNumber(format)){index=format;format=undefined}format=format||\"\";if(index!=null){return get$1(format,index,field,\"month\")}var i;var out=[];for(i=0;i<12;i++){out[i]=get$1(format,i,field,\"month\")}return out}function listWeekdaysImpl(localeSorted,format,index,field){if(typeof localeSorted===\"boolean\"){if(isNumber(format)){index=format;format=undefined}format=format||\"\"}else{format=localeSorted;index=format;localeSorted=false;if(isNumber(format)){index=format;format=undefined}format=format||\"\"}var locale=getLocale(),shift=localeSorted?locale._week.dow:0;if(index!=null){return get$1(format,(index+shift)%7,field,\"day\")}var i;var out=[];for(i=0;i<7;i++){out[i]=get$1(format,(i+shift)%7,field,\"day\")}return out}function listMonths(format,index){return listMonthsImpl(format,index,\"months\")}function listMonthsShort(format,index){return listMonthsImpl(format,index,\"monthsShort\")}function listWeekdays(localeSorted,format,index){return listWeekdaysImpl(localeSorted,format,index,\"weekdays\")}function listWeekdaysShort(localeSorted,format,index){return listWeekdaysImpl(localeSorted,format,index,\"weekdaysShort\")}function listWeekdaysMin(localeSorted,format,index){return listWeekdaysImpl(localeSorted,format,index,\"weekdaysMin\")}getSetGlobalLocale(\"en\",{dayOfMonthOrdinalParse:/\\d{1,2}(th|st|nd|rd)/,ordinal:function(number){var b=number%10,output=toInt(number%100/10)===1?\"th\":b===1?\"st\":b===2?\"nd\":b===3?\"rd\":\"th\";return number+output}});hooks.lang=deprecate(\"moment.lang is deprecated. Use moment.locale instead.\",getSetGlobalLocale);hooks.langData=deprecate(\"moment.langData is deprecated. Use moment.localeData instead.\",getLocale);var mathAbs=Math.abs;function abs(){var data=this._data;this._milliseconds=mathAbs(this._milliseconds);this._days=mathAbs(this._days);this._months=mathAbs(this._months);data.milliseconds=mathAbs(data.milliseconds);data.seconds=mathAbs(data.seconds);data.minutes=mathAbs(data.minutes);data.hours=mathAbs(data.hours);data.months=mathAbs(data.months);data.years=mathAbs(data.years);return this}function addSubtract$1(duration,input,value,direction){var other=createDuration(input,value);duration._milliseconds+=direction*other._milliseconds;duration._days+=direction*other._days;duration._months+=direction*other._months;return duration._bubble()}function add$1(input,value){return addSubtract$1(this,input,value,1)}function subtract$1(input,value){return addSubtract$1(this,input,value,-1)}function absCeil(number){if(number<0){return Math.floor(number)}else{return Math.ceil(number)}}function bubble(){var milliseconds=this._milliseconds;var days=this._days;var months=this._months;var data=this._data;var seconds,minutes,hours,years,monthsFromDays;if(!(milliseconds>=0&&days>=0&&months>=0||milliseconds<=0&&days<=0&&months<=0)){milliseconds+=absCeil(monthsToDays(months)+days)*864e5;days=0;months=0}data.milliseconds=milliseconds%1e3;seconds=absFloor(milliseconds/1e3);data.seconds=seconds%60;minutes=absFloor(seconds/60)\n;data.minutes=minutes%60;hours=absFloor(minutes/60);data.hours=hours%24;days+=absFloor(hours/24);monthsFromDays=absFloor(daysToMonths(days));months+=monthsFromDays;days-=absCeil(monthsToDays(monthsFromDays));years=absFloor(months/12);months%=12;data.days=days;data.months=months;data.years=years;return this}function daysToMonths(days){return days*4800/146097}function monthsToDays(months){return months*146097/4800}function as(units){if(!this.isValid()){return NaN}var days;var months;var milliseconds=this._milliseconds;units=normalizeUnits(units);if(units===\"month\"||units===\"year\"){days=this._days+milliseconds/864e5;months=this._months+daysToMonths(days);return units===\"month\"?months:months/12}else{days=this._days+Math.round(monthsToDays(this._months));switch(units){case\"week\":return days/7+milliseconds/6048e5;case\"day\":return days+milliseconds/864e5;case\"hour\":return days*24+milliseconds/36e5;case\"minute\":return days*1440+milliseconds/6e4;case\"second\":return days*86400+milliseconds/1e3;case\"millisecond\":return Math.floor(days*864e5)+milliseconds;default:throw new Error(\"Unknown unit \"+units)}}}function valueOf$1(){if(!this.isValid()){return NaN}return this._milliseconds+this._days*864e5+this._months%12*2592e6+toInt(this._months/12)*31536e6}function makeAs(alias){return function(){return this.as(alias)}}var asMilliseconds=makeAs(\"ms\");var asSeconds=makeAs(\"s\");var asMinutes=makeAs(\"m\");var asHours=makeAs(\"h\");var asDays=makeAs(\"d\");var asWeeks=makeAs(\"w\");var asMonths=makeAs(\"M\");var asYears=makeAs(\"y\");function clone$1(){return createDuration(this)}function get$2(units){units=normalizeUnits(units);return this.isValid()?this[units+\"s\"]():NaN}function makeGetter(name){return function(){return this.isValid()?this._data[name]:NaN}}var milliseconds=makeGetter(\"milliseconds\");var seconds=makeGetter(\"seconds\");var minutes=makeGetter(\"minutes\");var hours=makeGetter(\"hours\");var days=makeGetter(\"days\");var months=makeGetter(\"months\");var years=makeGetter(\"years\");function weeks(){return absFloor(this.days()/7)}var round=Math.round;var thresholds={ss:44,s:45,m:45,h:22,d:26,M:11};function substituteTimeAgo(string,number,withoutSuffix,isFuture,locale){return locale.relativeTime(number||1,!!withoutSuffix,string,isFuture)}function relativeTime$1(posNegDuration,withoutSuffix,locale){var duration=createDuration(posNegDuration).abs();var seconds=round(duration.as(\"s\"));var minutes=round(duration.as(\"m\"));var hours=round(duration.as(\"h\"));var days=round(duration.as(\"d\"));var months=round(duration.as(\"M\"));var years=round(duration.as(\"y\"));var a=seconds<=thresholds.ss&&[\"s\",seconds]||seconds<thresholds.s&&[\"ss\",seconds]||minutes<=1&&[\"m\"]||minutes<thresholds.m&&[\"mm\",minutes]||hours<=1&&[\"h\"]||hours<thresholds.h&&[\"hh\",hours]||days<=1&&[\"d\"]||days<thresholds.d&&[\"dd\",days]||months<=1&&[\"M\"]||months<thresholds.M&&[\"MM\",months]||years<=1&&[\"y\"]||[\"yy\",years];a[2]=withoutSuffix;a[3]=+posNegDuration>0;a[4]=locale;return substituteTimeAgo.apply(null,a)}function getSetRelativeTimeRounding(roundingFunction){if(roundingFunction===undefined){return round}if(typeof roundingFunction===\"function\"){round=roundingFunction;return true}return false}function getSetRelativeTimeThreshold(threshold,limit){if(thresholds[threshold]===undefined){return false}if(limit===undefined){return thresholds[threshold]}thresholds[threshold]=limit;if(threshold===\"s\"){thresholds.ss=limit-1}return true}function humanize(withSuffix){if(!this.isValid()){return this.localeData().invalidDate()}var locale=this.localeData();var output=relativeTime$1(this,!withSuffix,locale);if(withSuffix){output=locale.pastFuture(+this,output)}return locale.postformat(output)}var abs$1=Math.abs;function sign(x){return(x>0)-(x<0)||+x}function toISOString$1(){if(!this.isValid()){return this.localeData().invalidDate()}var seconds=abs$1(this._milliseconds)/1e3;var days=abs$1(this._days);var months=abs$1(this._months);var minutes,hours,years;minutes=absFloor(seconds/60);hours=absFloor(minutes/60);seconds%=60;minutes%=60;years=absFloor(months/12);months%=12;var Y=years;var M=months;var D=days;var h=hours;var m=minutes;var s=seconds?seconds.toFixed(3).replace(/\\.?0+$/,\"\"):\"\";var total=this.asSeconds();if(!total){return\"P0D\"}var totalSign=total<0?\"-\":\"\";var ymSign=sign(this._months)!==sign(total)?\"-\":\"\";var daysSign=sign(this._days)!==sign(total)?\"-\":\"\";var hmsSign=sign(this._milliseconds)!==sign(total)?\"-\":\"\";return totalSign+\"P\"+(Y?ymSign+Y+\"Y\":\"\")+(M?ymSign+M+\"M\":\"\")+(D?daysSign+D+\"D\":\"\")+(h||m||s?\"T\":\"\")+(h?hmsSign+h+\"H\":\"\")+(m?hmsSign+m+\"M\":\"\")+(s?hmsSign+s+\"S\":\"\")}var proto$2=Duration.prototype;proto$2.isValid=isValid$1;proto$2.abs=abs;proto$2.add=add$1;proto$2.subtract=subtract$1;proto$2.as=as;proto$2.asMilliseconds=asMilliseconds;proto$2.asSeconds=asSeconds;proto$2.asMinutes=asMinutes;proto$2.asHours=asHours;proto$2.asDays=asDays;proto$2.asWeeks=asWeeks;proto$2.asMonths=asMonths;proto$2.asYears=asYears;proto$2.valueOf=valueOf$1;proto$2._bubble=bubble;proto$2.clone=clone$1;proto$2.get=get$2;proto$2.milliseconds=milliseconds;proto$2.seconds=seconds;proto$2.minutes=minutes;proto$2.hours=hours;proto$2.days=days;proto$2.weeks=weeks;proto$2.months=months;proto$2.years=years;proto$2.humanize=humanize;proto$2.toISOString=toISOString$1;proto$2.toString=toISOString$1;proto$2.toJSON=toISOString$1;proto$2.locale=locale;proto$2.localeData=localeData;proto$2.toIsoString=deprecate(\"toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)\",toISOString$1);proto$2.lang=lang;addFormatToken(\"X\",0,0,\"unix\");addFormatToken(\"x\",0,0,\"valueOf\");addRegexToken(\"x\",matchSigned);addRegexToken(\"X\",matchTimestamp);addParseToken(\"X\",function(input,array,config){config._d=new Date(parseFloat(input,10)*1e3)});addParseToken(\"x\",function(input,array,config){config._d=new Date(toInt(input))});hooks.version=\"2.19.1\";setHookCallback(createLocal);hooks.fn=proto;hooks.min=min;hooks.max=max;hooks.now=now;hooks.utc=createUTC;hooks.unix=createUnix;hooks.months=listMonths;hooks.isDate=isDate;hooks.locale=getSetGlobalLocale;hooks.invalid=createInvalid;hooks.duration=createDuration;hooks.isMoment=isMoment;hooks.weekdays=listWeekdays;hooks.parseZone=createInZone;hooks.localeData=getLocale;hooks.isDuration=isDuration;hooks.monthsShort=listMonthsShort;hooks.weekdaysMin=listWeekdaysMin;hooks.defineLocale=defineLocale;hooks.updateLocale=updateLocale;hooks.locales=listLocales;hooks.weekdaysShort=listWeekdaysShort;hooks.normalizeUnits=normalizeUnits;hooks.relativeTimeRounding=getSetRelativeTimeRounding;hooks.relativeTimeThreshold=getSetRelativeTimeThreshold;hooks.calendarFormat=getCalendarFormat;hooks.prototype=proto;return hooks})}).call(exports,__webpack_require__(155)(module))},function(module,exports){module.exports=function(module){if(!module.webpackPolyfill){module.deprecate=function(){};module.paths=[];if(!module.children)module.children=[];Object.defineProperty(module,\"loaded\",{enumerable:true,get:function(){return module.l}});Object.defineProperty(module,\"id\",{enumerable:true,get:function(){return module.i}});module.webpackPolyfill=1}return module}},function(module,exports){function webpackEmptyContext(req){throw new Error(\"Cannot find module '\"+req+\"'.\")}webpackEmptyContext.keys=function(){return[]};webpackEmptyContext.resolve=webpackEmptyContext;module.exports=webpackEmptyContext;webpackEmptyContext.id=156},function(module,exports,__webpack_require__){\"use strict\";(function(global){var _rng;var globalVar=typeof window!==\"undefined\"?window:typeof global!==\"undefined\"?global:null;if(globalVar&&globalVar.crypto&&crypto.getRandomValues){var _rnds8=new Uint8Array(16);_rng=function whatwgRNG(){crypto.getRandomValues(_rnds8);return _rnds8}}if(!_rng){var _rnds=new Array(16);_rng=function _rng(){for(var i=0,r;i<16;i++){if((i&3)===0)r=Math.random()*4294967296;_rnds[i]=r>>>((i&3)<<3)&255}return _rnds}}var _byteToHex=[];var _hexToByte={};for(var i=0;i<256;i++){_byteToHex[i]=(i+256).toString(16).substr(1);_hexToByte[_byteToHex[i]]=i}function parse(s,buf,offset){var i=buf&&offset||0,ii=0;buf=buf||[];s.toLowerCase().replace(/[0-9a-f]{2}/g,function(oct){if(ii<16){buf[i+ii++]=_hexToByte[oct]}});while(ii<16){buf[i+ii++]=0}return buf}function unparse(buf,offset){var i=offset||0,bth=_byteToHex;return bth[buf[i++]]+bth[buf[i++]]+bth[buf[i++]]+bth[buf[i++]]+\"-\"+bth[buf[i++]]+bth[buf[i++]]+\"-\"+bth[buf[i++]]+bth[buf[i++]]+\"-\"+bth[buf[i++]]+bth[buf[i++]]+\"-\"+bth[buf[i++]]+bth[buf[i++]]+bth[buf[i++]]+bth[buf[i++]]+bth[buf[i++]]+bth[buf[i++]]}var _seedBytes=_rng();var _nodeId=[_seedBytes[0]|1,_seedBytes[1],_seedBytes[2],_seedBytes[3],_seedBytes[4],_seedBytes[5]];var _clockseq=(_seedBytes[6]<<8|_seedBytes[7])&16383;var _lastMSecs=0,_lastNSecs=0;function v1(options,buf,offset){var i=buf&&offset||0;var b=buf||[];options=options||{};var clockseq=options.clockseq!==undefined?options.clockseq:_clockseq;var msecs=options.msecs!==undefined?options.msecs:(new Date).getTime();var nsecs=options.nsecs!==undefined?options.nsecs:_lastNSecs+1;var dt=msecs-_lastMSecs+(nsecs-_lastNSecs)/1e4;if(dt<0&&options.clockseq===undefined){clockseq=clockseq+1&16383}if((dt<0||msecs>_lastMSecs)&&options.nsecs===undefined){nsecs=0}if(nsecs>=1e4){throw new Error(\"uuid.v1(): Can't create more than 10M uuids/sec\")}_lastMSecs=msecs;_lastNSecs=nsecs;_clockseq=clockseq;msecs+=122192928e5;var tl=((msecs&268435455)*1e4+nsecs)%4294967296;b[i++]=tl>>>24&255;b[i++]=tl>>>16&255;b[i++]=tl>>>8&255;b[i++]=tl&255;var tmh=msecs/4294967296*1e4&268435455;b[i++]=tmh>>>8&255;b[i++]=tmh&255;b[i++]=tmh>>>24&15|16;b[i++]=tmh>>>16&255;b[i++]=clockseq>>>8|128;b[i++]=clockseq&255;var node=options.node||_nodeId;for(var n=0;n<6;n++){b[i+n]=node[n]}return buf?buf:unparse(b)}function v4(options,buf,offset){var i=buf&&offset||0;if(typeof options==\"string\"){buf=options==\"binary\"?new Array(16):null;options=null}options=options||{};var rnds=options.random||(options.rng||_rng)();rnds[6]=rnds[6]&15|64;rnds[8]=rnds[8]&63|128;if(buf){for(var ii=0;ii<16;ii++){buf[i+ii]=rnds[ii]}}return buf||unparse(rnds)}var uuid=v4;uuid.v1=v1;uuid.v4=v4;uuid.parse=parse;uuid.unparse=unparse;module.exports=uuid}).call(exports,__webpack_require__(158))},function(module,exports){var g;g=function(){return this}();try{g=g||Function(\"return this\")()||(1,eval)(\"this\")}catch(e){if(typeof window===\"object\")g=window}module.exports=g},function(module,exports,__webpack_require__){\"use strict\";exports.util=__webpack_require__(2);exports.DOMutil=__webpack_require__(14);exports.DataSet=__webpack_require__(11);exports.DataView=__webpack_require__(12);exports.Queue=__webpack_require__(43);exports.Graph3d=__webpack_require__(161);exports.graph3d={Camera:__webpack_require__(95),Filter:__webpack_require__(96),Point2d:__webpack_require__(91),Point3d:__webpack_require__(34),Slider:__webpack_require__(92),StepNumber:__webpack_require__(93)};exports.moment=__webpack_require__(9);exports.Hammer=__webpack_require__(10);exports.keycharm=__webpack_require__(35)},function(module,exports,__webpack_require__){var core=__webpack_require__(7);var $JSON=core.JSON||(core.JSON={stringify:JSON.stringify});module.exports=function stringify(it){return $JSON.stringify.apply($JSON,arguments)}},function(module,exports,__webpack_require__){\"use strict\";var _assign=__webpack_require__(90);var _assign2=_interopRequireDefault(_assign);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Emitter=__webpack_require__(44);var util=__webpack_require__(2);var Point3d=__webpack_require__(34);var Point2d=__webpack_require__(91);var Slider=__webpack_require__(92);var StepNumber=__webpack_require__(93);var Settings=__webpack_require__(94);var Validator=__webpack_require__(15)[\"default\"];var _require=__webpack_require__(15),printStyle=_require.printStyle;var _require2=__webpack_require__(172),allOptions=_require2.allOptions;var DataGroup=__webpack_require__(173);Graph3d.STYLE=Settings.STYLE;var autoByDefault=undefined;Graph3d.DEFAULTS={width:\"400px\",height:\"400px\",filterLabel:\"time\",legendLabel:\"value\",xLabel:\"x\",yLabel:\"y\",zLabel:\"z\",xValueLabel:function xValueLabel(v){return v},yValueLabel:function yValueLabel(v){return v},zValueLabel:function zValueLabel(v){return v},showXAxis:true,showYAxis:true,showZAxis:true,showGrid:true,showPerspective:true,showShadow:false,keepAspectRatio:true,verticalRatio:.5,dotSizeRatio:.02,dotSizeMinFraction:.5,dotSizeMaxFraction:2.5,showAnimationControls:autoByDefault,animationInterval:1e3,animationPreload:false,animationAutoStart:autoByDefault,axisColor:\"#4D4D4D\",gridColor:\"#D3D3D3\",xCenter:\"55%\",yCenter:\"50%\",style:Graph3d.STYLE.DOT,tooltip:false,tooltipStyle:{content:{padding:\"10px\",border:\"1px solid #4d4d4d\",color:\"#1a1a1a\",background:\"rgba(255,255,255,0.7)\",borderRadius:\"2px\",boxShadow:\"5px 5px 10px rgba(128,128,128,0.5)\"},line:{height:\"40px\",width:\"0\",borderLeft:\"1px solid #4d4d4d\"},dot:{height:\"0\",width:\"0\",border:\"5px solid #4d4d4d\",borderRadius:\"5px\"}},dataColor:{fill:\"#7DC1FF\",stroke:\"#3267D2\",strokeWidth:1},cameraPosition:{horizontal:1,vertical:.5,distance:1.7},showLegend:autoByDefault,backgroundColor:autoByDefault,xBarWidth:autoByDefault,yBarWidth:autoByDefault,valueMin:autoByDefault,valueMax:autoByDefault,xMin:autoByDefault,xMax:autoByDefault,xStep:autoByDefault,yMin:autoByDefault,yMax:autoByDefault,yStep:autoByDefault,zMin:autoByDefault,zMax:autoByDefault,zStep:autoByDefault};function Graph3d(container,data,options){if(!(this instanceof Graph3d)){throw new SyntaxError(\"Constructor must be called with the new operator\")}this.containerElement=container;this.dataGroup=new DataGroup;this.dataPoints=null;this.create();Settings.setDefaults(Graph3d.DEFAULTS,this);this.colX=undefined;this.colY=undefined;this.colZ=undefined;this.colValue=undefined;this.setOptions(options);this.setData(data)}Emitter(Graph3d.prototype);Graph3d.prototype._setScale=function(){this.scale=new Point3d(1/this.xRange.range(),1/this.yRange.range(),1/this.zRange.range());if(this.keepAspectRatio){if(this.scale.x<this.scale.y){this.scale.y=this.scale.x}else{this.scale.x=this.scale.y}}this.scale.z*=this.verticalRatio;if(this.valueRange!==undefined){this.scale.value=1/this.valueRange.range()}var xCenter=this.xRange.center()*this.scale.x;var yCenter=this.yRange.center()*this.scale.y;var zCenter=this.zRange.center()*this.scale.z;this.camera.setArmLocation(xCenter,yCenter,zCenter)};Graph3d.prototype._convert3Dto2D=function(point3d){var translation=this._convertPointToTranslation(point3d);return this._convertTranslationToScreen(translation)};Graph3d.prototype._convertPointToTranslation=function(point3d){var cameraLocation=this.camera.getCameraLocation(),cameraRotation=this.camera.getCameraRotation(),ax=point3d.x*this.scale.x,ay=point3d.y*this.scale.y,az=point3d.z*this.scale.z,cx=cameraLocation.x,cy=cameraLocation.y,cz=cameraLocation.z,sinTx=Math.sin(cameraRotation.x),cosTx=Math.cos(cameraRotation.x),sinTy=Math.sin(cameraRotation.y),cosTy=Math.cos(cameraRotation.y),sinTz=Math.sin(cameraRotation.z),cosTz=Math.cos(cameraRotation.z),dx=cosTy*(sinTz*(ay-cy)+cosTz*(ax-cx))-sinTy*(az-cz),dy=sinTx*(cosTy*(az-cz)+sinTy*(sinTz*(ay-cy)+cosTz*(ax-cx)))+cosTx*(cosTz*(ay-cy)-sinTz*(ax-cx)),dz=cosTx*(cosTy*(az-cz)+sinTy*(sinTz*(ay-cy)+cosTz*(ax-cx)))-sinTx*(cosTz*(ay-cy)-sinTz*(ax-cx));return new Point3d(dx,dy,dz)};Graph3d.prototype._convertTranslationToScreen=function(translation){var ex=this.eye.x,ey=this.eye.y,ez=this.eye.z,dx=translation.x,dy=translation.y,dz=translation.z;var bx;var by;if(this.showPerspective){bx=(dx-ex)*(ez/dz);by=(dy-ey)*(ez/dz)}else{bx=dx*-(ez/this.camera.getArmLength());by=dy*-(ez/this.camera.getArmLength())}return new Point2d(this.currentXCenter+bx*this.frame.canvas.clientWidth,this.currentYCenter-by*this.frame.canvas.clientWidth)};Graph3d.prototype._calcTranslations=function(points){for(var i=0;i<points.length;i++){var point=points[i];point.trans=this._convertPointToTranslation(point.point);point.screen=this._convertTranslationToScreen(point.trans);var transBottom=this._convertPointToTranslation(point.bottom);point.dist=this.showPerspective?transBottom.length():-transBottom.z}var sortDepth=function sortDepth(a,b){return b.dist-a.dist};points.sort(sortDepth)};Graph3d.prototype._initializeRanges=function(){var dg=this.dataGroup;this.xRange=dg.xRange;this.yRange=dg.yRange;this.zRange=dg.zRange;this.valueRange=dg.valueRange;this.xStep=dg.xStep;this.yStep=dg.yStep;this.zStep=dg.zStep;this.xBarWidth=dg.xBarWidth;this.yBarWidth=dg.yBarWidth;this.colX=dg.colX;this.colY=dg.colY;this.colZ=dg.colZ;this.colValue=dg.colValue;this._setScale()};Graph3d.prototype.getDataPoints=function(data){var dataPoints=[];for(var i=0;i<data.length;i++){var point=new Point3d;point.x=data[i][this.colX]||0;point.y=data[i][this.colY]||0;point.z=data[i][this.colZ]||0;point.data=data[i];if(this.colValue!==undefined){point.value=data[i][this.colValue]||0}var obj={};obj.point=point;obj.bottom=new Point3d(point.x,point.y,this.zRange.min);obj.trans=undefined;obj.screen=undefined;dataPoints.push(obj)}return dataPoints};Graph3d.prototype._getDataPoints=function(data){var x,y,i,obj;var dataPoints=[];if(this.style===Graph3d.STYLE.GRID||this.style===Graph3d.STYLE.SURFACE){var dataX=this.dataGroup.getDistinctValues(this.colX,data);var dataY=this.dataGroup.getDistinctValues(this.colY,data);dataPoints=this.getDataPoints(data);var dataMatrix=[];for(i=0;i<dataPoints.length;i++){obj=dataPoints[i];var xIndex=dataX.indexOf(obj.point.x);var yIndex=dataY.indexOf(obj.point.y);if(dataMatrix[xIndex]===undefined){dataMatrix[xIndex]=[]}dataMatrix[xIndex][yIndex]=obj}for(x=0;x<dataMatrix.length;x++){for(y=0;y<dataMatrix[x].length;y++){if(dataMatrix[x][y]){dataMatrix[x][y].pointRight=x<dataMatrix.length-1?dataMatrix[x+1][y]:undefined;dataMatrix[x][y].pointTop=y<dataMatrix[x].length-1?dataMatrix[x][y+1]:undefined;dataMatrix[x][y].pointCross=x<dataMatrix.length-1&&y<dataMatrix[x].length-1?dataMatrix[x+1][y+1]:undefined}}}}else{this._checkValueField(data);dataPoints=this.getDataPoints(data);if(this.style===Graph3d.STYLE.LINE){for(i=0;i<dataPoints.length;i++){if(i>0){dataPoints[i-1].pointNext=dataPoints[i]}}}}return dataPoints};Graph3d.prototype.create=function(){while(this.containerElement.hasChildNodes()){this.containerElement.removeChild(this.containerElement.firstChild)}this.frame=document.createElement(\"div\");this.frame.style.position=\"relative\";this.frame.style.overflow=\"hidden\";this.frame.canvas=document.createElement(\"canvas\");this.frame.canvas.style.position=\"relative\";this.frame.appendChild(this.frame.canvas);{var noCanvas=document.createElement(\"DIV\");noCanvas.style.color=\"red\";noCanvas.style.fontWeight=\"bold\";noCanvas.style.padding=\"10px\";noCanvas.innerHTML=\"Error: your browser does not support HTML canvas\";this.frame.canvas.appendChild(noCanvas)}this.frame.filter=document.createElement(\"div\");this.frame.filter.style.position=\"absolute\";this.frame.filter.style.bottom=\"0px\";this.frame.filter.style.left=\"0px\";this.frame.filter.style.width=\"100%\";this.frame.appendChild(this.frame.filter);var me=this;var onmousedown=function onmousedown(event){me._onMouseDown(event)};var ontouchstart=function ontouchstart(event){me._onTouchStart(event)};var onmousewheel=function onmousewheel(event){me._onWheel(event)};var ontooltip=function ontooltip(event){me._onTooltip(event)};var onclick=function onclick(event){me._onClick(event)};util.addEventListener(this.frame.canvas,\"mousedown\",onmousedown);util.addEventListener(this.frame.canvas,\"touchstart\",ontouchstart);util.addEventListener(this.frame.canvas,\"mousewheel\",onmousewheel);util.addEventListener(this.frame.canvas,\"mousemove\",ontooltip);util.addEventListener(this.frame.canvas,\"click\",onclick);this.containerElement.appendChild(this.frame)};Graph3d.prototype._setSize=function(width,height){this.frame.style.width=width;this.frame.style.height=height;this._resizeCanvas()};Graph3d.prototype._resizeCanvas=function(){this.frame.canvas.style.width=\"100%\";this.frame.canvas.style.height=\"100%\";this.frame.canvas.width=this.frame.canvas.clientWidth;this.frame.canvas.height=this.frame.canvas.clientHeight;this.frame.filter.style.width=this.frame.canvas.clientWidth-2*10+\"px\"};Graph3d.prototype.animationStart=function(){if(!this.animationAutoStart||!this.dataGroup.dataFilter)return;if(!this.frame.filter||!this.frame.filter.slider)throw new Error(\"No animation available\");this.frame.filter.slider.play()};Graph3d.prototype.animationStop=function(){if(!this.frame.filter||!this.frame.filter.slider)return;this.frame.filter.slider.stop()};Graph3d.prototype._resizeCenter=function(){if(this.xCenter.charAt(this.xCenter.length-1)===\"%\"){this.currentXCenter=parseFloat(this.xCenter)/100*this.frame.canvas.clientWidth}else{this.currentXCenter=parseFloat(this.xCenter)}if(this.yCenter.charAt(this.yCenter.length-1)===\"%\"){this.currentYCenter=parseFloat(this.yCenter)/100*(this.frame.canvas.clientHeight-this.frame.filter.clientHeight)}else{this.currentYCenter=parseFloat(this.yCenter)}};Graph3d.prototype.getCameraPosition=function(){var pos=this.camera.getArmRotation();pos.distance=this.camera.getArmLength();return pos};Graph3d.prototype._readData=function(data){this.dataPoints=this.dataGroup.initializeData(this,data,this.style);this._initializeRanges();this._redrawFilter()};Graph3d.prototype.setData=function(data){if(data===undefined||data===null)return;this._readData(data);this.redraw();this.animationStart()};Graph3d.prototype.setOptions=function(options){if(options===undefined)return;var errorFound=Validator.validate(options,allOptions);if(errorFound===true){console.log(\"%cErrors have been found in the supplied options object.\",printStyle)}this.animationStop();Settings.setOptions(options,this);this.setPointDrawingMethod();this._setSize(this.width,this.height);this.setData(this.dataGroup.getDataTable());this.animationStart()};Graph3d.prototype.setPointDrawingMethod=function(){var method=undefined;switch(this.style){case Graph3d.STYLE.BAR:method=Graph3d.prototype._redrawBarGraphPoint;break;case Graph3d.STYLE.BARCOLOR:method=Graph3d.prototype._redrawBarColorGraphPoint;break;case Graph3d.STYLE.BARSIZE:method=Graph3d.prototype._redrawBarSizeGraphPoint;break;case Graph3d.STYLE.DOT:method=Graph3d.prototype._redrawDotGraphPoint;break;case Graph3d.STYLE.DOTLINE:method=Graph3d.prototype._redrawDotLineGraphPoint;break;case Graph3d.STYLE.DOTCOLOR:method=Graph3d.prototype._redrawDotColorGraphPoint;break;case Graph3d.STYLE.DOTSIZE:method=Graph3d.prototype._redrawDotSizeGraphPoint;break;case Graph3d.STYLE.SURFACE:method=Graph3d.prototype._redrawSurfaceGraphPoint;break;case Graph3d.STYLE.GRID:method=Graph3d.prototype._redrawGridGraphPoint;break;case Graph3d.STYLE.LINE:method=Graph3d.prototype._redrawLineGraphPoint;break;default:throw new Error(\"Can not determine point drawing method \"+\"for graph style '\"+this.style+\"'\")}this._pointDrawingMethod=method};Graph3d.prototype.redraw=function(){if(this.dataPoints===undefined){throw new Error(\"Graph data not initialized\")}this._resizeCanvas();this._resizeCenter();this._redrawSlider();this._redrawClear();this._redrawAxis();this._redrawDataGraph();this._redrawInfo();this._redrawLegend()};Graph3d.prototype._getContext=function(){var canvas=this.frame.canvas;var ctx=canvas.getContext(\"2d\");ctx.lineJoin=\"round\";ctx.lineCap=\"round\";return ctx};Graph3d.prototype._redrawClear=function(){var canvas=this.frame.canvas;var ctx=canvas.getContext(\"2d\");ctx.clearRect(0,0,canvas.width,canvas.height)};Graph3d.prototype._dotSize=function(){return this.frame.clientWidth*this.dotSizeRatio};Graph3d.prototype._getLegendWidth=function(){var width;if(this.style===Graph3d.STYLE.DOTSIZE){var dotSize=this._dotSize();width=dotSize*this.dotSizeMaxFraction}else if(this.style===Graph3d.STYLE.BARSIZE){width=this.xBarWidth}else{width=20}return width};Graph3d.prototype._redrawLegend=function(){if(this.showLegend!==true){return}if(this.style===Graph3d.STYLE.LINE||this.style===Graph3d.STYLE.BARSIZE){return}var isSizeLegend=this.style===Graph3d.STYLE.BARSIZE||this.style===Graph3d.STYLE.DOTSIZE;var isValueLegend=this.style===Graph3d.STYLE.DOTSIZE||this.style===Graph3d.STYLE.DOTCOLOR||this.style===Graph3d.STYLE.BARCOLOR;var height=Math.max(this.frame.clientHeight*.25,100);var top=this.margin;var width=this._getLegendWidth();var right=this.frame.clientWidth-this.margin;var left=right-width;var bottom=top+height;var ctx=this._getContext();ctx.lineWidth=1;ctx.font=\"14px arial\";if(isSizeLegend===false){var ymin=0;var ymax=height;var y;for(y=ymin;y<ymax;y++){var f=(y-ymin)/(ymax-ymin);var hue=f*240;var color=this._hsv2rgb(hue,1,1);ctx.strokeStyle=color;ctx.beginPath();ctx.moveTo(left,top+y);ctx.lineTo(right,top+y);ctx.stroke()}ctx.strokeStyle=this.axisColor;ctx.strokeRect(left,top,width,height)}else{var widthMin;if(this.style===Graph3d.STYLE.DOTSIZE){widthMin=width*(this.dotSizeMinFraction/this.dotSizeMaxFraction)}else if(this.style===Graph3d.STYLE.BARSIZE){}ctx.strokeStyle=this.axisColor;ctx.fillStyle=this.dataColor.fill;ctx.beginPath();ctx.moveTo(left,top);ctx.lineTo(right,top);ctx.lineTo(left+widthMin,bottom);ctx.lineTo(left,bottom);ctx.closePath();ctx.fill();ctx.stroke()}var gridLineLen=5;var legendMin=isValueLegend?this.valueRange.min:this.zRange.min;var legendMax=isValueLegend?this.valueRange.max:this.zRange.max;var step=new StepNumber(legendMin,legendMax,(legendMax-legendMin)/5,true);step.start(true);var from;var to;while(!step.end()){y=bottom-(step.getCurrent()-legendMin)/(legendMax-legendMin)*height;from=new Point2d(left-gridLineLen,y);to=new Point2d(left,y);this._line(ctx,from,to);ctx.textAlign=\"right\";ctx.textBaseline=\"middle\";ctx.fillStyle=this.axisColor;ctx.fillText(step.getCurrent(),left-2*gridLineLen,y);step.next()}ctx.textAlign=\"right\";ctx.textBaseline=\"top\";var label=this.legendLabel;ctx.fillText(label,right,bottom+this.margin)};Graph3d.prototype._redrawFilter=function(){var dataFilter=this.dataGroup.dataFilter;var filter=this.frame.filter;filter.innerHTML=\"\";if(!dataFilter){filter.slider=undefined;return}var options={visible:this.showAnimationControls};var slider=new Slider(filter,options);filter.slider=slider;filter.style.padding=\"10px\";slider.setValues(dataFilter.values);slider.setPlayInterval(this.animationInterval);var me=this;var onchange=function onchange(){var dataFilter=me.dataGroup.dataFilter;var index=slider.getIndex();dataFilter.selectValue(index);me.dataPoints=dataFilter._getDataPoints();me.redraw()};slider.setOnChangeCallback(onchange)};Graph3d.prototype._redrawSlider=function(){if(this.frame.filter.slider!==undefined){this.frame.filter.slider.redraw()}};Graph3d.prototype._redrawInfo=function(){var info=this.dataGroup.getInfo();if(info===undefined)return;var ctx=this._getContext();ctx.font=\"14px arial\";ctx.lineStyle=\"gray\";ctx.fillStyle=\"gray\";ctx.textAlign=\"left\";ctx.textBaseline=\"top\";var x=this.margin;var y=this.margin;ctx.fillText(info,x,y)};Graph3d.prototype._line=function(ctx,from,to,strokeStyle){if(strokeStyle!==undefined){ctx.strokeStyle=strokeStyle}ctx.beginPath();ctx.moveTo(from.x,from.y);ctx.lineTo(to.x,to.y);ctx.stroke()};Graph3d.prototype.drawAxisLabelX=function(ctx,point3d,text,armAngle,yMargin){if(yMargin===undefined){yMargin=0}var point2d=this._convert3Dto2D(point3d);if(Math.cos(armAngle*2)>0){ctx.textAlign=\"center\";ctx.textBaseline=\"top\";point2d.y+=yMargin}else if(Math.sin(armAngle*2)<0){ctx.textAlign=\"right\";ctx.textBaseline=\"middle\"}else{ctx.textAlign=\"left\";ctx.textBaseline=\"middle\"}ctx.fillStyle=this.axisColor;ctx.fillText(text,point2d.x,point2d.y)};Graph3d.prototype.drawAxisLabelY=function(ctx,point3d,text,armAngle,yMargin){if(yMargin===undefined){yMargin=0}var point2d=this._convert3Dto2D(point3d);if(Math.cos(armAngle*2)<0){ctx.textAlign=\"center\";ctx.textBaseline=\"top\";point2d.y+=yMargin}else if(Math.sin(armAngle*2)>0){ctx.textAlign=\"right\";ctx.textBaseline=\"middle\"}else{ctx.textAlign=\"left\";ctx.textBaseline=\"middle\"}ctx.fillStyle=this.axisColor;ctx.fillText(text,point2d.x,point2d.y)};Graph3d.prototype.drawAxisLabelZ=function(ctx,point3d,text,offset){if(offset===undefined){offset=0}var point2d=this._convert3Dto2D(point3d);ctx.textAlign=\"right\";ctx.textBaseline=\"middle\";ctx.fillStyle=this.axisColor;ctx.fillText(text,point2d.x-offset,point2d.y)};Graph3d.prototype._line3d=function(ctx,from,to,strokeStyle){var from2d=this._convert3Dto2D(from);var to2d=this._convert3Dto2D(to);this._line(ctx,from2d,to2d,strokeStyle)};Graph3d.prototype._redrawAxis=function(){var ctx=this._getContext(),from,to,step,prettyStep,text,xText,yText,zText,offset,xOffset,yOffset;ctx.font=24/this.camera.getArmLength()+\"px arial\";var gridLenX=.025/this.scale.x;var gridLenY=.025/this.scale.y;var textMargin=5/this.camera.getArmLength();var armAngle=this.camera.getArmRotation().horizontal;var armVector=new Point2d(Math.cos(armAngle),Math.sin(armAngle));var xRange=this.xRange;var yRange=this.yRange;var zRange=this.zRange;var point3d;ctx.lineWidth=1;prettyStep=this.defaultXStep===undefined;step=new StepNumber(xRange.min,xRange.max,this.xStep,prettyStep);step.start(true);while(!step.end()){var x=step.getCurrent();if(this.showGrid){from=new Point3d(x,yRange.min,zRange.min);to=new Point3d(x,yRange.max,zRange.min);this._line3d(ctx,from,to,this.gridColor)}else if(this.showXAxis){from=new Point3d(x,yRange.min,zRange.min);to=new Point3d(x,yRange.min+gridLenX,zRange.min);this._line3d(ctx,from,to,this.axisColor);from=new Point3d(x,yRange.max,zRange.min);to=new Point3d(x,yRange.max-gridLenX,zRange.min);this._line3d(ctx,from,to,this.axisColor)}if(this.showXAxis){yText=armVector.x>0?yRange.min:yRange.max;point3d=new Point3d(x,yText,zRange.min);var msg=\" \"+this.xValueLabel(x)+\" \";this.drawAxisLabelX(ctx,point3d,msg,armAngle,textMargin)}step.next()}ctx.lineWidth=1;prettyStep=this.defaultYStep===undefined;step=new StepNumber(yRange.min,yRange.max,this.yStep,prettyStep);step.start(true);while(!step.end()){var y=step.getCurrent();if(this.showGrid){from=new Point3d(xRange.min,y,zRange.min);to=new Point3d(xRange.max,y,zRange.min);this._line3d(ctx,from,to,this.gridColor)}else if(this.showYAxis){from=new Point3d(xRange.min,y,zRange.min);to=new Point3d(xRange.min+gridLenY,y,zRange.min);this._line3d(ctx,from,to,this.axisColor);from=new Point3d(xRange.max,y,zRange.min);to=new Point3d(xRange.max-gridLenY,y,zRange.min);this._line3d(ctx,from,to,this.axisColor)}if(this.showYAxis){xText=armVector.y>0?xRange.min:xRange.max;point3d=new Point3d(xText,y,zRange.min);var _msg=\" \"+this.yValueLabel(y)+\" \";this.drawAxisLabelY(ctx,point3d,_msg,armAngle,textMargin)}step.next()}if(this.showZAxis){ctx.lineWidth=1;prettyStep=this.defaultZStep===undefined;step=new StepNumber(zRange.min,zRange.max,this.zStep,prettyStep);step.start(true);xText=armVector.x>0?xRange.min:xRange.max;yText=armVector.y<0?yRange.min:yRange.max;while(!step.end()){var z=step.getCurrent();var from3d=new Point3d(xText,yText,z);var from2d=this._convert3Dto2D(from3d);to=new Point2d(from2d.x-textMargin,from2d.y);this._line(ctx,from2d,to,this.axisColor);var _msg2=this.zValueLabel(z)+\" \";this.drawAxisLabelZ(ctx,from3d,_msg2,5);step.next()}ctx.lineWidth=1;from=new Point3d(xText,yText,zRange.min);to=new Point3d(xText,yText,zRange.max);this._line3d(ctx,from,to,this.axisColor)}if(this.showXAxis){var xMin2d;var xMax2d;ctx.lineWidth=1;xMin2d=new Point3d(xRange.min,yRange.min,zRange.min);xMax2d=new Point3d(xRange.max,yRange.min,zRange.min);this._line3d(ctx,xMin2d,xMax2d,this.axisColor);xMin2d=new Point3d(xRange.min,yRange.max,zRange.min);xMax2d=new Point3d(xRange.max,yRange.max,zRange.min);this._line3d(ctx,xMin2d,xMax2d,this.axisColor)}if(this.showYAxis){ctx.lineWidth=1;from=new Point3d(xRange.min,yRange.min,zRange.min);to=new Point3d(xRange.min,yRange.max,zRange.min);this._line3d(ctx,from,to,this.axisColor);from=new Point3d(xRange.max,yRange.min,zRange.min);to=new Point3d(xRange.max,yRange.max,zRange.min);this._line3d(ctx,from,to,this.axisColor)}var xLabel=this.xLabel;if(xLabel.length>0&&this.showXAxis){yOffset=.1/this.scale.y;xText=(xRange.max+3*xRange.min)/4;yText=armVector.x>0?yRange.min-yOffset:yRange.max+yOffset\n;text=new Point3d(xText,yText,zRange.min);this.drawAxisLabelX(ctx,text,xLabel,armAngle)}var yLabel=this.yLabel;if(yLabel.length>0&&this.showYAxis){xOffset=.1/this.scale.x;xText=armVector.y>0?xRange.min-xOffset:xRange.max+xOffset;yText=(yRange.max+3*yRange.min)/4;text=new Point3d(xText,yText,zRange.min);this.drawAxisLabelY(ctx,text,yLabel,armAngle)}var zLabel=this.zLabel;if(zLabel.length>0&&this.showZAxis){offset=30;xText=armVector.x>0?xRange.min:xRange.max;yText=armVector.y<0?yRange.min:yRange.max;zText=(zRange.max+3*zRange.min)/4;text=new Point3d(xText,yText,zText);this.drawAxisLabelZ(ctx,text,zLabel,offset)}};Graph3d.prototype._hsv2rgb=function(H,S,V){var R,G,B,C,Hi,X;C=V*S;Hi=Math.floor(H/60);X=C*(1-Math.abs(H/60%2-1));switch(Hi){case 0:R=C;G=X;B=0;break;case 1:R=X;G=C;B=0;break;case 2:R=0;G=C;B=X;break;case 3:R=0;G=X;B=C;break;case 4:R=X;G=0;B=C;break;case 5:R=C;G=0;B=X;break;default:R=0;G=0;B=0;break}return\"RGB(\"+parseInt(R*255)+\",\"+parseInt(G*255)+\",\"+parseInt(B*255)+\")\"};Graph3d.prototype._getStrokeWidth=function(point){if(point!==undefined){if(this.showPerspective){return 1/-point.trans.z*this.dataColor.strokeWidth}else{return-(this.eye.z/this.camera.getArmLength())*this.dataColor.strokeWidth}}return this.dataColor.strokeWidth};Graph3d.prototype._redrawBar=function(ctx,point,xWidth,yWidth,color,borderColor){var surface;var me=this;var point3d=point.point;var zMin=this.zRange.min;var top=[{point:new Point3d(point3d.x-xWidth,point3d.y-yWidth,point3d.z)},{point:new Point3d(point3d.x+xWidth,point3d.y-yWidth,point3d.z)},{point:new Point3d(point3d.x+xWidth,point3d.y+yWidth,point3d.z)},{point:new Point3d(point3d.x-xWidth,point3d.y+yWidth,point3d.z)}];var bottom=[{point:new Point3d(point3d.x-xWidth,point3d.y-yWidth,zMin)},{point:new Point3d(point3d.x+xWidth,point3d.y-yWidth,zMin)},{point:new Point3d(point3d.x+xWidth,point3d.y+yWidth,zMin)},{point:new Point3d(point3d.x-xWidth,point3d.y+yWidth,zMin)}];top.forEach(function(obj){obj.screen=me._convert3Dto2D(obj.point)});bottom.forEach(function(obj){obj.screen=me._convert3Dto2D(obj.point)});var surfaces=[{corners:top,center:Point3d.avg(bottom[0].point,bottom[2].point)},{corners:[top[0],top[1],bottom[1],bottom[0]],center:Point3d.avg(bottom[1].point,bottom[0].point)},{corners:[top[1],top[2],bottom[2],bottom[1]],center:Point3d.avg(bottom[2].point,bottom[1].point)},{corners:[top[2],top[3],bottom[3],bottom[2]],center:Point3d.avg(bottom[3].point,bottom[2].point)},{corners:[top[3],top[0],bottom[0],bottom[3]],center:Point3d.avg(bottom[0].point,bottom[3].point)}];point.surfaces=surfaces;for(var j=0;j<surfaces.length;j++){surface=surfaces[j];var transCenter=this._convertPointToTranslation(surface.center);surface.dist=this.showPerspective?transCenter.length():-transCenter.z}surfaces.sort(function(a,b){var diff=b.dist-a.dist;if(diff)return diff;if(a.corners===top)return 1;if(b.corners===top)return-1;return 0});ctx.lineWidth=this._getStrokeWidth(point);ctx.strokeStyle=borderColor;ctx.fillStyle=color;for(var _j=2;_j<surfaces.length;_j++){surface=surfaces[_j];this._polygon(ctx,surface.corners)}};Graph3d.prototype._polygon=function(ctx,points,fillStyle,strokeStyle){if(points.length<2){return}if(fillStyle!==undefined){ctx.fillStyle=fillStyle}if(strokeStyle!==undefined){ctx.strokeStyle=strokeStyle}ctx.beginPath();ctx.moveTo(points[0].screen.x,points[0].screen.y);for(var i=1;i<points.length;++i){var point=points[i];ctx.lineTo(point.screen.x,point.screen.y)}ctx.closePath();ctx.fill();ctx.stroke()};Graph3d.prototype._drawCircle=function(ctx,point,color,borderColor,size){var radius=this._calcRadius(point,size);ctx.lineWidth=this._getStrokeWidth(point);ctx.strokeStyle=borderColor;ctx.fillStyle=color;ctx.beginPath();ctx.arc(point.screen.x,point.screen.y,radius,0,Math.PI*2,true);ctx.fill();ctx.stroke()};Graph3d.prototype._getColorsRegular=function(point){var hue=(1-(point.point.z-this.zRange.min)*this.scale.z/this.verticalRatio)*240;var color=this._hsv2rgb(hue,1,1);var borderColor=this._hsv2rgb(hue,1,.8);return{fill:color,border:borderColor}};Graph3d.prototype._getColorsColor=function(point){var color,borderColor;if(typeof point.point.value===\"string\"){color=point.point.value;borderColor=point.point.value}else{var hue=(1-(point.point.value-this.valueRange.min)*this.scale.value)*240;color=this._hsv2rgb(hue,1,1);borderColor=this._hsv2rgb(hue,1,.8)}return{fill:color,border:borderColor}};Graph3d.prototype._getColorsSize=function(){return{fill:this.dataColor.fill,border:this.dataColor.stroke}};Graph3d.prototype._calcRadius=function(point,size){if(size===undefined){size=this._dotSize()}var radius;if(this.showPerspective){radius=size/-point.trans.z}else{radius=size*-(this.eye.z/this.camera.getArmLength())}if(radius<0){radius=0}return radius};Graph3d.prototype._redrawBarGraphPoint=function(ctx,point){var xWidth=this.xBarWidth/2;var yWidth=this.yBarWidth/2;var colors=this._getColorsRegular(point);this._redrawBar(ctx,point,xWidth,yWidth,colors.fill,colors.border)};Graph3d.prototype._redrawBarColorGraphPoint=function(ctx,point){var xWidth=this.xBarWidth/2;var yWidth=this.yBarWidth/2;var colors=this._getColorsColor(point);this._redrawBar(ctx,point,xWidth,yWidth,colors.fill,colors.border)};Graph3d.prototype._redrawBarSizeGraphPoint=function(ctx,point){var fraction=(point.point.value-this.valueRange.min)/this.valueRange.range();var xWidth=this.xBarWidth/2*(fraction*.8+.2);var yWidth=this.yBarWidth/2*(fraction*.8+.2);var colors=this._getColorsSize();this._redrawBar(ctx,point,xWidth,yWidth,colors.fill,colors.border)};Graph3d.prototype._redrawDotGraphPoint=function(ctx,point){var colors=this._getColorsRegular(point);this._drawCircle(ctx,point,colors.fill,colors.border)};Graph3d.prototype._redrawDotLineGraphPoint=function(ctx,point){var from=this._convert3Dto2D(point.bottom);ctx.lineWidth=1;this._line(ctx,from,point.screen,this.gridColor);this._redrawDotGraphPoint(ctx,point)};Graph3d.prototype._redrawDotColorGraphPoint=function(ctx,point){var colors=this._getColorsColor(point);this._drawCircle(ctx,point,colors.fill,colors.border)};Graph3d.prototype._redrawDotSizeGraphPoint=function(ctx,point){var dotSize=this._dotSize();var fraction=(point.point.value-this.valueRange.min)/this.valueRange.range();var sizeMin=dotSize*this.dotSizeMinFraction;var sizeRange=dotSize*this.dotSizeMaxFraction-sizeMin;var size=sizeMin+sizeRange*fraction;var colors=this._getColorsSize();this._drawCircle(ctx,point,colors.fill,colors.border,size)};Graph3d.prototype._redrawSurfaceGraphPoint=function(ctx,point){var right=point.pointRight;var top=point.pointTop;var cross=point.pointCross;if(point===undefined||right===undefined||top===undefined||cross===undefined){return}var topSideVisible=true;var fillStyle;var strokeStyle;if(this.showGrayBottom||this.showShadow){var aDiff=Point3d.subtract(cross.trans,point.trans);var bDiff=Point3d.subtract(top.trans,right.trans);var crossproduct=Point3d.crossProduct(aDiff,bDiff);var len=crossproduct.length();topSideVisible=crossproduct.z>0}if(topSideVisible){var zAvg=(point.point.z+right.point.z+top.point.z+cross.point.z)/4;var h=(1-(zAvg-this.zRange.min)*this.scale.z/this.verticalRatio)*240;var s=1;var v;if(this.showShadow){v=Math.min(1+crossproduct.x/len/2,1);fillStyle=this._hsv2rgb(h,s,v);strokeStyle=fillStyle}else{v=1;fillStyle=this._hsv2rgb(h,s,v);strokeStyle=this.axisColor}}else{fillStyle=\"gray\";strokeStyle=this.axisColor}ctx.lineWidth=this._getStrokeWidth(point);var points=[point,right,cross,top];this._polygon(ctx,points,fillStyle,strokeStyle)};Graph3d.prototype._drawGridLine=function(ctx,from,to){if(from===undefined||to===undefined){return}var zAvg=(from.point.z+to.point.z)/2;var h=(1-(zAvg-this.zRange.min)*this.scale.z/this.verticalRatio)*240;ctx.lineWidth=this._getStrokeWidth(from)*2;ctx.strokeStyle=this._hsv2rgb(h,1,1);this._line(ctx,from.screen,to.screen)};Graph3d.prototype._redrawGridGraphPoint=function(ctx,point){this._drawGridLine(ctx,point,point.pointRight);this._drawGridLine(ctx,point,point.pointTop)};Graph3d.prototype._redrawLineGraphPoint=function(ctx,point){if(point.pointNext===undefined){return}ctx.lineWidth=this._getStrokeWidth(point);ctx.strokeStyle=this.dataColor.stroke;this._line(ctx,point.screen,point.pointNext.screen)};Graph3d.prototype._redrawDataGraph=function(){var ctx=this._getContext();var i;if(this.dataPoints===undefined||this.dataPoints.length<=0)return;this._calcTranslations(this.dataPoints);for(i=0;i<this.dataPoints.length;i++){var point=this.dataPoints[i];this._pointDrawingMethod.call(this,ctx,point)}};Graph3d.prototype._storeMousePosition=function(event){this.startMouseX=getMouseX(event);this.startMouseY=getMouseY(event);this._startCameraOffset=this.camera.getOffset()};Graph3d.prototype._onMouseDown=function(event){event=event||window.event;if(this.leftButtonDown){this._onMouseUp(event)}this.leftButtonDown=event.which?event.which===1:event.button===1;if(!this.leftButtonDown&&!this.touchDown)return;this._storeMousePosition(event);this.startStart=new Date(this.start);this.startEnd=new Date(this.end);this.startArmRotation=this.camera.getArmRotation();this.frame.style.cursor=\"move\";var me=this;this.onmousemove=function(event){me._onMouseMove(event)};this.onmouseup=function(event){me._onMouseUp(event)};util.addEventListener(document,\"mousemove\",me.onmousemove);util.addEventListener(document,\"mouseup\",me.onmouseup);util.preventDefault(event)};Graph3d.prototype._onMouseMove=function(event){this.moving=true;event=event||window.event;var diffX=parseFloat(getMouseX(event))-this.startMouseX;var diffY=parseFloat(getMouseY(event))-this.startMouseY;if(event&&event.ctrlKey===true){var scaleX=this.frame.clientWidth*.5;var scaleY=this.frame.clientHeight*.5;var offXNew=(this._startCameraOffset.x||0)-diffX/scaleX*this.camera.armLength*.8;var offYNew=(this._startCameraOffset.y||0)+diffY/scaleY*this.camera.armLength*.8;this.camera.setOffset(offXNew,offYNew);this._storeMousePosition(event)}else{var horizontalNew=this.startArmRotation.horizontal+diffX/200;var verticalNew=this.startArmRotation.vertical+diffY/200;var snapAngle=4;var snapValue=Math.sin(snapAngle/360*2*Math.PI);if(Math.abs(Math.sin(horizontalNew))<snapValue){horizontalNew=Math.round(horizontalNew/Math.PI)*Math.PI-.001}if(Math.abs(Math.cos(horizontalNew))<snapValue){horizontalNew=(Math.round(horizontalNew/Math.PI-.5)+.5)*Math.PI-.001}if(Math.abs(Math.sin(verticalNew))<snapValue){verticalNew=Math.round(verticalNew/Math.PI)*Math.PI}if(Math.abs(Math.cos(verticalNew))<snapValue){verticalNew=(Math.round(verticalNew/Math.PI-.5)+.5)*Math.PI}this.camera.setArmRotation(horizontalNew,verticalNew)}this.redraw();var parameters=this.getCameraPosition();this.emit(\"cameraPositionChange\",parameters);util.preventDefault(event)};Graph3d.prototype._onMouseUp=function(event){this.frame.style.cursor=\"auto\";this.leftButtonDown=false;util.removeEventListener(document,\"mousemove\",this.onmousemove);util.removeEventListener(document,\"mouseup\",this.onmouseup);util.preventDefault(event)};Graph3d.prototype._onClick=function(event){if(!this.onclick_callback)return;if(!this.moving){var boundingRect=this.frame.getBoundingClientRect();var mouseX=getMouseX(event)-boundingRect.left;var mouseY=getMouseY(event)-boundingRect.top;var dataPoint=this._dataPointFromXY(mouseX,mouseY);if(dataPoint)this.onclick_callback(dataPoint.point.data)}else{this.moving=false}util.preventDefault(event)};Graph3d.prototype._onTooltip=function(event){var delay=300;var boundingRect=this.frame.getBoundingClientRect();var mouseX=getMouseX(event)-boundingRect.left;var mouseY=getMouseY(event)-boundingRect.top;if(!this.showTooltip){return}if(this.tooltipTimeout){clearTimeout(this.tooltipTimeout)}if(this.leftButtonDown){this._hideTooltip();return}if(this.tooltip&&this.tooltip.dataPoint){var dataPoint=this._dataPointFromXY(mouseX,mouseY);if(dataPoint!==this.tooltip.dataPoint){if(dataPoint){this._showTooltip(dataPoint)}else{this._hideTooltip()}}}else{var me=this;this.tooltipTimeout=setTimeout(function(){me.tooltipTimeout=null;var dataPoint=me._dataPointFromXY(mouseX,mouseY);if(dataPoint){me._showTooltip(dataPoint)}},delay)}};Graph3d.prototype._onTouchStart=function(event){this.touchDown=true;var me=this;this.ontouchmove=function(event){me._onTouchMove(event)};this.ontouchend=function(event){me._onTouchEnd(event)};util.addEventListener(document,\"touchmove\",me.ontouchmove);util.addEventListener(document,\"touchend\",me.ontouchend);this._onMouseDown(event)};Graph3d.prototype._onTouchMove=function(event){this._onMouseMove(event)};Graph3d.prototype._onTouchEnd=function(event){this.touchDown=false;util.removeEventListener(document,\"touchmove\",this.ontouchmove);util.removeEventListener(document,\"touchend\",this.ontouchend);this._onMouseUp(event)};Graph3d.prototype._onWheel=function(event){if(!event)event=window.event;var delta=0;if(event.wheelDelta){delta=event.wheelDelta/120}else if(event.detail){delta=-event.detail/3}if(delta){var oldLength=this.camera.getArmLength();var newLength=oldLength*(1-delta/10);this.camera.setArmLength(newLength);this.redraw();this._hideTooltip()}var parameters=this.getCameraPosition();this.emit(\"cameraPositionChange\",parameters);util.preventDefault(event)};Graph3d.prototype._insideTriangle=function(point,triangle){var a=triangle[0],b=triangle[1],c=triangle[2];function sign(x){return x>0?1:x<0?-1:0}var as=sign((b.x-a.x)*(point.y-a.y)-(b.y-a.y)*(point.x-a.x));var bs=sign((c.x-b.x)*(point.y-b.y)-(c.y-b.y)*(point.x-b.x));var cs=sign((a.x-c.x)*(point.y-c.y)-(a.y-c.y)*(point.x-c.x));return(as==0||bs==0||as==bs)&&(bs==0||cs==0||bs==cs)&&(as==0||cs==0||as==cs)};Graph3d.prototype._dataPointFromXY=function(x,y){var i,distMax=100,dataPoint=null,closestDataPoint=null,closestDist=null,center=new Point2d(x,y);if(this.style===Graph3d.STYLE.BAR||this.style===Graph3d.STYLE.BARCOLOR||this.style===Graph3d.STYLE.BARSIZE){for(i=this.dataPoints.length-1;i>=0;i--){dataPoint=this.dataPoints[i];var surfaces=dataPoint.surfaces;if(surfaces){for(var s=surfaces.length-1;s>=0;s--){var surface=surfaces[s];var corners=surface.corners;var triangle1=[corners[0].screen,corners[1].screen,corners[2].screen];var triangle2=[corners[2].screen,corners[3].screen,corners[0].screen];if(this._insideTriangle(center,triangle1)||this._insideTriangle(center,triangle2)){return dataPoint}}}}}else{for(i=0;i<this.dataPoints.length;i++){dataPoint=this.dataPoints[i];var point=dataPoint.screen;if(point){var distX=Math.abs(x-point.x);var distY=Math.abs(y-point.y);var dist=Math.sqrt(distX*distX+distY*distY);if((closestDist===null||dist<closestDist)&&dist<distMax){closestDist=dist;closestDataPoint=dataPoint}}}}return closestDataPoint};Graph3d.prototype.hasBars=function(style){return style==Graph3d.STYLE.BAR||style==Graph3d.STYLE.BARCOLOR||style==Graph3d.STYLE.BARSIZE};Graph3d.prototype._showTooltip=function(dataPoint){var content,line,dot;if(!this.tooltip){content=document.createElement(\"div\");(0,_assign2[\"default\"])(content.style,{},this.tooltipStyle.content);content.style.position=\"absolute\";line=document.createElement(\"div\");(0,_assign2[\"default\"])(line.style,{},this.tooltipStyle.line);line.style.position=\"absolute\";dot=document.createElement(\"div\");(0,_assign2[\"default\"])(dot.style,{},this.tooltipStyle.dot);dot.style.position=\"absolute\";this.tooltip={dataPoint:null,dom:{content:content,line:line,dot:dot}}}else{content=this.tooltip.dom.content;line=this.tooltip.dom.line;dot=this.tooltip.dom.dot}this._hideTooltip();this.tooltip.dataPoint=dataPoint;if(typeof this.showTooltip===\"function\"){content.innerHTML=this.showTooltip(dataPoint.point)}else{content.innerHTML=\"<table>\"+\"<tr><td>\"+this.xLabel+\":</td><td>\"+dataPoint.point.x+\"</td></tr>\"+\"<tr><td>\"+this.yLabel+\":</td><td>\"+dataPoint.point.y+\"</td></tr>\"+\"<tr><td>\"+this.zLabel+\":</td><td>\"+dataPoint.point.z+\"</td></tr>\"+\"</table>\"}content.style.left=\"0\";content.style.top=\"0\";this.frame.appendChild(content);this.frame.appendChild(line);this.frame.appendChild(dot);var contentWidth=content.offsetWidth;var contentHeight=content.offsetHeight;var lineHeight=line.offsetHeight;var dotWidth=dot.offsetWidth;var dotHeight=dot.offsetHeight;var left=dataPoint.screen.x-contentWidth/2;left=Math.min(Math.max(left,10),this.frame.clientWidth-10-contentWidth);line.style.left=dataPoint.screen.x+\"px\";line.style.top=dataPoint.screen.y-lineHeight+\"px\";content.style.left=left+\"px\";content.style.top=dataPoint.screen.y-lineHeight-contentHeight+\"px\";dot.style.left=dataPoint.screen.x-dotWidth/2+\"px\";dot.style.top=dataPoint.screen.y-dotHeight/2+\"px\"};Graph3d.prototype._hideTooltip=function(){if(this.tooltip){this.tooltip.dataPoint=null;for(var prop in this.tooltip.dom){if(this.tooltip.dom.hasOwnProperty(prop)){var elem=this.tooltip.dom[prop];if(elem&&elem.parentNode){elem.parentNode.removeChild(elem)}}}}};function getMouseX(event){if(\"clientX\"in event)return event.clientX;return event.targetTouches[0]&&event.targetTouches[0].clientX||0}function getMouseY(event){if(\"clientY\"in event)return event.clientY;return event.targetTouches[0]&&event.targetTouches[0].clientY||0}Graph3d.prototype.setCameraPosition=function(pos){Settings.setCameraPosition(pos,this);this.redraw()};Graph3d.prototype.setSize=function(width,height){this._setSize(width,height);this.redraw()};module.exports=Graph3d},function(module,exports,__webpack_require__){__webpack_require__(163);module.exports=__webpack_require__(7).Object.assign},function(module,exports,__webpack_require__){var $export=__webpack_require__(17);$export($export.S+$export.F,\"Object\",{assign:__webpack_require__(164)})},function(module,exports,__webpack_require__){\"use strict\";var getKeys=__webpack_require__(33);var gOPS=__webpack_require__(63);var pIE=__webpack_require__(42);var toObject=__webpack_require__(41);var IObject=__webpack_require__(78);var $assign=Object.assign;module.exports=!$assign||__webpack_require__(28)(function(){var A={};var B={};var S=Symbol();var K=\"abcdefghijklmnopqrst\";A[S]=7;K.split(\"\").forEach(function(k){B[k]=k});return $assign({},A)[S]!=7||Object.keys($assign({},B)).join(\"\")!=K})?function assign(target,source){var T=toObject(target);var aLen=arguments.length;var index=1;var getSymbols=gOPS.f;var isEnum=pIE.f;while(aLen>index){var S=IObject(arguments[index++]);var keys=getSymbols?getKeys(S).concat(getSymbols(S)):getKeys(S);var length=keys.length;var j=0;var key;while(length>j)if(isEnum.call(S,key=keys[j++]))T[key]=S[key]}return T}:$assign},function(module,exports,__webpack_require__){module.exports={default:__webpack_require__(166),__esModule:true}},function(module,exports,__webpack_require__){__webpack_require__(167);module.exports=__webpack_require__(7).Math.sign},function(module,exports,__webpack_require__){var $export=__webpack_require__(17);$export($export.S,\"Math\",{sign:__webpack_require__(168)})},function(module,exports){module.exports=Math.sign||function sign(x){return(x=+x)==0||x!=x?x:x<0?-1:1}},function(module,exports,__webpack_require__){module.exports={default:__webpack_require__(170),__esModule:true}},function(module,exports,__webpack_require__){__webpack_require__(171);var $Object=__webpack_require__(7).Object;module.exports=function defineProperty(it,key,desc){return $Object.defineProperty(it,key,desc)}},function(module,exports,__webpack_require__){var $export=__webpack_require__(17);$export($export.S+$export.F*!__webpack_require__(21),\"Object\",{defineProperty:__webpack_require__(20).f})},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var string=\"string\";var bool=\"boolean\";var number=\"number\";var object=\"object\";var colorOptions={fill:{string:string},stroke:{string:string},strokeWidth:{number:number},__type__:{string:string,object:object,undefined:\"undefined\"}};var allOptions={animationAutoStart:{boolean:bool,undefined:\"undefined\"},animationInterval:{number:number},animationPreload:{boolean:bool},axisColor:{string:string},backgroundColor:colorOptions,xBarWidth:{number:number,undefined:\"undefined\"},yBarWidth:{number:number,undefined:\"undefined\"},cameraPosition:{distance:{number:number},horizontal:{number:number},vertical:{number:number},__type__:{object:object}},xCenter:{string:string},yCenter:{string:string},dataColor:colorOptions,dotSizeMinFraction:{number:number},dotSizeMaxFraction:{number:number},dotSizeRatio:{number:number},filterLabel:{string:string},gridColor:{string:string},onclick:{function:\"function\"},keepAspectRatio:{boolean:bool},xLabel:{string:string},yLabel:{string:string},zLabel:{string:string},legendLabel:{string:string},xMin:{number:number,undefined:\"undefined\"},yMin:{number:number,undefined:\"undefined\"},zMin:{number:number,undefined:\"undefined\"},xMax:{number:number,undefined:\"undefined\"},yMax:{number:number,undefined:\"undefined\"},zMax:{number:number,undefined:\"undefined\"},showAnimationControls:{boolean:bool,undefined:\"undefined\"},showGrid:{boolean:bool},showLegend:{boolean:bool,undefined:\"undefined\"},showPerspective:{boolean:bool},showShadow:{boolean:bool},showXAxis:{boolean:bool},showYAxis:{boolean:bool},showZAxis:{boolean:bool},xStep:{number:number,undefined:\"undefined\"},yStep:{number:number,undefined:\"undefined\"},zStep:{number:number,undefined:\"undefined\"},style:{number:number,string:[\"bar\",\"bar-color\",\"bar-size\",\"dot\",\"dot-line\",\"dot-color\",\"dot-size\",\"line\",\"grid\",\"surface\"]},tooltip:{boolean:bool,function:\"function\"},tooltipStyle:{content:{color:{string:string},background:{string:string},border:{string:string},borderRadius:{string:string},boxShadow:{string:string},padding:{string:string},__type__:{object:object}},line:{borderLeft:{string:string},height:{string:string},width:{string:string},__type__:{object:object}},dot:{border:{string:string},borderRadius:{string:string},height:{string:string},width:{string:string},__type__:{object:object}},__type__:{object:object}},xValueLabel:{function:\"function\"},yValueLabel:{function:\"function\"},zValueLabel:{function:\"function\"},valueMax:{number:number,undefined:\"undefined\"},valueMin:{number:number,undefined:\"undefined\"},verticalRatio:{number:number},height:{string:string},width:{string:string},__type__:{object:object}};exports.allOptions=allOptions},function(module,exports,__webpack_require__){\"use strict\";var DataSet=__webpack_require__(11);var DataView=__webpack_require__(12);var Range=__webpack_require__(174);var Filter=__webpack_require__(96);var Settings=__webpack_require__(94);var Point3d=__webpack_require__(34);function DataGroup(){this.dataTable=null}DataGroup.prototype.initializeData=function(graph3d,rawData,style){if(rawData===undefined)return;if(Array.isArray(rawData)){rawData=new DataSet(rawData)}var data;if(rawData instanceof DataSet||rawData instanceof DataView){data=rawData.get()}else{throw new Error(\"Array, DataSet, or DataView expected\")}if(data.length==0)return;this.style=style;if(this.dataSet){this.dataSet.off(\"*\",this._onChange)}this.dataSet=rawData;this.dataTable=data;var me=this;this._onChange=function(){graph3d.setData(me.dataSet)};this.dataSet.on(\"*\",this._onChange);this.colX=\"x\";this.colY=\"y\";this.colZ=\"z\";var withBars=graph3d.hasBars(style);if(withBars){if(graph3d.defaultXBarWidth!==undefined){this.xBarWidth=graph3d.defaultXBarWidth}else{this.xBarWidth=this.getSmallestDifference(data,this.colX)||1}if(graph3d.defaultYBarWidth!==undefined){this.yBarWidth=graph3d.defaultYBarWidth}else{this.yBarWidth=this.getSmallestDifference(data,this.colY)||1}}this._initializeRange(data,this.colX,graph3d,withBars);this._initializeRange(data,this.colY,graph3d,withBars);this._initializeRange(data,this.colZ,graph3d,false);if(data[0].hasOwnProperty(\"style\")){this.colValue=\"style\";var valueRange=this.getColumnRange(data,this.colValue);this._setRangeDefaults(valueRange,graph3d.defaultValueMin,graph3d.defaultValueMax);this.valueRange=valueRange}var table=this.getDataTable();if(table[0].hasOwnProperty(\"filter\")){if(this.dataFilter===undefined){this.dataFilter=new Filter(this,\"filter\",graph3d);this.dataFilter.setOnLoadCallback(function(){graph3d.redraw()})}}var dataPoints;if(this.dataFilter){dataPoints=this.dataFilter._getDataPoints()}else{dataPoints=this._getDataPoints(this.getDataTable())}return dataPoints};DataGroup.prototype._collectRangeSettings=function(column,graph3d){var index=[\"x\",\"y\",\"z\"].indexOf(column);if(index==-1){throw new Error(\"Column '\"+column+\"' invalid\")}var upper=column.toUpperCase();return{barWidth:this[column+\"BarWidth\"],min:graph3d[\"default\"+upper+\"Min\"],max:graph3d[\"default\"+upper+\"Max\"],step:graph3d[\"default\"+upper+\"Step\"],range_label:column+\"Range\",step_label:column+\"Step\"}};DataGroup.prototype._initializeRange=function(data,column,graph3d,withBars){var NUMSTEPS=5;var settings=this._collectRangeSettings(column,graph3d);var range=this.getColumnRange(data,column);if(withBars&&column!=\"z\"){range.expand(settings.barWidth/2)}this._setRangeDefaults(range,settings.min,settings.max);this[settings.range_label]=range;this[settings.step_label]=settings.step!==undefined?settings.step:range.range()/NUMSTEPS};DataGroup.prototype.getDistinctValues=function(column,data){if(data===undefined){data=this.dataTable}var values=[];for(var i=0;i<data.length;i++){var value=data[i][column]||0;if(values.indexOf(value)===-1){values.push(value)}}return values.sort(function(a,b){return a-b})};DataGroup.prototype.getSmallestDifference=function(data,column){var values=this.getDistinctValues(data,column);var smallest_diff=null;for(var i=1;i<values.length;i++){var diff=values[i]-values[i-1];if(smallest_diff==null||smallest_diff>diff){smallest_diff=diff}}return smallest_diff};DataGroup.prototype.getColumnRange=function(data,column){var range=new Range;for(var i=0;i<data.length;i++){var item=data[i][column];range.adjust(item)}return range};DataGroup.prototype.getNumberOfRows=function(){return this.dataTable.length};DataGroup.prototype._setRangeDefaults=function(range,defaultMin,defaultMax){if(defaultMin!==undefined){range.min=defaultMin}if(defaultMax!==undefined){range.max=defaultMax}if(range.max<=range.min)range.max=range.min+1};DataGroup.prototype.getDataTable=function(){return this.dataTable};DataGroup.prototype.getDataSet=function(){return this.dataSet};DataGroup.prototype.getDataPoints=function(data){var dataPoints=[];for(var i=0;i<data.length;i++){var point=new Point3d;point.x=data[i][this.colX]||0;point.y=data[i][this.colY]||0;point.z=data[i][this.colZ]||0;point.data=data[i];if(this.colValue!==undefined){point.value=data[i][this.colValue]||0}var obj={};obj.point=point;obj.bottom=new Point3d(point.x,point.y,this.zRange.min);obj.trans=undefined;obj.screen=undefined;dataPoints.push(obj)}return dataPoints};DataGroup.prototype.initDataAsMatrix=function(data){var x,y,i,obj;var dataX=this.getDistinctValues(this.colX,data);var dataY=this.getDistinctValues(this.colY,data);var dataPoints=this.getDataPoints(data);var dataMatrix=[];for(i=0;i<dataPoints.length;i++){obj=dataPoints[i];var xIndex=dataX.indexOf(obj.point.x);var yIndex=dataY.indexOf(obj.point.y);if(dataMatrix[xIndex]===undefined){dataMatrix[xIndex]=[]}dataMatrix[xIndex][yIndex]=obj}for(x=0;x<dataMatrix.length;x++){for(y=0;y<dataMatrix[x].length;y++){if(dataMatrix[x][y]){dataMatrix[x][y].pointRight=x<dataMatrix.length-1?dataMatrix[x+1][y]:undefined;dataMatrix[x][y].pointTop=y<dataMatrix[x].length-1?dataMatrix[x][y+1]:undefined;dataMatrix[x][y].pointCross=x<dataMatrix.length-1&&y<dataMatrix[x].length-1?dataMatrix[x+1][y+1]:undefined}}}return dataPoints};DataGroup.prototype.getInfo=function(){var dataFilter=this.dataFilter;if(!dataFilter)return undefined;return dataFilter.getLabel()+\": \"+dataFilter.getSelectedValue()};DataGroup.prototype.reload=function(){if(this.dataTable){this.setData(this.dataTable)}};DataGroup.prototype._getDataPoints=function(data){var dataPoints=[];if(this.style===Settings.STYLE.GRID||this.style===Settings.STYLE.SURFACE){dataPoints=this.initDataAsMatrix(data)}else{this._checkValueField(data);dataPoints=this.getDataPoints(data);if(this.style===Settings.STYLE.LINE){for(var i=0;i<dataPoints.length;i++){if(i>0){dataPoints[i-1].pointNext=dataPoints[i]}}}}return dataPoints};DataGroup.prototype._checkValueField=function(data){var hasValueField=this.style===Settings.STYLE.BARCOLOR||this.style===Settings.STYLE.BARSIZE||this.style===Settings.STYLE.DOTCOLOR||this.style===Settings.STYLE.DOTSIZE;if(!hasValueField){return}if(this.colValue===undefined){throw new Error(\"Expected data to have \"+\" field 'style' \"+\" for graph style '\"+this.style+\"'\")}if(data[0][this.colValue]===undefined){throw new Error(\"Expected data to have \"+\" field '\"+this.colValue+\"' \"+\" for graph style '\"+this.style+\"'\")}};module.exports=DataGroup},function(module,exports,__webpack_require__){\"use strict\";function Range(){this.min=undefined;this.max=undefined}Range.prototype.adjust=function(value){if(value===undefined)return;if(this.min===undefined||this.min>value){this.min=value}if(this.max===undefined||this.max<value){this.max=value}};Range.prototype.combine=function(range){this.add(range.min);this.add(range.max)};Range.prototype.expand=function(val){if(val===undefined){return}var newMin=this.min-val;var newMax=this.max+val;if(newMin>newMax){throw new Error(\"Passed expansion value makes range invalid\")}this.min=newMin;this.max=newMax};Range.prototype.range=function(){return this.max-this.min};Range.prototype.center=function(){return(this.min+this.max)/2};module.exports=Range},function(module,exports,__webpack_require__){\"use strict\";var __WEBPACK_AMD_DEFINE_FACTORY__,__WEBPACK_AMD_DEFINE_ARRAY__,__WEBPACK_AMD_DEFINE_RESULT__;(function(factory){if(true){!(__WEBPACK_AMD_DEFINE_ARRAY__=[],__WEBPACK_AMD_DEFINE_FACTORY__=factory,__WEBPACK_AMD_DEFINE_RESULT__=typeof __WEBPACK_AMD_DEFINE_FACTORY__===\"function\"?__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports,__WEBPACK_AMD_DEFINE_ARRAY__):__WEBPACK_AMD_DEFINE_FACTORY__,__WEBPACK_AMD_DEFINE_RESULT__!==undefined&&(module.exports=__WEBPACK_AMD_DEFINE_RESULT__))}else if(typeof exports===\"object\"){module.exports=factory()}else{window.propagating=factory()}})(function(){var _firstTarget=null;return function propagating(hammer,options){var _options=options||{preventDefault:false};if(hammer.Manager){var Hammer=hammer;var PropagatingHammer=function(element,options){var o=Object.create(_options);if(options)Hammer.assign(o,options);return propagating(new Hammer(element,o),o)};Hammer.assign(PropagatingHammer,Hammer);PropagatingHammer.Manager=function(element,options){var o=Object.create(_options);if(options)Hammer.assign(o,options);return propagating(new Hammer.Manager(element,o),o)};return PropagatingHammer}var wrapper=Object.create(hammer);var element=hammer.element;if(!element.hammer)element.hammer=[];element.hammer.push(wrapper);hammer.on(\"hammer.input\",function(event){if(_options.preventDefault===true||_options.preventDefault===event.pointerType){event.preventDefault()}if(event.isFirst){_firstTarget=event.target}});wrapper._handlers={};wrapper.on=function(events,handler){split(events).forEach(function(event){var _handlers=wrapper._handlers[event];if(!_handlers){wrapper._handlers[event]=_handlers=[];hammer.on(event,propagatedHandler)}_handlers.push(handler)});return wrapper};wrapper.off=function(events,handler){split(events).forEach(function(event){var _handlers=wrapper._handlers[event];if(_handlers){_handlers=handler?_handlers.filter(function(h){return h!==handler}):[];if(_handlers.length>0){wrapper._handlers[event]=_handlers}else{hammer.off(event,propagatedHandler);delete wrapper._handlers[event]}}});return wrapper};wrapper.emit=function(eventType,event){_firstTarget=event.target;hammer.emit(eventType,event)};wrapper.destroy=function(){var hammers=hammer.element.hammer;var idx=hammers.indexOf(wrapper);if(idx!==-1)hammers.splice(idx,1);if(!hammers.length)delete hammer.element.hammer;wrapper._handlers={};hammer.destroy()};function split(events){return events.match(/[^ ]+/g)}function propagatedHandler(event){if(event.type!==\"hammer.input\"){if(!event.srcEvent._handled){event.srcEvent._handled={}}if(event.srcEvent._handled[event.type]){return}else{event.srcEvent._handled[event.type]=true}}var stopped=false\n;event.stopPropagation=function(){stopped=true};var srcStop=event.srcEvent.stopPropagation.bind(event.srcEvent);if(typeof srcStop==\"function\"){event.srcEvent.stopPropagation=function(){srcStop();event.stopPropagation()}}event.firstTarget=_firstTarget;var elem=_firstTarget;while(elem&&!stopped){var elemHammer=elem.hammer;if(elemHammer){var _handlers;for(var k=0;k<elemHammer.length;k++){_handlers=elemHammer[k]._handlers[event.type];if(_handlers)for(var i=0;i<_handlers.length&&!stopped;i++){_handlers[i](event)}}}elem=elem.parentNode}}return wrapper}})},function(module,exports,__webpack_require__){var __WEBPACK_AMD_DEFINE_RESULT__;(function(window,document,exportName,undefined){\"use strict\";var VENDOR_PREFIXES=[\"\",\"webkit\",\"Moz\",\"MS\",\"ms\",\"o\"];var TEST_ELEMENT=document.createElement(\"div\");var TYPE_FUNCTION=\"function\";var round=Math.round;var abs=Math.abs;var now=Date.now;function setTimeoutContext(fn,timeout,context){return setTimeout(bindFn(fn,context),timeout)}function invokeArrayArg(arg,fn,context){if(Array.isArray(arg)){each(arg,context[fn],context);return true}return false}function each(obj,iterator,context){var i;if(!obj){return}if(obj.forEach){obj.forEach(iterator,context)}else if(obj.length!==undefined){i=0;while(i<obj.length){iterator.call(context,obj[i],i,obj);i++}}else{for(i in obj){obj.hasOwnProperty(i)&&iterator.call(context,obj[i],i,obj)}}}function deprecate(method,name,message){var deprecationMessage=\"DEPRECATED METHOD: \"+name+\"\\n\"+message+\" AT \\n\";return function(){var e=new Error(\"get-stack-trace\");var stack=e&&e.stack?e.stack.replace(/^[^\\(]+?[\\n$]/gm,\"\").replace(/^\\s+at\\s+/gm,\"\").replace(/^Object.<anonymous>\\s*\\(/gm,\"{anonymous}()@\"):\"Unknown Stack Trace\";var log=window.console&&(window.console.warn||window.console.log);if(log){log.call(window.console,deprecationMessage,stack)}return method.apply(this,arguments)}}var assign;if(typeof Object.assign!==\"function\"){assign=function assign(target){if(target===undefined||target===null){throw new TypeError(\"Cannot convert undefined or null to object\")}var output=Object(target);for(var index=1;index<arguments.length;index++){var source=arguments[index];if(source!==undefined&&source!==null){for(var nextKey in source){if(source.hasOwnProperty(nextKey)){output[nextKey]=source[nextKey]}}}}return output}}else{assign=Object.assign}var extend=deprecate(function extend(dest,src,merge){var keys=Object.keys(src);var i=0;while(i<keys.length){if(!merge||merge&&dest[keys[i]]===undefined){dest[keys[i]]=src[keys[i]]}i++}return dest},\"extend\",\"Use `assign`.\");var merge=deprecate(function merge(dest,src){return extend(dest,src,true)},\"merge\",\"Use `assign`.\");function inherit(child,base,properties){var baseP=base.prototype,childP;childP=child.prototype=Object.create(baseP);childP.constructor=child;childP._super=baseP;if(properties){assign(childP,properties)}}function bindFn(fn,context){return function boundFn(){return fn.apply(context,arguments)}}function boolOrFn(val,args){if(typeof val==TYPE_FUNCTION){return val.apply(args?args[0]||undefined:undefined,args)}return val}function ifUndefined(val1,val2){return val1===undefined?val2:val1}function addEventListeners(target,types,handler){each(splitStr(types),function(type){target.addEventListener(type,handler,false)})}function removeEventListeners(target,types,handler){each(splitStr(types),function(type){target.removeEventListener(type,handler,false)})}function hasParent(node,parent){while(node){if(node==parent){return true}node=node.parentNode}return false}function inStr(str,find){return str.indexOf(find)>-1}function splitStr(str){return str.trim().split(/\\s+/g)}function inArray(src,find,findByKey){if(src.indexOf&&!findByKey){return src.indexOf(find)}else{var i=0;while(i<src.length){if(findByKey&&src[i][findByKey]==find||!findByKey&&src[i]===find){return i}i++}return-1}}function toArray(obj){return Array.prototype.slice.call(obj,0)}function uniqueArray(src,key,sort){var results=[];var values=[];var i=0;while(i<src.length){var val=key?src[i][key]:src[i];if(inArray(values,val)<0){results.push(src[i])}values[i]=val;i++}if(sort){if(!key){results=results.sort()}else{results=results.sort(function sortUniqueArray(a,b){return a[key]>b[key]})}}return results}function prefixed(obj,property){var prefix,prop;var camelProp=property[0].toUpperCase()+property.slice(1);var i=0;while(i<VENDOR_PREFIXES.length){prefix=VENDOR_PREFIXES[i];prop=prefix?prefix+camelProp:property;if(prop in obj){return prop}i++}return undefined}var _uniqueId=1;function uniqueId(){return _uniqueId++}function getWindowForElement(element){var doc=element.ownerDocument||element;return doc.defaultView||doc.parentWindow||window}var MOBILE_REGEX=/mobile|tablet|ip(ad|hone|od)|android/i;var SUPPORT_TOUCH=\"ontouchstart\"in window;var SUPPORT_POINTER_EVENTS=prefixed(window,\"PointerEvent\")!==undefined;var SUPPORT_ONLY_TOUCH=SUPPORT_TOUCH&&MOBILE_REGEX.test(navigator.userAgent);var INPUT_TYPE_TOUCH=\"touch\";var INPUT_TYPE_PEN=\"pen\";var INPUT_TYPE_MOUSE=\"mouse\";var INPUT_TYPE_KINECT=\"kinect\";var COMPUTE_INTERVAL=25;var INPUT_START=1;var INPUT_MOVE=2;var INPUT_END=4;var INPUT_CANCEL=8;var DIRECTION_NONE=1;var DIRECTION_LEFT=2;var DIRECTION_RIGHT=4;var DIRECTION_UP=8;var DIRECTION_DOWN=16;var DIRECTION_HORIZONTAL=DIRECTION_LEFT|DIRECTION_RIGHT;var DIRECTION_VERTICAL=DIRECTION_UP|DIRECTION_DOWN;var DIRECTION_ALL=DIRECTION_HORIZONTAL|DIRECTION_VERTICAL;var PROPS_XY=[\"x\",\"y\"];var PROPS_CLIENT_XY=[\"clientX\",\"clientY\"];function Input(manager,callback){var self=this;this.manager=manager;this.callback=callback;this.element=manager.element;this.target=manager.options.inputTarget;this.domHandler=function(ev){if(boolOrFn(manager.options.enable,[manager])){self.handler(ev)}};this.init()}Input.prototype={handler:function(){},init:function(){this.evEl&&addEventListeners(this.element,this.evEl,this.domHandler);this.evTarget&&addEventListeners(this.target,this.evTarget,this.domHandler);this.evWin&&addEventListeners(getWindowForElement(this.element),this.evWin,this.domHandler)},destroy:function(){this.evEl&&removeEventListeners(this.element,this.evEl,this.domHandler);this.evTarget&&removeEventListeners(this.target,this.evTarget,this.domHandler);this.evWin&&removeEventListeners(getWindowForElement(this.element),this.evWin,this.domHandler)}};function createInputInstance(manager){var Type;var inputClass=manager.options.inputClass;if(inputClass){Type=inputClass}else if(SUPPORT_POINTER_EVENTS){Type=PointerEventInput}else if(SUPPORT_ONLY_TOUCH){Type=TouchInput}else if(!SUPPORT_TOUCH){Type=MouseInput}else{Type=TouchMouseInput}return new Type(manager,inputHandler)}function inputHandler(manager,eventType,input){var pointersLen=input.pointers.length;var changedPointersLen=input.changedPointers.length;var isFirst=eventType&INPUT_START&&pointersLen-changedPointersLen===0;var isFinal=eventType&(INPUT_END|INPUT_CANCEL)&&pointersLen-changedPointersLen===0;input.isFirst=!!isFirst;input.isFinal=!!isFinal;if(isFirst){manager.session={}}input.eventType=eventType;computeInputData(manager,input);manager.emit(\"hammer.input\",input);manager.recognize(input);manager.session.prevInput=input}function computeInputData(manager,input){var session=manager.session;var pointers=input.pointers;var pointersLength=pointers.length;if(!session.firstInput){session.firstInput=simpleCloneInputData(input)}if(pointersLength>1&&!session.firstMultiple){session.firstMultiple=simpleCloneInputData(input)}else if(pointersLength===1){session.firstMultiple=false}var firstInput=session.firstInput;var firstMultiple=session.firstMultiple;var offsetCenter=firstMultiple?firstMultiple.center:firstInput.center;var center=input.center=getCenter(pointers);input.timeStamp=now();input.deltaTime=input.timeStamp-firstInput.timeStamp;input.angle=getAngle(offsetCenter,center);input.distance=getDistance(offsetCenter,center);computeDeltaXY(session,input);input.offsetDirection=getDirection(input.deltaX,input.deltaY);var overallVelocity=getVelocity(input.deltaTime,input.deltaX,input.deltaY);input.overallVelocityX=overallVelocity.x;input.overallVelocityY=overallVelocity.y;input.overallVelocity=abs(overallVelocity.x)>abs(overallVelocity.y)?overallVelocity.x:overallVelocity.y;input.scale=firstMultiple?getScale(firstMultiple.pointers,pointers):1;input.rotation=firstMultiple?getRotation(firstMultiple.pointers,pointers):0;input.maxPointers=!session.prevInput?input.pointers.length:input.pointers.length>session.prevInput.maxPointers?input.pointers.length:session.prevInput.maxPointers;computeIntervalInputData(session,input);var target=manager.element;if(hasParent(input.srcEvent.target,target)){target=input.srcEvent.target}input.target=target}function computeDeltaXY(session,input){var center=input.center;var offset=session.offsetDelta||{};var prevDelta=session.prevDelta||{};var prevInput=session.prevInput||{};if(input.eventType===INPUT_START||prevInput.eventType===INPUT_END){prevDelta=session.prevDelta={x:prevInput.deltaX||0,y:prevInput.deltaY||0};offset=session.offsetDelta={x:center.x,y:center.y}}input.deltaX=prevDelta.x+(center.x-offset.x);input.deltaY=prevDelta.y+(center.y-offset.y)}function computeIntervalInputData(session,input){var last=session.lastInterval||input,deltaTime=input.timeStamp-last.timeStamp,velocity,velocityX,velocityY,direction;if(input.eventType!=INPUT_CANCEL&&(deltaTime>COMPUTE_INTERVAL||last.velocity===undefined)){var deltaX=input.deltaX-last.deltaX;var deltaY=input.deltaY-last.deltaY;var v=getVelocity(deltaTime,deltaX,deltaY);velocityX=v.x;velocityY=v.y;velocity=abs(v.x)>abs(v.y)?v.x:v.y;direction=getDirection(deltaX,deltaY);session.lastInterval=input}else{velocity=last.velocity;velocityX=last.velocityX;velocityY=last.velocityY;direction=last.direction}input.velocity=velocity;input.velocityX=velocityX;input.velocityY=velocityY;input.direction=direction}function simpleCloneInputData(input){var pointers=[];var i=0;while(i<input.pointers.length){pointers[i]={clientX:round(input.pointers[i].clientX),clientY:round(input.pointers[i].clientY)};i++}return{timeStamp:now(),pointers:pointers,center:getCenter(pointers),deltaX:input.deltaX,deltaY:input.deltaY}}function getCenter(pointers){var pointersLength=pointers.length;if(pointersLength===1){return{x:round(pointers[0].clientX),y:round(pointers[0].clientY)}}var x=0,y=0,i=0;while(i<pointersLength){x+=pointers[i].clientX;y+=pointers[i].clientY;i++}return{x:round(x/pointersLength),y:round(y/pointersLength)}}function getVelocity(deltaTime,x,y){return{x:x/deltaTime||0,y:y/deltaTime||0}}function getDirection(x,y){if(x===y){return DIRECTION_NONE}if(abs(x)>=abs(y)){return x<0?DIRECTION_LEFT:DIRECTION_RIGHT}return y<0?DIRECTION_UP:DIRECTION_DOWN}function getDistance(p1,p2,props){if(!props){props=PROPS_XY}var x=p2[props[0]]-p1[props[0]],y=p2[props[1]]-p1[props[1]];return Math.sqrt(x*x+y*y)}function getAngle(p1,p2,props){if(!props){props=PROPS_XY}var x=p2[props[0]]-p1[props[0]],y=p2[props[1]]-p1[props[1]];return Math.atan2(y,x)*180/Math.PI}function getRotation(start,end){return getAngle(end[1],end[0],PROPS_CLIENT_XY)+getAngle(start[1],start[0],PROPS_CLIENT_XY)}function getScale(start,end){return getDistance(end[0],end[1],PROPS_CLIENT_XY)/getDistance(start[0],start[1],PROPS_CLIENT_XY)}var MOUSE_INPUT_MAP={mousedown:INPUT_START,mousemove:INPUT_MOVE,mouseup:INPUT_END};var MOUSE_ELEMENT_EVENTS=\"mousedown\";var MOUSE_WINDOW_EVENTS=\"mousemove mouseup\";function MouseInput(){this.evEl=MOUSE_ELEMENT_EVENTS;this.evWin=MOUSE_WINDOW_EVENTS;this.pressed=false;Input.apply(this,arguments)}inherit(MouseInput,Input,{handler:function MEhandler(ev){var eventType=MOUSE_INPUT_MAP[ev.type];if(eventType&INPUT_START&&ev.button===0){this.pressed=true}if(eventType&INPUT_MOVE&&ev.which!==1){eventType=INPUT_END}if(!this.pressed){return}if(eventType&INPUT_END){this.pressed=false}this.callback(this.manager,eventType,{pointers:[ev],changedPointers:[ev],pointerType:INPUT_TYPE_MOUSE,srcEvent:ev})}});var POINTER_INPUT_MAP={pointerdown:INPUT_START,pointermove:INPUT_MOVE,pointerup:INPUT_END,pointercancel:INPUT_CANCEL,pointerout:INPUT_CANCEL};var IE10_POINTER_TYPE_ENUM={2:INPUT_TYPE_TOUCH,3:INPUT_TYPE_PEN,4:INPUT_TYPE_MOUSE,5:INPUT_TYPE_KINECT};var POINTER_ELEMENT_EVENTS=\"pointerdown\";var POINTER_WINDOW_EVENTS=\"pointermove pointerup pointercancel\";if(window.MSPointerEvent&&!window.PointerEvent){POINTER_ELEMENT_EVENTS=\"MSPointerDown\";POINTER_WINDOW_EVENTS=\"MSPointerMove MSPointerUp MSPointerCancel\"}function PointerEventInput(){this.evEl=POINTER_ELEMENT_EVENTS;this.evWin=POINTER_WINDOW_EVENTS;Input.apply(this,arguments);this.store=this.manager.session.pointerEvents=[]}inherit(PointerEventInput,Input,{handler:function PEhandler(ev){var store=this.store;var removePointer=false;var eventTypeNormalized=ev.type.toLowerCase().replace(\"ms\",\"\");var eventType=POINTER_INPUT_MAP[eventTypeNormalized];var pointerType=IE10_POINTER_TYPE_ENUM[ev.pointerType]||ev.pointerType;var isTouch=pointerType==INPUT_TYPE_TOUCH;var storeIndex=inArray(store,ev.pointerId,\"pointerId\");if(eventType&INPUT_START&&(ev.button===0||isTouch)){if(storeIndex<0){store.push(ev);storeIndex=store.length-1}}else if(eventType&(INPUT_END|INPUT_CANCEL)){removePointer=true}if(storeIndex<0){return}store[storeIndex]=ev;this.callback(this.manager,eventType,{pointers:store,changedPointers:[ev],pointerType:pointerType,srcEvent:ev});if(removePointer){store.splice(storeIndex,1)}}});var SINGLE_TOUCH_INPUT_MAP={touchstart:INPUT_START,touchmove:INPUT_MOVE,touchend:INPUT_END,touchcancel:INPUT_CANCEL};var SINGLE_TOUCH_TARGET_EVENTS=\"touchstart\";var SINGLE_TOUCH_WINDOW_EVENTS=\"touchstart touchmove touchend touchcancel\";function SingleTouchInput(){this.evTarget=SINGLE_TOUCH_TARGET_EVENTS;this.evWin=SINGLE_TOUCH_WINDOW_EVENTS;this.started=false;Input.apply(this,arguments)}inherit(SingleTouchInput,Input,{handler:function TEhandler(ev){var type=SINGLE_TOUCH_INPUT_MAP[ev.type];if(type===INPUT_START){this.started=true}if(!this.started){return}var touches=normalizeSingleTouches.call(this,ev,type);if(type&(INPUT_END|INPUT_CANCEL)&&touches[0].length-touches[1].length===0){this.started=false}this.callback(this.manager,type,{pointers:touches[0],changedPointers:touches[1],pointerType:INPUT_TYPE_TOUCH,srcEvent:ev})}});function normalizeSingleTouches(ev,type){var all=toArray(ev.touches);var changed=toArray(ev.changedTouches);if(type&(INPUT_END|INPUT_CANCEL)){all=uniqueArray(all.concat(changed),\"identifier\",true)}return[all,changed]}var TOUCH_INPUT_MAP={touchstart:INPUT_START,touchmove:INPUT_MOVE,touchend:INPUT_END,touchcancel:INPUT_CANCEL};var TOUCH_TARGET_EVENTS=\"touchstart touchmove touchend touchcancel\";function TouchInput(){this.evTarget=TOUCH_TARGET_EVENTS;this.targetIds={};Input.apply(this,arguments)}inherit(TouchInput,Input,{handler:function MTEhandler(ev){var type=TOUCH_INPUT_MAP[ev.type];var touches=getTouches.call(this,ev,type);if(!touches){return}this.callback(this.manager,type,{pointers:touches[0],changedPointers:touches[1],pointerType:INPUT_TYPE_TOUCH,srcEvent:ev})}});function getTouches(ev,type){var allTouches=toArray(ev.touches);var targetIds=this.targetIds;if(type&(INPUT_START|INPUT_MOVE)&&allTouches.length===1){targetIds[allTouches[0].identifier]=true;return[allTouches,allTouches]}var i,targetTouches,changedTouches=toArray(ev.changedTouches),changedTargetTouches=[],target=this.target;targetTouches=allTouches.filter(function(touch){return hasParent(touch.target,target)});if(type===INPUT_START){i=0;while(i<targetTouches.length){targetIds[targetTouches[i].identifier]=true;i++}}i=0;while(i<changedTouches.length){if(targetIds[changedTouches[i].identifier]){changedTargetTouches.push(changedTouches[i])}if(type&(INPUT_END|INPUT_CANCEL)){delete targetIds[changedTouches[i].identifier]}i++}if(!changedTargetTouches.length){return}return[uniqueArray(targetTouches.concat(changedTargetTouches),\"identifier\",true),changedTargetTouches]}var DEDUP_TIMEOUT=2500;var DEDUP_DISTANCE=25;function TouchMouseInput(){Input.apply(this,arguments);var handler=bindFn(this.handler,this);this.touch=new TouchInput(this.manager,handler);this.mouse=new MouseInput(this.manager,handler);this.primaryTouch=null;this.lastTouches=[]}inherit(TouchMouseInput,Input,{handler:function TMEhandler(manager,inputEvent,inputData){var isTouch=inputData.pointerType==INPUT_TYPE_TOUCH,isMouse=inputData.pointerType==INPUT_TYPE_MOUSE;if(isMouse&&inputData.sourceCapabilities&&inputData.sourceCapabilities.firesTouchEvents){return}if(isTouch){recordTouches.call(this,inputEvent,inputData)}else if(isMouse&&isSyntheticEvent.call(this,inputData)){return}this.callback(manager,inputEvent,inputData)},destroy:function destroy(){this.touch.destroy();this.mouse.destroy()}});function recordTouches(eventType,eventData){if(eventType&INPUT_START){this.primaryTouch=eventData.changedPointers[0].identifier;setLastTouch.call(this,eventData)}else if(eventType&(INPUT_END|INPUT_CANCEL)){setLastTouch.call(this,eventData)}}function setLastTouch(eventData){var touch=eventData.changedPointers[0];if(touch.identifier===this.primaryTouch){var lastTouch={x:touch.clientX,y:touch.clientY};this.lastTouches.push(lastTouch);var lts=this.lastTouches;var removeLastTouch=function(){var i=lts.indexOf(lastTouch);if(i>-1){lts.splice(i,1)}};setTimeout(removeLastTouch,DEDUP_TIMEOUT)}}function isSyntheticEvent(eventData){var x=eventData.srcEvent.clientX,y=eventData.srcEvent.clientY;for(var i=0;i<this.lastTouches.length;i++){var t=this.lastTouches[i];var dx=Math.abs(x-t.x),dy=Math.abs(y-t.y);if(dx<=DEDUP_DISTANCE&&dy<=DEDUP_DISTANCE){return true}}return false}var PREFIXED_TOUCH_ACTION=prefixed(TEST_ELEMENT.style,\"touchAction\");var NATIVE_TOUCH_ACTION=PREFIXED_TOUCH_ACTION!==undefined;var TOUCH_ACTION_COMPUTE=\"compute\";var TOUCH_ACTION_AUTO=\"auto\";var TOUCH_ACTION_MANIPULATION=\"manipulation\";var TOUCH_ACTION_NONE=\"none\";var TOUCH_ACTION_PAN_X=\"pan-x\";var TOUCH_ACTION_PAN_Y=\"pan-y\";var TOUCH_ACTION_MAP=getTouchActionProps();function TouchAction(manager,value){this.manager=manager;this.set(value)}TouchAction.prototype={set:function(value){if(value==TOUCH_ACTION_COMPUTE){value=this.compute()}if(NATIVE_TOUCH_ACTION&&this.manager.element.style&&TOUCH_ACTION_MAP[value]){this.manager.element.style[PREFIXED_TOUCH_ACTION]=value}this.actions=value.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var actions=[];each(this.manager.recognizers,function(recognizer){if(boolOrFn(recognizer.options.enable,[recognizer])){actions=actions.concat(recognizer.getTouchAction())}});return cleanTouchActions(actions.join(\" \"))},preventDefaults:function(input){var srcEvent=input.srcEvent;var direction=input.offsetDirection;if(this.manager.session.prevented){srcEvent.preventDefault();return}var actions=this.actions;var hasNone=inStr(actions,TOUCH_ACTION_NONE)&&!TOUCH_ACTION_MAP[TOUCH_ACTION_NONE];var hasPanY=inStr(actions,TOUCH_ACTION_PAN_Y)&&!TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_Y];var hasPanX=inStr(actions,TOUCH_ACTION_PAN_X)&&!TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_X];if(hasNone){var isTapPointer=input.pointers.length===1;var isTapMovement=input.distance<2;var isTapTouchTime=input.deltaTime<250;if(isTapPointer&&isTapMovement&&isTapTouchTime){return}}if(hasPanX&&hasPanY){return}if(hasNone||hasPanY&&direction&DIRECTION_HORIZONTAL||hasPanX&&direction&DIRECTION_VERTICAL){return this.preventSrc(srcEvent)}},preventSrc:function(srcEvent){this.manager.session.prevented=true;srcEvent.preventDefault()}};function cleanTouchActions(actions){if(inStr(actions,TOUCH_ACTION_NONE)){return TOUCH_ACTION_NONE}var hasPanX=inStr(actions,TOUCH_ACTION_PAN_X);var hasPanY=inStr(actions,TOUCH_ACTION_PAN_Y);if(hasPanX&&hasPanY){return TOUCH_ACTION_NONE}if(hasPanX||hasPanY){return hasPanX?TOUCH_ACTION_PAN_X:TOUCH_ACTION_PAN_Y}if(inStr(actions,TOUCH_ACTION_MANIPULATION)){return TOUCH_ACTION_MANIPULATION}return TOUCH_ACTION_AUTO}function getTouchActionProps(){if(!NATIVE_TOUCH_ACTION){return false}var touchMap={};var cssSupports=window.CSS&&window.CSS.supports;[\"auto\",\"manipulation\",\"pan-y\",\"pan-x\",\"pan-x pan-y\",\"none\"].forEach(function(val){touchMap[val]=cssSupports?window.CSS.supports(\"touch-action\",val):true});return touchMap}var STATE_POSSIBLE=1;var STATE_BEGAN=2;var STATE_CHANGED=4;var STATE_ENDED=8;var STATE_RECOGNIZED=STATE_ENDED;var STATE_CANCELLED=16;var STATE_FAILED=32;function Recognizer(options){this.options=assign({},this.defaults,options||{});this.id=uniqueId();this.manager=null;this.options.enable=ifUndefined(this.options.enable,true);this.state=STATE_POSSIBLE;this.simultaneous={};this.requireFail=[]}Recognizer.prototype={defaults:{},set:function(options){assign(this.options,options);this.manager&&this.manager.touchAction.update();return this},recognizeWith:function(otherRecognizer){if(invokeArrayArg(otherRecognizer,\"recognizeWith\",this)){return this}var simultaneous=this.simultaneous;otherRecognizer=getRecognizerByNameIfManager(otherRecognizer,this);if(!simultaneous[otherRecognizer.id]){simultaneous[otherRecognizer.id]=otherRecognizer;otherRecognizer.recognizeWith(this)}return this},dropRecognizeWith:function(otherRecognizer){if(invokeArrayArg(otherRecognizer,\"dropRecognizeWith\",this)){return this}otherRecognizer=getRecognizerByNameIfManager(otherRecognizer,this);delete this.simultaneous[otherRecognizer.id];return this},requireFailure:function(otherRecognizer){if(invokeArrayArg(otherRecognizer,\"requireFailure\",this)){return this}var requireFail=this.requireFail;otherRecognizer=getRecognizerByNameIfManager(otherRecognizer,this);if(inArray(requireFail,otherRecognizer)===-1){requireFail.push(otherRecognizer);otherRecognizer.requireFailure(this)}return this},dropRequireFailure:function(otherRecognizer){if(invokeArrayArg(otherRecognizer,\"dropRequireFailure\",this)){return this}otherRecognizer=getRecognizerByNameIfManager(otherRecognizer,this);var index=inArray(this.requireFail,otherRecognizer);if(index>-1){this.requireFail.splice(index,1)}return this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(otherRecognizer){return!!this.simultaneous[otherRecognizer.id]},emit:function(input){var self=this;var state=this.state;function emit(event){self.manager.emit(event,input)}if(state<STATE_ENDED){emit(self.options.event+stateStr(state))}emit(self.options.event);if(input.additionalEvent){emit(input.additionalEvent)}if(state>=STATE_ENDED){emit(self.options.event+stateStr(state))}},tryEmit:function(input){if(this.canEmit()){return this.emit(input)}this.state=STATE_FAILED},canEmit:function(){var i=0;while(i<this.requireFail.length){if(!(this.requireFail[i].state&(STATE_FAILED|STATE_POSSIBLE))){return false}i++}return true},recognize:function(inputData){var inputDataClone=assign({},inputData);if(!boolOrFn(this.options.enable,[this,inputDataClone])){this.reset();this.state=STATE_FAILED;return}if(this.state&(STATE_RECOGNIZED|STATE_CANCELLED|STATE_FAILED)){this.state=STATE_POSSIBLE}this.state=this.process(inputDataClone);if(this.state&(STATE_BEGAN|STATE_CHANGED|STATE_ENDED|STATE_CANCELLED)){this.tryEmit(inputDataClone)}},process:function(inputData){},getTouchAction:function(){},reset:function(){}};function stateStr(state){if(state&STATE_CANCELLED){return\"cancel\"}else if(state&STATE_ENDED){return\"end\"}else if(state&STATE_CHANGED){return\"move\"}else if(state&STATE_BEGAN){return\"start\"}return\"\"}function directionStr(direction){if(direction==DIRECTION_DOWN){return\"down\"}else if(direction==DIRECTION_UP){return\"up\"}else if(direction==DIRECTION_LEFT){return\"left\"}else if(direction==DIRECTION_RIGHT){return\"right\"}return\"\"}function getRecognizerByNameIfManager(otherRecognizer,recognizer){var manager=recognizer.manager;if(manager){return manager.get(otherRecognizer)}return otherRecognizer}function AttrRecognizer(){Recognizer.apply(this,arguments)}inherit(AttrRecognizer,Recognizer,{defaults:{pointers:1},attrTest:function(input){var optionPointers=this.options.pointers;return optionPointers===0||input.pointers.length===optionPointers},process:function(input){var state=this.state;var eventType=input.eventType;var isRecognized=state&(STATE_BEGAN|STATE_CHANGED);var isValid=this.attrTest(input);if(isRecognized&&(eventType&INPUT_CANCEL||!isValid)){return state|STATE_CANCELLED}else if(isRecognized||isValid){if(eventType&INPUT_END){return state|STATE_ENDED}else if(!(state&STATE_BEGAN)){return STATE_BEGAN}return state|STATE_CHANGED}return STATE_FAILED}});function PanRecognizer(){AttrRecognizer.apply(this,arguments);this.pX=null;this.pY=null}inherit(PanRecognizer,AttrRecognizer,{defaults:{event:\"pan\",threshold:10,pointers:1,direction:DIRECTION_ALL},getTouchAction:function(){var direction=this.options.direction;var actions=[];if(direction&DIRECTION_HORIZONTAL){actions.push(TOUCH_ACTION_PAN_Y)}if(direction&DIRECTION_VERTICAL){actions.push(TOUCH_ACTION_PAN_X)}return actions},directionTest:function(input){var options=this.options;var hasMoved=true;var distance=input.distance;var direction=input.direction;var x=input.deltaX;var y=input.deltaY;if(!(direction&options.direction)){if(options.direction&DIRECTION_HORIZONTAL){direction=x===0?DIRECTION_NONE:x<0?DIRECTION_LEFT:DIRECTION_RIGHT;hasMoved=x!=this.pX;distance=Math.abs(input.deltaX)}else{direction=y===0?DIRECTION_NONE:y<0?DIRECTION_UP:DIRECTION_DOWN;hasMoved=y!=this.pY;distance=Math.abs(input.deltaY)}}input.direction=direction;return hasMoved&&distance>options.threshold&&direction&options.direction},attrTest:function(input){return AttrRecognizer.prototype.attrTest.call(this,input)&&(this.state&STATE_BEGAN||!(this.state&STATE_BEGAN)&&this.directionTest(input))},emit:function(input){this.pX=input.deltaX;this.pY=input.deltaY;var direction=directionStr(input.direction);if(direction){input.additionalEvent=this.options.event+direction}this._super.emit.call(this,input)}});function PinchRecognizer(){AttrRecognizer.apply(this,arguments)}inherit(PinchRecognizer,AttrRecognizer,{defaults:{event:\"pinch\",threshold:0,pointers:2},getTouchAction:function(){return[TOUCH_ACTION_NONE]},attrTest:function(input){return this._super.attrTest.call(this,input)&&(Math.abs(input.scale-1)>this.options.threshold||this.state&STATE_BEGAN)},emit:function(input){if(input.scale!==1){var inOut=input.scale<1?\"in\":\"out\";input.additionalEvent=this.options.event+inOut}this._super.emit.call(this,input)}});function PressRecognizer(){Recognizer.apply(this,arguments);this._timer=null;this._input=null}inherit(PressRecognizer,Recognizer,{defaults:{event:\"press\",pointers:1,time:251,threshold:9},getTouchAction:function(){return[TOUCH_ACTION_AUTO]},process:function(input){var options=this.options;var validPointers=input.pointers.length===options.pointers;var validMovement=input.distance<options.threshold;var validTime=input.deltaTime>options.time;this._input=input;if(!validMovement||!validPointers||input.eventType&(INPUT_END|INPUT_CANCEL)&&!validTime){this.reset()}else if(input.eventType&INPUT_START){this.reset();this._timer=setTimeoutContext(function(){this.state=STATE_RECOGNIZED;this.tryEmit()},options.time,this)}else if(input.eventType&INPUT_END){return STATE_RECOGNIZED}return STATE_FAILED},reset:function(){clearTimeout(this._timer)},emit:function(input){if(this.state!==STATE_RECOGNIZED){return}if(input&&input.eventType&INPUT_END){this.manager.emit(this.options.event+\"up\",input)}else{this._input.timeStamp=now();this.manager.emit(this.options.event,this._input)}}});function RotateRecognizer(){AttrRecognizer.apply(this,arguments)}inherit(RotateRecognizer,AttrRecognizer,{defaults:{event:\"rotate\",threshold:0,pointers:2},getTouchAction:function(){return[TOUCH_ACTION_NONE]},attrTest:function(input){return this._super.attrTest.call(this,input)&&(Math.abs(input.rotation)>this.options.threshold||this.state&STATE_BEGAN)}});function SwipeRecognizer(){AttrRecognizer.apply(this,arguments)}inherit(SwipeRecognizer,AttrRecognizer,{defaults:{event:\"swipe\",threshold:10,velocity:.3,direction:DIRECTION_HORIZONTAL|DIRECTION_VERTICAL,pointers:1},getTouchAction:function(){return PanRecognizer.prototype.getTouchAction.call(this)},attrTest:function(input){var direction=this.options.direction;var velocity;if(direction&(DIRECTION_HORIZONTAL|DIRECTION_VERTICAL)){velocity=input.overallVelocity}else if(direction&DIRECTION_HORIZONTAL){velocity=input.overallVelocityX}else if(direction&DIRECTION_VERTICAL){velocity=input.overallVelocityY}return this._super.attrTest.call(this,input)&&direction&input.offsetDirection&&input.distance>this.options.threshold&&input.maxPointers==this.options.pointers&&abs(velocity)>this.options.velocity&&input.eventType&INPUT_END},emit:function(input){var direction=directionStr(input.offsetDirection);if(direction){this.manager.emit(this.options.event+direction,input)}this.manager.emit(this.options.event,input)}});function TapRecognizer(){Recognizer.apply(this,arguments);this.pTime=false;this.pCenter=false;this._timer=null;this._input=null;this.count=0}inherit(TapRecognizer,Recognizer,{defaults:{event:\"tap\",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[TOUCH_ACTION_MANIPULATION]},process:function(input){var options=this.options;var validPointers=input.pointers.length===options.pointers;var validMovement=input.distance<options.threshold;var validTouchTime=input.deltaTime<options.time;this.reset();if(input.eventType&INPUT_START&&this.count===0){return this.failTimeout()}if(validMovement&&validTouchTime&&validPointers){if(input.eventType!=INPUT_END){return this.failTimeout()}var validInterval=this.pTime?input.timeStamp-this.pTime<options.interval:true;var validMultiTap=!this.pCenter||getDistance(this.pCenter,input.center)<options.posThreshold;this.pTime=input.timeStamp;this.pCenter=input.center;if(!validMultiTap||!validInterval){this.count=1}else{this.count+=1}this._input=input;var tapCount=this.count%options.taps;if(tapCount===0){if(!this.hasRequireFailures()){return STATE_RECOGNIZED}else{this._timer=setTimeoutContext(function(){this.state=STATE_RECOGNIZED;this.tryEmit()},options.interval,this);return STATE_BEGAN}}}return STATE_FAILED},failTimeout:function(){this._timer=setTimeoutContext(function(){this.state=STATE_FAILED},this.options.interval,this);return STATE_FAILED},reset:function(){clearTimeout(this._timer)},emit:function(){if(this.state==STATE_RECOGNIZED){this._input.tapCount=this.count;this.manager.emit(this.options.event,this._input)}}});function Hammer(element,options){options=options||{};options.recognizers=ifUndefined(options.recognizers,Hammer.defaults.preset);return new Manager(element,options)}Hammer.VERSION=\"2.0.7\";Hammer.defaults={domEvents:false,touchAction:TOUCH_ACTION_COMPUTE,enable:true,inputTarget:null,inputClass:null,preset:[[RotateRecognizer,{enable:false}],[PinchRecognizer,{enable:false},[\"rotate\"]],[SwipeRecognizer,{direction:DIRECTION_HORIZONTAL}],[PanRecognizer,{direction:DIRECTION_HORIZONTAL},[\"swipe\"]],[TapRecognizer],[TapRecognizer,{event:\"doubletap\",taps:2},[\"tap\"]],[PressRecognizer]],cssProps:{userSelect:\"none\",touchSelect:\"none\",touchCallout:\"none\",contentZooming:\"none\",userDrag:\"none\",tapHighlightColor:\"rgba(0,0,0,0)\"}};var STOP=1;var FORCED_STOP=2;function Manager(element,options){this.options=assign({},Hammer.defaults,options||{});this.options.inputTarget=this.options.inputTarget||element;this.handlers={};this.session={};this.recognizers=[];this.oldCssProps={};this.element=element;this.input=createInputInstance(this);this.touchAction=new TouchAction(this,this.options.touchAction);toggleCssProps(this,true);each(this.options.recognizers,function(item){var recognizer=this.add(new item[0](item[1]));item[2]&&recognizer.recognizeWith(item[2]);item[3]&&recognizer.requireFailure(item[3])},this)}Manager.prototype={set:function(options){assign(this.options,options);if(options.touchAction){this.touchAction.update()}if(options.inputTarget){this.input.destroy();this.input.target=options.inputTarget;this.input.init()}return this},stop:function(force){this.session.stopped=force?FORCED_STOP:STOP},recognize:function(inputData){var session=this.session;if(session.stopped){return}this.touchAction.preventDefaults(inputData)\n;var recognizer;var recognizers=this.recognizers;var curRecognizer=session.curRecognizer;if(!curRecognizer||curRecognizer&&curRecognizer.state&STATE_RECOGNIZED){curRecognizer=session.curRecognizer=null}var i=0;while(i<recognizers.length){recognizer=recognizers[i];if(session.stopped!==FORCED_STOP&&(!curRecognizer||recognizer==curRecognizer||recognizer.canRecognizeWith(curRecognizer))){recognizer.recognize(inputData)}else{recognizer.reset()}if(!curRecognizer&&recognizer.state&(STATE_BEGAN|STATE_CHANGED|STATE_ENDED)){curRecognizer=session.curRecognizer=recognizer}i++}},get:function(recognizer){if(recognizer instanceof Recognizer){return recognizer}var recognizers=this.recognizers;for(var i=0;i<recognizers.length;i++){if(recognizers[i].options.event==recognizer){return recognizers[i]}}return null},add:function(recognizer){if(invokeArrayArg(recognizer,\"add\",this)){return this}var existing=this.get(recognizer.options.event);if(existing){this.remove(existing)}this.recognizers.push(recognizer);recognizer.manager=this;this.touchAction.update();return recognizer},remove:function(recognizer){if(invokeArrayArg(recognizer,\"remove\",this)){return this}recognizer=this.get(recognizer);if(recognizer){var recognizers=this.recognizers;var index=inArray(recognizers,recognizer);if(index!==-1){recognizers.splice(index,1);this.touchAction.update()}}return this},on:function(events,handler){if(events===undefined){return}if(handler===undefined){return}var handlers=this.handlers;each(splitStr(events),function(event){handlers[event]=handlers[event]||[];handlers[event].push(handler)});return this},off:function(events,handler){if(events===undefined){return}var handlers=this.handlers;each(splitStr(events),function(event){if(!handler){delete handlers[event]}else{handlers[event]&&handlers[event].splice(inArray(handlers[event],handler),1)}});return this},emit:function(event,data){if(this.options.domEvents){triggerDomEvent(event,data)}var handlers=this.handlers[event]&&this.handlers[event].slice();if(!handlers||!handlers.length){return}data.type=event;data.preventDefault=function(){data.srcEvent.preventDefault()};var i=0;while(i<handlers.length){handlers[i](data);i++}},destroy:function(){this.element&&toggleCssProps(this,false);this.handlers={};this.session={};this.input.destroy();this.element=null}};function toggleCssProps(manager,add){var element=manager.element;if(!element.style){return}var prop;each(manager.options.cssProps,function(value,name){prop=prefixed(element.style,name);if(add){manager.oldCssProps[prop]=element.style[prop];element.style[prop]=value}else{element.style[prop]=manager.oldCssProps[prop]||\"\"}});if(!add){manager.oldCssProps={}}}function triggerDomEvent(event,data){var gestureEvent=document.createEvent(\"Event\");gestureEvent.initEvent(event,true,true);gestureEvent.gesture=data;data.target.dispatchEvent(gestureEvent)}assign(Hammer,{INPUT_START:INPUT_START,INPUT_MOVE:INPUT_MOVE,INPUT_END:INPUT_END,INPUT_CANCEL:INPUT_CANCEL,STATE_POSSIBLE:STATE_POSSIBLE,STATE_BEGAN:STATE_BEGAN,STATE_CHANGED:STATE_CHANGED,STATE_ENDED:STATE_ENDED,STATE_RECOGNIZED:STATE_RECOGNIZED,STATE_CANCELLED:STATE_CANCELLED,STATE_FAILED:STATE_FAILED,DIRECTION_NONE:DIRECTION_NONE,DIRECTION_LEFT:DIRECTION_LEFT,DIRECTION_RIGHT:DIRECTION_RIGHT,DIRECTION_UP:DIRECTION_UP,DIRECTION_DOWN:DIRECTION_DOWN,DIRECTION_HORIZONTAL:DIRECTION_HORIZONTAL,DIRECTION_VERTICAL:DIRECTION_VERTICAL,DIRECTION_ALL:DIRECTION_ALL,Manager:Manager,Input:Input,TouchAction:TouchAction,TouchInput:TouchInput,MouseInput:MouseInput,PointerEventInput:PointerEventInput,TouchMouseInput:TouchMouseInput,SingleTouchInput:SingleTouchInput,Recognizer:Recognizer,AttrRecognizer:AttrRecognizer,Tap:TapRecognizer,Pan:PanRecognizer,Swipe:SwipeRecognizer,Pinch:PinchRecognizer,Rotate:RotateRecognizer,Press:PressRecognizer,on:addEventListeners,off:removeEventListeners,each:each,merge:merge,extend:extend,assign:assign,inherit:inherit,bindFn:bindFn,prefixed:prefixed});var freeGlobal=typeof window!==\"undefined\"?window:typeof self!==\"undefined\"?self:{};freeGlobal.Hammer=Hammer;if(true){!(__WEBPACK_AMD_DEFINE_RESULT__=function(){return Hammer}.call(exports,__webpack_require__,exports,module),__WEBPACK_AMD_DEFINE_RESULT__!==undefined&&(module.exports=__WEBPACK_AMD_DEFINE_RESULT__))}else if(typeof module!=\"undefined\"&&module.exports){module.exports=Hammer}else{window[exportName]=Hammer}})(window,document,\"Hammer\")},function(module,exports,__webpack_require__){\"use strict\";exports.util=__webpack_require__(2);exports.DOMutil=__webpack_require__(14);exports.DataSet=__webpack_require__(11);exports.DataView=__webpack_require__(12);exports.Queue=__webpack_require__(43);exports.Timeline=__webpack_require__(178);exports.Graph2d=__webpack_require__(180);exports.timeline={Core:__webpack_require__(65),DateUtil:__webpack_require__(36),Range:__webpack_require__(64),stack:__webpack_require__(100),TimeStep:__webpack_require__(66),components:{items:{Item:__webpack_require__(38),BackgroundItem:__webpack_require__(103),BoxItem:__webpack_require__(101),PointItem:__webpack_require__(102),RangeItem:__webpack_require__(70)},BackgroundGroup:__webpack_require__(69),Component:__webpack_require__(16),CurrentTime:__webpack_require__(67),CustomTime:__webpack_require__(46),DataAxis:__webpack_require__(107),DataScale:__webpack_require__(108),GraphGroup:__webpack_require__(109),Group:__webpack_require__(68),ItemSet:__webpack_require__(99),Legend:__webpack_require__(112),LineGraph:__webpack_require__(106),TimeAxis:__webpack_require__(45)}};exports.moment=__webpack_require__(9);exports.Hammer=__webpack_require__(10);exports.keycharm=__webpack_require__(35)},function(module,exports,__webpack_require__){\"use strict\";var moment=__webpack_require__(9);var util=__webpack_require__(2);var DataSet=__webpack_require__(11);var DataView=__webpack_require__(12);var Range=__webpack_require__(64);var Core=__webpack_require__(65);var TimeAxis=__webpack_require__(45);var CurrentTime=__webpack_require__(67);var CustomTime=__webpack_require__(46);var ItemSet=__webpack_require__(99);var printStyle=__webpack_require__(15).printStyle;var allOptions=__webpack_require__(105).allOptions;var configureOptions=__webpack_require__(105).configureOptions;var Configurator=__webpack_require__(71)[\"default\"];var Validator=__webpack_require__(15)[\"default\"];function Timeline(container,items,groups,options){if(!(this instanceof Timeline)){throw new SyntaxError(\"Constructor must be called with the new operator\")}if(!(Array.isArray(groups)||groups instanceof DataSet||groups instanceof DataView)&&groups instanceof Object){var forthArgument=options;options=groups;groups=forthArgument}if(options&&options.throttleRedraw){console.warn('Timeline option \"throttleRedraw\" is DEPRICATED and no longer supported. It will be removed in the next MAJOR release.')}var me=this;this.defaultOptions={start:null,end:null,autoResize:true,orientation:{axis:\"bottom\",item:\"bottom\"},moment:moment,width:null,height:null,maxHeight:null,minHeight:null};this.options=util.deepExtend({},this.defaultOptions);this._create(container);if(!options||options&&typeof options.rtl==\"undefined\"){this.dom.root.style.visibility=\"hidden\";var directionFromDom,domNode=this.dom.root;while(!directionFromDom&&domNode){directionFromDom=window.getComputedStyle(domNode,null).direction;domNode=domNode.parentElement}this.options.rtl=directionFromDom&&directionFromDom.toLowerCase()==\"rtl\"}else{this.options.rtl=options.rtl}this.options.rollingMode=options&&options.rollingMode;this.options.onInitialDrawComplete=options&&options.onInitialDrawComplete;this.components=[];this.body={dom:this.dom,domProps:this.props,emitter:{on:this.on.bind(this),off:this.off.bind(this),emit:this.emit.bind(this)},hiddenDates:[],util:{getScale:function getScale(){return me.timeAxis.step.scale},getStep:function getStep(){return me.timeAxis.step.step},toScreen:me._toScreen.bind(me),toGlobalScreen:me._toGlobalScreen.bind(me),toTime:me._toTime.bind(me),toGlobalTime:me._toGlobalTime.bind(me)}};this.range=new Range(this.body,this.options);this.components.push(this.range);this.body.range=this.range;this.timeAxis=new TimeAxis(this.body,this.options);this.timeAxis2=null;this.components.push(this.timeAxis);this.currentTime=new CurrentTime(this.body,this.options);this.components.push(this.currentTime);this.itemSet=new ItemSet(this.body,this.options);this.components.push(this.itemSet);this.itemsData=null;this.groupsData=null;this.dom.root.onclick=function(event){me.emit(\"click\",me.getEventProperties(event))};this.dom.root.ondblclick=function(event){me.emit(\"doubleClick\",me.getEventProperties(event))};this.dom.root.oncontextmenu=function(event){me.emit(\"contextmenu\",me.getEventProperties(event))};this.dom.root.onmouseover=function(event){me.emit(\"mouseOver\",me.getEventProperties(event))};if(window.PointerEvent){this.dom.root.onpointerdown=function(event){me.emit(\"mouseDown\",me.getEventProperties(event))};this.dom.root.onpointermove=function(event){me.emit(\"mouseMove\",me.getEventProperties(event))};this.dom.root.onpointerup=function(event){me.emit(\"mouseUp\",me.getEventProperties(event))}}else{this.dom.root.onmousemove=function(event){me.emit(\"mouseMove\",me.getEventProperties(event))};this.dom.root.onmousedown=function(event){me.emit(\"mouseDown\",me.getEventProperties(event))};this.dom.root.onmouseup=function(event){me.emit(\"mouseUp\",me.getEventProperties(event))}}this.initialFitDone=false;this.on(\"changed\",function(){if(this.itemsData==null||this.options.rollingMode)return;if(!me.initialFitDone){me.initialFitDone=true;if(me.options.start!=undefined||me.options.end!=undefined){if(me.options.start==undefined||me.options.end==undefined){var range=me.getItemRange()}var start=me.options.start!=undefined?me.options.start:range.min;var end=me.options.end!=undefined?me.options.end:range.max;me.setWindow(start,end,{animation:false})}else{me.fit({animation:false})}}if(!me.initialDrawDone&&me.initialRangeChangeDone){me.initialDrawDone=true;me.dom.root.style.visibility=\"visible\";if(me.options.onInitialDrawComplete){setTimeout(function(){return me.options.onInitialDrawComplete()},0)}}});if(options){this.setOptions(options)}if(groups){this.setGroups(groups)}if(items){this.setItems(items)}this._redraw()}Timeline.prototype=new Core;Timeline.prototype._createConfigurator=function(){return new Configurator(this,this.dom.container,configureOptions)};Timeline.prototype.redraw=function(){this.itemSet&&this.itemSet.markDirty({refreshItems:true});this._redraw()};Timeline.prototype.setOptions=function(options){var errorFound=Validator.validate(options,allOptions);if(errorFound===true){console.log(\"%cErrors have been found in the supplied options object.\",printStyle)}Core.prototype.setOptions.call(this,options);if(\"type\"in options){if(options.type!==this.options.type){this.options.type=options.type;var itemsData=this.itemsData;if(itemsData){var selection=this.getSelection();this.setItems(null);this.setItems(itemsData);this.setSelection(selection)}}}};Timeline.prototype.setItems=function(items){var newDataSet;if(!items){newDataSet=null}else if(items instanceof DataSet||items instanceof DataView){newDataSet=items}else{newDataSet=new DataSet(items,{type:{start:\"Date\",end:\"Date\"}})}this.itemsData=newDataSet;this.itemSet&&this.itemSet.setItems(newDataSet)};Timeline.prototype.setGroups=function(groups){var newDataSet;if(!groups){newDataSet=null}else{var filter=function filter(group){return group.visible!==false};if(groups instanceof DataSet||groups instanceof DataView){newDataSet=new DataView(groups,{filter:filter})}else{newDataSet=new DataSet(groups.filter(filter))}}this.groupsData=newDataSet;this.itemSet.setGroups(newDataSet)};Timeline.prototype.setData=function(data){if(data&&data.groups){this.setGroups(data.groups)}if(data&&data.items){this.setItems(data.items)}};Timeline.prototype.setSelection=function(ids,options){this.itemSet&&this.itemSet.setSelection(ids);if(options&&options.focus){this.focus(ids,options)}};Timeline.prototype.getSelection=function(){return this.itemSet&&this.itemSet.getSelection()||[]};Timeline.prototype.focus=function(id,options){if(!this.itemsData||id==undefined)return;var ids=Array.isArray(id)?id:[id];var itemsData=this.itemsData.getDataSet().get(ids,{type:{start:\"Date\",end:\"Date\"}});var start=null;var end=null;itemsData.forEach(function(itemData){var s=itemData.start.valueOf();var e=\"end\"in itemData?itemData.end.valueOf():itemData.start.valueOf();if(start===null||s<start){start=s}if(end===null||e>end){end=e}});if(start!==null&&end!==null){var me=this;var item=this.itemSet.items[ids[0]];var startPos=this._getScrollTop()*-1;var initialVerticalScroll=null;var verticalAnimationFrame=function verticalAnimationFrame(ease,willDraw,done){var verticalScroll=getItemVerticalScroll(me,item);if(!initialVerticalScroll){initialVerticalScroll=verticalScroll}if(initialVerticalScroll.itemTop==verticalScroll.itemTop&&!initialVerticalScroll.shouldScroll){return}else if(initialVerticalScroll.itemTop!=verticalScroll.itemTop&&verticalScroll.shouldScroll){initialVerticalScroll=verticalScroll;startPos=me._getScrollTop()*-1}var from=startPos;var to=initialVerticalScroll.scrollOffset;var scrollTop=done?to:from+(to-from)*ease;me._setScrollTop(-scrollTop);if(!willDraw){me._redraw()}};var setFinalVerticalPosition=function setFinalVerticalPosition(){var finalVerticalScroll=getItemVerticalScroll(me,item);if(finalVerticalScroll.shouldScroll&&finalVerticalScroll.itemTop!=initialVerticalScroll.itemTop){me._setScrollTop(-finalVerticalScroll.scrollOffset);me._redraw()}};var finalVerticalCallback=function finalVerticalCallback(){setFinalVerticalPosition();setTimeout(setFinalVerticalPosition,100)};var middle=(start+end)/2;var interval=Math.max(this.range.end-this.range.start,(end-start)*1.1);var animation=options&&options.animation!==undefined?options.animation:true;if(!animation){initialVerticalScroll={shouldScroll:false,scrollOffset:-1,itemTop:-1}}this.range.setRange(middle-interval/2,middle+interval/2,{animation:animation},finalVerticalCallback,verticalAnimationFrame)}};Timeline.prototype.fit=function(options,callback){var animation=options&&options.animation!==undefined?options.animation:true;var range;var dataset=this.itemsData&&this.itemsData.getDataSet();if(dataset.length===1&&dataset.get()[0].end===undefined){range=this.getDataRange();this.moveTo(range.min.valueOf(),{animation:animation},callback)}else{range=this.getItemRange();this.range.setRange(range.min,range.max,{animation:animation},callback)}};function getStart(item){return util.convert(item.data.start,\"Date\").valueOf()}function getEnd(item){var end=item.data.end!=undefined?item.data.end:item.data.start;return util.convert(end,\"Date\").valueOf()}function getItemVerticalScroll(timeline,item){var leftHeight=timeline.props.leftContainer.height;var contentHeight=timeline.props.left.height;var group=item.parent;var offset=group.top;var shouldScroll=true;var orientation=timeline.timeAxis.options.orientation.axis;var itemTop=function itemTop(){if(orientation==\"bottom\"){return group.height-item.top-item.height}else{return item.top}};var currentScrollHeight=timeline._getScrollTop()*-1;var targetOffset=offset+itemTop();var height=item.height;if(targetOffset<currentScrollHeight){if(offset+leftHeight<=offset+itemTop()+height){offset+=itemTop()-timeline.itemSet.options.margin.item.vertical}}else if(targetOffset+height>currentScrollHeight+leftHeight){offset+=itemTop()+height-leftHeight+timeline.itemSet.options.margin.item.vertical}else{shouldScroll=false}offset=Math.min(offset,contentHeight-leftHeight);return{shouldScroll:shouldScroll,scrollOffset:offset,itemTop:targetOffset}}Timeline.prototype.getItemRange=function(){var range=this.getDataRange();var min=range.min!==null?range.min.valueOf():null;var max=range.max!==null?range.max.valueOf():null;var minItem=null;var maxItem=null;if(min!=null&&max!=null){var interval=max-min;if(interval<=0){interval=10}var factor=interval/this.props.center.width;var redrawQueue={};var redrawQueueLength=0;util.forEach(this.itemSet.items,function(item,key){if(item.groupShowing){var returnQueue=true;redrawQueue[key]=item.redraw(returnQueue);redrawQueueLength=redrawQueue[key].length}});var needRedraw=redrawQueueLength>0;if(needRedraw){for(var i=0;i<redrawQueueLength;i++){util.forEach(redrawQueue,function(fns){fns[i]()})}}util.forEach(this.itemSet.items,function(item){var start=getStart(item);var end=getEnd(item);var startSide;var endSide;if(this.options.rtl){startSide=start-(item.getWidthRight()+10)*factor;endSide=end+(item.getWidthLeft()+10)*factor}else{startSide=start-(item.getWidthLeft()+10)*factor;endSide=end+(item.getWidthRight()+10)*factor}if(startSide<min){min=startSide;minItem=item}if(endSide>max){max=endSide;maxItem=item}}.bind(this));if(minItem&&maxItem){var lhs=minItem.getWidthLeft()+10;var rhs=maxItem.getWidthRight()+10;var delta=this.props.center.width-lhs-rhs;if(delta>0){if(this.options.rtl){min=getStart(minItem)-rhs*interval/delta;max=getEnd(maxItem)+lhs*interval/delta}else{min=getStart(minItem)-lhs*interval/delta;max=getEnd(maxItem)+rhs*interval/delta}}}}return{min:min!=null?new Date(min):null,max:max!=null?new Date(max):null}};Timeline.prototype.getDataRange=function(){var min=null;var max=null;var dataset=this.itemsData&&this.itemsData.getDataSet();if(dataset){dataset.forEach(function(item){var start=util.convert(item.start,\"Date\").valueOf();var end=util.convert(item.end!=undefined?item.end:item.start,\"Date\").valueOf();if(min===null||start<min){min=start}if(max===null||end>max){max=end}})}return{min:min!=null?new Date(min):null,max:max!=null?new Date(max):null}};Timeline.prototype.getEventProperties=function(event){var clientX=event.center?event.center.x:event.clientX;var clientY=event.center?event.center.y:event.clientY;var x;if(this.options.rtl){x=util.getAbsoluteRight(this.dom.centerContainer)-clientX}else{x=clientX-util.getAbsoluteLeft(this.dom.centerContainer)}var y=clientY-util.getAbsoluteTop(this.dom.centerContainer);var item=this.itemSet.itemFromTarget(event);var group=this.itemSet.groupFromTarget(event);var customTime=CustomTime.customTimeFromTarget(event);var snap=this.itemSet.options.snap||null;var scale=this.body.util.getScale();var step=this.body.util.getStep();var time=this._toTime(x);var snappedTime=snap?snap(time,scale,step):time;var element=util.getTarget(event);var what=null;if(item!=null){what=\"item\"}else if(customTime!=null){what=\"custom-time\"}else if(util.hasParent(element,this.timeAxis.dom.foreground)){what=\"axis\"}else if(this.timeAxis2&&util.hasParent(element,this.timeAxis2.dom.foreground)){what=\"axis\"}else if(util.hasParent(element,this.itemSet.dom.labelSet)){what=\"group-label\"}else if(util.hasParent(element,this.currentTime.bar)){what=\"current-time\"}else if(util.hasParent(element,this.dom.center)){what=\"background\"}return{event:event,item:item?item.id:null,group:group?group.groupId:null,what:what,pageX:event.srcEvent?event.srcEvent.pageX:event.pageX,pageY:event.srcEvent?event.srcEvent.pageY:event.pageY,x:x,y:y,time:time,snappedTime:snappedTime}};Timeline.prototype.toggleRollingMode=function(){if(this.range.rolling){this.range.stopRolling()}else{if(this.options.rollingMode==undefined){this.setOptions(this.options)}this.range.startRolling()}};module.exports=Timeline},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _stringify=__webpack_require__(19);var _stringify2=_interopRequireDefault(_stringify);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Hammer=__webpack_require__(10);var hammerUtil=__webpack_require__(37);var util=__webpack_require__(2);var ColorPicker=function(){function ColorPicker(){var pixelRatio=arguments.length>0&&arguments[0]!==undefined?arguments[0]:1;(0,_classCallCheck3[\"default\"])(this,ColorPicker);this.pixelRatio=pixelRatio;this.generated=false;this.centerCoordinates={x:289/2,y:289/2};this.r=289*.49;this.color={r:255,g:255,b:255,a:1};this.hueCircle=undefined;this.initialColor={r:255,g:255,b:255,a:1};this.previousColor=undefined;this.applied=false;this.updateCallback=function(){};this.closeCallback=function(){};this._create()}(0,_createClass3[\"default\"])(ColorPicker,[{key:\"insertTo\",value:function insertTo(container){if(this.hammer!==undefined){this.hammer.destroy();this.hammer=undefined}this.container=container;this.container.appendChild(this.frame);this._bindHammer();this._setSize()}},{key:\"setUpdateCallback\",value:function setUpdateCallback(callback){if(typeof callback===\"function\"){this.updateCallback=callback}else{throw new Error(\"Function attempted to set as colorPicker update callback is not a function.\")}}},{key:\"setCloseCallback\",value:function setCloseCallback(callback){if(typeof callback===\"function\"){this.closeCallback=callback}else{throw new Error(\"Function attempted to set as colorPicker closing callback is not a function.\")}}},{key:\"_isColorString\",value:function _isColorString(color){var htmlColors={black:\"#000000\",navy:\"#000080\",darkblue:\"#00008B\",mediumblue:\"#0000CD\",blue:\"#0000FF\",darkgreen:\"#006400\",green:\"#008000\",teal:\"#008080\",darkcyan:\"#008B8B\",deepskyblue:\"#00BFFF\",darkturquoise:\"#00CED1\",mediumspringgreen:\"#00FA9A\",lime:\"#00FF00\",springgreen:\"#00FF7F\",aqua:\"#00FFFF\",cyan:\"#00FFFF\",midnightblue:\"#191970\",dodgerblue:\"#1E90FF\",lightseagreen:\"#20B2AA\",forestgreen:\"#228B22\",seagreen:\"#2E8B57\",darkslategray:\"#2F4F4F\",limegreen:\"#32CD32\",mediumseagreen:\"#3CB371\",turquoise:\"#40E0D0\",royalblue:\"#4169E1\",steelblue:\"#4682B4\",darkslateblue:\"#483D8B\",mediumturquoise:\"#48D1CC\",indigo:\"#4B0082\",darkolivegreen:\"#556B2F\",cadetblue:\"#5F9EA0\",cornflowerblue:\"#6495ED\",mediumaquamarine:\"#66CDAA\",dimgray:\"#696969\",slateblue:\"#6A5ACD\",olivedrab:\"#6B8E23\",slategray:\"#708090\",lightslategray:\"#778899\",mediumslateblue:\"#7B68EE\",lawngreen:\"#7CFC00\",chartreuse:\"#7FFF00\",aquamarine:\"#7FFFD4\",maroon:\"#800000\",purple:\"#800080\",olive:\"#808000\",gray:\"#808080\",skyblue:\"#87CEEB\",lightskyblue:\"#87CEFA\",blueviolet:\"#8A2BE2\",darkred:\"#8B0000\",darkmagenta:\"#8B008B\",saddlebrown:\"#8B4513\",darkseagreen:\"#8FBC8F\",lightgreen:\"#90EE90\",mediumpurple:\"#9370D8\",darkviolet:\"#9400D3\",palegreen:\"#98FB98\",darkorchid:\"#9932CC\",yellowgreen:\"#9ACD32\",sienna:\"#A0522D\",brown:\"#A52A2A\",darkgray:\"#A9A9A9\",lightblue:\"#ADD8E6\",greenyellow:\"#ADFF2F\",paleturquoise:\"#AFEEEE\",lightsteelblue:\"#B0C4DE\",powderblue:\"#B0E0E6\",firebrick:\"#B22222\",darkgoldenrod:\"#B8860B\",mediumorchid:\"#BA55D3\",rosybrown:\"#BC8F8F\",darkkhaki:\"#BDB76B\",silver:\"#C0C0C0\",mediumvioletred:\"#C71585\",indianred:\"#CD5C5C\",peru:\"#CD853F\",chocolate:\"#D2691E\",tan:\"#D2B48C\",lightgrey:\"#D3D3D3\",palevioletred:\"#D87093\",thistle:\"#D8BFD8\",orchid:\"#DA70D6\",goldenrod:\"#DAA520\",crimson:\"#DC143C\",gainsboro:\"#DCDCDC\",plum:\"#DDA0DD\",burlywood:\"#DEB887\",lightcyan:\"#E0FFFF\",lavender:\"#E6E6FA\",darksalmon:\"#E9967A\",violet:\"#EE82EE\",palegoldenrod:\"#EEE8AA\",lightcoral:\"#F08080\",khaki:\"#F0E68C\",aliceblue:\"#F0F8FF\",honeydew:\"#F0FFF0\",azure:\"#F0FFFF\",sandybrown:\"#F4A460\",wheat:\"#F5DEB3\",beige:\"#F5F5DC\",whitesmoke:\"#F5F5F5\",mintcream:\"#F5FFFA\",ghostwhite:\"#F8F8FF\",salmon:\"#FA8072\",antiquewhite:\"#FAEBD7\",linen:\"#FAF0E6\",lightgoldenrodyellow:\"#FAFAD2\",oldlace:\"#FDF5E6\",red:\"#FF0000\",fuchsia:\"#FF00FF\",magenta:\"#FF00FF\",deeppink:\"#FF1493\",orangered:\"#FF4500\",tomato:\"#FF6347\",hotpink:\"#FF69B4\",coral:\"#FF7F50\",darkorange:\"#FF8C00\",lightsalmon:\"#FFA07A\",orange:\"#FFA500\",lightpink:\"#FFB6C1\",pink:\"#FFC0CB\",gold:\"#FFD700\",peachpuff:\"#FFDAB9\",navajowhite:\"#FFDEAD\",moccasin:\"#FFE4B5\",bisque:\"#FFE4C4\",mistyrose:\"#FFE4E1\",blanchedalmond:\"#FFEBCD\",papayawhip:\"#FFEFD5\",lavenderblush:\"#FFF0F5\",seashell:\"#FFF5EE\",cornsilk:\"#FFF8DC\",lemonchiffon:\"#FFFACD\",floralwhite:\"#FFFAF0\",snow:\"#FFFAFA\",yellow:\"#FFFF00\",lightyellow:\"#FFFFE0\",ivory:\"#FFFFF0\",white:\"#FFFFFF\"};if(typeof color===\"string\"){return htmlColors[color]}}},{key:\"setColor\",value:function setColor(color){var setInitial=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;if(color===\"none\"){return}var rgba=void 0;var htmlColor=this._isColorString(color);if(htmlColor!==undefined){color=htmlColor}if(util.isString(color)===true){if(util.isValidRGB(color)===true){var rgbaArray=color.substr(4).substr(0,color.length-5).split(\",\");rgba={r:rgbaArray[0],g:rgbaArray[1],b:rgbaArray[2],a:1}}else if(util.isValidRGBA(color)===true){var _rgbaArray=color.substr(5).substr(0,color.length-6).split(\",\");rgba={r:_rgbaArray[0],g:_rgbaArray[1],b:_rgbaArray[2],a:_rgbaArray[3]}}else if(util.isValidHex(color)===true){var rgbObj=util.hexToRGB(color);rgba={r:rgbObj.r,g:rgbObj.g,b:rgbObj.b,a:1}}}else{if(color instanceof Object){if(color.r!==undefined&&color.g!==undefined&&color.b!==undefined){var alpha=color.a!==undefined?color.a:\"1.0\";rgba={r:color.r,g:color.g,b:color.b,a:alpha}}}}if(rgba===undefined){throw new Error(\"Unknown color passed to the colorPicker. Supported are strings: rgb, hex, rgba. Object: rgb ({r:r,g:g,b:b,[a:a]}). Supplied: \"+(0,_stringify2[\"default\"])(color))}else{this._setColor(rgba,setInitial)}}},{key:\"show\",value:function show(){if(this.closeCallback!==undefined){this.closeCallback();this.closeCallback=undefined}this.applied=false;this.frame.style.display=\"block\";this._generateHueCircle()}},{key:\"_hide\",value:function _hide(){var _this=this;var storePrevious=arguments.length>0&&arguments[0]!==undefined?arguments[0]:true;if(storePrevious===true){this.previousColor=util.extend({},this.color)}if(this.applied===true){this.updateCallback(this.initialColor)}this.frame.style.display=\"none\";setTimeout(function(){if(_this.closeCallback!==undefined){_this.closeCallback();_this.closeCallback=undefined}},0)}},{key:\"_save\",value:function _save(){this.updateCallback(this.color);this.applied=false;this._hide()}},{key:\"_apply\",value:function _apply(){this.applied=true;this.updateCallback(this.color);this._updatePicker(this.color)}},{key:\"_loadLast\",value:function _loadLast(){if(this.previousColor!==undefined){this.setColor(this.previousColor,false)}else{alert(\"There is no last color to load...\")}}},{key:\"_setColor\",value:function _setColor(rgba){var setInitial=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;if(setInitial===true){this.initialColor=util.extend({},rgba)}this.color=rgba;var hsv=util.RGBToHSV(rgba.r,rgba.g,rgba.b);var angleConvert=2*Math.PI;var radius=this.r*hsv.s;var x=this.centerCoordinates.x+radius*Math.sin(angleConvert*hsv.h);var y=this.centerCoordinates.y+radius*Math.cos(angleConvert*hsv.h);this.colorPickerSelector.style.left=x-.5*this.colorPickerSelector.clientWidth+\"px\";this.colorPickerSelector.style.top=y-.5*this.colorPickerSelector.clientHeight+\"px\";this._updatePicker(rgba)}},{key:\"_setOpacity\",value:function _setOpacity(value){this.color.a=value/100;this._updatePicker(this.color)}},{key:\"_setBrightness\",value:function _setBrightness(value){var hsv=util.RGBToHSV(this.color.r,this.color.g,this.color.b);hsv.v=value/100;var rgba=util.HSVToRGB(hsv.h,hsv.s,hsv.v);rgba[\"a\"]=this.color.a;this.color=rgba;this._updatePicker()}},{key:\"_updatePicker\",value:function _updatePicker(){var rgba=arguments.length>0&&arguments[0]!==undefined?arguments[0]:this.color;var hsv=util.RGBToHSV(rgba.r,rgba.g,rgba.b);var ctx=this.colorPickerCanvas.getContext(\"2d\");if(this.pixelRation===undefined){this.pixelRatio=(window.devicePixelRatio||1)/(ctx.webkitBackingStorePixelRatio||ctx.mozBackingStorePixelRatio||ctx.msBackingStorePixelRatio||ctx.oBackingStorePixelRatio||ctx.backingStorePixelRatio||1)}ctx.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0);var w=this.colorPickerCanvas.clientWidth;var h=this.colorPickerCanvas.clientHeight;ctx.clearRect(0,0,w,h);ctx.putImageData(this.hueCircle,0,0);ctx.fillStyle=\"rgba(0,0,0,\"+(1-hsv.v)+\")\";ctx.circle(this.centerCoordinates.x,this.centerCoordinates.y,this.r);ctx.fill();this.brightnessRange.value=100*hsv.v;this.opacityRange.value=100*rgba.a;this.initialColorDiv.style.backgroundColor=\"rgba(\"+this.initialColor.r+\",\"+this.initialColor.g+\",\"+this.initialColor.b+\",\"+this.initialColor.a+\")\";this.newColorDiv.style.backgroundColor=\"rgba(\"+this.color.r+\",\"+this.color.g+\",\"+this.color.b+\",\"+this.color.a+\")\"}},{key:\"_setSize\",value:function _setSize(){this.colorPickerCanvas.style.width=\"100%\";this.colorPickerCanvas.style.height=\"100%\";this.colorPickerCanvas.width=289*this.pixelRatio;this.colorPickerCanvas.height=289*this.pixelRatio}},{key:\"_create\",value:function _create(){this.frame=document.createElement(\"div\");this.frame.className=\"vis-color-picker\";this.colorPickerDiv=document.createElement(\"div\");this.colorPickerSelector=document.createElement(\"div\");this.colorPickerSelector.className=\"vis-selector\";this.colorPickerDiv.appendChild(this.colorPickerSelector);this.colorPickerCanvas=document.createElement(\"canvas\");this.colorPickerDiv.appendChild(this.colorPickerCanvas);if(!this.colorPickerCanvas.getContext){var noCanvas=document.createElement(\"DIV\");noCanvas.style.color=\"red\";noCanvas.style.fontWeight=\"bold\";noCanvas.style.padding=\"10px\";noCanvas.innerHTML=\"Error: your browser does not support HTML canvas\";this.colorPickerCanvas.appendChild(noCanvas)}else{var ctx=this.colorPickerCanvas.getContext(\"2d\");this.pixelRatio=(window.devicePixelRatio||1)/(ctx.webkitBackingStorePixelRatio||ctx.mozBackingStorePixelRatio||ctx.msBackingStorePixelRatio||ctx.oBackingStorePixelRatio||ctx.backingStorePixelRatio||1);this.colorPickerCanvas.getContext(\"2d\").setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0)}this.colorPickerDiv.className=\"vis-color\";this.opacityDiv=document.createElement(\"div\");this.opacityDiv.className=\"vis-opacity\";this.brightnessDiv=document.createElement(\"div\");this.brightnessDiv.className=\"vis-brightness\";this.arrowDiv=document.createElement(\"div\");this.arrowDiv.className=\"vis-arrow\";this.opacityRange=document.createElement(\"input\");try{this.opacityRange.type=\"range\";this.opacityRange.min=\"0\";this.opacityRange.max=\"100\"}catch(err){}this.opacityRange.value=\"100\";this.opacityRange.className=\"vis-range\";this.brightnessRange=document.createElement(\"input\");try{this.brightnessRange.type=\"range\";this.brightnessRange.min=\"0\";this.brightnessRange.max=\"100\"}catch(err){}this.brightnessRange.value=\"100\";this.brightnessRange.className=\"vis-range\";this.opacityDiv.appendChild(this.opacityRange);this.brightnessDiv.appendChild(this.brightnessRange);var me=this;this.opacityRange.onchange=function(){me._setOpacity(this.value)};this.opacityRange.oninput=function(){me._setOpacity(this.value)};this.brightnessRange.onchange=function(){me._setBrightness(this.value)};this.brightnessRange.oninput=function(){me._setBrightness(this.value)};this.brightnessLabel=document.createElement(\"div\");this.brightnessLabel.className=\"vis-label vis-brightness\";this.brightnessLabel.innerHTML=\"brightness:\";this.opacityLabel=document.createElement(\"div\");this.opacityLabel.className=\"vis-label vis-opacity\";this.opacityLabel.innerHTML=\"opacity:\";this.newColorDiv=document.createElement(\"div\");this.newColorDiv.className=\"vis-new-color\";this.newColorDiv.innerHTML=\"new\";this.initialColorDiv=document.createElement(\"div\");this.initialColorDiv.className=\"vis-initial-color\";this.initialColorDiv.innerHTML=\"initial\";this.cancelButton=document.createElement(\"div\");this.cancelButton.className=\"vis-button vis-cancel\";this.cancelButton.innerHTML=\"cancel\";this.cancelButton.onclick=this._hide.bind(this,false);this.applyButton=document.createElement(\"div\");this.applyButton.className=\"vis-button vis-apply\";this.applyButton.innerHTML=\"apply\";this.applyButton.onclick=this._apply.bind(this);this.saveButton=document.createElement(\"div\");this.saveButton.className=\"vis-button vis-save\";this.saveButton.innerHTML=\"save\";this.saveButton.onclick=this._save.bind(this);this.loadButton=document.createElement(\"div\");this.loadButton.className=\"vis-button vis-load\";this.loadButton.innerHTML=\"load last\";this.loadButton.onclick=this._loadLast.bind(this)\n;this.frame.appendChild(this.colorPickerDiv);this.frame.appendChild(this.arrowDiv);this.frame.appendChild(this.brightnessLabel);this.frame.appendChild(this.brightnessDiv);this.frame.appendChild(this.opacityLabel);this.frame.appendChild(this.opacityDiv);this.frame.appendChild(this.newColorDiv);this.frame.appendChild(this.initialColorDiv);this.frame.appendChild(this.cancelButton);this.frame.appendChild(this.applyButton);this.frame.appendChild(this.saveButton);this.frame.appendChild(this.loadButton)}},{key:\"_bindHammer\",value:function _bindHammer(){var _this2=this;this.drag={};this.pinch={};this.hammer=new Hammer(this.colorPickerCanvas);this.hammer.get(\"pinch\").set({enable:true});hammerUtil.onTouch(this.hammer,function(event){_this2._moveSelector(event)});this.hammer.on(\"tap\",function(event){_this2._moveSelector(event)});this.hammer.on(\"panstart\",function(event){_this2._moveSelector(event)});this.hammer.on(\"panmove\",function(event){_this2._moveSelector(event)});this.hammer.on(\"panend\",function(event){_this2._moveSelector(event)})}},{key:\"_generateHueCircle\",value:function _generateHueCircle(){if(this.generated===false){var ctx=this.colorPickerCanvas.getContext(\"2d\");if(this.pixelRation===undefined){this.pixelRatio=(window.devicePixelRatio||1)/(ctx.webkitBackingStorePixelRatio||ctx.mozBackingStorePixelRatio||ctx.msBackingStorePixelRatio||ctx.oBackingStorePixelRatio||ctx.backingStorePixelRatio||1)}ctx.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0);var w=this.colorPickerCanvas.clientWidth;var h=this.colorPickerCanvas.clientHeight;ctx.clearRect(0,0,w,h);var x=void 0,y=void 0,hue=void 0,sat=void 0;this.centerCoordinates={x:w*.5,y:h*.5};this.r=.49*w;var angleConvert=2*Math.PI/360;var hfac=1/360;var sfac=1/this.r;var rgb=void 0;for(hue=0;hue<360;hue++){for(sat=0;sat<this.r;sat++){x=this.centerCoordinates.x+sat*Math.sin(angleConvert*hue);y=this.centerCoordinates.y+sat*Math.cos(angleConvert*hue);rgb=util.HSVToRGB(hue*hfac,sat*sfac,1);ctx.fillStyle=\"rgb(\"+rgb.r+\",\"+rgb.g+\",\"+rgb.b+\")\";ctx.fillRect(x-.5,y-.5,2,2)}}ctx.strokeStyle=\"rgba(0,0,0,1)\";ctx.circle(this.centerCoordinates.x,this.centerCoordinates.y,this.r);ctx.stroke();this.hueCircle=ctx.getImageData(0,0,w,h)}this.generated=true}},{key:\"_moveSelector\",value:function _moveSelector(event){var rect=this.colorPickerDiv.getBoundingClientRect();var left=event.center.x-rect.left;var top=event.center.y-rect.top;var centerY=.5*this.colorPickerDiv.clientHeight;var centerX=.5*this.colorPickerDiv.clientWidth;var x=left-centerX;var y=top-centerY;var angle=Math.atan2(x,y);var radius=.98*Math.min(Math.sqrt(x*x+y*y),centerX);var newTop=Math.cos(angle)*radius+centerY;var newLeft=Math.sin(angle)*radius+centerX;this.colorPickerSelector.style.top=newTop-.5*this.colorPickerSelector.clientHeight+\"px\";this.colorPickerSelector.style.left=newLeft-.5*this.colorPickerSelector.clientWidth+\"px\";var h=angle/(2*Math.PI);h=h<0?h+1:h;var s=radius/this.r;var hsv=util.RGBToHSV(this.color.r,this.color.g,this.color.b);hsv.h=h;hsv.s=s;var rgba=util.HSVToRGB(hsv.h,hsv.s,hsv.v);rgba[\"a\"]=this.color.a;this.color=rgba;this.initialColorDiv.style.backgroundColor=\"rgba(\"+this.initialColor.r+\",\"+this.initialColor.g+\",\"+this.initialColor.b+\",\"+this.initialColor.a+\")\";this.newColorDiv.style.backgroundColor=\"rgba(\"+this.color.r+\",\"+this.color.g+\",\"+this.color.b+\",\"+this.color.a+\")\"}}]);return ColorPicker}();exports[\"default\"]=ColorPicker},function(module,exports,__webpack_require__){\"use strict\";var moment=__webpack_require__(9);var util=__webpack_require__(2);var DataSet=__webpack_require__(11);var DataView=__webpack_require__(12);var Range=__webpack_require__(64);var Core=__webpack_require__(65);var TimeAxis=__webpack_require__(45);var CurrentTime=__webpack_require__(67);var CustomTime=__webpack_require__(46);var LineGraph=__webpack_require__(106);var printStyle=__webpack_require__(15).printStyle;var allOptions=__webpack_require__(113).allOptions;var configureOptions=__webpack_require__(113).configureOptions;var Configurator=__webpack_require__(71)[\"default\"];var Validator=__webpack_require__(15)[\"default\"];function Graph2d(container,items,groups,options){if(!(Array.isArray(groups)||groups instanceof DataSet||groups instanceof DataView)&&groups instanceof Object){var forthArgument=options;options=groups;groups=forthArgument}if(options&&options.throttleRedraw){console.warn('Graph2d option \"throttleRedraw\" is DEPRICATED and no longer supported. It will be removed in the next MAJOR release.')}var me=this;this.defaultOptions={start:null,end:null,autoResize:true,orientation:{axis:\"bottom\",item:\"bottom\"},moment:moment,width:null,height:null,maxHeight:null,minHeight:null};this.options=util.deepExtend({},this.defaultOptions);this._create(container);this.components=[];this.body={dom:this.dom,domProps:this.props,emitter:{on:this.on.bind(this),off:this.off.bind(this),emit:this.emit.bind(this)},hiddenDates:[],util:{toScreen:me._toScreen.bind(me),toGlobalScreen:me._toGlobalScreen.bind(me),toTime:me._toTime.bind(me),toGlobalTime:me._toGlobalTime.bind(me)}};this.range=new Range(this.body);this.components.push(this.range);this.body.range=this.range;this.timeAxis=new TimeAxis(this.body);this.components.push(this.timeAxis);this.currentTime=new CurrentTime(this.body);this.components.push(this.currentTime);this.linegraph=new LineGraph(this.body);this.components.push(this.linegraph);this.itemsData=null;this.groupsData=null;this.on(\"tap\",function(event){me.emit(\"click\",me.getEventProperties(event))});this.on(\"doubletap\",function(event){me.emit(\"doubleClick\",me.getEventProperties(event))});this.dom.root.oncontextmenu=function(event){me.emit(\"contextmenu\",me.getEventProperties(event))};if(options){this.setOptions(options)}if(groups){this.setGroups(groups)}if(items){this.setItems(items)}this._redraw()}Graph2d.prototype=new Core;Graph2d.prototype.setOptions=function(options){var errorFound=Validator.validate(options,allOptions);if(errorFound===true){console.log(\"%cErrors have been found in the supplied options object.\",printStyle)}Core.prototype.setOptions.call(this,options)};Graph2d.prototype.setItems=function(items){var initialLoad=this.itemsData==null;var newDataSet;if(!items){newDataSet=null}else if(items instanceof DataSet||items instanceof DataView){newDataSet=items}else{newDataSet=new DataSet(items,{type:{start:\"Date\",end:\"Date\"}})}this.itemsData=newDataSet;this.linegraph&&this.linegraph.setItems(newDataSet);if(initialLoad){if(this.options.start!=undefined||this.options.end!=undefined){var start=this.options.start!=undefined?this.options.start:null;var end=this.options.end!=undefined?this.options.end:null;this.setWindow(start,end,{animation:false})}else{this.fit({animation:false})}}};Graph2d.prototype.setGroups=function(groups){var newDataSet;if(!groups){newDataSet=null}else if(groups instanceof DataSet||groups instanceof DataView){newDataSet=groups}else{newDataSet=new DataSet(groups)}this.groupsData=newDataSet;this.linegraph.setGroups(newDataSet)};Graph2d.prototype.getLegend=function(groupId,width,height){if(width===undefined){width=15}if(height===undefined){height=15}if(this.linegraph.groups[groupId]!==undefined){return this.linegraph.groups[groupId].getLegend(width,height)}else{return\"cannot find group:'\"+groupId+\"'\"}};Graph2d.prototype.isGroupVisible=function(groupId){if(this.linegraph.groups[groupId]!==undefined){return this.linegraph.groups[groupId].visible&&(this.linegraph.options.groups.visibility[groupId]===undefined||this.linegraph.options.groups.visibility[groupId]==true)}else{return false}};Graph2d.prototype.getDataRange=function(){var min=null;var max=null;for(var groupId in this.linegraph.groups){if(this.linegraph.groups.hasOwnProperty(groupId)){if(this.linegraph.groups[groupId].visible==true){for(var i=0;i<this.linegraph.groups[groupId].itemsData.length;i++){var item=this.linegraph.groups[groupId].itemsData[i];var value=util.convert(item.x,\"Date\").valueOf();min=min==null?value:min>value?value:min;max=max==null?value:max<value?value:max}}}}return{min:min!=null?new Date(min):null,max:max!=null?new Date(max):null}};Graph2d.prototype.getEventProperties=function(event){var clientX=event.center?event.center.x:event.clientX;var clientY=event.center?event.center.y:event.clientY;var x=clientX-util.getAbsoluteLeft(this.dom.centerContainer);var y=clientY-util.getAbsoluteTop(this.dom.centerContainer);var time=this._toTime(x);var customTime=CustomTime.customTimeFromTarget(event);var element=util.getTarget(event);var what=null;if(util.hasParent(element,this.timeAxis.dom.foreground)){what=\"axis\"}else if(this.timeAxis2&&util.hasParent(element,this.timeAxis2.dom.foreground)){what=\"axis\"}else if(util.hasParent(element,this.linegraph.yAxisLeft.dom.frame)){what=\"data-axis\"}else if(util.hasParent(element,this.linegraph.yAxisRight.dom.frame)){what=\"data-axis\"}else if(util.hasParent(element,this.linegraph.legendLeft.dom.frame)){what=\"legend\"}else if(util.hasParent(element,this.linegraph.legendRight.dom.frame)){what=\"legend\"}else if(customTime!=null){what=\"custom-time\"}else if(util.hasParent(element,this.currentTime.bar)){what=\"current-time\"}else if(util.hasParent(element,this.dom.center)){what=\"background\"}var value=[];var yAxisLeft=this.linegraph.yAxisLeft;var yAxisRight=this.linegraph.yAxisRight;if(!yAxisLeft.hidden&&this.itemsData.length>0){value.push(yAxisLeft.screenToValue(y))}if(!yAxisRight.hidden&&this.itemsData.length>0){value.push(yAxisRight.screenToValue(y))}return{event:event,what:what,pageX:event.srcEvent?event.srcEvent.pageX:event.pageX,pageY:event.srcEvent?event.srcEvent.pageY:event.pageY,x:x,y:y,time:time,value:value}};Graph2d.prototype._createConfigurator=function(){return new Configurator(this,this.dom.container,configureOptions)};module.exports=Graph2d},function(module,exports,__webpack_require__){\"use strict\";exports.util=__webpack_require__(2);exports.DOMutil=__webpack_require__(14);exports.DataSet=__webpack_require__(11);exports.DataView=__webpack_require__(12);exports.Queue=__webpack_require__(43);exports.Network=__webpack_require__(182);exports.network={Images:__webpack_require__(116),dotparser:__webpack_require__(114),gephiParser:__webpack_require__(115),allOptions:__webpack_require__(122)};exports.network.convertDot=function(input){return exports.network.dotparser.DOTToGraph(input)};exports.network.convertGephi=function(input,options){return exports.network.gephiParser.parseGephi(input,options)};exports.moment=__webpack_require__(9);exports.Hammer=__webpack_require__(10);exports.keycharm=__webpack_require__(35)},function(module,exports,__webpack_require__){\"use strict\";__webpack_require__(183);var Emitter=__webpack_require__(44);var util=__webpack_require__(2);var dotparser=__webpack_require__(114);var gephiParser=__webpack_require__(115);var Activator=__webpack_require__(97);var locales=__webpack_require__(184);var Images=__webpack_require__(116)[\"default\"];var Groups=__webpack_require__(186)[\"default\"];var NodesHandler=__webpack_require__(187)[\"default\"];var EdgesHandler=__webpack_require__(214)[\"default\"];var PhysicsEngine=__webpack_require__(220)[\"default\"];var ClusterEngine=__webpack_require__(227)[\"default\"];var CanvasRenderer=__webpack_require__(229)[\"default\"];var Canvas=__webpack_require__(230)[\"default\"];var View=__webpack_require__(231)[\"default\"];var InteractionHandler=__webpack_require__(232)[\"default\"];var SelectionHandler=__webpack_require__(234)[\"default\"];var LayoutEngine=__webpack_require__(235)[\"default\"];var ManipulationSystem=__webpack_require__(237)[\"default\"];var Configurator=__webpack_require__(71)[\"default\"];var Validator=__webpack_require__(15)[\"default\"];var _require=__webpack_require__(15),printStyle=_require.printStyle;var _require2=__webpack_require__(122),allOptions=_require2.allOptions,configureOptions=_require2.configureOptions;var KamadaKawai=__webpack_require__(238)[\"default\"];function Network(container,data,options){var _this=this;if(!(this instanceof Network)){throw new SyntaxError(\"Constructor must be called with the new operator\")}this.options={};this.defaultOptions={locale:\"en\",locales:locales,clickToUse:false};util.extend(this.options,this.defaultOptions);this.body={container:container,nodes:{},nodeIndices:[],edges:{},edgeIndices:[],emitter:{on:this.on.bind(this),off:this.off.bind(this),emit:this.emit.bind(this),once:this.once.bind(this)},eventListeners:{onTap:function onTap(){},onTouch:function onTouch(){},onDoubleTap:function onDoubleTap(){},onHold:function onHold(){},onDragStart:function onDragStart(){},onDrag:function onDrag(){},onDragEnd:function onDragEnd(){},onMouseWheel:function onMouseWheel(){},onPinch:function onPinch(){},onMouseMove:function onMouseMove(){},onRelease:function onRelease(){},onContext:function onContext(){}},data:{nodes:null,edges:null},functions:{createNode:function createNode(){},createEdge:function createEdge(){},getPointer:function getPointer(){}},modules:{},view:{scale:1,translation:{x:0,y:0}}};this.bindEventListeners();this.images=new Images(function(){return _this.body.emitter.emit(\"_requestRedraw\")});this.groups=new Groups;this.canvas=new Canvas(this.body);this.selectionHandler=new SelectionHandler(this.body,this.canvas);this.interactionHandler=new InteractionHandler(this.body,this.canvas,this.selectionHandler);this.view=new View(this.body,this.canvas);this.renderer=new CanvasRenderer(this.body,this.canvas);this.physics=new PhysicsEngine(this.body);this.layoutEngine=new LayoutEngine(this.body);this.clustering=new ClusterEngine(this.body);this.manipulation=new ManipulationSystem(this.body,this.canvas,this.selectionHandler);this.nodesHandler=new NodesHandler(this.body,this.images,this.groups,this.layoutEngine);this.edgesHandler=new EdgesHandler(this.body,this.images,this.groups);this.body.modules[\"kamadaKawai\"]=new KamadaKawai(this.body,150,.05);this.body.modules[\"clustering\"]=this.clustering;this.canvas._create();this.setOptions(options);this.setData(data)}Emitter(Network.prototype);Network.prototype.setOptions=function(options){var _this2=this;if(options!==undefined){var errorFound=Validator.validate(options,allOptions);if(errorFound===true){console.log(\"%cErrors have been found in the supplied options object.\",printStyle)}var fields=[\"locale\",\"locales\",\"clickToUse\"];util.selectiveDeepExtend(fields,this.options,options);options=this.layoutEngine.setOptions(options.layout,options);this.canvas.setOptions(options);this.groups.setOptions(options.groups);this.nodesHandler.setOptions(options.nodes);this.edgesHandler.setOptions(options.edges);this.physics.setOptions(options.physics);this.manipulation.setOptions(options.manipulation,options,this.options);this.interactionHandler.setOptions(options.interaction);this.renderer.setOptions(options.interaction);this.selectionHandler.setOptions(options.interaction);if(options.groups!==undefined){this.body.emitter.emit(\"refreshNodes\")}if(\"configure\"in options){if(!this.configurator){this.configurator=new Configurator(this,this.body.container,configureOptions,this.canvas.pixelRatio)}this.configurator.setOptions(options.configure)}if(this.configurator&&this.configurator.options.enabled===true){var networkOptions={nodes:{},edges:{},layout:{},interaction:{},manipulation:{},physics:{},global:{}};util.deepExtend(networkOptions.nodes,this.nodesHandler.options);util.deepExtend(networkOptions.edges,this.edgesHandler.options);util.deepExtend(networkOptions.layout,this.layoutEngine.options);util.deepExtend(networkOptions.interaction,this.selectionHandler.options);util.deepExtend(networkOptions.interaction,this.renderer.options);util.deepExtend(networkOptions.interaction,this.interactionHandler.options);util.deepExtend(networkOptions.manipulation,this.manipulation.options);util.deepExtend(networkOptions.physics,this.physics.options);util.deepExtend(networkOptions.global,this.canvas.options);util.deepExtend(networkOptions.global,this.options);this.configurator.setModuleOptions(networkOptions)}if(options.clickToUse!==undefined){if(options.clickToUse===true){if(this.activator===undefined){this.activator=new Activator(this.canvas.frame);this.activator.on(\"change\",function(){_this2.body.emitter.emit(\"activate\")})}}else{if(this.activator!==undefined){this.activator.destroy();delete this.activator}this.body.emitter.emit(\"activate\")}}else{this.body.emitter.emit(\"activate\")}this.canvas.setSize();this.body.emitter.emit(\"startSimulation\")}};Network.prototype._updateVisibleIndices=function(){var nodes=this.body.nodes;var edges=this.body.edges;this.body.nodeIndices=[];this.body.edgeIndices=[];for(var nodeId in nodes){if(nodes.hasOwnProperty(nodeId)){if(!this.clustering._isClusteredNode(nodeId)&&nodes[nodeId].options.hidden===false){this.body.nodeIndices.push(nodes[nodeId].id)}}}for(var edgeId in edges){if(edges.hasOwnProperty(edgeId)){var edge=edges[edgeId];var fromNode=nodes[edge.fromId];var toNode=nodes[edge.toId];var edgeNodesPresent=fromNode!==undefined&&toNode!==undefined;var isVisible=!this.clustering._isClusteredEdge(edgeId)&&edge.options.hidden===false&&edgeNodesPresent&&fromNode.options.hidden===false&&toNode.options.hidden===false;if(isVisible){this.body.edgeIndices.push(edge.id)}}}};Network.prototype.bindEventListeners=function(){var _this3=this;this.body.emitter.on(\"_dataChanged\",function(){_this3.edgesHandler._updateState();_this3.body.emitter.emit(\"_dataUpdated\")});this.body.emitter.on(\"_dataUpdated\",function(){_this3.clustering._updateState();_this3._updateVisibleIndices();_this3._updateValueRange(_this3.body.nodes);_this3._updateValueRange(_this3.body.edges);_this3.body.emitter.emit(\"startSimulation\");_this3.body.emitter.emit(\"_requestRedraw\")})};Network.prototype.setData=function(data){this.body.emitter.emit(\"resetPhysics\");this.body.emitter.emit(\"_resetData\");this.selectionHandler.unselectAll();if(data&&data.dot&&(data.nodes||data.edges)){throw new SyntaxError('Data must contain either parameter \"dot\" or '+' parameter pair \"nodes\" and \"edges\", but not both.')}this.setOptions(data&&data.options);if(data&&data.dot){console.log(\"The dot property has been deprecated. Please use the static convertDot method to convert DOT into vis.network format and use the normal data format with nodes and edges. This converter is used like this: var data = vis.network.convertDot(dotString);\");var dotData=dotparser.DOTToGraph(data.dot);this.setData(dotData);return}else if(data&&data.gephi){console.log(\"The gephi property has been deprecated. Please use the static convertGephi method to convert gephi into vis.network format and use the normal data format with nodes and edges. This converter is used like this: var data = vis.network.convertGephi(gephiJson);\");var gephiData=gephiParser.parseGephi(data.gephi);this.setData(gephiData);return}else{this.nodesHandler.setData(data&&data.nodes,true);this.edgesHandler.setData(data&&data.edges,true)}this.body.emitter.emit(\"_dataChanged\");this.body.emitter.emit(\"_dataLoaded\");this.body.emitter.emit(\"initPhysics\")};Network.prototype.destroy=function(){this.body.emitter.emit(\"destroy\");this.body.emitter.off();this.off();delete this.groups;delete this.canvas;delete this.selectionHandler;delete this.interactionHandler;delete this.view;delete this.renderer;delete this.physics;delete this.layoutEngine;delete this.clustering;delete this.manipulation;delete this.nodesHandler;delete this.edgesHandler;delete this.configurator;delete this.images;for(var nodeId in this.body.nodes){if(!this.body.nodes.hasOwnProperty(nodeId))continue;delete this.body.nodes[nodeId]}for(var edgeId in this.body.edges){if(!this.body.edges.hasOwnProperty(edgeId))continue;delete this.body.edges[edgeId]}util.recursiveDOMDelete(this.body.container)};Network.prototype._updateValueRange=function(obj){var id;var valueMin=undefined;var valueMax=undefined;var valueTotal=0;for(id in obj){if(obj.hasOwnProperty(id)){var value=obj[id].getValue();if(value!==undefined){valueMin=valueMin===undefined?value:Math.min(value,valueMin);valueMax=valueMax===undefined?value:Math.max(value,valueMax);valueTotal+=value}}}if(valueMin!==undefined&&valueMax!==undefined){for(id in obj){if(obj.hasOwnProperty(id)){obj[id].setValueRange(valueMin,valueMax,valueTotal)}}}};Network.prototype.isActive=function(){return!this.activator||this.activator.active};Network.prototype.setSize=function(){return this.canvas.setSize.apply(this.canvas,arguments)};Network.prototype.canvasToDOM=function(){return this.canvas.canvasToDOM.apply(this.canvas,arguments)};Network.prototype.DOMtoCanvas=function(){return this.canvas.DOMtoCanvas.apply(this.canvas,arguments)};Network.prototype.findNode=function(){return this.clustering.findNode.apply(this.clustering,arguments)};Network.prototype.isCluster=function(){return this.clustering.isCluster.apply(this.clustering,arguments)};Network.prototype.openCluster=function(){return this.clustering.openCluster.apply(this.clustering,arguments)};Network.prototype.cluster=function(){return this.clustering.cluster.apply(this.clustering,arguments)};Network.prototype.getNodesInCluster=function(){return this.clustering.getNodesInCluster.apply(this.clustering,arguments)};Network.prototype.clusterByConnection=function(){return this.clustering.clusterByConnection.apply(this.clustering,arguments)};Network.prototype.clusterByHubsize=function(){return this.clustering.clusterByHubsize.apply(this.clustering,arguments)};Network.prototype.clusterOutliers=function(){return this.clustering.clusterOutliers.apply(this.clustering,arguments)};Network.prototype.getSeed=function(){return this.layoutEngine.getSeed.apply(this.layoutEngine,arguments)};Network.prototype.enableEditMode=function(){return this.manipulation.enableEditMode.apply(this.manipulation,arguments)};Network.prototype.disableEditMode=function(){return this.manipulation.disableEditMode.apply(this.manipulation,arguments)};Network.prototype.addNodeMode=function(){return this.manipulation.addNodeMode.apply(this.manipulation,arguments)};Network.prototype.editNode=function(){return this.manipulation.editNode.apply(this.manipulation,arguments)};Network.prototype.editNodeMode=function(){console.log(\"Deprecated: Please use editNode instead of editNodeMode.\");return this.manipulation.editNode.apply(this.manipulation,arguments)};Network.prototype.addEdgeMode=function(){return this.manipulation.addEdgeMode.apply(this.manipulation,arguments)};Network.prototype.editEdgeMode=function(){return this.manipulation.editEdgeMode.apply(this.manipulation,arguments)};Network.prototype.deleteSelected=function(){return this.manipulation.deleteSelected.apply(this.manipulation,arguments)};Network.prototype.getPositions=function(){return this.nodesHandler.getPositions.apply(this.nodesHandler,arguments)};Network.prototype.storePositions=function(){return this.nodesHandler.storePositions.apply(this.nodesHandler,arguments)};Network.prototype.moveNode=function(){return this.nodesHandler.moveNode.apply(this.nodesHandler,arguments)};Network.prototype.getBoundingBox=function(){return this.nodesHandler.getBoundingBox.apply(this.nodesHandler,arguments)};Network.prototype.getConnectedNodes=function(objectId){if(this.body.nodes[objectId]!==undefined){return this.nodesHandler.getConnectedNodes.apply(this.nodesHandler,arguments)}else{return this.edgesHandler.getConnectedNodes.apply(this.edgesHandler,arguments)}};Network.prototype.getConnectedEdges=function(){return this.nodesHandler.getConnectedEdges.apply(this.nodesHandler,arguments)};Network.prototype.startSimulation=function(){return this.physics.startSimulation.apply(this.physics,arguments)};Network.prototype.stopSimulation=function(){return this.physics.stopSimulation.apply(this.physics,arguments)};Network.prototype.stabilize=function(){return this.physics.stabilize.apply(this.physics,arguments)};Network.prototype.getSelection=function(){return this.selectionHandler.getSelection.apply(this.selectionHandler,arguments)};Network.prototype.setSelection=function(){return this.selectionHandler.setSelection.apply(this.selectionHandler,arguments)};Network.prototype.getSelectedNodes=function(){return this.selectionHandler.getSelectedNodes.apply(this.selectionHandler,arguments)};Network.prototype.getSelectedEdges=function(){return this.selectionHandler.getSelectedEdges.apply(this.selectionHandler,arguments)};Network.prototype.getNodeAt=function(){var node=this.selectionHandler.getNodeAt.apply(this.selectionHandler,arguments);if(node!==undefined&&node.id!==undefined){return node.id}return node};Network.prototype.getEdgeAt=function(){var edge=this.selectionHandler.getEdgeAt.apply(this.selectionHandler,arguments);if(edge!==undefined&&edge.id!==undefined){return edge.id}return edge};Network.prototype.selectNodes=function(){return this.selectionHandler.selectNodes.apply(this.selectionHandler,arguments)};Network.prototype.selectEdges=function(){return this.selectionHandler.selectEdges.apply(this.selectionHandler,arguments)};Network.prototype.unselectAll=function(){this.selectionHandler.unselectAll.apply(this.selectionHandler,arguments);this.redraw()};Network.prototype.redraw=function(){return this.renderer.redraw.apply(this.renderer,arguments)};Network.prototype.getScale=function(){return this.view.getScale.apply(this.view,arguments)};Network.prototype.getViewPosition=function(){return this.view.getViewPosition.apply(this.view,arguments)};Network.prototype.fit=function(){return this.view.fit.apply(this.view,arguments)};Network.prototype.moveTo=function(){return this.view.moveTo.apply(this.view,arguments)};Network.prototype.focus=function(){return this.view.focus.apply(this.view,arguments)};Network.prototype.releaseNode=function(){return this.view.releaseNode.apply(this.view,arguments)};Network.prototype.getOptionsFromConfigurator=function(){var options={};if(this.configurator){options=this.configurator.getOptions.apply(this.configurator)}return options};module.exports=Network},function(module,exports,__webpack_require__){\"use strict\";if(typeof CanvasRenderingContext2D!==\"undefined\"){CanvasRenderingContext2D.prototype.circle=function(x,y,r){this.beginPath();this.arc(x,y,r,0,2*Math.PI,false);this.closePath()};CanvasRenderingContext2D.prototype.square=function(x,y,r){this.beginPath();this.rect(x-r,y-r,r*2,r*2);this.closePath()};CanvasRenderingContext2D.prototype.triangle=function(x,y,r){this.beginPath();r*=1.15;y+=.275*r;var s=r*2;var s2=s/2;var ir=Math.sqrt(3)/6*s;var h=Math.sqrt(s*s-s2*s2);this.moveTo(x,y-(h-ir));this.lineTo(x+s2,y+ir);this.lineTo(x-s2,y+ir);this.lineTo(x,y-(h-ir));this.closePath()};CanvasRenderingContext2D.prototype.triangleDown=function(x,y,r){this.beginPath();r*=1.15;y-=.275*r;var s=r*2;var s2=s/2;var ir=Math.sqrt(3)/6*s;var h=Math.sqrt(s*s-s2*s2);this.moveTo(x,y+(h-ir));this.lineTo(x+s2,y-ir);this.lineTo(x-s2,y-ir);this.lineTo(x,y+(h-ir));this.closePath()};CanvasRenderingContext2D.prototype.star=function(x,y,r){this.beginPath();r*=.82;y+=.1*r;for(var n=0;n<10;n++){var radius=n%2===0?r*1.3:r*.5;this.lineTo(x+radius*Math.sin(n*2*Math.PI/10),y-radius*Math.cos(n*2*Math.PI/10))}this.closePath()};CanvasRenderingContext2D.prototype.diamond=function(x,y,r){this.beginPath();this.lineTo(x,y+r);this.lineTo(x+r,y);this.lineTo(x,y-r);this.lineTo(x-r,y);this.closePath()};CanvasRenderingContext2D.prototype.roundRect=function(x,y,w,h,r){var r2d=Math.PI/180;if(w-2*r<0){r=w/2}if(h-2*r<0){r=h/2}this.beginPath();this.moveTo(x+r,y);this.lineTo(x+w-r,y);this.arc(x+w-r,y+r,r,r2d*270,r2d*360,false);this.lineTo(x+w,y+h-r);this.arc(x+w-r,y+h-r,r,0,r2d*90,false);this.lineTo(x+r,y+h);this.arc(x+r,y+h-r,r,r2d*90,r2d*180,false);this.lineTo(x,y+r);this.arc(x+r,y+r,r,r2d*180,r2d*270,false);this.closePath()};CanvasRenderingContext2D.prototype.ellipse_vis=function(x,y,w,h){var kappa=.5522848,ox=w/2*kappa,oy=h/2*kappa,xe=x+w,ye=y+h,xm=x+w/2,ym=y+h/2;this.beginPath();this.moveTo(x,ym);this.bezierCurveTo(x,ym-oy,xm-ox,y,xm,y);this.bezierCurveTo(xm+ox,y,xe,ym-oy,xe,ym);this.bezierCurveTo(xe,ym+oy,xm+ox,ye,xm,ye);this.bezierCurveTo(xm-ox,ye,x,ym+oy,x,ym);this.closePath()};CanvasRenderingContext2D.prototype.database=function(x,y,w,h){var f=1/3;var wEllipse=w;var hEllipse=h*f;var kappa=.5522848,ox=wEllipse/2*kappa,oy=hEllipse/2*kappa,xe=x+wEllipse,ye=y+hEllipse,xm=x+wEllipse/2,ym=y+hEllipse/2,ymb=y+(h-hEllipse/2),yeb=y+h;this.beginPath();this.moveTo(xe,ym);this.bezierCurveTo(xe,ym+oy,xm+ox,ye,xm,ye);this.bezierCurveTo(xm-ox,ye,x,ym+oy,x,ym);this.bezierCurveTo(x,ym-oy,xm-ox,y,xm,y);this.bezierCurveTo(xm+ox,y,xe,ym-oy,xe,ym);this.lineTo(xe,ymb);this.bezierCurveTo(xe,ymb+oy,xm+ox,yeb,xm,yeb);this.bezierCurveTo(xm-ox,yeb,x,ymb+oy,x,ymb);this.lineTo(x,ym)};CanvasRenderingContext2D.prototype.dashedLine=function(x,y,x2,y2,pattern){this.beginPath();this.moveTo(x,y);var patternLength=pattern.length;var dx=x2-x;var dy=y2-y;var slope=dy/dx;var distRemaining=Math.sqrt(dx*dx+dy*dy);var patternIndex=0;var draw=true;var xStep=0;var dashLength=pattern[0];while(distRemaining>=.1){dashLength=pattern[patternIndex++%patternLength];if(dashLength>distRemaining){dashLength=distRemaining}xStep=Math.sqrt(dashLength*dashLength/(1+slope*slope));xStep=dx<0?-xStep:xStep;x+=xStep;y+=slope*xStep;if(draw===true){this.lineTo(x,y)}else{this.moveTo(x,y)}distRemaining-=dashLength;draw=!draw}};CanvasRenderingContext2D.prototype.hexagon=function(x,y,r){this.beginPath();var sides=6;var a=Math.PI*2/sides;this.moveTo(x+r,y);for(var i=1;i<sides;i++){this.lineTo(x+r*Math.cos(a*i),y+r*Math.sin(a*i))}this.closePath()}}},function(module,exports,__webpack_require__){\"use strict\";exports[\"en\"]={edit:\"Edit\",del:\"Delete selected\",back:\"Back\",addNode:\"Add Node\",addEdge:\"Add Edge\",editNode:\"Edit Node\",editEdge:\"Edit Edge\",addDescription:\"Click in an empty space to place a new node.\",edgeDescription:\"Click on a node and drag the edge to another node to connect them.\",editEdgeDescription:\"Click on the control points and drag them to a node to connect to it.\",createEdgeError:\"Cannot link edges to a cluster.\",deleteClusterError:\"Clusters cannot be deleted.\",editClusterError:\"Clusters cannot be edited.\"};exports[\"en_EN\"]=exports[\"en\"];exports[\"en_US\"]=exports[\"en\"];exports[\"de\"]={edit:\"Editieren\",del:\"Lösche Auswahl\",back:\"Zurück\",addNode:\"Knoten hinzufügen\",addEdge:\"Kante hinzufügen\",editNode:\"Knoten editieren\",editEdge:\"Kante editieren\",addDescription:\"Klicke auf eine freie Stelle, um einen neuen Knoten zu plazieren.\",edgeDescription:\"Klicke auf einen Knoten und ziehe die Kante zu einem anderen Knoten, um diese zu verbinden.\",editEdgeDescription:\"Klicke auf die Verbindungspunkte und ziehe diese auf einen Knoten, um sie zu verbinden.\",createEdgeError:\"Es ist nicht möglich, Kanten mit Clustern zu verbinden.\",deleteClusterError:\"Cluster können nicht gelöscht werden.\",editClusterError:\"Cluster können nicht editiert werden.\"};exports[\"de_DE\"]=exports[\"de\"];exports[\"es\"]={edit:\"Editar\",del:\"Eliminar selección\",back:\"Átras\",addNode:\"Añadir nodo\",addEdge:\"Añadir arista\",editNode:\"Editar nodo\",editEdge:\"Editar arista\",addDescription:\"Haga clic en un lugar vacío para colocar un nuevo nodo.\",edgeDescription:\"Haga clic en un nodo y arrastre la arista hacia otro nodo para conectarlos.\",editEdgeDescription:\"Haga clic en un punto de control y arrastrelo a un nodo para conectarlo.\",createEdgeError:\"No se puede conectar una arista a un grupo.\",deleteClusterError:\"No es posible eliminar grupos.\",editClusterError:\"No es posible editar grupos.\"};exports[\"es_ES\"]=exports[\"es\"];exports[\"it\"]={edit:\"Modifica\",del:\"Cancella la selezione\",back:\"Indietro\",addNode:\"Aggiungi un nodo\",addEdge:\"Aggiungi un vertice\",editNode:\"Modifica il nodo\",editEdge:\"Modifica il vertice\",addDescription:\"Clicca per aggiungere un nuovo nodo\",edgeDescription:\"Clicca su un nodo e trascinalo ad un altro nodo per connetterli.\",editEdgeDescription:\"Clicca sui Punti di controllo e trascinali ad un nodo per connetterli.\",createEdgeError:\"Non si possono collegare vertici ad un cluster\",deleteClusterError:\"I cluster non possono essere cancellati\",editClusterError:\"I clusters non possono essere modificati.\"};exports[\"it_IT\"]=exports[\"it\"];exports[\"nl\"]={edit:\"Wijzigen\",del:\"Selectie verwijderen\",\nback:\"Terug\",addNode:\"Node toevoegen\",addEdge:\"Link toevoegen\",editNode:\"Node wijzigen\",editEdge:\"Link wijzigen\",addDescription:\"Klik op een leeg gebied om een nieuwe node te maken.\",edgeDescription:\"Klik op een node en sleep de link naar een andere node om ze te verbinden.\",editEdgeDescription:\"Klik op de verbindingspunten en sleep ze naar een node om daarmee te verbinden.\",createEdgeError:\"Kan geen link maken naar een cluster.\",deleteClusterError:\"Clusters kunnen niet worden verwijderd.\",editClusterError:\"Clusters kunnen niet worden aangepast.\"};exports[\"nl_NL\"]=exports[\"nl\"];exports[\"nl_BE\"]=exports[\"nl\"];exports[\"pt-br\"]={edit:\"Editar\",del:\"Remover selecionado\",back:\"Voltar\",addNode:\"Adicionar nó\",addEdge:\"Adicionar aresta\",editNode:\"Editar nó\",editEdge:\"Editar aresta\",addDescription:\"Clique em um espaço em branco para adicionar um novo nó\",edgeDescription:\"Clique em um nó e arraste a aresta até outro nó para conectá-los\",editEdgeDescription:\"Clique nos pontos de controle e os arraste para um nó para conectá-los\",createEdgeError:\"Não foi possível linkar arestas a um cluster.\",deleteClusterError:\"Clusters não puderam ser removidos.\",editClusterError:\"Clusters não puderam ser editados.\"};exports[\"pt-BR\"]=exports[\"pt-br\"];exports[\"pt_BR\"]=exports[\"pt-br\"];exports[\"pt_br\"]=exports[\"pt-br\"];exports[\"ru\"]={edit:\"Редактировать\",del:\"Удалить выбранное\",back:\"Назад\",addNode:\"Добавить узел\",addEdge:\"Добавить ребро\",editNode:\"Редактировать узел\",editEdge:\"Редактировать ребро\",addDescription:\"Кликните в свободное место, чтобы добавить новый узел.\",edgeDescription:\"Кликните на узел и протяните ребро к другому узлу, чтобы соединить их.\",editEdgeDescription:\"Кликните на контрольные точки и перетащите их в узел, чтобы подключиться к нему.\",createEdgeError:\"Невозможно соединить ребра в кластер.\",deleteClusterError:\"Кластеры не могут быть удалены\",editClusterError:\"Кластеры недоступны для редактирования.\"};exports[\"ru_RU\"]=exports[\"ru\"];exports[\"cn\"]={edit:\"编辑\",del:\"删除选定\",back:\"返回\",addNode:\"添加节点\",addEdge:\"添加连接线\",editNode:\"编辑节点\",editEdge:\"编辑连接线\",addDescription:\"单击空白处放置新节点。\",edgeDescription:\"单击某个节点并将该连接线拖动到另一个节点以连接它们。\",editEdgeDescription:\"单击控制节点并将它们拖到节点上连接。\",createEdgeError:\"无法将连接线连接到群集。\",deleteClusterError:\"无法删除群集。\",editClusterError:\"无法编辑群集。\"};exports[\"zh_CN\"]=exports[\"cn\"]},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var CachedImage=function(){function CachedImage(){(0,_classCallCheck3[\"default\"])(this,CachedImage);this.NUM_ITERATIONS=4;this.image=new Image;this.canvas=document.createElement(\"canvas\")}(0,_createClass3[\"default\"])(CachedImage,[{key:\"init\",value:function init(){if(this.initialized())return;this.src=this.image.src;var w=this.image.width;var h=this.image.height;this.width=w;this.height=h;var h2=Math.floor(h/2);var h4=Math.floor(h/4);var h8=Math.floor(h/8);var h16=Math.floor(h/16);var w2=Math.floor(w/2);var w4=Math.floor(w/4);var w8=Math.floor(w/8);var w16=Math.floor(w/16);this.canvas.width=3*w4;this.canvas.height=h2;this.coordinates=[[0,0,w2,h2],[w2,0,w4,h4],[w2,h4,w8,h8],[5*w8,h4,w16,h16]];this._fillMipMap()}},{key:\"initialized\",value:function initialized(){return this.coordinates!==undefined}},{key:\"_fillMipMap\",value:function _fillMipMap(){var ctx=this.canvas.getContext(\"2d\");var to=this.coordinates[0];ctx.drawImage(this.image,to[0],to[1],to[2],to[3]);for(var iterations=1;iterations<this.NUM_ITERATIONS;iterations++){var from=this.coordinates[iterations-1];var _to=this.coordinates[iterations];ctx.drawImage(this.canvas,from[0],from[1],from[2],from[3],_to[0],_to[1],_to[2],_to[3])}}},{key:\"drawImageAtPosition\",value:function drawImageAtPosition(ctx,factor,left,top,width,height){if(!this.initialized())return;if(factor>2){factor*=.5;var iterations=0;while(factor>2&&iterations<this.NUM_ITERATIONS){factor*=.5;iterations+=1}if(iterations>=this.NUM_ITERATIONS){iterations=this.NUM_ITERATIONS-1}var from=this.coordinates[iterations];ctx.drawImage(this.canvas,from[0],from[1],from[2],from[3],left,top,width,height)}else{ctx.drawImage(this.image,left,top,width,height)}}}]);return CachedImage}();exports[\"default\"]=CachedImage},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var Groups=function(){function Groups(){(0,_classCallCheck3[\"default\"])(this,Groups);this.clear();this.defaultIndex=0;this.groupsArray=[];this.groupIndex=0;this.defaultGroups=[{border:\"#2B7CE9\",background:\"#97C2FC\",highlight:{border:\"#2B7CE9\",background:\"#D2E5FF\"},hover:{border:\"#2B7CE9\",background:\"#D2E5FF\"}},{border:\"#FFA500\",background:\"#FFFF00\",highlight:{border:\"#FFA500\",background:\"#FFFFA3\"},hover:{border:\"#FFA500\",background:\"#FFFFA3\"}},{border:\"#FA0A10\",background:\"#FB7E81\",highlight:{border:\"#FA0A10\",background:\"#FFAFB1\"},hover:{border:\"#FA0A10\",background:\"#FFAFB1\"}},{border:\"#41A906\",background:\"#7BE141\",highlight:{border:\"#41A906\",background:\"#A1EC76\"},hover:{border:\"#41A906\",background:\"#A1EC76\"}},{border:\"#E129F0\",background:\"#EB7DF4\",highlight:{border:\"#E129F0\",background:\"#F0B3F5\"},hover:{border:\"#E129F0\",background:\"#F0B3F5\"}},{border:\"#7C29F0\",background:\"#AD85E4\",highlight:{border:\"#7C29F0\",background:\"#D3BDF0\"},hover:{border:\"#7C29F0\",background:\"#D3BDF0\"}},{border:\"#C37F00\",background:\"#FFA807\",highlight:{border:\"#C37F00\",background:\"#FFCA66\"},hover:{border:\"#C37F00\",background:\"#FFCA66\"}},{border:\"#4220FB\",background:\"#6E6EFD\",highlight:{border:\"#4220FB\",background:\"#9B9BFD\"},hover:{border:\"#4220FB\",background:\"#9B9BFD\"}},{border:\"#FD5A77\",background:\"#FFC0CB\",highlight:{border:\"#FD5A77\",background:\"#FFD1D9\"},hover:{border:\"#FD5A77\",background:\"#FFD1D9\"}},{border:\"#4AD63A\",background:\"#C2FABC\",highlight:{border:\"#4AD63A\",background:\"#E6FFE3\"},hover:{border:\"#4AD63A\",background:\"#E6FFE3\"}},{border:\"#990000\",background:\"#EE0000\",highlight:{border:\"#BB0000\",background:\"#FF3333\"},hover:{border:\"#BB0000\",background:\"#FF3333\"}},{border:\"#FF6000\",background:\"#FF6000\",highlight:{border:\"#FF6000\",background:\"#FF6000\"},hover:{border:\"#FF6000\",background:\"#FF6000\"}},{border:\"#97C2FC\",background:\"#2B7CE9\",highlight:{border:\"#D2E5FF\",background:\"#2B7CE9\"},hover:{border:\"#D2E5FF\",background:\"#2B7CE9\"}},{border:\"#399605\",background:\"#255C03\",highlight:{border:\"#399605\",background:\"#255C03\"},hover:{border:\"#399605\",background:\"#255C03\"}},{border:\"#B70054\",background:\"#FF007E\",highlight:{border:\"#B70054\",background:\"#FF007E\"},hover:{border:\"#B70054\",background:\"#FF007E\"}},{border:\"#AD85E4\",background:\"#7C29F0\",highlight:{border:\"#D3BDF0\",background:\"#7C29F0\"},hover:{border:\"#D3BDF0\",background:\"#7C29F0\"}},{border:\"#4557FA\",background:\"#000EA1\",highlight:{border:\"#6E6EFD\",background:\"#000EA1\"},hover:{border:\"#6E6EFD\",background:\"#000EA1\"}},{border:\"#FFC0CB\",background:\"#FD5A77\",highlight:{border:\"#FFD1D9\",background:\"#FD5A77\"},hover:{border:\"#FFD1D9\",background:\"#FD5A77\"}},{border:\"#C2FABC\",background:\"#74D66A\",highlight:{border:\"#E6FFE3\",background:\"#74D66A\"},hover:{border:\"#E6FFE3\",background:\"#74D66A\"}},{border:\"#EE0000\",background:\"#990000\",highlight:{border:\"#FF3333\",background:\"#BB0000\"},hover:{border:\"#FF3333\",background:\"#BB0000\"}}];this.options={};this.defaultOptions={useDefaultGroups:true};util.extend(this.options,this.defaultOptions)}(0,_createClass3[\"default\"])(Groups,[{key:\"setOptions\",value:function setOptions(options){var optionFields=[\"useDefaultGroups\"];if(options!==undefined){for(var groupName in options){if(options.hasOwnProperty(groupName)){if(optionFields.indexOf(groupName)===-1){var group=options[groupName];this.add(groupName,group)}}}}}},{key:\"clear\",value:function clear(){this.groups={};this.groupsArray=[]}},{key:\"get\",value:function get(groupname){var shouldCreate=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;var group=this.groups[groupname];if(group===undefined&&shouldCreate){if(this.options.useDefaultGroups===false&&this.groupsArray.length>0){var index=this.groupIndex%this.groupsArray.length;this.groupIndex++;group={};group.color=this.groups[this.groupsArray[index]];this.groups[groupname]=group}else{var _index=this.defaultIndex%this.defaultGroups.length;this.defaultIndex++;group={};group.color=this.defaultGroups[_index];this.groups[groupname]=group}}return group}},{key:\"add\",value:function add(groupName,style){this.groups[groupName]=style;this.groupsArray.push(groupName);return style}}]);return Groups}();exports[\"default\"]=Groups},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var DataSet=__webpack_require__(11);var DataView=__webpack_require__(12);var Node=__webpack_require__(47)[\"default\"];var NodesHandler=function(){function NodesHandler(body,images,groups,layoutEngine){var _this=this;(0,_classCallCheck3[\"default\"])(this,NodesHandler);this.body=body;this.images=images;this.groups=groups;this.layoutEngine=layoutEngine;this.body.functions.createNode=this.create.bind(this);this.nodesListeners={add:function add(event,params){_this.add(params.items)},update:function update(event,params){_this.update(params.items,params.data,params.oldData)},remove:function remove(event,params){_this.remove(params.items)}};this.defaultOptions={borderWidth:1,borderWidthSelected:2,brokenImage:undefined,color:{border:\"#2B7CE9\",background:\"#97C2FC\",highlight:{border:\"#2B7CE9\",background:\"#D2E5FF\"},hover:{border:\"#2B7CE9\",background:\"#D2E5FF\"}},fixed:{x:false,y:false},font:{color:\"#343434\",size:14,face:\"arial\",background:\"none\",strokeWidth:0,strokeColor:\"#ffffff\",align:\"center\",vadjust:0,multi:false,bold:{mod:\"bold\"},boldital:{mod:\"bold italic\"},ital:{mod:\"italic\"},mono:{mod:\"\",size:15,face:\"monospace\",vadjust:2}},group:undefined,hidden:false,icon:{face:\"FontAwesome\",code:undefined,size:50,color:\"#2B7CE9\"},image:undefined,label:undefined,labelHighlightBold:true,level:undefined,margin:{top:5,right:5,bottom:5,left:5},mass:1,physics:true,scaling:{min:10,max:30,label:{enabled:false,min:14,max:30,maxVisible:30,drawThreshold:5},customScalingFunction:function customScalingFunction(min,max,total,value){if(max===min){return.5}else{var scale=1/(max-min);return Math.max(0,(value-min)*scale)}}},shadow:{enabled:false,color:\"rgba(0,0,0,0.5)\",size:10,x:5,y:5},shape:\"ellipse\",shapeProperties:{borderDashes:false,borderRadius:6,interpolation:true,useImageSize:false,useBorderWithImage:false},size:25,title:undefined,value:undefined,x:undefined,y:undefined};if(this.defaultOptions.mass<=0){throw\"Internal error: mass in defaultOptions of NodesHandler may not be zero or negative\"}this.options=util.bridgeObject(this.defaultOptions);this.bindEventListeners()}(0,_createClass3[\"default\"])(NodesHandler,[{key:\"bindEventListeners\",value:function bindEventListeners(){var _this2=this;this.body.emitter.on(\"refreshNodes\",this.refresh.bind(this));this.body.emitter.on(\"refresh\",this.refresh.bind(this));this.body.emitter.on(\"destroy\",function(){util.forEach(_this2.nodesListeners,function(callback,event){if(_this2.body.data.nodes)_this2.body.data.nodes.off(event,callback)});delete _this2.body.functions.createNode;delete _this2.nodesListeners.add;delete _this2.nodesListeners.update;delete _this2.nodesListeners.remove;delete _this2.nodesListeners})}},{key:\"setOptions\",value:function setOptions(options){if(options!==undefined){Node.parseOptions(this.options,options);if(options.shape!==undefined){for(var nodeId in this.body.nodes){if(this.body.nodes.hasOwnProperty(nodeId)){this.body.nodes[nodeId].updateShape()}}}if(options.font!==undefined){for(var _nodeId in this.body.nodes){if(this.body.nodes.hasOwnProperty(_nodeId)){this.body.nodes[_nodeId].updateLabelModule();this.body.nodes[_nodeId].needsRefresh()}}}if(options.size!==undefined){for(var _nodeId2 in this.body.nodes){if(this.body.nodes.hasOwnProperty(_nodeId2)){this.body.nodes[_nodeId2].needsRefresh()}}}if(options.hidden!==undefined||options.physics!==undefined){this.body.emitter.emit(\"_dataChanged\")}}}},{key:\"setData\",value:function setData(nodes){var doNotEmit=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;var oldNodesData=this.body.data.nodes;if(nodes instanceof DataSet||nodes instanceof DataView){this.body.data.nodes=nodes}else if(Array.isArray(nodes)){this.body.data.nodes=new DataSet;this.body.data.nodes.add(nodes)}else if(!nodes){this.body.data.nodes=new DataSet}else{throw new TypeError(\"Array or DataSet expected\")}if(oldNodesData){util.forEach(this.nodesListeners,function(callback,event){oldNodesData.off(event,callback)})}this.body.nodes={};if(this.body.data.nodes){var me=this;util.forEach(this.nodesListeners,function(callback,event){me.body.data.nodes.on(event,callback)});var ids=this.body.data.nodes.getIds();this.add(ids,true)}if(doNotEmit===false){this.body.emitter.emit(\"_dataChanged\")}}},{key:\"add\",value:function add(ids){var doNotEmit=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;var id=void 0;var newNodes=[];for(var i=0;i<ids.length;i++){id=ids[i];var properties=this.body.data.nodes.get(id);var node=this.create(properties);newNodes.push(node);this.body.nodes[id]=node}this.layoutEngine.positionInitially(newNodes);if(doNotEmit===false){this.body.emitter.emit(\"_dataChanged\")}}},{key:\"update\",value:function update(ids,changedData,oldData){var nodes=this.body.nodes;var dataChanged=false;for(var i=0;i<ids.length;i++){var id=ids[i];var node=nodes[id];var data=changedData[i];if(node!==undefined){if(node.setOptions(data)){dataChanged=true}}else{dataChanged=true;node=this.create(data);nodes[id]=node}}if(!dataChanged&&oldData!==undefined){dataChanged=changedData.some(function(newValue,index){var oldValue=oldData[index];return oldValue&&oldValue.level!==newValue.level})}if(dataChanged===true){this.body.emitter.emit(\"_dataChanged\")}else{this.body.emitter.emit(\"_dataUpdated\")}}},{key:\"remove\",value:function remove(ids){var nodes=this.body.nodes;for(var i=0;i<ids.length;i++){var id=ids[i];delete nodes[id]}this.body.emitter.emit(\"_dataChanged\")}},{key:\"create\",value:function create(properties){var constructorClass=arguments.length>1&&arguments[1]!==undefined?arguments[1]:Node;return new constructorClass(properties,this.body,this.images,this.groups,this.options,this.defaultOptions)}},{key:\"refresh\",value:function refresh(){var _this3=this;var clearPositions=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;util.forEach(this.body.nodes,function(node,nodeId){var data=_this3.body.data.nodes.get(nodeId);if(data!==undefined){if(clearPositions===true){node.setOptions({x:null,y:null})}node.setOptions({fixed:false});node.setOptions(data)}})}},{key:\"getPositions\",value:function getPositions(ids){var dataArray={};if(ids!==undefined){if(Array.isArray(ids)===true){for(var i=0;i<ids.length;i++){if(this.body.nodes[ids[i]]!==undefined){var node=this.body.nodes[ids[i]];dataArray[ids[i]]={x:Math.round(node.x),y:Math.round(node.y)}}}}else{if(this.body.nodes[ids]!==undefined){var _node=this.body.nodes[ids];dataArray[ids]={x:Math.round(_node.x),y:Math.round(_node.y)}}}}else{for(var _i=0;_i<this.body.nodeIndices.length;_i++){var _node2=this.body.nodes[this.body.nodeIndices[_i]];dataArray[this.body.nodeIndices[_i]]={x:Math.round(_node2.x),y:Math.round(_node2.y)}}}return dataArray}},{key:\"storePositions\",value:function storePositions(){var dataArray=[];var dataset=this.body.data.nodes.getDataSet();for(var nodeId in dataset._data){if(dataset._data.hasOwnProperty(nodeId)){var node=this.body.nodes[nodeId];if(dataset._data[nodeId].x!=Math.round(node.x)||dataset._data[nodeId].y!=Math.round(node.y)){dataArray.push({id:node.id,x:Math.round(node.x),y:Math.round(node.y)})}}}dataset.update(dataArray)}},{key:\"getBoundingBox\",value:function getBoundingBox(nodeId){if(this.body.nodes[nodeId]!==undefined){return this.body.nodes[nodeId].shape.boundingBox}}},{key:\"getConnectedNodes\",value:function getConnectedNodes(nodeId,direction){var nodeList=[];if(this.body.nodes[nodeId]!==undefined){var node=this.body.nodes[nodeId];var nodeObj={};for(var i=0;i<node.edges.length;i++){var edge=node.edges[i];if(direction!==\"to\"&&edge.toId==node.id){if(nodeObj[edge.fromId]===undefined){nodeList.push(edge.fromId);nodeObj[edge.fromId]=true}}else if(direction!==\"from\"&&edge.fromId==node.id){if(nodeObj[edge.toId]===undefined){nodeList.push(edge.toId);nodeObj[edge.toId]=true}}}}return nodeList}},{key:\"getConnectedEdges\",value:function getConnectedEdges(nodeId){var edgeList=[];if(this.body.nodes[nodeId]!==undefined){var node=this.body.nodes[nodeId];for(var i=0;i<node.edges.length;i++){edgeList.push(node.edges[i].id)}}else{console.log(\"NodeId provided for getConnectedEdges does not exist. Provided: \",nodeId)}return edgeList}},{key:\"moveNode\",value:function moveNode(nodeId,x,y){var _this4=this;if(this.body.nodes[nodeId]!==undefined){this.body.nodes[nodeId].x=Number(x);this.body.nodes[nodeId].y=Number(y);setTimeout(function(){_this4.body.emitter.emit(\"startSimulation\")},0)}else{console.log(\"Node id supplied to moveNode does not exist. Provided: \",nodeId)}}}]);return NodesHandler}();exports[\"default\"]=NodesHandler},function(module,exports,__webpack_require__){module.exports={default:__webpack_require__(189),__esModule:true}},function(module,exports,__webpack_require__){__webpack_require__(49);__webpack_require__(60);module.exports=__webpack_require__(190)},function(module,exports,__webpack_require__){var classof=__webpack_require__(86);var ITERATOR=__webpack_require__(13)(\"iterator\");var Iterators=__webpack_require__(31);module.exports=__webpack_require__(7).isIterable=function(it){var O=Object(it);return O[ITERATOR]!==undefined||\"@@iterator\"in O||Iterators.hasOwnProperty(classof(O))}},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var LabelAccumulator=__webpack_require__(192)[\"default\"];var ComponentUtil=__webpack_require__(48)[\"default\"];var LabelSplitter=function(){function LabelSplitter(ctx,parent,selected,hover){var _this=this;(0,_classCallCheck3[\"default\"])(this,LabelSplitter);this.ctx=ctx;this.parent=parent;var textWidth=function textWidth(text,mod){if(text===undefined)return 0;var values=_this.parent.getFormattingValues(ctx,selected,hover,mod);var width=0;if(text!==\"\"){var measure=_this.ctx.measureText(text);width=measure.width}return{width:width,values:values}};this.lines=new LabelAccumulator(textWidth)}(0,_createClass3[\"default\"])(LabelSplitter,[{key:\"process\",value:function process(text){if(!ComponentUtil.isValidLabel(text)){return this.lines.finalize()}var font=this.parent.fontOptions;text=text.replace(/\\r\\n/g,\"\\n\");text=text.replace(/\\r/g,\"\\n\");var nlLines=String(text).split(\"\\n\");var lineCount=nlLines.length;if(font.multi){for(var i=0;i<lineCount;i++){var blocks=this.splitBlocks(nlLines[i],font.multi);if(blocks===undefined)continue;if(blocks.length===0){this.lines.newLine(\"\");continue}if(font.maxWdt>0){for(var j=0;j<blocks.length;j++){var mod=blocks[j].mod;var _text=blocks[j].text;this.splitStringIntoLines(_text,mod,true)}}else{for(var _j=0;_j<blocks.length;_j++){var _mod=blocks[_j].mod;var _text2=blocks[_j].text;this.lines.append(_text2,_mod)}}this.lines.newLine()}}else{if(font.maxWdt>0){for(var _i=0;_i<lineCount;_i++){this.splitStringIntoLines(nlLines[_i])}}else{for(var _i2=0;_i2<lineCount;_i2++){this.lines.newLine(nlLines[_i2])}}}return this.lines.finalize()}},{key:\"decodeMarkupSystem\",value:function decodeMarkupSystem(markupSystem){var system=\"none\";if(markupSystem===\"markdown\"||markupSystem===\"md\"){system=\"markdown\"}else if(markupSystem===true||markupSystem===\"html\"){system=\"html\"}return system}},{key:\"splitHtmlBlocks\",value:function splitHtmlBlocks(text){var blocks=[];var s={bold:false,ital:false,mono:false,spacing:false,position:0,buffer:\"\",modStack:[]};s.mod=function(){return this.modStack.length===0?\"normal\":this.modStack[0]};s.modName=function(){if(this.modStack.length===0)return\"normal\";else if(this.modStack[0]===\"mono\")return\"mono\";else{if(s.bold&&s.ital){return\"boldital\"}else if(s.bold){return\"bold\"}else if(s.ital){return\"ital\"}}};s.emitBlock=function(){var override=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;if(this.spacing){this.add(\" \");this.spacing=false}if(this.buffer.length>0){blocks.push({text:this.buffer,mod:this.modName()});this.buffer=\"\"}};s.add=function(text){if(text===\" \"){s.spacing=true}if(s.spacing){this.buffer+=\" \";this.spacing=false}if(text!=\" \"){this.buffer+=text}};while(s.position<text.length){var ch=text.charAt(s.position);if(/[ \\t]/.test(ch)){if(!s.mono){s.spacing=true}else{s.add(ch)}}else if(/</.test(ch)){if(!s.mono&&!s.bold&&/<b>/.test(text.substr(s.position,3))){s.emitBlock();s.bold=true;s.modStack.unshift(\"bold\");s.position+=2}else if(!s.mono&&!s.ital&&/<i>/.test(text.substr(s.position,3))){s.emitBlock();s.ital=true;s.modStack.unshift(\"ital\");s.position+=2}else if(!s.mono&&/<code>/.test(text.substr(s.position,6))){s.emitBlock();s.mono=true;s.modStack.unshift(\"mono\");s.position+=5}else if(!s.mono&&s.mod()===\"bold\"&&/<\\/b>/.test(text.substr(s.position,4))){s.emitBlock();s.bold=false;s.modStack.shift();s.position+=3}else if(!s.mono&&s.mod()===\"ital\"&&/<\\/i>/.test(text.substr(s.position,4))){s.emitBlock();s.ital=false;s.modStack.shift();s.position+=3}else if(s.mod()===\"mono\"&&/<\\/code>/.test(text.substr(s.position,7))){s.emitBlock();s.mono=false;s.modStack.shift();s.position+=6}else{s.add(ch)}}else if(/&/.test(ch)){if(/</.test(text.substr(s.position,4))){s.add(\"<\");s.position+=3}else if(/&/.test(text.substr(s.position,5))){s.add(\"&\");s.position+=4}else{s.add(\"&\")}}else{s.add(ch)}s.position++}s.emitBlock();return blocks}},{key:\"splitMarkdownBlocks\",value:function splitMarkdownBlocks(text){var blocks=[];var s={bold:false,ital:false,mono:false,beginable:true,spacing:false,position:0,buffer:\"\",modStack:[]};s.mod=function(){return this.modStack.length===0?\"normal\":this.modStack[0]};s.modName=function(){if(this.modStack.length===0)return\"normal\";else if(this.modStack[0]===\"mono\")return\"mono\";else{if(s.bold&&s.ital){return\"boldital\"}else if(s.bold){return\"bold\"}else if(s.ital){return\"ital\"}}};s.emitBlock=function(){var override=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;if(this.spacing){this.add(\" \");this.spacing=false}if(this.buffer.length>0){blocks.push({text:this.buffer,mod:this.modName()});this.buffer=\"\"}};s.add=function(text){if(text===\" \"){s.spacing=true}if(s.spacing){this.buffer+=\" \";this.spacing=false}if(text!=\" \"){this.buffer+=text}};while(s.position<text.length){var ch=text.charAt(s.position);if(/[ \\t]/.test(ch)){if(!s.mono){s.spacing=true}else{s.add(ch)}s.beginable=true}else if(/\\\\/.test(ch)){if(s.position<text.length+1){s.position++;ch=text.charAt(s.position);if(/ \\t/.test(ch)){s.spacing=true}else{s.add(ch);s.beginable=false}}}else if(!s.mono&&!s.bold&&(s.beginable||s.spacing)&&/\\*/.test(ch)){s.emitBlock();s.bold=true;s.modStack.unshift(\"bold\")}else if(!s.mono&&!s.ital&&(s.beginable||s.spacing)&&/\\_/.test(ch)){s.emitBlock();s.ital=true;s.modStack.unshift(\"ital\")}else if(!s.mono&&(s.beginable||s.spacing)&&/`/.test(ch)){s.emitBlock();s.mono=true;s.modStack.unshift(\"mono\")}else if(!s.mono&&s.mod()===\"bold\"&&/\\*/.test(ch)){if(s.position===text.length-1||/[.,_` \\t\\n]/.test(text.charAt(s.position+1))){s.emitBlock();s.bold=false;s.modStack.shift()}else{s.add(ch)}}else if(!s.mono&&s.mod()===\"ital\"&&/\\_/.test(ch)){if(s.position===text.length-1||/[.,*` \\t\\n]/.test(text.charAt(s.position+1))){s.emitBlock();s.ital=false;s.modStack.shift()}else{s.add(ch)}}else if(s.mono&&s.mod()===\"mono\"&&/`/.test(ch)){if(s.position===text.length-1||/[.,*_ \\t\\n]/.test(text.charAt(s.position+1))){s.emitBlock();s.mono=false;s.modStack.shift()}else{s.add(ch)}}else{s.add(ch);s.beginable=false}s.position++}s.emitBlock();return blocks}},{key:\"splitBlocks\",value:function splitBlocks(text,markupSystem){var system=this.decodeMarkupSystem(markupSystem);if(system===\"none\"){return[{text:text,mod:\"normal\"}]}else if(system===\"markdown\"){return this.splitMarkdownBlocks(text)}else if(system===\"html\"){return this.splitHtmlBlocks(text)}}},{key:\"overMaxWidth\",value:function overMaxWidth(text){var width=this.ctx.measureText(text).width;return this.lines.curWidth()+width>this.parent.fontOptions.maxWdt}},{key:\"getLongestFit\",value:function getLongestFit(words){var text=\"\";var w=0;while(w<words.length){var pre=text===\"\"?\"\":\" \";var newText=text+pre+words[w];if(this.overMaxWidth(newText))break;text=newText;w++}return w}},{key:\"getLongestFitWord\",value:function getLongestFitWord(words){var w=0;while(w<words.length){if(this.overMaxWidth(words.slice(0,w)))break;w++}return w}},{key:\"splitStringIntoLines\",value:function splitStringIntoLines(str){var mod=arguments.length>1&&arguments[1]!==undefined?arguments[1]:\"normal\";var appendLast=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;str=str.replace(/^( +)/g,\"$1\\r\");str=str.replace(/([^\\r][^ ]*)( +)/g,\"$1\\r$2\\r\");var words=str.split(\"\\r\");while(words.length>0){var w=this.getLongestFit(words);if(w===0){var word=words[0];var x=this.getLongestFitWord(word);this.lines.newLine(word.slice(0,x),mod);words[0]=word.slice(x)}else{var newW=w;if(words[w-1]===\" \"){w--}else if(words[newW]===\" \"){newW++}var text=words.slice(0,w).join(\"\");if(w==words.length&&appendLast){this.lines.append(text,mod)}else{this.lines.newLine(text,mod)}words=words.slice(newW)}}}}]);return LabelSplitter}();exports[\"default\"]=LabelSplitter},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _assign=__webpack_require__(90);var _assign2=_interopRequireDefault(_assign);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var LabelAccumulator=function(){function LabelAccumulator(measureText){(0,_classCallCheck3[\"default\"])(this,LabelAccumulator);this.measureText=measureText;this.current=0;this.width=0;this.height=0;this.lines=[]}(0,_createClass3[\"default\"])(LabelAccumulator,[{key:\"_add\",value:function _add(l,text){var mod=arguments.length>2&&arguments[2]!==undefined?arguments[2]:\"normal\";if(this.lines[l]===undefined){this.lines[l]={width:0,height:0,blocks:[]}}var tmpText=text;if(text===undefined||text===\"\")tmpText=\" \";var result=this.measureText(tmpText,mod);var block=(0,_assign2[\"default\"])({},result.values);block.text=text;block.width=result.width;block.mod=mod;if(text===undefined||text===\"\"){block.width=0}this.lines[l].blocks.push(block);this.lines[l].width+=block.width}},{key:\"curWidth\",value:function curWidth(){var line=this.lines[this.current];if(line===undefined)return 0;return line.width}},{key:\"append\",value:function append(text){var mod=arguments.length>1&&arguments[1]!==undefined?arguments[1]:\"normal\";this._add(this.current,text,mod)}},{key:\"newLine\",value:function newLine(text){var mod=arguments.length>1&&arguments[1]!==undefined?arguments[1]:\"normal\";this._add(this.current,text,mod);this.current++}},{key:\"determineLineHeights\",value:function determineLineHeights(){for(var k=0;k<this.lines.length;k++){var line=this.lines[k];var height=0;if(line.blocks!==undefined){for(var l=0;l<line.blocks.length;l++){var block=line.blocks[l];if(height<block.height){height=block.height}}}line.height=height}}},{key:\"determineLabelSize\",value:function determineLabelSize(){var width=0;var height=0;for(var k=0;k<this.lines.length;k++){var line=this.lines[k];if(line.width>width){width=line.width}height+=line.height}this.width=width;this.height=height}},{key:\"removeEmptyBlocks\",value:function removeEmptyBlocks(){var tmpLines=[];for(var k=0;k<this.lines.length;k++){var line=this.lines[k];if(line.blocks.length===0)continue;if(k===this.lines.length-1){if(line.width===0)continue}var tmpLine={};(0,_assign2[\"default\"])(tmpLine,line);tmpLine.blocks=[];var firstEmptyBlock=void 0;var tmpBlocks=[];for(var l=0;l<line.blocks.length;l++){var block=line.blocks[l];if(block.width!==0){tmpBlocks.push(block)}else{if(firstEmptyBlock===undefined){firstEmptyBlock=block}}}if(tmpBlocks.length===0&&firstEmptyBlock!==undefined){tmpBlocks.push(firstEmptyBlock)}tmpLine.blocks=tmpBlocks;tmpLines.push(tmpLine)}return tmpLines}},{key:\"finalize\",value:function finalize(){this.determineLineHeights();this.determineLabelSize();var tmpLines=this.removeEmptyBlocks();return{width:this.width,height:this.height,lines:tmpLines}}}]);return LabelAccumulator}();exports[\"default\"]=LabelAccumulator},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _NodeBase2=__webpack_require__(23);var _NodeBase3=_interopRequireDefault(_NodeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Box=function(_NodeBase){(0,_inherits3[\"default\"])(Box,_NodeBase);function Box(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,Box);var _this=(0,_possibleConstructorReturn3[\"default\"])(this,(Box.__proto__||(0,_getPrototypeOf2[\"default\"])(Box)).call(this,options,body,labelModule));_this._setMargins(labelModule);return _this}(0,_createClass3[\"default\"])(Box,[{key:\"resize\",value:function resize(ctx){var selected=arguments.length>1&&arguments[1]!==undefined?arguments[1]:this.selected;var hover=arguments.length>2&&arguments[2]!==undefined?arguments[2]:this.hover;if(this.needsRefresh(selected,hover)){var dimensions=this.getDimensionsFromLabel(ctx,selected,hover);this.width=dimensions.width+this.margin.right+this.margin.left;this.height=dimensions.height+this.margin.top+this.margin.bottom;this.radius=this.width/2}}},{key:\"draw\",value:function draw(ctx,x,y,selected,hover,values){this.resize(ctx,selected,hover);this.left=x-this.width/2;this.top=y-this.height/2;this.initContextForDraw(ctx,values);ctx.roundRect(this.left,this.top,this.width,this.height,values.borderRadius);this.performFill(ctx,values);this.updateBoundingBox(x,y,ctx,selected,hover);this.labelModule.draw(ctx,this.left+this.textSize.width/2+this.margin.left,this.top+this.textSize.height/2+this.margin.top,selected,hover)}},{key:\"updateBoundingBox\",value:function updateBoundingBox(x,y,ctx,selected,hover){this._updateBoundingBox(x,y,ctx,selected,hover)\n;var borderRadius=this.options.shapeProperties.borderRadius;this._addBoundingBoxMargin(borderRadius)}},{key:\"distanceToBorder\",value:function distanceToBorder(ctx,angle){this.resize(ctx);var borderWidth=this.options.borderWidth;return Math.min(Math.abs(this.width/2/Math.cos(angle)),Math.abs(this.height/2/Math.sin(angle)))+borderWidth}}]);return Box}(_NodeBase3[\"default\"]);exports[\"default\"]=Box},function(module,exports,__webpack_require__){__webpack_require__(195);module.exports=__webpack_require__(7).Object.getPrototypeOf},function(module,exports,__webpack_require__){var toObject=__webpack_require__(41);var $getPrototypeOf=__webpack_require__(85);__webpack_require__(87)(\"getPrototypeOf\",function(){return function getPrototypeOf(it){return $getPrototypeOf(toObject(it))}})},function(module,exports,__webpack_require__){module.exports={default:__webpack_require__(197),__esModule:true}},function(module,exports,__webpack_require__){__webpack_require__(198);module.exports=__webpack_require__(7).Object.setPrototypeOf},function(module,exports,__webpack_require__){var $export=__webpack_require__(17);$export($export.S,\"Object\",{setPrototypeOf:__webpack_require__(199).set})},function(module,exports,__webpack_require__){var isObject=__webpack_require__(32);var anObject=__webpack_require__(27);var check=function(O,proto){anObject(O);if(!isObject(proto)&&proto!==null)throw TypeError(proto+\": can't set as prototype!\")};module.exports={set:Object.setPrototypeOf||(\"__proto__\"in{}?function(test,buggy,set){try{set=__webpack_require__(80)(Function.call,__webpack_require__(89).f(Object.prototype,\"__proto__\").set,2);set(test,[]);buggy=!(test instanceof Array)}catch(e){buggy=true}return function setPrototypeOf(O,proto){check(O,proto);if(buggy)O.__proto__=proto;else set(O,proto);return O}}({},false):undefined),check:check}},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _CircleImageBase2=__webpack_require__(73);var _CircleImageBase3=_interopRequireDefault(_CircleImageBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Circle=function(_CircleImageBase){(0,_inherits3[\"default\"])(Circle,_CircleImageBase);function Circle(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,Circle);var _this=(0,_possibleConstructorReturn3[\"default\"])(this,(Circle.__proto__||(0,_getPrototypeOf2[\"default\"])(Circle)).call(this,options,body,labelModule));_this._setMargins(labelModule);return _this}(0,_createClass3[\"default\"])(Circle,[{key:\"resize\",value:function resize(ctx){var selected=arguments.length>1&&arguments[1]!==undefined?arguments[1]:this.selected;var hover=arguments.length>2&&arguments[2]!==undefined?arguments[2]:this.hover;if(this.needsRefresh(selected,hover)){var dimensions=this.getDimensionsFromLabel(ctx,selected,hover);var diameter=Math.max(dimensions.width+this.margin.right+this.margin.left,dimensions.height+this.margin.top+this.margin.bottom);this.options.size=diameter/2;this.width=diameter;this.height=diameter;this.radius=this.width/2}}},{key:\"draw\",value:function draw(ctx,x,y,selected,hover,values){this.resize(ctx,selected,hover);this.left=x-this.width/2;this.top=y-this.height/2;this._drawRawCircle(ctx,x,y,values);this.updateBoundingBox(x,y);this.labelModule.draw(ctx,this.left+this.textSize.width/2+this.margin.left,y,selected,hover)}},{key:\"updateBoundingBox\",value:function updateBoundingBox(x,y){this.boundingBox.top=y-this.options.size;this.boundingBox.left=x-this.options.size;this.boundingBox.right=x+this.options.size;this.boundingBox.bottom=y+this.options.size}},{key:\"distanceToBorder\",value:function distanceToBorder(ctx,angle){this.resize(ctx);return this.width*.5}}]);return Circle}(_CircleImageBase3[\"default\"]);exports[\"default\"]=Circle},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _CircleImageBase2=__webpack_require__(73);var _CircleImageBase3=_interopRequireDefault(_CircleImageBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var CircularImage=function(_CircleImageBase){(0,_inherits3[\"default\"])(CircularImage,_CircleImageBase);function CircularImage(options,body,labelModule,imageObj,imageObjAlt){(0,_classCallCheck3[\"default\"])(this,CircularImage);var _this=(0,_possibleConstructorReturn3[\"default\"])(this,(CircularImage.__proto__||(0,_getPrototypeOf2[\"default\"])(CircularImage)).call(this,options,body,labelModule));_this.setImages(imageObj,imageObjAlt);return _this}(0,_createClass3[\"default\"])(CircularImage,[{key:\"resize\",value:function resize(ctx){var selected=arguments.length>1&&arguments[1]!==undefined?arguments[1]:this.selected;var hover=arguments.length>2&&arguments[2]!==undefined?arguments[2]:this.hover;var imageAbsent=this.imageObj.src===undefined||this.imageObj.width===undefined||this.imageObj.height===undefined;if(imageAbsent){var diameter=this.options.size*2;this.width=diameter;this.height=diameter;this.radius=.5*this.width;return}if(this.needsRefresh(selected,hover)){this._resizeImage()}}},{key:\"draw\",value:function draw(ctx,x,y,selected,hover,values){this.switchImages(selected);this.resize();this.left=x-this.width/2;this.top=y-this.height/2;this._drawRawCircle(ctx,x,y,values);ctx.save();ctx.clip();this._drawImageAtPosition(ctx,values);ctx.restore();this._drawImageLabel(ctx,x,y,selected,hover);this.updateBoundingBox(x,y)}},{key:\"updateBoundingBox\",value:function updateBoundingBox(x,y){this.boundingBox.top=y-this.options.size;this.boundingBox.left=x-this.options.size;this.boundingBox.right=x+this.options.size;this.boundingBox.bottom=y+this.options.size;this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left);this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width);this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelOffset)}},{key:\"distanceToBorder\",value:function distanceToBorder(ctx,angle){this.resize(ctx);return this.width*.5}}]);return CircularImage}(_CircleImageBase3[\"default\"]);exports[\"default\"]=CircularImage},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _NodeBase2=__webpack_require__(23);var _NodeBase3=_interopRequireDefault(_NodeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Database=function(_NodeBase){(0,_inherits3[\"default\"])(Database,_NodeBase);function Database(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,Database);var _this=(0,_possibleConstructorReturn3[\"default\"])(this,(Database.__proto__||(0,_getPrototypeOf2[\"default\"])(Database)).call(this,options,body,labelModule));_this._setMargins(labelModule);return _this}(0,_createClass3[\"default\"])(Database,[{key:\"resize\",value:function resize(ctx,selected,hover){if(this.needsRefresh(selected,hover)){var dimensions=this.getDimensionsFromLabel(ctx,selected,hover);var size=dimensions.width+this.margin.right+this.margin.left;this.width=size;this.height=size;this.radius=this.width/2}}},{key:\"draw\",value:function draw(ctx,x,y,selected,hover,values){this.resize(ctx,selected,hover);this.left=x-this.width/2;this.top=y-this.height/2;this.initContextForDraw(ctx,values);ctx.database(x-this.width/2,y-this.height/2,this.width,this.height);this.performFill(ctx,values);this.updateBoundingBox(x,y,ctx,selected,hover);this.labelModule.draw(ctx,this.left+this.textSize.width/2+this.margin.left,this.top+this.textSize.height/2+this.margin.top,selected,hover)}},{key:\"distanceToBorder\",value:function distanceToBorder(ctx,angle){return this._distanceToBorder(ctx,angle)}}]);return Database}(_NodeBase3[\"default\"]);exports[\"default\"]=Database},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _ShapeBase2=__webpack_require__(24);var _ShapeBase3=_interopRequireDefault(_ShapeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Diamond=function(_ShapeBase){(0,_inherits3[\"default\"])(Diamond,_ShapeBase);function Diamond(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,Diamond);return(0,_possibleConstructorReturn3[\"default\"])(this,(Diamond.__proto__||(0,_getPrototypeOf2[\"default\"])(Diamond)).call(this,options,body,labelModule))}(0,_createClass3[\"default\"])(Diamond,[{key:\"draw\",value:function draw(ctx,x,y,selected,hover,values){this._drawShape(ctx,\"diamond\",4,x,y,selected,hover,values)}},{key:\"distanceToBorder\",value:function distanceToBorder(ctx,angle){return this._distanceToBorder(ctx,angle)}}]);return Diamond}(_ShapeBase3[\"default\"]);exports[\"default\"]=Diamond},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _ShapeBase2=__webpack_require__(24);var _ShapeBase3=_interopRequireDefault(_ShapeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Dot=function(_ShapeBase){(0,_inherits3[\"default\"])(Dot,_ShapeBase);function Dot(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,Dot);return(0,_possibleConstructorReturn3[\"default\"])(this,(Dot.__proto__||(0,_getPrototypeOf2[\"default\"])(Dot)).call(this,options,body,labelModule))}(0,_createClass3[\"default\"])(Dot,[{key:\"draw\",value:function draw(ctx,x,y,selected,hover,values){this._drawShape(ctx,\"circle\",2,x,y,selected,hover,values)}},{key:\"distanceToBorder\",value:function distanceToBorder(ctx,angle){this.resize(ctx);return this.options.size}}]);return Dot}(_ShapeBase3[\"default\"]);exports[\"default\"]=Dot},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _NodeBase2=__webpack_require__(23);var _NodeBase3=_interopRequireDefault(_NodeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Ellipse=function(_NodeBase){(0,_inherits3[\"default\"])(Ellipse,_NodeBase);function Ellipse(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,Ellipse);return(0,_possibleConstructorReturn3[\"default\"])(this,(Ellipse.__proto__||(0,_getPrototypeOf2[\"default\"])(Ellipse)).call(this,options,body,labelModule))}(0,_createClass3[\"default\"])(Ellipse,[{key:\"resize\",value:function resize(ctx){var selected=arguments.length>1&&arguments[1]!==undefined?arguments[1]:this.selected;var hover=arguments.length>2&&arguments[2]!==undefined?arguments[2]:this.hover;if(this.needsRefresh(selected,hover)){var dimensions=this.getDimensionsFromLabel(ctx,selected,hover);this.height=dimensions.height*2;this.width=dimensions.width+dimensions.height;this.radius=.5*this.width}}},{key:\"draw\",value:function draw(ctx,x,y,selected,hover,values){this.resize(ctx,selected,hover);this.left=x-this.width*.5;this.top=y-this.height*.5;this.initContextForDraw(ctx,values);ctx.ellipse_vis(this.left,this.top,this.width,this.height);this.performFill(ctx,values);this.updateBoundingBox(x,y,ctx,selected,hover);this.labelModule.draw(ctx,x,y,selected,hover)}},{key:\"distanceToBorder\",value:function distanceToBorder(ctx,angle){this.resize(ctx);var a=this.width*.5;var b=this.height*.5;var w=Math.sin(angle)*a;var h=Math.cos(angle)*b;return a*b/Math.sqrt(w*w+h*h)}}]);return Ellipse}(_NodeBase3[\"default\"]);exports[\"default\"]=Ellipse},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _NodeBase2=__webpack_require__(23);var _NodeBase3=_interopRequireDefault(_NodeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Icon=function(_NodeBase){(0,_inherits3[\"default\"])(Icon,_NodeBase);function Icon(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,Icon);var _this=(0,_possibleConstructorReturn3[\"default\"])(this,(Icon.__proto__||(0,_getPrototypeOf2[\"default\"])(Icon)).call(this,options,body,labelModule));_this._setMargins(labelModule);return _this}(0,_createClass3[\"default\"])(Icon,[{key:\"resize\",value:function resize(ctx,selected,hover){if(this.needsRefresh(selected,hover)){this.iconSize={width:Number(this.options.icon.size),height:Number(this.options.icon.size)};this.width=this.iconSize.width+this.margin.right+this.margin.left;this.height=this.iconSize.height+this.margin.top+this.margin.bottom;this.radius=.5*this.width}}},{key:\"draw\",value:function draw(ctx,x,y,selected,hover,values){this.resize(ctx,selected,hover);this.options.icon.size=this.options.icon.size||50;this.left=x-this.width/2;this.top=y-this.height/2;this._icon(ctx,x,y,selected,hover,values);if(this.options.label!==undefined){var iconTextSpacing=5;this.labelModule.draw(ctx,this.left+this.iconSize.width/2+this.margin.left,y+this.height/2+iconTextSpacing,selected)}this.updateBoundingBox(x,y)}},{key:\"updateBoundingBox\",value:function updateBoundingBox(x,y){this.boundingBox.top=y-this.options.icon.size*.5;this.boundingBox.left=x-this.options.icon.size*.5;this.boundingBox.right=x+this.options.icon.size*.5;this.boundingBox.bottom=y+this.options.icon.size*.5;if(this.options.label!==undefined&&this.labelModule.size.width>0){var iconTextSpacing=5;this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left);this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width);this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelModule.size.height+iconTextSpacing)}}},{key:\"_icon\",value:function _icon(ctx,x,y,selected,hover,values){var iconSize=Number(this.options.icon.size);if(this.options.icon.code!==undefined){ctx.font=(selected?\"bold \":\"\")+iconSize+\"px \"+this.options.icon.face;ctx.fillStyle=this.options.icon.color||\"black\";ctx.textAlign=\"center\";ctx.textBaseline=\"middle\";this.enableShadow(ctx,values);ctx.fillText(this.options.icon.code,x,y);this.disableShadow(ctx,values)}else{console.error(\"When using the icon shape, you need to define the code in the icon options object. This can be done per node or globally.\")}}},{key:\"distanceToBorder\",value:function distanceToBorder(ctx,angle){return this._distanceToBorder(ctx,angle)}}]);return Icon}(_NodeBase3[\"default\"]);exports[\"default\"]=Icon},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _CircleImageBase2=__webpack_require__(73);var _CircleImageBase3=_interopRequireDefault(_CircleImageBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Image=function(_CircleImageBase){(0,_inherits3[\"default\"])(Image,_CircleImageBase);function Image(options,body,labelModule,imageObj,imageObjAlt){(0,_classCallCheck3[\"default\"])(this,Image);var _this=(0,_possibleConstructorReturn3[\"default\"])(this,(Image.__proto__||(0,_getPrototypeOf2[\"default\"])(Image)).call(this,options,body,labelModule));_this.setImages(imageObj,imageObjAlt);return _this}(0,_createClass3[\"default\"])(Image,[{key:\"resize\",value:function resize(ctx){var selected=arguments.length>1&&arguments[1]!==undefined?arguments[1]:this.selected;var hover=arguments.length>2&&arguments[2]!==undefined?arguments[2]:this.hover;var imageAbsent=this.imageObj.src===undefined||this.imageObj.width===undefined||this.imageObj.height===undefined;if(imageAbsent){var side=this.options.size*2;this.width=side;this.height=side;return}if(this.needsRefresh(selected,hover)){this._resizeImage()}}},{key:\"draw\",value:function draw(ctx,x,y,selected,hover,values){this.switchImages(selected);this.resize();this.left=x-this.width/2;this.top=y-this.height/2;if(this.options.shapeProperties.useBorderWithImage===true){var neutralborderWidth=this.options.borderWidth;var selectionLineWidth=this.options.borderWidthSelected||2*this.options.borderWidth;var borderWidth=(selected?selectionLineWidth:neutralborderWidth)/this.body.view.scale;ctx.lineWidth=Math.min(this.width,borderWidth);ctx.beginPath();ctx.strokeStyle=selected?this.options.color.highlight.border:hover?this.options.color.hover.border:this.options.color.border;ctx.fillStyle=selected?this.options.color.highlight.background:hover?this.options.color.hover.background:this.options.color.background;ctx.rect(this.left-.5*ctx.lineWidth,this.top-.5*ctx.lineWidth,this.width+ctx.lineWidth,this.height+ctx.lineWidth);ctx.fill();this.performStroke(ctx,values);ctx.closePath()}this._drawImageAtPosition(ctx,values);this._drawImageLabel(ctx,x,y,selected,hover);this.updateBoundingBox(x,y)}},{key:\"updateBoundingBox\",value:function updateBoundingBox(x,y){this.resize();this._updateBoundingBox(x,y);if(this.options.label!==undefined&&this.labelModule.size.width>0){this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left);this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width);this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelOffset)}}},{key:\"distanceToBorder\",value:function distanceToBorder(ctx,angle){return this._distanceToBorder(ctx,angle)}}]);return Image}(_CircleImageBase3[\"default\"]);exports[\"default\"]=Image},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _ShapeBase2=__webpack_require__(24);var _ShapeBase3=_interopRequireDefault(_ShapeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Square=function(_ShapeBase){(0,_inherits3[\"default\"])(Square,_ShapeBase);function Square(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,Square);return(0,_possibleConstructorReturn3[\"default\"])(this,(Square.__proto__||(0,_getPrototypeOf2[\"default\"])(Square)).call(this,options,body,labelModule))}(0,_createClass3[\"default\"])(Square,[{key:\"draw\",value:function draw(ctx,x,y,selected,hover,values){this._drawShape(ctx,\"square\",2,x,y,selected,hover,values)}},{key:\"distanceToBorder\",value:function distanceToBorder(ctx,angle){return this._distanceToBorder(ctx,angle)}}]);return Square}(_ShapeBase3[\"default\"]);exports[\"default\"]=Square},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _ShapeBase2=__webpack_require__(24);var _ShapeBase3=_interopRequireDefault(_ShapeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Hexagon=function(_ShapeBase){(0,_inherits3[\"default\"])(Hexagon,_ShapeBase);function Hexagon(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,Hexagon);return(0,_possibleConstructorReturn3[\"default\"])(this,(Hexagon.__proto__||(0,_getPrototypeOf2[\"default\"])(Hexagon)).call(this,options,body,labelModule))}(0,_createClass3[\"default\"])(Hexagon,[{key:\"draw\",value:function draw(ctx,x,y,selected,hover,values){this._drawShape(ctx,\"hexagon\",4,x,y,selected,hover,values)}},{key:\"distanceToBorder\",value:function distanceToBorder(ctx,angle){return this._distanceToBorder(ctx,angle)}}]);return Hexagon}(_ShapeBase3[\"default\"]);exports[\"default\"]=Hexagon},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _ShapeBase2=__webpack_require__(24);var _ShapeBase3=_interopRequireDefault(_ShapeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Star=function(_ShapeBase){(0,_inherits3[\"default\"])(Star,_ShapeBase);function Star(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,Star);return(0,_possibleConstructorReturn3[\"default\"])(this,(Star.__proto__||(0,_getPrototypeOf2[\"default\"])(Star)).call(this,options,body,labelModule))}(0,_createClass3[\"default\"])(Star,[{key:\"draw\",value:function draw(ctx,x,y,selected,hover,values){this._drawShape(ctx,\"star\",4,x,y,selected,hover,values)}},{key:\"distanceToBorder\",value:function distanceToBorder(ctx,angle){return this._distanceToBorder(ctx,angle)}}]);return Star}(_ShapeBase3[\"default\"]);exports[\"default\"]=Star},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _NodeBase2=__webpack_require__(23);var _NodeBase3=_interopRequireDefault(_NodeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Text=function(_NodeBase){(0,_inherits3[\"default\"])(Text,_NodeBase);function Text(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,Text);var _this=(0,_possibleConstructorReturn3[\"default\"])(this,(Text.__proto__||(0,_getPrototypeOf2[\"default\"])(Text)).call(this,options,body,labelModule));_this._setMargins(labelModule);return _this}(0,_createClass3[\"default\"])(Text,[{key:\"resize\",value:function resize(ctx,selected,hover){if(this.needsRefresh(selected,hover)){this.textSize=this.labelModule.getTextSize(ctx,selected,hover);this.width=this.textSize.width+this.margin.right+this.margin.left;this.height=this.textSize.height+this.margin.top+this.margin.bottom;this.radius=.5*this.width}}},{key:\"draw\",value:function draw(ctx,x,y,selected,hover,values){this.resize(ctx,selected,hover);this.left=x-this.width/2;this.top=y-this.height/2;this.enableShadow(ctx,values);this.labelModule.draw(ctx,this.left+this.textSize.width/2+this.margin.left,this.top+this.textSize.height/2+this.margin.top,selected,hover);this.disableShadow(ctx,values);this.updateBoundingBox(x,y,ctx,selected,hover)}},{key:\"distanceToBorder\",value:function distanceToBorder(ctx,angle){return this._distanceToBorder(ctx,angle)}}]);return Text}(_NodeBase3[\"default\"]);exports[\"default\"]=Text},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _ShapeBase2=__webpack_require__(24);var _ShapeBase3=_interopRequireDefault(_ShapeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Triangle=function(_ShapeBase){(0,_inherits3[\"default\"])(Triangle,_ShapeBase);function Triangle(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,Triangle);return(0,_possibleConstructorReturn3[\"default\"])(this,(Triangle.__proto__||(0,_getPrototypeOf2[\"default\"])(Triangle)).call(this,options,body,labelModule))}(0,_createClass3[\"default\"])(Triangle,[{key:\"draw\",value:function draw(ctx,x,y,selected,hover,values){this._drawShape(ctx,\"triangle\",3,x,y,selected,hover,values)}},{key:\"distanceToBorder\",value:function distanceToBorder(ctx,angle){return this._distanceToBorder(ctx,angle)}}]);return Triangle}(_ShapeBase3[\"default\"]);exports[\"default\"]=Triangle},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _ShapeBase2=__webpack_require__(24);var _ShapeBase3=_interopRequireDefault(_ShapeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var TriangleDown=function(_ShapeBase){(0,_inherits3[\"default\"])(TriangleDown,_ShapeBase);function TriangleDown(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,TriangleDown);return(0,_possibleConstructorReturn3[\"default\"])(this,(TriangleDown.__proto__||(0,_getPrototypeOf2[\"default\"])(TriangleDown)).call(this,options,body,labelModule))}(0,_createClass3[\"default\"])(TriangleDown,[{key:\"draw\",value:function draw(ctx,x,y,selected,hover,values){this._drawShape(ctx,\"triangleDown\",3,x,y,selected,hover,values)}},{key:\"distanceToBorder\",value:function distanceToBorder(ctx,angle){return this._distanceToBorder(ctx,angle)}}]);return TriangleDown}(_ShapeBase3[\"default\"]);exports[\"default\"]=TriangleDown},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var DataSet=__webpack_require__(11);var DataView=__webpack_require__(12);var Edge=__webpack_require__(74)[\"default\"];var EdgesHandler=function(){function EdgesHandler(body,images,groups){var _this=this;(0,_classCallCheck3[\"default\"])(this,EdgesHandler);this.body=body;this.images=images;this.groups=groups;this.body.functions.createEdge=this.create.bind(this);this.edgesListeners={add:function add(event,params){_this.add(params.items)},update:function update(event,params){_this.update(params.items)},remove:function remove(event,params){_this.remove(params.items)}};this.options={};this.defaultOptions={arrows:{to:{enabled:false,\nscaleFactor:1,type:\"arrow\"},middle:{enabled:false,scaleFactor:1,type:\"arrow\"},from:{enabled:false,scaleFactor:1,type:\"arrow\"}},arrowStrikethrough:true,color:{color:\"#848484\",highlight:\"#848484\",hover:\"#848484\",inherit:\"from\",opacity:1},dashes:false,font:{color:\"#343434\",size:14,face:\"arial\",background:\"none\",strokeWidth:2,strokeColor:\"#ffffff\",align:\"horizontal\",multi:false,vadjust:0,bold:{mod:\"bold\"},boldital:{mod:\"bold italic\"},ital:{mod:\"italic\"},mono:{mod:\"\",size:15,face:\"courier new\",vadjust:2}},hidden:false,hoverWidth:1.5,label:undefined,labelHighlightBold:true,length:undefined,physics:true,scaling:{min:1,max:15,label:{enabled:true,min:14,max:30,maxVisible:30,drawThreshold:5},customScalingFunction:function customScalingFunction(min,max,total,value){if(max===min){return.5}else{var scale=1/(max-min);return Math.max(0,(value-min)*scale)}}},selectionWidth:1.5,selfReferenceSize:20,shadow:{enabled:false,color:\"rgba(0,0,0,0.5)\",size:10,x:5,y:5},smooth:{enabled:true,type:\"dynamic\",forceDirection:\"none\",roundness:.5},title:undefined,width:1,value:undefined};util.deepExtend(this.options,this.defaultOptions);this.bindEventListeners()}(0,_createClass3[\"default\"])(EdgesHandler,[{key:\"bindEventListeners\",value:function bindEventListeners(){var _this2=this;this.body.emitter.on(\"_forceDisableDynamicCurves\",function(type){var emit=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;if(type===\"dynamic\"){type=\"continuous\"}var dataChanged=false;for(var edgeId in _this2.body.edges){if(_this2.body.edges.hasOwnProperty(edgeId)){var edge=_this2.body.edges[edgeId];var edgeData=_this2.body.data.edges._data[edgeId];if(edgeData!==undefined){var smoothOptions=edgeData.smooth;if(smoothOptions!==undefined){if(smoothOptions.enabled===true&&smoothOptions.type===\"dynamic\"){if(type===undefined){edge.setOptions({smooth:false})}else{edge.setOptions({smooth:{type:type}})}dataChanged=true}}}}}if(emit===true&&dataChanged===true){_this2.body.emitter.emit(\"_dataChanged\")}});this.body.emitter.on(\"_dataUpdated\",function(){_this2.reconnectEdges()});this.body.emitter.on(\"refreshEdges\",this.refresh.bind(this));this.body.emitter.on(\"refresh\",this.refresh.bind(this));this.body.emitter.on(\"destroy\",function(){util.forEach(_this2.edgesListeners,function(callback,event){if(_this2.body.data.edges)_this2.body.data.edges.off(event,callback)});delete _this2.body.functions.createEdge;delete _this2.edgesListeners.add;delete _this2.edgesListeners.update;delete _this2.edgesListeners.remove;delete _this2.edgesListeners})}},{key:\"setOptions\",value:function setOptions(options){if(options!==undefined){Edge.parseOptions(this.options,options,true,this.defaultOptions,true);var dataChanged=false;if(options.smooth!==undefined){for(var edgeId in this.body.edges){if(this.body.edges.hasOwnProperty(edgeId)){dataChanged=this.body.edges[edgeId].updateEdgeType()||dataChanged}}}if(options.font!==undefined){for(var _edgeId in this.body.edges){if(this.body.edges.hasOwnProperty(_edgeId)){this.body.edges[_edgeId].updateLabelModule()}}}if(options.hidden!==undefined||options.physics!==undefined||dataChanged===true){this.body.emitter.emit(\"_dataChanged\")}}}},{key:\"setData\",value:function setData(edges){var _this3=this;var doNotEmit=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;var oldEdgesData=this.body.data.edges;if(edges instanceof DataSet||edges instanceof DataView){this.body.data.edges=edges}else if(Array.isArray(edges)){this.body.data.edges=new DataSet;this.body.data.edges.add(edges)}else if(!edges){this.body.data.edges=new DataSet}else{throw new TypeError(\"Array or DataSet expected\")}if(oldEdgesData){util.forEach(this.edgesListeners,function(callback,event){oldEdgesData.off(event,callback)})}this.body.edges={};if(this.body.data.edges){util.forEach(this.edgesListeners,function(callback,event){_this3.body.data.edges.on(event,callback)});var ids=this.body.data.edges.getIds();this.add(ids,true)}this.body.emitter.emit(\"_adjustEdgesForHierarchicalLayout\");if(doNotEmit===false){this.body.emitter.emit(\"_dataChanged\")}}},{key:\"add\",value:function add(ids){var doNotEmit=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;var edges=this.body.edges;var edgesData=this.body.data.edges;for(var i=0;i<ids.length;i++){var id=ids[i];var oldEdge=edges[id];if(oldEdge){oldEdge.disconnect()}var data=edgesData.get(id,{showInternalIds:true});edges[id]=this.create(data)}this.body.emitter.emit(\"_adjustEdgesForHierarchicalLayout\");if(doNotEmit===false){this.body.emitter.emit(\"_dataChanged\")}}},{key:\"update\",value:function update(ids){var edges=this.body.edges;var edgesData=this.body.data.edges;var dataChanged=false;for(var i=0;i<ids.length;i++){var id=ids[i];var data=edgesData.get(id);var edge=edges[id];if(edge!==undefined){edge.disconnect();dataChanged=edge.setOptions(data)||dataChanged;edge.connect()}else{this.body.edges[id]=this.create(data);dataChanged=true}}if(dataChanged===true){this.body.emitter.emit(\"_adjustEdgesForHierarchicalLayout\");this.body.emitter.emit(\"_dataChanged\")}else{this.body.emitter.emit(\"_dataUpdated\")}}},{key:\"remove\",value:function remove(ids){var emit=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;if(ids.length===0)return;var edges=this.body.edges;util.forEach(ids,function(id){var edge=edges[id];if(edge!==undefined){edge.remove()}});if(emit){this.body.emitter.emit(\"_dataChanged\")}}},{key:\"refresh\",value:function refresh(){var _this4=this;util.forEach(this.body.edges,function(edge,edgeId){var data=_this4.body.data.edges._data[edgeId];if(data!==undefined){edge.setOptions(data)}})}},{key:\"create\",value:function create(properties){return new Edge(properties,this.body,this.options,this.defaultOptions)}},{key:\"reconnectEdges\",value:function reconnectEdges(){var id;var nodes=this.body.nodes;var edges=this.body.edges;for(id in nodes){if(nodes.hasOwnProperty(id)){nodes[id].edges=[]}}for(id in edges){if(edges.hasOwnProperty(id)){var edge=edges[id];edge.from=null;edge.to=null;edge.connect()}}}},{key:\"getConnectedNodes\",value:function getConnectedNodes(edgeId){var nodeList=[];if(this.body.edges[edgeId]!==undefined){var edge=this.body.edges[edgeId];if(edge.fromId!==undefined){nodeList.push(edge.fromId)}if(edge.toId!==undefined){nodeList.push(edge.toId)}}return nodeList}},{key:\"_updateState\",value:function _updateState(){this._addMissingEdges();this._removeInvalidEdges()}},{key:\"_removeInvalidEdges\",value:function _removeInvalidEdges(){var _this5=this;var edgesToDelete=[];util.forEach(this.body.edges,function(edge,id){var toNode=_this5.body.nodes[edge.toId];var fromNode=_this5.body.nodes[edge.fromId];if(toNode!==undefined&&toNode.isCluster===true||fromNode!==undefined&&fromNode.isCluster===true){return}if(toNode===undefined||fromNode===undefined){edgesToDelete.push(id)}});this.remove(edgesToDelete,false)}},{key:\"_addMissingEdges\",value:function _addMissingEdges(){var edges=this.body.edges;var edgesData=this.body.data.edges;var addIds=[];edgesData.forEach(function(edgeData,edgeId){var edge=edges[edgeId];if(edge===undefined){addIds.push(edgeId)}});this.add(addIds,true)}}]);return EdgesHandler}();exports[\"default\"]=EdgesHandler},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _slicedToArray2=__webpack_require__(30);var _slicedToArray3=_interopRequireDefault(_slicedToArray2);var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _CubicBezierEdgeBase2=__webpack_require__(216);var _CubicBezierEdgeBase3=_interopRequireDefault(_CubicBezierEdgeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var CubicBezierEdge=function(_CubicBezierEdgeBase){(0,_inherits3[\"default\"])(CubicBezierEdge,_CubicBezierEdgeBase);function CubicBezierEdge(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,CubicBezierEdge);return(0,_possibleConstructorReturn3[\"default\"])(this,(CubicBezierEdge.__proto__||(0,_getPrototypeOf2[\"default\"])(CubicBezierEdge)).call(this,options,body,labelModule))}(0,_createClass3[\"default\"])(CubicBezierEdge,[{key:\"_line\",value:function _line(ctx,values,viaNodes){var via1=viaNodes[0];var via2=viaNodes[1];this._bezierCurve(ctx,values,via1,via2)}},{key:\"_getViaCoordinates\",value:function _getViaCoordinates(){var dx=this.from.x-this.to.x;var dy=this.from.y-this.to.y;var x1=void 0,y1=void 0,x2=void 0,y2=void 0;var roundness=this.options.smooth.roundness;if((Math.abs(dx)>Math.abs(dy)||this.options.smooth.forceDirection===true||this.options.smooth.forceDirection===\"horizontal\")&&this.options.smooth.forceDirection!==\"vertical\"){y1=this.from.y;y2=this.to.y;x1=this.from.x-roundness*dx;x2=this.to.x+roundness*dx}else{y1=this.from.y-roundness*dy;y2=this.to.y+roundness*dy;x1=this.from.x;x2=this.to.x}return[{x:x1,y:y1},{x:x2,y:y2}]}},{key:\"getViaNode\",value:function getViaNode(){return this._getViaCoordinates()}},{key:\"_findBorderPosition\",value:function _findBorderPosition(nearNode,ctx){return this._findBorderPositionBezier(nearNode,ctx)}},{key:\"_getDistanceToEdge\",value:function _getDistanceToEdge(x1,y1,x2,y2,x3,y3){var _ref=arguments.length>6&&arguments[6]!==undefined?arguments[6]:this._getViaCoordinates(),_ref2=(0,_slicedToArray3[\"default\"])(_ref,2),via1=_ref2[0],via2=_ref2[1];return this._getDistanceToBezierEdge(x1,y1,x2,y2,x3,y3,via1,via2)}},{key:\"getPoint\",value:function getPoint(percentage){var _ref3=arguments.length>1&&arguments[1]!==undefined?arguments[1]:this._getViaCoordinates(),_ref4=(0,_slicedToArray3[\"default\"])(_ref3,2),via1=_ref4[0],via2=_ref4[1];var t=percentage;var vec=[];vec[0]=Math.pow(1-t,3);vec[1]=3*t*Math.pow(1-t,2);vec[2]=3*Math.pow(t,2)*(1-t);vec[3]=Math.pow(t,3);var x=vec[0]*this.fromPoint.x+vec[1]*via1.x+vec[2]*via2.x+vec[3]*this.toPoint.x;var y=vec[0]*this.fromPoint.y+vec[1]*via1.y+vec[2]*via2.y+vec[3]*this.toPoint.y;return{x:x,y:y}}}]);return CubicBezierEdge}(_CubicBezierEdgeBase3[\"default\"]);exports[\"default\"]=CubicBezierEdge},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _BezierEdgeBase2=__webpack_require__(75);var _BezierEdgeBase3=_interopRequireDefault(_BezierEdgeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var CubicBezierEdgeBase=function(_BezierEdgeBase){(0,_inherits3[\"default\"])(CubicBezierEdgeBase,_BezierEdgeBase);function CubicBezierEdgeBase(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,CubicBezierEdgeBase);return(0,_possibleConstructorReturn3[\"default\"])(this,(CubicBezierEdgeBase.__proto__||(0,_getPrototypeOf2[\"default\"])(CubicBezierEdgeBase)).call(this,options,body,labelModule))}(0,_createClass3[\"default\"])(CubicBezierEdgeBase,[{key:\"_getDistanceToBezierEdge\",value:function _getDistanceToBezierEdge(x1,y1,x2,y2,x3,y3,via1,via2){var minDistance=1e9;var distance=void 0;var i=void 0,t=void 0,x=void 0,y=void 0;var lastX=x1;var lastY=y1;var vec=[0,0,0,0];for(i=1;i<10;i++){t=.1*i;vec[0]=Math.pow(1-t,3);vec[1]=3*t*Math.pow(1-t,2);vec[2]=3*Math.pow(t,2)*(1-t);vec[3]=Math.pow(t,3);x=vec[0]*x1+vec[1]*via1.x+vec[2]*via2.x+vec[3]*x2;y=vec[0]*y1+vec[1]*via1.y+vec[2]*via2.y+vec[3]*y2;if(i>0){distance=this._getDistanceToLine(lastX,lastY,x,y,x3,y3);minDistance=distance<minDistance?distance:minDistance}lastX=x;lastY=y}return minDistance}}]);return CubicBezierEdgeBase}(_BezierEdgeBase3[\"default\"]);exports[\"default\"]=CubicBezierEdgeBase},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _slicedToArray2=__webpack_require__(30);var _slicedToArray3=_interopRequireDefault(_slicedToArray2);var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _BezierEdgeBase2=__webpack_require__(75);var _BezierEdgeBase3=_interopRequireDefault(_BezierEdgeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var BezierEdgeDynamic=function(_BezierEdgeBase){(0,_inherits3[\"default\"])(BezierEdgeDynamic,_BezierEdgeBase);function BezierEdgeDynamic(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,BezierEdgeDynamic);var _this=(0,_possibleConstructorReturn3[\"default\"])(this,(BezierEdgeDynamic.__proto__||(0,_getPrototypeOf2[\"default\"])(BezierEdgeDynamic)).call(this,options,body,labelModule));_this._boundFunction=function(){_this.positionBezierNode()};_this.body.emitter.on(\"_repositionBezierNodes\",_this._boundFunction);return _this}(0,_createClass3[\"default\"])(BezierEdgeDynamic,[{key:\"setOptions\",value:function setOptions(options){var physicsChange=false;if(this.options.physics!==options.physics){physicsChange=true}this.options=options;this.id=this.options.id;this.from=this.body.nodes[this.options.from];this.to=this.body.nodes[this.options.to];this.setupSupportNode();this.connect();if(physicsChange===true){this.via.setOptions({physics:this.options.physics});this.positionBezierNode()}}},{key:\"connect\",value:function connect(){this.from=this.body.nodes[this.options.from];this.to=this.body.nodes[this.options.to];if(this.from===undefined||this.to===undefined||this.options.physics===false){this.via.setOptions({physics:false})}else{if(this.from.id===this.to.id){this.via.setOptions({physics:false})}else{this.via.setOptions({physics:true})}}}},{key:\"cleanup\",value:function cleanup(){this.body.emitter.off(\"_repositionBezierNodes\",this._boundFunction);if(this.via!==undefined){delete this.body.nodes[this.via.id];this.via=undefined;return true}return false}},{key:\"setupSupportNode\",value:function setupSupportNode(){if(this.via===undefined){var nodeId=\"edgeId:\"+this.id;var node=this.body.functions.createNode({id:nodeId,shape:\"circle\",physics:true,hidden:true});this.body.nodes[nodeId]=node;this.via=node;this.via.parentEdgeId=this.id;this.positionBezierNode()}}},{key:\"positionBezierNode\",value:function positionBezierNode(){if(this.via!==undefined&&this.from!==undefined&&this.to!==undefined){this.via.x=.5*(this.from.x+this.to.x);this.via.y=.5*(this.from.y+this.to.y)}else if(this.via!==undefined){this.via.x=0;this.via.y=0}}},{key:\"_line\",value:function _line(ctx,values,viaNode){this._bezierCurve(ctx,values,viaNode)}},{key:\"getViaNode\",value:function getViaNode(){return this.via}},{key:\"getPoint\",value:function getPoint(percentage){var viaNode=arguments.length>1&&arguments[1]!==undefined?arguments[1]:this.via;var t=percentage;var x=void 0,y=void 0;if(this.from===this.to){var _getCircleData=this._getCircleData(this.from),_getCircleData2=(0,_slicedToArray3[\"default\"])(_getCircleData,3),cx=_getCircleData2[0],cy=_getCircleData2[1],cr=_getCircleData2[2];var a=2*Math.PI*(1-t);x=cx+cr*Math.sin(a);y=cy+cr-cr*(1-Math.cos(a))}else{x=Math.pow(1-t,2)*this.fromPoint.x+2*t*(1-t)*viaNode.x+Math.pow(t,2)*this.toPoint.x;y=Math.pow(1-t,2)*this.fromPoint.y+2*t*(1-t)*viaNode.y+Math.pow(t,2)*this.toPoint.y}return{x:x,y:y}}},{key:\"_findBorderPosition\",value:function _findBorderPosition(nearNode,ctx){return this._findBorderPositionBezier(nearNode,ctx,this.via)}},{key:\"_getDistanceToEdge\",value:function _getDistanceToEdge(x1,y1,x2,y2,x3,y3){return this._getDistanceToBezierEdge(x1,y1,x2,y2,x3,y3,this.via)}}]);return BezierEdgeDynamic}(_BezierEdgeBase3[\"default\"]);exports[\"default\"]=BezierEdgeDynamic},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _BezierEdgeBase2=__webpack_require__(75);var _BezierEdgeBase3=_interopRequireDefault(_BezierEdgeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var BezierEdgeStatic=function(_BezierEdgeBase){(0,_inherits3[\"default\"])(BezierEdgeStatic,_BezierEdgeBase);function BezierEdgeStatic(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,BezierEdgeStatic);return(0,_possibleConstructorReturn3[\"default\"])(this,(BezierEdgeStatic.__proto__||(0,_getPrototypeOf2[\"default\"])(BezierEdgeStatic)).call(this,options,body,labelModule))}(0,_createClass3[\"default\"])(BezierEdgeStatic,[{key:\"_line\",value:function _line(ctx,values,viaNode){this._bezierCurve(ctx,values,viaNode)}},{key:\"getViaNode\",value:function getViaNode(){return this._getViaCoordinates()}},{key:\"_getViaCoordinates\",value:function _getViaCoordinates(){var xVia=undefined;var yVia=undefined;var factor=this.options.smooth.roundness;var type=this.options.smooth.type;var dx=Math.abs(this.from.x-this.to.x);var dy=Math.abs(this.from.y-this.to.y);if(type===\"discrete\"||type===\"diagonalCross\"){var stepX=void 0;var stepY=void 0;if(dx<=dy){stepX=stepY=factor*dy}else{stepX=stepY=factor*dx}if(this.from.x>this.to.x)stepX=-stepX;if(this.from.y>=this.to.y)stepY=-stepY;xVia=this.from.x+stepX;yVia=this.from.y+stepY;if(type===\"discrete\"){if(dx<=dy){xVia=dx<factor*dy?this.from.x:xVia}else{yVia=dy<factor*dx?this.from.y:yVia}}}else if(type===\"straightCross\"){var _stepX=(1-factor)*dx;var _stepY=(1-factor)*dy;if(dx<=dy){_stepX=0;if(this.from.y<this.to.y)_stepY=-_stepY}else{if(this.from.x<this.to.x)_stepX=-_stepX;_stepY=0}xVia=this.to.x+_stepX;yVia=this.to.y+_stepY}else if(type===\"horizontal\"){var _stepX2=(1-factor)*dx;if(this.from.x<this.to.x)_stepX2=-_stepX2;xVia=this.to.x+_stepX2;yVia=this.from.y}else if(type===\"vertical\"){var _stepY2=(1-factor)*dy;if(this.from.y<this.to.y)_stepY2=-_stepY2;xVia=this.from.x;yVia=this.to.y+_stepY2}else if(type===\"curvedCW\"){dx=this.to.x-this.from.x;dy=this.from.y-this.to.y;var radius=Math.sqrt(dx*dx+dy*dy);var pi=Math.PI;var originalAngle=Math.atan2(dy,dx);var myAngle=(originalAngle+(factor*.5+.5)*pi)%(2*pi);xVia=this.from.x+(factor*.5+.5)*radius*Math.sin(myAngle);yVia=this.from.y+(factor*.5+.5)*radius*Math.cos(myAngle)}else if(type===\"curvedCCW\"){dx=this.to.x-this.from.x;dy=this.from.y-this.to.y;var _radius=Math.sqrt(dx*dx+dy*dy);var _pi=Math.PI;var _originalAngle=Math.atan2(dy,dx);var _myAngle=(_originalAngle+(-factor*.5+.5)*_pi)%(2*_pi);xVia=this.from.x+(factor*.5+.5)*_radius*Math.sin(_myAngle);yVia=this.from.y+(factor*.5+.5)*_radius*Math.cos(_myAngle)}else{var _stepX3=void 0;var _stepY3=void 0;if(dx<=dy){_stepX3=_stepY3=factor*dy}else{_stepX3=_stepY3=factor*dx}if(this.from.x>this.to.x)_stepX3=-_stepX3;if(this.from.y>=this.to.y)_stepY3=-_stepY3;xVia=this.from.x+_stepX3;yVia=this.from.y+_stepY3;if(dx<=dy){if(this.from.x<=this.to.x){xVia=this.to.x<xVia?this.to.x:xVia}else{xVia=this.to.x>xVia?this.to.x:xVia}}else{if(this.from.y>=this.to.y){yVia=this.to.y>yVia?this.to.y:yVia}else{yVia=this.to.y<yVia?this.to.y:yVia}}}return{x:xVia,y:yVia}}},{key:\"_findBorderPosition\",value:function _findBorderPosition(nearNode,ctx){var options=arguments.length>2&&arguments[2]!==undefined?arguments[2]:{};return this._findBorderPositionBezier(nearNode,ctx,options.via)}},{key:\"_getDistanceToEdge\",value:function _getDistanceToEdge(x1,y1,x2,y2,x3,y3){var viaNode=arguments.length>6&&arguments[6]!==undefined?arguments[6]:this._getViaCoordinates();return this._getDistanceToBezierEdge(x1,y1,x2,y2,x3,y3,viaNode)}},{key:\"getPoint\",value:function getPoint(percentage){var viaNode=arguments.length>1&&arguments[1]!==undefined?arguments[1]:this._getViaCoordinates();var t=percentage;var x=Math.pow(1-t,2)*this.fromPoint.x+2*t*(1-t)*viaNode.x+Math.pow(t,2)*this.toPoint.x;var y=Math.pow(1-t,2)*this.fromPoint.y+2*t*(1-t)*viaNode.y+Math.pow(t,2)*this.toPoint.y;return{x:x,y:y}}}]);return BezierEdgeStatic}(_BezierEdgeBase3[\"default\"]);exports[\"default\"]=BezierEdgeStatic},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _EdgeBase2=__webpack_require__(118);var _EdgeBase3=_interopRequireDefault(_EdgeBase2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var StraightEdge=function(_EdgeBase){(0,_inherits3[\"default\"])(StraightEdge,_EdgeBase);function StraightEdge(options,body,labelModule){(0,_classCallCheck3[\"default\"])(this,StraightEdge);return(0,_possibleConstructorReturn3[\"default\"])(this,(StraightEdge.__proto__||(0,_getPrototypeOf2[\"default\"])(StraightEdge)).call(this,options,body,labelModule))}(0,_createClass3[\"default\"])(StraightEdge,[{key:\"_line\",value:function _line(ctx,values){ctx.beginPath();ctx.moveTo(this.fromPoint.x,this.fromPoint.y);ctx.lineTo(this.toPoint.x,this.toPoint.y);this.enableShadow(ctx,values);ctx.stroke();this.disableShadow(ctx,values)}},{key:\"getViaNode\",value:function getViaNode(){return undefined}},{key:\"getPoint\",value:function getPoint(percentage){return{x:(1-percentage)*this.fromPoint.x+percentage*this.toPoint.x,y:(1-percentage)*this.fromPoint.y+percentage*this.toPoint.y}}},{key:\"_findBorderPosition\",value:function _findBorderPosition(nearNode,ctx){var node1=this.to;var node2=this.from;if(nearNode.id===this.from.id){node1=this.from;node2=this.to}var angle=Math.atan2(node1.y-node2.y,node1.x-node2.x);var dx=node1.x-node2.x;var dy=node1.y-node2.y;var edgeSegmentLength=Math.sqrt(dx*dx+dy*dy);var toBorderDist=nearNode.distanceToBorder(ctx,angle);var toBorderPoint=(edgeSegmentLength-toBorderDist)/edgeSegmentLength;var borderPos={};borderPos.x=(1-toBorderPoint)*node2.x+toBorderPoint*node1.x;borderPos.y=(1-toBorderPoint)*node2.y+toBorderPoint*node1.y;return borderPos}},{key:\"_getDistanceToEdge\",value:function _getDistanceToEdge(x1,y1,x2,y2,x3,y3){return this._getDistanceToLine(x1,y1,x2,y2,x3,y3)}}]);return StraightEdge}(_EdgeBase3[\"default\"]);exports[\"default\"]=StraightEdge},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _keys=__webpack_require__(8);var _keys2=_interopRequireDefault(_keys);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var BarnesHutSolver=__webpack_require__(120)[\"default\"];var Repulsion=__webpack_require__(221)[\"default\"];var HierarchicalRepulsion=__webpack_require__(222)[\"default\"];var SpringSolver=__webpack_require__(223)[\"default\"];var HierarchicalSpringSolver=__webpack_require__(224)[\"default\"];var CentralGravitySolver=__webpack_require__(121)[\"default\"];var ForceAtlas2BasedRepulsionSolver=__webpack_require__(225)[\"default\"];var ForceAtlas2BasedCentralGravitySolver=__webpack_require__(226)[\"default\"];var util=__webpack_require__(2);var EndPoints=__webpack_require__(119)[\"default\"];var PhysicsEngine=function(){function PhysicsEngine(body){(0,_classCallCheck3[\"default\"])(this,PhysicsEngine);this.body=body;this.physicsBody={physicsNodeIndices:[],physicsEdgeIndices:[],forces:{},velocities:{}};this.physicsEnabled=true;this.simulationInterval=1e3/60;this.requiresTimeout=true;this.previousStates={};this.referenceState={};this.freezeCache={};this.renderTimer=undefined;this.adaptiveTimestep=false;this.adaptiveTimestepEnabled=false;this.adaptiveCounter=0;this.adaptiveInterval=3;this.stabilized=false;this.startedStabilization=false;this.stabilizationIterations=0;this.ready=false;this.options={};this.defaultOptions={enabled:true,barnesHut:{theta:.5,gravitationalConstant:-2e3,centralGravity:.3,springLength:95,springConstant:.04,damping:.09,avoidOverlap:0},forceAtlas2Based:{theta:.5,gravitationalConstant:-50,centralGravity:.01,springConstant:.08,springLength:100,damping:.4,avoidOverlap:0},repulsion:{centralGravity:.2,springLength:200,springConstant:.05,nodeDistance:100,damping:.09,avoidOverlap:0},hierarchicalRepulsion:{centralGravity:0,springLength:100,springConstant:.01,nodeDistance:120,damping:.09},maxVelocity:50,minVelocity:.75,solver:\"barnesHut\",stabilization:{enabled:true,iterations:1e3,updateInterval:50,onlyDynamicEdges:false,fit:true},timestep:.5,adaptiveTimestep:true};util.extend(this.options,this.defaultOptions);this.timestep=.5;this.layoutFailed=false;this.bindEventListeners()}(0,_createClass3[\"default\"])(PhysicsEngine,[{key:\"bindEventListeners\",value:function bindEventListeners(){var _this=this;this.body.emitter.on(\"initPhysics\",function(){_this.initPhysics()});this.body.emitter.on(\"_layoutFailed\",function(){_this.layoutFailed=true});this.body.emitter.on(\"resetPhysics\",function(){_this.stopSimulation();_this.ready=false});this.body.emitter.on(\"disablePhysics\",function(){_this.physicsEnabled=false;_this.stopSimulation()});this.body.emitter.on(\"restorePhysics\",function(){_this.setOptions(_this.options);if(_this.ready===true){_this.startSimulation()}});this.body.emitter.on(\"startSimulation\",function(){if(_this.ready===true){_this.startSimulation()}});this.body.emitter.on(\"stopSimulation\",function(){_this.stopSimulation()});this.body.emitter.on(\"destroy\",function(){_this.stopSimulation(false);_this.body.emitter.off()});this.body.emitter.on(\"_dataChanged\",function(){_this.updatePhysicsData()})}},{key:\"setOptions\",value:function setOptions(options){if(options!==undefined){if(options===false){this.options.enabled=false;this.physicsEnabled=false;this.stopSimulation()}else if(options===true){this.options.enabled=true;this.physicsEnabled=true;this.startSimulation()}else{this.physicsEnabled=true;util.selectiveNotDeepExtend([\"stabilization\"],this.options,options);util.mergeOptions(this.options,options,\"stabilization\");if(options.enabled===undefined){this.options.enabled=true}if(this.options.enabled===false){this.physicsEnabled=false;this.stopSimulation()}this.timestep=this.options.timestep}}this.init()}},{key:\"init\",value:function init(){var options;if(this.options.solver===\"forceAtlas2Based\"){options=this.options.forceAtlas2Based;this.nodesSolver=new ForceAtlas2BasedRepulsionSolver(this.body,this.physicsBody,options);this.edgesSolver=new SpringSolver(this.body,this.physicsBody,options);this.gravitySolver=new ForceAtlas2BasedCentralGravitySolver(this.body,this.physicsBody,options)}else if(this.options.solver===\"repulsion\"){options=this.options.repulsion;this.nodesSolver=new Repulsion(this.body,this.physicsBody,options);this.edgesSolver=new SpringSolver(this.body,this.physicsBody,options);this.gravitySolver=new CentralGravitySolver(this.body,this.physicsBody,options)}else if(this.options.solver===\"hierarchicalRepulsion\"){options=this.options.hierarchicalRepulsion;this.nodesSolver=new HierarchicalRepulsion(this.body,this.physicsBody,options);this.edgesSolver=new HierarchicalSpringSolver(this.body,this.physicsBody,options);this.gravitySolver=new CentralGravitySolver(this.body,this.physicsBody,options)}else{options=this.options.barnesHut;this.nodesSolver=new BarnesHutSolver(this.body,this.physicsBody,options);this.edgesSolver=new SpringSolver(this.body,this.physicsBody,options);this.gravitySolver=new CentralGravitySolver(this.body,this.physicsBody,options)}this.modelOptions=options}},{key:\"initPhysics\",value:function initPhysics(){if(this.physicsEnabled===true&&this.options.enabled===true){if(this.options.stabilization.enabled===true){this.stabilize()}else{this.stabilized=false;this.ready=true;this.body.emitter.emit(\"fit\",{},this.layoutFailed);this.startSimulation()}}else{this.ready=true;this.body.emitter.emit(\"fit\")}}},{key:\"startSimulation\",value:function startSimulation(){if(this.physicsEnabled===true&&this.options.enabled===true){this.stabilized=false;this.adaptiveTimestep=false;this.body.emitter.emit(\"_resizeNodes\");if(this.viewFunction===undefined){this.viewFunction=this.simulationStep.bind(this);this.body.emitter.on(\"initRedraw\",this.viewFunction);this.body.emitter.emit(\"_startRendering\")}}else{this.body.emitter.emit(\"_redraw\")}}},{key:\"stopSimulation\",value:function stopSimulation(){var emit=arguments.length>0&&arguments[0]!==undefined?arguments[0]:true;this.stabilized=true;if(emit===true){this._emitStabilized()}if(this.viewFunction!==undefined){this.body.emitter.off(\"initRedraw\",this.viewFunction);this.viewFunction=undefined;if(emit===true){this.body.emitter.emit(\"_stopRendering\")}}}},{key:\"simulationStep\",value:function simulationStep(){var startTime=Date.now();this.physicsTick();var physicsTime=Date.now()-startTime;if((physicsTime<.4*this.simulationInterval||this.runDoubleSpeed===true)&&this.stabilized===false){this.physicsTick();this.runDoubleSpeed=true}if(this.stabilized===true){this.stopSimulation()}}},{key:\"_emitStabilized\",value:function _emitStabilized(){var _this2=this;var amountOfIterations=arguments.length>0&&arguments[0]!==undefined?arguments[0]:this.stabilizationIterations;if(this.stabilizationIterations>1||this.startedStabilization===true){setTimeout(function(){_this2.body.emitter.emit(\"stabilized\",{iterations:amountOfIterations});_this2.startedStabilization=false;_this2.stabilizationIterations=0},0)}}},{key:\"physicsStep\",value:function physicsStep(){this.gravitySolver.solve();this.nodesSolver.solve();this.edgesSolver.solve();this.moveNodes()}},{key:\"adjustTimeStep\",value:function adjustTimeStep(){var factor=1.2;if(this._evaluateStepQuality()===true){this.timestep=factor*this.timestep}else{if(this.timestep/factor<this.options.timestep){this.timestep=this.options.timestep}else{this.adaptiveCounter=-1;this.timestep=Math.max(this.options.timestep,this.timestep/factor)}}}},{key:\"physicsTick\",value:function physicsTick(){this._startStabilizing();if(this.stabilized===true)return;if(this.adaptiveTimestep===true&&this.adaptiveTimestepEnabled===true){var doAdaptive=this.adaptiveCounter%this.adaptiveInterval===0;if(doAdaptive){this.timestep=2*this.timestep;this.physicsStep();this.revert();this.timestep=.5*this.timestep;this.physicsStep();this.physicsStep();this.adjustTimeStep()}else{this.physicsStep()}this.adaptiveCounter+=1}else{this.timestep=this.options.timestep;this.physicsStep()}\nif(this.stabilized===true)this.revert();this.stabilizationIterations++}},{key:\"updatePhysicsData\",value:function updatePhysicsData(){this.physicsBody.forces={};this.physicsBody.physicsNodeIndices=[];this.physicsBody.physicsEdgeIndices=[];var nodes=this.body.nodes;var edges=this.body.edges;for(var nodeId in nodes){if(nodes.hasOwnProperty(nodeId)){if(nodes[nodeId].options.physics===true){this.physicsBody.physicsNodeIndices.push(nodes[nodeId].id)}}}for(var edgeId in edges){if(edges.hasOwnProperty(edgeId)){if(edges[edgeId].options.physics===true){this.physicsBody.physicsEdgeIndices.push(edges[edgeId].id)}}}for(var i=0;i<this.physicsBody.physicsNodeIndices.length;i++){var _nodeId=this.physicsBody.physicsNodeIndices[i];this.physicsBody.forces[_nodeId]={x:0,y:0};if(this.physicsBody.velocities[_nodeId]===undefined){this.physicsBody.velocities[_nodeId]={x:0,y:0}}}for(var _nodeId2 in this.physicsBody.velocities){if(nodes[_nodeId2]===undefined){delete this.physicsBody.velocities[_nodeId2]}}}},{key:\"revert\",value:function revert(){var nodeIds=(0,_keys2[\"default\"])(this.previousStates);var nodes=this.body.nodes;var velocities=this.physicsBody.velocities;this.referenceState={};for(var i=0;i<nodeIds.length;i++){var nodeId=nodeIds[i];if(nodes[nodeId]!==undefined){if(nodes[nodeId].options.physics===true){this.referenceState[nodeId]={positions:{x:nodes[nodeId].x,y:nodes[nodeId].y}};velocities[nodeId].x=this.previousStates[nodeId].vx;velocities[nodeId].y=this.previousStates[nodeId].vy;nodes[nodeId].x=this.previousStates[nodeId].x;nodes[nodeId].y=this.previousStates[nodeId].y}}else{delete this.previousStates[nodeId]}}}},{key:\"_evaluateStepQuality\",value:function _evaluateStepQuality(){var dx=void 0,dy=void 0,dpos=void 0;var nodes=this.body.nodes;var reference=this.referenceState;var posThreshold=.3;for(var nodeId in this.referenceState){if(this.referenceState.hasOwnProperty(nodeId)&&nodes[nodeId]!==undefined){dx=nodes[nodeId].x-reference[nodeId].positions.x;dy=nodes[nodeId].y-reference[nodeId].positions.y;dpos=Math.sqrt(Math.pow(dx,2)+Math.pow(dy,2));if(dpos>posThreshold){return false}}}return true}},{key:\"moveNodes\",value:function moveNodes(){var nodeIndices=this.physicsBody.physicsNodeIndices;var maxNodeVelocity=0;var averageNodeVelocity=0;var velocityAdaptiveThreshold=5;for(var i=0;i<nodeIndices.length;i++){var nodeId=nodeIndices[i];var nodeVelocity=this._performStep(nodeId);maxNodeVelocity=Math.max(maxNodeVelocity,nodeVelocity);averageNodeVelocity+=nodeVelocity}this.adaptiveTimestepEnabled=averageNodeVelocity/nodeIndices.length<velocityAdaptiveThreshold;this.stabilized=maxNodeVelocity<this.options.minVelocity}},{key:\"calculateComponentVelocity\",value:function calculateComponentVelocity(v,f,m){var df=this.modelOptions.damping*v;var a=(f-df)/m;v+=a*this.timestep;var maxV=this.options.maxVelocity||1e9;if(Math.abs(v)>maxV){v=v>0?maxV:-maxV}return v}},{key:\"_performStep\",value:function _performStep(nodeId){var node=this.body.nodes[nodeId];var force=this.physicsBody.forces[nodeId];var velocity=this.physicsBody.velocities[nodeId];this.previousStates[nodeId]={x:node.x,y:node.y,vx:velocity.x,vy:velocity.y};if(node.options.fixed.x===false){velocity.x=this.calculateComponentVelocity(velocity.x,force.x,node.options.mass);node.x+=velocity.x*this.timestep}else{force.x=0;velocity.x=0}if(node.options.fixed.y===false){velocity.y=this.calculateComponentVelocity(velocity.y,force.y,node.options.mass);node.y+=velocity.y*this.timestep}else{force.y=0;velocity.y=0}var totalVelocity=Math.sqrt(Math.pow(velocity.x,2)+Math.pow(velocity.y,2));return totalVelocity}},{key:\"_freezeNodes\",value:function _freezeNodes(){var nodes=this.body.nodes;for(var id in nodes){if(nodes.hasOwnProperty(id)){if(nodes[id].x&&nodes[id].y){var fixed=nodes[id].options.fixed;this.freezeCache[id]={x:fixed.x,y:fixed.y};fixed.x=true;fixed.y=true}}}}},{key:\"_restoreFrozenNodes\",value:function _restoreFrozenNodes(){var nodes=this.body.nodes;for(var id in nodes){if(nodes.hasOwnProperty(id)){if(this.freezeCache[id]!==undefined){nodes[id].options.fixed.x=this.freezeCache[id].x;nodes[id].options.fixed.y=this.freezeCache[id].y}}}this.freezeCache={}}},{key:\"stabilize\",value:function stabilize(){var _this3=this;var iterations=arguments.length>0&&arguments[0]!==undefined?arguments[0]:this.options.stabilization.iterations;if(typeof iterations!==\"number\"){iterations=this.options.stabilization.iterations;console.log(\"The stabilize method needs a numeric amount of iterations. Switching to default: \",iterations)}if(this.physicsBody.physicsNodeIndices.length===0){this.ready=true;return}this.adaptiveTimestep=true&&this.options.adaptiveTimestep;this.body.emitter.emit(\"_resizeNodes\");this.stopSimulation();this.stabilized=false;this.body.emitter.emit(\"_blockRedraw\");this.targetIterations=iterations;if(this.options.stabilization.onlyDynamicEdges===true){this._freezeNodes()}this.stabilizationIterations=0;setTimeout(function(){return _this3._stabilizationBatch()},0)}},{key:\"_startStabilizing\",value:function _startStabilizing(){if(this.startedStabilization===true)return false;this.body.emitter.emit(\"startStabilizing\");this.startedStabilization=true;return true}},{key:\"_stabilizationBatch\",value:function _stabilizationBatch(){var _this4=this;var running=function running(){return _this4.stabilized===false&&_this4.stabilizationIterations<_this4.targetIterations};var sendProgress=function sendProgress(){_this4.body.emitter.emit(\"stabilizationProgress\",{iterations:_this4.stabilizationIterations,total:_this4.targetIterations})};if(this._startStabilizing()){sendProgress()}var count=0;while(running()&&count<this.options.stabilization.updateInterval){this.physicsTick();count++}sendProgress();if(running()){setTimeout(this._stabilizationBatch.bind(this),0)}else{this._finalizeStabilization()}}},{key:\"_finalizeStabilization\",value:function _finalizeStabilization(){this.body.emitter.emit(\"_allowRedraw\");if(this.options.stabilization.fit===true){this.body.emitter.emit(\"fit\")}if(this.options.stabilization.onlyDynamicEdges===true){this._restoreFrozenNodes()}this.body.emitter.emit(\"stabilizationIterationsDone\");this.body.emitter.emit(\"_requestRedraw\");if(this.stabilized===true){this._emitStabilized()}else{this.startSimulation()}this.ready=true}},{key:\"_drawForces\",value:function _drawForces(ctx){for(var i=0;i<this.physicsBody.physicsNodeIndices.length;i++){var index=this.physicsBody.physicsNodeIndices[i];var node=this.body.nodes[index];var force=this.physicsBody.forces[index];var factor=20;var colorFactor=.03;var forceSize=Math.sqrt(Math.pow(force.x,2)+Math.pow(force.x,2));var size=Math.min(Math.max(5,forceSize),15);var arrowSize=3*size;var color=util.HSVToHex((180-Math.min(1,Math.max(0,colorFactor*forceSize))*180)/360,1,1);var point={x:node.x+factor*force.x,y:node.y+factor*force.y};ctx.lineWidth=size;ctx.strokeStyle=color;ctx.beginPath();ctx.moveTo(node.x,node.y);ctx.lineTo(point.x,point.y);ctx.stroke();var angle=Math.atan2(force.y,force.x);ctx.fillStyle=color;EndPoints.draw(ctx,{type:\"arrow\",point:point,angle:angle,length:arrowSize});ctx.fill()}}}]);return PhysicsEngine}();exports[\"default\"]=PhysicsEngine},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var RepulsionSolver=function(){function RepulsionSolver(body,physicsBody,options){(0,_classCallCheck3[\"default\"])(this,RepulsionSolver);this.body=body;this.physicsBody=physicsBody;this.setOptions(options)}(0,_createClass3[\"default\"])(RepulsionSolver,[{key:\"setOptions\",value:function setOptions(options){this.options=options}},{key:\"solve\",value:function solve(){var dx,dy,distance,fx,fy,repulsingForce,node1,node2;var nodes=this.body.nodes;var nodeIndices=this.physicsBody.physicsNodeIndices;var forces=this.physicsBody.forces;var nodeDistance=this.options.nodeDistance;var a=-2/3/nodeDistance;var b=4/3;for(var i=0;i<nodeIndices.length-1;i++){node1=nodes[nodeIndices[i]];for(var j=i+1;j<nodeIndices.length;j++){node2=nodes[nodeIndices[j]];dx=node2.x-node1.x;dy=node2.y-node1.y;distance=Math.sqrt(dx*dx+dy*dy);if(distance===0){distance=.1*Math.random();dx=distance}if(distance<2*nodeDistance){if(distance<.5*nodeDistance){repulsingForce=1}else{repulsingForce=a*distance+b}repulsingForce=repulsingForce/distance;fx=dx*repulsingForce;fy=dy*repulsingForce;forces[node1.id].x-=fx;forces[node1.id].y-=fy;forces[node2.id].x+=fx;forces[node2.id].y+=fy}}}}}]);return RepulsionSolver}();exports[\"default\"]=RepulsionSolver},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var HierarchicalRepulsionSolver=function(){function HierarchicalRepulsionSolver(body,physicsBody,options){(0,_classCallCheck3[\"default\"])(this,HierarchicalRepulsionSolver);this.body=body;this.physicsBody=physicsBody;this.setOptions(options)}(0,_createClass3[\"default\"])(HierarchicalRepulsionSolver,[{key:\"setOptions\",value:function setOptions(options){this.options=options}},{key:\"solve\",value:function solve(){var dx,dy,distance,fx,fy,repulsingForce,node1,node2,i,j;var nodes=this.body.nodes;var nodeIndices=this.physicsBody.physicsNodeIndices;var forces=this.physicsBody.forces;var nodeDistance=this.options.nodeDistance;for(i=0;i<nodeIndices.length-1;i++){node1=nodes[nodeIndices[i]];for(j=i+1;j<nodeIndices.length;j++){node2=nodes[nodeIndices[j]];if(node1.level===node2.level){dx=node2.x-node1.x;dy=node2.y-node1.y;distance=Math.sqrt(dx*dx+dy*dy);var steepness=.05;if(distance<nodeDistance){repulsingForce=-Math.pow(steepness*distance,2)+Math.pow(steepness*nodeDistance,2)}else{repulsingForce=0}if(distance===0){distance=.01}else{repulsingForce=repulsingForce/distance}fx=dx*repulsingForce;fy=dy*repulsingForce;forces[node1.id].x-=fx;forces[node1.id].y-=fy;forces[node2.id].x+=fx;forces[node2.id].y+=fy}}}}}]);return HierarchicalRepulsionSolver}();exports[\"default\"]=HierarchicalRepulsionSolver},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var SpringSolver=function(){function SpringSolver(body,physicsBody,options){(0,_classCallCheck3[\"default\"])(this,SpringSolver);this.body=body;this.physicsBody=physicsBody;this.setOptions(options)}(0,_createClass3[\"default\"])(SpringSolver,[{key:\"setOptions\",value:function setOptions(options){this.options=options}},{key:\"solve\",value:function solve(){var edgeLength=void 0,edge=void 0;var edgeIndices=this.physicsBody.physicsEdgeIndices;var edges=this.body.edges;var node1=void 0,node2=void 0,node3=void 0;for(var i=0;i<edgeIndices.length;i++){edge=edges[edgeIndices[i]];if(edge.connected===true&&edge.toId!==edge.fromId){if(this.body.nodes[edge.toId]!==undefined&&this.body.nodes[edge.fromId]!==undefined){if(edge.edgeType.via!==undefined){edgeLength=edge.options.length===undefined?this.options.springLength:edge.options.length;node1=edge.to;node2=edge.edgeType.via;node3=edge.from;this._calculateSpringForce(node1,node2,.5*edgeLength);this._calculateSpringForce(node2,node3,.5*edgeLength)}else{edgeLength=edge.options.length===undefined?this.options.springLength*1.5:edge.options.length;this._calculateSpringForce(edge.from,edge.to,edgeLength)}}}}}},{key:\"_calculateSpringForce\",value:function _calculateSpringForce(node1,node2,edgeLength){var dx=node1.x-node2.x;var dy=node1.y-node2.y;var distance=Math.max(Math.sqrt(dx*dx+dy*dy),.01);var springForce=this.options.springConstant*(edgeLength-distance)/distance;var fx=dx*springForce;var fy=dy*springForce;if(this.physicsBody.forces[node1.id]!==undefined){this.physicsBody.forces[node1.id].x+=fx;this.physicsBody.forces[node1.id].y+=fy}if(this.physicsBody.forces[node2.id]!==undefined){this.physicsBody.forces[node2.id].x-=fx;this.physicsBody.forces[node2.id].y-=fy}}}]);return SpringSolver}();exports[\"default\"]=SpringSolver},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var HierarchicalSpringSolver=function(){function HierarchicalSpringSolver(body,physicsBody,options){(0,_classCallCheck3[\"default\"])(this,HierarchicalSpringSolver);this.body=body;this.physicsBody=physicsBody;this.setOptions(options)}(0,_createClass3[\"default\"])(HierarchicalSpringSolver,[{key:\"setOptions\",value:function setOptions(options){this.options=options}},{key:\"solve\",value:function solve(){var edgeLength,edge;var dx,dy,fx,fy,springForce,distance;var edges=this.body.edges;var factor=.5;var edgeIndices=this.physicsBody.physicsEdgeIndices;var nodeIndices=this.physicsBody.physicsNodeIndices;var forces=this.physicsBody.forces;for(var i=0;i<nodeIndices.length;i++){var nodeId=nodeIndices[i];forces[nodeId].springFx=0;forces[nodeId].springFy=0}for(var _i=0;_i<edgeIndices.length;_i++){edge=edges[edgeIndices[_i]];if(edge.connected===true){edgeLength=edge.options.length===undefined?this.options.springLength:edge.options.length;dx=edge.from.x-edge.to.x;dy=edge.from.y-edge.to.y;distance=Math.sqrt(dx*dx+dy*dy);distance=distance===0?.01:distance;springForce=this.options.springConstant*(edgeLength-distance)/distance;fx=dx*springForce;fy=dy*springForce;if(edge.to.level!=edge.from.level){if(forces[edge.toId]!==undefined){forces[edge.toId].springFx-=fx;forces[edge.toId].springFy-=fy}if(forces[edge.fromId]!==undefined){forces[edge.fromId].springFx+=fx;forces[edge.fromId].springFy+=fy}}else{if(forces[edge.toId]!==undefined){forces[edge.toId].x-=factor*fx;forces[edge.toId].y-=factor*fy}if(forces[edge.fromId]!==undefined){forces[edge.fromId].x+=factor*fx;forces[edge.fromId].y+=factor*fy}}}}springForce=1;var springFx,springFy;for(var _i2=0;_i2<nodeIndices.length;_i2++){var _nodeId=nodeIndices[_i2];springFx=Math.min(springForce,Math.max(-springForce,forces[_nodeId].springFx));springFy=Math.min(springForce,Math.max(-springForce,forces[_nodeId].springFy));forces[_nodeId].x+=springFx;forces[_nodeId].y+=springFy}var totalFx=0;var totalFy=0;for(var _i3=0;_i3<nodeIndices.length;_i3++){var _nodeId2=nodeIndices[_i3];totalFx+=forces[_nodeId2].x;totalFy+=forces[_nodeId2].y}var correctionFx=totalFx/nodeIndices.length;var correctionFy=totalFy/nodeIndices.length;for(var _i4=0;_i4<nodeIndices.length;_i4++){var _nodeId3=nodeIndices[_i4];forces[_nodeId3].x-=correctionFx;forces[_nodeId3].y-=correctionFy}}}]);return HierarchicalSpringSolver}();exports[\"default\"]=HierarchicalSpringSolver},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _BarnesHutSolver2=__webpack_require__(120);var _BarnesHutSolver3=_interopRequireDefault(_BarnesHutSolver2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var ForceAtlas2BasedRepulsionSolver=function(_BarnesHutSolver){(0,_inherits3[\"default\"])(ForceAtlas2BasedRepulsionSolver,_BarnesHutSolver);function ForceAtlas2BasedRepulsionSolver(body,physicsBody,options){(0,_classCallCheck3[\"default\"])(this,ForceAtlas2BasedRepulsionSolver);return(0,_possibleConstructorReturn3[\"default\"])(this,(ForceAtlas2BasedRepulsionSolver.__proto__||(0,_getPrototypeOf2[\"default\"])(ForceAtlas2BasedRepulsionSolver)).call(this,body,physicsBody,options))}(0,_createClass3[\"default\"])(ForceAtlas2BasedRepulsionSolver,[{key:\"_calculateForces\",value:function _calculateForces(distance,dx,dy,node,parentBranch){if(distance===0){distance=.1*Math.random();dx=distance}if(this.overlapAvoidanceFactor<1&&node.shape.radius){distance=Math.max(.1+this.overlapAvoidanceFactor*node.shape.radius,distance-node.shape.radius)}var degree=node.edges.length+1;var gravityForce=this.options.gravitationalConstant*parentBranch.mass*node.options.mass*degree/Math.pow(distance,2);var fx=dx*gravityForce;var fy=dy*gravityForce;this.physicsBody.forces[node.id].x+=fx;this.physicsBody.forces[node.id].y+=fy}}]);return ForceAtlas2BasedRepulsionSolver}(_BarnesHutSolver3[\"default\"]);exports[\"default\"]=ForceAtlas2BasedRepulsionSolver},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _CentralGravitySolver2=__webpack_require__(121);var _CentralGravitySolver3=_interopRequireDefault(_CentralGravitySolver2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var ForceAtlas2BasedCentralGravitySolver=function(_CentralGravitySolver){(0,_inherits3[\"default\"])(ForceAtlas2BasedCentralGravitySolver,_CentralGravitySolver);function ForceAtlas2BasedCentralGravitySolver(body,physicsBody,options){(0,_classCallCheck3[\"default\"])(this,ForceAtlas2BasedCentralGravitySolver);return(0,_possibleConstructorReturn3[\"default\"])(this,(ForceAtlas2BasedCentralGravitySolver.__proto__||(0,_getPrototypeOf2[\"default\"])(ForceAtlas2BasedCentralGravitySolver)).call(this,body,physicsBody,options))}(0,_createClass3[\"default\"])(ForceAtlas2BasedCentralGravitySolver,[{key:\"_calculateForces\",value:function _calculateForces(distance,dx,dy,forces,node){if(distance>0){var degree=node.edges.length+1;var gravityForce=this.options.centralGravity*degree*node.options.mass;forces[node.id].x=dx*gravityForce;forces[node.id].y=dy*gravityForce}}}]);return ForceAtlas2BasedCentralGravitySolver}(_CentralGravitySolver3[\"default\"]);exports[\"default\"]=ForceAtlas2BasedCentralGravitySolver},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _keys=__webpack_require__(8);var _keys2=_interopRequireDefault(_keys);var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var NetworkUtil=__webpack_require__(76)[\"default\"];var Cluster=__webpack_require__(228)[\"default\"];var Edge=__webpack_require__(74)[\"default\"];var Node=__webpack_require__(47)[\"default\"];var ClusterEngine=function(){function ClusterEngine(body){var _this=this;(0,_classCallCheck3[\"default\"])(this,ClusterEngine);this.body=body;this.clusteredNodes={};this.clusteredEdges={};this.options={};this.defaultOptions={};util.extend(this.options,this.defaultOptions);this.body.emitter.on(\"_resetData\",function(){_this.clusteredNodes={};_this.clusteredEdges={}})}(0,_createClass3[\"default\"])(ClusterEngine,[{key:\"clusterByHubsize\",value:function clusterByHubsize(hubsize,options){if(hubsize===undefined){hubsize=this._getHubSize()}else if((typeof hubsize===\"undefined\"?\"undefined\":(0,_typeof3[\"default\"])(hubsize))===\"object\"){options=this._checkOptions(hubsize);hubsize=this._getHubSize()}var nodesToCluster=[];for(var i=0;i<this.body.nodeIndices.length;i++){var node=this.body.nodes[this.body.nodeIndices[i]];if(node.edges.length>=hubsize){nodesToCluster.push(node.id)}}for(var _i=0;_i<nodesToCluster.length;_i++){this.clusterByConnection(nodesToCluster[_i],options,true)}this.body.emitter.emit(\"_dataChanged\")}},{key:\"cluster\",value:function cluster(){var _this2=this;var options=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var refreshData=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;if(options.joinCondition===undefined){throw new Error(\"Cannot call clusterByNodeData without a joinCondition function in the options.\")}options=this._checkOptions(options);var childNodesObj={};var childEdgesObj={};util.forEach(this.body.nodes,function(node,nodeId){var clonedOptions=NetworkUtil.cloneOptions(node);if(options.joinCondition(clonedOptions)===true){childNodesObj[nodeId]=node;util.forEach(node.edges,function(edge){if(_this2.clusteredEdges[edge.id]===undefined){childEdgesObj[edge.id]=edge}})}});this._cluster(childNodesObj,childEdgesObj,options,refreshData)}},{key:\"clusterByEdgeCount\",value:function clusterByEdgeCount(edgeCount,options){var _this3=this;var refreshData=arguments.length>2&&arguments[2]!==undefined?arguments[2]:true;options=this._checkOptions(options);var clusters=[];var usedNodes={};var edge=void 0,edges=void 0,relevantEdgeCount=void 0;var _loop=function _loop(i){var childNodesObj={};var childEdgesObj={};var nodeId=_this3.body.nodeIndices[i];var node=_this3.body.nodes[nodeId];if(usedNodes[nodeId]===undefined){relevantEdgeCount=0;edges=[];for(var j=0;j<node.edges.length;j++){edge=node.edges[j];if(_this3.clusteredEdges[edge.id]===undefined){if(edge.toId!==edge.fromId){relevantEdgeCount++}edges.push(edge)}}if(relevantEdgeCount===edgeCount){checkJoinCondition=function checkJoinCondition(node){if(options.joinCondition===undefined||options.joinCondition===null){return true}var clonedOptions=NetworkUtil.cloneOptions(node);return options.joinCondition(clonedOptions)};var gatheringSuccessful=true;for(var _j=0;_j<edges.length;_j++){edge=edges[_j];var childNodeId=_this3._getConnectedId(edge,nodeId);if(checkJoinCondition(node)){childEdgesObj[edge.id]=edge;childNodesObj[nodeId]=node;childNodesObj[childNodeId]=_this3.body.nodes[childNodeId];usedNodes[nodeId]=true}else{gatheringSuccessful=false;break}}if((0,_keys2[\"default\"])(childNodesObj).length>0&&(0,_keys2[\"default\"])(childEdgesObj).length>0&&gatheringSuccessful===true){findClusterData=function findClusterData(){for(var n=0;n<clusters.length;++n){for(var m in childNodesObj){if(clusters[n].nodes[m]!==undefined){return clusters[n]}}}return undefined};foundCluster=findClusterData();if(foundCluster!==undefined){for(var m in childNodesObj){if(foundCluster.nodes[m]===undefined){foundCluster.nodes[m]=childNodesObj[m]}}for(var _m in childEdgesObj){if(foundCluster.edges[_m]===undefined){foundCluster.edges[_m]=childEdgesObj[_m]}}}else{clusters.push({nodes:childNodesObj,edges:childEdgesObj})}}}}};for(var i=0;i<this.body.nodeIndices.length;i++){var checkJoinCondition;var findClusterData;var foundCluster;_loop(i)}for(var i=0;i<clusters.length;i++){this._cluster(clusters[i].nodes,clusters[i].edges,options,false)}if(refreshData===true){this.body.emitter.emit(\"_dataChanged\")}}},{key:\"clusterOutliers\",value:function clusterOutliers(options){var refreshData=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;this.clusterByEdgeCount(1,options,refreshData)}},{key:\"clusterBridges\",value:function clusterBridges(options){var refreshData=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;this.clusterByEdgeCount(2,options,refreshData)}},{key:\"clusterByConnection\",value:function clusterByConnection(nodeId,options){var refreshData=arguments.length>2&&arguments[2]!==undefined?arguments[2]:true;if(nodeId===undefined){throw new Error(\"No nodeId supplied to clusterByConnection!\")}if(this.body.nodes[nodeId]===undefined){throw new Error(\"The nodeId given to clusterByConnection does not exist!\")}var node=this.body.nodes[nodeId];options=this._checkOptions(options,node);if(options.clusterNodeProperties.x===undefined){options.clusterNodeProperties.x=node.x}if(options.clusterNodeProperties.y===undefined){options.clusterNodeProperties.y=node.y}if(options.clusterNodeProperties.fixed===undefined){options.clusterNodeProperties.fixed={};options.clusterNodeProperties.fixed.x=node.options.fixed.x;options.clusterNodeProperties.fixed.y=node.options.fixed.y}var childNodesObj={};var childEdgesObj={};var parentNodeId=node.id;var parentClonedOptions=NetworkUtil.cloneOptions(node);childNodesObj[parentNodeId]=node;for(var i=0;i<node.edges.length;i++){var edge=node.edges[i];if(this.clusteredEdges[edge.id]===undefined){var childNodeId=this._getConnectedId(edge,parentNodeId);if(this.clusteredNodes[childNodeId]===undefined){if(childNodeId!==parentNodeId){if(options.joinCondition===undefined){childEdgesObj[edge.id]=edge;childNodesObj[childNodeId]=this.body.nodes[childNodeId]}else{var childClonedOptions=NetworkUtil.cloneOptions(this.body.nodes[childNodeId]);if(options.joinCondition(parentClonedOptions,childClonedOptions)===true){childEdgesObj[edge.id]=edge;childNodesObj[childNodeId]=this.body.nodes[childNodeId]}}}else{childEdgesObj[edge.id]=edge}}}}var childNodeIDs=(0,_keys2[\"default\"])(childNodesObj).map(function(childNode){return childNodesObj[childNode].id});for(childNode in childNodesObj){if(!childNodesObj.hasOwnProperty(childNode))continue;var childNode=childNodesObj[childNode];for(var y=0;y<childNode.edges.length;y++){var childEdge=childNode.edges[y];if(childNodeIDs.indexOf(this._getConnectedId(childEdge,childNode.id))>-1){childEdgesObj[childEdge.id]=childEdge}}}this._cluster(childNodesObj,childEdgesObj,options,refreshData)}},{key:\"_createClusterEdges\",value:function _createClusterEdges(childNodesObj,childEdgesObj,clusterNodeProperties,clusterEdgeProperties){var edge=void 0,childNodeId=void 0,childNode=void 0,toId=void 0,fromId=void 0,otherNodeId=void 0;var childKeys=(0,_keys2[\"default\"])(childNodesObj);var createEdges=[];for(var i=0;i<childKeys.length;i++){childNodeId=childKeys[i];childNode=childNodesObj[childNodeId];for(var j=0;j<childNode.edges.length;j++){edge=childNode.edges[j];if(this.clusteredEdges[edge.id]===undefined){if(edge.toId==edge.fromId){childEdgesObj[edge.id]=edge}else{if(edge.toId==childNodeId){toId=clusterNodeProperties.id;fromId=edge.fromId;otherNodeId=fromId}else{toId=edge.toId;fromId=clusterNodeProperties.id;otherNodeId=toId}}if(childNodesObj[otherNodeId]===undefined){createEdges.push({edge:edge,fromId:fromId,toId:toId})}}}}var newEdges=[];var getNewEdge=function getNewEdge(createdEdge){for(var _j2=0;_j2<newEdges.length;_j2++){var newEdge=newEdges[_j2];var matchToDirection=createdEdge.fromId===newEdge.fromId&&createdEdge.toId===newEdge.toId;var matchFromDirection=createdEdge.fromId===newEdge.toId&&createdEdge.toId===newEdge.fromId;if(matchToDirection||matchFromDirection){return newEdge}}return null};for(var _j3=0;_j3<createEdges.length;_j3++){var createdEdge=createEdges[_j3];var _edge=createdEdge.edge;var newEdge=getNewEdge(createdEdge);if(newEdge===null){newEdge=this._createClusteredEdge(createdEdge.fromId,createdEdge.toId,_edge,clusterEdgeProperties);newEdges.push(newEdge)}else{newEdge.clusteringEdgeReplacingIds.push(_edge.id)}this.body.edges[_edge.id].edgeReplacedById=newEdge.id;this._backupEdgeOptions(_edge);_edge.setOptions({physics:false})}}},{key:\"_checkOptions\",value:function _checkOptions(){var options=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};if(options.clusterEdgeProperties===undefined){options.clusterEdgeProperties={}}if(options.clusterNodeProperties===undefined){options.clusterNodeProperties={}}return options}},{key:\"_cluster\",value:function _cluster(childNodesObj,childEdgesObj,options){var refreshData=arguments.length>3&&arguments[3]!==undefined?arguments[3]:true;var tmpNodesToRemove=[];for(var _nodeId in childNodesObj){if(childNodesObj.hasOwnProperty(_nodeId)){if(this.clusteredNodes[_nodeId]!==undefined){tmpNodesToRemove.push(_nodeId)}}}for(var n=0;n<tmpNodesToRemove.length;++n){delete childNodesObj[tmpNodesToRemove[n]]}if((0,_keys2[\"default\"])(childNodesObj).length==0){return}if((0,_keys2[\"default\"])(childNodesObj).length==1&&options.clusterNodeProperties.allowSingleNodeCluster!=true){return}var clusterNodeProperties=util.deepExtend({},options.clusterNodeProperties);if(options.processProperties!==undefined){var childNodesOptions=[];for(var _nodeId2 in childNodesObj){if(childNodesObj.hasOwnProperty(_nodeId2)){var clonedOptions=NetworkUtil.cloneOptions(childNodesObj[_nodeId2]);childNodesOptions.push(clonedOptions)}}var childEdgesOptions=[];for(var edgeId in childEdgesObj){if(childEdgesObj.hasOwnProperty(edgeId)){if(edgeId.substr(0,12)!==\"clusterEdge:\"){var _clonedOptions=NetworkUtil.cloneOptions(childEdgesObj[edgeId],\"edge\");childEdgesOptions.push(_clonedOptions)}}}clusterNodeProperties=options.processProperties(clusterNodeProperties,childNodesOptions,childEdgesOptions);if(!clusterNodeProperties){throw new Error(\"The processProperties function does not return properties!\")}}if(clusterNodeProperties.id===undefined){clusterNodeProperties.id=\"cluster:\"+util.randomUUID()}var clusterId=clusterNodeProperties.id;if(clusterNodeProperties.label===undefined){clusterNodeProperties.label=\"cluster\"}var pos=undefined;if(clusterNodeProperties.x===undefined){pos=this._getClusterPosition(childNodesObj);clusterNodeProperties.x=pos.x}if(clusterNodeProperties.y===undefined){if(pos===undefined){pos=this._getClusterPosition(childNodesObj)}clusterNodeProperties.y=pos.y}clusterNodeProperties.id=clusterId;var clusterNode=this.body.functions.createNode(clusterNodeProperties,Cluster);clusterNode.containedNodes=childNodesObj;clusterNode.containedEdges=childEdgesObj;clusterNode.clusterEdgeProperties=options.clusterEdgeProperties;this.body.nodes[clusterNodeProperties.id]=clusterNode;this._clusterEdges(childNodesObj,childEdgesObj,clusterNodeProperties,options.clusterEdgeProperties);clusterNodeProperties.id=undefined;if(refreshData===true){this.body.emitter.emit(\"_dataChanged\")}}},{key:\"_backupEdgeOptions\",value:function _backupEdgeOptions(edge){if(this.clusteredEdges[edge.id]===undefined){this.clusteredEdges[edge.id]={physics:edge.options.physics}}}},{key:\"_restoreEdge\",value:function _restoreEdge(edge){var originalOptions=this.clusteredEdges[edge.id];if(originalOptions!==undefined){edge.setOptions({physics:originalOptions.physics});delete this.clusteredEdges[edge.id]}}},{key:\"isCluster\",value:function isCluster(nodeId){if(this.body.nodes[nodeId]!==undefined){return this.body.nodes[nodeId].isCluster===true}else{console.log(\"Node does not exist.\");return false}}},{key:\"_getClusterPosition\",value:function _getClusterPosition(childNodesObj){var childKeys=(0,_keys2[\"default\"])(childNodesObj);var minX=childNodesObj[childKeys[0]].x;var maxX=childNodesObj[childKeys[0]].x;var minY=childNodesObj[childKeys[0]].y;var maxY=childNodesObj[childKeys[0]].y;var node=void 0;for(var i=1;i<childKeys.length;i++){node=childNodesObj[childKeys[i]];minX=node.x<minX?node.x:minX;maxX=node.x>maxX?node.x:maxX\n;minY=node.y<minY?node.y:minY;maxY=node.y>maxY?node.y:maxY}return{x:.5*(minX+maxX),y:.5*(minY+maxY)}}},{key:\"openCluster\",value:function openCluster(clusterNodeId,options){var refreshData=arguments.length>2&&arguments[2]!==undefined?arguments[2]:true;if(clusterNodeId===undefined){throw new Error(\"No clusterNodeId supplied to openCluster.\")}var clusterNode=this.body.nodes[clusterNodeId];if(clusterNode===undefined){throw new Error(\"The clusterNodeId supplied to openCluster does not exist.\")}if(clusterNode.isCluster!==true||clusterNode.containedNodes===undefined||clusterNode.containedEdges===undefined){throw new Error(\"The node:\"+clusterNodeId+\" is not a valid cluster.\")}var stack=this.findNode(clusterNodeId);var parentIndex=stack.indexOf(clusterNodeId)-1;if(parentIndex>=0){var parentClusterNodeId=stack[parentIndex];var parentClusterNode=this.body.nodes[parentClusterNodeId];parentClusterNode._openChildCluster(clusterNodeId);delete this.body.nodes[clusterNodeId];if(refreshData===true){this.body.emitter.emit(\"_dataChanged\")}return}var containedNodes=clusterNode.containedNodes;var containedEdges=clusterNode.containedEdges;if(options!==undefined&&options.releaseFunction!==undefined&&typeof options.releaseFunction===\"function\"){var positions={};var clusterPosition={x:clusterNode.x,y:clusterNode.y};for(var _nodeId3 in containedNodes){if(containedNodes.hasOwnProperty(_nodeId3)){var containedNode=this.body.nodes[_nodeId3];positions[_nodeId3]={x:containedNode.x,y:containedNode.y}}}var newPositions=options.releaseFunction(clusterPosition,positions);for(var _nodeId4 in containedNodes){if(containedNodes.hasOwnProperty(_nodeId4)){var _containedNode=this.body.nodes[_nodeId4];if(newPositions[_nodeId4]!==undefined){_containedNode.x=newPositions[_nodeId4].x===undefined?clusterNode.x:newPositions[_nodeId4].x;_containedNode.y=newPositions[_nodeId4].y===undefined?clusterNode.y:newPositions[_nodeId4].y}}}}else{util.forEach(containedNodes,function(containedNode){if(containedNode.options.fixed.x===false){containedNode.x=clusterNode.x}if(containedNode.options.fixed.y===false){containedNode.y=clusterNode.y}})}for(var _nodeId5 in containedNodes){if(containedNodes.hasOwnProperty(_nodeId5)){var _containedNode2=this.body.nodes[_nodeId5];_containedNode2.vx=clusterNode.vx;_containedNode2.vy=clusterNode.vy;_containedNode2.setOptions({physics:true});delete this.clusteredNodes[_nodeId5]}}var edgesToBeDeleted=[];for(var i=0;i<clusterNode.edges.length;i++){edgesToBeDeleted.push(clusterNode.edges[i])}for(var _i2=0;_i2<edgesToBeDeleted.length;_i2++){var edge=edgesToBeDeleted[_i2];var otherNodeId=this._getConnectedId(edge,clusterNodeId);var otherNode=this.clusteredNodes[otherNodeId];for(var j=0;j<edge.clusteringEdgeReplacingIds.length;j++){var transferId=edge.clusteringEdgeReplacingIds[j];var transferEdge=this.body.edges[transferId];if(transferEdge===undefined)continue;if(otherNode!==undefined){var otherCluster=this.body.nodes[otherNode.clusterId];otherCluster.containedEdges[transferEdge.id]=transferEdge;delete containedEdges[transferEdge.id];var fromId=transferEdge.fromId;var toId=transferEdge.toId;if(transferEdge.toId==otherNodeId){toId=otherNode.clusterId}else{fromId=otherNode.clusterId}this._createClusteredEdge(fromId,toId,transferEdge,otherCluster.clusterEdgeProperties,{hidden:false,physics:true})}else{this._restoreEdge(transferEdge)}}edge.remove()}for(var edgeId in containedEdges){if(containedEdges.hasOwnProperty(edgeId)){this._restoreEdge(containedEdges[edgeId])}}delete this.body.nodes[clusterNodeId];if(refreshData===true){this.body.emitter.emit(\"_dataChanged\")}}},{key:\"getNodesInCluster\",value:function getNodesInCluster(clusterId){var nodesArray=[];if(this.isCluster(clusterId)===true){var containedNodes=this.body.nodes[clusterId].containedNodes;for(var _nodeId6 in containedNodes){if(containedNodes.hasOwnProperty(_nodeId6)){nodesArray.push(this.body.nodes[_nodeId6].id)}}}return nodesArray}},{key:\"findNode\",value:function findNode(nodeId){var stack=[];var max=100;var counter=0;var node=void 0;while(this.clusteredNodes[nodeId]!==undefined&&counter<max){node=this.body.nodes[nodeId];if(node===undefined)return[];stack.push(node.id);nodeId=this.clusteredNodes[nodeId].clusterId;counter++}node=this.body.nodes[nodeId];if(node===undefined)return[];stack.push(node.id);stack.reverse();return stack}},{key:\"updateClusteredNode\",value:function updateClusteredNode(clusteredNodeId,newOptions){if(clusteredNodeId===undefined){throw new Error(\"No clusteredNodeId supplied to updateClusteredNode.\")}if(newOptions===undefined){throw new Error(\"No newOptions supplied to updateClusteredNode.\")}if(this.body.nodes[clusteredNodeId]===undefined){throw new Error(\"The clusteredNodeId supplied to updateClusteredNode does not exist.\")}this.body.nodes[clusteredNodeId].setOptions(newOptions);this.body.emitter.emit(\"_dataChanged\")}},{key:\"updateEdge\",value:function updateEdge(startEdgeId,newOptions){if(startEdgeId===undefined){throw new Error(\"No startEdgeId supplied to updateEdge.\")}if(newOptions===undefined){throw new Error(\"No newOptions supplied to updateEdge.\")}if(this.body.edges[startEdgeId]===undefined){throw new Error(\"The startEdgeId supplied to updateEdge does not exist.\")}var allEdgeIds=this.getClusteredEdges(startEdgeId);for(var i=0;i<allEdgeIds.length;i++){var edge=this.body.edges[allEdgeIds[i]];edge.setOptions(newOptions)}this.body.emitter.emit(\"_dataChanged\")}},{key:\"getClusteredEdges\",value:function getClusteredEdges(edgeId){var stack=[];var max=100;var counter=0;while(edgeId!==undefined&&this.body.edges[edgeId]!==undefined&&counter<max){stack.push(this.body.edges[edgeId].id);edgeId=this.body.edges[edgeId].edgeReplacedById;counter++}stack.reverse();return stack}},{key:\"getBaseEdge\",value:function getBaseEdge(clusteredEdgeId){return this.getBaseEdges(clusteredEdgeId)[0]}},{key:\"getBaseEdges\",value:function getBaseEdges(clusteredEdgeId){var IdsToHandle=[clusteredEdgeId];var doneIds=[];var foundIds=[];var max=100;var counter=0;while(IdsToHandle.length>0&&counter<max){var nextId=IdsToHandle.pop();if(nextId===undefined)continue;var nextEdge=this.body.edges[nextId];if(nextEdge===undefined)continue;counter++;var replacingIds=nextEdge.clusteringEdgeReplacingIds;if(replacingIds===undefined){foundIds.push(nextId)}else{for(var i=0;i<replacingIds.length;++i){var replacingId=replacingIds[i];if(IdsToHandle.indexOf(replacingIds)!==-1||doneIds.indexOf(replacingIds)!==-1){continue}IdsToHandle.push(replacingId)}}doneIds.push(nextId)}return foundIds}},{key:\"_getConnectedId\",value:function _getConnectedId(edge,nodeId){if(edge.toId!=nodeId){return edge.toId}else if(edge.fromId!=nodeId){return edge.fromId}else{return edge.fromId}}},{key:\"_getHubSize\",value:function _getHubSize(){var average=0;var averageSquared=0;var hubCounter=0;var largestHub=0;for(var i=0;i<this.body.nodeIndices.length;i++){var _node=this.body.nodes[this.body.nodeIndices[i]];if(_node.edges.length>largestHub){largestHub=_node.edges.length}average+=_node.edges.length;averageSquared+=Math.pow(_node.edges.length,2);hubCounter+=1}average=average/hubCounter;averageSquared=averageSquared/hubCounter;var variance=averageSquared-Math.pow(average,2);var standardDeviation=Math.sqrt(variance);var hubThreshold=Math.floor(average+2*standardDeviation);if(hubThreshold>largestHub){hubThreshold=largestHub}return hubThreshold}},{key:\"_createClusteredEdge\",value:function _createClusteredEdge(fromId,toId,baseEdge,clusterEdgeProperties,extraOptions){var clonedOptions=NetworkUtil.cloneOptions(baseEdge,\"edge\");util.deepExtend(clonedOptions,clusterEdgeProperties);clonedOptions.from=fromId;clonedOptions.to=toId;clonedOptions.id=\"clusterEdge:\"+util.randomUUID();if(extraOptions!==undefined){util.deepExtend(clonedOptions,extraOptions)}var newEdge=this.body.functions.createEdge(clonedOptions);newEdge.clusteringEdgeReplacingIds=[baseEdge.id];newEdge.connect();this.body.edges[newEdge.id]=newEdge;return newEdge}},{key:\"_clusterEdges\",value:function _clusterEdges(childNodes,childEdges,clusterNode,clusterEdgeProperties){if(childEdges instanceof Edge){var edge=childEdges;var obj={};obj[edge.id]=edge;childEdges=obj}if(childNodes instanceof Node){var _node2=childNodes;var _obj={};_obj[_node2.id]=_node2;childNodes=_obj}if(clusterNode===undefined||clusterNode===null){throw new Error(\"_clusterEdges: parameter clusterNode required\")}if(clusterEdgeProperties===undefined){clusterEdgeProperties=clusterNode.clusterEdgeProperties}this._createClusterEdges(childNodes,childEdges,clusterNode,clusterEdgeProperties);for(var edgeId in childEdges){if(childEdges.hasOwnProperty(edgeId)){if(this.body.edges[edgeId]!==undefined){var _edge2=this.body.edges[edgeId];this._backupEdgeOptions(_edge2);_edge2.setOptions({physics:false})}}}for(var _nodeId7 in childNodes){if(childNodes.hasOwnProperty(_nodeId7)){this.clusteredNodes[_nodeId7]={clusterId:clusterNode.id,node:this.body.nodes[_nodeId7]};this.body.nodes[_nodeId7].setOptions({physics:false})}}}},{key:\"_getClusterNodeForNode\",value:function _getClusterNodeForNode(nodeId){if(nodeId===undefined)return undefined;var clusteredNode=this.clusteredNodes[nodeId];if(clusteredNode===undefined)return undefined;var clusterId=clusteredNode.clusterId;if(clusterId===undefined)return undefined;return this.body.nodes[clusterId]}},{key:\"_filter\",value:function _filter(arr,callback){var ret=[];util.forEach(arr,function(item){if(callback(item)){ret.push(item)}});return ret}},{key:\"_updateState\",value:function _updateState(){var _this4=this;var nodeId=void 0;var deletedNodeIds=[];var deletedEdgeIds=[];var eachClusterNode=function eachClusterNode(callback){util.forEach(_this4.body.nodes,function(node){if(node.isCluster===true){callback(node)}})};for(nodeId in this.clusteredNodes){if(!this.clusteredNodes.hasOwnProperty(nodeId))continue;var _node3=this.body.nodes[nodeId];if(_node3===undefined){deletedNodeIds.push(nodeId)}}eachClusterNode(function(clusterNode){for(var n=0;n<deletedNodeIds.length;n++){delete clusterNode.containedNodes[deletedNodeIds[n]]}});for(var n=0;n<deletedNodeIds.length;n++){delete this.clusteredNodes[deletedNodeIds[n]]}util.forEach(this.clusteredEdges,function(edgeId){var edge=_this4.body.edges[edgeId];if(edge===undefined||!edge.endPointsValid()){deletedEdgeIds.push(edgeId)}});eachClusterNode(function(clusterNode){util.forEach(clusterNode.containedEdges,function(edge,edgeId){if(!edge.endPointsValid()&&deletedEdgeIds.indexOf(edgeId)===-1){deletedEdgeIds.push(edgeId)}})});util.forEach(this.body.edges,function(edge,edgeId){var isValid=true;var replacedIds=edge.clusteringEdgeReplacingIds;if(replacedIds!==undefined){var numValid=0;util.forEach(replacedIds,function(containedEdgeId){var containedEdge=_this4.body.edges[containedEdgeId];if(containedEdge!==undefined&&containedEdge.endPointsValid()){numValid+=1}});isValid=numValid>0}if(!edge.endPointsValid()||!isValid){deletedEdgeIds.push(edgeId)}});eachClusterNode(function(clusterNode){util.forEach(deletedEdgeIds,function(deletedEdgeId){delete clusterNode.containedEdges[deletedEdgeId];util.forEach(clusterNode.edges,function(edge,m){if(edge.id===deletedEdgeId){clusterNode.edges[m]=null;return}edge.clusteringEdgeReplacingIds=_this4._filter(edge.clusteringEdgeReplacingIds,function(id){return deletedEdgeIds.indexOf(id)===-1})});clusterNode.edges=_this4._filter(clusterNode.edges,function(item){return item!==null})})});util.forEach(deletedEdgeIds,function(edgeId){delete _this4.clusteredEdges[edgeId]});util.forEach(deletedEdgeIds,function(edgeId){delete _this4.body.edges[edgeId]});var ids=(0,_keys2[\"default\"])(this.body.edges);util.forEach(ids,function(edgeId){var edge=_this4.body.edges[edgeId];var shouldBeClustered=_this4._isClusteredNode(edge.fromId)||_this4._isClusteredNode(edge.toId);if(shouldBeClustered===_this4._isClusteredEdge(edge.id)){return}if(shouldBeClustered){var clusterFrom=_this4._getClusterNodeForNode(edge.fromId);if(clusterFrom!==undefined){_this4._clusterEdges(_this4.body.nodes[edge.fromId],edge,clusterFrom)}var clusterTo=_this4._getClusterNodeForNode(edge.toId);if(clusterTo!==undefined){_this4._clusterEdges(_this4.body.nodes[edge.toId],edge,clusterTo)}}else{throw new Error(\"remove edge from clustering not implemented!\")}});var changed=false;var continueLoop=true;var _loop2=function _loop2(){var clustersToOpen=[];eachClusterNode(function(clusterNode){var numNodes=(0,_keys2[\"default\"])(clusterNode.containedNodes).length;var allowSingle=clusterNode.options.allowSingleNodeCluster===true;if(allowSingle&&numNodes<1||!allowSingle&&numNodes<2){clustersToOpen.push(clusterNode.id)}});for(var _n=0;_n<clustersToOpen.length;++_n){_this4.openCluster(clustersToOpen[_n],{},false)}continueLoop=clustersToOpen.length>0;changed=changed||continueLoop};while(continueLoop){_loop2()}if(changed){this._updateState()}}},{key:\"_isClusteredNode\",value:function _isClusteredNode(nodeId){return this.clusteredNodes[nodeId]!==undefined}},{key:\"_isClusteredEdge\",value:function _isClusteredEdge(edgeId){return this.clusteredEdges[edgeId]!==undefined}}]);return ClusterEngine}();exports[\"default\"]=ClusterEngine},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var Node=__webpack_require__(47)[\"default\"];var Cluster=function(_Node){(0,_inherits3[\"default\"])(Cluster,_Node);function Cluster(options,body,imagelist,grouplist,globalOptions,defaultOptions){(0,_classCallCheck3[\"default\"])(this,Cluster);var _this=(0,_possibleConstructorReturn3[\"default\"])(this,(Cluster.__proto__||(0,_getPrototypeOf2[\"default\"])(Cluster)).call(this,options,body,imagelist,grouplist,globalOptions,defaultOptions));_this.isCluster=true;_this.containedNodes={};_this.containedEdges={};return _this}(0,_createClass3[\"default\"])(Cluster,[{key:\"_openChildCluster\",value:function _openChildCluster(childClusterId){var _this2=this;var childCluster=this.body.nodes[childClusterId];if(this.containedNodes[childClusterId]===undefined){throw new Error(\"node with id: \"+childClusterId+\" not in current cluster\")}if(!childCluster.isCluster){throw new Error(\"node with id: \"+childClusterId+\" is not a cluster\")}delete this.containedNodes[childClusterId];util.forEach(childCluster.edges,function(edge){delete _this2.containedEdges[edge.id]});util.forEach(childCluster.containedNodes,function(node,nodeId){_this2.containedNodes[nodeId]=node});childCluster.containedNodes={};util.forEach(childCluster.containedEdges,function(edge,edgeId){_this2.containedEdges[edgeId]=edge});childCluster.containedEdges={};util.forEach(childCluster.edges,function(clusterEdge){util.forEach(_this2.edges,function(parentClusterEdge){var index=parentClusterEdge.clusteringEdgeReplacingIds.indexOf(clusterEdge.id);if(index===-1)return;util.forEach(clusterEdge.clusteringEdgeReplacingIds,function(srcId){parentClusterEdge.clusteringEdgeReplacingIds.push(srcId);_this2.body.edges[srcId].edgeReplacedById=parentClusterEdge.id});parentClusterEdge.clusteringEdgeReplacingIds.splice(index,1)})});childCluster.edges=[]}}]);return Cluster}(Node);exports[\"default\"]=Cluster},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _initRequestAnimationFrame(){var func;if(window!==undefined){func=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame}if(func===undefined){window.requestAnimationFrame=function(callback){callback()}}else{window.requestAnimationFrame=func}}var util=__webpack_require__(2);var CanvasRenderer=function(){function CanvasRenderer(body,canvas){(0,_classCallCheck3[\"default\"])(this,CanvasRenderer);_initRequestAnimationFrame();this.body=body;this.canvas=canvas;this.redrawRequested=false;this.renderTimer=undefined;this.requiresTimeout=true;this.renderingActive=false;this.renderRequests=0;this.allowRedraw=true;this.dragging=false;this.options={};this.defaultOptions={hideEdgesOnDrag:false,hideNodesOnDrag:false};util.extend(this.options,this.defaultOptions);this._determineBrowserMethod();this.bindEventListeners()}(0,_createClass3[\"default\"])(CanvasRenderer,[{key:\"bindEventListeners\",value:function bindEventListeners(){var _this=this;this.body.emitter.on(\"dragStart\",function(){_this.dragging=true});this.body.emitter.on(\"dragEnd\",function(){_this.dragging=false});this.body.emitter.on(\"_resizeNodes\",function(){_this._resizeNodes()});this.body.emitter.on(\"_redraw\",function(){if(_this.renderingActive===false){_this._redraw()}});this.body.emitter.on(\"_blockRedraw\",function(){_this.allowRedraw=false});this.body.emitter.on(\"_allowRedraw\",function(){_this.allowRedraw=true;_this.redrawRequested=false});this.body.emitter.on(\"_requestRedraw\",this._requestRedraw.bind(this));this.body.emitter.on(\"_startRendering\",function(){_this.renderRequests+=1;_this.renderingActive=true;_this._startRendering()});this.body.emitter.on(\"_stopRendering\",function(){_this.renderRequests-=1;_this.renderingActive=_this.renderRequests>0;_this.renderTimer=undefined});this.body.emitter.on(\"destroy\",function(){_this.renderRequests=0;_this.allowRedraw=false;_this.renderingActive=false;if(_this.requiresTimeout===true){clearTimeout(_this.renderTimer)}else{window.cancelAnimationFrame(_this.renderTimer)}_this.body.emitter.off()})}},{key:\"setOptions\",value:function setOptions(options){if(options!==undefined){var fields=[\"hideEdgesOnDrag\",\"hideNodesOnDrag\"];util.selectiveDeepExtend(fields,this.options,options)}}},{key:\"_requestNextFrame\",value:function _requestNextFrame(callback,delay){if(typeof window===\"undefined\")return;var timer=void 0;var myWindow=window;if(this.requiresTimeout===true){timer=myWindow.setTimeout(callback,delay)}else{if(myWindow.requestAnimationFrame){timer=myWindow.requestAnimationFrame(callback)}}return timer}},{key:\"_startRendering\",value:function _startRendering(){if(this.renderingActive===true){if(this.renderTimer===undefined){this.renderTimer=this._requestNextFrame(this._renderStep.bind(this),this.simulationInterval)}}}},{key:\"_renderStep\",value:function _renderStep(){if(this.renderingActive===true){this.renderTimer=undefined;if(this.requiresTimeout===true){this._startRendering()}this._redraw();if(this.requiresTimeout===false){this._startRendering()}}}},{key:\"redraw\",value:function redraw(){this.body.emitter.emit(\"setSize\");this._redraw()}},{key:\"_requestRedraw\",value:function _requestRedraw(){var _this2=this;if(this.redrawRequested!==true&&this.renderingActive===false&&this.allowRedraw===true){this.redrawRequested=true;this._requestNextFrame(function(){_this2._redraw(false)},0)}}},{key:\"_redraw\",value:function _redraw(){var hidden=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;if(this.allowRedraw===true){this.body.emitter.emit(\"initRedraw\");this.redrawRequested=false;if(this.canvas.frame.canvas.width===0||this.canvas.frame.canvas.height===0){this.canvas.setSize()}this.canvas.setTransform();var ctx=this.canvas.getContext();var w=this.canvas.frame.canvas.clientWidth;var h=this.canvas.frame.canvas.clientHeight;ctx.clearRect(0,0,w,h);if(this.canvas.frame.clientWidth===0){return}ctx.save();ctx.translate(this.body.view.translation.x,this.body.view.translation.y);ctx.scale(this.body.view.scale,this.body.view.scale);ctx.beginPath();this.body.emitter.emit(\"beforeDrawing\",ctx);ctx.closePath();if(hidden===false){if(this.dragging===false||this.dragging===true&&this.options.hideEdgesOnDrag===false){this._drawEdges(ctx)}}if(this.dragging===false||this.dragging===true&&this.options.hideNodesOnDrag===false){this._drawNodes(ctx,hidden)}ctx.beginPath();this.body.emitter.emit(\"afterDrawing\",ctx);ctx.closePath();ctx.restore();if(hidden===true){ctx.clearRect(0,0,w,h)}}}},{key:\"_resizeNodes\",value:function _resizeNodes(){this.canvas.setTransform();var ctx=this.canvas.getContext();ctx.save();ctx.translate(this.body.view.translation.x,this.body.view.translation.y);ctx.scale(this.body.view.scale,this.body.view.scale);var nodes=this.body.nodes;var node=void 0;for(var nodeId in nodes){if(nodes.hasOwnProperty(nodeId)){node=nodes[nodeId];node.resize(ctx);node.updateBoundingBox(ctx,node.selected)}}ctx.restore()}},{key:\"_drawNodes\",value:function _drawNodes(ctx){var alwaysShow=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;var nodes=this.body.nodes;var nodeIndices=this.body.nodeIndices;var node=void 0;var selected=[];var margin=20;var topLeft=this.canvas.DOMtoCanvas({x:-margin,y:-margin});var bottomRight=this.canvas.DOMtoCanvas({x:this.canvas.frame.canvas.clientWidth+margin,y:this.canvas.frame.canvas.clientHeight+margin});var viewableArea={top:topLeft.y,left:topLeft.x,bottom:bottomRight.y,right:bottomRight.x};for(var i=0;i<nodeIndices.length;i++){node=nodes[nodeIndices[i]];if(node.isSelected()){selected.push(nodeIndices[i])}else{if(alwaysShow===true){node.draw(ctx)}else if(node.isBoundingBoxOverlappingWith(viewableArea)===true){node.draw(ctx)}else{node.updateBoundingBox(ctx,node.selected)}}}for(var _i=0;_i<selected.length;_i++){node=nodes[selected[_i]];node.draw(ctx)}}},{key:\"_drawEdges\",value:function _drawEdges(ctx){var edges=this.body.edges;var edgeIndices=this.body.edgeIndices;var edge=void 0;for(var i=0;i<edgeIndices.length;i++){edge=edges[edgeIndices[i]];if(edge.connected===true){edge.draw(ctx)}}}},{key:\"_determineBrowserMethod\",value:function _determineBrowserMethod(){if(typeof window!==\"undefined\"){var browserType=navigator.userAgent.toLowerCase();this.requiresTimeout=false;if(browserType.indexOf(\"msie 9.0\")!=-1){this.requiresTimeout=true}else if(browserType.indexOf(\"safari\")!=-1){if(browserType.indexOf(\"chrome\")<=-1){this.requiresTimeout=true}}}else{this.requiresTimeout=true}}}]);return CanvasRenderer}();exports[\"default\"]=CanvasRenderer},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Hammer=__webpack_require__(10);var hammerUtil=__webpack_require__(37);var util=__webpack_require__(2);var Canvas=function(){function Canvas(body){(0,_classCallCheck3[\"default\"])(this,Canvas);this.body=body;this.pixelRatio=1;this.resizeTimer=undefined;this.resizeFunction=this._onResize.bind(this);this.cameraState={};this.initialized=false;this.canvasViewCenter={};this.options={};this.defaultOptions={autoResize:true,height:\"100%\",width:\"100%\"};util.extend(this.options,this.defaultOptions);this.bindEventListeners()}(0,_createClass3[\"default\"])(Canvas,[{key:\"bindEventListeners\",value:function bindEventListeners(){var _this=this;this.body.emitter.once(\"resize\",function(obj){if(obj.width!==0){_this.body.view.translation.x=obj.width*.5}if(obj.height!==0){_this.body.view.translation.y=obj.height*.5}});this.body.emitter.on(\"setSize\",this.setSize.bind(this));this.body.emitter.on(\"destroy\",function(){_this.hammerFrame.destroy();_this.hammer.destroy();_this._cleanUp()})}},{key:\"setOptions\",value:function setOptions(options){var _this2=this;if(options!==undefined){var fields=[\"width\",\"height\",\"autoResize\"];util.selectiveDeepExtend(fields,this.options,options)}if(this.options.autoResize===true){this._cleanUp();this.resizeTimer=setInterval(function(){var changed=_this2.setSize();if(changed===true){_this2.body.emitter.emit(\"_requestRedraw\")}},1e3);this.resizeFunction=this._onResize.bind(this);util.addEventListener(window,\"resize\",this.resizeFunction)}}},{key:\"_cleanUp\",value:function _cleanUp(){if(this.resizeTimer!==undefined){clearInterval(this.resizeTimer)}util.removeEventListener(window,\"resize\",this.resizeFunction);this.resizeFunction=undefined}},{key:\"_onResize\",value:function _onResize(){this.setSize();this.body.emitter.emit(\"_redraw\")}},{key:\"_getCameraState\",value:function _getCameraState(){var pixelRatio=arguments.length>0&&arguments[0]!==undefined?arguments[0]:this.pixelRatio;if(this.initialized===true){this.cameraState.previousWidth=this.frame.canvas.width/pixelRatio;this.cameraState.previousHeight=this.frame.canvas.height/pixelRatio;this.cameraState.scale=this.body.view.scale;this.cameraState.position=this.DOMtoCanvas({x:.5*this.frame.canvas.width/pixelRatio,y:.5*this.frame.canvas.height/pixelRatio})}}},{key:\"_setCameraState\",value:function _setCameraState(){if(this.cameraState.scale!==undefined&&this.frame.canvas.clientWidth!==0&&this.frame.canvas.clientHeight!==0&&this.pixelRatio!==0&&this.cameraState.previousWidth>0){var widthRatio=this.frame.canvas.width/this.pixelRatio/this.cameraState.previousWidth;var heightRatio=this.frame.canvas.height/this.pixelRatio/this.cameraState.previousHeight;var newScale=this.cameraState.scale;if(widthRatio!=1&&heightRatio!=1){newScale=this.cameraState.scale*.5*(widthRatio+heightRatio)}else if(widthRatio!=1){newScale=this.cameraState.scale*widthRatio}else if(heightRatio!=1){newScale=this.cameraState.scale*heightRatio}this.body.view.scale=newScale;var currentViewCenter=this.DOMtoCanvas({x:.5*this.frame.canvas.clientWidth,y:.5*this.frame.canvas.clientHeight});var distanceFromCenter={x:currentViewCenter.x-this.cameraState.position.x,y:currentViewCenter.y-this.cameraState.position.y};this.body.view.translation.x+=distanceFromCenter.x*this.body.view.scale;this.body.view.translation.y+=distanceFromCenter.y*this.body.view.scale}}},{key:\"_prepareValue\",value:function _prepareValue(value){if(typeof value===\"number\"){return value+\"px\"}else if(typeof value===\"string\"){if(value.indexOf(\"%\")!==-1||value.indexOf(\"px\")!==-1){return value}else if(value.indexOf(\"%\")===-1){return value+\"px\"}}throw new Error(\"Could not use the value supplied for width or height:\"+value)}},{key:\"_create\",value:function _create(){while(this.body.container.hasChildNodes()){this.body.container.removeChild(this.body.container.firstChild)}this.frame=document.createElement(\"div\");this.frame.className=\"vis-network\";this.frame.style.position=\"relative\";this.frame.style.overflow=\"hidden\";this.frame.tabIndex=900;this.frame.canvas=document.createElement(\"canvas\");this.frame.canvas.style.position=\"relative\";this.frame.appendChild(this.frame.canvas);if(!this.frame.canvas.getContext){var noCanvas=document.createElement(\"DIV\");noCanvas.style.color=\"red\";noCanvas.style.fontWeight=\"bold\";noCanvas.style.padding=\"10px\";noCanvas.innerHTML=\"Error: your browser does not support HTML canvas\";this.frame.canvas.appendChild(noCanvas)}else{this._setPixelRatio();this.setTransform()}this.body.container.appendChild(this.frame);this.body.view.scale=1;this.body.view.translation={x:.5*this.frame.canvas.clientWidth,y:.5*this.frame.canvas.clientHeight};this._bindHammer()}},{key:\"_bindHammer\",value:function _bindHammer(){var _this3=this;if(this.hammer!==undefined){this.hammer.destroy()}this.drag={};this.pinch={};this.hammer=new Hammer(this.frame.canvas);this.hammer.get(\"pinch\").set({enable:true});this.hammer.get(\"pan\").set({threshold:5,direction:Hammer.DIRECTION_ALL});hammerUtil.onTouch(this.hammer,function(event){_this3.body.eventListeners.onTouch(event)});this.hammer.on(\"tap\",function(event){_this3.body.eventListeners.onTap(event)});this.hammer.on(\"doubletap\",function(event){_this3.body.eventListeners.onDoubleTap(event)});this.hammer.on(\"press\",function(event){_this3.body.eventListeners.onHold(event)});this.hammer.on(\"panstart\",function(event){_this3.body.eventListeners.onDragStart(event)});this.hammer.on(\"panmove\",function(event){_this3.body.eventListeners.onDrag(event)});this.hammer.on(\"panend\",function(event){_this3.body.eventListeners.onDragEnd(event)});this.hammer.on(\"pinch\",function(event){_this3.body.eventListeners.onPinch(event)});this.frame.canvas.addEventListener(\"mousewheel\",function(event){_this3.body.eventListeners.onMouseWheel(event)});this.frame.canvas.addEventListener(\"DOMMouseScroll\",function(event){_this3.body.eventListeners.onMouseWheel(event)});this.frame.canvas.addEventListener(\"mousemove\",function(event){_this3.body.eventListeners.onMouseMove(event)});this.frame.canvas.addEventListener(\"contextmenu\",function(event){_this3.body.eventListeners.onContext(event)});this.hammerFrame=new Hammer(this.frame);hammerUtil.onRelease(this.hammerFrame,function(event){_this3.body.eventListeners.onRelease(event)})}},{key:\"setSize\",value:function setSize(){var width=arguments.length>0&&arguments[0]!==undefined?arguments[0]:this.options.width;var height=arguments.length>1&&arguments[1]!==undefined?arguments[1]:this.options.height;width=this._prepareValue(width);height=this._prepareValue(height);var emitEvent=false;var oldWidth=this.frame.canvas.width;var oldHeight=this.frame.canvas.height;var previousRatio=this.pixelRatio;this._setPixelRatio();if(width!=this.options.width||height!=this.options.height||this.frame.style.width!=width||this.frame.style.height!=height){this._getCameraState(previousRatio);this.frame.style.width=width;this.frame.style.height=height;this.frame.canvas.style.width=\"100%\";this.frame.canvas.style.height=\"100%\";this.frame.canvas.width=Math.round(this.frame.canvas.clientWidth*this.pixelRatio);this.frame.canvas.height=Math.round(this.frame.canvas.clientHeight*this.pixelRatio);this.options.width=width;this.options.height=height;this.canvasViewCenter={x:.5*this.frame.clientWidth,y:.5*this.frame.clientHeight};emitEvent=true}else{var newWidth=Math.round(this.frame.canvas.clientWidth*this.pixelRatio);var newHeight=Math.round(this.frame.canvas.clientHeight*this.pixelRatio);if(this.frame.canvas.width!==newWidth||this.frame.canvas.height!==newHeight){this._getCameraState(previousRatio)}if(this.frame.canvas.width!==newWidth){this.frame.canvas.width=newWidth;emitEvent=true}if(this.frame.canvas.height!==newHeight){this.frame.canvas.height=newHeight;emitEvent=true}}if(emitEvent===true){this.body.emitter.emit(\"resize\",{width:Math.round(this.frame.canvas.width/this.pixelRatio),height:Math.round(this.frame.canvas.height/this.pixelRatio),oldWidth:Math.round(oldWidth/this.pixelRatio),oldHeight:Math.round(oldHeight/this.pixelRatio)});this._setCameraState()}this.initialized=true;return emitEvent}},{key:\"getContext\",value:function getContext(){return this.frame.canvas.getContext(\"2d\")}},{key:\"_determinePixelRatio\",value:function _determinePixelRatio(){var ctx=this.getContext();if(ctx===undefined){throw new Error(\"Could not get canvax context\")}var numerator=1;if(typeof window!==\"undefined\"){numerator=window.devicePixelRatio||1}var denominator=ctx.webkitBackingStorePixelRatio||ctx.mozBackingStorePixelRatio||ctx.msBackingStorePixelRatio||ctx.oBackingStorePixelRatio||ctx.backingStorePixelRatio||1;return numerator/denominator}},{key:\"_setPixelRatio\",value:function _setPixelRatio(){this.pixelRatio=this._determinePixelRatio()}},{key:\"setTransform\",value:function setTransform(){var ctx=this.getContext();if(ctx===undefined){throw new Error(\"Could not get canvax context\")}ctx.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0)}},{key:\"_XconvertDOMtoCanvas\",value:function _XconvertDOMtoCanvas(x){return(x-this.body.view.translation.x)/this.body.view.scale}},{\nkey:\"_XconvertCanvasToDOM\",value:function _XconvertCanvasToDOM(x){return x*this.body.view.scale+this.body.view.translation.x}},{key:\"_YconvertDOMtoCanvas\",value:function _YconvertDOMtoCanvas(y){return(y-this.body.view.translation.y)/this.body.view.scale}},{key:\"_YconvertCanvasToDOM\",value:function _YconvertCanvasToDOM(y){return y*this.body.view.scale+this.body.view.translation.y}},{key:\"canvasToDOM\",value:function canvasToDOM(pos){return{x:this._XconvertCanvasToDOM(pos.x),y:this._YconvertCanvasToDOM(pos.y)}}},{key:\"DOMtoCanvas\",value:function DOMtoCanvas(pos){return{x:this._XconvertDOMtoCanvas(pos.x),y:this._YconvertDOMtoCanvas(pos.y)}}}]);return Canvas}();exports[\"default\"]=Canvas},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var NetworkUtil=__webpack_require__(76)[\"default\"];var View=function(){function View(body,canvas){var _this=this;(0,_classCallCheck3[\"default\"])(this,View);this.body=body;this.canvas=canvas;this.animationSpeed=1/this.renderRefreshRate;this.animationEasingFunction=\"easeInOutQuint\";this.easingTime=0;this.sourceScale=0;this.targetScale=0;this.sourceTranslation=0;this.targetTranslation=0;this.lockedOnNodeId=undefined;this.lockedOnNodeOffset=undefined;this.touchTime=0;this.viewFunction=undefined;this.body.emitter.on(\"fit\",this.fit.bind(this));this.body.emitter.on(\"animationFinished\",function(){_this.body.emitter.emit(\"_stopRendering\")});this.body.emitter.on(\"unlockNode\",this.releaseNode.bind(this))}(0,_createClass3[\"default\"])(View,[{key:\"setOptions\",value:function setOptions(){var options=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};this.options=options}},{key:\"fit\",value:function fit(){var options=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{nodes:[]};var initialZoom=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;var range=void 0;var zoomLevel=void 0;if(options.nodes===undefined||options.nodes.length===0){options.nodes=this.body.nodeIndices}if(initialZoom===true){var positionDefined=0;for(var nodeId in this.body.nodes){if(this.body.nodes.hasOwnProperty(nodeId)){var node=this.body.nodes[nodeId];if(node.predefinedPosition===true){positionDefined+=1}}}if(positionDefined>.5*this.body.nodeIndices.length){this.fit(options,false);return}range=NetworkUtil.getRange(this.body.nodes,options.nodes);var numberOfNodes=this.body.nodeIndices.length;zoomLevel=12.662/(numberOfNodes+7.4147)+.0964822;var factor=Math.min(this.canvas.frame.canvas.clientWidth/600,this.canvas.frame.canvas.clientHeight/600);zoomLevel*=factor}else{this.body.emitter.emit(\"_resizeNodes\");range=NetworkUtil.getRange(this.body.nodes,options.nodes);var xDistance=Math.abs(range.maxX-range.minX)*1.1;var yDistance=Math.abs(range.maxY-range.minY)*1.1;var xZoomLevel=this.canvas.frame.canvas.clientWidth/xDistance;var yZoomLevel=this.canvas.frame.canvas.clientHeight/yDistance;zoomLevel=xZoomLevel<=yZoomLevel?xZoomLevel:yZoomLevel}if(zoomLevel>1){zoomLevel=1}else if(zoomLevel===0){zoomLevel=1}var center=NetworkUtil.findCenter(range);var animationOptions={position:center,scale:zoomLevel,animation:options.animation};this.moveTo(animationOptions)}},{key:\"focus\",value:function focus(nodeId){var options=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};if(this.body.nodes[nodeId]!==undefined){var nodePosition={x:this.body.nodes[nodeId].x,y:this.body.nodes[nodeId].y};options.position=nodePosition;options.lockedOnNode=nodeId;this.moveTo(options)}else{console.log(\"Node: \"+nodeId+\" cannot be found.\")}}},{key:\"moveTo\",value:function moveTo(options){if(options===undefined){options={};return}if(options.offset===undefined){options.offset={x:0,y:0}}if(options.offset.x===undefined){options.offset.x=0}if(options.offset.y===undefined){options.offset.y=0}if(options.scale===undefined){options.scale=this.body.view.scale}if(options.position===undefined){options.position=this.getViewPosition()}if(options.animation===undefined){options.animation={duration:0}}if(options.animation===false){options.animation={duration:0}}if(options.animation===true){options.animation={}}if(options.animation.duration===undefined){options.animation.duration=1e3}if(options.animation.easingFunction===undefined){options.animation.easingFunction=\"easeInOutQuad\"}this.animateView(options)}},{key:\"animateView\",value:function animateView(options){if(options===undefined){return}this.animationEasingFunction=options.animation.easingFunction;this.releaseNode();if(options.locked===true){this.lockedOnNodeId=options.lockedOnNode;this.lockedOnNodeOffset=options.offset}if(this.easingTime!=0){this._transitionRedraw(true)}this.sourceScale=this.body.view.scale;this.sourceTranslation=this.body.view.translation;this.targetScale=options.scale;this.body.view.scale=this.targetScale;var viewCenter=this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight});var distanceFromCenter={x:viewCenter.x-options.position.x,y:viewCenter.y-options.position.y};this.targetTranslation={x:this.sourceTranslation.x+distanceFromCenter.x*this.targetScale+options.offset.x,y:this.sourceTranslation.y+distanceFromCenter.y*this.targetScale+options.offset.y};if(options.animation.duration===0){if(this.lockedOnNodeId!=undefined){this.viewFunction=this._lockedRedraw.bind(this);this.body.emitter.on(\"initRedraw\",this.viewFunction)}else{this.body.view.scale=this.targetScale;this.body.view.translation=this.targetTranslation;this.body.emitter.emit(\"_requestRedraw\")}}else{this.animationSpeed=1/(60*options.animation.duration*.001)||1/60;this.animationEasingFunction=options.animation.easingFunction;this.viewFunction=this._transitionRedraw.bind(this);this.body.emitter.on(\"initRedraw\",this.viewFunction);this.body.emitter.emit(\"_startRendering\")}}},{key:\"_lockedRedraw\",value:function _lockedRedraw(){var nodePosition={x:this.body.nodes[this.lockedOnNodeId].x,y:this.body.nodes[this.lockedOnNodeId].y};var viewCenter=this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight});var distanceFromCenter={x:viewCenter.x-nodePosition.x,y:viewCenter.y-nodePosition.y};var sourceTranslation=this.body.view.translation;var targetTranslation={x:sourceTranslation.x+distanceFromCenter.x*this.body.view.scale+this.lockedOnNodeOffset.x,y:sourceTranslation.y+distanceFromCenter.y*this.body.view.scale+this.lockedOnNodeOffset.y};this.body.view.translation=targetTranslation}},{key:\"releaseNode\",value:function releaseNode(){if(this.lockedOnNodeId!==undefined&&this.viewFunction!==undefined){this.body.emitter.off(\"initRedraw\",this.viewFunction);this.lockedOnNodeId=undefined;this.lockedOnNodeOffset=undefined}}},{key:\"_transitionRedraw\",value:function _transitionRedraw(){var finished=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;this.easingTime+=this.animationSpeed;this.easingTime=finished===true?1:this.easingTime;var progress=util.easingFunctions[this.animationEasingFunction](this.easingTime);this.body.view.scale=this.sourceScale+(this.targetScale-this.sourceScale)*progress;this.body.view.translation={x:this.sourceTranslation.x+(this.targetTranslation.x-this.sourceTranslation.x)*progress,y:this.sourceTranslation.y+(this.targetTranslation.y-this.sourceTranslation.y)*progress};if(this.easingTime>=1){this.body.emitter.off(\"initRedraw\",this.viewFunction);this.easingTime=0;if(this.lockedOnNodeId!=undefined){this.viewFunction=this._lockedRedraw.bind(this);this.body.emitter.on(\"initRedraw\",this.viewFunction)}this.body.emitter.emit(\"animationFinished\")}}},{key:\"getScale\",value:function getScale(){return this.body.view.scale}},{key:\"getViewPosition\",value:function getViewPosition(){return this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight})}}]);return View}();exports[\"default\"]=View},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var NavigationHandler=__webpack_require__(233)[\"default\"];var Popup=__webpack_require__(104)[\"default\"];var InteractionHandler=function(){function InteractionHandler(body,canvas,selectionHandler){(0,_classCallCheck3[\"default\"])(this,InteractionHandler);this.body=body;this.canvas=canvas;this.selectionHandler=selectionHandler;this.navigationHandler=new NavigationHandler(body,canvas);this.body.eventListeners.onTap=this.onTap.bind(this);this.body.eventListeners.onTouch=this.onTouch.bind(this);this.body.eventListeners.onDoubleTap=this.onDoubleTap.bind(this);this.body.eventListeners.onHold=this.onHold.bind(this);this.body.eventListeners.onDragStart=this.onDragStart.bind(this);this.body.eventListeners.onDrag=this.onDrag.bind(this);this.body.eventListeners.onDragEnd=this.onDragEnd.bind(this);this.body.eventListeners.onMouseWheel=this.onMouseWheel.bind(this);this.body.eventListeners.onPinch=this.onPinch.bind(this);this.body.eventListeners.onMouseMove=this.onMouseMove.bind(this);this.body.eventListeners.onRelease=this.onRelease.bind(this);this.body.eventListeners.onContext=this.onContext.bind(this);this.touchTime=0;this.drag={};this.pinch={};this.popup=undefined;this.popupObj=undefined;this.popupTimer=undefined;this.body.functions.getPointer=this.getPointer.bind(this);this.options={};this.defaultOptions={dragNodes:true,dragView:true,hover:false,keyboard:{enabled:false,speed:{x:10,y:10,zoom:.02},bindToWindow:true},navigationButtons:false,tooltipDelay:300,zoomView:true};util.extend(this.options,this.defaultOptions);this.bindEventListeners()}(0,_createClass3[\"default\"])(InteractionHandler,[{key:\"bindEventListeners\",value:function bindEventListeners(){var _this=this;this.body.emitter.on(\"destroy\",function(){clearTimeout(_this.popupTimer);delete _this.body.functions.getPointer})}},{key:\"setOptions\",value:function setOptions(options){if(options!==undefined){var fields=[\"hideEdgesOnDrag\",\"hideNodesOnDrag\",\"keyboard\",\"multiselect\",\"selectable\",\"selectConnectedEdges\"];util.selectiveNotDeepExtend(fields,this.options,options);util.mergeOptions(this.options,options,\"keyboard\");if(options.tooltip){util.extend(this.options.tooltip,options.tooltip);if(options.tooltip.color){this.options.tooltip.color=util.parseColor(options.tooltip.color)}}}this.navigationHandler.setOptions(this.options)}},{key:\"getPointer\",value:function getPointer(touch){return{x:touch.x-util.getAbsoluteLeft(this.canvas.frame.canvas),y:touch.y-util.getAbsoluteTop(this.canvas.frame.canvas)}}},{key:\"onTouch\",value:function onTouch(event){if((new Date).valueOf()-this.touchTime>50){this.drag.pointer=this.getPointer(event.center);this.drag.pinched=false;this.pinch.scale=this.body.view.scale;this.touchTime=(new Date).valueOf()}}},{key:\"onTap\",value:function onTap(event){var pointer=this.getPointer(event.center);var multiselect=this.selectionHandler.options.multiselect&&(event.changedPointers[0].ctrlKey||event.changedPointers[0].metaKey);this.checkSelectionChanges(pointer,event,multiselect);this.selectionHandler._generateClickEvent(\"click\",event,pointer)}},{key:\"onDoubleTap\",value:function onDoubleTap(event){var pointer=this.getPointer(event.center);this.selectionHandler._generateClickEvent(\"doubleClick\",event,pointer)}},{key:\"onHold\",value:function onHold(event){var pointer=this.getPointer(event.center);var multiselect=this.selectionHandler.options.multiselect;this.checkSelectionChanges(pointer,event,multiselect);this.selectionHandler._generateClickEvent(\"click\",event,pointer);this.selectionHandler._generateClickEvent(\"hold\",event,pointer)}},{key:\"onRelease\",value:function onRelease(event){if((new Date).valueOf()-this.touchTime>10){var pointer=this.getPointer(event.center);this.selectionHandler._generateClickEvent(\"release\",event,pointer);this.touchTime=(new Date).valueOf()}}},{key:\"onContext\",value:function onContext(event){var pointer=this.getPointer({x:event.clientX,y:event.clientY});this.selectionHandler._generateClickEvent(\"oncontext\",event,pointer)}},{key:\"checkSelectionChanges\",value:function checkSelectionChanges(pointer,event){var add=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;var previousSelection=this.selectionHandler.getSelection();var selected=false;if(add===true){selected=this.selectionHandler.selectAdditionalOnPoint(pointer)}else{selected=this.selectionHandler.selectOnPoint(pointer)}var currentSelection=this.selectionHandler.getSelection();var deselectedItems=this._determineDifference(previousSelection,currentSelection);var selectedItems=this._determineDifference(currentSelection,previousSelection);if(deselectedItems.edges.length>0){this.selectionHandler._generateClickEvent(\"deselectEdge\",event,pointer,previousSelection);selected=true}if(deselectedItems.nodes.length>0){this.selectionHandler._generateClickEvent(\"deselectNode\",event,pointer,previousSelection);selected=true}if(selectedItems.nodes.length>0){this.selectionHandler._generateClickEvent(\"selectNode\",event,pointer);selected=true}if(selectedItems.edges.length>0){this.selectionHandler._generateClickEvent(\"selectEdge\",event,pointer);selected=true}if(selected===true){this.selectionHandler._generateClickEvent(\"select\",event,pointer)}}},{key:\"_determineDifference\",value:function _determineDifference(firstSet,secondSet){var arrayDiff=function arrayDiff(firstArr,secondArr){var result=[];for(var i=0;i<firstArr.length;i++){var value=firstArr[i];if(secondArr.indexOf(value)===-1){result.push(value)}}return result};return{nodes:arrayDiff(firstSet.nodes,secondSet.nodes),edges:arrayDiff(firstSet.edges,secondSet.edges)}}},{key:\"onDragStart\",value:function onDragStart(event){if(this.drag.pointer===undefined){this.onTouch(event)}var node=this.selectionHandler.getNodeAt(this.drag.pointer);this.drag.dragging=true;this.drag.selection=[];this.drag.translation=util.extend({},this.body.view.translation);this.drag.nodeId=undefined;if(node!==undefined&&this.options.dragNodes===true){this.drag.nodeId=node.id;if(node.isSelected()===false){this.selectionHandler.unselectAll();this.selectionHandler.selectObject(node)}this.selectionHandler._generateClickEvent(\"dragStart\",event,this.drag.pointer);var selection=this.selectionHandler.selectionObj.nodes;for(var nodeId in selection){if(selection.hasOwnProperty(nodeId)){var object=selection[nodeId];var s={id:object.id,node:object,x:object.x,y:object.y,xFixed:object.options.fixed.x,yFixed:object.options.fixed.y};object.options.fixed.x=true;object.options.fixed.y=true;this.drag.selection.push(s)}}}else{this.selectionHandler._generateClickEvent(\"dragStart\",event,this.drag.pointer,undefined,true)}}},{key:\"onDrag\",value:function onDrag(event){var _this2=this;if(this.drag.pinched===true){return}this.body.emitter.emit(\"unlockNode\");var pointer=this.getPointer(event.center);var selection=this.drag.selection;if(selection&&selection.length&&this.options.dragNodes===true){this.selectionHandler._generateClickEvent(\"dragging\",event,pointer);var deltaX=pointer.x-this.drag.pointer.x;var deltaY=pointer.y-this.drag.pointer.y;selection.forEach(function(selection){var node=selection.node;if(selection.xFixed===false){node.x=_this2.canvas._XconvertDOMtoCanvas(_this2.canvas._XconvertCanvasToDOM(selection.x)+deltaX)}if(selection.yFixed===false){node.y=_this2.canvas._YconvertDOMtoCanvas(_this2.canvas._YconvertCanvasToDOM(selection.y)+deltaY)}});this.body.emitter.emit(\"startSimulation\")}else{if(this.options.dragView===true){this.selectionHandler._generateClickEvent(\"dragging\",event,pointer,undefined,true);if(this.drag.pointer===undefined){this.onDragStart(event);return}var diffX=pointer.x-this.drag.pointer.x;var diffY=pointer.y-this.drag.pointer.y;this.body.view.translation={x:this.drag.translation.x+diffX,y:this.drag.translation.y+diffY};this.body.emitter.emit(\"_requestRedraw\")}}}},{key:\"onDragEnd\",value:function onDragEnd(event){this.drag.dragging=false;var selection=this.drag.selection;if(selection&&selection.length){selection.forEach(function(s){s.node.options.fixed.x=s.xFixed;s.node.options.fixed.y=s.yFixed});this.selectionHandler._generateClickEvent(\"dragEnd\",event,this.getPointer(event.center));this.body.emitter.emit(\"startSimulation\")}else{this.selectionHandler._generateClickEvent(\"dragEnd\",event,this.getPointer(event.center),undefined,true);this.body.emitter.emit(\"_requestRedraw\")}}},{key:\"onPinch\",value:function onPinch(event){var pointer=this.getPointer(event.center);this.drag.pinched=true;if(this.pinch[\"scale\"]===undefined){this.pinch.scale=1}var scale=this.pinch.scale*event.scale;this.zoom(scale,pointer)}},{key:\"zoom\",value:function zoom(scale,pointer){if(this.options.zoomView===true){var scaleOld=this.body.view.scale;if(scale<1e-5){scale=1e-5}if(scale>10){scale=10}var preScaleDragPointer=undefined;if(this.drag!==undefined){if(this.drag.dragging===true){preScaleDragPointer=this.canvas.DOMtoCanvas(this.drag.pointer)}}var translation=this.body.view.translation;var scaleFrac=scale/scaleOld;var tx=(1-scaleFrac)*pointer.x+translation.x*scaleFrac;var ty=(1-scaleFrac)*pointer.y+translation.y*scaleFrac;this.body.view.scale=scale;this.body.view.translation={x:tx,y:ty};if(preScaleDragPointer!=undefined){var postScaleDragPointer=this.canvas.canvasToDOM(preScaleDragPointer);this.drag.pointer.x=postScaleDragPointer.x;this.drag.pointer.y=postScaleDragPointer.y}this.body.emitter.emit(\"_requestRedraw\");if(scaleOld<scale){this.body.emitter.emit(\"zoom\",{direction:\"+\",scale:this.body.view.scale,pointer:pointer})}else{this.body.emitter.emit(\"zoom\",{direction:\"-\",scale:this.body.view.scale,pointer:pointer})}}}},{key:\"onMouseWheel\",value:function onMouseWheel(event){if(this.options.zoomView===true){var delta=0;if(event.wheelDelta){delta=event.wheelDelta/120}else if(event.detail){delta=-event.detail/3}if(delta!==0){var scale=this.body.view.scale;var zoom=delta/10;if(delta<0){zoom=zoom/(1-zoom)}scale*=1+zoom;var pointer=this.getPointer({x:event.clientX,y:event.clientY});this.zoom(scale,pointer)}event.preventDefault()}}},{key:\"onMouseMove\",value:function onMouseMove(event){var _this3=this;var pointer=this.getPointer({x:event.clientX,y:event.clientY});var popupVisible=false;if(this.popup!==undefined){if(this.popup.hidden===false){this._checkHidePopup(pointer)}if(this.popup.hidden===false){popupVisible=true;this.popup.setPosition(pointer.x+3,pointer.y-5);this.popup.show()}}if(this.options.keyboard.bindToWindow===false&&this.options.keyboard.enabled===true){this.canvas.frame.focus()}if(popupVisible===false){if(this.popupTimer!==undefined){clearInterval(this.popupTimer);this.popupTimer=undefined}if(!this.drag.dragging){this.popupTimer=setTimeout(function(){return _this3._checkShowPopup(pointer)},this.options.tooltipDelay)}}if(this.options.hover===true){this.selectionHandler.hoverObject(event,pointer)}}},{key:\"_checkShowPopup\",value:function _checkShowPopup(pointer){var x=this.canvas._XconvertDOMtoCanvas(pointer.x);var y=this.canvas._YconvertDOMtoCanvas(pointer.y);var pointerObj={left:x,top:y,right:x,bottom:y};var previousPopupObjId=this.popupObj===undefined?undefined:this.popupObj.id;var nodeUnderCursor=false;var popupType=\"node\";if(this.popupObj===undefined){var nodeIndices=this.body.nodeIndices;var nodes=this.body.nodes;var node=void 0;var overlappingNodes=[];for(var i=0;i<nodeIndices.length;i++){node=nodes[nodeIndices[i]];if(node.isOverlappingWith(pointerObj)===true){if(node.getTitle()!==undefined){overlappingNodes.push(nodeIndices[i])}}}if(overlappingNodes.length>0){this.popupObj=nodes[overlappingNodes[overlappingNodes.length-1]];nodeUnderCursor=true}}if(this.popupObj===undefined&&nodeUnderCursor===false){var edgeIndices=this.body.edgeIndices;var edges=this.body.edges;var edge=void 0;var overlappingEdges=[];for(var _i=0;_i<edgeIndices.length;_i++){edge=edges[edgeIndices[_i]];if(edge.isOverlappingWith(pointerObj)===true){if(edge.connected===true&&edge.getTitle()!==undefined){overlappingEdges.push(edgeIndices[_i])}}}if(overlappingEdges.length>0){this.popupObj=edges[overlappingEdges[overlappingEdges.length-1]];popupType=\"edge\"}}if(this.popupObj!==undefined){if(this.popupObj.id!==previousPopupObjId){if(this.popup===undefined){this.popup=new Popup(this.canvas.frame)}this.popup.popupTargetType=popupType;this.popup.popupTargetId=this.popupObj.id;this.popup.setPosition(pointer.x+3,pointer.y-5);this.popup.setText(this.popupObj.getTitle());this.popup.show();this.body.emitter.emit(\"showPopup\",this.popupObj.id)}}else{if(this.popup!==undefined){this.popup.hide();this.body.emitter.emit(\"hidePopup\")}}}},{key:\"_checkHidePopup\",value:function _checkHidePopup(pointer){var pointerObj=this.selectionHandler._pointerToPositionObject(pointer);var stillOnObj=false;if(this.popup.popupTargetType===\"node\"){if(this.body.nodes[this.popup.popupTargetId]!==undefined){stillOnObj=this.body.nodes[this.popup.popupTargetId].isOverlappingWith(pointerObj);if(stillOnObj===true){var overNode=this.selectionHandler.getNodeAt(pointer);stillOnObj=overNode===undefined?false:overNode.id===this.popup.popupTargetId}}}else{if(this.selectionHandler.getNodeAt(pointer)===undefined){if(this.body.edges[this.popup.popupTargetId]!==undefined){stillOnObj=this.body.edges[this.popup.popupTargetId].isOverlappingWith(pointerObj)}}}if(stillOnObj===false){this.popupObj=undefined;this.popup.hide();this.body.emitter.emit(\"hidePopup\")}}}]);return InteractionHandler}();exports[\"default\"]=InteractionHandler},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Hammer=__webpack_require__(10);var hammerUtil=__webpack_require__(37);var keycharm=__webpack_require__(35);var NavigationHandler=function(){function NavigationHandler(body,canvas){var _this=this;(0,_classCallCheck3[\"default\"])(this,NavigationHandler);this.body=body;this.canvas=canvas;this.iconsCreated=false;this.navigationHammers=[];this.boundFunctions={};this.touchTime=0;this.activated=false;this.body.emitter.on(\"activate\",function(){_this.activated=true;_this.configureKeyboardBindings()});this.body.emitter.on(\"deactivate\",function(){_this.activated=false;_this.configureKeyboardBindings()});this.body.emitter.on(\"destroy\",function(){if(_this.keycharm!==undefined){_this.keycharm.destroy()}});this.options={}}(0,_createClass3[\"default\"])(NavigationHandler,[{key:\"setOptions\",value:function setOptions(options){if(options!==undefined){this.options=options;this.create()}}},{key:\"create\",value:function create(){if(this.options.navigationButtons===true){if(this.iconsCreated===false){this.loadNavigationElements()}}else if(this.iconsCreated===true){this.cleanNavigation()}this.configureKeyboardBindings()}},{key:\"cleanNavigation\",value:function cleanNavigation(){if(this.navigationHammers.length!=0){for(var i=0;i<this.navigationHammers.length;i++){this.navigationHammers[i].destroy()}this.navigationHammers=[]}if(this.navigationDOM&&this.navigationDOM[\"wrapper\"]&&this.navigationDOM[\"wrapper\"].parentNode){this.navigationDOM[\"wrapper\"].parentNode.removeChild(this.navigationDOM[\"wrapper\"])}this.iconsCreated=false}},{key:\"loadNavigationElements\",value:function loadNavigationElements(){var _this2=this;this.cleanNavigation();this.navigationDOM={};var navigationDivs=[\"up\",\"down\",\"left\",\"right\",\"zoomIn\",\"zoomOut\",\"zoomExtends\"];var navigationDivActions=[\"_moveUp\",\"_moveDown\",\"_moveLeft\",\"_moveRight\",\"_zoomIn\",\"_zoomOut\",\"_fit\"];this.navigationDOM[\"wrapper\"]=document.createElement(\"div\");this.navigationDOM[\"wrapper\"].className=\"vis-navigation\";this.canvas.frame.appendChild(this.navigationDOM[\"wrapper\"]);for(var i=0;i<navigationDivs.length;i++){this.navigationDOM[navigationDivs[i]]=document.createElement(\"div\");this.navigationDOM[navigationDivs[i]].className=\"vis-button vis-\"+navigationDivs[i];this.navigationDOM[\"wrapper\"].appendChild(this.navigationDOM[navigationDivs[i]]);var hammer=new Hammer(this.navigationDOM[navigationDivs[i]]);if(navigationDivActions[i]===\"_fit\"){hammerUtil.onTouch(hammer,this._fit.bind(this))}else{hammerUtil.onTouch(hammer,this.bindToRedraw.bind(this,navigationDivActions[i]))}this.navigationHammers.push(hammer)}var hammerFrame=new Hammer(this.canvas.frame);hammerUtil.onRelease(hammerFrame,function(){_this2._stopMovement()});this.navigationHammers.push(hammerFrame);this.iconsCreated=true}},{key:\"bindToRedraw\",value:function bindToRedraw(action){if(this.boundFunctions[action]===undefined){this.boundFunctions[action]=this[action].bind(this);this.body.emitter.on(\"initRedraw\",this.boundFunctions[action]);this.body.emitter.emit(\"_startRendering\")}}},{key:\"unbindFromRedraw\",value:function unbindFromRedraw(action){if(this.boundFunctions[action]!==undefined){this.body.emitter.off(\"initRedraw\",this.boundFunctions[action]);this.body.emitter.emit(\"_stopRendering\");delete this.boundFunctions[action]}}},{key:\"_fit\",value:function _fit(){if((new Date).valueOf()-this.touchTime>700){this.body.emitter.emit(\"fit\",{duration:700});this.touchTime=(new Date).valueOf()}}},{key:\"_stopMovement\",value:function _stopMovement(){for(var boundAction in this.boundFunctions){if(this.boundFunctions.hasOwnProperty(boundAction)){this.body.emitter.off(\"initRedraw\",this.boundFunctions[boundAction]);this.body.emitter.emit(\"_stopRendering\")}}this.boundFunctions={}}},{key:\"_moveUp\",value:function _moveUp(){this.body.view.translation.y+=this.options.keyboard.speed.y}},{key:\"_moveDown\",value:function _moveDown(){this.body.view.translation.y-=this.options.keyboard.speed.y}},{key:\"_moveLeft\",value:function _moveLeft(){this.body.view.translation.x+=this.options.keyboard.speed.x}},{key:\"_moveRight\",value:function _moveRight(){this.body.view.translation.x-=this.options.keyboard.speed.x}},{key:\"_zoomIn\",value:function _zoomIn(){var scaleOld=this.body.view.scale;var scale=this.body.view.scale*(1+this.options.keyboard.speed.zoom);var translation=this.body.view.translation;var scaleFrac=scale/scaleOld;var tx=(1-scaleFrac)*this.canvas.canvasViewCenter.x+translation.x*scaleFrac;var ty=(1-scaleFrac)*this.canvas.canvasViewCenter.y+translation.y*scaleFrac;this.body.view.scale=scale;this.body.view.translation={x:tx,y:ty};this.body.emitter.emit(\"zoom\",{direction:\"+\",scale:this.body.view.scale,pointer:null})}},{key:\"_zoomOut\",value:function _zoomOut(){var scaleOld=this.body.view.scale;var scale=this.body.view.scale/(1+this.options.keyboard.speed.zoom);var translation=this.body.view.translation;var scaleFrac=scale/scaleOld;var tx=(1-scaleFrac)*this.canvas.canvasViewCenter.x+translation.x*scaleFrac;var ty=(1-scaleFrac)*this.canvas.canvasViewCenter.y+translation.y*scaleFrac;this.body.view.scale=scale;this.body.view.translation={x:tx,y:ty};this.body.emitter.emit(\"zoom\",{direction:\"-\",scale:this.body.view.scale,pointer:null})}},{key:\"configureKeyboardBindings\",value:function configureKeyboardBindings(){var _this3=this;if(this.keycharm!==undefined){this.keycharm.destroy()}if(this.options.keyboard.enabled===true){if(this.options.keyboard.bindToWindow===true){this.keycharm=keycharm({container:window,preventDefault:true})}else{this.keycharm=keycharm({container:this.canvas.frame,preventDefault:true})}this.keycharm.reset();if(this.activated===true){this.keycharm.bind(\"up\",function(){_this3.bindToRedraw(\"_moveUp\")},\"keydown\");this.keycharm.bind(\"down\",function(){_this3.bindToRedraw(\"_moveDown\")},\"keydown\");this.keycharm.bind(\"left\",function(){_this3.bindToRedraw(\"_moveLeft\")},\"keydown\");this.keycharm.bind(\"right\",function(){_this3.bindToRedraw(\"_moveRight\")},\"keydown\");this.keycharm.bind(\"=\",function(){_this3.bindToRedraw(\"_zoomIn\")},\"keydown\");this.keycharm.bind(\"num+\",function(){_this3.bindToRedraw(\"_zoomIn\")},\"keydown\");this.keycharm.bind(\"num-\",function(){_this3.bindToRedraw(\"_zoomOut\")},\"keydown\");this.keycharm.bind(\"-\",function(){_this3.bindToRedraw(\"_zoomOut\")},\"keydown\");this.keycharm.bind(\"[\",function(){_this3.bindToRedraw(\"_zoomOut\")},\"keydown\");this.keycharm.bind(\"]\",function(){_this3.bindToRedraw(\"_zoomIn\")},\"keydown\");this.keycharm.bind(\"pageup\",function(){_this3.bindToRedraw(\"_zoomIn\")},\"keydown\");this.keycharm.bind(\"pagedown\",function(){_this3.bindToRedraw(\"_zoomOut\")},\"keydown\");this.keycharm.bind(\"up\",function(){_this3.unbindFromRedraw(\"_moveUp\")},\"keyup\");this.keycharm.bind(\"down\",function(){_this3.unbindFromRedraw(\"_moveDown\")},\"keyup\");this.keycharm.bind(\"left\",function(){_this3.unbindFromRedraw(\"_moveLeft\")},\"keyup\");this.keycharm.bind(\"right\",function(){_this3.unbindFromRedraw(\"_moveRight\")},\"keyup\");this.keycharm.bind(\"=\",function(){_this3.unbindFromRedraw(\"_zoomIn\")},\"keyup\");this.keycharm.bind(\"num+\",function(){_this3.unbindFromRedraw(\"_zoomIn\")},\"keyup\");this.keycharm.bind(\"num-\",function(){_this3.unbindFromRedraw(\"_zoomOut\")},\"keyup\");this.keycharm.bind(\"-\",function(){_this3.unbindFromRedraw(\"_zoomOut\")},\"keyup\");this.keycharm.bind(\"[\",function(){_this3.unbindFromRedraw(\"_zoomOut\")},\"keyup\");this.keycharm.bind(\"]\",function(){_this3.unbindFromRedraw(\"_zoomIn\")},\"keyup\");this.keycharm.bind(\"pageup\",function(){_this3.unbindFromRedraw(\"_zoomIn\")},\"keyup\");this.keycharm.bind(\"pagedown\",function(){_this3.unbindFromRedraw(\"_zoomOut\")},\"keyup\")}}}}]);return NavigationHandler}();exports[\"default\"]=NavigationHandler},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Node=__webpack_require__(47)[\"default\"];var Edge=__webpack_require__(74)[\"default\"];var util=__webpack_require__(2);var SelectionHandler=function(){function SelectionHandler(body,canvas){var _this=this;(0,_classCallCheck3[\"default\"])(this,SelectionHandler);this.body=body;this.canvas=canvas;this.selectionObj={nodes:[],edges:[]};this.hoverObj={nodes:{},edges:{}};this.options={};this.defaultOptions={multiselect:false,selectable:true,selectConnectedEdges:true,hoverConnectedEdges:true};util.extend(this.options,this.defaultOptions);this.body.emitter.on(\"_dataChanged\",function(){_this.updateSelection()})}(0,_createClass3[\"default\"])(SelectionHandler,[{key:\"setOptions\",value:function setOptions(options){if(options!==undefined){var fields=[\"multiselect\",\"hoverConnectedEdges\",\"selectable\",\"selectConnectedEdges\"];util.selectiveDeepExtend(fields,this.options,options)}}},{key:\"selectOnPoint\",value:function selectOnPoint(pointer){var selected=false;if(this.options.selectable===true){var obj=this.getNodeAt(pointer)||this.getEdgeAt(pointer);this.unselectAll();if(obj!==undefined){selected=this.selectObject(obj)}this.body.emitter.emit(\"_requestRedraw\")}return selected}},{key:\"selectAdditionalOnPoint\",value:function selectAdditionalOnPoint(pointer){var selectionChanged=false;if(this.options.selectable===true){var obj=this.getNodeAt(pointer)||this.getEdgeAt(pointer);if(obj!==undefined){selectionChanged=true;if(obj.isSelected()===true){this.deselectObject(obj)}else{this.selectObject(obj)}this.body.emitter.emit(\"_requestRedraw\")}}return selectionChanged}},{key:\"_initBaseEvent\",value:function _initBaseEvent(event,pointer){var properties={};properties[\"pointer\"]={DOM:{\nx:pointer.x,y:pointer.y},canvas:this.canvas.DOMtoCanvas(pointer)};properties[\"event\"]=event;return properties}},{key:\"_generateClickEvent\",value:function _generateClickEvent(eventType,event,pointer,oldSelection){var emptySelection=arguments.length>4&&arguments[4]!==undefined?arguments[4]:false;var properties=this._initBaseEvent(event,pointer);if(emptySelection===true){properties.nodes=[];properties.edges=[]}else{var tmp=this.getSelection();properties.nodes=tmp.nodes;properties.edges=tmp.edges}if(oldSelection!==undefined){properties[\"previousSelection\"]=oldSelection}if(eventType==\"click\"){properties.items=this.getClickedItems(pointer)}this.body.emitter.emit(eventType,properties)}},{key:\"selectObject\",value:function selectObject(obj){var highlightEdges=arguments.length>1&&arguments[1]!==undefined?arguments[1]:this.options.selectConnectedEdges;if(obj!==undefined){if(obj instanceof Node){if(highlightEdges===true){this._selectConnectedEdges(obj)}}obj.select();this._addToSelection(obj);return true}return false}},{key:\"deselectObject\",value:function deselectObject(obj){if(obj.isSelected()===true){obj.selected=false;this._removeFromSelection(obj)}}},{key:\"_getAllNodesOverlappingWith\",value:function _getAllNodesOverlappingWith(object){var overlappingNodes=[];var nodes=this.body.nodes;for(var i=0;i<this.body.nodeIndices.length;i++){var nodeId=this.body.nodeIndices[i];if(nodes[nodeId].isOverlappingWith(object)){overlappingNodes.push(nodeId)}}return overlappingNodes}},{key:\"_pointerToPositionObject\",value:function _pointerToPositionObject(pointer){var canvasPos=this.canvas.DOMtoCanvas(pointer);return{left:canvasPos.x-1,top:canvasPos.y+1,right:canvasPos.x+1,bottom:canvasPos.y-1}}},{key:\"getNodeAt\",value:function getNodeAt(pointer){var returnNode=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;var positionObject=this._pointerToPositionObject(pointer);var overlappingNodes=this._getAllNodesOverlappingWith(positionObject);if(overlappingNodes.length>0){if(returnNode===true){return this.body.nodes[overlappingNodes[overlappingNodes.length-1]]}else{return overlappingNodes[overlappingNodes.length-1]}}else{return undefined}}},{key:\"_getEdgesOverlappingWith\",value:function _getEdgesOverlappingWith(object,overlappingEdges){var edges=this.body.edges;for(var i=0;i<this.body.edgeIndices.length;i++){var edgeId=this.body.edgeIndices[i];if(edges[edgeId].isOverlappingWith(object)){overlappingEdges.push(edgeId)}}}},{key:\"_getAllEdgesOverlappingWith\",value:function _getAllEdgesOverlappingWith(object){var overlappingEdges=[];this._getEdgesOverlappingWith(object,overlappingEdges);return overlappingEdges}},{key:\"getEdgeAt\",value:function getEdgeAt(pointer){var returnEdge=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;var canvasPos=this.canvas.DOMtoCanvas(pointer);var mindist=10;var overlappingEdge=null;var edges=this.body.edges;for(var i=0;i<this.body.edgeIndices.length;i++){var edgeId=this.body.edgeIndices[i];var edge=edges[edgeId];if(edge.connected){var xFrom=edge.from.x;var yFrom=edge.from.y;var xTo=edge.to.x;var yTo=edge.to.y;var dist=edge.edgeType.getDistanceToEdge(xFrom,yFrom,xTo,yTo,canvasPos.x,canvasPos.y);if(dist<mindist){overlappingEdge=edgeId;mindist=dist}}}if(overlappingEdge!==null){if(returnEdge===true){return this.body.edges[overlappingEdge]}else{return overlappingEdge}}else{return undefined}}},{key:\"_addToSelection\",value:function _addToSelection(obj){if(obj instanceof Node){this.selectionObj.nodes[obj.id]=obj}else{this.selectionObj.edges[obj.id]=obj}}},{key:\"_addToHover\",value:function _addToHover(obj){if(obj instanceof Node){this.hoverObj.nodes[obj.id]=obj}else{this.hoverObj.edges[obj.id]=obj}}},{key:\"_removeFromSelection\",value:function _removeFromSelection(obj){if(obj instanceof Node){delete this.selectionObj.nodes[obj.id];this._unselectConnectedEdges(obj)}else{delete this.selectionObj.edges[obj.id]}}},{key:\"unselectAll\",value:function unselectAll(){for(var nodeId in this.selectionObj.nodes){if(this.selectionObj.nodes.hasOwnProperty(nodeId)){this.selectionObj.nodes[nodeId].unselect()}}for(var edgeId in this.selectionObj.edges){if(this.selectionObj.edges.hasOwnProperty(edgeId)){this.selectionObj.edges[edgeId].unselect()}}this.selectionObj={nodes:{},edges:{}}}},{key:\"_getSelectedNodeCount\",value:function _getSelectedNodeCount(){var count=0;for(var nodeId in this.selectionObj.nodes){if(this.selectionObj.nodes.hasOwnProperty(nodeId)){count+=1}}return count}},{key:\"_getSelectedNode\",value:function _getSelectedNode(){for(var nodeId in this.selectionObj.nodes){if(this.selectionObj.nodes.hasOwnProperty(nodeId)){return this.selectionObj.nodes[nodeId]}}return undefined}},{key:\"_getSelectedEdge\",value:function _getSelectedEdge(){for(var edgeId in this.selectionObj.edges){if(this.selectionObj.edges.hasOwnProperty(edgeId)){return this.selectionObj.edges[edgeId]}}return undefined}},{key:\"_getSelectedEdgeCount\",value:function _getSelectedEdgeCount(){var count=0;for(var edgeId in this.selectionObj.edges){if(this.selectionObj.edges.hasOwnProperty(edgeId)){count+=1}}return count}},{key:\"_getSelectedObjectCount\",value:function _getSelectedObjectCount(){var count=0;for(var nodeId in this.selectionObj.nodes){if(this.selectionObj.nodes.hasOwnProperty(nodeId)){count+=1}}for(var edgeId in this.selectionObj.edges){if(this.selectionObj.edges.hasOwnProperty(edgeId)){count+=1}}return count}},{key:\"_selectionIsEmpty\",value:function _selectionIsEmpty(){for(var nodeId in this.selectionObj.nodes){if(this.selectionObj.nodes.hasOwnProperty(nodeId)){return false}}for(var edgeId in this.selectionObj.edges){if(this.selectionObj.edges.hasOwnProperty(edgeId)){return false}}return true}},{key:\"_clusterInSelection\",value:function _clusterInSelection(){for(var nodeId in this.selectionObj.nodes){if(this.selectionObj.nodes.hasOwnProperty(nodeId)){if(this.selectionObj.nodes[nodeId].clusterSize>1){return true}}}return false}},{key:\"_selectConnectedEdges\",value:function _selectConnectedEdges(node){for(var i=0;i<node.edges.length;i++){var edge=node.edges[i];edge.select();this._addToSelection(edge)}}},{key:\"_hoverConnectedEdges\",value:function _hoverConnectedEdges(node){for(var i=0;i<node.edges.length;i++){var edge=node.edges[i];edge.hover=true;this._addToHover(edge)}}},{key:\"_unselectConnectedEdges\",value:function _unselectConnectedEdges(node){for(var i=0;i<node.edges.length;i++){var edge=node.edges[i];edge.unselect();this._removeFromSelection(edge)}}},{key:\"emitBlurEvent\",value:function emitBlurEvent(event,pointer,object){var properties=this._initBaseEvent(event,pointer);if(object.hover===true){object.hover=false;if(object instanceof Node){properties.node=object.id;this.body.emitter.emit(\"blurNode\",properties)}else{properties.edge=object.id;this.body.emitter.emit(\"blurEdge\",properties)}}}},{key:\"emitHoverEvent\",value:function emitHoverEvent(event,pointer,object){var properties=this._initBaseEvent(event,pointer);var hoverChanged=false;if(object.hover===false){object.hover=true;this._addToHover(object);hoverChanged=true;if(object instanceof Node){properties.node=object.id;this.body.emitter.emit(\"hoverNode\",properties)}else{properties.edge=object.id;this.body.emitter.emit(\"hoverEdge\",properties)}}return hoverChanged}},{key:\"hoverObject\",value:function hoverObject(event,pointer){var object=this.getNodeAt(pointer);if(object===undefined){object=this.getEdgeAt(pointer)}var hoverChanged=false;for(var nodeId in this.hoverObj.nodes){if(this.hoverObj.nodes.hasOwnProperty(nodeId)){if(object===undefined||object instanceof Node&&object.id!=nodeId||object instanceof Edge){this.emitBlurEvent(event,pointer,this.hoverObj.nodes[nodeId]);delete this.hoverObj.nodes[nodeId];hoverChanged=true}}}for(var edgeId in this.hoverObj.edges){if(this.hoverObj.edges.hasOwnProperty(edgeId)){if(hoverChanged===true){this.hoverObj.edges[edgeId].hover=false;delete this.hoverObj.edges[edgeId]}else if(object===undefined||object instanceof Edge&&object.id!=edgeId||object instanceof Node&&!object.hover){this.emitBlurEvent(event,pointer,this.hoverObj.edges[edgeId]);delete this.hoverObj.edges[edgeId];hoverChanged=true}}}if(object!==undefined){hoverChanged=hoverChanged||this.emitHoverEvent(event,pointer,object);if(object instanceof Node&&this.options.hoverConnectedEdges===true){this._hoverConnectedEdges(object)}}if(hoverChanged===true){this.body.emitter.emit(\"_requestRedraw\")}}},{key:\"getSelection\",value:function getSelection(){var nodeIds=this.getSelectedNodes();var edgeIds=this.getSelectedEdges();return{nodes:nodeIds,edges:edgeIds}}},{key:\"getSelectedNodes\",value:function getSelectedNodes(){var idArray=[];if(this.options.selectable===true){for(var nodeId in this.selectionObj.nodes){if(this.selectionObj.nodes.hasOwnProperty(nodeId)){idArray.push(this.selectionObj.nodes[nodeId].id)}}}return idArray}},{key:\"getSelectedEdges\",value:function getSelectedEdges(){var idArray=[];if(this.options.selectable===true){for(var edgeId in this.selectionObj.edges){if(this.selectionObj.edges.hasOwnProperty(edgeId)){idArray.push(this.selectionObj.edges[edgeId].id)}}}return idArray}},{key:\"setSelection\",value:function setSelection(selection){var options=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var i=void 0,id=void 0;if(!selection||!selection.nodes&&!selection.edges)throw\"Selection must be an object with nodes and/or edges properties\";if(options.unselectAll||options.unselectAll===undefined){this.unselectAll()}if(selection.nodes){for(i=0;i<selection.nodes.length;i++){id=selection.nodes[i];var node=this.body.nodes[id];if(!node){throw new RangeError('Node with id \"'+id+'\" not found')}this.selectObject(node,options.highlightEdges)}}if(selection.edges){for(i=0;i<selection.edges.length;i++){id=selection.edges[i];var edge=this.body.edges[id];if(!edge){throw new RangeError('Edge with id \"'+id+'\" not found')}this.selectObject(edge)}}this.body.emitter.emit(\"_requestRedraw\")}},{key:\"selectNodes\",value:function selectNodes(selection){var highlightEdges=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;if(!selection||selection.length===undefined)throw\"Selection must be an array with ids\";this.setSelection({nodes:selection},{highlightEdges:highlightEdges})}},{key:\"selectEdges\",value:function selectEdges(selection){if(!selection||selection.length===undefined)throw\"Selection must be an array with ids\";this.setSelection({edges:selection})}},{key:\"updateSelection\",value:function updateSelection(){for(var nodeId in this.selectionObj.nodes){if(this.selectionObj.nodes.hasOwnProperty(nodeId)){if(!this.body.nodes.hasOwnProperty(nodeId)){delete this.selectionObj.nodes[nodeId]}}}for(var edgeId in this.selectionObj.edges){if(this.selectionObj.edges.hasOwnProperty(edgeId)){if(!this.body.edges.hasOwnProperty(edgeId)){delete this.selectionObj.edges[edgeId]}}}}},{key:\"getClickedItems\",value:function getClickedItems(pointer){var point=this.canvas.DOMtoCanvas(pointer);var items=[];var nodeIndices=this.body.nodeIndices;var nodes=this.body.nodes;for(var i=nodeIndices.length-1;i>=0;i--){var node=nodes[nodeIndices[i]];var ret=node.getItemsOnPoint(point);items.push.apply(items,ret)}var edgeIndices=this.body.edgeIndices;var edges=this.body.edges;for(var _i=edgeIndices.length-1;_i>=0;_i--){var edge=edges[edgeIndices[_i]];var _ret=edge.getItemsOnPoint(point);items.push.apply(items,_ret)}return items}}]);return SelectionHandler}();exports[\"default\"]=SelectionHandler},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _slicedToArray2=__webpack_require__(30);var _slicedToArray3=_interopRequireDefault(_slicedToArray2);var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);var _keys=__webpack_require__(8);var _keys2=_interopRequireDefault(_keys);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var NetworkUtil=__webpack_require__(76)[\"default\"];var _require=__webpack_require__(236),HorizontalStrategy=_require.HorizontalStrategy,VerticalStrategy=_require.VerticalStrategy;var HierarchicalStatus=function(){function HierarchicalStatus(){(0,_classCallCheck3[\"default\"])(this,HierarchicalStatus);this.childrenReference={};this.parentReference={};this.trees={};this.distributionOrdering={};this.levels={};this.distributionIndex={};this.isTree=false;this.treeIndex=-1}(0,_createClass3[\"default\"])(HierarchicalStatus,[{key:\"addRelation\",value:function addRelation(parentNodeId,childNodeId){if(this.childrenReference[parentNodeId]===undefined){this.childrenReference[parentNodeId]=[]}this.childrenReference[parentNodeId].push(childNodeId);if(this.parentReference[childNodeId]===undefined){this.parentReference[childNodeId]=[]}this.parentReference[childNodeId].push(parentNodeId)}},{key:\"checkIfTree\",value:function checkIfTree(){for(var i in this.parentReference){if(this.parentReference[i].length>1){this.isTree=false;return}}this.isTree=true}},{key:\"numTrees\",value:function numTrees(){return this.treeIndex+1}},{key:\"setTreeIndex\",value:function setTreeIndex(node,treeId){if(treeId===undefined)return;if(this.trees[node.id]===undefined){this.trees[node.id]=treeId;this.treeIndex=Math.max(treeId,this.treeIndex)}}},{key:\"ensureLevel\",value:function ensureLevel(nodeId){if(this.levels[nodeId]===undefined){this.levels[nodeId]=0}}},{key:\"getMaxLevel\",value:function getMaxLevel(nodeId){var _this=this;var accumulator={};var _getMaxLevel=function _getMaxLevel(nodeId){if(accumulator[nodeId]!==undefined){return accumulator[nodeId]}var level=_this.levels[nodeId];if(_this.childrenReference[nodeId]){var children=_this.childrenReference[nodeId];if(children.length>0){for(var i=0;i<children.length;i++){level=Math.max(level,_getMaxLevel(children[i]))}}}accumulator[nodeId]=level;return level};return _getMaxLevel(nodeId)}},{key:\"levelDownstream\",value:function levelDownstream(nodeA,nodeB){if(this.levels[nodeB.id]===undefined){if(this.levels[nodeA.id]===undefined){this.levels[nodeA.id]=0}this.levels[nodeB.id]=this.levels[nodeA.id]+1}}},{key:\"setMinLevelToZero\",value:function setMinLevelToZero(nodes){var minLevel=1e9;for(var nodeId in nodes){if(nodes.hasOwnProperty(nodeId)){if(this.levels[nodeId]!==undefined){minLevel=Math.min(this.levels[nodeId],minLevel)}}}for(var _nodeId in nodes){if(nodes.hasOwnProperty(_nodeId)){if(this.levels[_nodeId]!==undefined){this.levels[_nodeId]-=minLevel}}}}},{key:\"getTreeSize\",value:function getTreeSize(nodes,index){var min_x=1e9;var max_x=-1e9;var min_y=1e9;var max_y=-1e9;for(var nodeId in this.trees){if(this.trees.hasOwnProperty(nodeId)){if(this.trees[nodeId]===index){var node=nodes[nodeId];min_x=Math.min(node.x,min_x);max_x=Math.max(node.x,max_x);min_y=Math.min(node.y,min_y);max_y=Math.max(node.y,max_y)}}}return{min_x:min_x,max_x:max_x,min_y:min_y,max_y:max_y}}},{key:\"hasSameParent\",value:function hasSameParent(node1,node2){var parents1=this.parentReference[node1.id];var parents2=this.parentReference[node2.id];if(parents1===undefined||parents2===undefined){return false}for(var i=0;i<parents1.length;i++){for(var j=0;j<parents2.length;j++){if(parents1[i]==parents2[j]){return true}}}return false}},{key:\"inSameSubNetwork\",value:function inSameSubNetwork(node1,node2){return this.trees[node1.id]===this.trees[node2.id]}},{key:\"getLevels\",value:function getLevels(){return(0,_keys2[\"default\"])(this.distributionOrdering)}},{key:\"addToOrdering\",value:function addToOrdering(node,level){if(this.distributionOrdering[level]===undefined){this.distributionOrdering[level]=[]}var isPresent=false;var curLevel=this.distributionOrdering[level];for(var n in curLevel){if(curLevel[n]===node){isPresent=true;break}}if(!isPresent){this.distributionOrdering[level].push(node);this.distributionIndex[node.id]=this.distributionOrdering[level].length-1}}}]);return HierarchicalStatus}();var LayoutEngine=function(){function LayoutEngine(body){(0,_classCallCheck3[\"default\"])(this,LayoutEngine);this.body=body;this.initialRandomSeed=Math.round(Math.random()*1e6);this.randomSeed=this.initialRandomSeed;this.setPhysics=false;this.options={};this.optionsBackup={physics:{}};this.defaultOptions={randomSeed:undefined,improvedLayout:true,hierarchical:{enabled:false,levelSeparation:150,nodeSpacing:100,treeSpacing:200,blockShifting:true,edgeMinimization:true,parentCentralization:true,direction:\"UD\",sortMethod:\"hubsize\"}};util.extend(this.options,this.defaultOptions);this.bindEventListeners()}(0,_createClass3[\"default\"])(LayoutEngine,[{key:\"bindEventListeners\",value:function bindEventListeners(){var _this2=this;this.body.emitter.on(\"_dataChanged\",function(){_this2.setupHierarchicalLayout()});this.body.emitter.on(\"_dataLoaded\",function(){_this2.layoutNetwork()});this.body.emitter.on(\"_resetHierarchicalLayout\",function(){_this2.setupHierarchicalLayout()});this.body.emitter.on(\"_adjustEdgesForHierarchicalLayout\",function(){if(_this2.options.hierarchical.enabled!==true){return}var type=_this2.direction.curveType();_this2.body.emitter.emit(\"_forceDisableDynamicCurves\",type,false)})}},{key:\"setOptions\",value:function setOptions(options,allOptions){if(options!==undefined){var hierarchical=this.options.hierarchical;var prevHierarchicalState=hierarchical.enabled;util.selectiveDeepExtend([\"randomSeed\",\"improvedLayout\"],this.options,options);util.mergeOptions(this.options,options,\"hierarchical\");if(options.randomSeed!==undefined){this.initialRandomSeed=options.randomSeed}if(hierarchical.enabled===true){if(prevHierarchicalState===true){this.body.emitter.emit(\"refresh\",true)}if(hierarchical.direction===\"RL\"||hierarchical.direction===\"DU\"){if(hierarchical.levelSeparation>0){hierarchical.levelSeparation*=-1}}else{if(hierarchical.levelSeparation<0){hierarchical.levelSeparation*=-1}}this.setDirectionStrategy();this.body.emitter.emit(\"_resetHierarchicalLayout\");return this.adaptAllOptionsForHierarchicalLayout(allOptions)}else{if(prevHierarchicalState===true){this.body.emitter.emit(\"refresh\");return util.deepExtend(allOptions,this.optionsBackup)}}}return allOptions}},{key:\"adaptAllOptionsForHierarchicalLayout\",value:function adaptAllOptionsForHierarchicalLayout(allOptions){if(this.options.hierarchical.enabled===true){var backupPhysics=this.optionsBackup.physics;if(allOptions.physics===undefined||allOptions.physics===true){allOptions.physics={enabled:backupPhysics.enabled===undefined?true:backupPhysics.enabled,solver:\"hierarchicalRepulsion\"};backupPhysics.enabled=backupPhysics.enabled===undefined?true:backupPhysics.enabled;backupPhysics.solver=backupPhysics.solver||\"barnesHut\"}else if((0,_typeof3[\"default\"])(allOptions.physics)===\"object\"){backupPhysics.enabled=allOptions.physics.enabled===undefined?true:allOptions.physics.enabled;backupPhysics.solver=allOptions.physics.solver||\"barnesHut\";allOptions.physics.solver=\"hierarchicalRepulsion\"}else if(allOptions.physics!==false){backupPhysics.solver=\"barnesHut\";allOptions.physics={solver:\"hierarchicalRepulsion\"}}var type=this.direction.curveType();if(allOptions.edges===undefined){this.optionsBackup.edges={smooth:{enabled:true,type:\"dynamic\"}};allOptions.edges={smooth:false}}else if(allOptions.edges.smooth===undefined){this.optionsBackup.edges={smooth:{enabled:true,type:\"dynamic\"}};allOptions.edges.smooth=false}else{if(typeof allOptions.edges.smooth===\"boolean\"){this.optionsBackup.edges={smooth:allOptions.edges.smooth};allOptions.edges.smooth={enabled:allOptions.edges.smooth,type:type}}else{var smooth=allOptions.edges.smooth;if(smooth.type!==undefined&&smooth.type!==\"dynamic\"){type=smooth.type}this.optionsBackup.edges={smooth:smooth.enabled===undefined?true:smooth.enabled,type:smooth.type===undefined?\"dynamic\":smooth.type,roundness:smooth.roundness===undefined?.5:smooth.roundness,forceDirection:smooth.forceDirection===undefined?false:smooth.forceDirection};allOptions.edges.smooth={enabled:smooth.enabled===undefined?true:smooth.enabled,type:type,roundness:smooth.roundness===undefined?.5:smooth.roundness,forceDirection:smooth.forceDirection===undefined?false:smooth.forceDirection}}}this.body.emitter.emit(\"_forceDisableDynamicCurves\",type)}return allOptions}},{key:\"seededRandom\",value:function seededRandom(){var x=Math.sin(this.randomSeed++)*1e4;return x-Math.floor(x)}},{key:\"positionInitially\",value:function positionInitially(nodesArray){if(this.options.hierarchical.enabled!==true){this.randomSeed=this.initialRandomSeed;var radius=nodesArray.length+50;for(var i=0;i<nodesArray.length;i++){var node=nodesArray[i];var angle=2*Math.PI*this.seededRandom();if(node.x===undefined){node.x=radius*Math.cos(angle)}if(node.y===undefined){node.y=radius*Math.sin(angle)}}}}},{key:\"layoutNetwork\",value:function layoutNetwork(){if(this.options.hierarchical.enabled!==true&&this.options.improvedLayout===true){var indices=this.body.nodeIndices;var positionDefined=0;for(var i=0;i<indices.length;i++){var node=this.body.nodes[indices[i]];if(node.predefinedPosition===true){positionDefined+=1}}if(positionDefined<.5*indices.length){var MAX_LEVELS=10;var level=0;var clusterThreshold=150;var clusterOptions={clusterNodeProperties:{shape:\"ellipse\",label:\"\",group:\"\",font:{multi:false}},clusterEdgeProperties:{label:\"\",font:{multi:false},smooth:{enabled:false}}};if(indices.length>clusterThreshold){var startLength=indices.length;while(indices.length>clusterThreshold&&level<=MAX_LEVELS){level+=1;var before=indices.length;if(level%3===0){this.body.modules.clustering.clusterBridges(clusterOptions)}else{this.body.modules.clustering.clusterOutliers(clusterOptions)}var after=indices.length;if(before==after&&level%3!==0){this._declusterAll();this.body.emitter.emit(\"_layoutFailed\");console.info(\"This network could not be positioned by this version of the improved layout algorithm.\"+\" Please disable improvedLayout for better performance.\");return}}this.body.modules.kamadaKawai.setOptions({springLength:Math.max(150,2*startLength)})}if(level>MAX_LEVELS){console.info(\"The clustering didn't succeed within the amount of interations allowed,\"+\" progressing with partial result.\")}this.body.modules.kamadaKawai.solve(indices,this.body.edgeIndices,true);this._shiftToCenter();var offset=70;for(var _i=0;_i<indices.length;_i++){var _node=this.body.nodes[indices[_i]];if(_node.predefinedPosition===false){_node.x+=(.5-this.seededRandom())*offset;_node.y+=(.5-this.seededRandom())*offset}}this._declusterAll();this.body.emitter.emit(\"_repositionBezierNodes\")}}}},{key:\"_shiftToCenter\",value:function _shiftToCenter(){var range=NetworkUtil.getRangeCore(this.body.nodes,this.body.nodeIndices);var center=NetworkUtil.findCenter(range);for(var i=0;i<this.body.nodeIndices.length;i++){var node=this.body.nodes[this.body.nodeIndices[i]];node.x-=center.x;node.y-=center.y}}},{key:\"_declusterAll\",value:function _declusterAll(){var clustersPresent=true;while(clustersPresent===true){clustersPresent=false;for(var i=0;i<this.body.nodeIndices.length;i++){if(this.body.nodes[this.body.nodeIndices[i]].isCluster===true){clustersPresent=true;this.body.modules.clustering.openCluster(this.body.nodeIndices[i],{},false)}}if(clustersPresent===true){this.body.emitter.emit(\"_dataChanged\")}}}},{key:\"getSeed\",value:function getSeed(){return this.initialRandomSeed}},{key:\"setupHierarchicalLayout\",value:function setupHierarchicalLayout(){if(this.options.hierarchical.enabled===true&&this.body.nodeIndices.length>0){var node=void 0,nodeId=void 0;var definedLevel=false;var undefinedLevel=false;this.lastNodeOnLevel={};this.hierarchical=new HierarchicalStatus;for(nodeId in this.body.nodes){if(this.body.nodes.hasOwnProperty(nodeId)){node=this.body.nodes[nodeId];if(node.options.level!==undefined){definedLevel=true;this.hierarchical.levels[nodeId]=node.options.level}else{undefinedLevel=true}}}if(undefinedLevel===true&&definedLevel===true){throw new Error(\"To use the hierarchical layout, nodes require either no predefined levels\"+\" or levels have to be defined for all nodes.\")}else{if(undefinedLevel===true){var sortMethod=this.options.hierarchical.sortMethod;if(sortMethod===\"hubsize\"){this._determineLevelsByHubsize()}else if(sortMethod===\"directed\"){this._determineLevelsDirected()}else if(sortMethod===\"custom\"){this._determineLevelsCustomCallback()}}for(var _nodeId2 in this.body.nodes){if(this.body.nodes.hasOwnProperty(_nodeId2)){this.hierarchical.ensureLevel(_nodeId2)}}var distribution=this._getDistribution();this._generateMap();this._placeNodesByHierarchy(distribution);this._condenseHierarchy();this._shiftToCenter()}}}},{key:\"_condenseHierarchy\",value:function _condenseHierarchy(){var _this3=this;var stillShifting=false;var branches={};var shiftTrees=function shiftTrees(){var treeSizes=getTreeSizes();var shiftBy=0;for(var i=0;i<treeSizes.length-1;i++){var diff=treeSizes[i].max-treeSizes[i+1].min;shiftBy+=diff+_this3.options.hierarchical.treeSpacing;shiftTree(i+1,shiftBy)}};var shiftTree=function shiftTree(index,offset){var trees=_this3.hierarchical.trees;for(var nodeId in trees){if(trees.hasOwnProperty(nodeId)){if(trees[nodeId]===index){_this3.direction.shift(nodeId,offset)}}}};var getTreeSizes=function getTreeSizes(){var treeWidths=[];for(var i=0;i<_this3.hierarchical.numTrees();i++){treeWidths.push(_this3.direction.getTreeSize(i))}return treeWidths};var getBranchNodes=function getBranchNodes(source,map){if(map[source.id]){return}map[source.id]=true;if(_this3.hierarchical.childrenReference[source.id]){var children=_this3.hierarchical.childrenReference[source.id];if(children.length>0){for(var i=0;i<children.length;i++){getBranchNodes(_this3.body.nodes[children[i]],map)}}}};var getBranchBoundary=function getBranchBoundary(branchMap){var maxLevel=arguments.length>1&&arguments[1]!==undefined?arguments[1]:1e9;var minSpace=1e9;var maxSpace=1e9;var min=1e9;var max=-1e9;for(var branchNode in branchMap){if(branchMap.hasOwnProperty(branchNode)){var node=_this3.body.nodes[branchNode];var level=_this3.hierarchical.levels[node.id];var position=_this3.direction.getPosition(node);var _getSpaceAroundNode2=_this3._getSpaceAroundNode(node,branchMap),_getSpaceAroundNode3=(0,_slicedToArray3[\"default\"])(_getSpaceAroundNode2,2),minSpaceNode=_getSpaceAroundNode3[0],maxSpaceNode=_getSpaceAroundNode3[1];minSpace=Math.min(minSpaceNode,minSpace);maxSpace=Math.min(maxSpaceNode,maxSpace);if(level<=maxLevel){min=Math.min(position,min);max=Math.max(position,max)}}}return[min,max,minSpace,maxSpace]};var getCollisionLevel=function getCollisionLevel(node1,node2){var maxLevel1=_this3.hierarchical.getMaxLevel(node1.id);var maxLevel2=_this3.hierarchical.getMaxLevel(node2.id);return Math.min(maxLevel1,maxLevel2)};var shiftElementsCloser=function shiftElementsCloser(callback,levels,centerParents){var hier=_this3.hierarchical;for(var i=0;i<levels.length;i++){var level=levels[i];var levelNodes=hier.distributionOrdering[level];if(levelNodes.length>1){for(var j=0;j<levelNodes.length-1;j++){var node1=levelNodes[j];var node2=levelNodes[j+1];if(hier.hasSameParent(node1,node2)&&hier.inSameSubNetwork(node1,node2)){callback(node1,node2,centerParents)}}}}};var branchShiftCallback=function branchShiftCallback(node1,node2){var centerParent=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;var pos1=_this3.direction.getPosition(node1);var pos2=_this3.direction.getPosition(node2);var diffAbs=Math.abs(pos2-pos1);var nodeSpacing=_this3.options.hierarchical.nodeSpacing;if(diffAbs>nodeSpacing){var branchNodes1={};var branchNodes2={};getBranchNodes(node1,branchNodes1);getBranchNodes(node2,branchNodes2);var maxLevel=getCollisionLevel(node1,node2);var branchNodeBoundary1=getBranchBoundary(branchNodes1,maxLevel);var branchNodeBoundary2=getBranchBoundary(branchNodes2,maxLevel);var max1=branchNodeBoundary1[1];var min2=branchNodeBoundary2[0];var minSpace2=branchNodeBoundary2[2];var diffBranch=Math.abs(max1-min2);if(diffBranch>nodeSpacing){var offset=max1-min2+nodeSpacing;if(offset<-minSpace2+nodeSpacing){offset=-minSpace2+nodeSpacing}if(offset<0){_this3._shiftBlock(node2.id,offset);stillShifting=true;if(centerParent===true)_this3._centerParent(node2)}}}};var minimizeEdgeLength=function minimizeEdgeLength(iterations,node){var nodeId=node.id;var allEdges=node.edges;var nodeLevel=_this3.hierarchical.levels[node.id];var C2=_this3.options.hierarchical.levelSeparation*_this3.options.hierarchical.levelSeparation;var referenceNodes={};var aboveEdges=[];for(var i=0;i<allEdges.length;i++){var edge=allEdges[i];if(edge.toId!=edge.fromId){var otherNode=edge.toId==nodeId?edge.from:edge.to;referenceNodes[allEdges[i].id]=otherNode;if(_this3.hierarchical.levels[otherNode.id]<nodeLevel){aboveEdges.push(edge)}}}var getFx=function getFx(point,edges){var sum=0;for(var _i2=0;_i2<edges.length;_i2++){if(referenceNodes[edges[_i2].id]!==undefined){var a=_this3.direction.getPosition(referenceNodes[edges[_i2].id])-point;sum+=a/Math.sqrt(a*a+C2)}}return sum};var getDFx=function getDFx(point,edges){var sum=0;for(var _i3=0;_i3<edges.length;_i3++){if(referenceNodes[edges[_i3].id]!==undefined){var a=_this3.direction.getPosition(referenceNodes[edges[_i3].id])-point;sum-=C2*Math.pow(a*a+C2,-1.5)}}return sum};var getGuess=function getGuess(iterations,edges){var guess=_this3.direction.getPosition(node);var guessMap={};for(var _i4=0;_i4<iterations;_i4++){var fx=getFx(guess,edges);var dfx=getDFx(guess,edges);var limit=40;var ratio=Math.max(-limit,Math.min(limit,Math.round(fx/dfx)));guess=guess-ratio;if(guessMap[guess]!==undefined){break}guessMap[guess]=_i4}return guess};var moveBranch=function moveBranch(guess){var nodePosition=_this3.direction.getPosition(node);if(branches[node.id]===undefined){var branchNodes={};getBranchNodes(node,branchNodes);branches[node.id]=branchNodes}var branchBoundary=getBranchBoundary(branches[node.id]);var minSpaceBranch=branchBoundary[2];var maxSpaceBranch=branchBoundary[3];var diff=guess-nodePosition;var branchOffset=0;if(diff>0){branchOffset=Math.min(diff,maxSpaceBranch-_this3.options.hierarchical.nodeSpacing)}else if(diff<0){branchOffset=-Math.min(-diff,minSpaceBranch-_this3.options.hierarchical.nodeSpacing)}if(branchOffset!=0){_this3._shiftBlock(node.id,branchOffset);stillShifting=true}};var moveNode=function moveNode(guess){var nodePosition=_this3.direction.getPosition(node);var _getSpaceAroundNode4=_this3._getSpaceAroundNode(node),_getSpaceAroundNode5=(0,_slicedToArray3[\"default\"])(_getSpaceAroundNode4,2),minSpace=_getSpaceAroundNode5[0],maxSpace=_getSpaceAroundNode5[1];var diff=guess-nodePosition;var newPosition=nodePosition;if(diff>0){newPosition=Math.min(nodePosition+(maxSpace-_this3.options.hierarchical.nodeSpacing),guess)}else if(diff<0){newPosition=Math.max(nodePosition-(minSpace-_this3.options.hierarchical.nodeSpacing),guess)}if(newPosition!==nodePosition){_this3.direction.setPosition(node,newPosition);stillShifting=true}};var guess=getGuess(iterations,aboveEdges);moveBranch(guess);guess=getGuess(iterations,allEdges);moveNode(guess)};var minimizeEdgeLengthBottomUp=function minimizeEdgeLengthBottomUp(iterations){var levels=_this3.hierarchical.getLevels();levels=levels.reverse();for(var i=0;i<iterations;i++){stillShifting=false;for(var j=0;j<levels.length;j++){var level=levels[j];var levelNodes=_this3.hierarchical.distributionOrdering[level];for(var k=0;k<levelNodes.length;k++){minimizeEdgeLength(1e3,levelNodes[k])}}if(stillShifting!==true){break}}};var shiftBranchesCloserBottomUp=function shiftBranchesCloserBottomUp(iterations){var levels=_this3.hierarchical.getLevels();levels=levels.reverse();for(var i=0;i<iterations;i++){stillShifting=false;shiftElementsCloser(branchShiftCallback,levels,true);if(stillShifting!==true){break}}};var centerAllParents=function centerAllParents(){for(var nodeId in _this3.body.nodes){if(_this3.body.nodes.hasOwnProperty(nodeId))_this3._centerParent(_this3.body.nodes[nodeId])}};var centerAllParentsBottomUp=function centerAllParentsBottomUp(){var levels=_this3.hierarchical.getLevels()\n;levels=levels.reverse();for(var i=0;i<levels.length;i++){var level=levels[i];var levelNodes=_this3.hierarchical.distributionOrdering[level];for(var j=0;j<levelNodes.length;j++){_this3._centerParent(levelNodes[j])}}};if(this.options.hierarchical.blockShifting===true){shiftBranchesCloserBottomUp(5);centerAllParents()}if(this.options.hierarchical.edgeMinimization===true){minimizeEdgeLengthBottomUp(20)}if(this.options.hierarchical.parentCentralization===true){centerAllParentsBottomUp()}shiftTrees()}},{key:\"_getSpaceAroundNode\",value:function _getSpaceAroundNode(node,map){var useMap=true;if(map===undefined){useMap=false}var level=this.hierarchical.levels[node.id];if(level!==undefined){var index=this.hierarchical.distributionIndex[node.id];var position=this.direction.getPosition(node);var ordering=this.hierarchical.distributionOrdering[level];var minSpace=1e9;var maxSpace=1e9;if(index!==0){var prevNode=ordering[index-1];if(useMap===true&&map[prevNode.id]===undefined||useMap===false){var prevPos=this.direction.getPosition(prevNode);minSpace=position-prevPos}}if(index!=ordering.length-1){var nextNode=ordering[index+1];if(useMap===true&&map[nextNode.id]===undefined||useMap===false){var nextPos=this.direction.getPosition(nextNode);maxSpace=Math.min(maxSpace,nextPos-position)}}return[minSpace,maxSpace]}else{return[0,0]}}},{key:\"_centerParent\",value:function _centerParent(node){if(this.hierarchical.parentReference[node.id]){var parents=this.hierarchical.parentReference[node.id];for(var i=0;i<parents.length;i++){var parentId=parents[i];var parentNode=this.body.nodes[parentId];var children=this.hierarchical.childrenReference[parentId];if(children!==undefined){var newPosition=this._getCenterPosition(children);var position=this.direction.getPosition(parentNode);var _getSpaceAroundNode6=this._getSpaceAroundNode(parentNode),_getSpaceAroundNode7=(0,_slicedToArray3[\"default\"])(_getSpaceAroundNode6,2),minSpace=_getSpaceAroundNode7[0],maxSpace=_getSpaceAroundNode7[1];var diff=position-newPosition;if(diff<0&&Math.abs(diff)<maxSpace-this.options.hierarchical.nodeSpacing||diff>0&&Math.abs(diff)<minSpace-this.options.hierarchical.nodeSpacing){this.direction.setPosition(parentNode,newPosition)}}}}}},{key:\"_placeNodesByHierarchy\",value:function _placeNodesByHierarchy(distribution){this.positionedNodes={};for(var level in distribution){if(distribution.hasOwnProperty(level)){var nodeArray=(0,_keys2[\"default\"])(distribution[level]);nodeArray=this._indexArrayToNodes(nodeArray);this.direction.sort(nodeArray);var handledNodeCount=0;for(var i=0;i<nodeArray.length;i++){var node=nodeArray[i];if(this.positionedNodes[node.id]===undefined){var spacing=this.options.hierarchical.nodeSpacing;var pos=spacing*handledNodeCount;if(handledNodeCount>0){pos=this.direction.getPosition(nodeArray[i-1])+spacing}this.direction.setPosition(node,pos,level);this._validatePositionAndContinue(node,level,pos);handledNodeCount++}}}}}},{key:\"_placeBranchNodes\",value:function _placeBranchNodes(parentId,parentLevel){var childRef=this.hierarchical.childrenReference[parentId];if(childRef===undefined){return}var childNodes=[];for(var i=0;i<childRef.length;i++){childNodes.push(this.body.nodes[childRef[i]])}this.direction.sort(childNodes);for(var _i5=0;_i5<childNodes.length;_i5++){var childNode=childNodes[_i5];var childNodeLevel=this.hierarchical.levels[childNode.id];if(childNodeLevel>parentLevel&&this.positionedNodes[childNode.id]===undefined){var spacing=this.options.hierarchical.nodeSpacing;var pos=void 0;if(_i5===0){pos=this.direction.getPosition(this.body.nodes[parentId])}else{pos=this.direction.getPosition(childNodes[_i5-1])+spacing}this.direction.setPosition(childNode,pos,childNodeLevel);this._validatePositionAndContinue(childNode,childNodeLevel,pos)}else{return}}var center=this._getCenterPosition(childNodes);this.direction.setPosition(this.body.nodes[parentId],center,parentLevel)}},{key:\"_validatePositionAndContinue\",value:function _validatePositionAndContinue(node,level,pos){if(!this.hierarchical.isTree)return;if(this.lastNodeOnLevel[level]!==undefined){var previousPos=this.direction.getPosition(this.body.nodes[this.lastNodeOnLevel[level]]);if(pos-previousPos<this.options.hierarchical.nodeSpacing){var diff=previousPos+this.options.hierarchical.nodeSpacing-pos;var sharedParent=this._findCommonParent(this.lastNodeOnLevel[level],node.id);this._shiftBlock(sharedParent.withChild,diff)}}this.lastNodeOnLevel[level]=node.id;this.positionedNodes[node.id]=true;this._placeBranchNodes(node.id,level)}},{key:\"_indexArrayToNodes\",value:function _indexArrayToNodes(idArray){var array=[];for(var i=0;i<idArray.length;i++){array.push(this.body.nodes[idArray[i]])}return array}},{key:\"_getDistribution\",value:function _getDistribution(){var distribution={};var nodeId=void 0,node=void 0;for(nodeId in this.body.nodes){if(this.body.nodes.hasOwnProperty(nodeId)){node=this.body.nodes[nodeId];var level=this.hierarchical.levels[nodeId]===undefined?0:this.hierarchical.levels[nodeId];this.direction.fix(node,level);if(distribution[level]===undefined){distribution[level]={}}distribution[level][nodeId]=node}}return distribution}},{key:\"_getActiveEdges\",value:function _getActiveEdges(node){var _this4=this;var result=[];util.forEach(node.edges,function(edge){if(_this4.body.edgeIndices.indexOf(edge.id)!==-1){result.push(edge)}});return result}},{key:\"_getHubSizes\",value:function _getHubSizes(){var _this5=this;var hubSizes={};var nodeIds=this.body.nodeIndices;util.forEach(nodeIds,function(nodeId){var node=_this5.body.nodes[nodeId];var hubSize=_this5._getActiveEdges(node).length;hubSizes[hubSize]=true});var result=[];util.forEach(hubSizes,function(size){result.push(Number(size))});result.sort(function(a,b){return b-a});return result}},{key:\"_determineLevelsByHubsize\",value:function _determineLevelsByHubsize(){var _this6=this;var levelDownstream=function levelDownstream(nodeA,nodeB){_this6.hierarchical.levelDownstream(nodeA,nodeB)};var hubSizes=this._getHubSizes();var _loop=function _loop(i){var hubSize=hubSizes[i];if(hubSize===0)return\"break\";util.forEach(_this6.body.nodeIndices,function(nodeId){var node=_this6.body.nodes[nodeId];if(hubSize===_this6._getActiveEdges(node).length){_this6._crawlNetwork(levelDownstream,nodeId)}})};for(var i=0;i<hubSizes.length;++i){var _ret=_loop(i);if(_ret===\"break\")break}}},{key:\"_determineLevelsCustomCallback\",value:function _determineLevelsCustomCallback(){var _this7=this;var minLevel=1e5;var customCallback=function customCallback(nodeA,nodeB,edge){};var levelByDirection=function levelByDirection(nodeA,nodeB,edge){var levelA=_this7.hierarchical.levels[nodeA.id];if(levelA===undefined){levelA=_this7.hierarchical.levels[nodeA.id]=minLevel}var diff=customCallback(NetworkUtil.cloneOptions(nodeA,\"node\"),NetworkUtil.cloneOptions(nodeB,\"node\"),NetworkUtil.cloneOptions(edge,\"edge\"));_this7.hierarchical.levels[nodeB.id]=levelA+diff};this._crawlNetwork(levelByDirection);this.hierarchical.setMinLevelToZero(this.body.nodes)}},{key:\"_determineLevelsDirected\",value:function _determineLevelsDirected(){var _this8=this;var minLevel=1e4;var isBidirectional=function isBidirectional(edge){util.forEach(_this8.body.edges,function(otherEdge){if(otherEdge.toId===edge.fromId&&otherEdge.fromId===edge.toId){return true}});return false};var levelByDirection=function levelByDirection(nodeA,nodeB,edge){var levelA=_this8.hierarchical.levels[nodeA.id];var levelB=_this8.hierarchical.levels[nodeB.id];if(isBidirectional(edge)&&levelA!==undefined&&levelB!==undefined){return}if(levelA===undefined){levelA=_this8.hierarchical.levels[nodeA.id]=minLevel}if(edge.toId==nodeB.id){_this8.hierarchical.levels[nodeB.id]=levelA+1}else{_this8.hierarchical.levels[nodeB.id]=levelA-1}};this._crawlNetwork(levelByDirection);this.hierarchical.setMinLevelToZero(this.body.nodes)}},{key:\"_generateMap\",value:function _generateMap(){var _this9=this;var fillInRelations=function fillInRelations(parentNode,childNode){if(_this9.hierarchical.levels[childNode.id]>_this9.hierarchical.levels[parentNode.id]){_this9.hierarchical.addRelation(parentNode.id,childNode.id)}};this._crawlNetwork(fillInRelations);this.hierarchical.checkIfTree()}},{key:\"_crawlNetwork\",value:function _crawlNetwork(){var _this10=this;var callback=arguments.length>0&&arguments[0]!==undefined?arguments[0]:function(){};var startingNodeId=arguments[1];var progress={};var crawler=function crawler(node,tree){if(progress[node.id]===undefined){_this10.hierarchical.setTreeIndex(node,tree);progress[node.id]=true;var childNode=void 0;var edges=_this10._getActiveEdges(node);for(var i=0;i<edges.length;i++){var edge=edges[i];if(edge.connected===true){if(edge.toId==node.id){childNode=edge.from}else{childNode=edge.to}if(node.id!=childNode.id){callback(node,childNode,edge);crawler(childNode,tree)}}}}};if(startingNodeId===undefined){var treeIndex=0;for(var i=0;i<this.body.nodeIndices.length;i++){var nodeId=this.body.nodeIndices[i];if(progress[nodeId]===undefined){var node=this.body.nodes[nodeId];crawler(node,treeIndex);treeIndex+=1}}}else{var _node2=this.body.nodes[startingNodeId];if(_node2===undefined){console.error(\"Node not found:\",startingNodeId);return}crawler(_node2)}}},{key:\"_shiftBlock\",value:function _shiftBlock(parentId,diff){var _this11=this;var progress={};var shifter=function shifter(parentId){if(progress[parentId]){return}progress[parentId]=true;_this11.direction.shift(parentId,diff);var childRef=_this11.hierarchical.childrenReference[parentId];if(childRef!==undefined){for(var i=0;i<childRef.length;i++){shifter(childRef[i])}}};shifter(parentId)}},{key:\"_findCommonParent\",value:function _findCommonParent(childA,childB){var _this12=this;var parents={};var iterateParents=function iterateParents(parents,child){var parentRef=_this12.hierarchical.parentReference[child];if(parentRef!==undefined){for(var i=0;i<parentRef.length;i++){var parent=parentRef[i];parents[parent]=true;iterateParents(parents,parent)}}};var findParent=function findParent(parents,child){var parentRef=_this12.hierarchical.parentReference[child];if(parentRef!==undefined){for(var i=0;i<parentRef.length;i++){var parent=parentRef[i];if(parents[parent]!==undefined){return{foundParent:parent,withChild:child}}var branch=findParent(parents,parent);if(branch.foundParent!==null){return branch}}}return{foundParent:null,withChild:child}};iterateParents(parents,childA);return findParent(parents,childB)}},{key:\"setDirectionStrategy\",value:function setDirectionStrategy(){var isVertical=this.options.hierarchical.direction===\"UD\"||this.options.hierarchical.direction===\"DU\";if(isVertical){this.direction=new VerticalStrategy(this)}else{this.direction=new HorizontalStrategy(this)}}},{key:\"_getCenterPosition\",value:function _getCenterPosition(childNodes){var minPos=1e9;var maxPos=-1e9;for(var i=0;i<childNodes.length;i++){var childNode=void 0;if(childNodes[i].id!==undefined){childNode=childNodes[i]}else{var childNodeId=childNodes[i];childNode=this.body.nodes[childNodeId]}var position=this.direction.getPosition(childNode);minPos=Math.min(minPos,position);maxPos=Math.max(maxPos,position)}return.5*(minPos+maxPos)}}]);return LayoutEngine}();exports[\"default\"]=LayoutEngine},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.VerticalStrategy=exports.HorizontalStrategy=undefined;var _getPrototypeOf=__webpack_require__(3);var _getPrototypeOf2=_interopRequireDefault(_getPrototypeOf);var _possibleConstructorReturn2=__webpack_require__(4);var _possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2);var _inherits2=__webpack_require__(5);var _inherits3=_interopRequireDefault(_inherits2);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var DirectionInterface=function(){function DirectionInterface(){(0,_classCallCheck3[\"default\"])(this,DirectionInterface)}(0,_createClass3[\"default\"])(DirectionInterface,[{key:\"abstract\",value:function abstract(){throw new Error(\"Can't instantiate abstract class!\")}},{key:\"fake_use\",value:function fake_use(){}},{key:\"curveType\",value:function curveType(){return this.abstract()}},{key:\"getPosition\",value:function getPosition(node){this.fake_use(node);return this.abstract()}},{key:\"setPosition\",value:function setPosition(node,position){var level=arguments.length>2&&arguments[2]!==undefined?arguments[2]:undefined;this.fake_use(node,position,level);this.abstract()}},{key:\"getTreeSize\",value:function getTreeSize(index){this.fake_use(index);return this.abstract()}},{key:\"sort\",value:function sort(nodeArray){this.fake_use(nodeArray);this.abstract()}},{key:\"fix\",value:function fix(node,level){this.fake_use(node,level);this.abstract()}},{key:\"shift\",value:function shift(nodeId,diff){this.fake_use(nodeId,diff);this.abstract()}}]);return DirectionInterface}();var VerticalStrategy=function(_DirectionInterface){(0,_inherits3[\"default\"])(VerticalStrategy,_DirectionInterface);function VerticalStrategy(layout){(0,_classCallCheck3[\"default\"])(this,VerticalStrategy);var _this=(0,_possibleConstructorReturn3[\"default\"])(this,(VerticalStrategy.__proto__||(0,_getPrototypeOf2[\"default\"])(VerticalStrategy)).call(this));_this.layout=layout;return _this}(0,_createClass3[\"default\"])(VerticalStrategy,[{key:\"curveType\",value:function curveType(){return\"horizontal\"}},{key:\"getPosition\",value:function getPosition(node){return node.x}},{key:\"setPosition\",value:function setPosition(node,position){var level=arguments.length>2&&arguments[2]!==undefined?arguments[2]:undefined;if(level!==undefined){this.layout.hierarchical.addToOrdering(node,level)}node.x=position}},{key:\"getTreeSize\",value:function getTreeSize(index){var res=this.layout.hierarchical.getTreeSize(this.layout.body.nodes,index);return{min:res.min_x,max:res.max_x}}},{key:\"sort\",value:function sort(nodeArray){nodeArray.sort(function(a,b){if(a.x===undefined||b.x===undefined)return 0;return a.x-b.x})}},{key:\"fix\",value:function fix(node,level){node.y=this.layout.options.hierarchical.levelSeparation*level;node.options.fixed.y=true}},{key:\"shift\",value:function shift(nodeId,diff){this.layout.body.nodes[nodeId].x+=diff}}]);return VerticalStrategy}(DirectionInterface);var HorizontalStrategy=function(_DirectionInterface2){(0,_inherits3[\"default\"])(HorizontalStrategy,_DirectionInterface2);function HorizontalStrategy(layout){(0,_classCallCheck3[\"default\"])(this,HorizontalStrategy);var _this2=(0,_possibleConstructorReturn3[\"default\"])(this,(HorizontalStrategy.__proto__||(0,_getPrototypeOf2[\"default\"])(HorizontalStrategy)).call(this));_this2.layout=layout;return _this2}(0,_createClass3[\"default\"])(HorizontalStrategy,[{key:\"curveType\",value:function curveType(){return\"vertical\"}},{key:\"getPosition\",value:function getPosition(node){return node.y}},{key:\"setPosition\",value:function setPosition(node,position){var level=arguments.length>2&&arguments[2]!==undefined?arguments[2]:undefined;if(level!==undefined){this.layout.hierarchical.addToOrdering(node,level)}node.y=position}},{key:\"getTreeSize\",value:function getTreeSize(index){var res=this.layout.hierarchical.getTreeSize(this.layout.body.nodes,index);return{min:res.min_y,max:res.max_y}}},{key:\"sort\",value:function sort(nodeArray){nodeArray.sort(function(a,b){if(a.y===undefined||b.y===undefined)return 0;return a.y-b.y})}},{key:\"fix\",value:function fix(node,level){node.x=this.layout.options.hierarchical.levelSeparation*level;node.options.fixed.x=true}},{key:\"shift\",value:function shift(nodeId,diff){this.layout.body.nodes[nodeId].y+=diff}}]);return HorizontalStrategy}(DirectionInterface);exports.HorizontalStrategy=HorizontalStrategy;exports.VerticalStrategy=VerticalStrategy},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _keys=__webpack_require__(8);var _keys2=_interopRequireDefault(_keys);var _stringify=__webpack_require__(19);var _stringify2=_interopRequireDefault(_stringify);var _typeof2=__webpack_require__(6);var _typeof3=_interopRequireDefault(_typeof2);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var util=__webpack_require__(2);var Hammer=__webpack_require__(10);var hammerUtil=__webpack_require__(37);var ManipulationSystem=function(){function ManipulationSystem(body,canvas,selectionHandler){var _this=this;(0,_classCallCheck3[\"default\"])(this,ManipulationSystem);this.body=body;this.canvas=canvas;this.selectionHandler=selectionHandler;this.editMode=false;this.manipulationDiv=undefined;this.editModeDiv=undefined;this.closeDiv=undefined;this.manipulationHammers=[];this.temporaryUIFunctions={};this.temporaryEventFunctions=[];this.touchTime=0;this.temporaryIds={nodes:[],edges:[]};this.guiEnabled=false;this.inMode=false;this.selectedControlNode=undefined;this.options={};this.defaultOptions={enabled:false,initiallyActive:false,addNode:true,addEdge:true,editNode:undefined,editEdge:true,deleteNode:true,deleteEdge:true,controlNodeStyle:{shape:\"dot\",size:6,color:{background:\"#ff0000\",border:\"#3c3c3c\",highlight:{background:\"#07f968\",border:\"#3c3c3c\"}},borderWidth:2,borderWidthSelected:2}};util.extend(this.options,this.defaultOptions);this.body.emitter.on(\"destroy\",function(){_this._clean()});this.body.emitter.on(\"_dataChanged\",this._restore.bind(this));this.body.emitter.on(\"_resetData\",this._restore.bind(this))}(0,_createClass3[\"default\"])(ManipulationSystem,[{key:\"_restore\",value:function _restore(){if(this.inMode!==false){if(this.options.initiallyActive===true){this.enableEditMode()}else{this.disableEditMode()}}}},{key:\"setOptions\",value:function setOptions(options,allOptions,globalOptions){if(allOptions!==undefined){if(allOptions.locale!==undefined){this.options.locale=allOptions.locale}else{this.options.locale=globalOptions.locale}if(allOptions.locales!==undefined){this.options.locales=allOptions.locales}else{this.options.locales=globalOptions.locales}}if(options!==undefined){if(typeof options===\"boolean\"){this.options.enabled=options}else{this.options.enabled=true;util.deepExtend(this.options,options)}if(this.options.initiallyActive===true){this.editMode=true}this._setup()}}},{key:\"toggleEditMode\",value:function toggleEditMode(){if(this.editMode===true){this.disableEditMode()}else{this.enableEditMode()}}},{key:\"enableEditMode\",value:function enableEditMode(){this.editMode=true;this._clean();if(this.guiEnabled===true){this.manipulationDiv.style.display=\"block\";this.closeDiv.style.display=\"block\";this.editModeDiv.style.display=\"none\";this.showManipulatorToolbar()}}},{key:\"disableEditMode\",value:function disableEditMode(){this.editMode=false;this._clean();if(this.guiEnabled===true){this.manipulationDiv.style.display=\"none\";this.closeDiv.style.display=\"none\";this.editModeDiv.style.display=\"block\";this._createEditButton()}}},{key:\"showManipulatorToolbar\",value:function showManipulatorToolbar(){this._clean();this.manipulationDOM={};if(this.guiEnabled===true){this.editMode=true;this.manipulationDiv.style.display=\"block\";this.closeDiv.style.display=\"block\";var selectedNodeCount=this.selectionHandler._getSelectedNodeCount();var selectedEdgeCount=this.selectionHandler._getSelectedEdgeCount();var selectedTotalCount=selectedNodeCount+selectedEdgeCount;var locale=this.options.locales[this.options.locale];var needSeperator=false;if(this.options.addNode!==false){this._createAddNodeButton(locale);needSeperator=true}if(this.options.addEdge!==false){if(needSeperator===true){this._createSeperator(1)}else{needSeperator=true}this._createAddEdgeButton(locale)}if(selectedNodeCount===1&&typeof this.options.editNode===\"function\"){if(needSeperator===true){this._createSeperator(2)}else{needSeperator=true}this._createEditNodeButton(locale)}else if(selectedEdgeCount===1&&selectedNodeCount===0&&this.options.editEdge!==false){if(needSeperator===true){this._createSeperator(3)}else{needSeperator=true}this._createEditEdgeButton(locale)}if(selectedTotalCount!==0){if(selectedNodeCount>0&&this.options.deleteNode!==false){if(needSeperator===true){this._createSeperator(4)}this._createDeleteButton(locale)}else if(selectedNodeCount===0&&this.options.deleteEdge!==false){if(needSeperator===true){this._createSeperator(4)}this._createDeleteButton(locale)}}this._bindHammerToDiv(this.closeDiv,this.toggleEditMode.bind(this));this._temporaryBindEvent(\"select\",this.showManipulatorToolbar.bind(this))}this.body.emitter.emit(\"_redraw\")}},{key:\"addNodeMode\",value:function addNodeMode(){if(this.editMode!==true){this.enableEditMode()}this._clean();this.inMode=\"addNode\";if(this.guiEnabled===true){var locale=this.options.locales[this.options.locale];this.manipulationDOM={};this._createBackButton(locale);this._createSeperator();this._createDescription(locale[\"addDescription\"]||this.options.locales[\"en\"][\"addDescription\"]);this._bindHammerToDiv(this.closeDiv,this.toggleEditMode.bind(this))}this._temporaryBindEvent(\"click\",this._performAddNode.bind(this))}},{key:\"editNode\",value:function editNode(){var _this2=this;if(this.editMode!==true){this.enableEditMode()}this._clean();var node=this.selectionHandler._getSelectedNode();if(node!==undefined){this.inMode=\"editNode\";if(typeof this.options.editNode===\"function\"){if(node.isCluster!==true){var data=util.deepExtend({},node.options,false);data.x=node.x;data.y=node.y;if(this.options.editNode.length===2){this.options.editNode(data,function(finalizedData){if(finalizedData!==null&&finalizedData!==undefined&&_this2.inMode===\"editNode\"){_this2.body.data.nodes.getDataSet().update(finalizedData)}_this2.showManipulatorToolbar()})}else{throw new Error(\"The function for edit does not support two arguments (data, callback)\")}}else{alert(this.options.locales[this.options.locale][\"editClusterError\"]||this.options.locales[\"en\"][\"editClusterError\"])}}else{throw new Error(\"No function has been configured to handle the editing of nodes.\")}}else{this.showManipulatorToolbar()}}},{key:\"addEdgeMode\",value:function addEdgeMode(){if(this.editMode!==true){this.enableEditMode()}this._clean();this.inMode=\"addEdge\";if(this.guiEnabled===true){var locale=this.options.locales[this.options.locale];this.manipulationDOM={};this._createBackButton(locale);this._createSeperator();this._createDescription(locale[\"edgeDescription\"]||this.options.locales[\"en\"][\"edgeDescription\"]);this._bindHammerToDiv(this.closeDiv,this.toggleEditMode.bind(this))}this._temporaryBindUI(\"onTouch\",this._handleConnect.bind(this));this._temporaryBindUI(\"onDragEnd\",this._finishConnect.bind(this));this._temporaryBindUI(\"onDrag\",this._dragControlNode.bind(this));this._temporaryBindUI(\"onRelease\",this._finishConnect.bind(this));this._temporaryBindUI(\"onDragStart\",this._dragStartEdge.bind(this));this._temporaryBindUI(\"onHold\",function(){})}},{key:\"editEdgeMode\",value:function editEdgeMode(){if(this.editMode!==true){this.enableEditMode()}this._clean();this.inMode=\"editEdge\";if((0,_typeof3[\"default\"])(this.options.editEdge)===\"object\"&&typeof this.options.editEdge.editWithoutDrag===\"function\"){this.edgeBeingEditedId=this.selectionHandler.getSelectedEdges()[0];if(this.edgeBeingEditedId!==undefined){var edge=this.body.edges[this.edgeBeingEditedId];this._performEditEdge(edge.from,edge.to);return}}if(this.guiEnabled===true){var locale=this.options.locales[this.options.locale];this.manipulationDOM={};this._createBackButton(locale);this._createSeperator();this._createDescription(locale[\"editEdgeDescription\"]||this.options.locales[\"en\"][\"editEdgeDescription\"]);this._bindHammerToDiv(this.closeDiv,this.toggleEditMode.bind(this))}this.edgeBeingEditedId=this.selectionHandler.getSelectedEdges()[0];if(this.edgeBeingEditedId!==undefined){var _edge=this.body.edges[this.edgeBeingEditedId];var controlNodeFrom=this._getNewTargetNode(_edge.from.x,_edge.from.y);var controlNodeTo=this._getNewTargetNode(_edge.to.x,_edge.to.y);this.temporaryIds.nodes.push(controlNodeFrom.id);this.temporaryIds.nodes.push(controlNodeTo.id);this.body.nodes[controlNodeFrom.id]=controlNodeFrom;this.body.nodeIndices.push(controlNodeFrom.id);this.body.nodes[controlNodeTo.id]=controlNodeTo;this.body.nodeIndices.push(controlNodeTo.id);this._temporaryBindUI(\"onTouch\",this._controlNodeTouch.bind(this));this._temporaryBindUI(\"onTap\",function(){});this._temporaryBindUI(\"onHold\",function(){});this._temporaryBindUI(\"onDragStart\",this._controlNodeDragStart.bind(this));this._temporaryBindUI(\"onDrag\",this._controlNodeDrag.bind(this));this._temporaryBindUI(\"onDragEnd\",this._controlNodeDragEnd.bind(this));this._temporaryBindUI(\"onMouseMove\",function(){});this._temporaryBindEvent(\"beforeDrawing\",function(ctx){var positions=_edge.edgeType.findBorderPositions(ctx);if(controlNodeFrom.selected===false){controlNodeFrom.x=positions.from.x;controlNodeFrom.y=positions.from.y}if(controlNodeTo.selected===false){controlNodeTo.x=positions.to.x;controlNodeTo.y=positions.to.y}});this.body.emitter.emit(\"_redraw\")}else{this.showManipulatorToolbar()}}},{key:\"deleteSelected\",value:function deleteSelected(){var _this3=this;if(this.editMode!==true){this.enableEditMode()}this._clean();this.inMode=\"delete\";var selectedNodes=this.selectionHandler.getSelectedNodes();var selectedEdges=this.selectionHandler.getSelectedEdges();var deleteFunction=undefined;if(selectedNodes.length>0){for(var i=0;i<selectedNodes.length;i++){if(this.body.nodes[selectedNodes[i]].isCluster===true){alert(this.options.locales[this.options.locale][\"deleteClusterError\"]||this.options.locales[\"en\"][\"deleteClusterError\"]);return}}if(typeof this.options.deleteNode===\"function\"){deleteFunction=this.options.deleteNode}}else if(selectedEdges.length>0){if(typeof this.options.deleteEdge===\"function\"){deleteFunction=this.options.deleteEdge}}if(typeof deleteFunction===\"function\"){var data={nodes:selectedNodes,edges:selectedEdges};if(deleteFunction.length===2){deleteFunction(data,function(finalizedData){if(finalizedData!==null&&finalizedData!==undefined&&_this3.inMode===\"delete\"){_this3.body.data.edges.getDataSet().remove(finalizedData.edges);_this3.body.data.nodes.getDataSet().remove(finalizedData.nodes);_this3.body.emitter.emit(\"startSimulation\");_this3.showManipulatorToolbar()}else{_this3.body.emitter.emit(\"startSimulation\");_this3.showManipulatorToolbar()}})}else{throw new Error(\"The function for delete does not support two arguments (data, callback)\")}}else{this.body.data.edges.getDataSet().remove(selectedEdges);this.body.data.nodes.getDataSet().remove(selectedNodes);this.body.emitter.emit(\"startSimulation\");this.showManipulatorToolbar()}}},{key:\"_setup\",value:function _setup(){if(this.options.enabled===true){this.guiEnabled=true;this._createWrappers();if(this.editMode===false){this._createEditButton()}else{this.showManipulatorToolbar()}}else{this._removeManipulationDOM();this.guiEnabled=false}}},{key:\"_createWrappers\",value:function _createWrappers(){if(this.manipulationDiv===undefined){this.manipulationDiv=document.createElement(\"div\");this.manipulationDiv.className=\"vis-manipulation\";if(this.editMode===true){this.manipulationDiv.style.display=\"block\"}else{this.manipulationDiv.style.display=\"none\"}this.canvas.frame.appendChild(this.manipulationDiv)}if(this.editModeDiv===undefined){this.editModeDiv=document.createElement(\"div\");this.editModeDiv.className=\"vis-edit-mode\";if(this.editMode===true){this.editModeDiv.style.display=\"none\"}else{this.editModeDiv.style.display=\"block\"}this.canvas.frame.appendChild(this.editModeDiv)}if(this.closeDiv===undefined){this.closeDiv=document.createElement(\"div\");this.closeDiv.className=\"vis-close\";this.closeDiv.style.display=this.manipulationDiv.style.display;this.canvas.frame.appendChild(this.closeDiv)}}},{key:\"_getNewTargetNode\",value:function _getNewTargetNode(x,y){var controlNodeStyle=util.deepExtend({},this.options.controlNodeStyle);controlNodeStyle.id=\"targetNode\"+util.randomUUID();controlNodeStyle.hidden=false;controlNodeStyle.physics=false;controlNodeStyle.x=x;controlNodeStyle.y=y;var node=this.body.functions.createNode(controlNodeStyle);node.shape.boundingBox={left:x,right:x,top:y,bottom:y};return node}},{key:\"_createEditButton\",value:function _createEditButton(){this._clean();this.manipulationDOM={};util.recursiveDOMDelete(this.editModeDiv);var locale=this.options.locales[this.options.locale];var button=this._createButton(\"editMode\",\"vis-button vis-edit vis-edit-mode\",locale[\"edit\"]||this.options.locales[\"en\"][\"edit\"]);this.editModeDiv.appendChild(button);this._bindHammerToDiv(button,this.toggleEditMode.bind(this))}},{key:\"_clean\",value:function _clean(){this.inMode=false;if(this.guiEnabled===true){util.recursiveDOMDelete(this.editModeDiv);util.recursiveDOMDelete(this.manipulationDiv);this._cleanManipulatorHammers()}this._cleanupTemporaryNodesAndEdges();this._unbindTemporaryUIs();this._unbindTemporaryEvents();this.body.emitter.emit(\"restorePhysics\")}},{key:\"_cleanManipulatorHammers\",value:function _cleanManipulatorHammers(){if(this.manipulationHammers.length!=0){for(var i=0;i<this.manipulationHammers.length;i++){this.manipulationHammers[i].destroy()}this.manipulationHammers=[]}}},{key:\"_removeManipulationDOM\",value:function _removeManipulationDOM(){this._clean();util.recursiveDOMDelete(this.manipulationDiv);util.recursiveDOMDelete(this.editModeDiv);util.recursiveDOMDelete(this.closeDiv);if(this.manipulationDiv){this.canvas.frame.removeChild(this.manipulationDiv)}if(this.editModeDiv){this.canvas.frame.removeChild(this.editModeDiv)}if(this.closeDiv){this.canvas.frame.removeChild(this.closeDiv)}this.manipulationDiv=undefined;this.editModeDiv=undefined;this.closeDiv=undefined}},{key:\"_createSeperator\",value:function _createSeperator(){var index=arguments.length>0&&arguments[0]!==undefined?arguments[0]:1;this.manipulationDOM[\"seperatorLineDiv\"+index]=document.createElement(\"div\");this.manipulationDOM[\"seperatorLineDiv\"+index].className=\"vis-separator-line\";this.manipulationDiv.appendChild(this.manipulationDOM[\"seperatorLineDiv\"+index])}},{key:\"_createAddNodeButton\",value:function _createAddNodeButton(locale){var button=this._createButton(\"addNode\",\"vis-button vis-add\",locale[\"addNode\"]||this.options.locales[\"en\"][\"addNode\"]);this.manipulationDiv.appendChild(button);this._bindHammerToDiv(button,this.addNodeMode.bind(this))}},{key:\"_createAddEdgeButton\",value:function _createAddEdgeButton(locale){var button=this._createButton(\"addEdge\",\"vis-button vis-connect\",locale[\"addEdge\"]||this.options.locales[\"en\"][\"addEdge\"]);this.manipulationDiv.appendChild(button);this._bindHammerToDiv(button,this.addEdgeMode.bind(this))}},{key:\"_createEditNodeButton\",value:function _createEditNodeButton(locale){var button=this._createButton(\"editNode\",\"vis-button vis-edit\",locale[\"editNode\"]||this.options.locales[\"en\"][\"editNode\"]);this.manipulationDiv.appendChild(button);this._bindHammerToDiv(button,this.editNode.bind(this))}},{key:\"_createEditEdgeButton\",value:function _createEditEdgeButton(locale){var button=this._createButton(\"editEdge\",\"vis-button vis-edit\",locale[\"editEdge\"]||this.options.locales[\"en\"][\"editEdge\"]);this.manipulationDiv.appendChild(button);this._bindHammerToDiv(button,this.editEdgeMode.bind(this))}},{key:\"_createDeleteButton\",value:function _createDeleteButton(locale){var deleteBtnClass;if(this.options.rtl){deleteBtnClass=\"vis-button vis-delete-rtl\"}else{deleteBtnClass=\"vis-button vis-delete\"}var button=this._createButton(\"delete\",deleteBtnClass,locale[\"del\"]||this.options.locales[\"en\"][\"del\"]);this.manipulationDiv.appendChild(button);this._bindHammerToDiv(button,this.deleteSelected.bind(this))}},{key:\"_createBackButton\",value:function _createBackButton(locale){\nvar button=this._createButton(\"back\",\"vis-button vis-back\",locale[\"back\"]||this.options.locales[\"en\"][\"back\"]);this.manipulationDiv.appendChild(button);this._bindHammerToDiv(button,this.showManipulatorToolbar.bind(this))}},{key:\"_createButton\",value:function _createButton(id,className,label){var labelClassName=arguments.length>3&&arguments[3]!==undefined?arguments[3]:\"vis-label\";this.manipulationDOM[id+\"Div\"]=document.createElement(\"div\");this.manipulationDOM[id+\"Div\"].className=className;this.manipulationDOM[id+\"Label\"]=document.createElement(\"div\");this.manipulationDOM[id+\"Label\"].className=labelClassName;this.manipulationDOM[id+\"Label\"].innerHTML=label;this.manipulationDOM[id+\"Div\"].appendChild(this.manipulationDOM[id+\"Label\"]);return this.manipulationDOM[id+\"Div\"]}},{key:\"_createDescription\",value:function _createDescription(label){this.manipulationDiv.appendChild(this._createButton(\"description\",\"vis-button vis-none\",label))}},{key:\"_temporaryBindEvent\",value:function _temporaryBindEvent(event,newFunction){this.temporaryEventFunctions.push({event:event,boundFunction:newFunction});this.body.emitter.on(event,newFunction)}},{key:\"_temporaryBindUI\",value:function _temporaryBindUI(UIfunctionName,newFunction){if(this.body.eventListeners[UIfunctionName]!==undefined){this.temporaryUIFunctions[UIfunctionName]=this.body.eventListeners[UIfunctionName];this.body.eventListeners[UIfunctionName]=newFunction}else{throw new Error(\"This UI function does not exist. Typo? You tried: \"+UIfunctionName+\" possible are: \"+(0,_stringify2[\"default\"])((0,_keys2[\"default\"])(this.body.eventListeners)))}}},{key:\"_unbindTemporaryUIs\",value:function _unbindTemporaryUIs(){for(var functionName in this.temporaryUIFunctions){if(this.temporaryUIFunctions.hasOwnProperty(functionName)){this.body.eventListeners[functionName]=this.temporaryUIFunctions[functionName];delete this.temporaryUIFunctions[functionName]}}this.temporaryUIFunctions={}}},{key:\"_unbindTemporaryEvents\",value:function _unbindTemporaryEvents(){for(var i=0;i<this.temporaryEventFunctions.length;i++){var eventName=this.temporaryEventFunctions[i].event;var boundFunction=this.temporaryEventFunctions[i].boundFunction;this.body.emitter.off(eventName,boundFunction)}this.temporaryEventFunctions=[]}},{key:\"_bindHammerToDiv\",value:function _bindHammerToDiv(domElement,boundFunction){var hammer=new Hammer(domElement,{});hammerUtil.onTouch(hammer,boundFunction);this.manipulationHammers.push(hammer)}},{key:\"_cleanupTemporaryNodesAndEdges\",value:function _cleanupTemporaryNodesAndEdges(){for(var i=0;i<this.temporaryIds.edges.length;i++){this.body.edges[this.temporaryIds.edges[i]].disconnect();delete this.body.edges[this.temporaryIds.edges[i]];var indexTempEdge=this.body.edgeIndices.indexOf(this.temporaryIds.edges[i]);if(indexTempEdge!==-1){this.body.edgeIndices.splice(indexTempEdge,1)}}for(var _i=0;_i<this.temporaryIds.nodes.length;_i++){delete this.body.nodes[this.temporaryIds.nodes[_i]];var indexTempNode=this.body.nodeIndices.indexOf(this.temporaryIds.nodes[_i]);if(indexTempNode!==-1){this.body.nodeIndices.splice(indexTempNode,1)}}this.temporaryIds={nodes:[],edges:[]}}},{key:\"_controlNodeTouch\",value:function _controlNodeTouch(event){this.selectionHandler.unselectAll();this.lastTouch=this.body.functions.getPointer(event.center);this.lastTouch.translation=util.extend({},this.body.view.translation)}},{key:\"_controlNodeDragStart\",value:function _controlNodeDragStart(event){var pointer=this.lastTouch;var pointerObj=this.selectionHandler._pointerToPositionObject(pointer);var from=this.body.nodes[this.temporaryIds.nodes[0]];var to=this.body.nodes[this.temporaryIds.nodes[1]];var edge=this.body.edges[this.edgeBeingEditedId];this.selectedControlNode=undefined;var fromSelect=from.isOverlappingWith(pointerObj);var toSelect=to.isOverlappingWith(pointerObj);if(fromSelect===true){this.selectedControlNode=from;edge.edgeType.from=from}else if(toSelect===true){this.selectedControlNode=to;edge.edgeType.to=to}if(this.selectedControlNode!==undefined){this.selectionHandler.selectObject(this.selectedControlNode)}this.body.emitter.emit(\"_redraw\")}},{key:\"_controlNodeDrag\",value:function _controlNodeDrag(event){this.body.emitter.emit(\"disablePhysics\");var pointer=this.body.functions.getPointer(event.center);var pos=this.canvas.DOMtoCanvas(pointer);if(this.selectedControlNode!==undefined){this.selectedControlNode.x=pos.x;this.selectedControlNode.y=pos.y}else{var diffX=pointer.x-this.lastTouch.x;var diffY=pointer.y-this.lastTouch.y;this.body.view.translation={x:this.lastTouch.translation.x+diffX,y:this.lastTouch.translation.y+diffY}}this.body.emitter.emit(\"_redraw\")}},{key:\"_controlNodeDragEnd\",value:function _controlNodeDragEnd(event){var pointer=this.body.functions.getPointer(event.center);var pointerObj=this.selectionHandler._pointerToPositionObject(pointer);var edge=this.body.edges[this.edgeBeingEditedId];if(this.selectedControlNode===undefined){return}this.selectionHandler.unselectAll();var overlappingNodeIds=this.selectionHandler._getAllNodesOverlappingWith(pointerObj);var node=undefined;for(var i=overlappingNodeIds.length-1;i>=0;i--){if(overlappingNodeIds[i]!==this.selectedControlNode.id){node=this.body.nodes[overlappingNodeIds[i]];break}}if(node!==undefined&&this.selectedControlNode!==undefined){if(node.isCluster===true){alert(this.options.locales[this.options.locale][\"createEdgeError\"]||this.options.locales[\"en\"][\"createEdgeError\"])}else{var from=this.body.nodes[this.temporaryIds.nodes[0]];if(this.selectedControlNode.id===from.id){this._performEditEdge(node.id,edge.to.id)}else{this._performEditEdge(edge.from.id,node.id)}}}else{edge.updateEdgeType();this.body.emitter.emit(\"restorePhysics\")}this.body.emitter.emit(\"_redraw\")}},{key:\"_handleConnect\",value:function _handleConnect(event){if((new Date).valueOf()-this.touchTime>100){this.lastTouch=this.body.functions.getPointer(event.center);this.lastTouch.translation=util.extend({},this.body.view.translation);var pointer=this.lastTouch;var node=this.selectionHandler.getNodeAt(pointer);if(node!==undefined){if(node.isCluster===true){alert(this.options.locales[this.options.locale][\"createEdgeError\"]||this.options.locales[\"en\"][\"createEdgeError\"])}else{var targetNode=this._getNewTargetNode(node.x,node.y);this.body.nodes[targetNode.id]=targetNode;this.body.nodeIndices.push(targetNode.id);var connectionEdge=this.body.functions.createEdge({id:\"connectionEdge\"+util.randomUUID(),from:node.id,to:targetNode.id,physics:false,smooth:{enabled:true,type:\"continuous\",roundness:.5}});this.body.edges[connectionEdge.id]=connectionEdge;this.body.edgeIndices.push(connectionEdge.id);this.temporaryIds.nodes.push(targetNode.id);this.temporaryIds.edges.push(connectionEdge.id)}}this.touchTime=(new Date).valueOf()}}},{key:\"_dragControlNode\",value:function _dragControlNode(event){var pointer=this.body.functions.getPointer(event.center);if(this.temporaryIds.nodes[0]!==undefined){var targetNode=this.body.nodes[this.temporaryIds.nodes[0]];targetNode.x=this.canvas._XconvertDOMtoCanvas(pointer.x);targetNode.y=this.canvas._YconvertDOMtoCanvas(pointer.y);this.body.emitter.emit(\"_redraw\")}else{var diffX=pointer.x-this.lastTouch.x;var diffY=pointer.y-this.lastTouch.y;this.body.view.translation={x:this.lastTouch.translation.x+diffX,y:this.lastTouch.translation.y+diffY}}}},{key:\"_finishConnect\",value:function _finishConnect(event){var pointer=this.body.functions.getPointer(event.center);var pointerObj=this.selectionHandler._pointerToPositionObject(pointer);var connectFromId=undefined;if(this.temporaryIds.edges[0]!==undefined){connectFromId=this.body.edges[this.temporaryIds.edges[0]].fromId}var overlappingNodeIds=this.selectionHandler._getAllNodesOverlappingWith(pointerObj);var node=undefined;for(var i=overlappingNodeIds.length-1;i>=0;i--){if(this.temporaryIds.nodes.indexOf(overlappingNodeIds[i])===-1){node=this.body.nodes[overlappingNodeIds[i]];break}}this._cleanupTemporaryNodesAndEdges();if(node!==undefined){if(node.isCluster===true){alert(this.options.locales[this.options.locale][\"createEdgeError\"]||this.options.locales[\"en\"][\"createEdgeError\"])}else{if(this.body.nodes[connectFromId]!==undefined&&this.body.nodes[node.id]!==undefined){this._performAddEdge(connectFromId,node.id)}}}this.body.emitter.emit(\"_redraw\")}},{key:\"_dragStartEdge\",value:function _dragStartEdge(event){var pointer=this.lastTouch;this.selectionHandler._generateClickEvent(\"dragStart\",event,pointer,undefined,true)}},{key:\"_performAddNode\",value:function _performAddNode(clickData){var _this4=this;var defaultData={id:util.randomUUID(),x:clickData.pointer.canvas.x,y:clickData.pointer.canvas.y,label:\"new\"};if(typeof this.options.addNode===\"function\"){if(this.options.addNode.length===2){this.options.addNode(defaultData,function(finalizedData){if(finalizedData!==null&&finalizedData!==undefined&&_this4.inMode===\"addNode\"){_this4.body.data.nodes.getDataSet().add(finalizedData);_this4.showManipulatorToolbar()}})}else{this.showManipulatorToolbar();throw new Error(\"The function for add does not support two arguments (data,callback)\")}}else{this.body.data.nodes.getDataSet().add(defaultData);this.showManipulatorToolbar()}}},{key:\"_performAddEdge\",value:function _performAddEdge(sourceNodeId,targetNodeId){var _this5=this;var defaultData={from:sourceNodeId,to:targetNodeId};if(typeof this.options.addEdge===\"function\"){if(this.options.addEdge.length===2){this.options.addEdge(defaultData,function(finalizedData){if(finalizedData!==null&&finalizedData!==undefined&&_this5.inMode===\"addEdge\"){_this5.body.data.edges.getDataSet().add(finalizedData);_this5.selectionHandler.unselectAll();_this5.showManipulatorToolbar()}})}else{throw new Error(\"The function for connect does not support two arguments (data,callback)\")}}else{this.body.data.edges.getDataSet().add(defaultData);this.selectionHandler.unselectAll();this.showManipulatorToolbar()}}},{key:\"_performEditEdge\",value:function _performEditEdge(sourceNodeId,targetNodeId){var _this6=this;var defaultData={id:this.edgeBeingEditedId,from:sourceNodeId,to:targetNodeId,label:this.body.data.edges._data[this.edgeBeingEditedId].label};var eeFunct=this.options.editEdge;if((typeof eeFunct===\"undefined\"?\"undefined\":(0,_typeof3[\"default\"])(eeFunct))===\"object\"){eeFunct=eeFunct.editWithoutDrag}if(typeof eeFunct===\"function\"){if(eeFunct.length===2){eeFunct(defaultData,function(finalizedData){if(finalizedData===null||finalizedData===undefined||_this6.inMode!==\"editEdge\"){_this6.body.edges[defaultData.id].updateEdgeType();_this6.body.emitter.emit(\"_redraw\");_this6.showManipulatorToolbar()}else{_this6.body.data.edges.getDataSet().update(finalizedData);_this6.selectionHandler.unselectAll();_this6.showManipulatorToolbar()}})}else{throw new Error(\"The function for edit does not support two arguments (data, callback)\")}}else{this.body.data.edges.getDataSet().update(defaultData);this.selectionHandler.unselectAll();this.showManipulatorToolbar()}}}]);return ManipulationSystem}();exports[\"default\"]=ManipulationSystem},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _slicedToArray2=__webpack_require__(30);var _slicedToArray3=_interopRequireDefault(_slicedToArray2);var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);var _FloydWarshall=__webpack_require__(239);var _FloydWarshall2=_interopRequireDefault(_FloydWarshall);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var KamadaKawai=function(){function KamadaKawai(body,edgeLength,edgeStrength){(0,_classCallCheck3[\"default\"])(this,KamadaKawai);this.body=body;this.springLength=edgeLength;this.springConstant=edgeStrength;this.distanceSolver=new _FloydWarshall2[\"default\"]}(0,_createClass3[\"default\"])(KamadaKawai,[{key:\"setOptions\",value:function setOptions(options){if(options){if(options.springLength){this.springLength=options.springLength}if(options.springConstant){this.springConstant=options.springConstant}}}},{key:\"solve\",value:function solve(nodesArray,edgesArray){var ignoreClusters=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;var D_matrix=this.distanceSolver.getDistances(this.body,nodesArray,edgesArray);this._createL_matrix(D_matrix);this._createK_matrix(D_matrix);this._createE_matrix();var threshold=.01;var innerThreshold=1;var iterations=0;var maxIterations=Math.max(1e3,Math.min(10*this.body.nodeIndices.length,6e3));var maxInnerIterations=5;var maxEnergy=1e9;var highE_nodeId=0,dE_dx=0,dE_dy=0,delta_m=0,subIterations=0;while(maxEnergy>threshold&&iterations<maxIterations){iterations+=1;var _getHighestEnergyNode2=this._getHighestEnergyNode(ignoreClusters);var _getHighestEnergyNode3=(0,_slicedToArray3[\"default\"])(_getHighestEnergyNode2,4);highE_nodeId=_getHighestEnergyNode3[0];maxEnergy=_getHighestEnergyNode3[1];dE_dx=_getHighestEnergyNode3[2];dE_dy=_getHighestEnergyNode3[3];delta_m=maxEnergy;subIterations=0;while(delta_m>innerThreshold&&subIterations<maxInnerIterations){subIterations+=1;this._moveNode(highE_nodeId,dE_dx,dE_dy);var _getEnergy2=this._getEnergy(highE_nodeId);var _getEnergy3=(0,_slicedToArray3[\"default\"])(_getEnergy2,3);delta_m=_getEnergy3[0];dE_dx=_getEnergy3[1];dE_dy=_getEnergy3[2]}}}},{key:\"_getHighestEnergyNode\",value:function _getHighestEnergyNode(ignoreClusters){var nodesArray=this.body.nodeIndices;var nodes=this.body.nodes;var maxEnergy=0;var maxEnergyNodeId=nodesArray[0];var dE_dx_max=0,dE_dy_max=0;for(var nodeIdx=0;nodeIdx<nodesArray.length;nodeIdx++){var m=nodesArray[nodeIdx];if(nodes[m].predefinedPosition===false||nodes[m].isCluster===true&&ignoreClusters===true||nodes[m].options.fixed.x===true||nodes[m].options.fixed.y===true){var _getEnergy4=this._getEnergy(m),_getEnergy5=(0,_slicedToArray3[\"default\"])(_getEnergy4,3),delta_m=_getEnergy5[0],dE_dx=_getEnergy5[1],dE_dy=_getEnergy5[2];if(maxEnergy<delta_m){maxEnergy=delta_m;maxEnergyNodeId=m;dE_dx_max=dE_dx;dE_dy_max=dE_dy}}}return[maxEnergyNodeId,maxEnergy,dE_dx_max,dE_dy_max]}},{key:\"_getEnergy\",value:function _getEnergy(m){var _E_sums$m=(0,_slicedToArray3[\"default\"])(this.E_sums[m],2),dE_dx=_E_sums$m[0],dE_dy=_E_sums$m[1];var delta_m=Math.sqrt(Math.pow(dE_dx,2)+Math.pow(dE_dy,2));return[delta_m,dE_dx,dE_dy]}},{key:\"_moveNode\",value:function _moveNode(m,dE_dx,dE_dy){var nodesArray=this.body.nodeIndices;var nodes=this.body.nodes;var d2E_dx2=0;var d2E_dxdy=0;var d2E_dy2=0;var x_m=nodes[m].x;var y_m=nodes[m].y;var km=this.K_matrix[m];var lm=this.L_matrix[m];for(var iIdx=0;iIdx<nodesArray.length;iIdx++){var i=nodesArray[iIdx];if(i!==m){var x_i=nodes[i].x;var y_i=nodes[i].y;var kmat=km[i];var lmat=lm[i];var denominator=1/Math.pow(Math.pow(x_m-x_i,2)+Math.pow(y_m-y_i,2),1.5);d2E_dx2+=kmat*(1-lmat*Math.pow(y_m-y_i,2)*denominator);d2E_dxdy+=kmat*(lmat*(x_m-x_i)*(y_m-y_i)*denominator);d2E_dy2+=kmat*(1-lmat*Math.pow(x_m-x_i,2)*denominator)}}var A=d2E_dx2,B=d2E_dxdy,C=dE_dx,D=d2E_dy2,E=dE_dy;var dy=(C/A+E/B)/(B/A-D/B);var dx=-(B*dy+C)/A;nodes[m].x+=dx;nodes[m].y+=dy;this._updateE_matrix(m)}},{key:\"_createL_matrix\",value:function _createL_matrix(D_matrix){var nodesArray=this.body.nodeIndices;var edgeLength=this.springLength;this.L_matrix=[];for(var i=0;i<nodesArray.length;i++){this.L_matrix[nodesArray[i]]={};for(var j=0;j<nodesArray.length;j++){this.L_matrix[nodesArray[i]][nodesArray[j]]=edgeLength*D_matrix[nodesArray[i]][nodesArray[j]]}}}},{key:\"_createK_matrix\",value:function _createK_matrix(D_matrix){var nodesArray=this.body.nodeIndices;var edgeStrength=this.springConstant;this.K_matrix=[];for(var i=0;i<nodesArray.length;i++){this.K_matrix[nodesArray[i]]={};for(var j=0;j<nodesArray.length;j++){this.K_matrix[nodesArray[i]][nodesArray[j]]=edgeStrength*Math.pow(D_matrix[nodesArray[i]][nodesArray[j]],-2)}}}},{key:\"_createE_matrix\",value:function _createE_matrix(){var nodesArray=this.body.nodeIndices;var nodes=this.body.nodes;this.E_matrix={};this.E_sums={};for(var mIdx=0;mIdx<nodesArray.length;mIdx++){this.E_matrix[nodesArray[mIdx]]=[]}for(var _mIdx=0;_mIdx<nodesArray.length;_mIdx++){var m=nodesArray[_mIdx];var x_m=nodes[m].x;var y_m=nodes[m].y;var dE_dx=0;var dE_dy=0;for(var iIdx=_mIdx;iIdx<nodesArray.length;iIdx++){var i=nodesArray[iIdx];if(i!==m){var x_i=nodes[i].x;var y_i=nodes[i].y;var denominator=1/Math.sqrt(Math.pow(x_m-x_i,2)+Math.pow(y_m-y_i,2));this.E_matrix[m][iIdx]=[this.K_matrix[m][i]*(x_m-x_i-this.L_matrix[m][i]*(x_m-x_i)*denominator),this.K_matrix[m][i]*(y_m-y_i-this.L_matrix[m][i]*(y_m-y_i)*denominator)];this.E_matrix[i][_mIdx]=this.E_matrix[m][iIdx];dE_dx+=this.E_matrix[m][iIdx][0];dE_dy+=this.E_matrix[m][iIdx][1]}}this.E_sums[m]=[dE_dx,dE_dy]}}},{key:\"_updateE_matrix\",value:function _updateE_matrix(m){var nodesArray=this.body.nodeIndices;var nodes=this.body.nodes;var colm=this.E_matrix[m];var kcolm=this.K_matrix[m];var lcolm=this.L_matrix[m];var x_m=nodes[m].x;var y_m=nodes[m].y;var dE_dx=0;var dE_dy=0;for(var iIdx=0;iIdx<nodesArray.length;iIdx++){var i=nodesArray[iIdx];if(i!==m){var cell=colm[iIdx];var oldDx=cell[0];var oldDy=cell[1];var x_i=nodes[i].x;var y_i=nodes[i].y;var denominator=1/Math.sqrt(Math.pow(x_m-x_i,2)+Math.pow(y_m-y_i,2));var dx=kcolm[i]*(x_m-x_i-lcolm[i]*(x_m-x_i)*denominator);var dy=kcolm[i]*(y_m-y_i-lcolm[i]*(y_m-y_i)*denominator);colm[iIdx]=[dx,dy];dE_dx+=dx;dE_dy+=dy;var sum=this.E_sums[i];sum[0]+=dx-oldDx;sum[1]+=dy-oldDy}}this.E_sums[m]=[dE_dx,dE_dy]}}]);return KamadaKawai}();exports[\"default\"]=KamadaKawai},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _classCallCheck2=__webpack_require__(0);var _classCallCheck3=_interopRequireDefault(_classCallCheck2);var _createClass2=__webpack_require__(1);var _createClass3=_interopRequireDefault(_createClass2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var FloydWarshall=function(){function FloydWarshall(){(0,_classCallCheck3[\"default\"])(this,FloydWarshall)}(0,_createClass3[\"default\"])(FloydWarshall,[{key:\"getDistances\",value:function getDistances(body,nodesArray,edgesArray){var D_matrix={};var edges=body.edges;for(var i=0;i<nodesArray.length;i++){var node=nodesArray[i];var cell={};D_matrix[node]=cell;for(var j=0;j<nodesArray.length;j++){cell[nodesArray[j]]=i==j?0:1e9}}for(var _i=0;_i<edgesArray.length;_i++){var edge=edges[edgesArray[_i]];if(edge.connected===true&&D_matrix[edge.fromId]!==undefined&&D_matrix[edge.toId]!==undefined){D_matrix[edge.fromId][edge.toId]=1;D_matrix[edge.toId][edge.fromId]=1}}var nodeCount=nodesArray.length;for(var k=0;k<nodeCount;k++){var knode=nodesArray[k];var kcolm=D_matrix[knode];for(var _i2=0;_i2<nodeCount-1;_i2++){var inode=nodesArray[_i2];var icolm=D_matrix[inode];for(var _j=_i2+1;_j<nodeCount;_j++){var jnode=nodesArray[_j];var jcolm=D_matrix[jnode];var val=Math.min(icolm[jnode],icolm[knode]+kcolm[jnode]);icolm[jnode]=val;jcolm[inode]=val}}}return D_matrix}}]);return FloydWarshall}();exports[\"default\"]=FloydWarshall}])});\n",
"type": "application/javascript",
"module-type": "library"
}
}
}
$:/plugins/felixhayashi/tiddlymap/dialog/fullscreenTiddlerEditor/draft
$:/plugins/felixhayashi/tiddlymap/dialog/fullscreenTiddlerEditor/draft
$:/plugins/felixhayashi/tiddlymap/dialog/fullscreenTiddlerEditor/draft
$:/plugins/felixhayashi/tiddlymap/dialog/fullscreenTiddlerEditor/draft
$:/plugins/felixhayashi/tiddlymap/dialog/fullscreenTiddlerEditor/draft
$:/plugins/felixhayashi/tiddlymap/dialog/fullscreenTiddlerEditor/draft
$:/plugins/felixhayashi/tiddlymap/dialog/fullscreenTiddlerEditor/draft
$:/plugins/felixhayashi/tiddlymap/dialog/fullscreenTiddlerEditor/draft
$:/plugins/felixhayashi/tiddlymap/dialog/fullscreenTiddlerEditor/draft
$:/plugins/felixhayashi/tiddlymap/dialog/fullscreenTiddlerEditor/draft
$:/core/ui/ControlPanel/Plugins
$:/plugins/felixhayashi/tiddlymap/dialog/fullscreenTiddlerEditor/draft
$:/plugins/felixhayashi/tiddlymap/dialog/fullscreenTiddlerEditor/draft
$:/plugins/felixhayashi/tiddlymap/dialog/fullscreenTiddlerEditor/draft
$:/plugins/felixhayashi/tiddlymap/dialog/fullscreenTiddlerEditor/draft
$:/plugins/felixhayashi/tiddlymap/dialog/fullscreenTiddlerEditor/draft
$:/plugins/felixhayashi/tiddlymap/hook/editor
$:/plugins/felixhayashi/tiddlymap/dialog/MapElementTypeManager/generalSettings
{
"tiddlers": {
"$:/info/browser": {
"title": "$:/info/browser",
"text": "yes"
},
"$:/info/node": {
"title": "$:/info/node",
"text": "no"
},
"$:/info/url/full": {
"title": "$:/info/url/full",
"text": "file:///C:/Users/Administrator/Desktop/empty.html"
},
"$:/info/url/host": {
"title": "$:/info/url/host",
"text": ""
},
"$:/info/url/hostname": {
"title": "$:/info/url/hostname",
"text": ""
},
"$:/info/url/protocol": {
"title": "$:/info/url/protocol",
"text": "file:"
},
"$:/info/url/port": {
"title": "$:/info/url/port",
"text": ""
},
"$:/info/url/pathname": {
"title": "$:/info/url/pathname",
"text": "/C:/Users/Administrator/Desktop/empty.html"
},
"$:/info/url/search": {
"title": "$:/info/url/search",
"text": ""
},
"$:/info/url/origin": {
"title": "$:/info/url/origin",
"text": "file://"
},
"$:/info/browser/screen/width": {
"title": "$:/info/browser/screen/width",
"text": "1600"
},
"$:/info/browser/screen/height": {
"title": "$:/info/browser/screen/height",
"text": "900"
},
"$:/info/browser/language": {
"title": "$:/info/browser/language",
"text": "zh-CN"
}
}
}
{
"tiddlers": {
"$:/themes/tiddlywiki/snowwhite/base": {
"title": "$:/themes/tiddlywiki/snowwhite/base",
"tags": "[[$:/tags/Stylesheet]]",
"text": "\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline\n\n.tc-sidebar-header {\n\ttext-shadow: 0 1px 0 <<colour sidebar-foreground-shadow>>;\n}\n\n.tc-tiddler-info {\n\t<<box-shadow \"inset 1px 2px 3px rgba(0,0,0,0.1)\">>\n}\n\n@media screen {\n\t.tc-tiddler-frame {\n\t\t<<box-shadow \"1px 1px 5px rgba(0, 0, 0, 0.3)\">>\n\t}\n}\n\n@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\t.tc-tiddler-frame {\n\t\t<<box-shadow none>>\n\t}\n}\n\n.tc-page-controls button svg, .tc-tiddler-controls button svg, .tc-topbar button svg {\n\t<<transition \"fill 150ms ease-in-out\">>\n}\n\n.tc-tiddler-controls button.tc-selected,\n.tc-page-controls button.tc-selected {\n\t<<filter \"drop-shadow(0px -1px 2px rgba(0,0,0,0.25))\">>\n}\n\n.tc-tiddler-frame input.tc-edit-texteditor {\n\t<<box-shadow \"inset 0 1px 8px rgba(0, 0, 0, 0.15)\">>\n}\n\n.tc-edit-tags {\n\t<<box-shadow \"inset 0 1px 8px rgba(0, 0, 0, 0.15)\">>\n}\n\n.tc-tiddler-frame .tc-edit-tags input.tc-edit-texteditor {\n\t<<box-shadow \"none\">>\n\tborder: none;\n\toutline: none;\n}\n\ntextarea.tc-edit-texteditor {\n\tfont-family: {{$:/themes/tiddlywiki/vanilla/settings/editorfontfamily}};\n}\n\ncanvas.tc-edit-bitmapeditor {\n\t<<box-shadow \"2px 2px 5px rgba(0, 0, 0, 0.5)\">>\n}\n\n.tc-drop-down {\n\tborder-radius: 4px;\n\t<<box-shadow \"2px 2px 10px rgba(0, 0, 0, 0.5)\">>\n}\n\n.tc-block-dropdown {\n\tborder-radius: 4px;\n\t<<box-shadow \"2px 2px 10px rgba(0, 0, 0, 0.5)\">>\n}\n\n.tc-modal {\n\tborder-radius: 6px;\n\t<<box-shadow \"0 3px 7px rgba(0,0,0,0.3)\">>\n}\n\n.tc-modal-footer {\n\tborder-radius: 0 0 6px 6px;\n\t<<box-shadow \"inset 0 1px 0 #fff\">>;\n}\n\n\n.tc-alert {\n\tborder-radius: 6px;\n\t<<box-shadow \"0 3px 7px rgba(0,0,0,0.6)\">>\n}\n\n.tc-notification {\n\tborder-radius: 6px;\n\t<<box-shadow \"0 3px 7px rgba(0,0,0,0.3)\">>\n\ttext-shadow: 0 1px 0 rgba(255,255,255, 0.8);\n}\n\n.tc-sidebar-lists .tc-tab-set .tc-tab-divider {\n\tborder-top: none;\n\theight: 1px;\n\t<<background-linear-gradient \"left, rgba(0,0,0,0.15) 0%, rgba(0,0,0,0.0) 100%\">>\n}\n\n.tc-more-sidebar > .tc-tab-set > .tc-tab-buttons > button {\n\t<<background-linear-gradient \"left, rgba(0,0,0,0.01) 0%, rgba(0,0,0,0.1) 100%\">>\n}\n\n.tc-more-sidebar > .tc-tab-set > .tc-tab-buttons > button.tc-tab-selected {\n\t<<background-linear-gradient \"left, rgba(0,0,0,0.05) 0%, rgba(255,255,255,0.05) 100%\">>\n}\n\n.tc-message-box img {\n\t<<box-shadow \"1px 1px 3px rgba(0,0,0,0.5)\">>\n}\n\n.tc-plugin-info {\n\t<<box-shadow \"1px 1px 3px rgba(0,0,0,0.5)\">>\n}\n"
}
}
}
{
"tiddlers": {
"$:/themes/tiddlywiki/vanilla/themetweaks": {
"title": "$:/themes/tiddlywiki/vanilla/themetweaks",
"tags": "$:/tags/ControlPanel/Appearance",
"caption": "{{$:/language/ThemeTweaks/ThemeTweaks}}",
"text": "\\define lingo-base() $:/language/ThemeTweaks/\n\n\\define replacement-text()\n[img[$(imageTitle)$]]\n\\end\n\n\\define backgroundimage-dropdown()\n<div class=\"tc-drop-down-wrapper\">\n<$button popup=<<qualify \"$:/state/popup/themetweaks/backgroundimage\">> class=\"tc-btn-invisible tc-btn-dropdown\">{{$:/core/images/down-arrow}}</$button>\n<$reveal state=<<qualify \"$:/state/popup/themetweaks/backgroundimage\">> type=\"popup\" position=\"belowleft\" text=\"\" default=\"\">\n<div class=\"tc-drop-down\">\n<$macrocall $name=\"image-picker\" actions=\"\"\"\n\n<$action-setfield\n\t$tiddler=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimage\"\n\t$value=<<imageTitle>>\n/>\n\n\"\"\"/>\n</div>\n</$reveal>\n</div>\n\\end\n\n\\define backgroundimageattachment-dropdown()\n<$select tiddler=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment\" default=\"scroll\">\n<option value=\"scroll\"><<lingo Settings/BackgroundImageAttachment/Scroll>></option>\n<option value=\"fixed\"><<lingo Settings/BackgroundImageAttachment/Fixed>></option>\n</$select>\n\\end\n\n\\define backgroundimagesize-dropdown()\n<$select tiddler=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize\" default=\"scroll\">\n<option value=\"auto\"><<lingo Settings/BackgroundImageSize/Auto>></option>\n<option value=\"cover\"><<lingo Settings/BackgroundImageSize/Cover>></option>\n<option value=\"contain\"><<lingo Settings/BackgroundImageSize/Contain>></option>\n</$select>\n\\end\n\n<<lingo ThemeTweaks/Hint>>\n\n! <<lingo Options>>\n\n|<$link to=\"$:/themes/tiddlywiki/vanilla/options/sidebarlayout\"><<lingo Options/SidebarLayout>></$link> |<$select tiddler=\"$:/themes/tiddlywiki/vanilla/options/sidebarlayout\"><option value=\"fixed-fluid\"><<lingo Options/SidebarLayout/Fixed-Fluid>></option><option value=\"fluid-fixed\"><<lingo Options/SidebarLayout/Fluid-Fixed>></option></$select> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/options/stickytitles\"><<lingo Options/StickyTitles>></$link><br>//<<lingo Options/StickyTitles/Hint>>// |<$select tiddler=\"$:/themes/tiddlywiki/vanilla/options/stickytitles\"><option value=\"no\">{{$:/language/No}}</option><option value=\"yes\">{{$:/language/Yes}}</option></$select> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/options/codewrapping\"><<lingo Options/CodeWrapping>></$link> |<$select tiddler=\"$:/themes/tiddlywiki/vanilla/options/codewrapping\"><option value=\"pre\">{{$:/language/No}}</option><option value=\"pre-wrap\">{{$:/language/Yes}}</option></$select> |\n\n! <<lingo Settings>>\n\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/fontfamily\"><<lingo Settings/FontFamily>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/settings/fontfamily\" default=\"\" tag=\"input\"/> | |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/codefontfamily\"><<lingo Settings/CodeFontFamily>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/settings/codefontfamily\" default=\"\" tag=\"input\"/> | |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/editorfontfamily\"><<lingo Settings/EditorFontFamily>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/settings/editorfontfamily\" default=\"\" tag=\"input\"/> | |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimage\"><<lingo Settings/BackgroundImage>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimage\" default=\"\" tag=\"input\"/> |<<backgroundimage-dropdown>> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment\"><<lingo Settings/BackgroundImageAttachment>></$link> |<<backgroundimageattachment-dropdown>> | |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize\"><<lingo Settings/BackgroundImageSize>></$link> |<<backgroundimagesize-dropdown>> | |\n\n! <<lingo Metrics>>\n\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/fontsize\"><<lingo Metrics/FontSize>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/fontsize\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/lineheight\"><<lingo Metrics/LineHeight>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/lineheight\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize\"><<lingo Metrics/BodyFontSize>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/bodylineheight\"><<lingo Metrics/BodyLineHeight>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/bodylineheight\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/storyleft\"><<lingo Metrics/StoryLeft>></$link><br>//<<lingo Metrics/StoryLeft/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/storyleft\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/storytop\"><<lingo Metrics/StoryTop>></$link><br>//<<lingo Metrics/StoryTop/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/storytop\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/storyright\"><<lingo Metrics/StoryRight>></$link><br>//<<lingo Metrics/StoryRight/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/storyright\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/storywidth\"><<lingo Metrics/StoryWidth>></$link><br>//<<lingo Metrics/StoryWidth/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/storywidth\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth\"><<lingo Metrics/TiddlerWidth>></$link><br>//<<lingo Metrics/TiddlerWidth/Hint>>//<br> |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint\"><<lingo Metrics/SidebarBreakpoint>></$link><br>//<<lingo Metrics/SidebarBreakpoint/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth\"><<lingo Metrics/SidebarWidth>></$link><br>//<<lingo Metrics/SidebarWidth/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth\" default=\"\" tag=\"input\"/> |\n"
},
"$:/themes/tiddlywiki/vanilla/base": {
"title": "$:/themes/tiddlywiki/vanilla/base",
"tags": "[[$:/tags/Stylesheet]]",
"text": "\\define custom-background-datauri()\n<$set name=\"background\" value={{$:/themes/tiddlywiki/vanilla/settings/backgroundimage}}>\n<$list filter=\"[<background>is[image]]\">\n`background: url(`\n<$list filter=\"[<background>!has[_canonical_uri]]\">\n`\"`<$macrocall $name=\"datauri\" title={{$:/themes/tiddlywiki/vanilla/settings/backgroundimage}}/>`\"`\n</$list>\n<$list filter=\"[<background>has[_canonical_uri]]\">\n`\"`<$view tiddler={{$:/themes/tiddlywiki/vanilla/settings/backgroundimage}} field=\"_canonical_uri\"/>`\"`\n</$list>\n`) center center;`\n`background-attachment: `{{$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment}}`;\n-webkit-background-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}`;\n-moz-background-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}`;\n-o-background-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}`;\nbackground-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}`;`\n</$list>\n</$set>\n\\end\n\n\\define if-fluid-fixed(text,hiddenSidebarText)\n<$reveal state=\"$:/themes/tiddlywiki/vanilla/options/sidebarlayout\" type=\"match\" text=\"fluid-fixed\">\n$text$\n<$reveal state=\"$:/state/sidebar\" type=\"nomatch\" text=\"yes\" default=\"yes\">\n$hiddenSidebarText$\n</$reveal>\n</$reveal>\n\\end\n\n\\define if-editor-height-fixed(then,else)\n<$reveal state=\"$:/config/TextEditor/EditorHeight/Mode\" type=\"match\" text=\"fixed\">\n$then$\n</$reveal>\n<$reveal state=\"$:/config/TextEditor/EditorHeight/Mode\" type=\"match\" text=\"auto\">\n$else$\n</$reveal>\n\\end\n\n\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline macrocallblock\n\n/*\n** Start with the normalize CSS reset, and then belay some of its effects\n*/\n\n{{$:/themes/tiddlywiki/vanilla/reset}}\n\n*, input[type=\"search\"] {\n\tbox-sizing: border-box;\n\t-moz-box-sizing: border-box;\n\t-webkit-box-sizing: border-box;\n}\n\nhtml button {\n\tline-height: 1.2;\n\tcolor: <<colour button-foreground>>;\n\tbackground: <<colour button-background>>;\n\tborder-color: <<colour button-border>>;\n}\n\n/*\n** Basic element styles\n*/\n\nhtml {\n\tfont-family: {{$:/themes/tiddlywiki/vanilla/settings/fontfamily}};\n\ttext-rendering: optimizeLegibility; /* Enables kerning and ligatures etc. */\n\t-webkit-font-smoothing: antialiased;\n\t-moz-osx-font-smoothing: grayscale;\n}\n\nhtml:-webkit-full-screen {\n\tbackground-color: <<colour page-background>>;\n}\n\nbody.tc-body {\n\tfont-size: {{$:/themes/tiddlywiki/vanilla/metrics/fontsize}};\n\tline-height: {{$:/themes/tiddlywiki/vanilla/metrics/lineheight}};\n\tword-wrap: break-word;\n\t<<custom-background-datauri>>\n\tcolor: <<colour foreground>>;\n\tbackground-color: <<colour page-background>>;\n\tfill: <<colour foreground>>;\n}\n\n<<if-background-attachment \"\"\"\n\nbody.tc-body {\n background-color: transparent;\n}\n\n\"\"\">>\n\nh1, h2, h3, h4, h5, h6 {\n\tline-height: 1.2;\n\tfont-weight: 300;\n}\n\npre {\n\tdisplay: block;\n\tpadding: 14px;\n\tmargin-top: 1em;\n\tmargin-bottom: 1em;\n\tword-break: normal;\n\tword-wrap: break-word;\n\twhite-space: {{$:/themes/tiddlywiki/vanilla/options/codewrapping}};\n\tbackground-color: <<colour pre-background>>;\n\tborder: 1px solid <<colour pre-border>>;\n\tpadding: 0 3px 2px;\n\tborder-radius: 3px;\n\tfont-family: {{$:/themes/tiddlywiki/vanilla/settings/codefontfamily}};\n}\n\ncode {\n\tcolor: <<colour code-foreground>>;\n\tbackground-color: <<colour code-background>>;\n\tborder: 1px solid <<colour code-border>>;\n\twhite-space: {{$:/themes/tiddlywiki/vanilla/options/codewrapping}};\n\tpadding: 0 3px 2px;\n\tborder-radius: 3px;\n\tfont-family: {{$:/themes/tiddlywiki/vanilla/settings/codefontfamily}};\n}\n\nblockquote {\n\tborder-left: 5px solid <<colour blockquote-bar>>;\n\tmargin-left: 25px;\n\tpadding-left: 10px;\n\tquotes: \"\\201C\"\"\\201D\"\"\\2018\"\"\\2019\";\n}\n\nblockquote > div {\n\tmargin-top: 1em;\n\tmargin-bottom: 1em;\n}\n\nblockquote.tc-big-quote {\n\tfont-family: Georgia, serif;\n\tposition: relative;\n\tbackground: <<colour pre-background>>;\n\tborder-left: none;\n\tmargin-left: 50px;\n\tmargin-right: 50px;\n\tpadding: 10px;\n border-radius: 8px;\n}\n\nblockquote.tc-big-quote cite:before {\n\tcontent: \"\\2014 \\2009\";\n}\n\nblockquote.tc-big-quote:before {\n\tfont-family: Georgia, serif;\n\tcolor: <<colour blockquote-bar>>;\n\tcontent: open-quote;\n\tfont-size: 8em;\n\tline-height: 0.1em;\n\tmargin-right: 0.25em;\n\tvertical-align: -0.4em;\n\tposition: absolute;\n left: -50px;\n top: 42px;\n}\n\nblockquote.tc-big-quote:after {\n\tfont-family: Georgia, serif;\n\tcolor: <<colour blockquote-bar>>;\n\tcontent: close-quote;\n\tfont-size: 8em;\n\tline-height: 0.1em;\n\tmargin-right: 0.25em;\n\tvertical-align: -0.4em;\n\tposition: absolute;\n right: -80px;\n bottom: -20px;\n}\n\ndl dt {\n\tfont-weight: bold;\n\tmargin-top: 6px;\n}\n\nbutton, textarea, input, select {\n\toutline-color: <<colour primary>>;\n}\n\ntextarea,\ninput[type=text],\ninput[type=search],\ninput[type=\"\"],\ninput:not([type]) {\n\tcolor: <<colour foreground>>;\n\tbackground: <<colour background>>;\n}\n\ninput[type=\"checkbox\"] {\n vertical-align: middle;\n}\n\n.tc-muted {\n\tcolor: <<colour muted-foreground>>;\n}\n\nsvg.tc-image-button {\n\tpadding: 0px 1px 1px 0px;\n}\n\n.tc-icon-wrapper > svg {\n\twidth: 1em;\n\theight: 1em;\n}\n\nkbd {\n\tdisplay: inline-block;\n\tpadding: 3px 5px;\n\tfont-size: 0.8em;\n\tline-height: 1.2;\n\tcolor: <<colour foreground>>;\n\tvertical-align: middle;\n\tbackground-color: <<colour background>>;\n\tborder: solid 1px <<colour muted-foreground>>;\n\tborder-bottom-color: <<colour muted-foreground>>;\n\tborder-radius: 3px;\n\tbox-shadow: inset 0 -1px 0 <<colour muted-foreground>>;\n}\n\n/*\nMarkdown likes putting code elements inside pre elements\n*/\npre > code {\n\tpadding: 0;\n\tborder: none;\n\tbackground-color: inherit;\n\tcolor: inherit;\n}\n\ntable {\n\tborder: 1px solid <<colour table-border>>;\n\twidth: auto;\n\tmax-width: 100%;\n\tcaption-side: bottom;\n\tmargin-top: 1em;\n\tmargin-bottom: 1em;\n\t/* next 2 elements needed, since normalize 8.0.1 */\n\tborder-collapse: collapse;\n\tborder-spacing: 0;\n}\n\ntable th, table td {\n\tpadding: 0 7px 0 7px;\n\tborder-top: 1px solid <<colour table-border>>;\n\tborder-left: 1px solid <<colour table-border>>;\n}\n\ntable thead tr td, table th {\n\tbackground-color: <<colour table-header-background>>;\n\tfont-weight: bold;\n}\n\ntable tfoot tr td {\n\tbackground-color: <<colour table-footer-background>>;\n}\n\n.tc-csv-table {\n\twhite-space: nowrap;\n}\n\n.tc-tiddler-frame img,\n.tc-tiddler-frame svg,\n.tc-tiddler-frame canvas,\n.tc-tiddler-frame embed,\n.tc-tiddler-frame iframe {\n\tmax-width: 100%;\n}\n\n.tc-tiddler-body > embed,\n.tc-tiddler-body > iframe {\n\twidth: 100%;\n\theight: 600px;\n}\n\n/*\n** Links\n*/\n\nbutton.tc-tiddlylink,\na.tc-tiddlylink {\n\ttext-decoration: none;\n\tfont-weight: 500;\n\tcolor: <<colour tiddler-link-foreground>>;\n\t-webkit-user-select: inherit; /* Otherwise the draggable attribute makes links impossible to select */\n}\n\n.tc-sidebar-lists a.tc-tiddlylink {\n\tcolor: <<colour sidebar-tiddler-link-foreground>>;\n}\n\n.tc-sidebar-lists a.tc-tiddlylink:hover {\n\tcolor: <<colour sidebar-tiddler-link-foreground-hover>>;\n}\n\nbutton.tc-tiddlylink:hover,\na.tc-tiddlylink:hover {\n\ttext-decoration: underline;\n}\n\na.tc-tiddlylink-resolves {\n}\n\na.tc-tiddlylink-shadow {\n\tfont-weight: bold;\n}\n\na.tc-tiddlylink-shadow.tc-tiddlylink-resolves {\n\tfont-weight: normal;\n}\n\na.tc-tiddlylink-missing {\n\tfont-style: italic;\n}\n\na.tc-tiddlylink-external {\n\ttext-decoration: underline;\n\tcolor: <<colour external-link-foreground>>;\n\tbackground-color: <<colour external-link-background>>;\n}\n\na.tc-tiddlylink-external:visited {\n\tcolor: <<colour external-link-foreground-visited>>;\n\tbackground-color: <<colour external-link-background-visited>>;\n}\n\na.tc-tiddlylink-external:hover {\n\tcolor: <<colour external-link-foreground-hover>>;\n\tbackground-color: <<colour external-link-background-hover>>;\n}\n\n/*\n** Drag and drop styles\n*/\n\n.tc-tiddler-dragger {\n\tposition: relative;\n\tz-index: -10000;\n}\n\n.tc-tiddler-dragger-inner {\n\tposition: absolute;\n\ttop: -1000px;\n\tleft: -1000px;\n\tdisplay: inline-block;\n\tpadding: 8px 20px;\n\tfont-size: 16.9px;\n\tfont-weight: bold;\n\tline-height: 20px;\n\tcolor: <<colour dragger-foreground>>;\n\ttext-shadow: 0 1px 0 rgba(0, 0, 0, 1);\n\twhite-space: nowrap;\n\tvertical-align: baseline;\n\tbackground-color: <<colour dragger-background>>;\n\tborder-radius: 20px;\n}\n\n.tc-tiddler-dragger-cover {\n\tposition: absolute;\n\tbackground-color: <<colour page-background>>;\n}\n\n.tc-dropzone {\n\tposition: relative;\n}\n\n.tc-dropzone.tc-dragover:before {\n\tz-index: 10000;\n\tdisplay: block;\n\tposition: fixed;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbackground: <<colour dropzone-background>>;\n\ttext-align: center;\n\tcontent: \"<<lingo DropMessage>>\";\n}\n\n.tc-droppable > .tc-droppable-placeholder {\n\tdisplay: none;\n}\n\n.tc-droppable.tc-dragover > .tc-droppable-placeholder {\n\tdisplay: block;\n\tborder: 2px dashed <<colour dropzone-background>>;\n}\n\n.tc-draggable {\n\tcursor: move;\n}\n\n.tc-sidebar-tab-open .tc-droppable-placeholder, .tc-tagged-draggable-list .tc-droppable-placeholder,\n.tc-links-draggable-list .tc-droppable-placeholder {\n\tline-height: 2em;\n\theight: 2em;\n}\n\n.tc-sidebar-tab-open-item {\n\tposition: relative;\n}\n\n.tc-sidebar-tab-open .tc-btn-invisible.tc-btn-mini svg {\n\tfont-size: 0.7em;\n\tfill: <<colour muted-foreground>>;\n}\n\n/*\n** Plugin reload warning\n*/\n\n.tc-plugin-reload-warning {\n\tz-index: 1000;\n\tdisplay: block;\n\tposition: fixed;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbackground: <<colour alert-background>>;\n\ttext-align: center;\n}\n\n/*\n** Buttons\n*/\n\nbutton svg, button img, label svg, label img {\n\tvertical-align: middle;\n}\n\n.tc-btn-invisible {\n\tpadding: 0;\n\tmargin: 0;\n\tbackground: none;\n\tborder: none;\n \tcursor: pointer;\n\tcolor: <<colour foreground>>;\n}\n\n.tc-btn-boxed {\n\tfont-size: 0.6em;\n\tpadding: 0.2em;\n\tmargin: 1px;\n\tbackground: none;\n\tborder: 1px solid <<colour tiddler-controls-foreground>>;\n\tborder-radius: 0.25em;\n}\n\nhtml body.tc-body .tc-btn-boxed svg {\n\tfont-size: 1.6666em;\n}\n\n.tc-btn-boxed:hover {\n\tbackground: <<colour muted-foreground>>;\n\tcolor: <<colour background>>;\n}\n\nhtml body.tc-body .tc-btn-boxed:hover svg {\n\tfill: <<colour background>>;\n}\n\n.tc-btn-rounded {\n\tfont-size: 0.5em;\n\tline-height: 2;\n\tpadding: 0em 0.3em 0.2em 0.4em;\n\tmargin: 1px;\n\tborder: 1px solid <<colour muted-foreground>>;\n\tbackground: <<colour muted-foreground>>;\n\tcolor: <<colour background>>;\n\tborder-radius: 2em;\n}\n\nhtml body.tc-body .tc-btn-rounded svg {\n\tfont-size: 1.6666em;\n\tfill: <<colour background>>;\n}\n\n.tc-btn-rounded:hover {\n\tborder: 1px solid <<colour muted-foreground>>;\n\tbackground: <<colour background>>;\n\tcolor: <<colour muted-foreground>>;\n}\n\nhtml body.tc-body .tc-btn-rounded:hover svg {\n\tfill: <<colour muted-foreground>>;\n}\n\n.tc-btn-icon svg {\n\theight: 1em;\n\twidth: 1em;\n\tfill: <<colour muted-foreground>>;\n}\n\n.tc-btn-text {\n\tpadding: 0;\n\tmargin: 0;\n}\n\n/* used for documentation \"fake\" buttons */\n.tc-btn-standard {\n\tline-height: 1.8;\n\tcolor: #667;\n\tbackground-color: #e0e0e0;\n\tborder: 1px solid #888;\n\tpadding: 2px 1px 2px 1px;\n\tmargin: 1px 4px 1px 4px;\n}\n\n.tc-btn-big-green {\n\tdisplay: inline-block;\n\tpadding: 8px;\n\tmargin: 4px 8px 4px 8px;\n\tbackground: <<colour download-background>>;\n\tcolor: <<colour download-foreground>>;\n\tfill: <<colour download-foreground>>;\n\tborder: none;\n\tborder-radius: 2px;\n\tfont-size: 1.2em;\n\tline-height: 1.4em;\n\ttext-decoration: none;\n}\n\n.tc-btn-big-green svg,\n.tc-btn-big-green img {\n\theight: 2em;\n\twidth: 2em;\n\tvertical-align: middle;\n\tfill: <<colour download-foreground>>;\n}\n\n.tc-primary-btn {\n \tbackground: <<colour primary>>;\n}\n\n.tc-sidebar-lists input {\n\tcolor: <<colour foreground>>;\n}\n\n.tc-sidebar-lists button {\n\tcolor: <<colour sidebar-button-foreground>>;\n\tfill: <<colour sidebar-button-foreground>>;\n}\n\n.tc-sidebar-lists button.tc-btn-mini {\n\tcolor: <<colour sidebar-muted-foreground>>;\n}\n\n.tc-sidebar-lists button.tc-btn-mini:hover {\n\tcolor: <<colour sidebar-muted-foreground-hover>>;\n}\n\nbutton svg.tc-image-button, button .tc-image-button img {\n\theight: 1em;\n\twidth: 1em;\n}\n\n.tc-unfold-banner {\n\tposition: absolute;\n\tpadding: 0;\n\tmargin: 0;\n\tbackground: none;\n\tborder: none;\n\twidth: 100%;\n\twidth: calc(100% + 2px);\n\tmargin-left: -43px;\n\ttext-align: center;\n\tborder-top: 2px solid <<colour tiddler-info-background>>;\n\tmargin-top: 4px;\n}\n\n.tc-unfold-banner:hover {\n\tbackground: <<colour tiddler-info-background>>;\n\tborder-top: 2px solid <<colour tiddler-info-border>>;\n}\n\n.tc-unfold-banner svg, .tc-fold-banner svg {\n\theight: 0.75em;\n\tfill: <<colour tiddler-controls-foreground>>;\n}\n\n.tc-unfold-banner:hover svg, .tc-fold-banner:hover svg {\n\tfill: <<colour tiddler-controls-foreground-hover>>;\n}\n\n.tc-fold-banner {\n\tposition: absolute;\n\tpadding: 0;\n\tmargin: 0;\n\tbackground: none;\n\tborder: none;\n\twidth: 23px;\n\ttext-align: center;\n\tmargin-left: -35px;\n\ttop: 6px;\n\tbottom: 6px;\n}\n\n.tc-fold-banner:hover {\n\tbackground: <<colour tiddler-info-background>>;\n}\n\n@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\n\t.tc-unfold-banner {\n\t\tposition: static;\n\t\twidth: calc(100% + 59px);\n\t}\n\n\t.tc-fold-banner {\n\t\twidth: 16px;\n\t\tmargin-left: -16px;\n\t\tfont-size: 0.75em;\n\t}\n\n}\n\n/*\n** Tags and missing tiddlers\n*/\n\n.tc-tag-list-item {\n\tposition: relative;\n\tdisplay: inline-block;\n\tmargin-right: 7px;\n}\n\n.tc-tags-wrapper {\n\tmargin: 4px 0 14px 0;\n}\n\n.tc-missing-tiddler-label {\n\tfont-style: italic;\n\tfont-weight: normal;\n\tdisplay: inline-block;\n\tfont-size: 11.844px;\n\tline-height: 14px;\n\twhite-space: nowrap;\n\tvertical-align: baseline;\n}\n\nbutton.tc-tag-label, span.tc-tag-label {\n\tdisplay: inline-block;\n\tpadding: 0.16em 0.7em;\n\tfont-size: 0.9em;\n\tfont-weight: 400;\n\tline-height: 1.2em;\n\tcolor: <<colour tag-foreground>>;\n\twhite-space: nowrap;\n\tvertical-align: baseline;\n\tbackground-color: <<colour tag-background>>;\n\tborder-radius: 1em;\n}\n\n.tc-sidebar-scrollable .tc-tag-label {\n\ttext-shadow: none;\n}\n\n.tc-untagged-separator {\n\twidth: 10em;\n\tleft: 0;\n\tmargin-left: 0;\n\tborder: 0;\n\theight: 1px;\n\tbackground: <<colour tab-divider>>;\n}\n\nbutton.tc-untagged-label {\n\tbackground-color: <<colour untagged-background>>;\n}\n\n.tc-tag-label svg, .tc-tag-label img {\n\theight: 1em;\n\twidth: 1em;\n\tmargin-right: 3px; \n\tmargin-bottom: 1px;\n\tvertical-align: text-bottom;\n}\n\n.tc-edit-tags button.tc-remove-tag-button svg {\n\tfont-size: 0.7em;\n\tvertical-align: middle;\n}\n\n.tc-tag-manager-table .tc-tag-label {\n\twhite-space: normal;\n}\n\n.tc-tag-manager-tag {\n\twidth: 100%;\n}\n\nbutton.tc-btn-invisible.tc-remove-tag-button {\n\toutline: none;\n}\n\n/*\n** Page layout\n*/\n\n.tc-topbar {\n\tposition: fixed;\n\tz-index: 1200;\n}\n\n.tc-topbar-left {\n\tleft: 29px;\n\ttop: 5px;\n}\n\n.tc-topbar-right {\n\ttop: 5px;\n\tright: 29px;\n}\n\n.tc-topbar button {\n\tpadding: 8px;\n}\n\n.tc-topbar svg {\n\tfill: <<colour muted-foreground>>;\n}\n\n.tc-topbar button:hover svg {\n\tfill: <<colour foreground>>;\n}\n\n.tc-sidebar-header {\n\tcolor: <<colour sidebar-foreground>>;\n\tfill: <<colour sidebar-foreground>>;\n}\n\n.tc-sidebar-header .tc-title a.tc-tiddlylink-resolves {\n\tfont-weight: 300;\n}\n\n.tc-sidebar-header .tc-sidebar-lists p {\n\tmargin-top: 3px;\n\tmargin-bottom: 3px;\n}\n\n.tc-sidebar-header .tc-missing-tiddler-label {\n\tcolor: <<colour sidebar-foreground>>;\n}\n\n.tc-advanced-search input {\n\twidth: 60%;\n}\n\n.tc-search a svg {\n\twidth: 1.2em;\n\theight: 1.2em;\n\tvertical-align: middle;\n}\n\n.tc-page-controls {\n\tmargin-top: 14px;\n\tfont-size: 1.5em;\n}\n\n.tc-page-controls .tc-drop-down {\n font-size: 1rem;\n}\n\n.tc-page-controls button {\n\tmargin-right: 0.5em;\n}\n\n.tc-page-controls a.tc-tiddlylink:hover {\n\ttext-decoration: none;\n}\n\n.tc-page-controls img {\n\twidth: 1em;\n}\n\n.tc-page-controls svg {\n\tfill: <<colour sidebar-controls-foreground>>;\n}\n\n.tc-page-controls button:hover svg, .tc-page-controls a:hover svg {\n\tfill: <<colour sidebar-controls-foreground-hover>>;\n}\n\n.tc-menu-list-item {\n\twhite-space: nowrap;\n}\n\n.tc-menu-list-count {\n\tfont-weight: bold;\n}\n\n.tc-menu-list-subitem {\n\tpadding-left: 7px;\n}\n\n.tc-story-river {\n\tposition: relative;\n}\n\n@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\n\t.tc-sidebar-header {\n\t\tpadding: 14px;\n\t\tmin-height: 32px;\n\t\tmargin-top: {{$:/themes/tiddlywiki/vanilla/metrics/storytop}};\n\t}\n\n\t.tc-story-river {\n\t\tposition: relative;\n\t\tpadding: 0;\n\t}\n}\n\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\n\t.tc-message-box {\n\t\tmargin: 21px -21px 21px -21px;\n\t}\n\n\t.tc-sidebar-scrollable {\n\t\tposition: fixed;\n\t\ttop: {{$:/themes/tiddlywiki/vanilla/metrics/storytop}};\n\t\tleft: {{$:/themes/tiddlywiki/vanilla/metrics/storyright}};\n\t\tbottom: 0;\n\t\tright: 0;\n\t\toverflow-y: auto;\n\t\toverflow-x: auto;\n\t\t-webkit-overflow-scrolling: touch;\n\t\tmargin: 0 0 0 -42px;\n\t\tpadding: 71px 0 28px 42px;\n\t}\n\n\thtml[dir=\"rtl\"] .tc-sidebar-scrollable {\n\t\tleft: auto;\n\t\tright: {{$:/themes/tiddlywiki/vanilla/metrics/storyright}};\n\t}\n\n\t.tc-story-river {\n\t\tposition: relative;\n\t\tleft: {{$:/themes/tiddlywiki/vanilla/metrics/storyleft}};\n\t\ttop: {{$:/themes/tiddlywiki/vanilla/metrics/storytop}};\n\t\twidth: {{$:/themes/tiddlywiki/vanilla/metrics/storywidth}};\n\t\tpadding: 42px 42px 42px 42px;\n\t}\n\n<<if-no-sidebar \"\n\n\t.tc-story-river {\n\t\twidth: calc(100% - {{$:/themes/tiddlywiki/vanilla/metrics/storyleft}});\n\t}\n\n\">>\n\n}\n\n@media print {\n\n\tbody.tc-body {\n\t\tbackground-color: transparent;\n\t}\n\n\t.tc-sidebar-header, .tc-topbar {\n\t\tdisplay: none;\n\t}\n\n\t.tc-story-river {\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t}\n\n\t.tc-story-river .tc-tiddler-frame {\n\t\tmargin: 0;\n\t\tborder: none;\n\t\tpadding: 0;\n\t}\n}\n\n/*\n** Tiddler styles\n*/\n\n.tc-tiddler-frame {\n\tposition: relative;\n\tmargin-bottom: 28px;\n\tbackground-color: <<colour tiddler-background>>;\n\tborder: 1px solid <<colour tiddler-border>>;\n}\n\n{{$:/themes/tiddlywiki/vanilla/sticky}}\n\n.tc-tiddler-info {\n\tpadding: 14px 42px 14px 42px;\n\tbackground-color: <<colour tiddler-info-background>>;\n\tborder-top: 1px solid <<colour tiddler-info-border>>;\n\tborder-bottom: 1px solid <<colour tiddler-info-border>>;\n}\n\n.tc-tiddler-info p {\n\tmargin-top: 3px;\n\tmargin-bottom: 3px;\n}\n\n.tc-tiddler-info .tc-tab-buttons button.tc-tab-selected {\n\tbackground-color: <<colour tiddler-info-tab-background>>;\n\tborder-bottom: 1px solid <<colour tiddler-info-tab-background>>;\n}\n\n.tc-view-field-table {\n\twidth: 100%;\n}\n\n.tc-view-field-name {\n\twidth: 1%; /* Makes this column be as narrow as possible */\n\ttext-align: right;\n\tfont-style: italic;\n\tfont-weight: 200;\n}\n\n.tc-view-field-value {\n}\n\n@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\t.tc-tiddler-frame {\n\t\tpadding: 14px 14px 14px 14px;\n\t}\n\n\t.tc-tiddler-info {\n\t\tmargin: 0 -14px 0 -14px;\n\t}\n}\n\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\t.tc-tiddler-frame {\n\t\tpadding: 28px 42px 42px 42px;\n\t\twidth: {{$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth}};\n\t\tborder-radius: 2px;\n\t}\n\n<<if-no-sidebar \"\n\n\t.tc-tiddler-frame {\n\t\twidth: 100%;\n\t}\n\n\">>\n\n\t.tc-tiddler-info {\n\t\tmargin: 0 -42px 0 -42px;\n\t}\n}\n\n.tc-site-title,\n.tc-titlebar {\n\tfont-weight: 300;\n\tfont-size: 2.35em;\n\tline-height: 1.2em;\n\tcolor: <<colour tiddler-title-foreground>>;\n\tmargin: 0;\n}\n\n.tc-site-title {\n\tcolor: <<colour site-title-foreground>>;\n}\n\n.tc-tiddler-title-icon {\n\tvertical-align: middle;\n\tmargin-right: .1em;\n}\n\n.tc-system-title-prefix {\n\tcolor: <<colour muted-foreground>>;\n}\n\n.tc-titlebar h2 {\n\tfont-size: 1em;\n\tdisplay: inline;\n}\n\n.tc-titlebar img {\n\theight: 1em;\n}\n\n.tc-subtitle {\n\tfont-size: 0.9em;\n\tcolor: <<colour tiddler-subtitle-foreground>>;\n\tfont-weight: 300;\n}\n\n.tc-subtitle .tc-tiddlylink {\n\tmargin-right: .3em;\n}\n\n.tc-tiddler-missing .tc-title {\n font-style: italic;\n font-weight: normal;\n}\n\n.tc-tiddler-frame .tc-tiddler-controls {\n\tfloat: right;\n}\n\n.tc-tiddler-controls .tc-drop-down {\n\tfont-size: 0.6em;\n}\n\n.tc-tiddler-controls .tc-drop-down .tc-drop-down {\n\tfont-size: 1em;\n}\n\n.tc-tiddler-controls > span > button,\n.tc-tiddler-controls > span > span > button,\n.tc-tiddler-controls > span > span > span > button {\n\tvertical-align: baseline;\n\tmargin-left:5px;\n}\n\n.tc-tiddler-controls button svg, .tc-tiddler-controls button img,\n.tc-search button svg, .tc-search a svg {\n\tfill: <<colour tiddler-controls-foreground>>;\n}\n\n.tc-tiddler-controls button svg, .tc-tiddler-controls button img {\n\theight: 0.75em;\n}\n\n.tc-search button svg, .tc-search a svg {\n height: 1.2em;\n width: 1.2em;\n margin: 0 0.25em;\n}\n\n.tc-tiddler-controls button.tc-selected svg,\n.tc-page-controls button.tc-selected svg {\n\tfill: <<colour tiddler-controls-foreground-selected>>;\n}\n\n.tc-tiddler-controls button.tc-btn-invisible:hover svg,\n.tc-search button:hover svg, .tc-search a:hover svg {\n\tfill: <<colour tiddler-controls-foreground-hover>>;\n}\n\n@media print {\n\t.tc-tiddler-controls {\n\t\tdisplay: none;\n\t}\n}\n\n.tc-tiddler-help { /* Help prompts within tiddler template */\n\tcolor: <<colour muted-foreground>>;\n\tmargin-top: 14px;\n}\n\n.tc-tiddler-help a.tc-tiddlylink {\n\tcolor: <<colour very-muted-foreground>>;\n}\n\n.tc-tiddler-frame .tc-edit-texteditor {\n\twidth: 100%;\n\tmargin: 4px 0 4px 0;\n}\n\n.tc-tiddler-frame input.tc-edit-texteditor,\n.tc-tiddler-frame textarea.tc-edit-texteditor,\n.tc-tiddler-frame iframe.tc-edit-texteditor {\n\tpadding: 3px 3px 3px 3px;\n\tborder: 1px solid <<colour tiddler-editor-border>>;\n\tbackground-color: <<colour tiddler-editor-background>>;\n\tline-height: 1.3em;\n\t-webkit-appearance: none;\n\tfont-family: {{$:/themes/tiddlywiki/vanilla/settings/editorfontfamily}};\n}\n\n.tc-tiddler-frame .tc-binary-warning {\n\twidth: 100%;\n\theight: 5em;\n\ttext-align: center;\n\tpadding: 3em 3em 6em 3em;\n\tbackground: <<colour alert-background>>;\n\tborder: 1px solid <<colour alert-border>>;\n}\n\ncanvas.tc-edit-bitmapeditor {\n\tborder: 6px solid <<colour tiddler-editor-border-image>>;\n\tcursor: crosshair;\n\t-moz-user-select: none;\n\t-webkit-user-select: none;\n\t-ms-user-select: none;\n\tmargin-top: 6px;\n\tmargin-bottom: 6px;\n}\n\n.tc-edit-bitmapeditor-width {\n\tdisplay: block;\n}\n\n.tc-edit-bitmapeditor-height {\n\tdisplay: block;\n}\n\n.tc-tiddler-body {\n\tclear: both;\n}\n\n.tc-tiddler-frame .tc-tiddler-body {\n\tfont-size: {{$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize}};\n\tline-height: {{$:/themes/tiddlywiki/vanilla/metrics/bodylineheight}};\n}\n\n.tc-titlebar, .tc-tiddler-edit-title {\n\toverflow: hidden; /* https://github.com/Jermolene/TiddlyWiki5/issues/282 */\n}\n\nhtml body.tc-body.tc-single-tiddler-window {\n\tmargin: 1em;\n\tbackground: <<colour tiddler-background>>;\n}\n\n.tc-single-tiddler-window img,\n.tc-single-tiddler-window svg,\n.tc-single-tiddler-window canvas,\n.tc-single-tiddler-window embed,\n.tc-single-tiddler-window iframe {\n\tmax-width: 100%;\n}\n\n/*\n** Editor\n*/\n\n.tc-editor-toolbar {\n\tmargin-top: 8px;\n}\n\n.tc-editor-toolbar button {\n\tvertical-align: middle;\n\tbackground-color: <<colour tiddler-controls-foreground>>;\n\tcolor: <<colour tiddler-controls-foreground-selected>>;\n\tfill: <<colour tiddler-controls-foreground-selected>>;\n\tborder-radius: 4px;\n\tpadding: 3px;\n\tmargin: 2px 0 2px 4px;\n}\n\n.tc-editor-toolbar button.tc-text-editor-toolbar-item-adjunct {\n\tmargin-left: 1px;\n\twidth: 1em;\n\tborder-radius: 8px;\n}\n\n.tc-editor-toolbar button.tc-text-editor-toolbar-item-start-group {\n\tmargin-left: 11px;\n}\n\n.tc-editor-toolbar button.tc-selected {\n\tbackground-color: <<colour primary>>;\n}\n\n.tc-editor-toolbar button svg {\n\twidth: 1.6em;\n\theight: 1.2em;\n}\n\n.tc-editor-toolbar button:hover {\n\tbackground-color: <<colour tiddler-controls-foreground-selected>>;\n\tfill: <<colour background>>;\n\tcolor: <<colour background>>;\n}\n\n.tc-editor-toolbar .tc-text-editor-toolbar-more {\n\twhite-space: normal;\n}\n\n.tc-editor-toolbar .tc-text-editor-toolbar-more button {\n\tdisplay: inline-block;\n\tpadding: 3px;\n\twidth: auto;\n}\n\n.tc-editor-toolbar .tc-search-results {\n\tpadding: 0;\n}\n\n/*\n** Adjustments for fluid-fixed mode\n*/\n\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\n<<if-fluid-fixed text:\"\"\"\n\n\t.tc-story-river {\n\t\tpadding-right: 0;\n\t\tposition: relative;\n\t\twidth: auto;\n\t\tleft: 0;\n\t\tmargin-left: {{$:/themes/tiddlywiki/vanilla/metrics/storyleft}};\n\t\tmargin-right: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth}};\n\t}\n\n\t.tc-tiddler-frame {\n\t\twidth: 100%;\n\t}\n\n\t.tc-sidebar-scrollable {\n\t\tleft: auto;\n\t\tbottom: 0;\n\t\tright: 0;\n\t\twidth: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth}};\n\t}\n\n\tbody.tc-body .tc-storyview-zoomin-tiddler {\n\t\twidth: 100%;\n\t\twidth: calc(100% - 42px);\n\t}\n\n\"\"\" hiddenSidebarText:\"\"\"\n\n\t.tc-story-river {\n\t\tpadding-right: 3em;\n\t\tmargin-right: 0;\n\t}\n\n\tbody.tc-body .tc-storyview-zoomin-tiddler {\n\t\twidth: 100%;\n\t\twidth: calc(100% - 84px);\n\t}\n\n\"\"\">>\n\n}\n\n/*\n** Toolbar buttons\n*/\n\n.tc-page-controls svg.tc-image-new-button {\n fill: <<colour toolbar-new-button>>;\n}\n\n.tc-page-controls svg.tc-image-options-button {\n fill: <<colour toolbar-options-button>>;\n}\n\n.tc-page-controls svg.tc-image-save-button {\n fill: <<colour toolbar-save-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-info-button {\n fill: <<colour toolbar-info-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-edit-button {\n fill: <<colour toolbar-edit-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-close-button {\n fill: <<colour toolbar-close-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-delete-button {\n fill: <<colour toolbar-delete-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-cancel-button {\n fill: <<colour toolbar-cancel-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-done-button {\n fill: <<colour toolbar-done-button>>;\n}\n\n/*\n** Tiddler edit mode\n*/\n\n.tc-tiddler-edit-frame em.tc-edit {\n\tcolor: <<colour muted-foreground>>;\n\tfont-style: normal;\n}\n\n.tc-edit-type-dropdown a.tc-tiddlylink-missing {\n\tfont-style: normal;\n}\n\n.tc-type-selector .tc-edit-typeeditor {\n\twidth: 20%;\n}\n\n.tc-edit-tags {\n\tborder: 1px solid <<colour tiddler-editor-border>>;\n\tpadding: 4px 8px 4px 8px;\n}\n\n.tc-edit-add-tag {\n\tdisplay: inline-block;\n}\n\n.tc-edit-add-tag .tc-add-tag-name input {\n\twidth: 50%;\n}\n\n.tc-edit-add-tag .tc-keyboard {\n\tdisplay:inline;\n}\n\n.tc-edit-tags .tc-tag-label {\n\tdisplay: inline-block;\n}\n\n.tc-edit-tags-list {\n\tmargin: 14px 0 14px 0;\n}\n\n.tc-remove-tag-button {\n\tpadding-left: 4px;\n}\n\n.tc-tiddler-preview {\n\toverflow: auto;\n}\n\n.tc-tiddler-preview-preview {\n\tfloat: right;\n\twidth: 49%;\n\tborder: 1px solid <<colour tiddler-editor-border>>;\n\tmargin: 4px 0 3px 3px;\n\tpadding: 3px 3px 3px 3px;\n}\n\n<<if-editor-height-fixed then:\"\"\"\n\n.tc-tiddler-preview-preview {\n\toverflow-y: scroll;\n\theight: {{$:/config/TextEditor/EditorHeight/Height}};\n}\n\n\"\"\">>\n\n.tc-tiddler-frame .tc-tiddler-preview .tc-edit-texteditor {\n\twidth: 49%;\n}\n\n.tc-tiddler-frame .tc-tiddler-preview canvas.tc-edit-bitmapeditor {\n\tmax-width: 49%;\n}\n\n.tc-edit-fields {\n\twidth: 100%;\n}\n\n\n.tc-edit-fields table, .tc-edit-fields tr, .tc-edit-fields td {\n\tborder: none;\n\tpadding: 4px;\n}\n\n.tc-edit-fields > tbody > .tc-edit-field:nth-child(odd) {\n\tbackground-color: <<colour tiddler-editor-fields-odd>>;\n}\n\n.tc-edit-fields > tbody > .tc-edit-field:nth-child(even) {\n\tbackground-color: <<colour tiddler-editor-fields-even>>;\n}\n\n.tc-edit-field-name {\n\ttext-align: right;\n}\n\n.tc-edit-field-value input {\n\twidth: 100%;\n}\n\n.tc-edit-field-remove {\n}\n\n.tc-edit-field-remove svg {\n\theight: 1em;\n\twidth: 1em;\n\tfill: <<colour muted-foreground>>;\n\tvertical-align: middle;\n}\n\n.tc-edit-field-add-name {\n\tdisplay: inline-block;\n\twidth: 15%;\n}\n\n.tc-edit-field-add-value {\n\tdisplay: inline-block;\n\twidth: 40%;\n}\n\n.tc-edit-field-add-button {\n\tdisplay: inline-block;\n\twidth: 10%;\n}\n\n/*\n** Storyview Classes\n*/\n\n.tc-viewswitcher .tc-image-button {\n\tmargin-right: .3em;\n}\n\n.tc-storyview-zoomin-tiddler {\n\tposition: absolute;\n\tdisplay: block;\n\twidth: 100%;\n}\n\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\n\t.tc-storyview-zoomin-tiddler {\n\t\twidth: calc(100% - 84px);\n\t}\n\n}\n\n/*\n** Dropdowns\n*/\n\n.tc-btn-dropdown {\n\ttext-align: left;\n}\n\n.tc-btn-dropdown svg, .tc-btn-dropdown img {\n\theight: 1em;\n\twidth: 1em;\n\tfill: <<colour muted-foreground>>;\n}\n\n.tc-drop-down-wrapper {\n\tposition: relative;\n}\n\n.tc-drop-down {\n\tmin-width: 380px;\n\tborder: 1px solid <<colour dropdown-border>>;\n\tbackground-color: <<colour dropdown-background>>;\n\tpadding: 7px 0 7px 0;\n\tmargin: 4px 0 0 0;\n\twhite-space: nowrap;\n\ttext-shadow: none;\n\tline-height: 1.4;\n}\n\n.tc-drop-down .tc-drop-down {\n\tmargin-left: 14px;\n}\n\n.tc-drop-down button svg, .tc-drop-down a svg {\n\tfill: <<colour foreground>>;\n}\n\n.tc-drop-down button.tc-btn-invisible:hover svg {\n\tfill: <<colour foreground>>;\n}\n\n.tc-drop-down .tc-drop-down-info {\n\tpadding-left: 14px;\n}\n\n.tc-drop-down p {\n\tpadding: 0 14px 0 14px;\n}\n\n.tc-drop-down svg {\n\twidth: 1em;\n\theight: 1em;\n}\n\n.tc-drop-down img {\n\twidth: 1em;\n}\n\n.tc-drop-down a, .tc-drop-down button {\n\tdisplay: block;\n\tpadding: 0 14px 0 14px;\n\twidth: 100%;\n\ttext-align: left;\n\tcolor: <<colour foreground>>;\n\tline-height: 1.4;\n}\n\n.tc-drop-down .tc-tab-set .tc-tab-buttons button {\n\tdisplay: inline-block;\n width: auto;\n margin-bottom: 0px;\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.tc-drop-down .tc-prompt {\n\tpadding: 0 14px;\n}\n\n.tc-drop-down .tc-chooser {\n\tborder: none;\n}\n\n.tc-drop-down .tc-chooser .tc-swatches-horiz {\n\tfont-size: 0.4em;\n\tpadding-left: 1.2em;\n}\n\n.tc-drop-down .tc-file-input-wrapper {\n\twidth: 100%;\n}\n\n.tc-drop-down .tc-file-input-wrapper button {\n\tcolor: <<colour foreground>>;\n}\n\n.tc-drop-down a:hover, .tc-drop-down button:hover, .tc-drop-down .tc-file-input-wrapper:hover button {\n\tcolor: <<colour tiddler-link-background>>;\n\tbackground-color: <<colour tiddler-link-foreground>>;\n\ttext-decoration: none;\n}\n\n.tc-drop-down .tc-tab-buttons button {\n\tbackground-color: <<colour dropdown-tab-background>>;\n}\n\n.tc-drop-down .tc-tab-buttons button.tc-tab-selected {\n\tbackground-color: <<colour dropdown-tab-background-selected>>;\n\tborder-bottom: 1px solid <<colour dropdown-tab-background-selected>>;\n}\n\n.tc-drop-down-bullet {\n\tdisplay: inline-block;\n\twidth: 0.5em;\n}\n\n.tc-drop-down .tc-tab-contents a {\n\tpadding: 0 0.5em 0 0.5em;\n}\n\n.tc-block-dropdown-wrapper {\n\tposition: relative;\n}\n\n.tc-block-dropdown {\n\tposition: absolute;\n\tmin-width: 220px;\n\tborder: 1px solid <<colour dropdown-border>>;\n\tbackground-color: <<colour dropdown-background>>;\n\tpadding: 7px 0;\n\tmargin: 4px 0 0 0;\n\twhite-space: nowrap;\n\tz-index: 1000;\n\ttext-shadow: none;\n}\n\n.tc-block-dropdown.tc-search-drop-down {\n\tmargin-left: -12px;\n}\n\n.tc-block-dropdown a {\n\tdisplay: block;\n\tpadding: 4px 14px 4px 14px;\n}\n\n.tc-block-dropdown.tc-search-drop-down a {\n\tdisplay: block;\n\tpadding: 0px 10px 0px 10px;\n}\n\n.tc-drop-down .tc-dropdown-item-plain,\n.tc-block-dropdown .tc-dropdown-item-plain {\n\tpadding: 4px 14px 4px 7px;\n}\n\n.tc-drop-down .tc-dropdown-item,\n.tc-block-dropdown .tc-dropdown-item {\n\tpadding: 4px 14px 4px 7px;\n\tcolor: <<colour muted-foreground>>;\n}\n\n.tc-block-dropdown a:hover {\n\tcolor: <<colour tiddler-link-background>>;\n\tbackground-color: <<colour tiddler-link-foreground>>;\n\ttext-decoration: none;\n}\n\n.tc-search-results {\n\tpadding: 0 7px 0 7px;\n}\n\n.tc-image-chooser, .tc-colour-chooser {\n\twhite-space: normal;\n}\n\n.tc-image-chooser a,\n.tc-colour-chooser a {\n\tdisplay: inline-block;\n\tvertical-align: top;\n\ttext-align: center;\n\tposition: relative;\n}\n\n.tc-image-chooser a {\n\tborder: 1px solid <<colour muted-foreground>>;\n\tpadding: 2px;\n\tmargin: 2px;\n\twidth: 4em;\n\theight: 4em;\n}\n\n.tc-colour-chooser a {\n\tpadding: 3px;\n\twidth: 2em;\n\theight: 2em;\n\tvertical-align: middle;\n}\n\n.tc-image-chooser a:hover,\n.tc-colour-chooser a:hover {\n\tbackground: <<colour primary>>;\n\tpadding: 0px;\n\tborder: 3px solid <<colour primary>>;\n}\n\n.tc-image-chooser a svg,\n.tc-image-chooser a img {\n\tdisplay: inline-block;\n\twidth: auto;\n\theight: auto;\n\tmax-width: 3.5em;\n\tmax-height: 3.5em;\n\tposition: absolute;\n\ttop: 0;\n\tbottom: 0;\n\tleft: 0;\n\tright: 0;\n\tmargin: auto;\n}\n\n/*\n** Modals\n*/\n\n.tc-modal-wrapper {\n\tposition: fixed;\n\toverflow: auto;\n\toverflow-y: scroll;\n\ttop: 0;\n\tright: 0;\n\tbottom: 0;\n\tleft: 0;\n\tz-index: 900;\n}\n\n.tc-modal-backdrop {\n\tposition: fixed;\n\ttop: 0;\n\tright: 0;\n\tbottom: 0;\n\tleft: 0;\n\tz-index: 1000;\n\tbackground-color: <<colour modal-backdrop>>;\n}\n\n.tc-modal {\n\tz-index: 1100;\n\tbackground-color: <<colour modal-background>>;\n\tborder: 1px solid <<colour modal-border>>;\n}\n\n@media (max-width: 55em) {\n\t.tc-modal {\n\t\tposition: fixed;\n\t\ttop: 1em;\n\t\tleft: 1em;\n\t\tright: 1em;\n\t}\n\n\t.tc-modal-body {\n\t\toverflow-y: auto;\n\t\tmax-height: 400px;\n\t\tmax-height: 60vh;\n\t}\n}\n\n@media (min-width: 55em) {\n\t.tc-modal {\n\t\tposition: fixed;\n\t\ttop: 2em;\n\t\tleft: 25%;\n\t\twidth: 50%;\n\t}\n\n\t.tc-modal-body {\n\t\toverflow-y: auto;\n\t\tmax-height: 400px;\n\t\tmax-height: 60vh;\n\t}\n}\n\n.tc-modal-header {\n\tpadding: 9px 15px;\n\tborder-bottom: 1px solid <<colour modal-header-border>>;\n}\n\n.tc-modal-header h3 {\n\tmargin: 0;\n\tline-height: 30px;\n}\n\n.tc-modal-header img, .tc-modal-header svg {\n\twidth: 1em;\n\theight: 1em;\n}\n\n.tc-modal-body {\n\tpadding: 15px;\n}\n\n.tc-modal-footer {\n\tpadding: 14px 15px 15px;\n\tmargin-bottom: 0;\n\ttext-align: right;\n\tbackground-color: <<colour modal-footer-background>>;\n\tborder-top: 1px solid <<colour modal-footer-border>>;\n}\n\n/*\n** Notifications\n*/\n\n.tc-notification {\n\tposition: fixed;\n\ttop: 14px;\n\tright: 42px;\n\tz-index: 1300;\n\tmax-width: 280px;\n\tpadding: 0 14px 0 14px;\n\tbackground-color: <<colour notification-background>>;\n\tborder: 1px solid <<colour notification-border>>;\n}\n\n/*\n** Tabs\n*/\n\n.tc-tab-set.tc-vertical {\n\tdisplay: -webkit-flex;\n\tdisplay: flex;\n}\n\n.tc-tab-buttons {\n\tfont-size: 0.85em;\n\tpadding-top: 1em;\n\tmargin-bottom: -2px;\n}\n\n.tc-tab-buttons.tc-vertical {\n\tz-index: 100;\n\tdisplay: block;\n\tpadding-top: 14px;\n\tvertical-align: top;\n\ttext-align: right;\n\tmargin-bottom: inherit;\n\tmargin-right: -1px;\n\tmax-width: 33%;\n\t-webkit-flex: 0 0 auto;\n\tflex: 0 0 auto;\n}\n\n.tc-tab-buttons button.tc-tab-selected {\n\tcolor: <<colour tab-foreground-selected>>;\n\tbackground-color: <<colour tab-background-selected>>;\n\tborder-left: 1px solid <<colour tab-border-selected>>;\n\tborder-top: 1px solid <<colour tab-border-selected>>;\n\tborder-right: 1px solid <<colour tab-border-selected>>;\n}\n\n.tc-tab-buttons button {\n\tcolor: <<colour tab-foreground>>;\n\tpadding: 3px 5px 3px 5px;\n\tmargin-right: 0.3em;\n\tfont-weight: 300;\n\tborder: none;\n\tbackground: inherit;\n\tbackground-color: <<colour tab-background>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-top: 1px solid <<colour tab-border>>;\n\tborder-right: 1px solid <<colour tab-border>>;\n\tborder-top-left-radius: 2px;\n\tborder-top-right-radius: 2px;\n\tborder-bottom-left-radius: 0;\n\tborder-bottom-right-radius: 0;\n}\n\n.tc-tab-buttons.tc-vertical button {\n\tdisplay: block;\n\twidth: 100%;\n\tmargin-top: 3px;\n\tmargin-right: 0;\n\ttext-align: right;\n\tbackground-color: <<colour tab-background>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-bottom: 1px solid <<colour tab-border>>;\n\tborder-right: none;\n\tborder-top-left-radius: 2px;\n\tborder-bottom-left-radius: 2px;\n\tborder-top-right-radius: 0;\n\tborder-bottom-right-radius: 0;\n}\n\n.tc-tab-buttons.tc-vertical button.tc-tab-selected {\n\tbackground-color: <<colour tab-background-selected>>;\n\tborder-right: 1px solid <<colour tab-background-selected>>;\n}\n\n.tc-tab-divider {\n\tborder-top: 1px solid <<colour tab-divider>>;\n}\n\n.tc-tab-divider.tc-vertical {\n\tdisplay: none;\n}\n\n.tc-tab-content {\n\tmargin-top: 14px;\n}\n\n.tc-tab-content.tc-vertical {\n\tdisplay: inline-block;\n\tvertical-align: top;\n\tpadding-top: 0;\n\tpadding-left: 14px;\n\tborder-left: 1px solid <<colour tab-border>>;\n\t-webkit-flex: 1 0 70%;\n\tflex: 1 0 70%;\n\toverflow: auto;\n}\n\n.tc-sidebar-lists .tc-tab-buttons {\n\tmargin-bottom: -1px;\n}\n\n.tc-sidebar-lists .tc-tab-buttons button.tc-tab-selected {\n\tbackground-color: <<colour sidebar-tab-background-selected>>;\n\tcolor: <<colour sidebar-tab-foreground-selected>>;\n\tborder-left: 1px solid <<colour sidebar-tab-border-selected>>;\n\tborder-top: 1px solid <<colour sidebar-tab-border-selected>>;\n\tborder-right: 1px solid <<colour sidebar-tab-border-selected>>;\n}\n\n.tc-sidebar-lists .tc-tab-buttons button {\n\tbackground-color: <<colour sidebar-tab-background>>;\n\tcolor: <<colour sidebar-tab-foreground>>;\n\tborder-left: 1px solid <<colour sidebar-tab-border>>;\n\tborder-top: 1px solid <<colour sidebar-tab-border>>;\n\tborder-right: 1px solid <<colour sidebar-tab-border>>;\n}\n\n.tc-sidebar-lists .tc-tab-divider {\n\tborder-top: 1px solid <<colour sidebar-tab-divider>>;\n}\n\n.tc-more-sidebar > .tc-tab-set > .tc-tab-buttons > button {\n\tdisplay: block;\n\twidth: 100%;\n\tbackground-color: <<colour sidebar-tab-background>>;\n\tborder-top: none;\n\tborder-left: none;\n\tborder-bottom: none;\n\tborder-right: 1px solid #ccc;\n\tmargin-bottom: inherit;\n}\n\n.tc-more-sidebar > .tc-tab-set > .tc-tab-buttons > button.tc-tab-selected {\n\tbackground-color: <<colour sidebar-tab-background-selected>>;\n\tborder: none;\n}\n\n/*\n** Manager\n*/\n\n.tc-manager-wrapper {\n\t\n}\n\n.tc-manager-controls {\n\t\n}\n\n.tc-manager-control {\n\tmargin: 0.5em 0;\n}\n\n.tc-manager-list {\n\twidth: 100%;\n\tborder-top: 1px solid <<colour muted-foreground>>;\n\tborder-left: 1px solid <<colour muted-foreground>>;\n\tborder-right: 1px solid <<colour muted-foreground>>;\n}\n\n.tc-manager-list-item {\n\n}\n\n.tc-manager-list-item-heading {\n display: block;\n width: 100%;\n text-align: left;\t\n\tborder-bottom: 1px solid <<colour muted-foreground>>;\n\tpadding: 3px;\n}\n\n.tc-manager-list-item-heading-selected {\n\tfont-weight: bold;\n\tcolor: <<colour background>>;\n\tfill: <<colour background>>;\n\tbackground-color: <<colour foreground>>;\n}\n\n.tc-manager-list-item-heading:hover {\n\tbackground: <<colour primary>>;\n\tcolor: <<colour background>>;\n}\n\n.tc-manager-list-item-content {\n\tdisplay: flex;\n}\n\n.tc-manager-list-item-content-sidebar {\n flex: 1 0;\n background: <<colour tiddler-editor-background>>;\n border-right: 0.5em solid <<colour muted-foreground>>;\n border-bottom: 0.5em solid <<colour muted-foreground>>;\n white-space: nowrap;\n}\n\n.tc-manager-list-item-content-item-heading {\n\tdisplay: block;\n\twidth: 100%;\n\ttext-align: left;\n background: <<colour muted-foreground>>;\n\ttext-transform: uppercase;\n\tfont-size: 0.6em;\n\tfont-weight: bold;\n padding: 0.5em 0 0.5em 0;\n}\n\n.tc-manager-list-item-content-item-body {\n\tpadding: 0 0.5em 0 0.5em;\n}\n\n.tc-manager-list-item-content-item-body > pre {\n\tmargin: 0.5em 0 0.5em 0;\n\tborder: none;\n\tbackground: inherit;\n}\n\n.tc-manager-list-item-content-tiddler {\n flex: 3 1;\n border-left: 0.5em solid <<colour muted-foreground>>;\n border-right: 0.5em solid <<colour muted-foreground>>;\n border-bottom: 0.5em solid <<colour muted-foreground>>;\n}\n\n.tc-manager-list-item-content-item-body > table {\n\tborder: none;\n\tpadding: 0;\n\tmargin: 0;\n}\n\n.tc-manager-list-item-content-item-body > table td {\n\tborder: none;\n}\n\n.tc-manager-icon-editor > button {\n\twidth: 100%;\n}\n\n.tc-manager-icon-editor > button > svg,\n.tc-manager-icon-editor > button > button {\n\twidth: 100%;\n\theight: auto;\n}\n\n/*\n** Alerts\n*/\n\n.tc-alerts {\n\tposition: fixed;\n\ttop: 28px;\n\tleft: 0;\n\tright: 0;\n\tmax-width: 50%;\n\tz-index: 20000;\n}\n\n.tc-alert {\n\tposition: relative;\n\tmargin: 14px;\n\tpadding: 7px;\n\tborder: 1px solid <<colour alert-border>>;\n\tbackground-color: <<colour alert-background>>;\n}\n\n.tc-alert-toolbar {\n\tposition: absolute;\n\ttop: 7px;\n\tright: 7px;\n line-height: 0;\n}\n\n.tc-alert-toolbar svg {\n\tfill: <<colour alert-muted-foreground>>;\n}\n\n.tc-alert-subtitle {\n\tcolor: <<colour alert-muted-foreground>>;\n\tfont-weight: bold;\n font-size: 0.8em;\n margin-bottom: 0.5em;\n}\n\n.tc-alert-body > p {\n\tmargin: 0;\n}\n\n.tc-alert-highlight {\n\tcolor: <<colour alert-highlight>>;\n}\n\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\n\t.tc-static-alert {\n\t\tposition: relative;\n\t}\n\n\t.tc-static-alert-inner {\n\t\tposition: absolute;\n\t\tz-index: 100;\n\t}\n\n}\n\n.tc-static-alert-inner {\n\tpadding: 0 2px 2px 42px;\n\tcolor: <<colour static-alert-foreground>>;\n}\n\n/*\n** Floating drafts list\n*/\n\n.tc-drafts-list {\n\tz-index: 2000;\n\tposition: fixed;\n\tfont-size: 0.8em;\n\tleft: 0;\n\tbottom: 0;\n}\n\n.tc-drafts-list a {\n\tmargin: 0 0.5em;\n\tpadding: 4px 4px;\n\tborder-top-left-radius: 4px;\n\tborder-top-right-radius: 4px;\n\tborder: 1px solid <<colour background>>;\n\tborder-bottom-none;\n\tbackground: <<colour dirty-indicator>>;\n\tcolor: <<colour background>>;\n\tfill: <<colour background>>;\n}\n\n.tc-drafts-list a:hover {\n\ttext-decoration: none;\n\tbackground: <<colour foreground>>;\n\tcolor: <<colour background>>;\n\tfill: <<colour background>>;\n}\n\n.tc-drafts-list a svg {\n\twidth: 1em;\n\theight: 1em;\n\tvertical-align: text-bottom;\n}\n\n/*\n** Control panel\n*/\n\n.tc-control-panel td {\n\tpadding: 4px;\n}\n\n.tc-control-panel table, .tc-control-panel table input, .tc-control-panel table textarea {\n\twidth: 100%;\n}\n\n.tc-plugin-info {\n\tdisplay: flex;\n\tborder: 1px solid <<colour muted-foreground>>;\n\tfill: <<colour muted-foreground>>;\n\tbackground-color: <<colour background>>;\n\tmargin: 0.5em 0 0.5em 0;\n\tpadding: 4px;\n align-items: center;\n}\n\n.tc-plugin-info-sub-plugins .tc-plugin-info {\n margin: 0.5em;\n\tbackground: <<colour background>>;\n}\n\n.tc-plugin-info-sub-plugin-indicator {\n\tmargin: -16px 1em 0 2em;\n}\n\n.tc-plugin-info-sub-plugin-indicator button {\n\tcolor: <<colour background>>;\n\tbackground: <<colour foreground>>;\n\tborder-radius: 8px;\n padding: 2px 7px;\n font-size: 0.75em;\n}\n\n.tc-plugin-info-sub-plugins .tc-plugin-info-dropdown {\n\tmargin-left: 1em;\n\tmargin-right: 1em;\n}\n\n.tc-plugin-info-disabled {\n\tbackground: -webkit-repeating-linear-gradient(45deg, #ff0, #ff0 10px, #eee 10px, #eee 20px);\n\tbackground: repeating-linear-gradient(45deg, #ff0, #ff0 10px, #eee 10px, #eee 20px);\n}\n\n.tc-plugin-info-disabled:hover {\n\tbackground: -webkit-repeating-linear-gradient(45deg, #aa0, #aa0 10px, #888 10px, #888 20px);\n\tbackground: repeating-linear-gradient(45deg, #aa0, #aa0 10px, #888 10px, #888 20px);\n}\n\na.tc-tiddlylink.tc-plugin-info:hover {\n\ttext-decoration: none;\n\tbackground-color: <<colour primary>>;\n\tcolor: <<colour background>>;\n\tfill: <<colour foreground>>;\n}\n\na.tc-tiddlylink.tc-plugin-info:hover .tc-plugin-info > .tc-plugin-info-chunk > svg {\n\tfill: <<colour foreground>>;\n}\n\n.tc-plugin-info-chunk {\n margin: 2px;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-toggle {\n\tflex-grow: 0;\n\tflex-shrink: 0;\n\tline-height: 1;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-icon {\n\tflex-grow: 0;\n\tflex-shrink: 0;\n\tline-height: 1;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-description {\n\tflex-grow: 1;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-buttons {\n\tfont-size: 0.8em;\n\tline-height: 1.2;\n\tflex-grow: 0;\n\tflex-shrink: 0;\n text-align: right;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-description h1 {\n\tfont-size: 1em;\n\tline-height: 1.2;\n\tmargin: 2px 0 2px 0;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-description h2 {\n\tfont-size: 0.8em;\n\tline-height: 1.2;\n\tmargin: 2px 0 2px 0;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-description div {\n\tfont-size: 0.7em;\n\tline-height: 1.2;\n\tmargin: 2px 0 2px 0;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-toggle img, .tc-plugin-info-chunk.tc-plugin-info-toggle svg {\n\twidth: 1em;\n\theight: 1em;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-icon img, .tc-plugin-info-chunk.tc-plugin-info-icon svg {\n\twidth: 2em;\n\theight: 2em;\n}\n\n.tc-plugin-info-dropdown {\n\tborder: 1px solid <<colour muted-foreground>>;\n\tbackground: <<colour background>>;\n\tmargin-top: -8px;\n}\n\n.tc-plugin-info-dropdown-message {\n\tbackground: <<colour message-background>>;\n\tpadding: 0.5em 1em 0.5em 1em;\n\tfont-weight: bold;\n\tfont-size: 0.8em;\n}\n\n.tc-plugin-info-dropdown-body {\n\tpadding: 1em 1em 0 1em;\n\tbackground: <<colour background>>;\n}\n\n.tc-plugin-info-sub-plugins {\n\tpadding: 0.5em;\n margin: 0 1em 1em 1em;\n\tbackground: <<colour notification-background>>;\n}\n\n.tc-install-plugin {\n\tfont-weight: bold;\n\tbackground: green;\n\tcolor: white;\n\tfill: white;\n\tborder-radius: 4px;\n\tpadding: 3px;\n}\n\n.tc-install-plugin.tc-reinstall-downgrade {\n\tbackground: red;\n}\n\n.tc-install-plugin.tc-reinstall {\n\tbackground: blue;\n}\n\n.tc-install-plugin.tc-reinstall-upgrade {\n\tbackground: orange;\n}\n\n.tc-check-list {\n\tline-height: 2em;\n}\n\n.tc-check-list .tc-image-button {\n\theight: 1.5em;\n}\n\n/*\n** Message boxes\n*/\n\n.tc-message-box {\n\tborder: 1px solid <<colour message-border>>;\n\tbackground: <<colour message-background>>;\n\tpadding: 0px 21px 0px 21px;\n\tfont-size: 12px;\n\tline-height: 18px;\n\tcolor: <<colour message-foreground>>;\n}\n\n.tc-message-box svg {\n\twidth: 1em;\n\theight: 1em;\n vertical-align: text-bottom;\n}\n\n/*\n** Pictures\n*/\n\n.tc-bordered-image {\n\tborder: 1px solid <<colour muted-foreground>>;\n\tpadding: 5px;\n\tmargin: 5px;\n}\n\n/*\n** Floats\n*/\n\n.tc-float-right {\n\tfloat: right;\n}\n\n/*\n** Chooser\n*/\n\n.tc-chooser {\n\tborder-right: 1px solid <<colour table-header-background>>;\n\tborder-left: 1px solid <<colour table-header-background>>;\n}\n\n\n.tc-chooser-item {\n\tborder-bottom: 1px solid <<colour table-header-background>>;\n\tborder-top: 1px solid <<colour table-header-background>>;\n\tpadding: 2px 4px 2px 14px;\n}\n\n.tc-drop-down .tc-chooser-item {\n\tpadding: 2px;\n}\n\n.tc-chosen,\n.tc-chooser-item:hover {\n\tbackground-color: <<colour table-header-background>>;\n\tborder-color: <<colour table-footer-background>>;\n}\n\n.tc-chosen .tc-tiddlylink {\n\tcursor:default;\n}\n\n.tc-chooser-item .tc-tiddlylink {\n\tdisplay: block;\n\ttext-decoration: none;\n\tbackground-color: transparent;\n}\n\n.tc-chooser-item:hover .tc-tiddlylink:hover {\n\ttext-decoration: none;\n}\n\n.tc-drop-down .tc-chosen .tc-tiddlylink,\n.tc-drop-down .tc-chooser-item .tc-tiddlylink:hover {\n\tcolor: <<colour foreground>>;\n}\n\n.tc-chosen > .tc-tiddlylink:before {\n\tmargin-left: -10px;\n\tposition: relative;\n\tcontent: \"» \";\n}\n\n.tc-chooser-item svg,\n.tc-chooser-item img{\n\twidth: 1em;\n\theight: 1em;\n\tvertical-align: middle;\n}\n\n.tc-language-chooser .tc-image-button img {\n\twidth: 2em;\n\tvertical-align: -0.15em;\n}\n\n/*\n** Palette swatches\n*/\n\n.tc-swatches-horiz {\n}\n\n.tc-swatches-horiz .tc-swatch {\n\tdisplay: inline-block;\n}\n\n.tc-swatch {\n\twidth: 2em;\n\theight: 2em;\n\tmargin: 0.4em;\n\tborder: 1px solid #888;\n}\n\ninput.tc-palette-manager-colour-input {\n\twidth: 100%;\n\tpadding: 0;\n}\n\n/*\n** Table of contents\n*/\n\n.tc-sidebar-lists .tc-table-of-contents {\n\twhite-space: nowrap;\n}\n\n.tc-table-of-contents button {\n\tcolor: <<colour sidebar-foreground>>;\n}\n\n.tc-table-of-contents svg {\n\twidth: 0.7em;\n\theight: 0.7em;\n\tvertical-align: middle;\n\tfill: <<colour sidebar-foreground>>;\n}\n\n.tc-table-of-contents ol {\n\tlist-style-type: none;\n\tpadding-left: 0;\n}\n\n.tc-table-of-contents ol ol {\n\tpadding-left: 1em;\n}\n\n.tc-table-of-contents li {\n\tfont-size: 1.0em;\n\tfont-weight: bold;\n}\n\n.tc-table-of-contents li a {\n\tfont-weight: bold;\n}\n\n.tc-table-of-contents li li {\n\tfont-size: 0.95em;\n\tfont-weight: normal;\n\tline-height: 1.4;\n}\n\n.tc-table-of-contents li li a {\n\tfont-weight: normal;\n}\n\n.tc-table-of-contents li li li {\n\tfont-size: 0.95em;\n\tfont-weight: 200;\n\tline-height: 1.5;\n}\n\n.tc-table-of-contents li li li li {\n\tfont-size: 0.95em;\n\tfont-weight: 200;\n}\n\n.tc-tabbed-table-of-contents {\n\tdisplay: -webkit-flex;\n\tdisplay: flex;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents {\n\tz-index: 100;\n\tdisplay: inline-block;\n\tpadding-left: 1em;\n\tmax-width: 50%;\n\t-webkit-flex: 0 0 auto;\n\tflex: 0 0 auto;\n\tbackground: <<colour tab-background>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-top: 1px solid <<colour tab-border>>;\n\tborder-bottom: 1px solid <<colour tab-border>>;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item > a,\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item-selected > a {\n\tdisplay: block;\n\tpadding: 0.12em 1em 0.12em 0.25em;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item > a {\n\tborder-top: 1px solid <<colour tab-background>>;\n\tborder-left: 1px solid <<colour tab-background>>;\n\tborder-bottom: 1px solid <<colour tab-background>>;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item > a:hover {\n\ttext-decoration: none;\n\tborder-top: 1px solid <<colour tab-border>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-bottom: 1px solid <<colour tab-border>>;\n\tbackground: <<colour tab-border>>;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item-selected > a {\n\tborder-top: 1px solid <<colour tab-border>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-bottom: 1px solid <<colour tab-border>>;\n\tbackground: <<colour background>>;\n\tmargin-right: -1px;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item-selected > a:hover {\n\ttext-decoration: none;\n}\n\n.tc-tabbed-table-of-contents .tc-tabbed-table-of-contents-content {\n\tdisplay: inline-block;\n\tvertical-align: top;\n\tpadding-left: 1.5em;\n\tpadding-right: 1.5em;\n\tborder: 1px solid <<colour tab-border>>;\n\t-webkit-flex: 1 0 50%;\n\tflex: 1 0 50%;\n}\n\n/*\n** Dirty indicator\n*/\n\nbody.tc-dirty span.tc-dirty-indicator, body.tc-dirty span.tc-dirty-indicator svg {\n\tfill: <<colour dirty-indicator>>;\n\tcolor: <<colour dirty-indicator>>;\n}\n\n/*\n** File inputs\n*/\n\n.tc-file-input-wrapper {\n\tposition: relative;\n\toverflow: hidden;\n\tdisplay: inline-block;\n\tvertical-align: middle;\n}\n\n.tc-file-input-wrapper input[type=file] {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbottom: 0;\n\tfont-size: 999px;\n\tmax-width: 100%;\n\tmax-height: 100%;\n\tfilter: alpha(opacity=0);\n\topacity: 0;\n\toutline: none;\n\tbackground: white;\n\tcursor: pointer;\n\tdisplay: inline-block;\n}\n\n/*\n** Thumbnail macros\n*/\n\n.tc-thumbnail-wrapper {\n\tposition: relative;\n\tdisplay: inline-block;\n\tmargin: 6px;\n\tvertical-align: top;\n}\n\n.tc-thumbnail-right-wrapper {\n\tfloat:right;\n\tmargin: 0.5em 0 0.5em 0.5em;\n}\n\n.tc-thumbnail-image {\n\ttext-align: center;\n\toverflow: hidden;\n\tborder-radius: 3px;\n}\n\n.tc-thumbnail-image svg,\n.tc-thumbnail-image img {\n\tfilter: alpha(opacity=1);\n\topacity: 1;\n\tmin-width: 100%;\n\tmin-height: 100%;\n\tmax-width: 100%;\n}\n\n.tc-thumbnail-wrapper:hover .tc-thumbnail-image svg,\n.tc-thumbnail-wrapper:hover .tc-thumbnail-image img {\n\tfilter: alpha(opacity=0.8);\n\topacity: 0.8;\n}\n\n.tc-thumbnail-background {\n\tposition: absolute;\n\tborder-radius: 3px;\n}\n\n.tc-thumbnail-icon svg,\n.tc-thumbnail-icon img {\n\twidth: 3em;\n\theight: 3em;\n\t<<filter \"drop-shadow(2px 2px 4px rgba(0,0,0,0.3))\">>\n}\n\n.tc-thumbnail-wrapper:hover .tc-thumbnail-icon svg,\n.tc-thumbnail-wrapper:hover .tc-thumbnail-icon img {\n\tfill: #fff;\n\t<<filter \"drop-shadow(3px 3px 4px rgba(0,0,0,0.6))\">>\n}\n\n.tc-thumbnail-icon {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbottom: 0;\n\tdisplay: -webkit-flex;\n\t-webkit-align-items: center;\n\t-webkit-justify-content: center;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n}\n\n.tc-thumbnail-caption {\n\tposition: absolute;\n\tbackground-color: #777;\n\tcolor: #fff;\n\ttext-align: center;\n\tbottom: 0;\n\twidth: 100%;\n\tfilter: alpha(opacity=0.9);\n\topacity: 0.9;\n\tline-height: 1.4;\n\tborder-bottom-left-radius: 3px;\n\tborder-bottom-right-radius: 3px;\n}\n\n.tc-thumbnail-wrapper:hover .tc-thumbnail-caption {\n\tfilter: alpha(opacity=1);\n\topacity: 1;\n}\n\n/*\n** Diffs\n*/\n\n.tc-diff-equal {\n\tbackground-color: <<colour diff-equal-background>>;\n\tcolor: <<colour diff-equal-foreground>>;\n}\n\n.tc-diff-insert {\n\tbackground-color: <<colour diff-insert-background>>;\n\tcolor: <<colour diff-insert-foreground>>;\n}\n\n.tc-diff-delete {\n\tbackground-color: <<colour diff-delete-background>>;\n\tcolor: <<colour diff-delete-foreground>>;\n}\n\n.tc-diff-invisible {\n\tbackground-color: <<colour diff-invisible-background>>;\n\tcolor: <<colour diff-invisible-foreground>>;\n}\n\n.tc-diff-tiddlers th {\n\ttext-align: right;\n\tbackground: <<colour background>>;\n\tfont-weight: normal;\n\tfont-style: italic;\n}\n\n.tc-diff-tiddlers pre {\n margin: 0;\n padding: 0;\n border: none;\n background: none;\n}\n\n/*\n** Errors\n*/\n\n.tc-error {\n\tbackground: #f00;\n\tcolor: #fff;\n}\n\n/*\n** Tree macro\n*/\n\n.tc-tree div {\n \tpadding-left: 14px;\n}\n\n.tc-tree ol {\n \tlist-style-type: none;\n \tpadding-left: 0;\n \tmargin-top: 0;\n}\n\n.tc-tree ol ol {\n \tpadding-left: 1em; \n}\n\n.tc-tree button { \n \tcolor: #acacac;\n}\n\n.tc-tree svg {\n \tfill: #acacac;\n}\n\n.tc-tree span svg {\n \twidth: 1em;\n \theight: 1em;\n \tvertical-align: baseline;\n}\n\n.tc-tree li span {\n \tcolor: lightgray;\n}\n\nselect {\n color: <<colour select-tag-foreground>>;\n background: <<colour select-tag-background>>;\n}\n\n/*\n** Utility classes for SVG icons\n*/\n\n.tc-fill-background {\n\tfill: <<colour background>>;\n}"
},
"$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize",
"text": "15px"
},
"$:/themes/tiddlywiki/vanilla/metrics/bodylineheight": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/bodylineheight",
"text": "22px"
},
"$:/themes/tiddlywiki/vanilla/metrics/fontsize": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/fontsize",
"text": "14px"
},
"$:/themes/tiddlywiki/vanilla/metrics/lineheight": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/lineheight",
"text": "20px"
},
"$:/themes/tiddlywiki/vanilla/metrics/storyleft": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/storyleft",
"text": "0px"
},
"$:/themes/tiddlywiki/vanilla/metrics/storytop": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/storytop",
"text": "0px"
},
"$:/themes/tiddlywiki/vanilla/metrics/storyright": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/storyright",
"text": "770px"
},
"$:/themes/tiddlywiki/vanilla/metrics/storywidth": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/storywidth",
"text": "770px"
},
"$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth",
"text": "686px"
},
"$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint",
"text": "960px"
},
"$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth",
"text": "350px"
},
"$:/themes/tiddlywiki/vanilla/options/stickytitles": {
"title": "$:/themes/tiddlywiki/vanilla/options/stickytitles",
"text": "no"
},
"$:/themes/tiddlywiki/vanilla/options/sidebarlayout": {
"title": "$:/themes/tiddlywiki/vanilla/options/sidebarlayout",
"text": "fixed-fluid"
},
"$:/themes/tiddlywiki/vanilla/options/codewrapping": {
"title": "$:/themes/tiddlywiki/vanilla/options/codewrapping",
"text": "pre-wrap"
},
"$:/themes/tiddlywiki/vanilla/reset": {
"title": "$:/themes/tiddlywiki/vanilla/reset",
"type": "text/plain",
"text": "/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput { /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect { /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n"
},
"$:/themes/tiddlywiki/vanilla/settings/fontfamily": {
"title": "$:/themes/tiddlywiki/vanilla/settings/fontfamily",
"text": "-apple-system, BlinkMacSystemFont, \"Segoe UI\", Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\""
},
"$:/themes/tiddlywiki/vanilla/settings/codefontfamily": {
"title": "$:/themes/tiddlywiki/vanilla/settings/codefontfamily",
"text": "\"SFMono-Regular\",Consolas,\"Liberation Mono\",Menlo,Courier,monospace"
},
"$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment": {
"title": "$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment",
"text": "fixed"
},
"$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize": {
"title": "$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize",
"text": "auto"
},
"$:/themes/tiddlywiki/vanilla/sticky": {
"title": "$:/themes/tiddlywiki/vanilla/sticky",
"text": "<$reveal state=\"$:/themes/tiddlywiki/vanilla/options/stickytitles\" type=\"match\" text=\"yes\">\n``\n.tc-tiddler-title {\n\tposition: -webkit-sticky;\n\tposition: -moz-sticky;\n\tposition: -o-sticky;\n\tposition: -ms-sticky;\n\tposition: sticky;\n\ttop: 0px;\n\tbackground: ``<<colour tiddler-background>>``;\n\tz-index: 500;\n}\n\n``\n<$list filter=\"[range[100]]\">\n`.tc-story-river .tc-tiddler-frame:nth-child(100n+`<$text text=<<currentTiddler>>/>`) {\nz-index: `<$text text={{{ [[200]subtract<currentTiddler>] }}}/>`;\n}\n`\n</$list>\n</$reveal>\n"
}
}
}
研究方法的类型
类型Ⅰ:划分为定性和定量
定性:对研究对象进行“质”的分析。具体是运用归纳和演绎、分析与综合以及抽象与概括等方法, 对获得的各种材料进行思维加工。通过发掘问题、理解事件现象、分析人类的行为与观点以及回答提问来获取敏锐的洞察力。
定量:将问题与现象用数量来表示, 进而分析、考验、解释以获得意义的研究方法和过程。
类型Ⅱ:划分为归纳和演绎
归纳:由个案或系统资料中找出一般性的法则。
演绎:由已知事实或理论来推导出新的理论或个案。
类型Ⅲ:划分为通用和专用
通用:各学科领域或多个学科领域都常使用的方法。通常具有一定的普适性, 并已在不同学科得到可靠性和实用性检验。
专用:某一学科领域 (本研究专指图书情报学) 的专门研究方法。一般由相关学科领域创立并发展, 并未广泛扩展运用于其他学科领域。
类型Ⅳ:划分为实证和非实证
实证:建立在客观素材和数据基础上的研究, 该方法认识客观现象, 向人们提供实在、有用、确定、精确的知识研究方法, 其重点是研究现象本身“是什么”的问题。实证研究法试图超越或排斥价值判断, 只揭示客观现象的内在构成因素和因素间的普遍联系, 归纳概括现象的本质及其运行规律。
非实证:实证研究法以外的各种方法, 有两个特点, 一是强调社会现象不同于自然现象, 反对把自然科学方法绝对化;二是突出社会行动者的主体性、意识性和创造性, 反对把人当作非人格的物化现象。
类型V:划分为实验和非实验
实验:在妥善控制变量的情况下, 探讨自变量对因变量影响的方法, 是一种在为某种特定目的而设计的情境之中进行观察或资料搜集的过程。
非实验:不能操纵自变量, 并且在收集资料的过程中不对研究对象进行干扰或有意控制的研究过程。
根据资料收集的过程或手段的不同, 将资料收集方法编码为以下几类:
(1) 问卷调查法:指研究者运用统一设计的问卷向被选取的调查对象了解情况或征询意见的调查方法。问卷调查是以书面提出问题的方式搜集资料的一种研究方法。研究者将所要研究的问题编制成问题表格, 以邮寄方式、当面作答或者追踪访问方式填答, 从而获得所要研究的信息。
(2) 访谈:指通过对被研究对象进行面对面或电话式的交流, 获得所要研究信息的方法。既包括一对一的个别访谈, 也包括以讨论会等方式进行的团体访谈。有电话访谈、焦点访谈、深度访谈 (in-depth interview) 、行为事件访谈 (BEI) 等具体的访谈方法。
(3) 观察:指研究者根据一定的研究目的、研究提纲或观察表, 用自己的感官和辅助工具去直接观察被研究对象, 从而获得资料的一种方法。
(4) 现场试验:指在现实的组织或社会环境中, 根据实际工作情景或现实生活背景设计和操纵相关研究变量, 进行研究。
(5) 实验室实验:在控制的实验室环境中从事现象的研究。有实验设计, 同时也有实验控制。会有意地去隔离与操纵变量以便研究某种可能的因果关系, 通常会使用定量分析技术。
(6) 计算机仿真:应用电子计算机对系统的结构、功能和行为以及参与系统控制的人的思维过程和行为进行动态性逼真的模仿。它是一种描述性技术, 是一种定量分析方法。通过建立某一过程和某一系统的模式, 来描述该过程或该系统, 然后用一系列有目的、有条件的计算机仿真实验来刻画系统的特征, 从而得出数量指标, 为决策者提供有关这一过程或系统的定量分析结果, 作为决策的理论依据。
(7) 互联网:以互联网为工具进行研究。包括互联网问卷调查、互联网实验等。
(8) 二手数据:使用已收集、记录、整理好的各种数据和信息进行研究 (包括统计年鉴数据、专业机构发布数据、其他学者已发表论文中的数据等) 。
(9) 其他:文献法 实验法
2.3 具体研究分析方法编码
在研究方法类型的基础上, 将实际应用中的研究分析方法进行细化分类编码, 具体如下:
(1) 公式推演 (formula derivation) :依照数学分析的公式推导。
(2) 描述性统计分析 (descriptive statistics) :研究随机变量变化综合特征, 例如均值、方差等等。
(3) 相关分析 (correlation analysis) :描述两个变量之间关系的密切程度, 反映的是当控制了其中一个变量的取值后, 另一个变量的变异程度。
(4) 回归分析 (regression analysis) :研究一个或多个自变量与一个因变量之间是否存在某种线性关系或非线性关系的一种统计学分析方法。
(5) 方差分析 (analysis of variance, ANO-VA) :从观测变量的方差入手, 研究诸多控制变量中哪些变量对观测变量有显著影响, 以及对观测变量有显著影响的各个控制变量的不同水平, 进而对控制变量各个水平的交互搭配时对观测变量影响的程度进行剖析。
(6) 时序分析 (time series analysis) :通过比较不同指标的时间系列数据和变化, 揭示长期发展趋势及其变化规律。
(7) 因子分析 (factor analysis) :通过研究众多变量之间的内部依赖关系, 探求观测数据中的基本结构, 并用少数几个“抽象”变量来表示其基本的数据结构。
(8) 聚类分析 (cluster analysis) :根据事物本身的特性, 按照一定的类定义准则, 对所研究的事物进行归类。
(9) 内容分析 (content analysis) :对文字、语音、图片等定性材料通过分类、编码等方法进行定量分析的手段, 包括对记载下来的人类传播媒介的研究, 如书籍、网站、绘画和法律文书。
(10) 结构方程 (structural equation modeling, SEM) :结构方程模型是一种建立、估计和检验因果关系模型的方法。模型中既包含有可观测的显在变量, 也可能包含无法直接观测的潜在变量。结构方程模型可以替代多重回归、通径分析、因子分析、协方差分析等方法, 清晰分析单项指标对总体的作用和单项指标间的相互关系。
(11) 社会网络 (social networks) :社会网络分析被用来建立社会关系的模型, 发现群体内行动者之间的社会关系, 描述社会关系的结构, 研究这种结构对群体功能或者群体内部个体的影响。
(12) 历史分析 (historical analysis) :指作者考察的视野和顺序与思想史进程的时间序列相一致的分析方法。
(13) 案例分析 (case analysis) :研究者通过发掘、了解、认清、衡量案例的事实, 并进行分析与验证, 找出事实真相, 提供他人对该事件的客观了解。
(14) 人类学方法 (anthropological method) :通过实地观察或者参与来理解某一社会现象的方法。(民族志)
(15) 诠释学方法 (hermeneutical method) :根据文本本身来解读和阐释文本的意义, 强调没有一个超然于具体处境的立足点, 所有研究都必须从研究者身处的社会文化传统所提供的前见或先前判断作为出发点, 经由部分与整体之间不断往返的诠释循环, 逐步克服文本或社会现象的陌生性。
(16)其他:文献计量学(文献计量学是指用数学和统计学的方法,定量地分析一切知识载体的交叉科学)的方法、个案研究、比较研究、内容分析法(内容分析是一种对传播内容进行客观、系统和定量描述的研究方法)、德尔菲法、民族志研究、(是人类学的一种研究方法,是建立在人群中实地调查(Field Research)基础下第一手观察和参与之上的关于习俗的撰写)评价研究、实验研究、历史研究、信息系统的设计、行动研究、调查和理论研究。扎根法(是运用系统化的程序,针对某一现象来发展并归纳式地引导出扎根的理论的一种定性研究方法。)
图书情报学的关联学科有:文献学,目录学,教育学,社会学,心理学,经济学,统计学,传播学,历史学,语言学,逻辑学,文书学,计算机技术等
中国历史:早在汉朝时期,汉成帝就命令人修撰书籍,文献整理,此次整理产生两本著作《别录》与和《七略》。唐朝时,也是大力编撰修书,但是此时的图书馆学工作基本是整理文献与收集文献。
中国真正的图书馆学教育发展经历了五个阶段。
①发轫期(1920年— 1941年7月);在1920年左右,为了满足社会对文献信息的收集、保存和利用,诞生了图书馆和情报机构等文化设施,出现了图书情报行业和从业人员。标志性事件是韦棣华女士创办武昌文华大学图书科,此时算是中国图书馆学情报学的开端。
②成长期(1941年8月— 1949年9月);
③过渡期(1949年10月— 1966年4月);此时由于中国受到西方诸国的敌意和封锁,我国社会科学基本来自苏联的影响,存在较大的限制性。
④停滞期(1966年)年5月—1976年10月);此阶段只是把图书馆学视为研究关于图书馆这一社会机构的学问,因此学科存在较大的视野限制,此时并没有把信息的有效查询与信息的有效获取放在很重要的位置。此前,情报学与图书馆学基本是处于“分家”状态。情报学研究更多是研究信息、信息流动、信息处理技术,而图书管学更是研多的究图书馆组织整理技术
⑤恢复发展时期:20世纪70年代开始,图书馆学和情报学走向融合,改革开放后,我国经历了“知识交流学说”、“文献交流学说”“文献信息交流学说”,这些学说也见证了图书馆学和情报学融合的这段历史。(摘自:中国图书馆学教育百年历史分期研究)
20世纪90年代初期, 信息“爆炸”的出现, “信息”二字刺激着国内图书情报领域,。此时开始,学科间就存在交叉互用局面, 比如图情学科的大数据领域研究是从计算机学科引入,。
2003年数字图书馆首次出现在学术期刊,这说明数字图书馆是最早将大数据概念引入图情学科的主题之一。此节点代表大数据与图情学科进行交叉,图情也进入一个新的领域。
2009年开始, “大数据”便逐渐成为国外互联网信息技术行业的流行词汇。大数据+图书情报也成为一热点。
2011年12月, 工信部发布的《物联网十二五规划》, 把信息处理技术作为4项关键技术创新工程之一提出来, 其中包括了海量数据存储、数据挖掘、图像视频智能分析, 这都是图书情报学的重要组成部分。
从下表中可以观察到前沿阶段的高频关键词大多数与技术相关, 其他方面的关键词偏少;热点阶段的关键词数量比前沿阶段有较大的增加, 并且此阶段关键词的主题主要集中在应用与实践层面, 如“高校图书馆”“信息服务”“个性化服务”“智慧图书馆”“互联网+”“知识图谱”等。
1,国内
于良芝
苏新宁
程焕文
中山大学图书馆馆长,中山大学图书馆与资讯科学研究所所长,信息与网络中心主任。博士,教授
初景利
胡昌平
武汉大学信息管理学院副院长/教授/。胡昌平教授曾从事电力工程技术工作,1981年以来,从事情报学专业教学和科研工作,任教于武汉大学。目前的博士生招生方向为:信息管理理论与应用;高科技产业管理与信息保障。
李明华
1960年7月毕业于北京大学图书馆学系。研究馆员,IFLA图书馆建筑组委会常委(1989-1993)......
梁战平
中国科学技术信息研究所所长,研究员,博士生导师。长期从事信息分析研究工作。
林曦
近些年从事的主要研究工作有:文献信息资源的开发利用、图书馆读者服务研究和图书馆学理论与方法研究。
马费成
教授、博士生导师。主要研究方向为情报学理论方法,信息经济与信息资源管理。
孟连生
孟连生一直从事文献计量学、科技情报处理与检索的研究与教学,中国科学院科学文献数据库建设和检索性期刊编辑出版的管理工作,目前主要从事数字图书馆建设的管理工作。
彭斐章
1953年7月毕业于武昌文华图书馆专科学校,长期致力于目录学、图书馆学教育、科研与教育管理。
秦铁辉
教授,研究方向为信息分析与信息资源 竞争情报
邱均平
武汉大学图书馆情报学研究所所长、《图书情报知识》杂志副主编/教授/教授。主要从事图书馆学、情报学和信息管理学的教学和研究工作,专业方向为信息管理与知识产权、文献计量学与科学计量学和经济信息管理,指导和培养这些专业方向的博士生和硕士生。
图书馆学家名录
包括顾廷龙、来新夏、周文俊、吴建中、鲍振西、张琪玉、辛希孟、黄俊贵、黄宗忠、陈誉、程焕文、潘寅生、金恩辉、白国应、王世伟、卢子博、李明华 、倪波、彭斐章等人的简介
王知津
南开大学图书馆学、情报学教授,主要研究方向为企业竞争情报、战略信息管理、信息检索系统
吴建中
2002年1月任上海图书馆馆长和上海科技情报研究所所长。
吴慰慈
北京大学信息管理系教授,博士生导师。兼任中国图书馆学会副理事长,学术研究委员会主任;国家教育部高等院校图书馆学学科教学指导委员会主任委员;国务院学位委员会图书馆、情报与档案管理学科评议组召集人。
徐引篪
中国科学院文献情报中心主任,研究员研究方向为图书馆学基础理论研究。
杨沛超
1982年1月毕业于北京大学图书馆学系,教授。1995年起指导理论图书馆学、信息资源管理方向硕士研究生。
张晓林
张晓林,博士,教授,目前主要从事数字图书馆研究与应用工作。
张琪玉
1954年7月毕业于北京大学图书馆学系,开拓了情报语言学学科新领域
周文骏
北京大学信息管理系教授,研究方向为图书馆情报学理论、 图书馆网络
外国历史:图书馆学的孕育——29世纪之前
公元前3世纪至公元3世纪间 亚历山大图书馆 《皮纳克斯》辅助查询的书本式目录
夏皮罗追溯到18世纪的法律文献引文索引及引文分析
印度学者森古普塔追溯到1896年英国学者坎贝尔出版的《国家书目与国际书目的理论》
20世纪20至50年代
1923年,英国图书馆学家休姆出版《关于现代文明发展的统计目录学》——统计目录学被命名
1926年,美国学者洛特卡提出科学生产率的平方反比规律——洛特卡定律
1943年,英国文献学家布拉德福提出文献分散定律
1943年,齐普夫提出有关词语分布的语言学定律
20世纪60至80年代
1960年,美国情报学家加菲尔德成立美国科学信息研究所,1963年开始发行系列引文索引:《科学引文索引》(SCI)、《社会科学引文索引》(SSCI)、《艺术与人文科学引文索引》(A&HSCI)
1969年,英国情报学家普理查德提出文献计量学一词,苏联学者纳利莫夫和穆利钦科提出科学计量学一词
1978年,匈牙利学者布劳温创办《科学计量学》杂志
1979年,德国学者纳克提出信息计量学一词
20世纪90年代以后
互联网迅速发展,出现网络计量学、赛博计量学等专业术语
国外著名人物
Kalervo Jrvelin(卡勒沃·杰维林)
对LIS领域1965-1985年间的期刊文献进行内容分析,试图发现国际LIS领域研究的主题分布以及这些研究主题已采用的研究路径和方法
Howard D White(怀特)(利用作者共被引分析方法对LIS领域12种重要期刊共24年间(1972-1995年)所刊载的研究文献进行相应计量分析,并对学科的发展轨迹、现状和趋势进行了全面系统的梳理和研究
Christian Schlegl(施莱德)基于两种主要期刊对1970年以来发表的654篇文献的理论进行研究,分析韩国LIS的知识结构,并指出其LIS领域需要更多研究主题领域的发展
Kelly Blessinger(凯利·布莱辛格)
对20世纪后半叶在LIS领域有重大学术影响力的36篇高被引文献进行内容分析,并研究了这些文献的期刊分布、研究主题分布、作者特征等。对LIS领域1965-1985年间的期刊文献进行内容分析,试图发现国际LIS领域研究的主题分布以及这些研究主题已采用的研究路径和方法
美国图书馆学理论家,教育家杰西,H·谢拉,文献工作与情报学领域的智者与先驱,提出图书馆学交流说和社会认识论,是图书馆学教育理论有系统的研究。
阮冈纳赞(1892~1972),印度图书馆学家,提出图书馆学五定律。
元数据与数字信息组织、本体论与知识管理技术、图书馆2.0(图书馆2.0是一个非常不同的图书馆服务的概念,指为满足当今图书馆用户的需求和愿望而不断调整自己,要求图书馆在任何时候任何地点都能够向用户提供其所需要的信息,并保证消除使用或重用图书馆的任何障碍)与数字图书馆研究、搜索引擎与网络信息检索、智能信息处理、h指数(H指数(H index)是一个混合量化指标,可用于评估研究人员的学术产出数量与学术产出水平)与学术评价、图书馆管理与服务、信息资源建设、信息资源管理、信息技术服务、大数据、数据挖掘等
图书情报学的技术手段有:计算机网络技术,人文主义思潮,知识自由思思潮,人工智能(AI),大数据等。
教学支持服务
1要求图书馆根据课程设置和教学计划的安排,配备相关文献;对需求
比较集中的文献设计保障方案。传统高等学校图书馆一般采用馆内阅览和短
期借阅的形式来解决集中需求问题。
2 为教学活动提供各种空间,这包括:①视听室、电脑实验
室、研讨室等教学空间,这类空间可以保证那些需要穿插图书馆资源的教学活
动能安排在图书馆进行,也为图书馆开展的息素养培训提供场所;②各类自
主学习空间,包括开放学习空间、小组学习空间和个人学习空间;③信息共享空
间;④创客空间。其中,信息共享空间和创客空间是20世纪末以来,高等学校
图书馆针对数字化资源的增长及信息获取方式的转变而开辟的新型图书馆空
间。信息共享空间是向学生提供各种硬件、软件设施和各类图书馆数字化资源
的一站式服务空间。这类空间由于硬件先进、软件齐全、资源丰富,又有专业馆
员提供帮助,因而具有很高的利用率。创客空间是配备计算机、3D打印机、各
种软件和相关资源,支持创意发现与实验的空间。
3承担信息素养课程,开展图书馆利用培训,同时通过参考咨询服务为学生的信息获取提供一对一的辅导。有些图书馆甚至通过讲座、辅导等形式辅助其他通用技能的培养,如研究方法技能、写作技能、口头交流技能、计算机技能等。
4图书馆作为教学伙伴,参与计算机辅助教学课件的开发。在这方面,图书馆员的主要职责是评价、组织高质量的网络资源,形成嵌入课件的超级链接,设计检索图书馆电子资源的用户界面,提供虚拟咨询台,承担课件开发中的版权申请和管理任务等。
5图书馆在教学支持方面开展的其他活动包括:①参与远程教育,为远程教
育的学生提供用户培训、邮寄书刊、电话咨询、电子邮件咨询等;②参与学校的
教学指导委员会,更多地就文献保障、信息技能课程等问题参与学校的教学决
策;③参与制订教学计划和课程设计,以便将信息素养教育和其他教学支持服
务嵌入课程。
科研支持服务
1 图书馆为科研活动提供的基础服务就是以外借阅览等方式为师
生提供其科研活动所需信息。但与教学活动所需信息相比,科研活动所需信息
异常广泛,更难预期。因此,为科研活动提供的信息保障特别强调即时(just-in
ime)文献提供,即图书馆从本馆的合作馆或商业化的文献传递机构为用户获取
本馆未收藏的文献。
2支持科研活动的第二项基础服务,是面向具体问题,提供有针对性的答案
线索、文献或其他帮助。需要针对性帮助的典型问题包括:有关馆藏资源和信
息系统使用方法的问题、有关科研数据和开放存取资源提交方法的问题、文献
使用中的版权问题、特定知识或事实的信息查询方法等。这类服务通常被称作
参考咨询服务,有时也称信息服务支持科研活动的第三项常见服务,是辅助科研人员向机构资源库或其他开放存取中心提交数据及成果。
3图书馆还为科研活动提供其他支持,如信息素养培训科技期刊评价、文献计量学研究等。一些高等学校图书馆还根据科研周期,通过学科馆员,为科研课题的不同阶段提供个性化服务。例如,在研究问题的构思和研究设计阶段,提供信息查询帮助;在课题申请阶段提供有关科研资助政策、数据管理计划等方面的帮助;在成果形成和传播阶段提供文献计量学、社交媒体、开放存取网站接入及成果提交方面的帮助。
图书馆员职业能力
1 掌握图书馆学等方面的理论知识
新时代下的图书馆员可以使用很多现代化的知识和技能来对图书馆内的信息进行分类检索,毕竟只有通过检索才能掌握文档信息方面的知识,从而足够了解图书馆的工作,达成从开放式阅读到借阅和馆藏的整合,形成一站式的
馆藏、阅读和存储服务体系。不仅如此,每一个图书馆员还应有一定的服务标准,比如说可以按照新时代下读者的标准来严格要求自己。应使用当下最新的信息管理技术来对图书馆的信息数据做系统化的处理。否则,图书馆员就无法适应新时代对图书馆的要求,无法满足读者的需求,这样图书馆一定会被时代所抛弃。
2 学会运用计算机网络组织信息和数据
新时代也是互联网发达的时代,海量数据被保存在互联网上,身为信息管理者的图书馆员一定要合理运用互联网这个宝库。因此,每一个图书馆员在这种情况下必须学会运用计算机网络组织信息和数据。通过对互联网数据的筛选和审查,最终做到对互联网信息的合理利用,为给读者提供更好的服务打下坚实的基础。
3 图书馆员要不断提升自身的洞察力等相关能力
每一个高校的图书馆员,在提升自己技术的同时,也要注意提高自身的洞察力等能力,因为从目前信息时代的发展方向来看,图书馆员已经不再是其字面意义上的传统角色,甚至可以重新定义为信息经纪人和系统设计师。可以看出,在复杂的信息时代,合格的图书馆员必须能对库中的数据进行处理和分析。毫无疑问的是,这些都对图书馆员的能力提出了越来越高的要求。除了熟练掌握中文字符的能力外,他们还必须不断提高其外语水平,尤其是继续提高英语水平。因为英语是国际通用语言,而且学术论文基本上都有英文摘要。不仅如此,高校的图书馆中有大量的外文书籍。因此,图书馆员只有不断提高自身的综合能力,才能成为合格的图书馆员。
4 掌握学科知识,提升知识咨询服务的能力。在“大数据”时代,图书馆员提供服务的方式应
该由文献服务和信息咨询向知识咨询服务转变。随着网络化不断发展,信息数据更新快速,传统的文献参考咨询已经不能满足用户的需求,越来越多的用户通过搜索引擎查找信息和知识,实体图书馆的到馆率、借阅率逐年下降。传统的参考咨询服务模式已经不能满足广大用户的需求。要实现知识咨询服务方式,图书馆员就要不断学习,以学科知识为基础,以技术处理技术为保障。具体来说,图书馆员要在日常工作学习中尽力掌握不同学科的本质,了解不同学科之间的相互关系,加强对各种新的软件、工具以及数据库的使用。随着大数据浪潮的来临,许多IT精英和数据库厂商利用计
算机使用的优势,纷纷抢占先机,对数据进行分析和整合以迎合读者的需求,如清华同方、维普数据库,等等。这将使图书馆的地位更加边缘化。因此,图书馆员要通过个人努力,不断提高对信息和数据的开发和整合的能力,从以往的以文献(文章、期刊、书)为单元,过渡到能对各种知识单元和数据群进行聚合、重组、分析、关联、挖掘,乃至重构,从而为用户提供基于解决问题的方案,为广大用户提供知识咨询服务。另外,通过对用户咨询和使用情况进行记录,对记录情况进行分析,总结用户的需求,查找用户的兴趣和习惯,从而为其提供个性化的服务
5培育敏感的职业触觉,善于洞察和建立可能的用户关系。
大数据蕴藏着不可估量的价值与财富,只要经过适当的加工,数据的研究结果就可能为任何
人所用。这就要求图书馆员具有敏感的职业触觉,善于从不同角度对数据予以分析和加工,使其能为更多的用户所用。换句话说,在“大数据”时代,图书馆员要着重培育个人的敏感的职业触觉,在工作中,做到不仅仅是为某些特定的人群服务,而是善于洞察和建立各种可能的用户关系,吸引更多的用户前来享受图书馆提供的服务。例如,面对一个新的知识发现和数据群,在其服务对象无法确定时,作为一个有数据意识的现代图书馆员,就要能对这个知识发现予以恰如其分的分析,汇总各种分析结果可能产生的价值,并对这些信息进行不同角度的推广,使更多的用户发现和认识这一知识发现存在的各种利用价值,从而产生利用这一知识发现的欲望,最终达到扩大各种知识发现和数据群服务的对象和领域的目的。当然,图书馆员的这种敏感的职业触觉不是与生俱来的,需要个人不断地学习、实践和总结,长期积累,进而达到熟能生巧、驾轻就熟。
应该具备的素质
1 语言表达能力
图书馆管理员收集整理信息等各项工作都需要通过语言文字,才能实现。语言表达能力是图书馆管理员应具备的基本能力,是做好其他工作的基础,这就要求图书馆具有扎实语言文字功底。例如学校的论文汇编、图书汇总整理、目录编制、科研信息检索等工作,没有一定的语言文字能力是无法顺利进行的。一个优秀的图书管理员只有掌握了扎实的语言功底,才能使其很好地完成其他各项工作成为可能。
2 信息处理的能力
现代远程教育的处于不断发展之中,图书馆员越来越需要借助现代信息技术开展工作,以加强对图书的管理、提高图书的使用效率。计算机等现代化手段的采用,传统的图书管理大有被各种载体的信息化管理所取代的趋势。传统的纸质、手工处理方式已无法适应网络信息服务管理工作。图书馆员要强化信息意识、探索信息规律、获取有效信息,并及时高效地对所获信息进行处理。“信息处理能力”是指对图书馆馆藏内的图书、期刊、照片、底片、音频、视频等各种资料进行数字化处理与存储, 并以专用网络为媒介向社会传播信息的能力。图书馆员要树立正确科学的教学科研服务理念,并在此理念的指导下,分析和开发图书馆的各类资源。一方面要学习掌握图书管理的基本业务知识,另一方面还要了解图书浏览的动态信息,并从其中获取有价值的教学和科研信息,并能在图书资源运转中不断吸收新信息。对馆藏资源建立馆藏图书数据库、电子期刊数据库、电子出版物数据库和光盘数据库及各种自建数据库,将原有的“静态”图书信息和采集到的“动态”资源信息有机整合,围绕一定的专题或需要对原始资料进行综合、归纳、分析,提供反映本质性和规律性的信息,编制有针对性的图书索引,为广大教学和科研工作者做好服务工作。
3 技术应用的能力
图书馆工作应紧跟时代步伐,要适应社会的不断发展,这就对图书馆工作者提出了新要求,他们要具备良好的创新思维和意识,根据图书载体、管理制的发展实际情况,及时调整自身的工作思路和服务方法图书馆工作者要做好印刷型的文献信息的收藏整理,提供好印刷型文献的支持服务,这一传统的服务手段的基础上,要充分加大投入、挖掘资源。通过学校的多媒体教室以及其他资源媒介,为学生提供
丰富的网上学习资源,为学生自主学习提供帮助。通过视听阅读室,借助远程教育的教学课件等文字、音视频资源,为学生提供面授讲解和多媒体教室学习的有效补充。通过学校的多媒体教室以及其他资源
媒介,为学生查阅网上信息,提供动态即时服务。要敢于突破与时代发展不相适应的工作理念和模式。要利用 QQ、微信、微博等现代信息手段,打破传统图书工作“深藏不露”常规,让教师、科研人员和学生充分认识和了解图书,并在工作和学习中充分利用好图书资源。改变当前图书馆工作只进行日常性管理的工作方式,把被动服务变为主动服务,主动地了解各部门的教学、科研等工作需求,把图书馆馆藏资源,通过科学的组织编辑,为学校的教学科研提供及时、高效的信息服务。
4 科学研究的能力
为了能够地更好地适应教学、科研的需要图书馆理员必须开展应有的科学研究工作。
强化科研意识。在图书馆员看来,主要工作是负责图书借还工作。只要做好图书借还工作就算尽职尽责,科研工作是专家、学者应尽的职责。其实不然,这是当前图书馆员对工作认识的误区,今天的图书借还工作,包含着许多信息的传递和开发等科研含量的工作,因而需要营造科研氛围,培养科研兴趣,强化科研意识,总结工作经验,提升理性认识,这样才能使图书馆管理工作不断得到改进和完善。具备科研素养。图书管理员要自觉地进行自我
提升,积极参加继续教育,参加专题学习,参与科研活动,同时,图书馆要为馆员开展科研创造条件,支持馆员撰写学术论文。
形成科研课题。这要求图书管理员具有敏锐的
洞察力,在做好日常工作、为读者服务的过程中,要善于观察、注重思考、发现问题,通过调查分析,形成科研课题,为开展科研工作做好准备。提升科研能力。图书管理员要在强化意识、加强学习、参与活动、注重选题的基础上,勤思考、多动笔,把实践经验、工作体会,加以“去粗取精、去伪存真”、“由此及彼、由表及里”的功夫,提升理性认识,撰写学术论文,逐渐培养和提升自身的科研能力。网络服务的能力改变传统的服务方式,要积极主动地吸纳先进的信息技术,构建网络平台。图书馆管理者要充分利用系统搭建好网络平台,采用先进的科学技术,改变和革新传统的工作方式。借助计校园网或局域网,建立图书馆主页提供服务。教师和学生通过主页可以随时随地向图书馆进行咨询,查阅书目,也可以向图书馆提出意见建议及需求,有利于图书馆更好地进行改进和完善。同时,图书馆要及时更新和完善网上信息,解答教师和学生提出的问题。借助电子公告,电子邮件等媒介定时在网上发布读者指南、新书通告、信息资源简介、数目检索指示、图书馆规章制度等。及时为教师和学生存储和更新各种书目、期刊等加工过的最新资料和网上数据资源,丰富服务内容,使服务内容更丰富、多层次、更全面。通过电子邮件,利用电子阅览室,以互联网为媒介,向读者提供电子邮件服务,进行独具特色的网络导航服务.进行读者培训,针对读者的文化、计算机等水平的不同以及教研工作的具体情况,通过专题讲座、在线培训等方式进对其进行针对性培训,使其学习和掌握基本的文献检索、数据库和网络检索等技能。拓展资源利用效果。如何使馆藏资源、信息资源,更好地服务于学校的教研工作,为社会公众提供更好的服务,使其达到倍增的效果,这是电大图书
馆工作者应该探索和研究的新课题。在笔者看来,要在遵守保密原则的基础上,积极对馆藏资源进行开发,编制馆藏资源目录与成果简介,通过相关媒介,向社会介绍馆藏的图书馆源和信息,更好地拓展服务范围。
5 创新精神/创新能力。创新事业发展的原动力 , 是时代 精神的体现。创新就是人无我有 , 人有我优 , 就是树立新观念 , 解决新问题 , 在图书馆发展的历史长河中 , 正是在图 书馆人创新精神的激励下 , 图书馆才从古代藏书楼到现 代图书馆 , 再 到当前的数字图书馆。21 世纪 , 读者需要的不单是原始信息 , 更需要 加工过的二次 、 三次信息资源 , 这就要求图书馆员不断创新 , 不断学习与探索 , 创立新的服务机制 , 创建新的服务模式 。
6 .自强不息的进取精神。在五千年的文明史中 , 图书馆不断遭到破坏 , 其中以焚书烧馆最为突出 , 灾难过后图书馆又在废墟上重建并崛起 , 发展到现在的规模。这种自强不息的生命力是 图书馆人 进取精神的体现 。图书馆人在困难面 前 , 发扬锲而不舍的进取精神 , 抓住机遇 , 克服困难 , 加强了现代技术的引进和技术人才的开发和利用 , 为图书馆向数字化、网络化、自动化的转变奠定了坚 实的基础
7 沟通能力 任何人在工作中都难免与人接触 , 尤其是信息 时代 , 图书 馆要 求把读者放在第一 位 。 就是要求图书馆员要树立读者第一的思想 , 要求馆员应尊重读者 , 想读者之所 想。 改变过去高高在上 的观念 , 与 读者和谐相处 , 进行有效效的沟 通 , 为读 者提 供 高效 优质 的服务 。 同 时 ,信息时代图书馆馆 际间 的合 作 将成 为趋 势 , 也就要求 图书馆 员必 须具有 与 人合作 的愿望和 良好的 人际交往 能力 。
8. 终身学习能力 创新是以科学文化知识的综合、 积 累 , 以 及更 新 为基 础 的。 图 书馆的从 业 人员要 想 在不 断发 展 的社会环境中立于不 败之地 , 就 应 该有意识 地不 断提 高 自己 的 知识 体系和 能力结 构 终 身 学 习能 力 既是社会 发展对人的要求 , 也 是图 书馆事 业的发 展对 馆 员提 出的要 求 , 任何一位图书馆 员在接受学 历 教 育期 间所 学 的知 识和 技 能相 对 图书馆 事业 的 不断 发展都是 有 限 的 , 必须 不 断学 习 和进 取 , 否则 就 无法适应 图书馆事业 的需要
图书馆职业能力要求
1 用户:满足多样化需求
用户是图书馆实现服务功能的主体。在一定程
度上,图书馆职业能力建设与为广大用户服务的满意程度有密切的相关性。媒介融合的应用,扩宽了用户获取资源、信息和知识的渠道,不仅是传统的纸质资源,而且也有线上的、实时的资源,开创了双向甚至是多向的互动模式。图书馆在实现资源共建共享的过程中,满足了用户多样化的需求。在媒介融合的大背景下,图书馆需要针对用户的个性、
兴趣爱好、专业特点开展有效性、及时性的服务,加大对馆内资源的宣传力度,大大提高资源的利用效率,满足用户个性化需要。
2 资源:丰富信息化内涵媒介融合的发展,使图书馆的科技水平得到了提高,让馆内资源、信息、知识实现了“碎片化” 发展。通过微信、QQ、微博、网络论坛等实现资源的传播,能够让用户随时随地地实现资源共享。另外,图书馆借助智能手段等方式,丰富馆内信息化内涵,为广大用户提供全新的阅读服务平台。一
方面资源信息的传递在科学技术的帮助下实现了便捷化发展;另一方面,在媒介融合的背景下,通过多种途径、多种方式,让图书馆的资源更加的丰富与多样。
3 技术:提高先进化效率
图书馆职业能力的完善与发展需要借助技术提
高先进化的效率,进而满足用户需求的职业能力和资源信息的丰富发展。通过技术手段的先进性,让图书馆搭建一个全方位、多渠道的智能服务平台,整合多种媒介融合的作用与效果,开展有益于广大用户的阅读平台、交流平台、资源共享平台。这样不仅有利于图书馆实现服务社会的最佳效果,而且有利于提高新时代追梦人的文明素养。
4 人员:实现人机互动
图书馆的进一步发展需要在媒介融合的大背景
下去实现。首先,技术的作用不容忽视,其次馆员结构的合理性也不能轻视。馆员与先进技术的完美结合,实现人机互动,才能让图书馆职业能力得到进一步的展现。馆员通过技术手段,如网络平台、云端计算等方式让馆内资源的获取与传递更加方便。另外,信息技术不断地更新变革,促使馆员要完善自身的知识结构,实现全面发展。
核心概念
1,图书情报学就是研究信息的组织整理,以及通过图书馆等平台实现信息传递与传播,从而保障信息有效查询与获取的学问
我认为其还包括对信息的组织、存储、传播、交流、管理以及有效使用。
2,文献学是以文献以及文献发展规律为研究对象的一门科学
3,图书馆学(library science)是研究图书馆的发生发展、组织管理,以及图书馆工作规律的科学。
4,信息学是研究信息的表示,获取,处理,传递和利用的规律性的一门新兴学科
信息学是研究信息的产生、表示、获取、传输、处理、分类、识别、存储及利用的学科
5,信息资源管理.狭义的信息资源管理是指对信息本身即信息内容实施管理的过程。广义的信息资源管理是指对信息内容及与信息内容相关的资源如设备、设施、技术、投资、信息人员等进行管理的过程。
6,数据,数据是可以被赋予意义或已经被赋予意义的符号或符号集
7,信息,指音讯、消息、通讯系统传输和处理的对象,泛指人类社会传播的一切内容
8,文献,文献是通过一定的方法和手段、运用一定的意义表达和记录体系,记录在一定载体的有历史价值和研究价值的知识
9,知识:人们在改造世界实践中所获得的认识与经验的总结
10,档案学,档案学是以档案现象为研究对象,以揭示档案现象的本质和规律为目标的一门综合性学科。
图书情报期望: 以随着我国各类行业快 速发展的背景下,图书馆情报专业作也越 来越受到各大企业和人们的重视,那么对于各大图书馆的建设也必然会进一步的发展与建设,与此同时,因为图书馆事业受到 网络科技的的影响,对于系统功能方面越来越向信息化管理所靠近,当在传统功能的基础之下,增加许多网络信息管理技术, 所以我们可以在各大高校的图书馆中看到,新兴的网络技术已经逐渐的取代了传统图书馆管理业务,让图书馆在增加信息管理技术的同时,拓展了其专业在我国未来发展的范围,所需要的人才越来越多,专业为企业、公共事业所带来的实际效果也越来越大。
问题一
思路:进入佳能官网,查看其最新发布的产品,并询问客服,提供相关信息,最终确认这款产品是佳能PowerShot ZOOM,是一款小巧轻便的单眼望远照相机,兼具望远、拍照与录像功能。
问题二
思路:进入知网查询杨帆和申晓娟两名作者,查询到二人的合作关系图,发现申晓娟曾引用过杨帆的《开放环境数字信息服务政策保障逻辑框架分析》。
问题三
思路:进入贵州财经大学图书馆官网,点击站内搜索,选择新闻公告,输入徐大佑,发现三篇相关报道,共出现8次其姓名。
技术应用有:网格技术,数据挖掘技术,射频识别技术,RSS技术,存储技术,Web2.0技术,智能手机技术,聚类技术等。
各级各类图书馆;党政机关、企事业单位的图书资料部门、信息管理部门;电子政务、电子商务管理部门;网络系统管理机构;信息咨询服务机构,计算机软件企业研发或服务部门;国家各级信息化与信息产业行政主管部门等。而图书情报的实际就业方向非常多:例如图书馆(省市、高校)、情报所、档案局之类;互联网行业;咨询公司;金融行业(银行、证券);移动通信行业;出版社;高校;公务员。21世纪图书情报职业的性质仍然是信息服务业。但是顺应电子化、网络化的趋势和参与社会信息服务竟争,图书情报职业的职业趋向出现新的变化,即:信息资源 经理、信息服务 专家、人力开发者、网络 内容提供商
图书情报学的主体学科是图书馆学,情报学,档案学。其中图书馆学的研究对象是面向信息检索的信息组织。情报学的研究对象是基于信息组织的信息开发。档案学的研究对象是面向信息利用的信息保存。图书馆学分为理论图书馆学,实用图书馆学,专门图书馆学这三大类。
情报学又称信息学,主要分为信息表示学,信息加工学,信息资源管理学,信息安全学,信息传播学,计算机科学。档案学分为理论档案学,应用档案学。理论档案学是档案学基础理论与档案专业史的总称,包括档案学原理,档案术语学,档案法规学,档案史料学,档案事业史,比较档案学,档案学史等。应用档案学是档案事业管理,档案资源管理和开发,档案工作应用技术研究的总称。
[[图书情报学定义]]
[[图书馆职业能力索引]]
[InternetShortcut]
URL=data:text/vnd.tiddler,%7B%22text%22%3A%22%7B%5Cn%20%20%20%20%5C%22tiddlers%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Fvis%2Fimg%2Fnetwork%2FacceptDeleteIcon.png%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Fvis%2Fimg%2Fnetwork%2FacceptDeleteIcon.png%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22type%5C%22%3A%20%5C%22image%2Fpng%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89%2BbN%2FrXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz%2FSMBAPh%2BPDwrIsAHvgABeNMLCADATZvAMByH%2Fw%2FqQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf%2BbTAICd%2BJl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA%2Fg88wAAKCRFRHgg%2FP9eM4Ors7ONo62Dl8t6r8G%2FyJiYuP%2B5c%2BrcEAAAOF0ftH%2BLC%2BzGoA7BoBt%2FqIl7gRoXgugdfeLZrIPQLUAoOnaV%2FNw%2BH48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl%2FAV%2F1s%2BX48%2FPf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H%2FLcL%2F%2Fwd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s%2BwM%2B3zUAsGo%2BAXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93%2F%2B8%2F%2FUegJQCAZkmScQAAXkQkLlTKsz%2FHCAAARKCBKrBBG%2FTBGCzABhzBBdzBC%2FxgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD%2FphCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8%2BQ8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8%2BxdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR%2BcQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI%2BksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG%2BQh8lsKnWJAcaT4U%2BIoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr%2Bh0uhHdlR5Ol9BX0svpR%2BiX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK%2BYTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI%2BpXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q%2FpH5Z%2FYkGWcNMw09DpFGgsV%2FjvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY%2FR27iz2qqaE5QzNKM1ezUvOUZj8H45hx%2BJx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4%2FOBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up%2B6Ynr5egJ5Mb6feeb3n%2Bhx9L%2F1U%2FW36p%2FVHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm%2Beb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw%2B6TvZN9un2N%2FT0HDYfZDqsdWh1%2Bc7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc%2BLpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26%2FuNu5p7ofcn8w0nymeWTNz0MPIQ%2BBR5dE%2FC5%2BVMGvfrH5PQ0%2BBZ7XnIy9jL5FXrdewt6V3qvdh7xc%2B9j5yn%2BM%2B4zw33jLeWV%2FMN8C3yLfLT8Nvnl%2BF30N%2FI%2F9k%2F3r%2F0QCngCUBZwOJgUGBWwL7%2BHp8Ib%2BOPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo%2Bqi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt%2F87fOH4p3iC%2BN7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi%2FRNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z%2Bpn5mZ2y6xlhbL%2BxW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a%2FzYnKOZarnivN7cyzytuQN5zvn%2F%2FtEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1%2B1dT1gvWd%2B1YfqGnRs%2BFYmKrhTbF5cVf9go3HjlG4dvyr%2BZ3JS0qavEuWTPZtJm6ebeLZ5bDpaql%2BaXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO%2FPLi8ZafJzs07P1SkVPRU%2BlQ27tLdtWHX%2BG7R7ht7vPY07NXbW7z3%2FT7JvttVAVVN1WbVZftJ%2B7P3P66Jqun4lvttXa1ObXHtxwPSA%2F0HIw6217nU1R3SPVRSj9Yr60cOxx%2B%2B%2Fp3vdy0NNg1VjZzG4iNwRHnk6fcJ3%2FceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w%2B0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb%2B%2B6EHTh0kX%2Fi%2Bc7vDvOXPK4dPKy2%2BUTV7hXmq86X23qdOo8%2FpPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb%2F1tWeOT3dvfN6b%2FfF9%2FXfFt1%2Bcif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v%2B3Njv3H9qwHeg89HcR%2FcGhYPP%2FpH1jw9DBY%2BZj8uGDYbrnjg%2BOTniP3L96fynQ89kzyaeF%2F6i%2FsuuFxYvfvjV69fO0ZjRoZfyl5O%2FbXyl%2FerA6xmv28bCxh6%2ByXgzMV70VvvtwXfcdx3vo98PT%2BR8IH8o%2F2j5sfVT0Kf7kxmTk%2F8EA5jz%2FGMzLdsAAEEOaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu%2B7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI%2FPgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAyMSA3OS4xNTQ5MTEsIDIwMTMvMTAvMjktMTE6NDc6MTYgICAgICAgICI%2BCiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI%2BCiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w%2BCiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU%2BMjAxNC0wMi0wNVQxNjo0NTowOCswMTowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTQtMDItMDVUMTY6NDU6MDgrMDE6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOjBmYzFjNjhhLTcwZTYtMGY0Ni05ZDk4LWFhNDVjNjYxYThjODwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ%2BeG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ%2BCiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI%2BCiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24%2BY3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk%2BCiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24%2BCiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6RUE2MEEyNEUxOTg0RTMxMUFEQUZFRkU2RUMzMzNFMDM8L3N0RXZ0Omluc3RhbmNlSUQ%2BCiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDEtMjNUMTk6MTg6MDcrMDE6MDA8L3N0RXZ0OndoZW4%2BCiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI%2BCiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24%2Bc2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ%2BeG1wLmlpZDpiYzZmYmUxNi1mOTBkLWI1NDQtODUzOC05MjFkNjBiZjU0ZWI8L3N0RXZ0Omluc3RhbmNlSUQ%2BCiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDItMDVUMTY6NDU6MDgrMDE6MDA8L3N0RXZ0OndoZW4%2BCiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ%2BCiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ%2BCiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jb252ZXJ0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM%2BZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZzwvc3RFdnQ6cGFyYW1ldGVycz4KICAgICAgICAgICAgICAgPC9yZGY6bGk%2BCiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmRlcml2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM%2BY29udmVydGVkIGZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmc8L3N0RXZ0OnBhcmFtZXRlcnM%2BCiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjBmYzFjNjhhLTcwZTYtMGY0Ni05ZDk4LWFhNDVjNjYxYThjODwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4%2BMjAxNC0wMi0wNVQxNjo0NTowOCswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ%2BQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ%2BLzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk%2BCiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8eG1wTU06RGVyaXZlZEZyb20gcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICA8c3RSZWY6aW5zdGFuY2VJRD54bXAuaWlkOmJjNmZiZTE2LWY5MGQtYjU0NC04NTM4LTkyMWQ2MGJmNTRlYjwvc3RSZWY6aW5zdGFuY2VJRD4KICAgICAgICAgICAgPHN0UmVmOmRvY3VtZW50SUQ%2BeG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgICAgPHN0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdFJlZjpvcmlnaW5hbERvY3VtZW50SUQ%2BCiAgICAgICAgIDwveG1wTU06RGVyaXZlZEZyb20%2BCiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU%2BCiAgICAgICAgIDxwaG90b3Nob3A6SUNDUHJvZmlsZT5zUkdCIElFQzYxOTY2LTIuMTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU%2BCiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24%2BCiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDA5MC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24%2BNzIwMDkwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24%2BCiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE%2BCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw%2FeHBhY2tldCBlbmQ9InciPz450LuoAAAAIGNIUk0AAHolAACAgwAA%2Bf8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAATUSURBVHjajJZtTJVlGMd%2F13U%2Fz%2BF4sBQOCiovZiMt8YiKZrMtypdh09StbLOtzA1RUmuTkppzIilJOB0Oa21tbaV%2B6UP5Mlnm5heVkfhyQJ1ONITAkAMqcTDonNOHA6g9qF3b%2FeF5%2Fvf18r%2Fu676uWwoLC3G73QCoKiICgIhQeGejVw3LMOTIP0xGdRQAFi1E9DyGSkLsKxtWEmAQuXfvHrJlyxZiYmIQkQHjeac%2FjjfKBsJ8YlnRzQKIgBoIh8ByaRSICAilRCjdk1UeAIhEIogIPT09SFFRER6PZ4DByqr1%2BWpRoYAquKYuqCPz9SZeeCVA4vggAC2XPVw54eXi0WTOH8yIslIIs%2BbryTsq%2Bhl0d3cjxcXFuN1uVJVVp9dvEigSwP3iYj9vfV7L6IldPE5uXvZwcKuPsz%2F7%2BqLc%2FI1vexFAMBjEzJ49G9u2WV1TsEaVUhOBmJxVVeR9X8NTI3t5kgxN6GXakia67%2FbSeC4ZkexprccCZxLnVodCIRRgdU1BgsBuBVzz8qt49yv%2FoMb2f5TJd7kzBsXeLPHzal4VaiAmZnfupY0JIoKqKqoUGAHX9MV%2Bllf4HxmtMaDyaDZLtvqZushPWEHsAlVFP%2F3rswSNsEEt4O0v%2FE9MCebx8PxCP5YNlr3hg7%2B%2FTFBEl6mClflGHUl9VdIvGycuJdDgvm%2FbAtu6j3c0uSmZufQhnRHPBsnIqcOyQGSZAjlEgCkLGh3RDHk6yJWTCQCUZi%2Bgav8Mzh3KpGzeQgCuV3sZEhd06D2f3QgCas9XIuozCjw3q92xMXF8O8218QDM%2FfAMGLAsmLO2Jnof6rwkpjv10rLaURtEJimWJomtMDLdGUlyRhuBei8AU5Y0M2ZCMyPSW8hc2AxAW4OXUeOdbcKbFsQ2YKwkizCg1uAH9kxWOzU%2F%2Bga%2BX8s%2FQ%2FiBKur4w8tL79c69ESiTFXFQvQmyhhu1XsYNeHhW5s2o4OuwDB6ug2uISF8fZED9HQbgh1PM3Zah8PB7UYPGBBalDB%2BMFB%2FKt6x0e0JMSzpDr9XxzmwprNxDB95F9eQkANrrI3HssFQq4hWAnDxaMqgaUoYF6DJ73X8b74Qz%2FC0Qds016tSUANqVypG92EMnD%2BSwZ9XPc5KSg%2FQWu900HotgRHjnA5uN3m4diojmiKzV3cNL25DdTvGwJESn0NhzMR2Ohqc6etoiidpgrNET3zrix6yKf3Bld8WLZ8IZcAG6ip9%2FLQpyOIt91vG2BltHCwezbbpKzEKYoFodKVO%2BfUh48f3%2BLh20oexIBQqExFk586dxMbGkntp41rELscozFpRxaLN%2F6Mv%2Fcf4hcMzCYdAzboDKXm7Ozs7MTk5ObhcLs4lzqmeeus4GCublgvJtF61Sc1qxR0beqzh7g4Xx3ZN5%2FKxaagCsvlASl4pQG9vb5TB0KFDibZtZfmlonxcVgVhAcuGjJxa0l9uImVKO3GpXahA4EYsjbXx3PgtmYbTk1CiKYM1h1LzKvrncmdnJ1JeXo7b7cYYQ9%2BA4L2r21IJR9ZhXOuxXGAZBvKv%2FUui8wELVHYgUn44bdWNfmKRSIRgMIiUlJQQGxs78Krof7oYY8jt2TUCy3oH0XmI%2BMAejW0gYpoxxg%2FmF4zu3a8rbvXrPuigq6uLfwcA6IKAIsDf9kIAAAAASUVORK5CYII%3D%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Fvis%2Fimg%2Fnetwork%2FaddNodeIcon.png%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Fvis%2Fimg%2Fnetwork%2FaddNodeIcon.png%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22type%5C%22%3A%20%5C%22image%2Fpng%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89%2BbN%2FrXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz%2FSMBAPh%2BPDwrIsAHvgABeNMLCADATZvAMByH%2Fw%2FqQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf%2BbTAICd%2BJl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA%2Fg88wAAKCRFRHgg%2FP9eM4Ors7ONo62Dl8t6r8G%2FyJiYuP%2B5c%2BrcEAAAOF0ftH%2BLC%2BzGoA7BoBt%2FqIl7gRoXgugdfeLZrIPQLUAoOnaV%2FNw%2BH48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl%2FAV%2F1s%2BX48%2FPf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H%2FLcL%2F%2Fwd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s%2BwM%2B3zUAsGo%2BAXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93%2F%2B8%2F%2FUegJQCAZkmScQAAXkQkLlTKsz%2FHCAAARKCBKrBBG%2FTBGCzABhzBBdzBC%2FxgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD%2FphCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8%2BQ8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8%2BxdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR%2BcQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI%2BksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG%2BQh8lsKnWJAcaT4U%2BIoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr%2Bh0uhHdlR5Ol9BX0svpR%2BiX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK%2BYTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI%2BpXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q%2FpH5Z%2FYkGWcNMw09DpFGgsV%2FjvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY%2FR27iz2qqaE5QzNKM1ezUvOUZj8H45hx%2BJx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4%2FOBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up%2B6Ynr5egJ5Mb6feeb3n%2Bhx9L%2F1U%2FW36p%2FVHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm%2Beb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw%2B6TvZN9un2N%2FT0HDYfZDqsdWh1%2Bc7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc%2BLpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26%2FuNu5p7ofcn8w0nymeWTNz0MPIQ%2BBR5dE%2FC5%2BVMGvfrH5PQ0%2BBZ7XnIy9jL5FXrdewt6V3qvdh7xc%2B9j5yn%2BM%2B4zw33jLeWV%2FMN8C3yLfLT8Nvnl%2BF30N%2FI%2F9k%2F3r%2F0QCngCUBZwOJgUGBWwL7%2BHp8Ib%2BOPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo%2Bqi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt%2F87fOH4p3iC%2BN7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi%2FRNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z%2Bpn5mZ2y6xlhbL%2BxW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a%2FzYnKOZarnivN7cyzytuQN5zvn%2F%2FtEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1%2B1dT1gvWd%2B1YfqGnRs%2BFYmKrhTbF5cVf9go3HjlG4dvyr%2BZ3JS0qavEuWTPZtJm6ebeLZ5bDpaql%2BaXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO%2FPLi8ZafJzs07P1SkVPRU%2BlQ27tLdtWHX%2BG7R7ht7vPY07NXbW7z3%2FT7JvttVAVVN1WbVZftJ%2B7P3P66Jqun4lvttXa1ObXHtxwPSA%2F0HIw6217nU1R3SPVRSj9Yr60cOxx%2B%2B%2Fp3vdy0NNg1VjZzG4iNwRHnk6fcJ3%2FceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w%2B0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb%2B%2B6EHTh0kX%2Fi%2Bc7vDvOXPK4dPKy2%2BUTV7hXmq86X23qdOo8%2FpPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb%2F1tWeOT3dvfN6b%2FfF9%2FXfFt1%2Bcif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v%2B3Njv3H9qwHeg89HcR%2FcGhYPP%2FpH1jw9DBY%2BZj8uGDYbrnjg%2BOTniP3L96fynQ89kzyaeF%2F6i%2FsuuFxYvfvjV69fO0ZjRoZfyl5O%2FbXyl%2FerA6xmv28bCxh6%2ByXgzMV70VvvtwXfcdx3vo98PT%2BR8IH8o%2F2j5sfVT0Kf7kxmTk%2F8EA5jz%2FGMzLdsAAEEOaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu%2B7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI%2FPgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAyMSA3OS4xNTQ5MTEsIDIwMTMvMTAvMjktMTE6NDc6MTYgICAgICAgICI%2BCiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI%2BCiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w%2BCiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU%2BMjAxNC0wMi0wNFQxNDo0MDoyOSswMTowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTQtMDItMDRUMTQ6NDA6MjkrMDE6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOjVkNWIwNmQwLTVmMjAtOGE0NC1hMzIwLWZmMTEzMzQwNDc0YjwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ%2BeG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ%2BCiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI%2BCiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24%2BY3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk%2BCiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24%2BCiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6RUE2MEEyNEUxOTg0RTMxMUFEQUZFRkU2RUMzMzNFMDM8L3N0RXZ0Omluc3RhbmNlSUQ%2BCiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDEtMjNUMTk6MTg6MDcrMDE6MDA8L3N0RXZ0OndoZW4%2BCiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI%2BCiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24%2Bc2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ%2BeG1wLmlpZDo2OWVmYWE1NS01ZTI5LTIzNGUtYTUzMy0xNDkxYjM1NDNmYmE8L3N0RXZ0Omluc3RhbmNlSUQ%2BCiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDItMDRUMTQ6NDA6MjkrMDE6MDA8L3N0RXZ0OndoZW4%2BCiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ%2BCiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ%2BCiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jb252ZXJ0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM%2BZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZzwvc3RFdnQ6cGFyYW1ldGVycz4KICAgICAgICAgICAgICAgPC9yZGY6bGk%2BCiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmRlcml2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM%2BY29udmVydGVkIGZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmc8L3N0RXZ0OnBhcmFtZXRlcnM%2BCiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjVkNWIwNmQwLTVmMjAtOGE0NC1hMzIwLWZmMTEzMzQwNDc0Yjwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4%2BMjAxNC0wMi0wNFQxNDo0MDoyOSswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ%2BQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ%2BLzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk%2BCiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8eG1wTU06RGVyaXZlZEZyb20gcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICA8c3RSZWY6aW5zdGFuY2VJRD54bXAuaWlkOjY5ZWZhYTU1LTVlMjktMjM0ZS1hNTMzLTE0OTFiMzU0M2ZiYTwvc3RSZWY6aW5zdGFuY2VJRD4KICAgICAgICAgICAgPHN0UmVmOmRvY3VtZW50SUQ%2BeG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgICAgPHN0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdFJlZjpvcmlnaW5hbERvY3VtZW50SUQ%2BCiAgICAgICAgIDwveG1wTU06RGVyaXZlZEZyb20%2BCiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU%2BCiAgICAgICAgIDxwaG90b3Nob3A6SUNDUHJvZmlsZT5zUkdCIElFQzYxOTY2LTIuMTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU%2BCiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24%2BCiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDA5MC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24%2BNzIwMDkwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24%2BCiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE%2BCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw%2FeHBhY2tldCBlbmQ9InciPz5WKqp9AAAAIGNIUk0AAHolAACAgwAA%2Bf8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAYXSURBVHjafFZtUFTXGX7e9z27sveuMCwYV8ElrA7YSFYHtJUPkaaI0aRqG8wP00zUzljDINNSA%2F2ROtpO24SxnahlxjYd7SSjmUkymcxYlDhQPzHGisEVp8HwYWCVVVgEsrsuLnL74%2B5uqTF9Z%2B7cO%2Fd8PO95zvO851BlZSV0XQcAMDOYGQBARDhX3JRmMDYZwLPMWAzGHACYIgwS46oBNBNwtOL8CwE8EkSEUCgE2rJlC2w2G4go8Zwo%2FbMDgnoG6gxLfAAAYvPDMCCszKTAMIAGAhrWnf15AAAMwwARIRKJgDZv3gy73Q4iAjPjxIr9VVOMRhbAYKB8zvrO0llrfEsdKwLZek6YAPSFvtSu3GtLawu0ZJ6625SHGBQB1T88t6MxvopgMAjaunUrdF0HM%2BP4yv27DMYeJmB1RqW3Jnf3tQX2p0L4P9EXuqEd7PmDp%2BXuMU9sRbvXnnt1TxxACgoKYLVacbzsQDUJGkSATe6qi28uPtzusM6Kxie6NHLGUX3lxVUNX9StPHnn4wy3njuUYcu6n2pNi66avcEXnByP%2Fnv8aiaIyrqz2gO5A9%2B9FI1GIfn5%2BWhZdTAdjFMkwMvZOy7uWnTAOz3L4Yk71m3t69fdfTDoUGTBeHTUfiHQ6lo7Z2OXJvpDAChKe%2BaOCdKRKWxZ2%2B1qb3yyd3GYmRkQ7GQBVs99wfv6on3eR2k4PdTkDEbH7IuS8%2Fsvld%2F561PJS%2FpDk1%2Fbzwx94pze7xc5v%2FH%2BYPY6r5BAkdrJzODTK46lE6PeYEJt7u%2B8j%2BOZwCBiEAgAoNgKJoEQf6PvNvdrXgtZoNhSf7q0KZ3B2AQmVMze0Jmt54S%2FDcDCVig2NcvEUGxJAE4Pl%2BYOr0iv6BRSIPAmBeBZAmHlE2sH4p1uhrq1s0MnnEQMBsf8wRASAICQQCCITN1X7%2FsOuc0kgOVp3%2FfPs2WHv%2BcoG7gQOJUnLGsUCTxEjPzUohEA%2BNfIWUdtx0%2BefzA1kSSkIGyBAQNCKgHAEBAJ3u79U7kiAcWoem%2Fgb5Fd33nrH3kp%2BSMWtuAB%2BGllMJxMjCx9QRgA3uiqL5kwHiTlpxb3smlfMDGYGPP1hcMAkJvs8ScpfdJspdj%2BMK6Pf%2B5%2Bu29vyb4lR4%2BBGEziVESAkEpw6Av1OhUpHCz4qOXbzFWz4Ncdj%2Fv%2Fo08Lt92ODDgZDCEFJYoUGH4mzugP92puPTf0pD3H7wvfdFZdqSxnMtWjoGAAmG9fOLxjwesdjT2%2FXzIQ7ks3sycYMSEwGHNtWf5bkX5NkYCJBxUBXiGV0XHvosOt54Zey33j%2FK%2B8P33%2B%2BvjnbiGJbbLE%2BJ9SANAb6nJ2B79wcUwETAwQQ7fMjPzMvfP8ja87HUIKMOiaAqMZhrGmLdAy78eZrwwsTS0eObTs%2BIdtgVanxBUExqGbb5VzrIISGIoUXsmqbgEhJldCQWqRf27SvPAn%2Fo8XmgLhZsUkR4ll37mhk3n94Z4OlzY%2F7NLcYZfm7o1z2zT4vsvUNSXqprBCkmiTFbPX90%2Ffh8GIT2sf%2BzTPdDMf4dVnNg4z%2BE0ixsGeBs9jd5ViSgLHjCb%2FpeaR%2BMD3d4%2FZJg2llyuG2Vwy7QWAs8PNnn1f7vkGSGxAzE6mk%2Bkxkx%2Fp%2F4unffSCR0hAoL1EBCYiPNdWNcwkNQTCR7feWX6g%2B7f%2FA7I8rcw%2FU6UEe0Ndrhc%2FW7mtL9ztmqlSgstSS%2FzTJ28dalpOpkRryrwbhwBACgsLMWPGDOT4ll3qyeqAkJTdCF7P%2FCrUY%2FGkLL1rE%2B2hTbSH8%2B0Lb%2FWEuhzhyaA905blf9Vd%2F895WnZwLHrPevir%2FcvOB1oLYpTtLrm6oYGIMDExAaqtrUVKSgqYGSKCk0WHq5ikkWEWtNL0imv5qUW%2BRclLRjJsrhBAuH1%2FQL8R7HR4xy5nescuP23E6hOA6mLv%2Bsb4uTw6Ogqqq6uDpmkQkcStorX4XRcM1FjZ%2BkvFFjCJKU1WpkNJJUqIMtX1RyLeX3JtQ0JRhmGYZ%2FL27duRnJycuFGISOJ9pqh5lrB6iYgqGOxRrOaa54DcZmKvkJxk8JHC9rKh%2BKVhOsD4%2BDj%2BMwADIf8n5m4xGwAAAABJRU5ErkJggg%3D%3D%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Fvis%2Fimg%2Fnetwork%2FbackIcon.png%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Fvis%2Fimg%2Fnetwork%2FbackIcon.png%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22type%5C%22%3A%20%5C%22image%2Fpng%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89%2BbN%2FrXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz%2FSMBAPh%2BPDwrIsAHvgABeNMLCADATZvAMByH%2Fw%2FqQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf%2BbTAICd%2BJl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA%2Fg88wAAKCRFRHgg%2FP9eM4Ors7ONo62Dl8t6r8G%2FyJiYuP%2B5c%2BrcEAAAOF0ftH%2BLC%2BzGoA7BoBt%2FqIl7gRoXgugdfeLZrIPQLUAoOnaV%2FNw%2BH48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl%2FAV%2F1s%2BX48%2FPf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H%2FLcL%2F%2Fwd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s%2BwM%2B3zUAsGo%2BAXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93%2F%2B8%2F%2FUegJQCAZkmScQAAXkQkLlTKsz%2FHCAAARKCBKrBBG%2FTBGCzABhzBBdzBC%2FxgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD%2FphCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8%2BQ8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8%2BxdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR%2BcQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI%2BksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG%2BQh8lsKnWJAcaT4U%2BIoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr%2Bh0uhHdlR5Ol9BX0svpR%2BiX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK%2BYTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI%2BpXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q%2FpH5Z%2FYkGWcNMw09DpFGgsV%2FjvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY%2FR27iz2qqaE5QzNKM1ezUvOUZj8H45hx%2BJx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4%2FOBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up%2B6Ynr5egJ5Mb6feeb3n%2Bhx9L%2F1U%2FW36p%2FVHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm%2Beb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw%2B6TvZN9un2N%2FT0HDYfZDqsdWh1%2Bc7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc%2BLpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26%2FuNu5p7ofcn8w0nymeWTNz0MPIQ%2BBR5dE%2FC5%2BVMGvfrH5PQ0%2BBZ7XnIy9jL5FXrdewt6V3qvdh7xc%2B9j5yn%2BM%2B4zw33jLeWV%2FMN8C3yLfLT8Nvnl%2BF30N%2FI%2F9k%2F3r%2F0QCngCUBZwOJgUGBWwL7%2BHp8Ib%2BOPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo%2Bqi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt%2F87fOH4p3iC%2BN7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi%2FRNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z%2Bpn5mZ2y6xlhbL%2BxW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a%2FzYnKOZarnivN7cyzytuQN5zvn%2F%2FtEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1%2B1dT1gvWd%2B1YfqGnRs%2BFYmKrhTbF5cVf9go3HjlG4dvyr%2BZ3JS0qavEuWTPZtJm6ebeLZ5bDpaql%2BaXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO%2FPLi8ZafJzs07P1SkVPRU%2BlQ27tLdtWHX%2BG7R7ht7vPY07NXbW7z3%2FT7JvttVAVVN1WbVZftJ%2B7P3P66Jqun4lvttXa1ObXHtxwPSA%2F0HIw6217nU1R3SPVRSj9Yr60cOxx%2B%2B%2Fp3vdy0NNg1VjZzG4iNwRHnk6fcJ3%2FceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w%2B0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb%2B%2B6EHTh0kX%2Fi%2Bc7vDvOXPK4dPKy2%2BUTV7hXmq86X23qdOo8%2FpPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb%2F1tWeOT3dvfN6b%2FfF9%2FXfFt1%2Bcif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v%2B3Njv3H9qwHeg89HcR%2FcGhYPP%2FpH1jw9DBY%2BZj8uGDYbrnjg%2BOTniP3L96fynQ89kzyaeF%2F6i%2FsuuFxYvfvjV69fO0ZjRoZfyl5O%2FbXyl%2FerA6xmv28bCxh6%2ByXgzMV70VvvtwXfcdx3vo98PT%2BR8IH8o%2F2j5sfVT0Kf7kxmTk%2F8EA5jz%2FGMzLdsAAEEOaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu%2B7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI%2FPgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAyMSA3OS4xNTQ5MTEsIDIwMTMvMTAvMjktMTE6NDc6MTYgICAgICAgICI%2BCiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI%2BCiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w%2BCiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU%2BMjAxNC0wMi0wNFQxNTowMTowOSswMTowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTQtMDItMDRUMTU6MDE6MDkrMDE6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOmI2YjQwMjVkLTAxNjQtMzU0OC1hOTdlLTQ4ZmYxMWM3NTYzMzwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ%2BeG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ%2BCiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI%2BCiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24%2BY3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk%2BCiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24%2BCiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6RUE2MEEyNEUxOTg0RTMxMUFEQUZFRkU2RUMzMzNFMDM8L3N0RXZ0Omluc3RhbmNlSUQ%2BCiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDEtMjNUMTk6MTg6MDcrMDE6MDA8L3N0RXZ0OndoZW4%2BCiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI%2BCiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24%2Bc2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ%2BeG1wLmlpZDpmOWQ3OGY4ZC1lNzY0LTc1NDgtODZiNy1iNmQ1OGMzZDg2OTc8L3N0RXZ0Omluc3RhbmNlSUQ%2BCiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDItMDRUMTU6MDE6MDkrMDE6MDA8L3N0RXZ0OndoZW4%2BCiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ%2BCiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ%2BCiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jb252ZXJ0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM%2BZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZzwvc3RFdnQ6cGFyYW1ldGVycz4KICAgICAgICAgICAgICAgPC9yZGY6bGk%2BCiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmRlcml2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM%2BY29udmVydGVkIGZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmc8L3N0RXZ0OnBhcmFtZXRlcnM%2BCiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOmI2YjQwMjVkLTAxNjQtMzU0OC1hOTdlLTQ4ZmYxMWM3NTYzMzwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4%2BMjAxNC0wMi0wNFQxNTowMTowOSswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ%2BQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ%2BLzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk%2BCiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8eG1wTU06RGVyaXZlZEZyb20gcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICA8c3RSZWY6aW5zdGFuY2VJRD54bXAuaWlkOmY5ZDc4ZjhkLWU3NjQtNzU0OC04NmI3LWI2ZDU4YzNkODY5Nzwvc3RSZWY6aW5zdGFuY2VJRD4KICAgICAgICAgICAgPHN0UmVmOmRvY3VtZW50SUQ%2BeG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgICAgPHN0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdFJlZjpvcmlnaW5hbERvY3VtZW50SUQ%2BCiAgICAgICAgIDwveG1wTU06RGVyaXZlZEZyb20%2BCiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU%2BCiAgICAgICAgIDxwaG90b3Nob3A6SUNDUHJvZmlsZT5zUkdCIElFQzYxOTY2LTIuMTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU%2BCiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24%2BCiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDA5MC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24%2BNzIwMDkwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24%2BCiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE%2BCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw%2FeHBhY2tldCBlbmQ9InciPz4jq1U%2FAAAAIGNIUk0AAHolAACAgwAA%2Bf8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAVTSURBVHjanFVfTFNnFP%2Bd77ve8qeVFbBrpcVgRrCRFikFByLxwSAaE32oRCHD6JMxxhhn8G2RxxH3MsOTbyYsmCAxPMmMMYtkIUYmK60OO0qAK23BFlNob0uh3x7WS5jLZPpLbm6%2Bk%2FP9zrm5v9855PF4UFhYCABgjIExBgAgIqRSqRIi6gDQRkQ1RGTB3wgR0e8AHgH4Sa%2FXR%2FEBiAiJRAJ04cIF5Ofng4g2n0gkUkxENwF0c843LzHGQEQQQkCLExEA9ALotVgsUQAQQmgNQhJCbF5kjCEUCl0moj4t5na7fTU1NUpVVVXUYrEkASAcDhe8efOmxOfzWScmJqoBdBNR99LS0hWz2dynNSSEAF28eBGFhYVgjCEcDn9HRD1EhIMHD3o9Hs9kWVlZAh9BKBQqGB4edr58%2BdKZ%2B6JbJpOpBwBWV1fB6%2BrqIMsyIpHIFcZYL2MMra2tY5cuXRrfuXNnBtvAYDBk3G63oqpqZm5uzgrgSDKZjBoMhueZTAbc5XIhFouVEtFTxhiOHTs2dv78eS8%2BEfv374%2BoqpqZnZ21cs5PJJPJPlmWkyynnBuMMTQ0NHi7uro%2BmVyDx%2BPxulwu71ZOlkqlSonoJhGhvb39s8k1nDx50ss5hyRJN9PpdKlERB2aWjSVaEilUvzBgwcORVEs5eXloXPnzk1sV8BkMiUdDofP7%2FdXZ7PZDilnIhw4cGBeS1pbW2P37t1zBwKBikQiUUREWFhYsHHO0d7evm0Ru90%2B%2F%2BrVq2rO%2BXGJiJxEhMrKyhgAjI6OWoeHh5tWVla%2B4JzDZrO9bW5unhwcHGzz%2B%2F32np4e%2BxaDbfoHAMxmc6ijo2O0oqIiJkkSNjY2HBIRmRljMJvNyWfPnln7%2B%2FtPMMZQXl6%2B0NbW9qK2tjYcj8floaEhqKpq%2BHCkbD3PzMwYBgYG0NXV9UuusFna2kEgELAQEQ4dOvSis7PzN41Ar9dnrl27NqCNkv%2FC3bt3zy4tLVmICJxzEBFJRBQmorLFxcWCqqqq0Pj4eO3Y2JhbUZTdra2tL2pra8OJRGLHnTt3zkqS9K%2BhuHU4EhHMZnMoGo0W5OIh7nK5jjLGKq1W69vDhw8rRqMxMjc3t2t5eXnX5ORklc%2FnM%2Bfl5SWnpqa%2B0uv1K%2Fn5%2BWs6nW5NluXNd15e3ppOp1uz2WyzZ86cGQ0Gg6ZAIFCZzWZ%2FlYjokRDiuN%2Fvt7W0tMw3NTUpbrd78P79%2B%2B5gMFgRiUTKHj58WMYYQ3V19etTp05tq6Lp6Wkb5xxCiEfc7XZPM8a6FxcXTfX19a%2F1en2Gcy5qamreNjY2%2FqGq6joRZe12%2B9Tp06e3JY%2FFYgWPHz8%2Bmhvr3%2FCWlpbk%2Bvp6PmOseWVlBS6XS9GSJUkSdrs93NDQ8Oe%2BffvC%2F8fJIyMjddFo9Esi6pVleVjT2m0A8Hq9zqGhIefnjoknT544A4GAM%2FeDbxMReFNTE0pKSpKqqsaI6Pj8%2FLxVVdWM3W6PfCr5xMTE1zllXS0uLn6aSqXAGxsbodPpoNfrn6uqCs75EUVRrJFIZMfevXsXdTrdxseIE4mEPDIyUu%2F3%2B%2Btynd8yGo29RIR0Og26fv06ioqKwBgD5xzv3r27zBjrIyJIkgSHwzFZWVmp7NmzJ1ZaWpoAgGg0WqgoSvHMzIw1GAw6tvjhitFo7NPW5fv370Hd3d0oKCgA53zTQMvLy%2BVCiKuSJH0rSdLmztZytIWv5RPRD0T0Y3Fx8dzWfby6ugopHo%2F%2Fw4mcc8iyPMc5v5FOp7%2FPZrOdQohWInIC2C2EgBBigYi8Qoifs9lsv06nWyIiaFxagXg8jr8GAGxuIe7LBeWhAAAAAElFTkSuQmCC%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Fvis%2Fimg%2Fnetwork%2FconnectIcon.png%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Fvis%2Fimg%2Fnetwork%2FconnectIcon.png%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22type%5C%22%3A%20%5C%22image%2Fpng%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89%2BbN%2FrXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz%2FSMBAPh%2BPDwrIsAHvgABeNMLCADATZvAMByH%2Fw%2FqQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf%2BbTAICd%2BJl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA%2Fg88wAAKCRFRHgg%2FP9eM4Ors7ONo62Dl8t6r8G%2FyJiYuP%2B5c%2BrcEAAAOF0ftH%2BLC%2BzGoA7BoBt%2FqIl7gRoXgugdfeLZrIPQLUAoOnaV%2FNw%2BH48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl%2FAV%2F1s%2BX48%2FPf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H%2FLcL%2F%2Fwd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s%2BwM%2B3zUAsGo%2BAXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93%2F%2B8%2F%2FUegJQCAZkmScQAAXkQkLlTKsz%2FHCAAARKCBKrBBG%2FTBGCzABhzBBdzBC%2FxgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD%2FphCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8%2BQ8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8%2BxdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR%2BcQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI%2BksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG%2BQh8lsKnWJAcaT4U%2BIoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr%2Bh0uhHdlR5Ol9BX0svpR%2BiX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK%2BYTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI%2BpXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q%2FpH5Z%2FYkGWcNMw09DpFGgsV%2FjvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY%2FR27iz2qqaE5QzNKM1ezUvOUZj8H45hx%2BJx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4%2FOBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up%2B6Ynr5egJ5Mb6feeb3n%2Bhx9L%2F1U%2FW36p%2FVHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm%2Beb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw%2B6TvZN9un2N%2FT0HDYfZDqsdWh1%2Bc7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc%2BLpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26%2FuNu5p7ofcn8w0nymeWTNz0MPIQ%2BBR5dE%2FC5%2BVMGvfrH5PQ0%2BBZ7XnIy9jL5FXrdewt6V3qvdh7xc%2B9j5yn%2BM%2B4zw33jLeWV%2FMN8C3yLfLT8Nvnl%2BF30N%2FI%2F9k%2F3r%2F0QCngCUBZwOJgUGBWwL7%2BHp8Ib%2BOPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo%2Bqi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt%2F87fOH4p3iC%2BN7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi%2FRNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z%2Bpn5mZ2y6xlhbL%2BxW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a%2FzYnKOZarnivN7cyzytuQN5zvn%2F%2FtEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1%2B1dT1gvWd%2B1YfqGnRs%2BFYmKrhTbF5cVf9go3HjlG4dvyr%2BZ3JS0qavEuWTPZtJm6ebeLZ5bDpaql%2BaXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO%2FPLi8ZafJzs07P1SkVPRU%2BlQ27tLdtWHX%2BG7R7ht7vPY07NXbW7z3%2FT7JvttVAVVN1WbVZftJ%2B7P3P66Jqun4lvttXa1ObXHtxwPSA%2F0HIw6217nU1R3SPVRSj9Yr60cOxx%2B%2B%2Fp3vdy0NNg1VjZzG4iNwRHnk6fcJ3%2FceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w%2B0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb%2B%2B6EHTh0kX%2Fi%2Bc7vDvOXPK4dPKy2%2BUTV7hXmq86X23qdOo8%2FpPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb%2F1tWeOT3dvfN6b%2FfF9%2FXfFt1%2Bcif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v%2B3Njv3H9qwHeg89HcR%2FcGhYPP%2FpH1jw9DBY%2BZj8uGDYbrnjg%2BOTniP3L96fynQ89kzyaeF%2F6i%2FsuuFxYvfvjV69fO0ZjRoZfyl5O%2FbXyl%2FerA6xmv28bCxh6%2ByXgzMV70VvvtwXfcdx3vo98PT%2BR8IH8o%2F2j5sfVT0Kf7kxmTk%2F8EA5jz%2FGMzLdsAAEEOaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu%2B7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI%2FPgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAyMSA3OS4xNTQ5MTEsIDIwMTMvMTAvMjktMTE6NDc6MTYgICAgICAgICI%2BCiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI%2BCiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w%2BCiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU%2BMjAxNC0wMi0wNFQxNDozODo1NyswMTowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTQtMDItMDRUMTQ6Mzg6NTcrMDE6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOjlmYjUwMDU0LWE3ODEtMWQ0OC05ZTllLTU2ZWQ5YzhlYjdjNjwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ%2BeG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ%2BCiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI%2BCiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24%2BY3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk%2BCiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24%2BCiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6RUE2MEEyNEUxOTg0RTMxMUFEQUZFRkU2RUMzMzNFMDM8L3N0RXZ0Omluc3RhbmNlSUQ%2BCiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDEtMjNUMTk6MTg6MDcrMDE6MDA8L3N0RXZ0OndoZW4%2BCiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI%2BCiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24%2Bc2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ%2BeG1wLmlpZDo3ZWRhMjI0MC0yYTQxLTNlNDQtYWM2My1iNzNiYTE5OWI3Y2E8L3N0RXZ0Omluc3RhbmNlSUQ%2BCiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDItMDRUMTQ6Mzg6NTcrMDE6MDA8L3N0RXZ0OndoZW4%2BCiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ%2BCiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ%2BCiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jb252ZXJ0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM%2BZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZzwvc3RFdnQ6cGFyYW1ldGVycz4KICAgICAgICAgICAgICAgPC9yZGY6bGk%2BCiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmRlcml2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM%2BY29udmVydGVkIGZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmc8L3N0RXZ0OnBhcmFtZXRlcnM%2BCiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjlmYjUwMDU0LWE3ODEtMWQ0OC05ZTllLTU2ZWQ5YzhlYjdjNjwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4%2BMjAxNC0wMi0wNFQxNDozODo1NyswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ%2BQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ%2BLzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk%2BCiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8eG1wTU06RGVyaXZlZEZyb20gcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICA8c3RSZWY6aW5zdGFuY2VJRD54bXAuaWlkOjdlZGEyMjQwLTJhNDEtM2U0NC1hYzYzLWI3M2JhMTk5YjdjYTwvc3RSZWY6aW5zdGFuY2VJRD4KICAgICAgICAgICAgPHN0UmVmOmRvY3VtZW50SUQ%2BeG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgICAgPHN0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdFJlZjpvcmlnaW5hbERvY3VtZW50SUQ%2BCiAgICAgICAgIDwveG1wTU06RGVyaXZlZEZyb20%2BCiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU%2BCiAgICAgICAgIDxwaG90b3Nob3A6SUNDUHJvZmlsZT5zUkdCIElFQzYxOTY2LTIuMTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU%2BCiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24%2BCiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDA5MC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24%2BNzIwMDkwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24%2BCiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE%2BCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw%2FeHBhY2tldCBlbmQ9InciPz4ubxs%2BAAAAIGNIUk0AAHolAACAgwAA%2Bf8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAUtSURBVHjajJZ%2FbNT1Gcdfz%2FP53PV6B4W7VltLqdAaplIOiMOoyxxJCSs%2FGv%2FyB4gzJroAosmmDklwkYWR0bQsdmkykoojTpcsWYLxD%2FlRZdMQkTHRtkLZRqG0tIVe7662vTu43n32x%2FVKZ%2Fjh89cn38%2FzvN7P5%2Fl88zwf2blzJz6fDwARQUSm1n8s31CM0%2FVAnbNmsUPuAsDpgEO%2BBg4C7%2F%2Fiyv5hvmMiQiqVQpqamvB6vVNwEeG1JZtCBrYi%2FMrkAwDNgjhwAlbzICBLA0rDb0%2B%2F839C6XQaaWxspLCw8Dp86cbNmqVFJQddE6KzdjZ9D89g%2BB6fSyCOcyn1nxil%2BO9xKg5HqWFSHGXLjrP7W%2FICqVQK2bNnDz6fDxFh65KNvxbHDhF4rJj2bXPo%2BIGfcW5h5xL4f99P%2BFCEMIAob75x9t0dAMlkElNXV4e1lteXbNqiQoMaeOFOjrdU868SD2luYyEP6dUh%2BsYmSHeOU6GO5Z8VLx5%2BNNZxIpPJ5AS2L3upROCoCvz8Lo7vnkf77cAHhpiz%2FzIL9vWz8L8p%2FNvupmM0Q7pjnAoLqz8tDrc8MnQqYVUVhVdF4LEg7b%2BrvDn8wDDlH0WoPpukLJImSBaMwjcJqmwWts2jPZLG%2F8kwYVFeVdXXZcFf4yVDc2cNKfBFmD9X%2B0ncCP58F48eG%2BFeo2CAUkvs4dl0V%2FuJvdXLiiV%2But%2B%2Bn7YLSfxPfMMG54ChzB3WIesVWB2i82bw1AR6fJR7C4VsfYiv6u%2Fk3A9nEgP4zXke8DiYHyAOMK%2BQxPIgnZ9GqSHr1itQJ8DK2fTerDQ%2BS%2FbHRXQJaHSCwNIZ2Xh%2B7%2BS3VAmwNMBA%2FtuPZtErgKquUmdMWIFlRURvdamRNEXGwIWrlP47pTMzLiunxghGMwTLvcTWlHAp77s4QNSrYMQtss6ZMgWqCm5cHoDHO1nbk6K8zEN8%2B3zatv2Hn1b59EqJZdxmYUERg9P9KwpIiAOTdWUWBXuLzB%2FvZG3P1Un4PNp2d1MbmyD45TWCxuCsQm0x56bHGHFYEZwxok7toAA9Sfw3hCcoL%2FNOwi9QO5wmWO1j4JEgZxTkodmcWRGkf3pcX0r8xoAaBixKu4U5%2FxwndM%2B0tpAvS6mP%2BPZK2nb1UBvPEKwKMLDvPj4ESGc55lGy303sdJKQdZB2rkMdctAB%2F4gzN%2B%2FQ2ENNd4LyUi%2FxN%2BbTtquX2thk5nk4wI3gAF%2BOMNcA1nFQDfK%2BBY5GqbkwWabTY5QZhXWlnNx1ntrY1Rz87fuvw29m%2FSn8J%2BPUGAFj5T19baA1IspuBZp7cx1x4SwG1cEf%2BlgRSROs8jGwb%2BHt4QB%2FGSSsAhYano39LWIBxNEIbP14hPDuiyS2VtJuHXQlKKvxM%2FjiXDq%2FD%2FxPlwifGMkJZB2NIoKpr69nxeiZxLHicFSFVWfGqBidIP3LSjrWltD94CyufF%2F4kQgPuVz2Lz93%2BdDRa9eu5QQ8Hg8%2FiXee%2BDy4CKMs7xqn4nwKz9IirhQqmVuB42m8ey%2Bx7LMoD6iAON782eChhqmRuXfvXgKBAKqKqtI0%2F8nNKrQI4BVYXkzHgzPpC88gWuHL%2FcaXrhLoGiN0apSKr0ZZRBZM7q2w5ZnLR1oAnHOMjY0hra2tFBQUYIyZmstvVT1Z6eDlAuEVq7merxmwueNPDXy9PvybjKP5mctHLk4%2FXTKZRJqbm%2FH7%2FVNw1VyEMYbW4FN3WNWnnchKoy5sHeVGBRX6VWi3ymFx7r11Ix8MTX%2Fy5C2RSPC%2FAQB61erowbpqSwAAAABJRU5ErkJggg%3D%3D%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Fvis%2Fimg%2Fnetwork%2Fcross.png%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Fvis%2Fimg%2Fnetwork%2Fcross.png%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22type%5C%22%3A%20%5C%22image%2Fpng%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAYAAADEUlfTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89%2BbN%2FrXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz%2FSMBAPh%2BPDwrIsAHvgABeNMLCADATZvAMByH%2Fw%2FqQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf%2BbTAICd%2BJl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA%2Fg88wAAKCRFRHgg%2FP9eM4Ors7ONo62Dl8t6r8G%2FyJiYuP%2B5c%2BrcEAAAOF0ftH%2BLC%2BzGoA7BoBt%2FqIl7gRoXgugdfeLZrIPQLUAoOnaV%2FNw%2BH48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl%2FAV%2F1s%2BX48%2FPf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H%2FLcL%2F%2Fwd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s%2BwM%2B3zUAsGo%2BAXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93%2F%2B8%2F%2FUegJQCAZkmScQAAXkQkLlTKsz%2FHCAAARKCBKrBBG%2FTBGCzABhzBBdzBC%2FxgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD%2FphCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8%2BQ8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8%2BxdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR%2BcQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI%2BksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG%2BQh8lsKnWJAcaT4U%2BIoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr%2Bh0uhHdlR5Ol9BX0svpR%2BiX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK%2BYTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI%2BpXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q%2FpH5Z%2FYkGWcNMw09DpFGgsV%2FjvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY%2FR27iz2qqaE5QzNKM1ezUvOUZj8H45hx%2BJx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4%2FOBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up%2B6Ynr5egJ5Mb6feeb3n%2Bhx9L%2F1U%2FW36p%2FVHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm%2Beb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw%2B6TvZN9un2N%2FT0HDYfZDqsdWh1%2Bc7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc%2BLpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26%2FuNu5p7ofcn8w0nymeWTNz0MPIQ%2BBR5dE%2FC5%2BVMGvfrH5PQ0%2BBZ7XnIy9jL5FXrdewt6V3qvdh7xc%2B9j5yn%2BM%2B4zw33jLeWV%2FMN8C3yLfLT8Nvnl%2BF30N%2FI%2F9k%2F3r%2F0QCngCUBZwOJgUGBWwL7%2BHp8Ib%2BOPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo%2Bqi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt%2F87fOH4p3iC%2BN7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi%2FRNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z%2Bpn5mZ2y6xlhbL%2BxW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a%2FzYnKOZarnivN7cyzytuQN5zvn%2F%2FtEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1%2B1dT1gvWd%2B1YfqGnRs%2BFYmKrhTbF5cVf9go3HjlG4dvyr%2BZ3JS0qavEuWTPZtJm6ebeLZ5bDpaql%2BaXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO%2FPLi8ZafJzs07P1SkVPRU%2BlQ27tLdtWHX%2BG7R7ht7vPY07NXbW7z3%2FT7JvttVAVVN1WbVZftJ%2B7P3P66Jqun4lvttXa1ObXHtxwPSA%2F0HIw6217nU1R3SPVRSj9Yr60cOxx%2B%2B%2Fp3vdy0NNg1VjZzG4iNwRHnk6fcJ3%2FceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w%2B0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb%2B%2B6EHTh0kX%2Fi%2Bc7vDvOXPK4dPKy2%2BUTV7hXmq86X23qdOo8%2FpPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb%2F1tWeOT3dvfN6b%2FfF9%2FXfFt1%2Bcif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v%2B3Njv3H9qwHeg89HcR%2FcGhYPP%2FpH1jw9DBY%2BZj8uGDYbrnjg%2BOTniP3L96fynQ89kzyaeF%2F6i%2FsuuFxYvfvjV69fO0ZjRoZfyl5O%2FbXyl%2FerA6xmv28bCxh6%2ByXgzMV70VvvtwXfcdx3vo98PT%2BR8IH8o%2F2j5sfVT0Kf7kxmTk%2F8EA5jz%2FGMzLdsAADvGaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu%2B7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI%2FPgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAyMSA3OS4xNTQ5MTEsIDIwMTMvMTAvMjktMTE6NDc6MTYgICAgICAgICI%2BCiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI%2BCiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iCiAgICAgICAgICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOkNyZWF0b3JUb29sPkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHhtcDpDcmVhdGVEYXRlPjIwMTQtMDItMTRUMTE6NTU6MzUrMDE6MDA8L3htcDpDcmVhdGVEYXRlPgogICAgICAgICA8eG1wOk1ldGFkYXRhRGF0ZT4yMDE0LTAyLTE0VDEyOjA1OjE3KzAxOjAwPC94bXA6TWV0YWRhdGFEYXRlPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU%2BMjAxNC0wMi0xNFQxMjowNToxNyswMTowMDwveG1wOk1vZGlmeURhdGU%2BCiAgICAgICAgIDx4bXBNTTpJbnN0YW5jZUlEPnhtcC5paWQ6NjU0YmM5YmQtMWI2Yi1jYjRhLTllOWQtNWY2MzgxNDVjZjk0PC94bXBNTTpJbnN0YW5jZUlEPgogICAgICAgICA8eG1wTU06RG9jdW1lbnRJRD54bXAuZGlkOjk4MmM2MGIwLWUzZjMtMDk0MC04MjU0LTFiZTliNWE0ZTE4MzwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjk4MmM2MGIwLWUzZjMtMDk0MC04MjU0LTFiZTliNWE0ZTE4MzwveG1wTU06T3JpZ2luYWxEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06SGlzdG9yeT4KICAgICAgICAgICAgPHJkZjpTZXE%2BCiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmNyZWF0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ%2BeG1wLmlpZDo5ODJjNjBiMC1lM2YzLTA5NDAtODI1NC0xYmU5YjVhNGUxODM8L3N0RXZ0Omluc3RhbmNlSUQ%2BCiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDItMTRUMTE6NTU6MzUrMDE6MDA8L3N0RXZ0OndoZW4%2BCiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ%2BCiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjIxODYxNmM2LTM1MWMtNDI0OS04YWFkLWJkZDQ2ZTczNWE0NDwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4%2BMjAxNC0wMi0xNFQxMTo1NTozNSswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ%2BQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ%2BLzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk%2BCiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24%2BCiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6NjU0YmM5YmQtMWI2Yi1jYjRhLTllOWQtNWY2MzgxNDVjZjk0PC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE0LTAyLTE0VDEyOjA1OjE3KzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6U2VxPgogICAgICAgICA8L3htcE1NOkhpc3Rvcnk%2BCiAgICAgICAgIDxkYzpmb3JtYXQ%2BaW1hZ2UvcG5nPC9kYzpmb3JtYXQ%2BCiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU%2BCiAgICAgICAgIDxwaG90b3Nob3A6SUNDUHJvZmlsZT5zUkdCIElFQzYxOTY2LTIuMTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU%2BCiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24%2BCiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDAwMC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24%2BNzIwMDAwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjc8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFlEaW1lbnNpb24%2BNzwvZXhpZjpQaXhlbFlEaW1lbnNpb24%2BCiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY%2BCjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8%2BcZUZMwAAACBjSFJNAAB6JQAAgIMAAPn%2FAACA6QAAdTAAAOpgAAA6mAAAF2%2BSX8VGAAAA2ElEQVR42gDLADT%2FAS0tLUQFBQUVFxcXtPHx8fPl5eUNCAgITCkpKesEHx8fGgYGBjH%2B%2Fv4a%2BPj4qgQEBFU6OjodMTExzwQUFBSvEBAQEfX19SD19fVqNDQ0CElJSd%2F9%2Ff2vAwEBAfrn5%2BfkBwcHLRYWFgsXFxfz29vbo9LS0uwDDQ0NDfPz81orKysXIyMj%2BODg4Avh4eEa%2Ff391gMkJCRYPz8%2FKUhISOMCAgKh8fHxHRsbGx4UFBQQBDk5OeY7Ozv7CAgItPb29vMEBASaJSUlTQ0NDesDAEwpT0Ko8Ri2AAAAAElFTkSuQmCC%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Fvis%2Fimg%2Fnetwork%2Fcross2.png%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Fvis%2Fimg%2Fnetwork%2Fcross2.png%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22type%5C%22%3A%20%5C%22image%2Fpng%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89%2BbN%2FrXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz%2FSMBAPh%2BPDwrIsAHvgABeNMLCADATZvAMByH%2Fw%2FqQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf%2BbTAICd%2BJl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA%2Fg88wAAKCRFRHgg%2FP9eM4Ors7ONo62Dl8t6r8G%2FyJiYuP%2B5c%2BrcEAAAOF0ftH%2BLC%2BzGoA7BoBt%2FqIl7gRoXgugdfeLZrIPQLUAoOnaV%2FNw%2BH48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl%2FAV%2F1s%2BX48%2FPf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H%2FLcL%2F%2Fwd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s%2BwM%2B3zUAsGo%2BAXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93%2F%2B8%2F%2FUegJQCAZkmScQAAXkQkLlTKsz%2FHCAAARKCBKrBBG%2FTBGCzABhzBBdzBC%2FxgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD%2FphCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8%2BQ8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8%2BxdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR%2BcQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI%2BksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG%2BQh8lsKnWJAcaT4U%2BIoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr%2Bh0uhHdlR5Ol9BX0svpR%2BiX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK%2BYTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI%2BpXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q%2FpH5Z%2FYkGWcNMw09DpFGgsV%2FjvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY%2FR27iz2qqaE5QzNKM1ezUvOUZj8H45hx%2BJx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4%2FOBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up%2B6Ynr5egJ5Mb6feeb3n%2Bhx9L%2F1U%2FW36p%2FVHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm%2Beb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw%2B6TvZN9un2N%2FT0HDYfZDqsdWh1%2Bc7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc%2BLpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26%2FuNu5p7ofcn8w0nymeWTNz0MPIQ%2BBR5dE%2FC5%2BVMGvfrH5PQ0%2BBZ7XnIy9jL5FXrdewt6V3qvdh7xc%2B9j5yn%2BM%2B4zw33jLeWV%2FMN8C3yLfLT8Nvnl%2BF30N%2FI%2F9k%2F3r%2F0QCngCUBZwOJgUGBWwL7%2BHp8Ib%2BOPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo%2Bqi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt%2F87fOH4p3iC%2BN7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi%2FRNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z%2Bpn5mZ2y6xlhbL%2BxW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a%2FzYnKOZarnivN7cyzytuQN5zvn%2F%2FtEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1%2B1dT1gvWd%2B1YfqGnRs%2BFYmKrhTbF5cVf9go3HjlG4dvyr%2BZ3JS0qavEuWTPZtJm6ebeLZ5bDpaql%2BaXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO%2FPLi8ZafJzs07P1SkVPRU%2BlQ27tLdtWHX%2BG7R7ht7vPY07NXbW7z3%2FT7JvttVAVVN1WbVZftJ%2B7P3P66Jqun4lvttXa1ObXHtxwPSA%2F0HIw6217nU1R3SPVRSj9Yr60cOxx%2B%2B%2Fp3vdy0NNg1VjZzG4iNwRHnk6fcJ3%2FceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w%2B0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb%2B%2B6EHTh0kX%2Fi%2Bc7vDvOXPK4dPKy2%2BUTV7hXmq86X23qdOo8%2FpPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb%2F1tWeOT3dvfN6b%2FfF9%2FXfFt1%2Bcif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v%2B3Njv3H9qwHeg89HcR%2FcGhYPP%2FpH1jw9DBY%2BZj8uGDYbrnjg%2BOTniP3L96fynQ89kzyaeF%2F6i%2FsuuFxYvfvjV69fO0ZjRoZfyl5O%2FbXyl%2FerA6xmv28bCxh6%2ByXgzMV70VvvtwXfcdx3vo98PT%2BR8IH8o%2F2j5sfVT0Kf7kxmTk%2F8EA5jz%2FGMzLdsAADoRaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu%2B7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI%2FPgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAyMSA3OS4xNTQ5MTEsIDIwMTMvMTAvMjktMTE6NDc6MTYgICAgICAgICI%2BCiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI%2BCiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iCiAgICAgICAgICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOkNyZWF0b3JUb29sPkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHhtcDpDcmVhdGVEYXRlPjIwMTQtMDItMTRUMTE6NTY6MTUrMDE6MDA8L3htcDpDcmVhdGVEYXRlPgogICAgICAgICA8eG1wOk1ldGFkYXRhRGF0ZT4yMDE0LTAyLTE0VDExOjU2OjE1KzAxOjAwPC94bXA6TWV0YWRhdGFEYXRlPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU%2BMjAxNC0wMi0xNFQxMTo1NjoxNSswMTowMDwveG1wOk1vZGlmeURhdGU%2BCiAgICAgICAgIDx4bXBNTTpJbnN0YW5jZUlEPnhtcC5paWQ6OWIwNjRhODctYWNlZi1jMjQ5LTg5MWUtNDAxOTVmMWJjMTNkPC94bXBNTTpJbnN0YW5jZUlEPgogICAgICAgICA8eG1wTU06RG9jdW1lbnRJRD54bXAuZGlkOjlmYTI2M2QyLTljOWMtNWY0OC1iYjNiLThmYmQ5NmI5ZTBhMjwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjlmYTI2M2QyLTljOWMtNWY0OC1iYjNiLThmYmQ5NmI5ZTBhMjwveG1wTU06T3JpZ2luYWxEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06SGlzdG9yeT4KICAgICAgICAgICAgPHJkZjpTZXE%2BCiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmNyZWF0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ%2BeG1wLmlpZDo5ZmEyNjNkMi05YzljLTVmNDgtYmIzYi04ZmJkOTZiOWUwYTI8L3N0RXZ0Omluc3RhbmNlSUQ%2BCiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDItMTRUMTE6NTY6MTUrMDE6MDA8L3N0RXZ0OndoZW4%2BCiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ%2BCiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjliMDY0YTg3LWFjZWYtYzI0OS04OTFlLTQwMTk1ZjFiYzEzZDwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4%2BMjAxNC0wMi0xNFQxMTo1NjoxNSswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ%2BQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ%2BLzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk%2BCiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8cGhvdG9zaG9wOkNvbG9yTW9kZT4zPC9waG90b3Nob3A6Q29sb3JNb2RlPgogICAgICAgICA8cGhvdG9zaG9wOklDQ1Byb2ZpbGU%2Bc1JHQiBJRUM2MTk2Ni0yLjE8L3Bob3Rvc2hvcDpJQ0NQcm9maWxlPgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj43MjAwMDAvMTAwMDA8L3RpZmY6WFJlc29sdXRpb24%2BCiAgICAgICAgIDx0aWZmOllSZXNvbHV0aW9uPjcyMDAwMC8xMDAwMDwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ%2BMjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT4xPC9leGlmOkNvbG9yU3BhY2U%2BCiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj41PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjU8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI%2FPvQ0yV0AAAAgY0hSTQAAeiUAAICDAAD5%2FwAAgOkAAHUwAADqYAAAOpgAABdvkl%2FFRgAAAHZJREFUeNoAaQCW%2FwE1NTWrERER3%2B3t7Xbp6emKOTk5IgQtLS3kBAQEdfLy8ipOTk5LQ0NDkAE0NDQAEhISxiEhITkTExPH9PT0OgMGBgaPMzMzVS8vL7XU1NRC7%2B%2FvEQNfX19lUFBQtfPz82EEBAQMNTU1HwMAMI4nIAoe9RQAAAAASUVORK5CYII%3D%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Fvis%2Fimg%2Fnetwork%2FdeleteIcon.png%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Fvis%2Fimg%2Fnetwork%2FdeleteIcon.png%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22type%5C%22%3A%20%5C%22image%2Fpng%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89%2BbN%2FrXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz%2FSMBAPh%2BPDwrIsAHvgABeNMLCADATZvAMByH%2Fw%2FqQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf%2BbTAICd%2BJl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA%2Fg88wAAKCRFRHgg%2FP9eM4Ors7ONo62Dl8t6r8G%2FyJiYuP%2B5c%2BrcEAAAOF0ftH%2BLC%2BzGoA7BoBt%2FqIl7gRoXgugdfeLZrIPQLUAoOnaV%2FNw%2BH48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl%2FAV%2F1s%2BX48%2FPf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H%2FLcL%2F%2Fwd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s%2BwM%2B3zUAsGo%2BAXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93%2F%2B8%2F%2FUegJQCAZkmScQAAXkQkLlTKsz%2FHCAAARKCBKrBBG%2FTBGCzABhzBBdzBC%2FxgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD%2FphCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8%2BQ8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8%2BxdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR%2BcQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI%2BksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG%2BQh8lsKnWJAcaT4U%2BIoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr%2Bh0uhHdlR5Ol9BX0svpR%2BiX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK%2BYTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI%2BpXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q%2FpH5Z%2FYkGWcNMw09DpFGgsV%2FjvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY%2FR27iz2qqaE5QzNKM1ezUvOUZj8H45hx%2BJx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4%2FOBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up%2B6Ynr5egJ5Mb6feeb3n%2Bhx9L%2F1U%2FW36p%2FVHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm%2Beb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw%2B6TvZN9un2N%2FT0HDYfZDqsdWh1%2Bc7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc%2BLpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26%2FuNu5p7ofcn8w0nymeWTNz0MPIQ%2BBR5dE%2FC5%2BVMGvfrH5PQ0%2BBZ7XnIy9jL5FXrdewt6V3qvdh7xc%2B9j5yn%2BM%2B4zw33jLeWV%2FMN8C3yLfLT8Nvnl%2BF30N%2FI%2F9k%2F3r%2F0QCngCUBZwOJgUGBWwL7%2BHp8Ib%2BOPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo%2Bqi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt%2F87fOH4p3iC%2BN7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi%2FRNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z%2Bpn5mZ2y6xlhbL%2BxW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a%2FzYnKOZarnivN7cyzytuQN5zvn%2F%2FtEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1%2B1dT1gvWd%2B1YfqGnRs%2BFYmKrhTbF5cVf9go3HjlG4dvyr%2BZ3JS0qavEuWTPZtJm6ebeLZ5bDpaql%2BaXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO%2FPLi8ZafJzs07P1SkVPRU%2BlQ27tLdtWHX%2BG7R7ht7vPY07NXbW7z3%2FT7JvttVAVVN1WbVZftJ%2B7P3P66Jqun4lvttXa1ObXHtxwPSA%2F0HIw6217nU1R3SPVRSj9Yr60cOxx%2B%2B%2Fp3vdy0NNg1VjZzG4iNwRHnk6fcJ3%2FceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w%2B0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb%2B%2B6EHTh0kX%2Fi%2Bc7vDvOXPK4dPKy2%2BUTV7hXmq86X23qdOo8%2FpPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb%2F1tWeOT3dvfN6b%2FfF9%2FXfFt1%2Bcif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v%2B3Njv3H9qwHeg89HcR%2FcGhYPP%2FpH1jw9DBY%2BZj8uGDYbrnjg%2BOTniP3L96fynQ89kzyaeF%2F6i%2FsuuFxYvfvjV69fO0ZjRoZfyl5O%2FbXyl%2FerA6xmv28bCxh6%2ByXgzMV70VvvtwXfcdx3vo98PT%2BR8IH8o%2F2j5sfVT0Kf7kxmTk%2F8EA5jz%2FGMzLdsAAEEOaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu%2B7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI%2FPgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAyMSA3OS4xNTQ5MTEsIDIwMTMvMTAvMjktMTE6NDc6MTYgICAgICAgICI%2BCiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI%2BCiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w%2BCiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU%2BMjAxNC0wMi0wNFQxNDo0MTowNCswMTowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTQtMDItMDRUMTQ6NDE6MDQrMDE6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOjc3NDkzYmUxLTEyZGItOTg0NC1iNDYyLTg2NGVmNGIzMzM3MTwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ%2BeG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ%2BCiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI%2BCiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24%2BY3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk%2BCiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24%2BCiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6RUE2MEEyNEUxOTg0RTMxMUFEQUZFRkU2RUMzMzNFMDM8L3N0RXZ0Omluc3RhbmNlSUQ%2BCiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDEtMjNUMTk6MTg6MDcrMDE6MDA8L3N0RXZ0OndoZW4%2BCiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI%2BCiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24%2Bc2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ%2BeG1wLmlpZDowNmE3NWYwMy04MDdhLWUzNGYtYjk1Zi1jZGU2MjM0Mzg4OGY8L3N0RXZ0Omluc3RhbmNlSUQ%2BCiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDItMDRUMTQ6NDE6MDQrMDE6MDA8L3N0RXZ0OndoZW4%2BCiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ%2BCiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ%2BCiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jb252ZXJ0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM%2BZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZzwvc3RFdnQ6cGFyYW1ldGVycz4KICAgICAgICAgICAgICAgPC9yZGY6bGk%2BCiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmRlcml2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM%2BY29udmVydGVkIGZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmc8L3N0RXZ0OnBhcmFtZXRlcnM%2BCiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjc3NDkzYmUxLTEyZGItOTg0NC1iNDYyLTg2NGVmNGIzMzM3MTwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4%2BMjAxNC0wMi0wNFQxNDo0MTowNCswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ%2BQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ%2BLzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk%2BCiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8eG1wTU06RGVyaXZlZEZyb20gcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICA8c3RSZWY6aW5zdGFuY2VJRD54bXAuaWlkOjA2YTc1ZjAzLTgwN2EtZTM0Zi1iOTVmLWNkZTYyMzQzODg4Zjwvc3RSZWY6aW5zdGFuY2VJRD4KICAgICAgICAgICAgPHN0UmVmOmRvY3VtZW50SUQ%2BeG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgICAgPHN0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdFJlZjpvcmlnaW5hbERvY3VtZW50SUQ%2BCiAgICAgICAgIDwveG1wTU06RGVyaXZlZEZyb20%2BCiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU%2BCiAgICAgICAgIDxwaG90b3Nob3A6SUNDUHJvZmlsZT5zUkdCIElFQzYxOTY2LTIuMTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU%2BCiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24%2BCiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDA5MC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24%2BNzIwMDkwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24%2BCiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE%2BCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw%2FeHBhY2tldCBlbmQ9InciPz4aYJzYAAAAIGNIUk0AAHolAACAgwAA%2Bf8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAYGSURBVHjalJZ7UJTnFcZ%2F73m%2F72PdJY1RbhoQp6lkXRAvmIYxdCUadLVOozPNtGObap1JsKipjiShbdoRbeKEiQHpQK3xj0xa03aamTbaTGyAYV1QGeqFi%2BJyiZFLAlmESBkWRmS3fyzslGkmnZ5%2Fv%2FM873Oe75zzvqqoqAibzQaAiKCUAkApRdHIK%2FNFsx2NR91nOSILADDoJyzNaM4xxbtvPHh0iC%2BJiYkJ1OHDh4mJiUEpFSXPv%2FziPC28TIiXDCOSrAClQDSEpsCwJPIhrEBRQpiSytXlQwDhcBilFPfu3UMVFxdjt9ujFTzfcLBADCoEEAFr1ZbrrNjch2vtEImPBgHob7fTcWE%2BbVXJNJ%2FNiFQlEGLvieXHKmYqGB8fRx05cgSbzYaIsPvywV8pKFaA7fGtLTzz61YWpo%2FxVTHQbufsq5lcez9zWuWhk5mvFwMEg0H0%2BvXrMU2Tn1wp3CtCiQ5DjGd3A%2Fm%2Fv8IDCZP8r4iNmyRrWx%2Fj%2F5qktykZpXKzAjVDVxPzGqemptDr1q1jX3NRnIJarcDKK2hgR2ULXRfncv7UYv7xpovhnhiW5Mz%2BkefeSKO6LJ1A1xzEuk%2FOjm4mRibpuZaMZW3OCtRUND60NmiICCIUShisx7a2sLMiQn4s77uEQgIabnqdfHIlgT1%2FqQeg8vs5dHhdCNB1wYn3RIiC995j26stjAbsNH%2BYiZJCESnS1Y%2FXxIXu8r4YIPv%2FVkVs3CTnTy2ms34xro1%2Bsp9po6sxlTu34ultmsPVvy6is86FCHgO%2BDDs49zpjufBpCG%2BseYOC9OHaTidieicb9ouVAhKtouAseI710ma7pLuqwmgYfHqAFt%2B6WdLoQ%2FLBl11Lm7VudAa8vb72PCin9TlAWIsGGhLACD%2BkSAZnusYBii1XQAPYWDllt6ov2lrBkDBR2%2B6Ofuak2%2F%2F3M%2BG%2FT4wAAPW7fPhKfRTVeqk9qQbFKRmDUTxS3N7QYGYmwzCkqklBGlPDEcTNv%2Bsg9tNCbTXuvBWujE0bHrZj9JE1B%2FwU1Pm5PwJN6YBS9a2kVvQEcWnrh5GTFD3lxkYkqRMgYQlwVldUvDnen73LHTUuqitdKM0eAr9AFQfd1J%2Fyo2aJn%2B2sn4Wdn5qEFODJskgBIjx5T0uCrQA08pnIjS9PERDjPnfOKXAMEBECUoGEIHBj%2B2zkt76UQ6dXheGAev3%2Bcg74Kf6uJPqcicbfuond7cPy4SOiy7%2BtD9nFvZurx00KOk3CNEC%2BmE%2BvjSPBc7IWqgqTaPT60IMcO%2FxsXGa3HfKjRgRdbl7%2FKDg0jtubje6aHj7c7J3dgLQ2zoPwwQ91SooOQdAW1VKVMHty0kA5Bb48BycJn%2FLjWFGbLv4thvvb53kFvjJ%2BXEdWkPfjQVR%2FCcNKYgGMc8JWt5Fa2j%2BMIPPuyI2pa4IoHSkt6vLIuRaQ9q32khzt4GCxtNu6k46GeiIR2lIfDQQsafPzq1LGRGL9Gk9d%2BvrwewvfHPQOoexQVjxdB%2Fauk%2FzmaUMdsfz6bVUtIalT7bxveP1ZHh6GPDPYeSzeD69kcpIfxymFWLNrka%2BljhBTWkWwz2JiJT84YHnz2iPx0P20PkmRF5i6HYiwZFJsn%2FYzdezbzE3cQibY5xV266z6RfXohakb%2BxB9CjanCD9qTbW7Grk4WV38VZm0l6dhQiEw9taHSuDqrS0FIfDwXM3X9mHMsvRAk%2FsauDpQy38P%2BGtzOTGB9mEpkD0C2dS8n8zOjqK9ng8WJZFU%2BJTjasGvaCNXPpvJBPoMlm0OoDNMfWVxONfWNSUPUZ7TUQ56tCZlPwSgMnJSVRpaSmxsbFE1raw82ZxAZZRQUiBYUKGp5UlOX2krBzmoUVjiIKhHge9rfPo%2BWcy3ZeXIYASgL1%2FX5RfMXMvj46OosrLy7HZbGitUUohIuzoem0RofALaOsghgWGjky0MiJTL8b0lOvI8hN1DKXKP0jd3TNTWDgcJhgMoo4ePYrD4Yi%2BKmaeLlprnrtXFo9h%2FAAlG1AqE8yFmBrC%2BjO0bgH9EVpO%2F1F2Dc5g%2F%2FOAsbEx%2Fj0Af%2BUSsQynL1UAAAAASUVORK5CYII%3D%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Fvis%2Fimg%2Fnetwork%2FdownArrow.png%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Fvis%2Fimg%2Fnetwork%2FdownArrow.png%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22type%5C%22%3A%20%5C%22image%2Fpng%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89%2BbN%2FrXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz%2FSMBAPh%2BPDwrIsAHvgABeNMLCADATZvAMByH%2Fw%2FqQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf%2BbTAICd%2BJl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA%2Fg88wAAKCRFRHgg%2FP9eM4Ors7ONo62Dl8t6r8G%2FyJiYuP%2B5c%2BrcEAAAOF0ftH%2BLC%2BzGoA7BoBt%2FqIl7gRoXgugdfeLZrIPQLUAoOnaV%2FNw%2BH48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl%2FAV%2F1s%2BX48%2FPf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H%2FLcL%2F%2Fwd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s%2BwM%2B3zUAsGo%2BAXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93%2F%2B8%2F%2FUegJQCAZkmScQAAXkQkLlTKsz%2FHCAAARKCBKrBBG%2FTBGCzABhzBBdzBC%2FxgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD%2FphCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8%2BQ8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8%2BxdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR%2BcQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI%2BksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG%2BQh8lsKnWJAcaT4U%2BIoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr%2Bh0uhHdlR5Ol9BX0svpR%2BiX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK%2BYTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI%2BpXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q%2FpH5Z%2FYkGWcNMw09DpFGgsV%2FjvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY%2FR27iz2qqaE5QzNKM1ezUvOUZj8H45hx%2BJx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4%2FOBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up%2B6Ynr5egJ5Mb6feeb3n%2Bhx9L%2F1U%2FW36p%2FVHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm%2Beb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw%2B6TvZN9un2N%2FT0HDYfZDqsdWh1%2Bc7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc%2BLpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26%2FuNu5p7ofcn8w0nymeWTNz0MPIQ%2BBR5dE%2FC5%2BVMGvfrH5PQ0%2BBZ7XnIy9jL5FXrdewt6V3qvdh7xc%2B9j5yn%2BM%2B4zw33jLeWV%2FMN8C3yLfLT8Nvnl%2BF30N%2FI%2F9k%2F3r%2F0QCngCUBZwOJgUGBWwL7%2BHp8Ib%2BOPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo%2Bqi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt%2F87fOH4p3iC%2BN7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi%2FRNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z%2Bpn5mZ2y6xlhbL%2BxW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a%2FzYnKOZarnivN7cyzytuQN5zvn%2F%2FtEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1%2B1dT1gvWd%2B1YfqGnRs%2BFYmKrhTbF5cVf9go3HjlG4dvyr%2BZ3JS0qavEuWTPZtJm6ebeLZ5bDpaql%2BaXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO%2FPLi8ZafJzs07P1SkVPRU%2BlQ27tLdtWHX%2BG7R7ht7vPY07NXbW7z3%2FT7JvttVAVVN1WbVZftJ%2B7P3P66Jqun4lvttXa1ObXHtxwPSA%2F0HIw6217nU1R3SPVRSj9Yr60cOxx%2B%2B%2Fp3vdy0NNg1VjZzG4iNwRHnk6fcJ3%2FceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w%2B0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb%2B%2B6EHTh0kX%2Fi%2Bc7vDvOXPK4dPKy2%2BUTV7hXmq86X23qdOo8%2FpPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb%2F1tWeOT3dvfN6b%2FfF9%2FXfFt1%2Bcif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v%2B3Njv3H9qwHeg89HcR%2FcGhYPP%2FpH1jw9DBY%2BZj8uGDYbrnjg%2BOTniP3L96fynQ89kzyaeF%2F6i%2FsuuFxYvfvjV69fO0ZjRoZfyl5O%2FbXyl%2FerA6xmv28bCxh6%2ByXgzMV70VvvtwXfcdx3vo98PT%2BR8IH8o%2F2j5sfVT0Kf7kxmTk%2F8EA5jz%2FGMzLdsAAAAGYktHRAD%2FAP8A%2F6C9p5MAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQffARwOJDdL2KxuAAAGRklEQVRIx52XXWwTVxaAzznXDn9xLUcFjyOShowhEzuwSSQXMN38gEJEoOwDaxkCCMr2FaXhJ0%2FsWmmfCkULSAgUtdknHpBWEYi2oGhlmc2fWrwJCDL%2BwYF4XEicZBMbgrFDY%2Feh4wjMmJjel5m595z73XPuPeeeQcihORwO9Hg8f2aM7UylUluIyAgAOgAARJxBxAAA9APA9zzP97S3t6cWmxPfNVhXV0d6vf4LRDyLiID4u7jSk4heVz0eDAbPuVyu5HuD7Xb7ZwDQSUSAiFBYWDhmMpkks9kcLikpiWq12gQAQDQaXTI6Oqr1%2BXx6r9dbPDY2ZiAiSCaTgIhHOjs7%2F5UzeO%2FevV8CwN8RETZs2ODbvn27WF1dPZnLtty7d2%2Bl0%2Bk0iaJYJnvpq46Ojn9kyjEF6DkAaENEaGho%2BOno0aM%2FGQyGGOTYOI6Lbd68OfjixYtfg8HgakSstVgsOrfbfSurxXa7%2FWsiagMAaG5u%2Fs%2BuXbseZU7s8XgKrly58sn4%2BDiHiMBx3Pj%2B%2Fft7BUGYzpTt7u7mr127tk3%2BPHPp0qW2tyy22%2B2fIeJpIoJDhw51NzU1PVay6MKFCw3hcJgjImCMQSwWyw8GgwV1dXW%2BTFme52dWrFjxf1EUecbYFovFIt25c%2BcuAAABANhsNkZEnUQEO3bs6G9sbBzN5sqJiQmOiKCjo6Pj8uXLHYgIExMT3DsiY3Tr1q398kI7bTYbWwAzxloQEdavX%2B87cODAg3fGX0boMMYyQ%2BmttmfPngcmk8mLiGAwGFoAAMjhcCARnQUAaGxsFBcN%2FD8ABgCoqakRGWOgUqnOOhwOJL%2FfXwMAUFRUNFZVVbVoyCiBcgGXl5dPGQyGMSKCZ8%2Be1RAiNiEilJeXS7mES6bFKpUqJ7B82CQiArVa3USIaJXB4VyUiegNUDqz5dJKS0vD8sI3qxBxLSJCSUlJNJuC3%2B8v8Hg8XDwez8sEp3N4V1dX5bJly%2BbWrl07bjQap5XmKSoqisq661SIqCMiSOdeJejFixf%2F%2Brq1Snvsdrs%2FBgDo7e2FI0eO%2FJvn%2BbfgGo0mIevqVIu5yuPxcAAAFRUV4tKlS%2Bdev6UAAKqqqu6m%2B%2Bbm5vL8fr9pZGSEUwK%2FfhBVqVRqhoj00Wh0yapVq15mCs7PzzP5QMwfPHjw58zxffv2LfRdvXp1EyLCq1evVErQ58%2BfL5HBM0RED4kIJEnSKgmXlZWNExGIomgOBAIF2Tzz6NGjAq%2FXW0FEwPP8uJLM06dPtbJ3%2FEREA4gIDx8%2B1CsJm83mSUEQvMlkkq5fv27NBr5165YVAGjdunVeQRAmlGRCoZBeBg8QIv4AAODz%2BYqzTXr48OFenU4XmZycLOzp6SnNHO%2Fr6yudmpoq1Gq1EZvN1pttHkmSihljAAA%2F0urVq%2F%2BLiBAOhw3379%2F%2FUElBrVYnKysrRSICl8u1KR6PL%2BxhIpFQDQwMbEJEMJvNolqtVix3AoHAh9PT0wYigpqamh5qb29PIeJxAACXy2XKttqdO3c%2B4Djul0QikX%2Fjxo2qdP%2FNmzcrY7FYPsdxvzQ0NGS9YAYHB01yBB2vr69P%2Fn7EZmbOy%2B4Wurq6KrIp19bWDhERDA8PbwiFQtonT55oh4eH%2F8QYA6vVejebntPprHj8%2BLEAABCPx88vFAKiKKYsFksIEf8iSVKRRqOZKi4ujiqUNbOSJOVHIpGV4XD4g0AgUDQ7O6srLS31bdu2TdHaoaGhj%2Fr6%2BurlMPr81KlT%2F3ujAnG73UMbN25cgYhbvF6vMRvcaDSODQ0NGSORyMpYLKZdvnz5bHNzc3deXt68EtTpdDbKJ%2FlMW1vb6axVZktLyzlEbCEiqK2t7d%2B9e%2FdblszOzuZ5vV4OAEAQhPH8%2FPy5TJnbt29XuN1uq1zqnj9x4sQXi5a3ra2tpxljJxERBEHwWa1WURCEnMrbkZGRlYODgyZJkspk9545duxYW84F%2FcmTJ%2F8GAN%2BmLwW9Xj%2FG83xwzZo1YYPB8Eyj0STSaXBycvKDYDCoD4VCH0UiEUM6dyPi562trd%2B99y%2BMw%2BGgly9ftjLGvlGpVAsVCCKCnAjeuK3S74h4orq6%2Bp%2F19fXv%2FwuTuYBkMvkJIn6KiFYi4olIJ4NmEHGEiPoB4IbFYul9FzDdfgOenj3%2FW2qSyQAAAABJRU5ErkJggg%3D%3D%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Fvis%2Fimg%2Fnetwork%2FeditIcon.png%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Fvis%2Fimg%2Fnetwork%2FeditIcon.png%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22type%5C%22%3A%20%5C%22image%2Fpng%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89%2BbN%2FrXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz%2FSMBAPh%2BPDwrIsAHvgABeNMLCADATZvAMByH%2Fw%2FqQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf%2BbTAICd%2BJl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA%2Fg88wAAKCRFRHgg%2FP9eM4Ors7ONo62Dl8t6r8G%2FyJiYuP%2B5c%2BrcEAAAOF0ftH%2BLC%2BzGoA7BoBt%2FqIl7gRoXgugdfeLZrIPQLUAoOnaV%2FNw%2BH48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl%2FAV%2F1s%2BX48%2FPf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H%2FLcL%2F%2Fwd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s%2BwM%2B3zUAsGo%2BAXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93%2F%2B8%2F%2FUegJQCAZkmScQAAXkQkLlTKsz%2FHCAAARKCBKrBBG%2FTBGCzABhzBBdzBC%2FxgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD%2FphCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8%2BQ8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8%2BxdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR%2BcQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI%2BksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG%2BQh8lsKnWJAcaT4U%2BIoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr%2Bh0uhHdlR5Ol9BX0svpR%2BiX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK%2BYTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI%2BpXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q%2FpH5Z%2FYkGWcNMw09DpFGgsV%2FjvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY%2FR27iz2qqaE5QzNKM1ezUvOUZj8H45hx%2BJx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4%2FOBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up%2B6Ynr5egJ5Mb6feeb3n%2Bhx9L%2F1U%2FW36p%2FVHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm%2Beb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw%2B6TvZN9un2N%2FT0HDYfZDqsdWh1%2Bc7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc%2BLpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26%2FuNu5p7ofcn8w0nymeWTNz0MPIQ%2BBR5dE%2FC5%2BVMGvfrH5PQ0%2BBZ7XnIy9jL5FXrdewt6V3qvdh7xc%2B9j5yn%2BM%2B4zw33jLeWV%2FMN8C3yLfLT8Nvnl%2BF30N%2FI%2F9k%2F3r%2F0QCngCUBZwOJgUGBWwL7%2BHp8Ib%2BOPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo%2Bqi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt%2F87fOH4p3iC%2BN7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi%2FRNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z%2Bpn5mZ2y6xlhbL%2BxW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a%2FzYnKOZarnivN7cyzytuQN5zvn%2F%2FtEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1%2B1dT1gvWd%2B1YfqGnRs%2BFYmKrhTbF5cVf9go3HjlG4dvyr%2BZ3JS0qavEuWTPZtJm6ebeLZ5bDpaql%2BaXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO%2FPLi8ZafJzs07P1SkVPRU%2BlQ27tLdtWHX%2BG7R7ht7vPY07NXbW7z3%2FT7JvttVAVVN1WbVZftJ%2B7P3P66Jqun4lvttXa1ObXHtxwPSA%2F0HIw6217nU1R3SPVRSj9Yr60cOxx%2B%2B%2Fp3vdy0NNg1VjZzG4iNwRHnk6fcJ3%2FceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w%2B0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb%2B%2B6EHTh0kX%2Fi%2Bc7vDvOXPK4dPKy2%2BUTV7hXmq86X23qdOo8%2FpPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb%2F1tWeOT3dvfN6b%2FfF9%2FXfFt1%2Bcif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v%2B3Njv3H9qwHeg89HcR%2FcGhYPP%2FpH1jw9DBY%2BZj8uGDYbrnjg%2BOTniP3L96fynQ89kzyaeF%2F6i%2FsuuFxYvfvjV69fO0ZjRoZfyl5O%2FbXyl%2FerA6xmv28bCxh6%2ByXgzMV70VvvtwXfcdx3vo98PT%2BR8IH8o%2F2j5sfVT0Kf7kxmTk%2F8EA5jz%2FGMzLdsAAEEOaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu%2B7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI%2FPgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAyMSA3OS4xNTQ5MTEsIDIwMTMvMTAvMjktMTE6NDc6MTYgICAgICAgICI%2BCiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI%2BCiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w%2BCiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU%2BMjAxNC0wMi0wNVQxNDoxMjoyNSswMTowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTQtMDItMDVUMTQ6MTI6MjUrMDE6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOjY5OTM3ZGZjLTJjNzQtYTU0YS05OTIzLTQyMmZhNDNkMjljNDwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ%2BeG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ%2BCiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI%2BCiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24%2BY3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk%2BCiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24%2BCiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6RUE2MEEyNEUxOTg0RTMxMUFEQUZFRkU2RUMzMzNFMDM8L3N0RXZ0Omluc3RhbmNlSUQ%2BCiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDEtMjNUMTk6MTg6MDcrMDE6MDA8L3N0RXZ0OndoZW4%2BCiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI%2BCiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24%2Bc2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ%2BeG1wLmlpZDozOWNhNzE5ZC03YzNlLTUyNGEtYmY1NS03NGVmMmM1MzE0YTc8L3N0RXZ0Omluc3RhbmNlSUQ%2BCiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDItMDVUMTQ6MTI6MjUrMDE6MDA8L3N0RXZ0OndoZW4%2BCiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ%2BCiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ%2BCiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jb252ZXJ0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM%2BZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZzwvc3RFdnQ6cGFyYW1ldGVycz4KICAgICAgICAgICAgICAgPC9yZGY6bGk%2BCiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmRlcml2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM%2BY29udmVydGVkIGZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmc8L3N0RXZ0OnBhcmFtZXRlcnM%2BCiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjY5OTM3ZGZjLTJjNzQtYTU0YS05OTIzLTQyMmZhNDNkMjljNDwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4%2BMjAxNC0wMi0wNVQxNDoxMjoyNSswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ%2BQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ%2BLzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk%2BCiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8eG1wTU06RGVyaXZlZEZyb20gcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICA8c3RSZWY6aW5zdGFuY2VJRD54bXAuaWlkOjM5Y2E3MTlkLTdjM2UtNTI0YS1iZjU1LTc0ZWYyYzUzMTRhNzwvc3RSZWY6aW5zdGFuY2VJRD4KICAgICAgICAgICAgPHN0UmVmOmRvY3VtZW50SUQ%2BeG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgICAgPHN0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdFJlZjpvcmlnaW5hbERvY3VtZW50SUQ%2BCiAgICAgICAgIDwveG1wTU06RGVyaXZlZEZyb20%2BCiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU%2BCiAgICAgICAgIDxwaG90b3Nob3A6SUNDUHJvZmlsZT5zUkdCIElFQzYxOTY2LTIuMTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU%2BCiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24%2BCiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDA5MC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24%2BNzIwMDkwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24%2BCiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE%2BCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw%2FeHBhY2tldCBlbmQ9InciPz4ykninAAAAIGNIUk0AAHolAACAgwAA%2Bf8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAYpSURBVHjafFZtTFvnFX7Oea%2BNudiY2Hwam4CBlgQwXdKREDKUoYg0jbRJ29RJ2VZ1mjRFUxSpA3VTfkzJfkQbS7spU6rtx5Z2UtppScjaHxvLuiatWi2jLEoMIUDCh23g2gbj7%2BtPuPvhOurawPl1dc99n%2Bc55z33fV46ceIEZFkGADAziAgAQERoe%2F9ZK4GPM%2FAcgbsIXAcABCgMvkfAqAa89eDoJyF8LogIqqqChoaGYDAYHr8kItS8uc8iIH6iAa9IkAo5EAQX8pqmgUVBCBggYFgDhv0%2FGAsBgKZpICJkMhnQ4OAgZFkGEYGZUXmp%2B0cS%2BCKBwWA0DVRPOg5Zl2q6zaHyJlnVAMQXVTkwHrUqH0Xsvn%2BtdQAAMQDgpPLS2MViFY8rkGUZzIzaS%2Ft%2FxqCzGggtz9e697zsnKhoLUtim4jOq%2FLE6x7X0nsh16dEZ5a%2FO3a2SCAOHjwInU6Hujd6ThJ4mCDQ%2Bb2G232v7v6vwarPbQn8MGlMr%2BX0kpE3Wr5Zt5hL5HPhqYSdQIfKJ%2ByhxDPKWC6Xg%2Bjt7UXD5b5KBt1kCHS85Ljd8%2FOn3NupfnhFaZj4rWff1B98B1R%2FhnUmKd36bdtCNl4g0en4edNE%2FcXwLq8qMTMIPAQwmo%2FWuHvObA8%2B9c58k%2FdKtD0TyZWXN5YGA7ej7epKxspM%2F%2F7SoNOdWc%2FJyq2wiwhDzPxT8cP0jys3VMM7OmL0%2F77zn4Ydui3b8uiK0jD7RrA77c9Wd57cefPpF%2B2T6bWsFPWkaiPTCWvTsZpHFU%2BXrS%2B8G3AR08F6X%2B1FJvBxQQzHQOWk2SmrW4FPX%2FU2LVwPuDZj%2BfJKl2khPpeyAqA9rzR%2FYqwuiWXX8taN%2FCabGkrVuq9YJlkQQDjOAJ5jAhz9Vt9W4N5%2FrNp8I%2BvtMV%2FaZm4zLnUNNt0urdYnF68HWoJj4Wo1mLGUNRr8LEgDgNqeCh8xQIKOsgC7iAjVe83rT9zQa8uNM28u70kspessu8q8zq%2FV3NcZpVzb9%2B0zmVhOvvvrhaMVzrJg0zeq7xMVCCwdpnWSGBqjUyJwLTFgbvxie3w31uoWR1Y74r60rdxZqrR8q85t2W2MGCp12bm%2FKC3hyaSTiMhxuGrKcahqpbjOaDOoEhOEoFqJQCCJvqA85I6bfTdDjQlf2lbxVNlS6wt19yy7jRHZZlDnrinNj%2F6sHMhnNw2Ogco7O79e5fm%2FxQywRBBCEAuwn4gQ96bkYj4Vyuq9N1Z3Bj4Od5bs0MXt%2FdZZ21ctiqFan174q985P%2BLfp%2BU1g7XDON%2F1ctP458WlVjLyJhOISZE0wM0S1QfuRC3lTjkJAKKEtNC9eIOhSh9xHLZOJRZTFuXDsEoStLkR%2F768ummsaJG9Pb9oe%2B9J%2BxaeSVokiQDSJphAo5uaBuWjiKP4QTqS1cUWU7ayesN66wu22frD1vmVW6GW6T8u9eVjGyZzs%2Bw78Nqu0a2mbvVu1KEJQAgeZRL0liQYyx%2BGOmKeQpu0rMYsAJPNEFGD2dLodLIy6c9Ys7G8yeSUl3tf2%2FX3rcBVJSOv34l3sCBogi7z1LH%2FrBHjl4IJ93%2FncQFAnjeImJD0Z8zuCwu9q3djDXqTlAKID5xv%2B9t2R8n8VcUFBljQ8Gyfe40BYBM4DwDLt8Kue79ZcFkbzfEdbUbv%2BoN4c9KTtsfm1MbYQqqh%2B2zrVZYKs%2F7Ef%2Bbyimt1POYiJhDhPBFBIiIEXhxfs7%2FdfYoIF%2BauBfYTE%2Fpebx%2FV8hqBP2ODvD34yvuh%2FWCAmU75Bx6sIgaI%2Fv5%2B6PV6JLqUsYr7dpDAoehs0h73pHTWrvKgThYbRSt9UmSjef3MpaUvBz4O72UmADgTOPJguGiZor%2B%2FHyUlJWBmJFz%2BD8xTtlUiOpbwpmrmrweeSXrT%2Bg11k4SBN3RGKUcAVCVdFhyP1nreDbY%2F%2FNPyEXUlU%2FPp4XYycGT6V0Ux2WwWdO7cOZSWlkII8diX7SPPNgDaKdbxoNAxwATBAEkEEgSWCEQAqPAMwqvMdCEwMO0tVqZpWsGTT58%2BDaPR%2BPhGIYQAAAgh0P7B3ioW%2FB0iGiCGiwXbCuOHFSJys6AbYFye2T%2BxWhT3WYJEIoH%2FDQBMw3kes8OJPgAAAABJRU5ErkJggg%3D%3D%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Fvis%2Fimg%2Fnetwork%2FleftArrow.png%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Fvis%2Fimg%2Fnetwork%2FleftArrow.png%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22type%5C%22%3A%20%5C%22image%2Fpng%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89%2BbN%2FrXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz%2FSMBAPh%2BPDwrIsAHvgABeNMLCADATZvAMByH%2Fw%2FqQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf%2BbTAICd%2BJl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA%2Fg88wAAKCRFRHgg%2FP9eM4Ors7ONo62Dl8t6r8G%2FyJiYuP%2B5c%2BrcEAAAOF0ftH%2BLC%2BzGoA7BoBt%2FqIl7gRoXgugdfeLZrIPQLUAoOnaV%2FNw%2BH48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl%2FAV%2F1s%2BX48%2FPf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H%2FLcL%2F%2Fwd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s%2BwM%2B3zUAsGo%2BAXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93%2F%2B8%2F%2FUegJQCAZkmScQAAXkQkLlTKsz%2FHCAAARKCBKrBBG%2FTBGCzABhzBBdzBC%2FxgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD%2FphCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8%2BQ8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8%2BxdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR%2BcQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI%2BksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG%2BQh8lsKnWJAcaT4U%2BIoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr%2Bh0uhHdlR5Ol9BX0svpR%2BiX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK%2BYTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI%2BpXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q%2FpH5Z%2FYkGWcNMw09DpFGgsV%2FjvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY%2FR27iz2qqaE5QzNKM1ezUvOUZj8H45hx%2BJx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4%2FOBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up%2B6Ynr5egJ5Mb6feeb3n%2Bhx9L%2F1U%2FW36p%2FVHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm%2Beb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw%2B6TvZN9un2N%2FT0HDYfZDqsdWh1%2Bc7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc%2BLpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26%2FuNu5p7ofcn8w0nymeWTNz0MPIQ%2BBR5dE%2FC5%2BVMGvfrH5PQ0%2BBZ7XnIy9jL5FXrdewt6V3qvdh7xc%2B9j5yn%2BM%2B4zw33jLeWV%2FMN8C3yLfLT8Nvnl%2BF30N%2FI%2F9k%2F3r%2F0QCngCUBZwOJgUGBWwL7%2BHp8Ib%2BOPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo%2Bqi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt%2F87fOH4p3iC%2BN7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi%2FRNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z%2Bpn5mZ2y6xlhbL%2BxW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a%2FzYnKOZarnivN7cyzytuQN5zvn%2F%2FtEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1%2B1dT1gvWd%2B1YfqGnRs%2BFYmKrhTbF5cVf9go3HjlG4dvyr%2BZ3JS0qavEuWTPZtJm6ebeLZ5bDpaql%2BaXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO%2FPLi8ZafJzs07P1SkVPRU%2BlQ27tLdtWHX%2BG7R7ht7vPY07NXbW7z3%2FT7JvttVAVVN1WbVZftJ%2B7P3P66Jqun4lvttXa1ObXHtxwPSA%2F0HIw6217nU1R3SPVRSj9Yr60cOxx%2B%2B%2Fp3vdy0NNg1VjZzG4iNwRHnk6fcJ3%2FceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w%2B0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb%2B%2B6EHTh0kX%2Fi%2Bc7vDvOXPK4dPKy2%2BUTV7hXmq86X23qdOo8%2FpPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb%2F1tWeOT3dvfN6b%2FfF9%2FXfFt1%2Bcif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v%2B3Njv3H9qwHeg89HcR%2FcGhYPP%2FpH1jw9DBY%2BZj8uGDYbrnjg%2BOTniP3L96fynQ89kzyaeF%2F6i%2FsuuFxYvfvjV69fO0ZjRoZfyl5O%2FbXyl%2FerA6xmv28bCxh6%2ByXgzMV70VvvtwXfcdx3vo98PT%2BR8IH8o%2F2j5sfVT0Kf7kxmTk%2F8EA5jz%2FGMzLdsAAAAGYktHRAD%2FAP8A%2F6C9p5MAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQffARwOIyX3IEvhAAAGn0lEQVRIx62XX1BT%2BRXHzzn3FgYhIjuBcC2BwCVIYGEIcIGopTiiO7I6OLE2jujYbXf6os5WAV9KyWj74m7%2FbH3TsfTBFx%2BY6dhWZ6eLDNkV1oRsoqI3CX9mTTIC2dD8U0ICNLcPTRx0%2BefW83LvzO%2F8zud3z%2B%2F3%2B55zETZhRqMRHQ7HjxiGeV%2BSpF1EVAoAOQAAiBhExEkAGAGAf%2FI8%2F%2BXFixeljWLieoMtLS2kUCh%2BhYh%2FQERA%2FJ%2F7ak8iWjm10%2B12fzo0NJR4Y7DBYPgAAPqICBARtm%2FfPlNRUeGprKz0qVSqcHZ2dhwAIBwOpz99%2BjTb5XIpnE5n4czMDEdEkEgkABF%2F3tfX99dNg48dO3YJAH6DiFBdXe3av3%2B%2FWFtb69%2FMtjx8%2BDB3cHCwQhTFHcks%2FfbatWu9r%2Fsxq0A%2FBYALiAj79u0znz171sxxXBQ2afn5%2BVGdTueen59fdrvdBYj4Y0EQcqxW62drgg0Gw2Ui6kREOH78%2BIDBYHDC97Sqqipfenp6yOVylSBikyAImVar9fPvgA0GwweI%2BDERwalTp%2F7V1tb2DfyfxvN8MDMz89%2BiKPIMw%2BwSBMEzOjr64CX46NGjDMMwXxMRHDhwYESv14%2FDWzKVShWKxWJxj8ejJKL2wsLC34miKLEAAAzDfISIUFVV5Tpx4sTjjYKNjY3lOhyO%2FLS0tP9UVFTMlpWVBdbzP3LkyOO5ubl3HA5HOcdxHwHAH9FoNOLExEQCAKCrq%2BtvWq12zdO7tLREV69e3e1wOMpT95aI4MyZM%2F1qtXpduMPhkF%2B%2Ffl0PACCTyYgdHx9vRkRQKpUz60H7%2B%2FsrbTZbZSQS2caybKK6uvrJ8vIyI4pihdPpzN8IrNFo5jiOm%2FH5fFwkEmlmEbENEUGj0XhWm2CxWLiBgYGaZ8%2BeKREROI6bNhgMw6WlpcEbN240sCwL8Xg8bZOHzeP3%2BzkiamMRcWcS7FvpFIlE0vr6%2Bna6XK4yIgKZTPaitbXV3NraOvVSfZJSef%2F%2B%2FYbR0dEGAABJkl5uAQBAXl7ebHt7%2Bz2e5wMlJSU%2Bs9kMiKhjEVGNiKBSqcKpgM%2BfP0%2B7dOnST6LRaBbLsglBEB7q9foHWVlZS6%2FIXlK%2FEREkSQIiAoZhXtHxubm5%2FFu3bu0%2Bf%2F7835VKZTi5oDIWEXOICFLaCwBgs9nyo9FoVlFRkcdgMIyoVKrIaqnr6OiwdHR0WNZLb29v7y9DoVB%2B8lDFk%2BAcNlUEVpokSbhKxXkrlorJSpIUJCJFOBxOz8vLWwAA0Gq1M3fu3Hnh8XgKr1y58sO6urpHer3enpGRsbwyyM2bNxsePXpUQ0SvLPL1d7lcPpvcwvTkWJCIaIKIwOPxZKecs7OzF3t6evrLy8vHJUlibDab9vLlyz81mUwlr69%2BJTT1ntp3IoK8vLzZgwcP3gMAmJ6ezk6OjbNE9BUi7p6YmFDU19fPpoJu3bp18fTp00M2m801NDSknZ6eLrh9%2B3arzWabPnz48HBxcXEwFbyurs7S3t7%2BYKM0e71eRXJbv2Jqa2sXEfFni4uLTEtLy3c0muO4FzqdbiIej8cjkYgsFArl2u12jd%2FvT19aWvpBMBjM5Xn%2BG57nN6zXg4ODDbFYTCZJ0q%2BpoKDgC0QEn8%2FHjY2NydeadOjQocfd3d39ZWVlToZhSBTFqsnJyQoAALVaPbsRdHJyUh4IBDgigubm5i8Zk8kE9fX1zxHxvfn5eWxsbHSvNZlhGKmmpsbNcZwnMzMzrFKpnu7du9eiUqkCG4EHBgbqw%2BGwHAA6T548OcIAAJSUlFi2bNnSGwgE5LFYLK7RaL5dL4hcLo%2Bq1Wofz%2FP%2Bbdu2LWwixe8%2BefJECwAQi8XeN5lMEgMAIIqiJAiCFxHbPR6PUiaTzRUWFobfxr212%2B1Fw8PDe5In%2F8Oenp6vX%2BlArFarvbGxMRMRdzmdztK3Abfb7UWDg4PvJa%2FQJxcuXPh41Z7LYrF83tTUlIOITU6nszQej8d37Njx7feBmkymd1NfKknSn7u6ujrX7TLNZvNnOp0uk2GYXV6vV%2Bn1erMyMjKicrl8U53m1NRU7t27dwWHw6FNpveTzs7Ozk039N3d3b8AgOspNVIoFDM8z7uLi4t9HMdFZDJZPCWDfr9%2Fq9vtVni93qJQKMStqFofnjt37i9v%2FAtjNBppYWHhHMMwv2dZNnWlABFflr81JLOrtrb2T3v27HnzX5jXF5BIJHYj4iFE3ElEPBHlJEFBRJwiohEA%2BIcgCPfWA6bsv6nEjVSaQsrEAAAAAElFTkSuQmCC%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Fvis%2Fimg%2Fnetwork%2Fminus.png%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Fvis%2Fimg%2Fnetwork%2Fminus.png%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22type%5C%22%3A%20%5C%22image%2Fpng%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89%2BbN%2FrXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz%2FSMBAPh%2BPDwrIsAHvgABeNMLCADATZvAMByH%2Fw%2FqQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf%2BbTAICd%2BJl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA%2Fg88wAAKCRFRHgg%2FP9eM4Ors7ONo62Dl8t6r8G%2FyJiYuP%2B5c%2BrcEAAAOF0ftH%2BLC%2BzGoA7BoBt%2FqIl7gRoXgugdfeLZrIPQLUAoOnaV%2FNw%2BH48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl%2FAV%2F1s%2BX48%2FPf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H%2FLcL%2F%2Fwd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s%2BwM%2B3zUAsGo%2BAXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93%2F%2B8%2F%2FUegJQCAZkmScQAAXkQkLlTKsz%2FHCAAARKCBKrBBG%2FTBGCzABhzBBdzBC%2FxgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD%2FphCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8%2BQ8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8%2BxdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR%2BcQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI%2BksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG%2BQh8lsKnWJAcaT4U%2BIoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr%2Bh0uhHdlR5Ol9BX0svpR%2BiX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK%2BYTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI%2BpXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q%2FpH5Z%2FYkGWcNMw09DpFGgsV%2FjvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY%2FR27iz2qqaE5QzNKM1ezUvOUZj8H45hx%2BJx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4%2FOBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up%2B6Ynr5egJ5Mb6feeb3n%2Bhx9L%2F1U%2FW36p%2FVHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm%2Beb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw%2B6TvZN9un2N%2FT0HDYfZDqsdWh1%2Bc7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc%2BLpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26%2FuNu5p7ofcn8w0nymeWTNz0MPIQ%2BBR5dE%2FC5%2BVMGvfrH5PQ0%2BBZ7XnIy9jL5FXrdewt6V3qvdh7xc%2B9j5yn%2BM%2B4zw33jLeWV%2FMN8C3yLfLT8Nvnl%2BF30N%2FI%2F9k%2F3r%2F0QCngCUBZwOJgUGBWwL7%2BHp8Ib%2BOPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo%2Bqi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt%2F87fOH4p3iC%2BN7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi%2FRNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z%2Bpn5mZ2y6xlhbL%2BxW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a%2FzYnKOZarnivN7cyzytuQN5zvn%2F%2FtEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1%2B1dT1gvWd%2B1YfqGnRs%2BFYmKrhTbF5cVf9go3HjlG4dvyr%2BZ3JS0qavEuWTPZtJm6ebeLZ5bDpaql%2BaXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO%2FPLi8ZafJzs07P1SkVPRU%2BlQ27tLdtWHX%2BG7R7ht7vPY07NXbW7z3%2FT7JvttVAVVN1WbVZftJ%2B7P3P66Jqun4lvttXa1ObXHtxwPSA%2F0HIw6217nU1R3SPVRSj9Yr60cOxx%2B%2B%2Fp3vdy0NNg1VjZzG4iNwRHnk6fcJ3%2FceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w%2B0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb%2B%2B6EHTh0kX%2Fi%2Bc7vDvOXPK4dPKy2%2BUTV7hXmq86X23qdOo8%2FpPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb%2F1tWeOT3dvfN6b%2FfF9%2FXfFt1%2Bcif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v%2B3Njv3H9qwHeg89HcR%2FcGhYPP%2FpH1jw9DBY%2BZj8uGDYbrnjg%2BOTniP3L96fynQ89kzyaeF%2F6i%2FsuuFxYvfvjV69fO0ZjRoZfyl5O%2FbXyl%2FerA6xmv28bCxh6%2ByXgzMV70VvvtwXfcdx3vo98PT%2BR8IH8o%2F2j5sfVT0Kf7kxmTk%2F8EA5jz%2FGMzLdsAAAAGYktHRAD%2FAP8A%2F6C9p5MAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQffARwOJCdWb7wKAAAE%2FUlEQVRIx7WXXUwUVxTH%2F%2BfcMcTQLaFZd3cMu66MBVnFBOJEELqVByVSGxKNWWNMjK3xjViyyBNlQ9uXak31xQfS0kfeTOxXTK0bbP3I6io1mtldPoI7mwjLCuxiFDZpdvrgDtlStKjwTyYzc%2B%2Bd%2B7tzztxzzhCWoUAgQJFI5AMhxEeGYTQw8yYApQBARDNENALgJoCfFUX5s6enx%2Fi%2FOelVnbt27WK73f4ZEZ0lIhC9GL7UmZkLH%2FXH4%2FFzAwMDudcG%2B3y%2BYwD6mBlEhPXr1497PB59y5YtSbfbnSkpKckCQCaTKXr06FFJLBazR6NR1%2Fj4uMzMyOVyIKJP%2Bvr6flg2%2BNChQ18A%2BJyIsG3bttiePXu02tra1HLccv%2F%2B%2FXXBYNCjaVpl3kpf9vb2di8eJ5aAngPQSUTYvXt3qK2tLSTL8nMsUw6H43l9fX382bNnf8fj8TIi%2BlBV1dJwOHz5pWCfz%2Fc1M%2FuJCIcPH%2F7d5%2FNF8Yaqrq5OFhUVpWOxWDkR1amqWhwOh6%2F8B%2Bzz%2BY4R0WlmxtGjR39raWkZw1tKUZSZ4uLiKU3TFCFEg6qq%2Bp07d%2F5aAB88eFAIIe4yM%2Fbu3Xtz%2F%2F79Q1ghud3u9Pz8fFbXdSczt7pcrq80TTMYAIQQJ4kI1dXVsSNHjjzECuvAgQMPPR5PlIggy%2FJJAOBAIEDMfBYAmpubNaySvF6vJoSAJElnA4EA8dDQkBcAnE7neE1NTWq1wFVVVU9kWR5nZszOznqZiFqICFVVVTpWWYqi6MyMNWvWtEhEtDMPTpoDIpHIe%2F39%2FY2Tk5MOMxyaIdG8Lrw3DANCvNgghmEstNtstonW1tbriqJMA0B5eXkyFAqBiOqZiN4nIrjd7owJ7u%2Fvb0ylUo5CyOLDjNHmwgzDABFBkiRIkgQhBKamphyXLl1qNOd1Op2ZfAiukIiolJlhxl4ASCaTDiEELly40Ps2pu3u7j6RTqcd5r3FYsnmF10qmUmgUEu1rZRMa0mGYcwwsz2TyRTZbLY5AJBleWJyctLR1tZ2otC8helvKb8vnpyZYbVaJ8z2p0%2BfFuX7ZpiZh5kZuq6XFCSK6w6HY%2BJlvpUkacn2wgUSEWw228S%2Bffuum%2FM%2Bfvy4JN83JDHzLSJqHB4etm%2Ffvn0CACoqKqa7urp%2BXGkzJxIJe96Ft5iIfgGAWCzmWu19rOu6K7%2FtfuWysrI%2FiAjJZFJ%2B8OCBdbWgIyMj1unpaZmZ4fV6%2F%2BSenh6DiPwAMDAw4Fkt8L179zx5%2F%2FubmppyLz6xmZnzeXNvvnjx4taVhgaDwa1jY2ObAWB%2Bfv78Qj7WNM1QVTVBRK26rjstFssTl8uVWQno4ODghhs3bjTlv%2FzjXV1dd%2F9VgYTD4cEdO3YUE1FDNBrdtBLwwcHBDcFgsDm%2Fhc50dnaeXrLmun379pW6urpSIqqLRqObstlstrKycvJNoNeuXdtqvqlhGOc7Ojr8r6wyQ6HQ5fr6%2BmIhREMikXAmEol31q5d%2B9xqtS6r0hwdHV139epVNRKJ1OTNe8bv9%2FuXXdCfOnXqUwDfmdHIbrePK4oS37hxY1KW5VmLxZI1w2AqlXo3Ho%2FbE4nEhnQ6LZuRi4iOt7e3f%2F%2FavzCBQIDn5ubahRDfSJKEfH0GIlrIvy8JmR21tbXfNjU1vf4vzOIF5HK5RiL6mIh2MrPCzKV50AwRjTLzTQA%2Fqap6%2FVVAU%2F8Apxa13K97LqUAAAAASUVORK5CYII%3D%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Fvis%2Fimg%2Fnetwork%2Fplus.png%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Fvis%2Fimg%2Fnetwork%2Fplus.png%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22type%5C%22%3A%20%5C%22image%2Fpng%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89%2BbN%2FrXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz%2FSMBAPh%2BPDwrIsAHvgABeNMLCADATZvAMByH%2Fw%2FqQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf%2BbTAICd%2BJl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA%2Fg88wAAKCRFRHgg%2FP9eM4Ors7ONo62Dl8t6r8G%2FyJiYuP%2B5c%2BrcEAAAOF0ftH%2BLC%2BzGoA7BoBt%2FqIl7gRoXgugdfeLZrIPQLUAoOnaV%2FNw%2BH48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl%2FAV%2F1s%2BX48%2FPf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H%2FLcL%2F%2Fwd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s%2BwM%2B3zUAsGo%2BAXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93%2F%2B8%2F%2FUegJQCAZkmScQAAXkQkLlTKsz%2FHCAAARKCBKrBBG%2FTBGCzABhzBBdzBC%2FxgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD%2FphCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8%2BQ8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8%2BxdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR%2BcQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI%2BksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG%2BQh8lsKnWJAcaT4U%2BIoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr%2Bh0uhHdlR5Ol9BX0svpR%2BiX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK%2BYTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI%2BpXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q%2FpH5Z%2FYkGWcNMw09DpFGgsV%2FjvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY%2FR27iz2qqaE5QzNKM1ezUvOUZj8H45hx%2BJx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4%2FOBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up%2B6Ynr5egJ5Mb6feeb3n%2Bhx9L%2F1U%2FW36p%2FVHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm%2Beb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw%2B6TvZN9un2N%2FT0HDYfZDqsdWh1%2Bc7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc%2BLpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26%2FuNu5p7ofcn8w0nymeWTNz0MPIQ%2BBR5dE%2FC5%2BVMGvfrH5PQ0%2BBZ7XnIy9jL5FXrdewt6V3qvdh7xc%2B9j5yn%2BM%2B4zw33jLeWV%2FMN8C3yLfLT8Nvnl%2BF30N%2FI%2F9k%2F3r%2F0QCngCUBZwOJgUGBWwL7%2BHp8Ib%2BOPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo%2Bqi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt%2F87fOH4p3iC%2BN7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi%2FRNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z%2Bpn5mZ2y6xlhbL%2BxW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a%2FzYnKOZarnivN7cyzytuQN5zvn%2F%2FtEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1%2B1dT1gvWd%2B1YfqGnRs%2BFYmKrhTbF5cVf9go3HjlG4dvyr%2BZ3JS0qavEuWTPZtJm6ebeLZ5bDpaql%2BaXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO%2FPLi8ZafJzs07P1SkVPRU%2BlQ27tLdtWHX%2BG7R7ht7vPY07NXbW7z3%2FT7JvttVAVVN1WbVZftJ%2B7P3P66Jqun4lvttXa1ObXHtxwPSA%2F0HIw6217nU1R3SPVRSj9Yr60cOxx%2B%2B%2Fp3vdy0NNg1VjZzG4iNwRHnk6fcJ3%2FceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w%2B0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb%2B%2B6EHTh0kX%2Fi%2Bc7vDvOXPK4dPKy2%2BUTV7hXmq86X23qdOo8%2FpPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb%2F1tWeOT3dvfN6b%2FfF9%2FXfFt1%2Bcif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v%2B3Njv3H9qwHeg89HcR%2FcGhYPP%2FpH1jw9DBY%2BZj8uGDYbrnjg%2BOTniP3L96fynQ89kzyaeF%2F6i%2FsuuFxYvfvjV69fO0ZjRoZfyl5O%2FbXyl%2FerA6xmv28bCxh6%2ByXgzMV70VvvtwXfcdx3vo98PT%2BR8IH8o%2F2j5sfVT0Kf7kxmTk%2F8EA5jz%2FGMzLdsAAAAGYktHRAD%2FAP8A%2F6C9p5MAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQffARwOJQd0Gq2DAAAFq0lEQVRIx61XbUxTZxR%2BznmvMQY7xJT2XieI1jmoHwlIY1CG4KIExuSHITVqYtwM%2FwgSEI1hNrhfw5mpP9Q0G%2Ftl%2BGd0XzFkNoCIaex0RtJSPwZto7RFPooRMFm4%2B%2BG9BGuBYnaS5va%2B99zzvOc5H%2B%2B5hCTE4XCQz%2Bf7TAjxhaqqO5h5PYA0ACCiUSJ6CqAHwG8Wi%2BV2c3OzupBNmu9hcXExm83mY0R0johA9FY90ZWZZ79aHwgEznd0dEwvGthutx8B0MrMICKsWrVq0Gq1Bjdu3BjJysqKpaamvgGAWCy2dGBgINXv95v7%2BvoyBwcHFWbG9PQ0iOir1tbWn5MG3r9%2F%2FxkA3xARtmzZ4t%2BzZ483Ly9vKJmwPHz4MN3lclm9Xu%2BnGkvfOp3O0%2FF6IgHoeQCNRITdu3e7a2pq3IqiTCBJkWV5oqCgIPD69et%2FA4HAaiLaabPZ0jwez805Pbbb7d8xcyMAHDhw4M%2BKiop%2F4g37fL6VV69eLQyHwzIRQZbl8MGDB7uzs7NH4nXb29st169f%2F1y7PXv58uXG9zy22%2B1HiKiFmXH48OH28vLy%2FkQeXbx4cXckEpGZGUIITExMLA8EAiuLi4v98boWi2U0JSVl2Ov1WoQQO2w2W%2FDevXt%2FAwADQFVVlWDmVmZGWVlZT2lp6cBcVEajUZmZ4XQ6nVeuXHESEaLRqDxPZQzs2rWrR9toa1VVlZgBFkLUEhE2b97sP3ToUO%2B89RdXOkKI%2BFJ6T%2Fbt29drtVr7iAiKotQCADscDmLmcwBQWlrqXbDwPwAYAIqKirxCCEiSdM7hcBA%2Ffvy4CAAyMjIGc3NzFyyZREDJAOfk5LxUFGWQmTE%2BPl7ERFRORMjJyQkmUy7xHkuSlBSwlmxBZsaSJUvKJSLargFHZpdMW1tbYTQalXUg3fjs%2F%2Fq9qqo4ceJENQCoqjqzbjKZwpWVld0Wi2UEANatWxdxu90gogImok%2BICFlZWTHdWFtbW%2BHQ0JCsgyT6xTOgqiqICJIkQZIkCCEwPDws37hxo1DXzcjIiGkteINERGnMDL33AkAkEpGFELh06ZJzIfpaWlrm1Dl9%2BnT12NjYTKkZDIY32qbTJP0QiE%2BW%2BLX%2FS3S2JFVVR5nZHIvFlppMpkkAUBQlHI1G5ZqamurZ9M5OLN3TU6dOVSeKu341Go1hff3Vq1dLtWejzMxPmBnBYDB11kHRLctyeK7YSpL0Dkh84ulnt8lkCldUVHTrui9evEjVnj2WmPkuERU%2BefLEnJ%2BfHwaADRs2jDQ1Nf2SiKqTJ09WJ6LuzJkzC%2BZDKBQyayG8y0T0OwD4%2Ff7MxcQokccLSTAYzBRCAMAfvHr16i4iQiQSUR49emRMxsBsqpPtXE%2BfPjWOjIwozIyioqLb3NzcrBJRPQB0dHRYP8TjZOT%2B%2FftWLf71JSUl029TbHT0gkZ39rVr1zYtBpiIoNE3p7hcrk39%2Ff3ZADA1NXVhZhDwer2qzWYLEVFlMBjMMBgMLzMzM2OJjPT29n48NTW1vLOzc2tXV9dWZkZ6eno4Pz%2Ffn0j%2FwYMHa%2B7cuVOibfhoU1PTX%2B9MIB6P58G2bdtSiGhHX1%2Ff%2BrnA09PTh54%2Ff75ycnJyuRACRqMxXFZW1r1ixYrJRKAul6tUK6GzjY2NLXNOmbW1teeJqJaZsXPnzp69e%2Ff2fkiH6uzs3OTxeLZro%2B6FhoaGY%2FNOmW63%2B2ZBQUGKEGJHKBTKCIVCy5ctWzZhNBqTmjSfPXuWfuvWLZvP58vV6D1bX19fn%2FRAf%2Fz48a8B%2FKjXqdlsHrRYLIG1a9dGFEUZNxgMb%2FQ2ODQ09FEgEDCHQqE1Y2Njit65iOhoXV3dT4v%2BhHE4HDw5OVknhPher10hxDuZPEfLbMjLy%2FuhpKRk8Z8w8RuYnp4uJKIviWg7M1uYOU0DGiWiZ8zcA%2BBXm83WPR%2BgLv8BUhzshlEbZ%2F0AAAAASUVORK5CYII%3D%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Fvis%2Fimg%2Fnetwork%2FrightArrow.png%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Fvis%2Fimg%2Fnetwork%2FrightArrow.png%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22type%5C%22%3A%20%5C%22image%2Fpng%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89%2BbN%2FrXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz%2FSMBAPh%2BPDwrIsAHvgABeNMLCADATZvAMByH%2Fw%2FqQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf%2BbTAICd%2BJl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA%2Fg88wAAKCRFRHgg%2FP9eM4Ors7ONo62Dl8t6r8G%2FyJiYuP%2B5c%2BrcEAAAOF0ftH%2BLC%2BzGoA7BoBt%2FqIl7gRoXgugdfeLZrIPQLUAoOnaV%2FNw%2BH48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl%2FAV%2F1s%2BX48%2FPf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H%2FLcL%2F%2Fwd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s%2BwM%2B3zUAsGo%2BAXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93%2F%2B8%2F%2FUegJQCAZkmScQAAXkQkLlTKsz%2FHCAAARKCBKrBBG%2FTBGCzABhzBBdzBC%2FxgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD%2FphCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8%2BQ8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8%2BxdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR%2BcQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI%2BksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG%2BQh8lsKnWJAcaT4U%2BIoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr%2Bh0uhHdlR5Ol9BX0svpR%2BiX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK%2BYTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI%2BpXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q%2FpH5Z%2FYkGWcNMw09DpFGgsV%2FjvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY%2FR27iz2qqaE5QzNKM1ezUvOUZj8H45hx%2BJx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4%2FOBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up%2B6Ynr5egJ5Mb6feeb3n%2Bhx9L%2F1U%2FW36p%2FVHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm%2Beb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw%2B6TvZN9un2N%2FT0HDYfZDqsdWh1%2Bc7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc%2BLpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26%2FuNu5p7ofcn8w0nymeWTNz0MPIQ%2BBR5dE%2FC5%2BVMGvfrH5PQ0%2BBZ7XnIy9jL5FXrdewt6V3qvdh7xc%2B9j5yn%2BM%2B4zw33jLeWV%2FMN8C3yLfLT8Nvnl%2BF30N%2FI%2F9k%2F3r%2F0QCngCUBZwOJgUGBWwL7%2BHp8Ib%2BOPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo%2Bqi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt%2F87fOH4p3iC%2BN7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi%2FRNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z%2Bpn5mZ2y6xlhbL%2BxW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a%2FzYnKOZarnivN7cyzytuQN5zvn%2F%2FtEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1%2B1dT1gvWd%2B1YfqGnRs%2BFYmKrhTbF5cVf9go3HjlG4dvyr%2BZ3JS0qavEuWTPZtJm6ebeLZ5bDpaql%2BaXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO%2FPLi8ZafJzs07P1SkVPRU%2BlQ27tLdtWHX%2BG7R7ht7vPY07NXbW7z3%2FT7JvttVAVVN1WbVZftJ%2B7P3P66Jqun4lvttXa1ObXHtxwPSA%2F0HIw6217nU1R3SPVRSj9Yr60cOxx%2B%2B%2Fp3vdy0NNg1VjZzG4iNwRHnk6fcJ3%2FceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w%2B0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb%2B%2B6EHTh0kX%2Fi%2Bc7vDvOXPK4dPKy2%2BUTV7hXmq86X23qdOo8%2FpPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb%2F1tWeOT3dvfN6b%2FfF9%2FXfFt1%2Bcif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v%2B3Njv3H9qwHeg89HcR%2FcGhYPP%2FpH1jw9DBY%2BZj8uGDYbrnjg%2BOTniP3L96fynQ89kzyaeF%2F6i%2FsuuFxYvfvjV69fO0ZjRoZfyl5O%2FbXyl%2FerA6xmv28bCxh6%2ByXgzMV70VvvtwXfcdx3vo98PT%2BR8IH8o%2F2j5sfVT0Kf7kxmTk%2F8EA5jz%2FGMzLdsAAAAGYktHRAD%2FAP8A%2F6C9p5MAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQffARwOJRIZx0loAAAGfElEQVRIx61XXUwb2RU%2B5147CIPrOoLYQ2LjYAdqjKOAmGAw1YYHsgqrCilZy1YUlG5ZVcoD2kYQP9G10valu%2F0hipSHKE0fiaiqRu0SrXYTFxdDBHhlIojH5kfgcWMwJoYpBeyksftQT%2BQQCE6aTxrNaGbu%2Bc4959zvnouQB1wuF3Ic90NK6UeZTMZKCDEAgBIAABHXEHEOAEYB4Cu9Xj989erVzH428U0fT506RVQq1c8Q8beICIj%2F%2B323OyEkd2h3OBzuGxoaSr81sd1u%2FwQAbhNCABGhrKxsqbq6mjeZTDGdTicoFIoUAIAgCAWLi4uKUCikCgaD2qWlJYYQAul0GhDxJ7dv3%2F5j3sQOh%2BMXAPBzRITjx4%2BHTp8%2BHairq4vnk5ZHjx6Vut3u6kAgUJWN0i9v3rz5%2Bc7%2F6C6kfQDgRERobW0d6%2BrqGmMYZgvyhFqt3mpsbAxvbm7%2BJxwOH0HED1iWVfp8vq%2F3JLbb7b8mhHQjIpw%2Ff%2F6%2B3W4PwjvCbDbHCgoK1kOhUAUiWliWLfL5fN%2B%2BRmy32z9BxC8IIXDx4sVv2traFuD%2FhF6vXysqKnoaCAT0lFIry7L8xMTE5Etim81GKaXfEULgzJkzo2fPnp2B9wSdTreeTCZTPM9rCCHtWq32V4FAICMBAKCUfoaIYDabQxcuXJjOx2AoFDrIcZz6%2BfPn1Gg0LtfU1OxZfOfOnZteXV09yHHcDxiG%2BQwAfoculwtnZ2fTAAA9PT1%2Fqa2t3bd6Z2ZmDl6%2Ffv1jAHi5fo1GY7Czs9MrlUp3Xbscx5XcunXrLACAXC4ntKys7ANE%2FLFGo1nq6Ojw5zNbr9d7dHFxUWsymQIMwyw%2Fffq0NJFIlPp8vgpBEKCqquo150tLS7empqbKtra25Mlk8u8EEdsQEYxGI59v3pLJ5AFCCMhksmednZ0PL1269GeVShUVBOH7w8PD1mvXrp2ZnJxkdik2nhACUqm0TYKITVniWE5YDvb39zevrKyoRTkUQyo%2Bi4oGAGAwGNacTudXQ0NDeo%2FH0%2FDkyRPNnTt3ND6fb8Zut4%2FK5fJnAAAVFRWxsbExQMRGgojHEBF0Op0gEvf39zfH43F1LsnOK1erc7R93ul0%2FollWb9UKk0vLCxU9vX1fbyxsXEAAECj0QhZhysliKgkhICovQAAsVhMTSmFGzdu3Hzb5VNYWPjcZrNNWCyW0ODgYFM0GtVyHKc%2BefIkL5fLU1mnlZLckInY7d27QLSRyWQw1zYAgCSTyawRQlSCIBQcOnRoGwCAYZjllZUVdVdX10935jQ31ydOnJh0OBzjOwpPcu%2Fevdrp6enj6XSaymSyf1dXVy8BAGxsbBRkx69JCCGzhBAVz%2FMKkdjhcHgHBgZey7M4A4lE8or3IkZGRiq8Xq8lmUwWZ4tupr29%2FWVxRaNRRdbGjIQQ8hARm2dnZ1X19fXLAACVlZWJ3t7ev%2B4Vwrt3754YHx8%2FKToSDoeVg4OD1ng8Xpbdu%2F%2FZ1NTkN5lMS7njIpGIKjvmoQQRBwHgSigU0gLAozwL6JlEIoFUKnVgYGCgkeM4EyIShUKxbjKZAq2trbvKLs%2FzWkopvHjx4p7kyJEj%2F4hGoxCLxZipqakSs9m8uh%2FxsWPHlkdHR2Fubq5aDLnBYAjabLY9JXNubq4kkUgwhBCwWq3D1OPxQH19%2FQYifri5uYkNDQ3h%2FYiVSuV2eXn5QnFxceLw4cPR5ubmiZaWFo5SumeTd%2F%2F%2B%2FXpBEEoAoLujo2OUZhVlXCaTfZ5IJEqSyWTKaDSu5EOu1%2BvjBoMhVlJS8sYOxe121zx%2B%2FLg2W%2FUfeTyeDAUACAQCGZZlI4jYzvO8Ri6Xr2q1WuF97Md%2Bv798ZGSkJbsCPu3t7f3ulQ7E5%2FP5GxoaihDRGgwGDe%2BD3O%2F3l7vd7g%2BzTd%2BXTqfzi117rvHx8W8tFosSES3BYNCQSqVSVVVVK%2B9C6vF4asSZZjKZaz09Pd1v7DLHxsa%2BbmxsLKKUWiORiCYSiRQXFhZu7ZdHEfPz86UPHjxgOY6rzYb3y%2B7u7u68G%2ForV650AsAtUbVUKtWSXq8PHz16NMYwzL%2FkcnlKlMF4PP69cDisikQi5evr64x46kDETy9fvvyHtz7CuFwusr29fZlS%2BhtRJimlgIhAKX1lf859RsSeurq637e0tLz9EWanA%2Bl0uhkRf4SITYQQPSFEmSVaQ8R5QsgoAPyNZVnvmwhF%2FBfnjYAmDVlf5AAAAABJRU5ErkJggg%3D%3D%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Fvis%2Fimg%2Fnetwork%2FupArrow.png%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Fvis%2Fimg%2Fnetwork%2FupArrow.png%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22type%5C%22%3A%20%5C%22image%2Fpng%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89%2BbN%2FrXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz%2FSMBAPh%2BPDwrIsAHvgABeNMLCADATZvAMByH%2Fw%2FqQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf%2BbTAICd%2BJl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA%2Fg88wAAKCRFRHgg%2FP9eM4Ors7ONo62Dl8t6r8G%2FyJiYuP%2B5c%2BrcEAAAOF0ftH%2BLC%2BzGoA7BoBt%2FqIl7gRoXgugdfeLZrIPQLUAoOnaV%2FNw%2BH48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl%2FAV%2F1s%2BX48%2FPf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H%2FLcL%2F%2Fwd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s%2BwM%2B3zUAsGo%2BAXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93%2F%2B8%2F%2FUegJQCAZkmScQAAXkQkLlTKsz%2FHCAAARKCBKrBBG%2FTBGCzABhzBBdzBC%2FxgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD%2FphCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8%2BQ8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8%2BxdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR%2BcQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI%2BksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG%2BQh8lsKnWJAcaT4U%2BIoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr%2Bh0uhHdlR5Ol9BX0svpR%2BiX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK%2BYTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI%2BpXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q%2FpH5Z%2FYkGWcNMw09DpFGgsV%2FjvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY%2FR27iz2qqaE5QzNKM1ezUvOUZj8H45hx%2BJx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4%2FOBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up%2B6Ynr5egJ5Mb6feeb3n%2Bhx9L%2F1U%2FW36p%2FVHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm%2Beb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw%2B6TvZN9un2N%2FT0HDYfZDqsdWh1%2Bc7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc%2BLpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26%2FuNu5p7ofcn8w0nymeWTNz0MPIQ%2BBR5dE%2FC5%2BVMGvfrH5PQ0%2BBZ7XnIy9jL5FXrdewt6V3qvdh7xc%2B9j5yn%2BM%2B4zw33jLeWV%2FMN8C3yLfLT8Nvnl%2BF30N%2FI%2F9k%2F3r%2F0QCngCUBZwOJgUGBWwL7%2BHp8Ib%2BOPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo%2Bqi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt%2F87fOH4p3iC%2BN7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi%2FRNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z%2Bpn5mZ2y6xlhbL%2BxW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a%2FzYnKOZarnivN7cyzytuQN5zvn%2F%2FtEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1%2B1dT1gvWd%2B1YfqGnRs%2BFYmKrhTbF5cVf9go3HjlG4dvyr%2BZ3JS0qavEuWTPZtJm6ebeLZ5bDpaql%2BaXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO%2FPLi8ZafJzs07P1SkVPRU%2BlQ27tLdtWHX%2BG7R7ht7vPY07NXbW7z3%2FT7JvttVAVVN1WbVZftJ%2B7P3P66Jqun4lvttXa1ObXHtxwPSA%2F0HIw6217nU1R3SPVRSj9Yr60cOxx%2B%2B%2Fp3vdy0NNg1VjZzG4iNwRHnk6fcJ3%2FceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w%2B0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb%2B%2B6EHTh0kX%2Fi%2Bc7vDvOXPK4dPKy2%2BUTV7hXmq86X23qdOo8%2FpPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb%2F1tWeOT3dvfN6b%2FfF9%2FXfFt1%2Bcif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v%2B3Njv3H9qwHeg89HcR%2FcGhYPP%2FpH1jw9DBY%2BZj8uGDYbrnjg%2BOTniP3L96fynQ89kzyaeF%2F6i%2FsuuFxYvfvjV69fO0ZjRoZfyl5O%2FbXyl%2FerA6xmv28bCxh6%2ByXgzMV70VvvtwXfcdx3vo98PT%2BR8IH8o%2F2j5sfVT0Kf7kxmTk%2F8EA5jz%2FGMzLdsAAAAGYktHRAD%2FAP8A%2F6C9p5MAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQffARwOJTG7oDgaAAAGZUlEQVRIx7WXXWxTVxLHZ%2BZcY1mON8li44%2FGruPrsMT5UElzgSRswEIBOdUSARsZoUioHxIPCKUowBPUyrYv2y5aeOABtMsKJJ5YIaR%2BqBQwCS1u4zihUVw7DqTE1yFOlObDDmDTEHsfeo1SY1NTaefF8j3%2Fmd%2B5c86ZORehAHO5XBgMBv%2FMGHsrnU43EZEVAEoBABBxHhHvA4AHAD7jef7r7u7u9G%2FFxJcNbt26lbRa7fuIeBIRAfEXea5fIlrp2hUOh0%2F19PSkXhnsdDrfBoDzRASICAaDIWqz2cSqqqpps9kcKy4ufgoAEIvF5OPj48WhUEg7MjJiikajeiKCVCoFiPjO%2BfPn%2F1MweO%2FevX8DgBOICLW1taHt27cH6urqZgpZlqGhIY3b7bYFAoE%2FSVn68Ny5cx9k61gO6CkAOIaI0NLS0nfo0KE%2BvV7%2FZKUmHo%2Bv8ng8r42PjxevXr06IZfLlzNjOp3uSUNDQ%2Fjx48fPwuFwGSJuEQSh1OfzfZkX7HQ6%2F05EXYgI%2B%2Fbtu%2BF0OkeyJxaPx1edOHHirwMDAza%2F32%2F1eDzWxsbG0Eo4AEBNTc20XC5fCIVCFkTcJAiC0ufzXX8B7HQ630bEj4kI9u%2Ff%2F1Vra%2BuDXKk8c%2BbM5mg0aigvLxdLS0tjs7OzmomJCcWmTZvC2Vqe5%2BeVSuVsIBDgGWNNgiCI%2Ff393z8Ht7e3M8bYABGBw%2BHw7N69ezQXtL%2B%2FX3f9%2BvUmxtjygQMHvqqurp7o6%2BurnJ2d1eh0uocGg%2BFRto%2FZbF5IJpNPRVE0ElGbyWT6KBAIpAkAgDHWiYhQU1MT6ujo8OfbONeuXatDRBAEYdhiscQsFkusvr5%2BmIjgxo0bdfn89uzZ47fZbCOICHq9vhMAgFwuFxLRSQCAHTt2BPI5X758uXpiYqKsqKjokdPpHFyxRIMqlerR5ORk2dWrV6vz%2BTc3NwcYY8Bx3EmXy4U0OjraDABgNBqj69evz3lklpaWaHBw0MYYA4fD8Z1SqXyWGVMoFM9aWlq%2B4zgOhoaGbEtLS5QrRmVl5U96vT5KRBCPx5sJEVsRESorK8V8sz179uzmeDxeYjAYJrdt2%2FZj9rjdbv9Rp9NNLi4ully8eHFzvjg8z4tEBDKZrJUQsVECT%2BcSDw8Pq4PB4DqO41Lt7e2efEF37drl4TguFQqF1gWDQU0ujcVimZbKawMhYgUigtlsjuUSh0IhHRFBbW1tYO3atXP5wFarda6qquoHjuNgbGxMl0tjNBpjUgleyyFiKRFBpvZmm0wmSxERLC8v04ULFzZkandHR4cXAODSpUvPn6XTaYaIIJPJlnPFUqlUT6VmUsplnPKZzWabunXrFgSDQRsRwQq9V1qKNzLPAQCICKxW61S%2BeBkdl06n54lIG4vF5GvWrElkCysqKuYOHjz439HRUV0ikVjl9Xo3ZAciIhAEwatQKH7meX6K5%2FmcS7K4uCiXwPMcEd0jIq0oisW5wBl4RUXFHACA1%2BvdwHHcC%2BC2trbvf6tzTU5OFkvZGiUi%2BhYR4d69e9pC2l5Ww3%2Fh%2F8ssEolopVb5LSHi59LuNf1ecKFwURRNjDEAgC%2BorKzsNiLC9PS0fnh4WF1IgJWpLvSt79%2B%2Fr56bm9MTETQ3N39N3d3daUTsAgDo6emx%2Fb9SPTg4aJNORJfdbk%2F9ssXm509L6V535cqV6lcBIyJI6ctrbre7%2BsGDB%2BsAAJLJ5Onn%2FTgQCKQFQYggYpsoikaVSvWTyWTKWcn8fv9ryWSyqLe3983bt2%2B%2FSUSg0Wim6uvrQ7n0d%2B%2Feff3OnTt2acLvHT9%2BfOBXNxCfz3d348aNSkRsGhkZseaDazSamYcPH%2F4xkUgUMcZArVZPORyOb0pKShK5oG63e4e0kz85duzYx3lvmZ2dnacQsZOIYMuWLZ6dO3f64XdYb29vtc%2Fna5SuuqePHDny%2FktvmX19fV82NDQoGWNNkUjEGIlEihQKxRO1Wv2kEODY2Jjm5s2bQjAYXC%2Bl95Ourq6ugi%2F0R48efRcA%2FpU5p1qtNsrzfLi8vHxar9fHVSrV00wZnJmZ%2BUM4HNZGIpHXFxYW9JmvDkR87%2FDhw%2F9%2B5U8Yl8tFiUTiMGPsH5mzyxj71U7ObhDSkTlSV1f3T7vd%2FuqfMNkTSKVSmxHxL4jYSEQ8EZVKoHlEHCMiDwB8KgjCNy8DZux%2FivJJxnpJh8sAAAAASUVORK5CYII%3D%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Fvis%2Fimg%2Fnetwork%2FzoomExtends.png%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Fvis%2Fimg%2Fnetwork%2FzoomExtends.png%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22type%5C%22%3A%20%5C%22image%2Fpng%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89%2BbN%2FrXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz%2FSMBAPh%2BPDwrIsAHvgABeNMLCADATZvAMByH%2Fw%2FqQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf%2BbTAICd%2BJl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA%2Fg88wAAKCRFRHgg%2FP9eM4Ors7ONo62Dl8t6r8G%2FyJiYuP%2B5c%2BrcEAAAOF0ftH%2BLC%2BzGoA7BoBt%2FqIl7gRoXgugdfeLZrIPQLUAoOnaV%2FNw%2BH48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl%2FAV%2F1s%2BX48%2FPf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H%2FLcL%2F%2Fwd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s%2BwM%2B3zUAsGo%2BAXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93%2F%2B8%2F%2FUegJQCAZkmScQAAXkQkLlTKsz%2FHCAAARKCBKrBBG%2FTBGCzABhzBBdzBC%2FxgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD%2FphCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8%2BQ8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8%2BxdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR%2BcQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI%2BksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG%2BQh8lsKnWJAcaT4U%2BIoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr%2Bh0uhHdlR5Ol9BX0svpR%2BiX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK%2BYTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI%2BpXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q%2FpH5Z%2FYkGWcNMw09DpFGgsV%2FjvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY%2FR27iz2qqaE5QzNKM1ezUvOUZj8H45hx%2BJx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4%2FOBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up%2B6Ynr5egJ5Mb6feeb3n%2Bhx9L%2F1U%2FW36p%2FVHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm%2Beb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw%2B6TvZN9un2N%2FT0HDYfZDqsdWh1%2Bc7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc%2BLpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26%2FuNu5p7ofcn8w0nymeWTNz0MPIQ%2BBR5dE%2FC5%2BVMGvfrH5PQ0%2BBZ7XnIy9jL5FXrdewt6V3qvdh7xc%2B9j5yn%2BM%2B4zw33jLeWV%2FMN8C3yLfLT8Nvnl%2BF30N%2FI%2F9k%2F3r%2F0QCngCUBZwOJgUGBWwL7%2BHp8Ib%2BOPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo%2Bqi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt%2F87fOH4p3iC%2BN7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi%2FRNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z%2Bpn5mZ2y6xlhbL%2BxW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a%2FzYnKOZarnivN7cyzytuQN5zvn%2F%2FtEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1%2B1dT1gvWd%2B1YfqGnRs%2BFYmKrhTbF5cVf9go3HjlG4dvyr%2BZ3JS0qavEuWTPZtJm6ebeLZ5bDpaql%2BaXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO%2FPLi8ZafJzs07P1SkVPRU%2BlQ27tLdtWHX%2BG7R7ht7vPY07NXbW7z3%2FT7JvttVAVVN1WbVZftJ%2B7P3P66Jqun4lvttXa1ObXHtxwPSA%2F0HIw6217nU1R3SPVRSj9Yr60cOxx%2B%2B%2Fp3vdy0NNg1VjZzG4iNwRHnk6fcJ3%2FceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w%2B0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb%2B%2B6EHTh0kX%2Fi%2Bc7vDvOXPK4dPKy2%2BUTV7hXmq86X23qdOo8%2FpPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb%2F1tWeOT3dvfN6b%2FfF9%2FXfFt1%2Bcif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v%2B3Njv3H9qwHeg89HcR%2FcGhYPP%2FpH1jw9DBY%2BZj8uGDYbrnjg%2BOTniP3L96fynQ89kzyaeF%2F6i%2FsuuFxYvfvjV69fO0ZjRoZfyl5O%2FbXyl%2FerA6xmv28bCxh6%2ByXgzMV70VvvtwXfcdx3vo98PT%2BR8IH8o%2F2j5sfVT0Kf7kxmTk%2F8EA5jz%2FGMzLdsAAAAGYktHRAD%2FAP8A%2F6C9p5MAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQffARwOJgNYWjpZAAAGOElEQVRIx62XUUxUZxbH%2F%2F9zJxkI4DgRMoxBRsVddDqYQFgHBTvsCxfZXdyYaBoSY9o0PLgm3YZd9EH70D5tu6Q18cmsNtm3No0%2BrGsYQQK60GABNcI4oxg7M8lepuNlABUdsXP7wL3jQIvF2pNMvnvvd%2B75fd%2BZc853Ltvb2yEiIAkA2WvrniQSiQQB7Cb5BwD1IrIFgNOcTwGYJDlE8oJhGFe%2FafvCAAACMLAoBGCQ%2BHP%2F%2BzAMA7Zc0HLg1NSUkPwrya7lczmji6RLROoB%2FB0A6r5o6wDw2chbX2YMEwoAGWQgIotgy6CIZHcMAIlE4m2SZ62FrV%2B%2FXvN6vTGv15vYuHHj7Nq1a9MAMDMzY49Go45IJOIKh8Plmqa5RaQrk8l01X3V9s43B778HFkxsvZ5%2BPDhJVBzpx%2BSPEES27dvjzQ1NYVqamqSWIXcvHmzpK%2BvzxsKhSpNj3w0sv%2BrD2C6%2FY9X%2FgKSUPx%2Bf3bHJvQzkp0k0dTUNHzkyJFht9s9j1VKaWnp%2FM6dO6OPHz9%2BHo1Gy0QkUBb2Of%2Fvvd1NEpVx%2F4%2FBU1NT%2FxCRDpJoa2vrPXDgQBi%2FUKqqqhJ2u30mEolsJllXdvuNgilvpKcyvmMRXFdXBxGBpmlvk%2FxYRHDo0KFLLS0t9%2FGaUlFRkSooKNBDoVCFoij1ZeE3YgUFBTdILgaXpmmKiJwliebm5iFVVb89duxYu%2BWJ1tbWoN%2Fvj64GNjIy4unu7lat%2B%2BPHj5%2Benp4eGhgY2AXgbDKZ%2FLfL5fpezP%2F2PZKoqqqKHDx4cNxKlVeFAkBtbW10z549QRHJBu2%2BffvGvV5vmCQURXlPRCCaplFEugBAVdWQZYAkWltbgxcuXFCvXbvmWS14dHTUc%2BnSJbW5uTmoKEr2%2Be7du0OKokBRlC5d12kTkTcBYMOGDVp1dXU2Zfbu3Rv0%2B%2F1RksGLFy%2Bq58%2BfT83NzTmX572VhiICh8ORstvtTlVVgzU1NVEAQUvH6%2FU%2BcLvdWiKRcGcymTcFQAtJbNu2LZa7csu9O3bsiKbT6VR%2Bfv4SqPWz2WzZReTl5TmfPXuWMqGwxpxgi5nvtNhI7jLBiZXcNzc353z06BFOnTp1%2BmVuPnr0aLthGM6V5jdv3pwYHh4GyZ02kr8hCY%2FHM7vSC7mB8jIxg2fF%2BbKyslnTzm9tJJ0iAqv2rgRejeSecj8la9asSZu2nLafU34V%2BGpsZc8FACmSmJ2dtb%2Buq38O%2FPDhQ7tpKyUk74oIYrGY49cAv0xP0zSHmRl3bCS%2FJtlw9%2B5dV21t7dRPveBwOFJ5eXnOzs7O9lzjiqIs6VyKi4uxsLCQWgkci8Vcpv7XIiL%2FBYBIJFK%2BvAIBwNjYmCcvL8%2B5sLCQyoXabLYf5fTz589TdrvdOT4%2B7gEAa8wBlyuKAhG5aCN5xeyr3Ldu3Squqqp6AADBYFAlGezp6VGbmpqC1dXVq6rX4%2BPjnsHBQZVkcHBwUPX5fKcBYHJysnh6etpttj5XpbS01CDZAQD9%2Ff3e3Jx8VSgA%2BHy%2BaENDQ9CEZ5%2BPjY15Tc90rFu3LiPm5EnT3VvPnTvny23oent71Rs3bqz6kJiYmLB2nLXR19fnu3%2F%2F%2FlZT5SRJ8MSJExARJJPJd0ieURQF%2B%2FfvDzY0NETxK8j169c9vb29KkkYhvGu0%2Bk8YxgGlMbGRpBEUVHR9fn5%2BQKS9eFweEtRUdGD8vLy2deF9vX1Wbv%2FZLyx%2F2NPYttiRgQCgWxUFhYW9jx58sRJsi4cDm9Jp9PpysrK734JtL%2B%2F3zc0NPR7M5hOTjQOdJBE%2BdTWxZoeCASWNOiFhYXdT58%2BLRCR%2Bng8viEejxfm5%2BfPFxcXr6rTvHfvXsnly5d%2FFw6Hq83U%2B%2BR249UOkcXDw%2FPd4o5tuVFsjSUlJZ26rkcA%2FOvOnTuVk5OTlS6XS6uoqIhu2rQp4Xa754qKitJWGUwmk2ui0agrHo97ZmZm3DmNwruhwJUzQmXxK4Ivqppt%2BYoNw7DgZ3Rd%2FxzA%2BwD%2Bqeu6W9d19%2Bjo6JLjL7eoWNeGYfyN5KehwJWM0NSDIGN8vzI4V0pKSjIi0qXr%2BqcAGkj%2ByTCMXSQrDMNwmodCCsA9ERki%2BR8A%2F5toHMgoVAASxItcFr4osT8Aaa5QMU%2FuqTYAAAAASUVORK5CYII%3D%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Fvis%2Fimg%2Ftimeline%2Fdelete.png%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Fvis%2Fimg%2Ftimeline%2Fdelete.png%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22type%5C%22%3A%20%5C%22image%2Fpng%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8%2F9hAAAABGdBTUEAALGPC%2FxhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZiS0dEAP8A%2FwD%2FoL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAl2cEFnAAAAEAAAABAAXMatwwAAAVRJREFUOMt108FKG1EUBuBvYtxbRGwxiGBXeYCW0mVpDSKVvIJ0F%2FsyJsFdn6GCkaZ9gro3G1u0ILQgheJKRUwXPQNnxvTAcGf%2Bc%2F7%2FnPvfO8UEKLCFJg5w31aNqGtgG3c4xLSZyP0QgI8Tpu0quQhyPwTgsBnkAVYD3MM9DibVId5GbiW%2BB%2BVIt7hJha1IdhPWDayVsBvcFtHlDYZ4mgou8D7e%2BzXyN%2FTwuUhjbkSXLHIZ61KNvItxaYyayBDrZsf36DyGdilQE%2BngA57UyD%2Bxg08luTSxHvP%2FwRuRewDm7uV9WJ4hsBy5rczJJm7G%2FtcS6VesjxN2Hj4c5S10Qj2Tz%2FAunrOEr0VtB%2BZ6vMJ%2BzfkfcVQjnMbRvcRC5B%2FhBU4auMbVjBFHCRsFdp6wK1yXHjz37xItRuejfFQ1nwb4HXVfs4nPYsQv0p%2BoKlLgNf7gGP4Cw4ZUK7kMJVEAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDExLTA1LTE2VDExOjM1OjIxKzAyOjAw9uVF5gAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxMS0wNS0xNlQxMTozNToyMSswMjowMIe4%2FVoAAAAASUVORK5CYII%3D%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Fvis%2Freadme%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Fvis%2Freadme%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22!%20TW5-Vis.js%5C%5Cn%5C%5CnA%20tiddlywiki%20plugin%20for%20the%20vis.js%20library.%5C%5Cn%5C%5Cn---%5C%5Cn%5C%5Cn!%20Notes%20on%20Copyright%5C%5Cn%5C%5Cn!!%20TiddlyWiki%5C%5Cn%5C%5CnCreated%20by%20Jeremy%20Ruston%2C%20(jeremy%20%5Bat%5D%20jermolene%20%5Bdot%5D%20com)%5C%5Cn%5C%5CnCopyright%20%C2%A9%20Jeremy%20Ruston%202004-2007%20Copyright%20%C2%A9%20UnaMesa%20Association%202007-2014%5C%5Cn%5C%5CnPublished%20under%20the%20following%20%5Blicenses%5D(https%3A%2F%2Fgithub.com%2FJermolene%2FTiddlyWiki5%2Ftree%2Fmaster%2Flicenses)%3A%5C%5Cn%5C%5Cn1.%20BSD%203-clause%20%5C%5C%5C%22New%5C%5C%5C%22%20or%20%5C%5C%5C%22Revised%5C%5C%5C%22%20License%20(including%20any%20right%20to%20adopt%20any%20future%20version%20of%20a%20license%20if%20permitted)%5C%5Cn2.%20Creative%20Commons%20Attribution%203.0%20(including%20any%20right%20to%20adopt%20any%20future%20version%20of%20a%20license%20if%20permitted)%5C%5Cn%5C%5Cn!!%20The%20**vis.js**%20library%5C%5Cn%5C%5CnCopyright%20(c)%202014%20%5BAlmende%20B.V.%5D(https%3A%2F%2Fgithub.com%2Falmende%2Fvis)%5C%5Cn%5C%5CnPublished%20under%20the%20following%20licenses%3A%5C%5Cn%5C%5Cn1.%20Apache%20License%20Version%202.0%2C%20January%202004%20http%3A%2F%2Fwww.apache.org%2Flicenses%2F%5C%5Cn2.%20MIT%20License%20(MIT)%5C%5Cn%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Fvis%2Fvis.css%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Fvis%2Fvis.css%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22type%5C%22%3A%20%5C%22text%2Fvnd.tiddlywiki%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22tags%5C%22%3A%20%5C%22%24%3A%2Ftags%2FStylesheet%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%5Crules%20except%20list%5C%5Cn%5C%5Cn%5C%5C%5C%5Cdefine%20datauri(title)%5C%5Cn%3C%24macrocall%20%24name%3D%5C%5C%5C%22makedatauri%5C%5C%5C%22%20type%3D%7B%7B%24title%24!!type%7D%7D%20text%3D%7B%7B%24title%24%7D%7D%2F%3E%5C%5Cn%5C%5C%5C%5Cend%5C%5Cn%5C%5Cn.vis%20.overlay%7Bposition%3Aabsolute%3Btop%3A0%3Bleft%3A0%3Bwidth%3A100%25%3Bheight%3A100%25%3Bz-index%3A10%7D.vis-active%7Bbox-shadow%3A0%200%2010px%20%2386d5f8%7D.vis%20%5Bclass*%3D%5C%5C%5C%22span%5C%5C%5C%22%5D%7Bmin-height%3A0%3Bwidth%3Aauto%7Ddiv.vis-configuration%7Bposition%3Arelative%3Bdisplay%3Ablock%3Bfloat%3Aleft%3Bfont-size%3A12px%7Ddiv.vis-configuration-wrapper%7Bdisplay%3Ablock%3Bwidth%3A700px%7Ddiv.vis-configuration-wrapper%3A%3Aafter%7Bclear%3Aboth%3Bcontent%3A%5C%5C%5C%22%5C%5C%5C%22%3Bdisplay%3Ablock%7Ddiv.vis-configuration.vis-config-option-container%7Bdisplay%3Ablock%3Bwidth%3A495px%3Bbackground-color%3A%23fff%3Bborder%3A2px%20solid%20%23f7f8fa%3Bborder-radius%3A4px%3Bmargin-top%3A20px%3Bleft%3A10px%3Bpadding-left%3A5px%7Ddiv.vis-configuration.vis-config-button%7Bdisplay%3Ablock%3Bwidth%3A495px%3Bheight%3A25px%3Bvertical-align%3Amiddle%3Bline-height%3A25px%3Bbackground-color%3A%23f7f8fa%3Bborder%3A2px%20solid%20%23ceced0%3Bborder-radius%3A4px%3Bmargin-top%3A20px%3Bleft%3A10px%3Bpadding-left%3A5px%3Bcursor%3Apointer%3Bmargin-bottom%3A30px%7Ddiv.vis-configuration.vis-config-button.hover%7Bbackground-color%3A%234588e6%3Bborder%3A2px%20solid%20%23214373%3Bcolor%3A%23fff%7Ddiv.vis-configuration.vis-config-item%7Bdisplay%3Ablock%3Bfloat%3Aleft%3Bwidth%3A495px%3Bheight%3A25px%3Bvertical-align%3Amiddle%3Bline-height%3A25px%7Ddiv.vis-configuration.vis-config-item.vis-config-s2%7Bleft%3A10px%3Bbackground-color%3A%23f7f8fa%3Bpadding-left%3A5px%3Bborder-radius%3A3px%7Ddiv.vis-configuration.vis-config-item.vis-config-s3%7Bleft%3A20px%3Bbackground-color%3A%23e4e9f0%3Bpadding-left%3A5px%3Bborder-radius%3A3px%7Ddiv.vis-configuration.vis-config-item.vis-config-s4%7Bleft%3A30px%3Bbackground-color%3A%23cfd8e6%3Bpadding-left%3A5px%3Bborder-radius%3A3px%7Ddiv.vis-configuration.vis-config-header%7Bfont-size%3A18px%3Bfont-weight%3Abold%7Ddiv.vis-configuration.vis-config-label%7Bwidth%3A120px%3Bheight%3A25px%3Bline-height%3A25px%7Ddiv.vis-configuration.vis-config-label.vis-config-s3%7Bwidth%3A110px%7Ddiv.vis-configuration.vis-config-label.vis-config-s4%7Bwidth%3A100px%7Ddiv.vis-configuration.vis-config-colorBlock%7Btop%3A1px%3Bwidth%3A30px%3Bheight%3A19px%3Bborder%3A1px%20solid%20%23444%3Bborder-radius%3A2px%3Bpadding%3A0%3Bmargin%3A0%3Bcursor%3Apointer%7Dinput.vis-configuration.vis-config-checkbox%7Bleft%3A-5px%7Dinput.vis-configuration.vis-config-rangeinput%7Bposition%3Arelative%3Btop%3A-5px%3Bwidth%3A60px%3Bpadding%3A1px%3Bmargin%3A0%3Bpointer-events%3Anone%7Dinput.vis-configuration.vis-config-range%7B-webkit-appearance%3Anone%3Bborder%3A0%20solid%20white%3Bbackground-color%3Argba(0%2C0%2C0%2C0)%3Bwidth%3A300px%3Bheight%3A20px%7Dinput.vis-configuration.vis-config-range%3A%3A-webkit-slider-runnable-track%7Bwidth%3A300px%3Bheight%3A5px%3Bbackground%3A%23dedede%3Bbackground%3A-moz-linear-gradient(top%2C%23dedede%200%2C%23c8c8c8%2099%25)%3Bbackground%3A-webkit-gradient(linear%2Cleft%20top%2Cleft%20bottom%2Ccolor-stop(0%2C%23dedede)%2Ccolor-stop(99%25%2C%23c8c8c8))%3Bbackground%3A-webkit-linear-gradient(top%2C%23dedede%200%2C%23c8c8c8%2099%25)%3Bbackground%3A-o-linear-gradient(top%2C%23dedede%200%2C%23c8c8c8%2099%25)%3Bbackground%3A-ms-linear-gradient(top%2C%23dedede%200%2C%23c8c8c8%2099%25)%3Bbackground%3Alinear-gradient(to%20bottom%2C%23dedede%200%2C%23c8c8c8%2099%25)%3Bfilter%3Aprogid%3ADXImageTransform.Microsoft.gradient(startColorstr%3D'%23dedede'%2CendColorstr%3D'%23c8c8c8'%2CGradientType%3D0)%3Bborder%3A1px%20solid%20%23999%3Bbox-shadow%3A%23aaa%200%200%203px%200%3Bborder-radius%3A3px%7Dinput.vis-configuration.vis-config-range%3A%3A-webkit-slider-thumb%7B-webkit-appearance%3Anone%3Bborder%3A1px%20solid%20%2314334b%3Bheight%3A17px%3Bwidth%3A17px%3Bborder-radius%3A50%25%3Bbackground%3A%233876c2%3Bbackground%3A-moz-linear-gradient(top%2C%233876c2%200%2C%23385380%20100%25)%3Bbackground%3A-webkit-gradient(linear%2Cleft%20top%2Cleft%20bottom%2Ccolor-stop(0%2C%233876c2)%2Ccolor-stop(100%25%2C%23385380))%3Bbackground%3A-webkit-linear-gradient(top%2C%233876c2%200%2C%23385380%20100%25)%3Bbackground%3A-o-linear-gradient(top%2C%233876c2%200%2C%23385380%20100%25)%3Bbackground%3A-ms-linear-gradient(top%2C%233876c2%200%2C%23385380%20100%25)%3Bbackground%3Alinear-gradient(to%20bottom%2C%233876c2%200%2C%23385380%20100%25)%3Bfilter%3Aprogid%3ADXImageTransform.Microsoft.gradient(startColorstr%3D'%233876c2'%2CendColorstr%3D'%23385380'%2CGradientType%3D0)%3Bbox-shadow%3A%23111927%200%200%201px%200%3Bmargin-top%3A-7px%7Dinput.vis-configuration.vis-config-range%3Afocus%7Boutline%3A0%7Dinput.vis-configuration.vis-config-range%3Afocus%3A%3A-webkit-slider-runnable-track%7Bbackground%3A%239d9d9d%3Bbackground%3A-moz-linear-gradient(top%2C%239d9d9d%200%2C%23c8c8c8%2099%25)%3Bbackground%3A-webkit-gradient(linear%2Cleft%20top%2Cleft%20bottom%2Ccolor-stop(0%2C%239d9d9d)%2Ccolor-stop(99%25%2C%23c8c8c8))%3Bbackground%3A-webkit-linear-gradient(top%2C%239d9d9d%200%2C%23c8c8c8%2099%25)%3Bbackground%3A-o-linear-gradient(top%2C%239d9d9d%200%2C%23c8c8c8%2099%25)%3Bbackground%3A-ms-linear-gradient(top%2C%239d9d9d%200%2C%23c8c8c8%2099%25)%3Bbackground%3Alinear-gradient(to%20bottom%2C%239d9d9d%200%2C%23c8c8c8%2099%25)%3Bfilter%3Aprogid%3ADXImageTransform.Microsoft.gradient(startColorstr%3D'%239d9d9d'%2CendColorstr%3D'%23c8c8c8'%2CGradientType%3D0)%7Dinput.vis-configuration.vis-config-range%3A%3A-moz-range-track%7Bwidth%3A300px%3Bheight%3A10px%3Bbackground%3A%23dedede%3Bbackground%3A-moz-linear-gradient(top%2C%23dedede%200%2C%23c8c8c8%2099%25)%3Bbackground%3A-webkit-gradient(linear%2Cleft%20top%2Cleft%20bottom%2Ccolor-stop(0%2C%23dedede)%2Ccolor-stop(99%25%2C%23c8c8c8))%3Bbackground%3A-webkit-linear-gradient(top%2C%23dedede%200%2C%23c8c8c8%2099%25)%3Bbackground%3A-o-linear-gradient(top%2C%23dedede%200%2C%23c8c8c8%2099%25)%3Bbackground%3A-ms-linear-gradient(top%2C%23dedede%200%2C%23c8c8c8%2099%25)%3Bbackground%3Alinear-gradient(to%20bottom%2C%23dedede%200%2C%23c8c8c8%2099%25)%3Bfilter%3Aprogid%3ADXImageTransform.Microsoft.gradient(startColorstr%3D'%23dedede'%2CendColorstr%3D'%23c8c8c8'%2CGradientType%3D0)%3Bborder%3A1px%20solid%20%23999%3Bbox-shadow%3A%23aaa%200%200%203px%200%3Bborder-radius%3A3px%7Dinput.vis-configuration.vis-config-range%3A%3A-moz-range-thumb%7Bborder%3A0%3Bheight%3A16px%3Bwidth%3A16px%3Bborder-radius%3A50%25%3Bbackground%3A%23385380%7Dinput.vis-configuration.vis-config-range%3A-moz-focusring%7Boutline%3A1px%20solid%20white%3Boutline-offset%3A-1px%7Dinput.vis-configuration.vis-config-range%3A%3A-ms-track%7Bwidth%3A300px%3Bheight%3A5px%3Bbackground%3Atransparent%3Bborder-color%3Atransparent%3Bborder-width%3A6px%200%3Bcolor%3Atransparent%7Dinput.vis-configuration.vis-config-range%3A%3A-ms-fill-lower%7Bbackground%3A%23777%3Bborder-radius%3A10px%7Dinput.vis-configuration.vis-config-range%3A%3A-ms-fill-upper%7Bbackground%3A%23ddd%3Bborder-radius%3A10px%7Dinput.vis-configuration.vis-config-range%3A%3A-ms-thumb%7Bborder%3A0%3Bheight%3A16px%3Bwidth%3A16px%3Bborder-radius%3A50%25%3Bbackground%3A%23385380%7Dinput.vis-configuration.vis-config-range%3Afocus%3A%3A-ms-fill-lower%7Bbackground%3A%23888%7Dinput.vis-configuration.vis-config-range%3Afocus%3A%3A-ms-fill-upper%7Bbackground%3A%23ccc%7D.vis-configuration-popup%7Bposition%3Aabsolute%3Bbackground%3Argba(57%2C76%2C89%2C0.85)%3Bborder%3A2px%20solid%20%23f2faff%3Bline-height%3A30px%3Bheight%3A30px%3Bwidth%3A150px%3Btext-align%3Acenter%3Bcolor%3A%23fff%3Bfont-size%3A14px%3Bborder-radius%3A4px%3B-webkit-transition%3Aopacity%20.3s%20ease-in-out%3B-moz-transition%3Aopacity%20.3s%20ease-in-out%3Btransition%3Aopacity%20.3s%20ease-in-out%7D.vis-configuration-popup%3Aafter%2C.vis-configuration-popup%3Abefore%7Bleft%3A100%25%3Btop%3A50%25%3Bborder%3Asolid%20transparent%3Bcontent%3A%5C%5C%5C%22%20%5C%5C%5C%22%3Bheight%3A0%3Bwidth%3A0%3Bposition%3Aabsolute%3Bpointer-events%3Anone%7D.vis-configuration-popup%3Aafter%7Bborder-color%3Argba(136%2C183%2C213%2C0)%3Bborder-left-color%3Argba(57%2C76%2C89%2C0.85)%3Bborder-width%3A8px%3Bmargin-top%3A-8px%7D.vis-configuration-popup%3Abefore%7Bborder-color%3Argba(194%2C225%2C245%2C0)%3Bborder-left-color%3A%23f2faff%3Bborder-width%3A12px%3Bmargin-top%3A-12px%7Ddiv.vis-tooltip%7Bposition%3Aabsolute%3Bvisibility%3Ahidden%3Bpadding%3A5px%3Bwhite-space%3Anowrap%3Bfont-family%3Averdana%3Bfont-size%3A14px%3Bcolor%3A%23000%3Bbackground-color%3A%23f5f4ed%3B-moz-border-radius%3A3px%3B-webkit-border-radius%3A3px%3Bborder-radius%3A3px%3Bborder%3A1px%20solid%20%23808074%3Bbox-shadow%3A3px%203px%2010px%20rgba(0%2C0%2C0%2C0.2)%3Bpointer-events%3Anone%3Bz-index%3A5%7Ddiv.vis-color-picker%7Bposition%3Aabsolute%3Btop%3A0%3Bleft%3A30px%3Bmargin-top%3A-140px%3Bmargin-left%3A30px%3Bwidth%3A310px%3Bheight%3A444px%3Bz-index%3A1%3Bpadding%3A10px%3Bborder-radius%3A15px%3Bbackground-color%3A%23fff%3Bdisplay%3Anone%3Bbox-shadow%3Argba(0%2C0%2C0%2C0.5)%200%200%2010px%200%7Ddiv.vis-color-picker%20div.vis-arrow%7Bposition%3Aabsolute%3Btop%3A147px%3Bleft%3A5px%7Ddiv.vis-color-picker%20div.vis-arrow%3A%3Aafter%2Cdiv.vis-color-picker%20div.vis-arrow%3A%3Abefore%7Bright%3A100%25%3Btop%3A50%25%3Bborder%3Asolid%20transparent%3Bcontent%3A%5C%5C%5C%22%20%5C%5C%5C%22%3Bheight%3A0%3Bwidth%3A0%3Bposition%3Aabsolute%3Bpointer-events%3Anone%7Ddiv.vis-color-picker%20div.vis-arrow%3Aafter%7Bborder-color%3Argba(255%2C255%2C255%2C0)%3Bborder-right-color%3A%23fff%3Bborder-width%3A30px%3Bmargin-top%3A-30px%7Ddiv.vis-color-picker%20div.vis-color%7Bposition%3Aabsolute%3Bwidth%3A289px%3Bheight%3A289px%3Bcursor%3Apointer%7Ddiv.vis-color-picker%20div.vis-brightness%7Bposition%3Aabsolute%3Btop%3A313px%7Ddiv.vis-color-picker%20div.vis-opacity%7Bposition%3Aabsolute%3Btop%3A350px%7Ddiv.vis-color-picker%20div.vis-selector%7Bposition%3Aabsolute%3Btop%3A137px%3Bleft%3A137px%3Bwidth%3A15px%3Bheight%3A15px%3Bborder-radius%3A15px%3Bborder%3A1px%20solid%20%23fff%3Bbackground%3A%234c4c4c%3Bbackground%3A-moz-linear-gradient(top%2C%234c4c4c%200%2C%23595959%2012%25%2C%23666%2025%25%2C%23474747%2039%25%2C%232c2c2c%2050%25%2C%23000%2051%25%2C%23111%2060%25%2C%232b2b2b%2076%25%2C%231c1c1c%2091%25%2C%23131313%20100%25)%3Bbackground%3A-webkit-gradient(linear%2Cleft%20top%2Cleft%20bottom%2Ccolor-stop(0%2C%234c4c4c)%2Ccolor-stop(12%25%2C%23595959)%2Ccolor-stop(25%25%2C%23666)%2Ccolor-stop(39%25%2C%23474747)%2Ccolor-stop(50%25%2C%232c2c2c)%2Ccolor-stop(51%25%2C%23000)%2Ccolor-stop(60%25%2C%23111)%2Ccolor-stop(76%25%2C%232b2b2b)%2Ccolor-stop(91%25%2C%231c1c1c)%2Ccolor-stop(100%25%2C%23131313))%3Bbackground%3A-webkit-linear-gradient(top%2C%234c4c4c%200%2C%23595959%2012%25%2C%23666%2025%25%2C%23474747%2039%25%2C%232c2c2c%2050%25%2C%23000%2051%25%2C%23111%2060%25%2C%232b2b2b%2076%25%2C%231c1c1c%2091%25%2C%23131313%20100%25)%3Bbackground%3A-o-linear-gradient(top%2C%234c4c4c%200%2C%23595959%2012%25%2C%23666%2025%25%2C%23474747%2039%25%2C%232c2c2c%2050%25%2C%23000%2051%25%2C%23111%2060%25%2C%232b2b2b%2076%25%2C%231c1c1c%2091%25%2C%23131313%20100%25)%3Bbackground%3A-ms-linear-gradient(top%2C%234c4c4c%200%2C%23595959%2012%25%2C%23666%2025%25%2C%23474747%2039%25%2C%232c2c2c%2050%25%2C%23000%2051%25%2C%23111%2060%25%2C%232b2b2b%2076%25%2C%231c1c1c%2091%25%2C%23131313%20100%25)%3Bbackground%3Alinear-gradient(to%20bottom%2C%234c4c4c%200%2C%23595959%2012%25%2C%23666%2025%25%2C%23474747%2039%25%2C%232c2c2c%2050%25%2C%23000%2051%25%2C%23111%2060%25%2C%232b2b2b%2076%25%2C%231c1c1c%2091%25%2C%23131313%20100%25)%3Bfilter%3Aprogid%3ADXImageTransform.Microsoft.gradient(startColorstr%3D'%234c4c4c'%2CendColorstr%3D'%23131313'%2CGradientType%3D0)%7Ddiv.vis-color-picker%20div.vis-new-color%7Bposition%3Aabsolute%3Bwidth%3A140px%3Bheight%3A20px%3Bborder%3A1px%20solid%20rgba(0%2C0%2C0%2C0.1)%3Bborder-radius%3A5px%3Btop%3A380px%3Bleft%3A159px%3Btext-align%3Aright%3Bpadding-right%3A2px%3Bfont-size%3A10px%3Bcolor%3Argba(0%2C0%2C0%2C0.4)%3Bvertical-align%3Amiddle%3Bline-height%3A20px%7Ddiv.vis-color-picker%20div.vis-initial-color%7Bposition%3Aabsolute%3Bwidth%3A140px%3Bheight%3A20px%3Bborder%3A1px%20solid%20rgba(0%2C0%2C0%2C0.1)%3Bborder-radius%3A5px%3Btop%3A380px%3Bleft%3A10px%3Btext-align%3Aleft%3Bpadding-left%3A2px%3Bfont-size%3A10px%3Bcolor%3Argba(0%2C0%2C0%2C0.4)%3Bvertical-align%3Amiddle%3Bline-height%3A20px%7Ddiv.vis-color-picker%20div.vis-label%7Bposition%3Aabsolute%3Bwidth%3A300px%3Bleft%3A10px%7Ddiv.vis-color-picker%20div.vis-label.vis-brightness%7Btop%3A300px%7Ddiv.vis-color-picker%20div.vis-label.vis-opacity%7Btop%3A338px%7Ddiv.vis-color-picker%20div.vis-button%7Bposition%3Aabsolute%3Bwidth%3A68px%3Bheight%3A25px%3Bborder-radius%3A10px%3Bvertical-align%3Amiddle%3Btext-align%3Acenter%3Bline-height%3A25px%3Btop%3A410px%3Bborder%3A2px%20solid%20%23d9d9d9%3Bbackground-color%3A%23f7f7f7%3Bcursor%3Apointer%7Ddiv.vis-color-picker%20div.vis-button.vis-cancel%7Bleft%3A5px%7Ddiv.vis-color-picker%20div.vis-button.vis-load%7Bleft%3A82px%7Ddiv.vis-color-picker%20div.vis-button.vis-apply%7Bleft%3A159px%7Ddiv.vis-color-picker%20div.vis-button.vis-save%7Bleft%3A236px%7Ddiv.vis-color-picker%20input.vis-range%7Bwidth%3A290px%3Bheight%3A20px%7Ddiv.vis-network%20div.vis-manipulation%7Bbox-sizing%3Acontent-box%3Bborder-width%3A0%3Bborder-bottom%3A1px%3Bborder-style%3Asolid%3Bborder-color%3A%23d6d9d8%3Bbackground%3A%23fff%3Bbackground%3A-moz-linear-gradient(top%2C%23fff%200%2C%23fcfcfc%2048%25%2C%23fafafa%2050%25%2C%23fcfcfc%20100%25)%3Bbackground%3A-webkit-gradient(linear%2Cleft%20top%2Cleft%20bottom%2Ccolor-stop(0%2C%23fff)%2Ccolor-stop(48%25%2C%23fcfcfc)%2Ccolor-stop(50%25%2C%23fafafa)%2Ccolor-stop(100%25%2C%23fcfcfc))%3Bbackground%3A-webkit-linear-gradient(top%2C%23fff%200%2C%23fcfcfc%2048%25%2C%23fafafa%2050%25%2C%23fcfcfc%20100%25)%3Bbackground%3A-o-linear-gradient(top%2C%23fff%200%2C%23fcfcfc%2048%25%2C%23fafafa%2050%25%2C%23fcfcfc%20100%25)%3Bbackground%3A-ms-linear-gradient(top%2C%23fff%200%2C%23fcfcfc%2048%25%2C%23fafafa%2050%25%2C%23fcfcfc%20100%25)%3Bbackground%3Alinear-gradient(to%20bottom%2C%23fff%200%2C%23fcfcfc%2048%25%2C%23fafafa%2050%25%2C%23fcfcfc%20100%25)%3Bfilter%3Aprogid%3ADXImageTransform.Microsoft.gradient(startColorstr%3D'%23ffffff'%2CendColorstr%3D'%23fcfcfc'%2CGradientType%3D0)%3Bpadding-top%3A4px%3Bposition%3Aabsolute%3Bleft%3A0%3Btop%3A0%3Bwidth%3A100%25%3Bheight%3A28px%7Ddiv.vis-network%20div.vis-edit-mode%7Bposition%3Aabsolute%3Bleft%3A0%3Btop%3A5px%3Bheight%3A30px%7Ddiv.vis-network%20div.vis-close%7Bposition%3Aabsolute%3Bright%3A0%3Btop%3A0%3Bwidth%3A30px%3Bheight%3A30px%3Bbackground-position%3A20px%203px%3Bbackground-repeat%3Ano-repeat%3Bbackground-image%3Aurl(%3C%3Cdatauri%20%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Fvis%2Fimg%2Fnetwork%2Fcross.png%5C%5C%5C%22%3E%3E)%3Bcursor%3Apointer%3B-webkit-touch-callout%3Anone%3B-webkit-user-select%3Anone%3B-khtml-user-select%3Anone%3B-moz-user-select%3Anone%3B-ms-user-select%3Anone%3Buser-select%3Anone%7Ddiv.vis-network%20div.vis-close%3Ahover%7Bopacity%3A.6%7Ddiv.vis-network%20div.vis-manipulation%20div.vis-button%2Cdiv.vis-network%20div.vis-edit-mode%20div.vis-button%7Bfloat%3Aleft%3Bfont-family%3Averdana%3Bfont-size%3A12px%3B-moz-border-radius%3A15px%3Bborder-radius%3A15px%3Bdisplay%3Ainline-block%3Bbackground-position%3A0%200%3Bbackground-repeat%3Ano-repeat%3Bheight%3A24px%3Bmargin-left%3A10px%3Bcursor%3Apointer%3Bpadding%3A0%208px%200%208px%3B-webkit-touch-callout%3Anone%3B-webkit-user-select%3Anone%3B-khtml-user-select%3Anone%3B-moz-user-select%3Anone%3B-ms-user-select%3Anone%3Buser-select%3Anone%7Ddiv.vis-network%20div.vis-manipulation%20div.vis-button%3Ahover%7Bbox-shadow%3A1px%201px%208px%20rgba(0%2C0%2C0%2C0.20)%7Ddiv.vis-network%20div.vis-manipulation%20div.vis-button%3Aactive%7Bbox-shadow%3A1px%201px%208px%20rgba(0%2C0%2C0%2C0.50)%7Ddiv.vis-network%20div.vis-manipulation%20div.vis-button.vis-back%7Bbackground-image%3Aurl(%3C%3Cdatauri%20%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Fvis%2Fimg%2Fnetwork%2FbackIcon.png%5C%5C%5C%22%3E%3E)%7Ddiv.vis-network%20div.vis-manipulation%20div.vis-button.vis-none%3Ahover%7Bbox-shadow%3A1px%201px%208px%20rgba(0%2C0%2C0%2C0.0)%3Bcursor%3Adefault%7Ddiv.vis-network%20div.vis-manipulation%20div.vis-button.vis-none%3Aactive%7Bbox-shadow%3A1px%201px%208px%20rgba(0%2C0%2C0%2C0.0)%7Ddiv.vis-network%20div.vis-manipulation%20div.vis-button.vis-none%7Bpadding%3A0%7Ddiv.vis-network%20div.vis-manipulation%20div.notification%7Bmargin%3A2px%3Bfont-weight%3Abold%7Ddiv.vis-network%20div.vis-manipulation%20div.vis-button.vis-add%7Bbackground-image%3Aurl(%3C%3Cdatauri%20%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Fvis%2Fimg%2Fnetwork%2FaddNodeIcon.png%5C%5C%5C%22%3E%3E)%7Ddiv.vis-network%20div.vis-manipulation%20div.vis-button.vis-edit%2Cdiv.vis-network%20div.vis-edit-mode%20div.vis-button.vis-edit%7Bbackground-image%3Aurl(%3C%3Cdatauri%20%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Fvis%2Fimg%2Fnetwork%2FeditIcon.png%5C%5C%5C%22%3E%3E)%7Ddiv.vis-network%20div.vis-edit-mode%20div.vis-button.vis-edit.vis-edit-mode%7Bbackground-color%3A%23fcfcfc%3Bborder%3A1px%20solid%20%23ccc%7Ddiv.vis-network%20div.vis-manipulation%20div.vis-button.vis-connect%7Bbackground-image%3Aurl(%3C%3Cdatauri%20%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Fvis%2Fimg%2Fnetwork%2FconnectIcon.png%5C%5C%5C%22%3E%3E)%7Ddiv.vis-network%20div.vis-manipulation%20div.vis-button.vis-delete%7Bbackground-image%3Aurl(%3C%3Cdatauri%20%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Fvis%2Fimg%2Fnetwork%2FdeleteIcon.png%5C%5C%5C%22%3E%3E)%7Ddiv.vis-network%20div.vis-manipulation%20div.vis-label%2Cdiv.vis-network%20div.vis-edit-mode%20div.vis-label%7Bmargin%3A0%200%200%2023px%3Bline-height%3A25px%7Ddiv.vis-network%20div.vis-manipulation%20div.vis-separator-line%7Bfloat%3Aleft%3Bdisplay%3Ainline-block%3Bwidth%3A1px%3Bheight%3A21px%3Bbackground-color%3A%23bdbdbd%3Bmargin%3A0%207px%200%2015px%7Ddiv.vis-network%20div.vis-navigation%20div.vis-button%7Bwidth%3A34px%3Bheight%3A34px%3B-moz-border-radius%3A17px%3Bborder-radius%3A17px%3Bposition%3Aabsolute%3Bdisplay%3Ainline-block%3Bbackground-position%3A2px%202px%3Bbackground-repeat%3Ano-repeat%3Bcursor%3Apointer%3B-webkit-touch-callout%3Anone%3B-webkit-user-select%3Anone%3B-khtml-user-select%3Anone%3B-moz-user-select%3Anone%3B-ms-user-select%3Anone%3Buser-select%3Anone%7Ddiv.vis-network%20div.vis-navigation%20div.vis-button%3Ahover%7Bbox-shadow%3A0%200%203px%203px%20rgba(56%2C207%2C21%2C0.30)%7Ddiv.vis-network%20div.vis-navigation%20div.vis-button%3Aactive%7Bbox-shadow%3A0%200%201px%203px%20rgba(56%2C207%2C21%2C0.95)%7Ddiv.vis-network%20div.vis-navigation%20div.vis-button.vis-up%7Bbackground-image%3Aurl(%3C%3Cdatauri%20%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Fvis%2Fimg%2Fnetwork%2FupArrow.png%5C%5C%5C%22%3E%3E)%3Bbottom%3A50px%3Bleft%3A55px%7Ddiv.vis-network%20div.vis-navigation%20div.vis-button.vis-down%7Bbackground-image%3Aurl(%3C%3Cdatauri%20%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Fvis%2Fimg%2Fnetwork%2FdownArrow.png%5C%5C%5C%22%3E%3E)%3Bbottom%3A10px%3Bleft%3A55px%7Ddiv.vis-network%20div.vis-navigation%20div.vis-button.vis-left%7Bbackground-image%3Aurl(%3C%3Cdatauri%20%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Fvis%2Fimg%2Fnetwork%2FleftArrow.png%5C%5C%5C%22%3E%3E)%3Bbottom%3A10px%3Bleft%3A15px%7Ddiv.vis-network%20div.vis-navigation%20div.vis-button.vis-right%7Bbackground-image%3Aurl(%3C%3Cdatauri%20%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Fvis%2Fimg%2Fnetwork%2FrightArrow.png%5C%5C%5C%22%3E%3E)%3Bbottom%3A10px%3Bleft%3A95px%7Ddiv.vis-network%20div.vis-navigation%20div.vis-button.vis-zoomIn%7Bbackground-image%3Aurl(%3C%3Cdatauri%20%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Fvis%2Fimg%2Fnetwork%2Fplus.png%5C%5C%5C%22%3E%3E)%3Bbottom%3A10px%3Bright%3A15px%7Ddiv.vis-network%20div.vis-navigation%20div.vis-button.vis-zoomOut%7Bbackground-image%3Aurl(%3C%3Cdatauri%20%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Fvis%2Fimg%2Fnetwork%2Fminus.png%5C%5C%5C%22%3E%3E)%3Bbottom%3A10px%3Bright%3A55px%7Ddiv.vis-network%20div.vis-navigation%20div.vis-button.vis-zoomExtends%7Bbackground-image%3Aurl(%3C%3Cdatauri%20%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Fvis%2Fimg%2Fnetwork%2FzoomExtends.png%5C%5C%5C%22%3E%3E)%3Bbottom%3A50px%3Bright%3A15px%7D.vis-current-time%7Bbackground-color%3A%23ff7f6e%3Bwidth%3A2px%3Bz-index%3A1%3Bpointer-events%3Anone%7D.vis-rolling-mode-btn%7Bheight%3A40px%3Bwidth%3A40px%3Bposition%3Aabsolute%3Btop%3A7px%3Bright%3A20px%3Bborder-radius%3A50%25%3Bfont-size%3A28px%3Bcursor%3Apointer%3Bopacity%3A.8%3Bcolor%3Awhite%3Bfont-weight%3Abold%3Btext-align%3Acenter%3Bbackground%3A%233876c2%7D.vis-rolling-mode-btn%3Abefore%7Bcontent%3A%5C%5C%5C%22%5C%5C%5C%5C26F6%5C%5C%5C%22%7D.vis-rolling-mode-btn%3Ahover%7Bopacity%3A1%7D.vis-custom-time%7Bbackground-color%3A%236e94ff%3Bwidth%3A2px%3Bcursor%3Amove%3Bz-index%3A1%7D.vis-panel.vis-background.vis-horizontal%20.vis-grid.vis-horizontal%7Bposition%3Aabsolute%3Bwidth%3A100%25%3Bheight%3A0%3Bborder-bottom%3A1px%20solid%7D.vis-panel.vis-background.vis-horizontal%20.vis-grid.vis-minor%7Bborder-color%3A%23e5e5e5%7D.vis-panel.vis-background.vis-horizontal%20.vis-grid.vis-major%7Bborder-color%3A%23bfbfbf%7D.vis-data-axis%20.vis-y-axis.vis-major%7Bwidth%3A100%25%3Bposition%3Aabsolute%3Bcolor%3A%234d4d4d%3Bwhite-space%3Anowrap%7D.vis-data-axis%20.vis-y-axis.vis-major.vis-measure%7Bpadding%3A0%3Bmargin%3A0%3Bborder%3A0%3Bvisibility%3Ahidden%3Bwidth%3Aauto%7D.vis-data-axis%20.vis-y-axis.vis-minor%7Bposition%3Aabsolute%3Bwidth%3A100%25%3Bcolor%3A%23bebebe%3Bwhite-space%3Anowrap%7D.vis-data-axis%20.vis-y-axis.vis-minor.vis-measure%7Bpadding%3A0%3Bmargin%3A0%3Bborder%3A0%3Bvisibility%3Ahidden%3Bwidth%3Aauto%7D.vis-data-axis%20.vis-y-axis.vis-title%7Bposition%3Aabsolute%3Bcolor%3A%234d4d4d%3Bwhite-space%3Anowrap%3Bbottom%3A20px%3Btext-align%3Acenter%7D.vis-data-axis%20.vis-y-axis.vis-title.vis-measure%7Bpadding%3A0%3Bmargin%3A0%3Bvisibility%3Ahidden%3Bwidth%3Aauto%7D.vis-data-axis%20.vis-y-axis.vis-title.vis-left%7Bbottom%3A0%3B-webkit-transform-origin%3Aleft%20top%3B-moz-transform-origin%3Aleft%20top%3B-ms-transform-origin%3Aleft%20top%3B-o-transform-origin%3Aleft%20top%3Btransform-origin%3Aleft%20bottom%3B-webkit-transform%3Arotate(-90deg)%3B-moz-transform%3Arotate(-90deg)%3B-ms-transform%3Arotate(-90deg)%3B-o-transform%3Arotate(-90deg)%3Btransform%3Arotate(-90deg)%7D.vis-data-axis%20.vis-y-axis.vis-title.vis-right%7Bbottom%3A0%3B-webkit-transform-origin%3Aright%20bottom%3B-moz-transform-origin%3Aright%20bottom%3B-ms-transform-origin%3Aright%20bottom%3B-o-transform-origin%3Aright%20bottom%3Btransform-origin%3Aright%20bottom%3B-webkit-transform%3Arotate(90deg)%3B-moz-transform%3Arotate(90deg)%3B-ms-transform%3Arotate(90deg)%3B-o-transform%3Arotate(90deg)%3Btransform%3Arotate(90deg)%7D.vis-legend%7Bbackground-color%3Argba(247%2C252%2C255%2C0.65)%3Bpadding%3A5px%3Bborder%3A1px%20solid%20%23b3b3b3%3Bbox-shadow%3A2px%202px%2010px%20rgba(154%2C154%2C154%2C0.55)%7D.vis-legend-text%7Bwhite-space%3Anowrap%3Bdisplay%3Ainline-block%7D.vis-item%7Bposition%3Aabsolute%3Bcolor%3A%231a1a1a%3Bborder-color%3A%2397b0f8%3Bborder-width%3A1px%3Bbackground-color%3A%23d5ddf6%3Bdisplay%3Ainline-block%3Bz-index%3A1%7D.vis-item.vis-selected%7Bborder-color%3A%23ffc200%3Bbackground-color%3A%23fff785%3Bz-index%3A2%7D.vis-editable.vis-selected%7Bcursor%3Amove%7D.vis-item.vis-point.vis-selected%7Bbackground-color%3A%23fff785%7D.vis-item.vis-box%7Btext-align%3Acenter%3Bborder-style%3Asolid%3Bborder-radius%3A2px%7D.vis-item.vis-point%7Bbackground%3A0%7D.vis-item.vis-dot%7Bposition%3Aabsolute%3Bpadding%3A0%3Bborder-width%3A4px%3Bborder-style%3Asolid%3Bborder-radius%3A4px%7D.vis-item.vis-range%7Bborder-style%3Asolid%3Bborder-radius%3A2px%3Bbox-sizing%3Aborder-box%7D.vis-item.vis-background%7Bborder%3A0%3Bbackground-color%3Argba(213%2C221%2C246%2C0.4)%3Bbox-sizing%3Aborder-box%3Bpadding%3A0%3Bmargin%3A0%7D.vis-item%20.vis-item-overflow%7Bposition%3Arelative%3Bwidth%3A100%25%3Bheight%3A100%25%3Bpadding%3A0%3Bmargin%3A0%3Boverflow%3Ahidden%7D.vis-item-visible-frame%7Bwhite-space%3Anowrap%7D.vis-item.vis-range%20.vis-item-content%7Bposition%3Arelative%3Bdisplay%3Ainline-block%7D.vis-item.vis-background%20.vis-item-content%7Bposition%3Aabsolute%3Bdisplay%3Ainline-block%7D.vis-item.vis-line%7Bpadding%3A0%3Bposition%3Aabsolute%3Bwidth%3A0%3Bborder-left-width%3A1px%3Bborder-left-style%3Asolid%7D.vis-item%20.vis-item-content%7Bwhite-space%3Anowrap%3Bbox-sizing%3Aborder-box%3Bpadding%3A5px%7D.vis-item%20.vis-onUpdateTime-tooltip%7Bposition%3Aabsolute%3Bbackground%3A%234f81bd%3Bcolor%3Awhite%3Bwidth%3A200px%3Btext-align%3Acenter%3Bwhite-space%3Anowrap%3Bpadding%3A5px%3Bborder-radius%3A1px%3Btransition%3A.4s%3B-o-transition%3A.4s%3B-moz-transition%3A.4s%3B-webkit-transition%3A.4s%7D.vis-item%20.vis-delete%2C.vis-item%20.vis-delete-rtl%7Bposition%3Aabsolute%3Btop%3A0%3Bwidth%3A24px%3Bheight%3A24px%3Bbox-sizing%3Aborder-box%3Bpadding%3A0%205px%3Bcursor%3Apointer%3B-webkit-transition%3Abackground%20.2s%20linear%3B-moz-transition%3Abackground%20.2s%20linear%3B-ms-transition%3Abackground%20.2s%20linear%3B-o-transition%3Abackground%20.2s%20linear%3Btransition%3Abackground%20.2s%20linear%7D.vis-item%20.vis-delete%7Bright%3A-24px%7D.vis-item%20.vis-delete-rtl%7Bleft%3A-24px%7D.vis-item%20.vis-delete%3Aafter%2C.vis-item%20.vis-delete-rtl%3Aafter%7Bcontent%3A%5C%5C%5C%22%5C%5C%5C%5C00D7%5C%5C%5C%22%3Bcolor%3Ared%3Bfont-family%3Aarial%2Csans-serif%3Bfont-size%3A22px%3Bfont-weight%3Abold%3B-webkit-transition%3Acolor%20.2s%20linear%3B-moz-transition%3Acolor%20.2s%20linear%3B-ms-transition%3Acolor%20.2s%20linear%3B-o-transition%3Acolor%20.2s%20linear%3Btransition%3Acolor%20.2s%20linear%7D.vis-item%20.vis-delete%3Ahover%2C.vis-item%20.vis-delete-rtl%3Ahover%7Bbackground%3Ared%7D.vis-item%20.vis-delete%3Ahover%3Aafter%2C.vis-item%20.vis-delete-rtl%3Ahover%3Aafter%7Bcolor%3Awhite%7D.vis-item%20.vis-drag-center%7Bposition%3Aabsolute%3Bwidth%3A100%25%3Bheight%3A100%25%3Btop%3A0%3Bleft%3A0%3Bcursor%3Amove%7D.vis-item.vis-range%20.vis-drag-left%7Bposition%3Aabsolute%3Bwidth%3A24px%3Bmax-width%3A20%25%3Bmin-width%3A2px%3Bheight%3A100%25%3Btop%3A0%3Bleft%3A-4px%3Bcursor%3Aw-resize%7D.vis-item.vis-range%20.vis-drag-right%7Bposition%3Aabsolute%3Bwidth%3A24px%3Bmax-width%3A20%25%3Bmin-width%3A2px%3Bheight%3A100%25%3Btop%3A0%3Bright%3A-4px%3Bcursor%3Ae-resize%7D.vis-range.vis-item.vis-readonly%20.vis-drag-left%2C.vis-range.vis-item.vis-readonly%20.vis-drag-right%7Bcursor%3Aauto%7D.vis-itemset%7Bposition%3Arelative%3Bpadding%3A0%3Bmargin%3A0%3Bbox-sizing%3Aborder-box%7D.vis-itemset%20.vis-background%2C.vis-itemset%20.vis-foreground%7Bposition%3Aabsolute%3Bwidth%3A100%25%3Bheight%3A100%25%3Boverflow%3Avisible%7D.vis-axis%7Bposition%3Aabsolute%3Bwidth%3A100%25%3Bheight%3A0%3Bleft%3A0%3Bz-index%3A1%7D.vis-foreground%20.vis-group%7Bposition%3Arelative%3Bbox-sizing%3Aborder-box%3Bborder-bottom%3A1px%20solid%20%23bfbfbf%7D.vis-foreground%20.vis-group%3Alast-child%7Bborder-bottom%3A0%7D.vis-nesting-group%7Bcursor%3Apointer%7D.vis-nested-group%7Bbackground%3A%23f5f5f5%7D.vis-label.vis-nesting-group.expanded%3Abefore%7Bcontent%3A%5C%5C%5C%22%5C%5C%5C%5C25BC%5C%5C%5C%22%7D.vis-label.vis-nesting-group.collapsed-rtl%3Abefore%7Bcontent%3A%5C%5C%5C%22%5C%5C%5C%5C25C0%5C%5C%5C%22%7D.vis-label.vis-nesting-group.collapsed%3Abefore%7Bcontent%3A%5C%5C%5C%22%5C%5C%5C%5C25B6%5C%5C%5C%22%7D.vis-overlay%7Bposition%3Aabsolute%3Btop%3A0%3Bleft%3A0%3Bwidth%3A100%25%3Bheight%3A100%25%3Bz-index%3A10%7D.vis-labelset%7Bposition%3Arelative%3Boverflow%3Ahidden%3Bbox-sizing%3Aborder-box%7D.vis-labelset%20.vis-label%7Bposition%3Arelative%3Bleft%3A0%3Btop%3A0%3Bwidth%3A100%25%3Bcolor%3A%234d4d4d%3Bbox-sizing%3Aborder-box%7D.vis-labelset%20.vis-label%7Bborder-bottom%3A1px%20solid%20%23bfbfbf%7D.vis-labelset%20.vis-label.draggable%7Bcursor%3Apointer%7D.vis-labelset%20.vis-label%3Alast-child%7Bborder-bottom%3A0%7D.vis-labelset%20.vis-label%20.vis-inner%7Bdisplay%3Ainline-block%3Bpadding%3A5px%7D.vis-labelset%20.vis-label%20.vis-inner.vis-hidden%7Bpadding%3A0%7D.vis-panel%7Bposition%3Aabsolute%3Bpadding%3A0%3Bmargin%3A0%3Bbox-sizing%3Aborder-box%7D.vis-panel.vis-center%2C.vis-panel.vis-left%2C.vis-panel.vis-right%2C.vis-panel.vis-top%2C.vis-panel.vis-bottom%7Bborder%3A1px%20%23bfbfbf%7D.vis-panel.vis-center%2C.vis-panel.vis-left%2C.vis-panel.vis-right%7Bborder-top-style%3Asolid%3Bborder-bottom-style%3Asolid%3Boverflow%3Ahidden%7D.vis-left.vis-panel.vis-vertical-scroll%2C.vis-right.vis-panel.vis-vertical-scroll%7Bheight%3A100%25%3Boverflow-x%3Ahidden%3Boverflow-y%3Ascroll%7D.vis-left.vis-panel.vis-vertical-scroll%7Bdirection%3Artl%7D.vis-left.vis-panel.vis-vertical-scroll%20.vis-content%7Bdirection%3Altr%7D.vis-right.vis-panel.vis-vertical-scroll%7Bdirection%3Altr%7D.vis-right.vis-panel.vis-vertical-scroll%20.vis-content%7Bdirection%3Artl%7D.vis-panel.vis-center%2C.vis-panel.vis-top%2C.vis-panel.vis-bottom%7Bborder-left-style%3Asolid%3Bborder-right-style%3Asolid%7D.vis-background%7Boverflow%3Ahidden%7D.vis-panel%3E.vis-content%7Bposition%3Arelative%7D.vis-panel%20.vis-shadow%7Bposition%3Aabsolute%3Bwidth%3A100%25%3Bheight%3A1px%3Bbox-shadow%3A0%200%2010px%20rgba(0%2C0%2C0%2C0.8)%7D.vis-panel%20.vis-shadow.vis-top%7Btop%3A-1px%3Bleft%3A0%7D.vis-panel%20.vis-shadow.vis-bottom%7Bbottom%3A-1px%3Bleft%3A0%7D.vis-graph-group0%7Bfill%3A%234f81bd%3Bfill-opacity%3A0%3Bstroke-width%3A2px%3Bstroke%3A%234f81bd%7D.vis-graph-group1%7Bfill%3A%23f79646%3Bfill-opacity%3A0%3Bstroke-width%3A2px%3Bstroke%3A%23f79646%7D.vis-graph-group2%7Bfill%3A%238c51cf%3Bfill-opacity%3A0%3Bstroke-width%3A2px%3Bstroke%3A%238c51cf%7D.vis-graph-group3%7Bfill%3A%2375c841%3Bfill-opacity%3A0%3Bstroke-width%3A2px%3Bstroke%3A%2375c841%7D.vis-graph-group4%7Bfill%3A%23ff0100%3Bfill-opacity%3A0%3Bstroke-width%3A2px%3Bstroke%3A%23ff0100%7D.vis-graph-group5%7Bfill%3A%2337d8e6%3Bfill-opacity%3A0%3Bstroke-width%3A2px%3Bstroke%3A%2337d8e6%7D.vis-graph-group6%7Bfill%3A%23042662%3Bfill-opacity%3A0%3Bstroke-width%3A2px%3Bstroke%3A%23042662%7D.vis-graph-group7%7Bfill%3A%2300ff26%3Bfill-opacity%3A0%3Bstroke-width%3A2px%3Bstroke%3A%2300ff26%7D.vis-graph-group8%7Bfill%3A%23f0f%3Bfill-opacity%3A0%3Bstroke-width%3A2px%3Bstroke%3A%23f0f%7D.vis-graph-group9%7Bfill%3A%238f3938%3Bfill-opacity%3A0%3Bstroke-width%3A2px%3Bstroke%3A%238f3938%7D.vis-timeline%20.vis-fill%7Bfill-opacity%3A.1%3Bstroke%3Anone%7D.vis-timeline%20.vis-bar%7Bfill-opacity%3A.5%3Bstroke-width%3A1px%7D.vis-timeline%20.vis-point%7Bstroke-width%3A2px%3Bfill-opacity%3A1.0%7D.vis-timeline%20.vis-legend-background%7Bstroke-width%3A1px%3Bfill-opacity%3A.9%3Bfill%3A%23fff%3Bstroke%3A%23c2c2c2%7D.vis-timeline%20.vis-outline%7Bstroke-width%3A1px%3Bfill-opacity%3A1%3Bfill%3A%23fff%3Bstroke%3A%23e5e5e5%7D.vis-timeline%20.vis-icon-fill%7Bfill-opacity%3A.3%3Bstroke%3Anone%7D.vis-time-axis%7Bposition%3Arelative%3Boverflow%3Ahidden%7D.vis-time-axis.vis-foreground%7Btop%3A0%3Bleft%3A0%3Bwidth%3A100%25%7D.vis-time-axis.vis-background%7Bposition%3Aabsolute%3Btop%3A0%3Bleft%3A0%3Bwidth%3A100%25%3Bheight%3A100%25%7D.vis-time-axis%20.vis-text%7Bposition%3Aabsolute%3Bcolor%3A%234d4d4d%3Bpadding%3A3px%3Boverflow%3Ahidden%3Bbox-sizing%3Aborder-box%3Bwhite-space%3Anowrap%7D.vis-time-axis%20.vis-text.vis-measure%7Bposition%3Aabsolute%3Bpadding-left%3A0%3Bpadding-right%3A0%3Bmargin-left%3A0%3Bmargin-right%3A0%3Bvisibility%3Ahidden%7D.vis-time-axis%20.vis-grid.vis-vertical%7Bposition%3Aabsolute%3Bborder-left%3A1px%20solid%7D.vis-time-axis%20.vis-grid.vis-vertical-rtl%7Bposition%3Aabsolute%3Bborder-right%3A1px%20solid%7D.vis-time-axis%20.vis-grid.vis-minor%7Bborder-color%3A%23e5e5e5%7D.vis-time-axis%20.vis-grid.vis-major%7Bborder-color%3A%23bfbfbf%7D.vis-timeline%7Bposition%3Arelative%3Bborder%3A1px%20solid%20%23bfbfbf%3Boverflow%3Ahidden%3Bpadding%3A0%3Bmargin%3A0%3Bbox-sizing%3Aborder-box%7D%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Fvis%2Fvis.js%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Fvis%2Fvis.js%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%2F*%5C%5C%5C%5C%5C%5Cntitle%3A%20%24%3A%2Fplugins%2Ffelixhayashi%2Fvis%2Fvis.js%5C%5Cntype%3A%20application%2Fjavascript%5C%5Cnmodule-type%3A%20library%5C%5Cn%5C%5Cn%40preserve%5C%5Cn%5C%5C%5C%5C*%2F%5C%5Cn%5C%5Cn%2F***%20TO%20AVOID%20STRANGE%20LIB%20ERRORS%20FROM%20BUBBLING%20UP%20*****************%2F%5C%5Cn%5C%5Cnif(%24tw.boot.tasks.trapErrors)%20%7B%5C%5Cn%5C%5Cn%20%20var%20defaultHandler%20%3D%20window.onerror%3B%5C%5Cn%20%20window.onerror%20%3D%20function(errorMsg%2C%20url%2C%20lineNumber)%20%7B%5C%5Cn%20%20%20%20%5C%5Cn%20%20%20%20if(errorMsg.indexOf(%5C%5C%5C%22NS_ERROR_NOT_AVAILABLE%5C%5C%5C%22)%20!%3D%3D%20-1%5C%5Cn%20%20%20%20%20%20%20%26%26%20url%20%3D%3D%20%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Fvis%2Fvis.js%5C%5C%5C%22)%20%7B%5C%5Cn%20%20%20%20%20%20%20%20%20%5C%5Cn%20%20%20%20%20%20var%20text%20%3D%20%5C%5C%5C%22Strange%20firefox%20related%20vis.js%20error%20(see%20%23125)%5C%5C%5C%22%3B%5C%5Cn%20%20%20%20%20%20console.error(text%2C%20arguments)%3B%5C%5Cn%20%20%20%20%20%20%5C%5Cn%20%20%20%20%7D%20else%20if(errorMsg.indexOf(%5C%5C%5C%22Permission%20denied%20to%20access%20property%5C%5C%5C%22)%20!%3D%3D%20-1)%20%7B%5C%5Cn%20%20%20%20%20%20%5C%5Cn%20%20%20%20%20%20var%20text%20%3D%20%5C%5C%5C%22Strange%20firefox%20related%20vis.js%20error%20(see%20%23163)%5C%5C%5C%22%3B%5C%5Cn%20%20%20%20%20%20console.error(text%2C%20arguments)%3B%5C%5Cn%20%20%20%20%20%20%5C%5Cn%20%20%20%20%7D%20else%20if(defaultHandler)%20%7B%5C%5Cn%20%20%20%20%20%20%5C%5Cn%20%20%20%20%20%20defaultHandler.apply(this%2C%20arguments)%3B%5C%5Cn%20%20%20%20%20%20%5C%5Cn%20%20%20%20%7D%5C%5Cn%20%20%20%20%5C%5Cn%20%20%7D%5C%5Cn%20%20%5C%5Cn%7D%5C%5Cn%5C%5Cn%2F******************************************************************%2F%5C%5Cn%5C%5Cn%2F**%5C%5Cn%20*%20vis.js%5C%5Cn%20*%20https%3A%2F%2Fgithub.com%2Falmende%2Fvis%5C%5Cn%20*%5C%5Cn%20*%20A%20dynamic%2C%20browser-based%20visualization%20library.%5C%5Cn%20*%5C%5Cn%20*%20%40version%204.21.0%5C%5Cn%20*%20%40date%20%20%20%202017-10-12%5C%5Cn%20*%5C%5Cn%20*%20%40license%5C%5Cn%20*%20Copyright%20(C)%202011-2017%20Almende%20B.V%2C%20http%3A%2F%2Falmende.com%5C%5Cn%20*%5C%5Cn%20*%20Vis.js%20is%20dual%20licensed%20under%20both%5C%5Cn%20*%5C%5Cn%20*%20*%20The%20Apache%202.0%20License%5C%5Cn%20*%20%20%20http%3A%2F%2Fwww.apache.org%2Flicenses%2FLICENSE-2.0%5C%5Cn%20*%5C%5Cn%20*%20and%5C%5Cn%20*%5C%5Cn%20*%20*%20The%20MIT%20License%5C%5Cn%20*%20%20%20http%3A%2F%2Fopensource.org%2Flicenses%2FMIT%5C%5Cn%20*%5C%5Cn%20*%20Vis.js%20may%20be%20distributed%20under%20either%20license.%5C%5Cn%20*%2F%5C%5Cn%5C%5C%5C%22use%20strict%5C%5C%5C%22%3B(function%20webpackUniversalModuleDefinition(root%2Cfactory)%7Bif(typeof%20exports%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22%26%26typeof%20module%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22)module.exports%3Dfactory()%3Belse%20if(typeof%20define%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22%26%26define.amd)define(%5B%5D%2Cfactory)%3Belse%20if(typeof%20exports%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22)exports%5B%5C%5C%5C%22vis%5C%5C%5C%22%5D%3Dfactory()%3Belse%20root%5B%5C%5C%5C%22vis%5C%5C%5C%22%5D%3Dfactory()%7D)(this%2Cfunction()%7Breturn%20function(modules)%7Bvar%20installedModules%3D%7B%7D%3Bfunction%20__webpack_require__(moduleId)%7Bif(installedModules%5BmoduleId%5D)%7Breturn%20installedModules%5BmoduleId%5D.exports%7Dvar%20module%3DinstalledModules%5BmoduleId%5D%3D%7Bi%3AmoduleId%2Cl%3Afalse%2Cexports%3A%7B%7D%7D%3Bmodules%5BmoduleId%5D.call(module.exports%2Cmodule%2Cmodule.exports%2C__webpack_require__)%3Bmodule.l%3Dtrue%3Breturn%20module.exports%7D__webpack_require__.m%3Dmodules%3B__webpack_require__.c%3DinstalledModules%3B__webpack_require__.d%3Dfunction(exports%2Cname%2Cgetter)%7Bif(!__webpack_require__.o(exports%2Cname))%7BObject.defineProperty(exports%2Cname%2C%7Bconfigurable%3Afalse%2Cenumerable%3Atrue%2Cget%3Agetter%7D)%7D%7D%3B__webpack_require__.n%3Dfunction(module)%7Bvar%20getter%3Dmodule%26%26module.__esModule%3Ffunction%20getDefault()%7Breturn%20module%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%7D%3Afunction%20getModuleExports()%7Breturn%20module%7D%3B__webpack_require__.d(getter%2C%5C%5C%5C%22a%5C%5C%5C%22%2Cgetter)%3Breturn%20getter%7D%3B__webpack_require__.o%3Dfunction(object%2Cproperty)%7Breturn%20Object.prototype.hasOwnProperty.call(object%2Cproperty)%7D%3B__webpack_require__.p%3D%5C%5C%5C%22%5C%5C%5C%22%3Breturn%20__webpack_require__(__webpack_require__.s%3D123)%7D(%5Bfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bexports.__esModule%3Dtrue%3Bexports.default%3Dfunction(instance%2CConstructor)%7Bif(!(instance%20instanceof%20Constructor))%7Bthrow%20new%20TypeError(%5C%5C%5C%22Cannot%20call%20a%20class%20as%20a%20function%5C%5C%5C%22)%7D%7D%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bexports.__esModule%3Dtrue%3Bvar%20_defineProperty%3D__webpack_require__(169)%3Bvar%20_defineProperty2%3D_interopRequireDefault(_defineProperty)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dexports.default%3Dfunction()%7Bfunction%20defineProperties(target%2Cprops)%7Bfor(var%20i%3D0%3Bi%3Cprops.length%3Bi%2B%2B)%7Bvar%20descriptor%3Dprops%5Bi%5D%3Bdescriptor.enumerable%3Ddescriptor.enumerable%7C%7Cfalse%3Bdescriptor.configurable%3Dtrue%3Bif(%5C%5C%5C%22value%5C%5C%5C%22in%20descriptor)descriptor.writable%3Dtrue%3B(0%2C_defineProperty2.default)(target%2Cdescriptor.key%2Cdescriptor)%7D%7Dreturn%20function(Constructor%2CprotoProps%2CstaticProps)%7Bif(protoProps)defineProperties(Constructor.prototype%2CprotoProps)%3Bif(staticProps)defineProperties(Constructor%2CstaticProps)%3Breturn%20Constructor%7D%7D()%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bvar%20_getIterator2%3D__webpack_require__(77)%3Bvar%20_getIterator3%3D_interopRequireDefault(_getIterator2)%3Bvar%20_create%3D__webpack_require__(29)%3Bvar%20_create2%3D_interopRequireDefault(_create)%3Bvar%20_keys%3D__webpack_require__(8)%3Bvar%20_keys2%3D_interopRequireDefault(_keys)%3Bvar%20_typeof2%3D__webpack_require__(6)%3Bvar%20_typeof3%3D_interopRequireDefault(_typeof2)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20moment%3D__webpack_require__(9)%3Bvar%20uuid%3D__webpack_require__(157)%3Bexports.isNumber%3Dfunction(object)%7Breturn%20object%20instanceof%20Number%7C%7Ctypeof%20object%3D%3D%5C%5C%5C%22number%5C%5C%5C%22%7D%3Bexports.recursiveDOMDelete%3Dfunction(DOMobject)%7Bif(DOMobject)%7Bwhile(DOMobject.hasChildNodes()%3D%3D%3Dtrue)%7Bexports.recursiveDOMDelete(DOMobject.firstChild)%3BDOMobject.removeChild(DOMobject.firstChild)%7D%7D%7D%3Bexports.giveRange%3Dfunction(min%2Cmax%2Ctotal%2Cvalue)%7Bif(max%3D%3Dmin)%7Breturn.5%7Delse%7Bvar%20scale%3D1%2F(max-min)%3Breturn%20Math.max(0%2C(value-min)*scale)%7D%7D%3Bexports.isString%3Dfunction(object)%7Breturn%20object%20instanceof%20String%7C%7Ctypeof%20object%3D%3D%5C%5C%5C%22string%5C%5C%5C%22%7D%3Bexports.isDate%3Dfunction(object)%7Bif(object%20instanceof%20Date)%7Breturn%20true%7Delse%20if(exports.isString(object))%7Bvar%20match%3DASPDateRegex.exec(object)%3Bif(match)%7Breturn%20true%7Delse%20if(!isNaN(Date.parse(object)))%7Breturn%20true%7D%7Dreturn%20false%7D%3Bexports.randomUUID%3Dfunction()%7Breturn%20uuid.v4()%7D%3Bexports.assignAllKeys%3Dfunction(obj%2Cvalue)%7Bfor(var%20prop%20in%20obj)%7Bif(obj.hasOwnProperty(prop))%7Bif((0%2C_typeof3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(obj%5Bprop%5D)!%3D%3D%5C%5C%5C%22object%5C%5C%5C%22)%7Bobj%5Bprop%5D%3Dvalue%7D%7D%7D%7D%3Bfunction%20copyOrDelete(a%2Cb%2Cprop%2CallowDeletion)%7Bvar%20doDeletion%3Dfalse%3Bif(allowDeletion%3D%3D%3Dtrue)%7BdoDeletion%3Db%5Bprop%5D%3D%3D%3Dnull%26%26a%5Bprop%5D!%3D%3Dundefined%7Dif(doDeletion)%7Bdelete%20a%5Bprop%5D%7Delse%7Ba%5Bprop%5D%3Db%5Bprop%5D%7D%7Dexports.fillIfDefined%3Dfunction(a%2Cb)%7Bvar%20allowDeletion%3Darguments.length%3E2%26%26arguments%5B2%5D!%3D%3Dundefined%3Farguments%5B2%5D%3Afalse%3Bfor(var%20prop%20in%20a)%7Bif(b%5Bprop%5D!%3D%3Dundefined)%7Bif(b%5Bprop%5D%3D%3D%3Dnull%7C%7C(0%2C_typeof3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(b%5Bprop%5D)!%3D%3D%5C%5C%5C%22object%5C%5C%5C%22)%7BcopyOrDelete(a%2Cb%2Cprop%2CallowDeletion)%7Delse%7Bif((0%2C_typeof3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(a%5Bprop%5D)%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22)%7Bexports.fillIfDefined(a%5Bprop%5D%2Cb%5Bprop%5D%2CallowDeletion)%7D%7D%7D%7D%7D%3Bexports.extend%3Dfunction(a%2Cb)%7Bfor(var%20i%3D1%3Bi%3Carguments.length%3Bi%2B%2B)%7Bvar%20other%3Darguments%5Bi%5D%3Bfor(var%20prop%20in%20other)%7Bif(other.hasOwnProperty(prop))%7Ba%5Bprop%5D%3Dother%5Bprop%5D%7D%7D%7Dreturn%20a%7D%3Bexports.selectiveExtend%3Dfunction(props%2Ca%2Cb)%7Bif(!Array.isArray(props))%7Bthrow%20new%20Error(%5C%5C%5C%22Array%20with%20property%20names%20expected%20as%20first%20argument%5C%5C%5C%22)%7Dfor(var%20i%3D2%3Bi%3Carguments.length%3Bi%2B%2B)%7Bvar%20other%3Darguments%5Bi%5D%3Bfor(var%20p%3D0%3Bp%3Cprops.length%3Bp%2B%2B)%7Bvar%20prop%3Dprops%5Bp%5D%3Bif(other%26%26other.hasOwnProperty(prop))%7Ba%5Bprop%5D%3Dother%5Bprop%5D%7D%7D%7Dreturn%20a%7D%3Bexports.selectiveDeepExtend%3Dfunction(props%2Ca%2Cb)%7Bvar%20allowDeletion%3Darguments.length%3E3%26%26arguments%5B3%5D!%3D%3Dundefined%3Farguments%5B3%5D%3Afalse%3Bif(Array.isArray(b))%7Bthrow%20new%20TypeError(%5C%5C%5C%22Arrays%20are%20not%20supported%20by%20deepExtend%5C%5C%5C%22)%7Dfor(var%20p%3D0%3Bp%3Cprops.length%3Bp%2B%2B)%7Bvar%20prop%3Dprops%5Bp%5D%3Bif(b.hasOwnProperty(prop))%7Bif(b%5Bprop%5D%26%26b%5Bprop%5D.constructor%3D%3D%3DObject)%7Bif(a%5Bprop%5D%3D%3D%3Dundefined)%7Ba%5Bprop%5D%3D%7B%7D%7Dif(a%5Bprop%5D.constructor%3D%3D%3DObject)%7Bexports.deepExtend(a%5Bprop%5D%2Cb%5Bprop%5D%2Cfalse%2CallowDeletion)%7Delse%7BcopyOrDelete(a%2Cb%2Cprop%2CallowDeletion)%7D%7Delse%20if(Array.isArray(b%5Bprop%5D))%7Bthrow%20new%20TypeError(%5C%5C%5C%22Arrays%20are%20not%20supported%20by%20deepExtend%5C%5C%5C%22)%7Delse%7BcopyOrDelete(a%2Cb%2Cprop%2CallowDeletion)%7D%7D%7Dreturn%20a%7D%3Bexports.selectiveNotDeepExtend%3Dfunction(propsToExclude%2Ca%2Cb)%7Bvar%20allowDeletion%3Darguments.length%3E3%26%26arguments%5B3%5D!%3D%3Dundefined%3Farguments%5B3%5D%3Afalse%3Bif(Array.isArray(b))%7Bthrow%20new%20TypeError(%5C%5C%5C%22Arrays%20are%20not%20supported%20by%20deepExtend%5C%5C%5C%22)%7Dfor(var%20prop%20in%20b)%7Bif(!b.hasOwnProperty(prop))continue%3Bif(propsToExclude.indexOf(prop)!%3D%3D-1)continue%3Bif(b%5Bprop%5D%26%26b%5Bprop%5D.constructor%3D%3D%3DObject)%7Bif(a%5Bprop%5D%3D%3D%3Dundefined)%7Ba%5Bprop%5D%3D%7B%7D%7Dif(a%5Bprop%5D.constructor%3D%3D%3DObject)%7Bexports.deepExtend(a%5Bprop%5D%2Cb%5Bprop%5D)%7Delse%7BcopyOrDelete(a%2Cb%2Cprop%2CallowDeletion)%7D%7Delse%20if(Array.isArray(b%5Bprop%5D))%7Ba%5Bprop%5D%3D%5B%5D%3Bfor(var%20i%3D0%3Bi%3Cb%5Bprop%5D.length%3Bi%2B%2B)%7Ba%5Bprop%5D.push(b%5Bprop%5D%5Bi%5D)%7D%7Delse%7BcopyOrDelete(a%2Cb%2Cprop%2CallowDeletion)%7D%7Dreturn%20a%7D%3Bexports.deepExtend%3Dfunction(a%2Cb)%7Bvar%20protoExtend%3Darguments.length%3E2%26%26arguments%5B2%5D!%3D%3Dundefined%3Farguments%5B2%5D%3Afalse%3Bvar%20allowDeletion%3Darguments.length%3E3%26%26arguments%5B3%5D!%3D%3Dundefined%3Farguments%5B3%5D%3Afalse%3Bfor(var%20prop%20in%20b)%7Bif(b.hasOwnProperty(prop)%7C%7CprotoExtend%3D%3D%3Dtrue)%7Bif(b%5Bprop%5D%26%26b%5Bprop%5D.constructor%3D%3D%3DObject)%7Bif(a%5Bprop%5D%3D%3D%3Dundefined)%7Ba%5Bprop%5D%3D%7B%7D%7Dif(a%5Bprop%5D.constructor%3D%3D%3DObject)%7Bexports.deepExtend(a%5Bprop%5D%2Cb%5Bprop%5D%2CprotoExtend)%7Delse%7BcopyOrDelete(a%2Cb%2Cprop%2CallowDeletion)%7D%7Delse%20if(Array.isArray(b%5Bprop%5D))%7Ba%5Bprop%5D%3D%5B%5D%3Bfor(var%20i%3D0%3Bi%3Cb%5Bprop%5D.length%3Bi%2B%2B)%7Ba%5Bprop%5D.push(b%5Bprop%5D%5Bi%5D)%7D%7Delse%7BcopyOrDelete(a%2Cb%2Cprop%2CallowDeletion)%7D%7D%7Dreturn%20a%7D%3Bexports.equalArray%3Dfunction(a%2Cb)%7Bif(a.length!%3Db.length)return%20false%3Bfor(var%20i%3D0%2Clen%3Da.length%3Bi%3Clen%3Bi%2B%2B)%7Bif(a%5Bi%5D!%3Db%5Bi%5D)return%20false%7Dreturn%20true%7D%3Bexports.convert%3Dfunction(object%2Ctype)%7Bvar%20match%3Bif(object%3D%3D%3Dundefined)%7Breturn%20undefined%7Dif(object%3D%3D%3Dnull)%7Breturn%20null%7Dif(!type)%7Breturn%20object%7Dif(!(typeof%20type%3D%3D%3D%5C%5C%5C%22string%5C%5C%5C%22)%26%26!(type%20instanceof%20String))%7Bthrow%20new%20Error(%5C%5C%5C%22Type%20must%20be%20a%20string%5C%5C%5C%22)%7Dswitch(type)%7Bcase%5C%5C%5C%22boolean%5C%5C%5C%22%3Acase%5C%5C%5C%22Boolean%5C%5C%5C%22%3Areturn%20Boolean(object)%3Bcase%5C%5C%5C%22number%5C%5C%5C%22%3Acase%5C%5C%5C%22Number%5C%5C%5C%22%3Aif(exports.isString(object)%26%26!isNaN(Date.parse(object)))%7Breturn%20moment(object).valueOf()%7Delse%7Breturn%20Number(object.valueOf())%7Dcase%5C%5C%5C%22string%5C%5C%5C%22%3Acase%5C%5C%5C%22String%5C%5C%5C%22%3Areturn%20String(object)%3Bcase%5C%5C%5C%22Date%5C%5C%5C%22%3Aif(exports.isNumber(object))%7Breturn%20new%20Date(object)%7Dif(object%20instanceof%20Date)%7Breturn%20new%20Date(object.valueOf())%7Delse%20if(moment.isMoment(object))%7Breturn%20new%20Date(object.valueOf())%7Dif(exports.isString(object))%7Bmatch%3DASPDateRegex.exec(object)%3Bif(match)%7Breturn%20new%20Date(Number(match%5B1%5D))%7Delse%7Breturn%20moment(new%20Date(object)).toDate()%7D%7Delse%7Bthrow%20new%20Error(%5C%5C%5C%22Cannot%20convert%20object%20of%20type%20%5C%5C%5C%22%2Bexports.getType(object)%2B%5C%5C%5C%22%20to%20type%20Date%5C%5C%5C%22)%7Dcase%5C%5C%5C%22Moment%5C%5C%5C%22%3Aif(exports.isNumber(object))%7Breturn%20moment(object)%7Dif(object%20instanceof%20Date)%7Breturn%20moment(object.valueOf())%7Delse%20if(moment.isMoment(object))%7Breturn%20moment(object)%7Dif(exports.isString(object))%7Bmatch%3DASPDateRegex.exec(object)%3Bif(match)%7Breturn%20moment(Number(match%5B1%5D))%7Delse%7Breturn%20moment(object)%7D%7Delse%7Bthrow%20new%20Error(%5C%5C%5C%22Cannot%20convert%20object%20of%20type%20%5C%5C%5C%22%2Bexports.getType(object)%2B%5C%5C%5C%22%20to%20type%20Date%5C%5C%5C%22)%7Dcase%5C%5C%5C%22ISODate%5C%5C%5C%22%3Aif(exports.isNumber(object))%7Breturn%20new%20Date(object)%7Delse%20if(object%20instanceof%20Date)%7Breturn%20object.toISOString()%7Delse%20if(moment.isMoment(object))%7Breturn%20object.toDate().toISOString()%7Delse%20if(exports.isString(object))%7Bmatch%3DASPDateRegex.exec(object)%3Bif(match)%7Breturn%20new%20Date(Number(match%5B1%5D)).toISOString()%7Delse%7Breturn%20moment(object).format()%7D%7Delse%7Bthrow%20new%20Error(%5C%5C%5C%22Cannot%20convert%20object%20of%20type%20%5C%5C%5C%22%2Bexports.getType(object)%2B%5C%5C%5C%22%20to%20type%20ISODate%5C%5C%5C%22)%7Dcase%5C%5C%5C%22ASPDate%5C%5C%5C%22%3Aif(exports.isNumber(object))%7Breturn%5C%5C%5C%22%2FDate(%5C%5C%5C%22%2Bobject%2B%5C%5C%5C%22)%2F%5C%5C%5C%22%7Delse%20if(object%20instanceof%20Date)%7Breturn%5C%5C%5C%22%2FDate(%5C%5C%5C%22%2Bobject.valueOf()%2B%5C%5C%5C%22)%2F%5C%5C%5C%22%7Delse%20if(exports.isString(object))%7Bmatch%3DASPDateRegex.exec(object)%3Bvar%20value%3Bif(match)%7Bvalue%3Dnew%20Date(Number(match%5B1%5D)).valueOf()%7Delse%7Bvalue%3Dnew%20Date(object).valueOf()%7Dreturn%5C%5C%5C%22%2FDate(%5C%5C%5C%22%2Bvalue%2B%5C%5C%5C%22)%2F%5C%5C%5C%22%7Delse%7Bthrow%20new%20Error(%5C%5C%5C%22Cannot%20convert%20object%20of%20type%20%5C%5C%5C%22%2Bexports.getType(object)%2B%5C%5C%5C%22%20to%20type%20ASPDate%5C%5C%5C%22)%7Ddefault%3Athrow%20new%20Error('Unknown%20type%20%5C%5C%5C%22'%2Btype%2B'%5C%5C%5C%22')%7D%7D%3Bvar%20ASPDateRegex%3D%2F%5E%5C%5C%5C%5C%2F%3FDate%5C%5C%5C%5C((%5C%5C%5C%5C-%3F%5C%5C%5C%5Cd%2B)%2Fi%3Bexports.getType%3Dfunction(object)%7Bvar%20type%3Dtypeof%20object%3D%3D%3D%5C%5C%5C%22undefined%5C%5C%5C%22%3F%5C%5C%5C%22undefined%5C%5C%5C%22%3A(0%2C_typeof3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(object)%3Bif(type%3D%3D%5C%5C%5C%22object%5C%5C%5C%22)%7Bif(object%3D%3D%3Dnull)%7Breturn%5C%5C%5C%22null%5C%5C%5C%22%7Dif(object%20instanceof%20Boolean)%7Breturn%5C%5C%5C%22Boolean%5C%5C%5C%22%7Dif(object%20instanceof%20Number)%7Breturn%5C%5C%5C%22Number%5C%5C%5C%22%7Dif(object%20instanceof%20String)%7Breturn%5C%5C%5C%22String%5C%5C%5C%22%7Dif(Array.isArray(object))%7Breturn%5C%5C%5C%22Array%5C%5C%5C%22%7Dif(object%20instanceof%20Date)%7Breturn%5C%5C%5C%22Date%5C%5C%5C%22%7Dreturn%5C%5C%5C%22Object%5C%5C%5C%22%7Delse%20if(type%3D%3D%5C%5C%5C%22number%5C%5C%5C%22)%7Breturn%5C%5C%5C%22Number%5C%5C%5C%22%7Delse%20if(type%3D%3D%5C%5C%5C%22boolean%5C%5C%5C%22)%7Breturn%5C%5C%5C%22Boolean%5C%5C%5C%22%7Delse%20if(type%3D%3D%5C%5C%5C%22string%5C%5C%5C%22)%7Breturn%5C%5C%5C%22String%5C%5C%5C%22%7Delse%20if(type%3D%3D%3Dundefined)%7Breturn%5C%5C%5C%22undefined%5C%5C%5C%22%7Dreturn%20type%7D%3Bexports.copyAndExtendArray%3Dfunction(arr%2CnewValue)%7Bvar%20newArr%3D%5B%5D%3Bfor(var%20i%3D0%3Bi%3Carr.length%3Bi%2B%2B)%7BnewArr.push(arr%5Bi%5D)%7DnewArr.push(newValue)%3Breturn%20newArr%7D%3Bexports.copyArray%3Dfunction(arr)%7Bvar%20newArr%3D%5B%5D%3Bfor(var%20i%3D0%3Bi%3Carr.length%3Bi%2B%2B)%7BnewArr.push(arr%5Bi%5D)%7Dreturn%20newArr%7D%3Bexports.getAbsoluteLeft%3Dfunction(elem)%7Breturn%20elem.getBoundingClientRect().left%7D%3Bexports.getAbsoluteRight%3Dfunction(elem)%7Breturn%20elem.getBoundingClientRect().right%7D%3Bexports.getAbsoluteTop%3Dfunction(elem)%7Breturn%20elem.getBoundingClientRect().top%7D%3Bexports.addClassName%3Dfunction(elem%2CclassNames)%7Bvar%20classes%3Delem.className.split(%5C%5C%5C%22%20%5C%5C%5C%22)%3Bvar%20newClasses%3DclassNames.split(%5C%5C%5C%22%20%5C%5C%5C%22)%3Bclasses%3Dclasses.concat(newClasses.filter(function(className)%7Breturn%20classes.indexOf(className)%3C0%7D))%3Belem.className%3Dclasses.join(%5C%5C%5C%22%20%5C%5C%5C%22)%7D%3Bexports.removeClassName%3Dfunction(elem%2CclassNames)%7Bvar%20classes%3Delem.className.split(%5C%5C%5C%22%20%5C%5C%5C%22)%3Bvar%20oldClasses%3DclassNames.split(%5C%5C%5C%22%20%5C%5C%5C%22)%3Bclasses%3Dclasses.filter(function(className)%7Breturn%20oldClasses.indexOf(className)%3C0%7D)%3Belem.className%3Dclasses.join(%5C%5C%5C%22%20%5C%5C%5C%22)%7D%3Bexports.forEach%3Dfunction(object%2Ccallback)%7Bvar%20i%2Clen%3Bif(Array.isArray(object))%7Bfor(i%3D0%2Clen%3Dobject.length%3Bi%3Clen%3Bi%2B%2B)%7Bcallback(object%5Bi%5D%2Ci%2Cobject)%7D%7Delse%7Bfor(i%20in%20object)%7Bif(object.hasOwnProperty(i))%7Bcallback(object%5Bi%5D%2Ci%2Cobject)%7D%7D%7D%7D%3Bexports.toArray%3Dfunction(object)%7Bvar%20array%3D%5B%5D%3Bfor(var%20prop%20in%20object)%7Bif(object.hasOwnProperty(prop))array.push(object%5Bprop%5D)%7Dreturn%20array%7D%3Bexports.updateProperty%3Dfunction(object%2Ckey%2Cvalue)%7Bif(object%5Bkey%5D!%3D%3Dvalue)%7Bobject%5Bkey%5D%3Dvalue%3Breturn%20true%7Delse%7Breturn%20false%7D%7D%3Bexports.throttle%3Dfunction(fn)%7Bvar%20scheduled%3Dfalse%3Breturn%20function%20throttled()%7Bif(!scheduled)%7Bscheduled%3Dtrue%3BrequestAnimationFrame(function()%7Bscheduled%3Dfalse%3Bfn()%7D)%7D%7D%7D%3Bexports.addEventListener%3Dfunction(element%2Caction%2Clistener%2CuseCapture)%7Bif(element.addEventListener)%7Bif(useCapture%3D%3D%3Dundefined)useCapture%3Dfalse%3Bif(action%3D%3D%3D%5C%5C%5C%22mousewheel%5C%5C%5C%22%26%26navigator.userAgent.indexOf(%5C%5C%5C%22Firefox%5C%5C%5C%22)%3E%3D0)%7Baction%3D%5C%5C%5C%22DOMMouseScroll%5C%5C%5C%22%7Delement.addEventListener(action%2Clistener%2CuseCapture)%7Delse%7Belement.attachEvent(%5C%5C%5C%22on%5C%5C%5C%22%2Baction%2Clistener)%7D%7D%3Bexports.removeEventListener%3Dfunction(element%2Caction%2Clistener%2CuseCapture)%7Bif(element.removeEventListener)%7Bif(useCapture%3D%3D%3Dundefined)useCapture%3Dfalse%3Bif(action%3D%3D%3D%5C%5C%5C%22mousewheel%5C%5C%5C%22%26%26navigator.userAgent.indexOf(%5C%5C%5C%22Firefox%5C%5C%5C%22)%3E%3D0)%7Baction%3D%5C%5C%5C%22DOMMouseScroll%5C%5C%5C%22%7Delement.removeEventListener(action%2Clistener%2CuseCapture)%7Delse%7Belement.detachEvent(%5C%5C%5C%22on%5C%5C%5C%22%2Baction%2Clistener)%7D%7D%3Bexports.preventDefault%3Dfunction(event)%7Bif(!event)event%3Dwindow.event%3Bif(event.preventDefault)%7Bevent.preventDefault()%7Delse%7Bevent.returnValue%3Dfalse%7D%7D%3Bexports.getTarget%3Dfunction(event)%7Bif(!event)%7Bevent%3Dwindow.event%7Dvar%20target%3Bif(event.target)%7Btarget%3Devent.target%7Delse%20if(event.srcElement)%7Btarget%3Devent.srcElement%7Dif(target.nodeType!%3Dundefined%26%26target.nodeType%3D%3D3)%7Btarget%3Dtarget.parentNode%7Dreturn%20target%7D%3Bexports.hasParent%3Dfunction(element%2Cparent)%7Bvar%20e%3Delement%3Bwhile(e)%7Bif(e%3D%3D%3Dparent)%7Breturn%20true%7De%3De.parentNode%7Dreturn%20false%7D%3Bexports.option%3D%7B%7D%3Bexports.option.asBoolean%3Dfunction(value%2CdefaultValue)%7Bif(typeof%20value%3D%3D%5C%5C%5C%22function%5C%5C%5C%22)%7Bvalue%3Dvalue()%7Dif(value!%3Dnull)%7Breturn%20value!%3Dfalse%7Dreturn%20defaultValue%7C%7Cnull%7D%3Bexports.option.asNumber%3Dfunction(value%2CdefaultValue)%7Bif(typeof%20value%3D%3D%5C%5C%5C%22function%5C%5C%5C%22)%7Bvalue%3Dvalue()%7Dif(value!%3Dnull)%7Breturn%20Number(value)%7C%7CdefaultValue%7C%7Cnull%7Dreturn%20defaultValue%7C%7Cnull%7D%3Bexports.option.asString%3Dfunction(value%2CdefaultValue)%7Bif(typeof%20value%3D%3D%5C%5C%5C%22function%5C%5C%5C%22)%7Bvalue%3Dvalue()%7Dif(value!%3Dnull)%7Breturn%20String(value)%7Dreturn%20defaultValue%7C%7Cnull%7D%3Bexports.option.asSize%3Dfunction(value%2CdefaultValue)%7Bif(typeof%20value%3D%3D%5C%5C%5C%22function%5C%5C%5C%22)%7Bvalue%3Dvalue()%7Dif(exports.isString(value))%7Breturn%20value%7Delse%20if(exports.isNumber(value))%7Breturn%20value%2B%5C%5C%5C%22px%5C%5C%5C%22%7Delse%7Breturn%20defaultValue%7C%7Cnull%7D%7D%3Bexports.option.asElement%3Dfunction(value%2CdefaultValue)%7Bif(typeof%20value%3D%3D%5C%5C%5C%22function%5C%5C%5C%22)%7Bvalue%3Dvalue()%7Dreturn%20value%7C%7CdefaultValue%7C%7Cnull%7D%3Bexports.hexToRGB%3Dfunction(hex)%7Bvar%20shorthandRegex%3D%2F%5E%23%3F(%5Ba-f%5C%5C%5C%5Cd%5D)(%5Ba-f%5C%5C%5C%5Cd%5D)(%5Ba-f%5C%5C%5C%5Cd%5D)%24%2Fi%3Bhex%3Dhex.replace(shorthandRegex%2Cfunction(m%2Cr%2Cg%2Cb)%7Breturn%20r%2Br%2Bg%2Bg%2Bb%2Bb%7D)%3Bvar%20result%3D%2F%5E%23%3F(%5Ba-f%5C%5C%5C%5Cd%5D%7B2%7D)(%5Ba-f%5C%5C%5C%5Cd%5D%7B2%7D)(%5Ba-f%5C%5C%5C%5Cd%5D%7B2%7D)%24%2Fi.exec(hex)%3Breturn%20result%3F%7Br%3AparseInt(result%5B1%5D%2C16)%2Cg%3AparseInt(result%5B2%5D%2C16)%2Cb%3AparseInt(result%5B3%5D%2C16)%7D%3Anull%7D%3Bexports.overrideOpacity%3Dfunction(color%2Copacity)%7Bvar%20rgb%3Bif(color.indexOf(%5C%5C%5C%22rgba%5C%5C%5C%22)!%3D-1)%7Breturn%20color%7Delse%20if(color.indexOf(%5C%5C%5C%22rgb%5C%5C%5C%22)!%3D-1)%7Brgb%3Dcolor.substr(color.indexOf(%5C%5C%5C%22(%5C%5C%5C%22)%2B1).replace(%5C%5C%5C%22)%5C%5C%5C%22%2C%5C%5C%5C%22%5C%5C%5C%22).split(%5C%5C%5C%22%2C%5C%5C%5C%22)%3Breturn%5C%5C%5C%22rgba(%5C%5C%5C%22%2Brgb%5B0%5D%2B%5C%5C%5C%22%2C%5C%5C%5C%22%2Brgb%5B1%5D%2B%5C%5C%5C%22%2C%5C%5C%5C%22%2Brgb%5B2%5D%2B%5C%5C%5C%22%2C%5C%5C%5C%22%2Bopacity%2B%5C%5C%5C%22)%5C%5C%5C%22%7Delse%7Brgb%3Dexports.hexToRGB(color)%3Bif(rgb%3D%3Dnull)%7Breturn%20color%7Delse%7Breturn%5C%5C%5C%22rgba(%5C%5C%5C%22%2Brgb.r%2B%5C%5C%5C%22%2C%5C%5C%5C%22%2Brgb.g%2B%5C%5C%5C%22%2C%5C%5C%5C%22%2Brgb.b%2B%5C%5C%5C%22%2C%5C%5C%5C%22%2Bopacity%2B%5C%5C%5C%22)%5C%5C%5C%22%7D%7D%7D%3Bexports.RGBToHex%3Dfunction(red%2Cgreen%2Cblue)%7Breturn%5C%5C%5C%22%23%5C%5C%5C%22%2B((1%3C%3C24)%2B(red%3C%3C16)%2B(green%3C%3C8)%2Bblue).toString(16).slice(1)%7D%3Bexports.parseColor%3Dfunction(color)%7Bvar%20c%3Bif(exports.isString(color)%3D%3D%3Dtrue)%7Bif(exports.isValidRGB(color)%3D%3D%3Dtrue)%7Bvar%20rgb%3Dcolor.substr(4).substr(0%2Ccolor.length-5).split(%5C%5C%5C%22%2C%5C%5C%5C%22).map(function(value)%7Breturn%20parseInt(value)%7D)%3Bcolor%3Dexports.RGBToHex(rgb%5B0%5D%2Crgb%5B1%5D%2Crgb%5B2%5D)%7Dif(exports.isValidHex(color)%3D%3D%3Dtrue)%7Bvar%20hsv%3Dexports.hexToHSV(color)%3Bvar%20lighterColorHSV%3D%7Bh%3Ahsv.h%2Cs%3Ahsv.s*.8%2Cv%3AMath.min(1%2Chsv.v*1.02)%7D%3Bvar%20darkerColorHSV%3D%7Bh%3Ahsv.h%2Cs%3AMath.min(1%2Chsv.s*1.25)%2Cv%3Ahsv.v*.8%7D%3Bvar%20darkerColorHex%3Dexports.HSVToHex(darkerColorHSV.h%2CdarkerColorHSV.s%2CdarkerColorHSV.v)%3Bvar%20lighterColorHex%3Dexports.HSVToHex(lighterColorHSV.h%2ClighterColorHSV.s%2ClighterColorHSV.v)%3Bc%3D%7Bbackground%3Acolor%2Cborder%3AdarkerColorHex%2Chighlight%3A%7Bbackground%3AlighterColorHex%2Cborder%3AdarkerColorHex%7D%2Chover%3A%7Bbackground%3AlighterColorHex%2Cborder%3AdarkerColorHex%7D%7D%7Delse%7Bc%3D%7Bbackground%3Acolor%2Cborder%3Acolor%2Chighlight%3A%7Bbackground%3Acolor%2Cborder%3Acolor%7D%2Chover%3A%7Bbackground%3Acolor%2Cborder%3Acolor%7D%7D%7D%7Delse%7Bc%3D%7B%7D%3Bc.background%3Dcolor.background%7C%7Cundefined%3Bc.border%3Dcolor.border%7C%7Cundefined%3Bif(exports.isString(color.highlight))%7Bc.highlight%3D%7Bborder%3Acolor.highlight%2Cbackground%3Acolor.highlight%7D%7Delse%7Bc.highlight%3D%7B%7D%3Bc.highlight.background%3Dcolor.highlight%26%26color.highlight.background%7C%7Cundefined%3Bc.highlight.border%3Dcolor.highlight%26%26color.highlight.border%7C%7Cundefined%7Dif(exports.isString(color.hover))%7Bc.hover%3D%7Bborder%3Acolor.hover%2Cbackground%3Acolor.hover%7D%7Delse%7Bc.hover%3D%7B%7D%3Bc.hover.background%3Dcolor.hover%26%26color.hover.background%7C%7Cundefined%3Bc.hover.border%3Dcolor.hover%26%26color.hover.border%7C%7Cundefined%7D%7Dreturn%20c%7D%3Bexports.RGBToHSV%3Dfunction(red%2Cgreen%2Cblue)%7Bred%3Dred%2F255%3Bgreen%3Dgreen%2F255%3Bblue%3Dblue%2F255%3Bvar%20minRGB%3DMath.min(red%2CMath.min(green%2Cblue))%3Bvar%20maxRGB%3DMath.max(red%2CMath.max(green%2Cblue))%3Bif(minRGB%3D%3DmaxRGB)%7Breturn%7Bh%3A0%2Cs%3A0%2Cv%3AminRGB%7D%7Dvar%20d%3Dred%3D%3DminRGB%3Fgreen-blue%3Ablue%3D%3DminRGB%3Fred-green%3Ablue-red%3Bvar%20h%3Dred%3D%3DminRGB%3F3%3Ablue%3D%3DminRGB%3F1%3A5%3Bvar%20hue%3D60*(h-d%2F(maxRGB-minRGB))%2F360%3Bvar%20saturation%3D(maxRGB-minRGB)%2FmaxRGB%3Bvar%20value%3DmaxRGB%3Breturn%7Bh%3Ahue%2Cs%3Asaturation%2Cv%3Avalue%7D%7D%3Bvar%20cssUtil%3D%7Bsplit%3Afunction%20split(cssText)%7Bvar%20styles%3D%7B%7D%3BcssText.split(%5C%5C%5C%22%3B%5C%5C%5C%22).forEach(function(style)%7Bif(style.trim()!%3D%5C%5C%5C%22%5C%5C%5C%22)%7Bvar%20parts%3Dstyle.split(%5C%5C%5C%22%3A%5C%5C%5C%22)%3Bvar%20key%3Dparts%5B0%5D.trim()%3Bvar%20value%3Dparts%5B1%5D.trim()%3Bstyles%5Bkey%5D%3Dvalue%7D%7D)%3Breturn%20styles%7D%2Cjoin%3Afunction%20join(styles)%7Breturn(0%2C_keys2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(styles).map(function(key)%7Breturn%20key%2B%5C%5C%5C%22%3A%20%5C%5C%5C%22%2Bstyles%5Bkey%5D%7D).join(%5C%5C%5C%22%3B%20%5C%5C%5C%22)%7D%7D%3Bexports.addCssText%3Dfunction(element%2CcssText)%7Bvar%20currentStyles%3DcssUtil.split(element.style.cssText)%3Bvar%20newStyles%3DcssUtil.split(cssText)%3Bvar%20styles%3Dexports.extend(currentStyles%2CnewStyles)%3Belement.style.cssText%3DcssUtil.join(styles)%7D%3Bexports.removeCssText%3Dfunction(element%2CcssText)%7Bvar%20styles%3DcssUtil.split(element.style.cssText)%3Bvar%20removeStyles%3DcssUtil.split(cssText)%3Bfor(var%20key%20in%20removeStyles)%7Bif(removeStyles.hasOwnProperty(key))%7Bdelete%20styles%5Bkey%5D%7D%7Delement.style.cssText%3DcssUtil.join(styles)%7D%3Bexports.HSVToRGB%3Dfunction(h%2Cs%2Cv)%7Bvar%20r%2Cg%2Cb%3Bvar%20i%3DMath.floor(h*6)%3Bvar%20f%3Dh*6-i%3Bvar%20p%3Dv*(1-s)%3Bvar%20q%3Dv*(1-f*s)%3Bvar%20t%3Dv*(1-(1-f)*s)%3Bswitch(i%256)%7Bcase%200%3Ar%3Dv%2Cg%3Dt%2Cb%3Dp%3Bbreak%3Bcase%201%3Ar%3Dq%2Cg%3Dv%2Cb%3Dp%3Bbreak%3Bcase%202%3Ar%3Dp%2Cg%3Dv%2Cb%3Dt%3Bbreak%3Bcase%203%3Ar%3Dp%2Cg%3Dq%2Cb%3Dv%3Bbreak%3Bcase%204%3Ar%3Dt%2Cg%3Dp%2Cb%3Dv%3Bbreak%3Bcase%205%3Ar%3Dv%2Cg%3Dp%2Cb%3Dq%3Bbreak%7Dreturn%7Br%3AMath.floor(r*255)%2Cg%3AMath.floor(g*255)%2Cb%3AMath.floor(b*255)%7D%7D%3Bexports.HSVToHex%3Dfunction(h%2Cs%2Cv)%7Bvar%20rgb%3Dexports.HSVToRGB(h%2Cs%2Cv)%3Breturn%20exports.RGBToHex(rgb.r%2Crgb.g%2Crgb.b)%7D%3Bexports.hexToHSV%3Dfunction(hex)%7Bvar%20rgb%3Dexports.hexToRGB(hex)%3Breturn%20exports.RGBToHSV(rgb.r%2Crgb.g%2Crgb.b)%7D%3Bexports.isValidHex%3Dfunction(hex)%7Bvar%20isOk%3D%2F(%5E%23%5B0-9A-F%5D%7B6%7D%24)%7C(%5E%23%5B0-9A-F%5D%7B3%7D%24)%2Fi.test(hex)%3Breturn%20isOk%7D%3Bexports.isValidRGB%3Dfunction(rgb)%7Brgb%3Drgb.replace(%5C%5C%5C%22%20%5C%5C%5C%22%2C%5C%5C%5C%22%5C%5C%5C%22)%3Bvar%20isOk%3D%2Frgb%5C%5C%5C%5C((%5C%5C%5C%5Cd%7B1%2C3%7D)%2C(%5C%5C%5C%5Cd%7B1%2C3%7D)%2C(%5C%5C%5C%5Cd%7B1%2C3%7D)%5C%5C%5C%5C)%2Fi.test(rgb)%3Breturn%20isOk%7D%3Bexports.isValidRGBA%3Dfunction(rgba)%7Brgba%3Drgba.replace(%5C%5C%5C%22%20%5C%5C%5C%22%2C%5C%5C%5C%22%5C%5C%5C%22)%3Bvar%20isOk%3D%2Frgba%5C%5C%5C%5C((%5C%5C%5C%5Cd%7B1%2C3%7D)%2C(%5C%5C%5C%5Cd%7B1%2C3%7D)%2C(%5C%5C%5C%5Cd%7B1%2C3%7D)%2C(.%7B1%2C3%7D)%5C%5C%5C%5C)%2Fi.test(rgba)%3Breturn%20isOk%7D%3Bexports.selectiveBridgeObject%3Dfunction(fields%2CreferenceObject)%7Bif(referenceObject!%3D%3Dnull%26%26(typeof%20referenceObject%3D%3D%3D%5C%5C%5C%22undefined%5C%5C%5C%22%3F%5C%5C%5C%22undefined%5C%5C%5C%22%3A(0%2C_typeof3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(referenceObject))%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22)%7Bvar%20objectTo%3D(0%2C_create2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(referenceObject)%3Bfor(var%20i%3D0%3Bi%3Cfields.length%3Bi%2B%2B)%7Bif(referenceObject.hasOwnProperty(fields%5Bi%5D))%7Bif((0%2C_typeof3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(referenceObject%5Bfields%5Bi%5D%5D)%3D%3D%5C%5C%5C%22object%5C%5C%5C%22)%7BobjectTo%5Bfields%5Bi%5D%5D%3Dexports.bridgeObject(referenceObject%5Bfields%5Bi%5D%5D)%7D%7D%7Dreturn%20objectTo%7Delse%7Breturn%20null%7D%7D%3Bexports.bridgeObject%3Dfunction(referenceObject)%7Bif(referenceObject!%3D%3Dnull%26%26(typeof%20referenceObject%3D%3D%3D%5C%5C%5C%22undefined%5C%5C%5C%22%3F%5C%5C%5C%22undefined%5C%5C%5C%22%3A(0%2C_typeof3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(referenceObject))%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22)%7Bvar%20objectTo%3D(0%2C_create2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(referenceObject)%3Bif(referenceObject%20instanceof%20Element)%7BobjectTo%3DreferenceObject%7Delse%7BobjectTo%3D(0%2C_create2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(referenceObject)%3Bfor(var%20i%20in%20referenceObject)%7Bif(referenceObject.hasOwnProperty(i))%7Bif((0%2C_typeof3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(referenceObject%5Bi%5D)%3D%3D%5C%5C%5C%22object%5C%5C%5C%22)%7BobjectTo%5Bi%5D%3Dexports.bridgeObject(referenceObject%5Bi%5D)%7D%7D%7D%7Dreturn%20objectTo%7Delse%7Breturn%20null%7D%7D%3Bexports.insertSort%3Dfunction(a%2Ccompare)%7Bfor(var%20i%3D0%3Bi%3Ca.length%3Bi%2B%2B)%7Bvar%20k%3Da%5Bi%5D%3Bfor(var%20j%3Di%3Bj%3E0%26%26compare(k%2Ca%5Bj-1%5D)%3C0%3Bj--)%7Ba%5Bj%5D%3Da%5Bj-1%5D%7Da%5Bj%5D%3Dk%7Dreturn%20a%7D%3Bexports.mergeOptions%3Dfunction(mergeTarget%2Coptions%2Coption)%7Bvar%20globalOptions%3Darguments.length%3E3%26%26arguments%5B3%5D!%3D%3Dundefined%3Farguments%5B3%5D%3A%7B%7D%3Bvar%20isPresent%3Dfunction%20isPresent(obj)%7Breturn%20obj!%3D%3Dnull%26%26obj!%3D%3Dundefined%7D%3Bvar%20isObject%3Dfunction%20isObject(obj)%7Breturn%20obj!%3D%3Dnull%26%26(typeof%20obj%3D%3D%3D%5C%5C%5C%22undefined%5C%5C%5C%22%3F%5C%5C%5C%22undefined%5C%5C%5C%22%3A(0%2C_typeof3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(obj))%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22%7D%3Bvar%20isEmpty%3Dfunction%20isEmpty(obj)%7Bfor(var%20x%20in%20obj)%7Bif(obj.hasOwnProperty(x))return%20false%7Dreturn%20true%7D%3Bif(!isObject(mergeTarget))%7Bthrow%20new%20Error(%5C%5C%5C%22Parameter%20mergeTarget%20must%20be%20an%20object%5C%5C%5C%22)%7Dif(!isObject(options))%7Bthrow%20new%20Error(%5C%5C%5C%22Parameter%20options%20must%20be%20an%20object%5C%5C%5C%22)%7Dif(!isPresent(option))%7Bthrow%20new%20Error(%5C%5C%5C%22Parameter%20option%20must%20have%20a%20value%5C%5C%5C%22)%7Dif(!isObject(globalOptions))%7Bthrow%20new%20Error(%5C%5C%5C%22Parameter%20globalOptions%20must%20be%20an%20object%5C%5C%5C%22)%7Dvar%20doMerge%3Dfunction%20doMerge(target%2Coptions%2Coption)%7Bif(!isObject(target%5Boption%5D))%7Btarget%5Boption%5D%3D%7B%7D%7Dvar%20src%3Doptions%5Boption%5D%3Bvar%20dst%3Dtarget%5Boption%5D%3Bfor(var%20prop%20in%20src)%7Bif(src.hasOwnProperty(prop))%7Bdst%5Bprop%5D%3Dsrc%5Bprop%5D%7D%7D%7D%3Bvar%20srcOption%3Doptions%5Boption%5D%3Bvar%20globalPassed%3DisObject(globalOptions)%26%26!isEmpty(globalOptions)%3Bvar%20globalOption%3DglobalPassed%3FglobalOptions%5Boption%5D%3Aundefined%3Bvar%20globalEnabled%3DglobalOption%3FglobalOption.enabled%3Aundefined%3Bif(srcOption%3D%3D%3Dundefined)%7Breturn%7Dif(typeof%20srcOption%3D%3D%3D%5C%5C%5C%22boolean%5C%5C%5C%22)%7Bif(!isObject(mergeTarget%5Boption%5D))%7BmergeTarget%5Boption%5D%3D%7B%7D%7DmergeTarget%5Boption%5D.enabled%3DsrcOption%3Breturn%7Dif(srcOption%3D%3D%3Dnull%26%26!isObject(mergeTarget%5Boption%5D))%7Bif(isPresent(globalOption))%7BmergeTarget%5Boption%5D%3D(0%2C_create2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(globalOption)%7Delse%7Breturn%7D%7Dif(!isObject(srcOption))%7Breturn%7Dvar%20enabled%3Dtrue%3Bif(srcOption.enabled!%3D%3Dundefined)%7Benabled%3DsrcOption.enabled%7Delse%7Bif(globalEnabled!%3D%3Dundefined)%7Benabled%3DglobalOption.enabled%7D%7DdoMerge(mergeTarget%2Coptions%2Coption)%3BmergeTarget%5Boption%5D.enabled%3Denabled%7D%3Bexports.binarySearchCustom%3Dfunction(orderedItems%2Ccomparator%2Cfield%2Cfield2)%7Bvar%20maxIterations%3D1e4%3Bvar%20iteration%3D0%3Bvar%20low%3D0%3Bvar%20high%3DorderedItems.length-1%3Bwhile(low%3C%3Dhigh%26%26iteration%3CmaxIterations)%7Bvar%20middle%3DMath.floor((low%2Bhigh)%2F2)%3Bvar%20item%3DorderedItems%5Bmiddle%5D%3Bvar%20value%3Dfield2%3D%3D%3Dundefined%3Fitem%5Bfield%5D%3Aitem%5Bfield%5D%5Bfield2%5D%3Bvar%20searchResult%3Dcomparator(value)%3Bif(searchResult%3D%3D0)%7Breturn%20middle%7Delse%20if(searchResult%3D%3D-1)%7Blow%3Dmiddle%2B1%7Delse%7Bhigh%3Dmiddle-1%7Diteration%2B%2B%7Dreturn-1%7D%3Bexports.binarySearchValue%3Dfunction(orderedItems%2Ctarget%2Cfield%2CsidePreference%2Ccomparator)%7Bvar%20maxIterations%3D1e4%3Bvar%20iteration%3D0%3Bvar%20low%3D0%3Bvar%20high%3DorderedItems.length-1%3Bvar%20prevValue%2Cvalue%2CnextValue%2Cmiddle%3Bcomparator%3Dcomparator!%3Dundefined%3Fcomparator%3Afunction(a%2Cb)%7Breturn%20a%3D%3Db%3F0%3Aa%3Cb%3F-1%3A1%7D%3Bwhile(low%3C%3Dhigh%26%26iteration%3CmaxIterations)%7Bmiddle%3DMath.floor(.5*(high%2Blow))%3BprevValue%3DorderedItems%5BMath.max(0%2Cmiddle-1)%5D%5Bfield%5D%3Bvalue%3DorderedItems%5Bmiddle%5D%5Bfield%5D%3BnextValue%3DorderedItems%5BMath.min(orderedItems.length-1%2Cmiddle%2B1)%5D%5Bfield%5D%3Bif(comparator(value%2Ctarget)%3D%3D0)%7Breturn%20middle%7Delse%20if(comparator(prevValue%2Ctarget)%3C0%26%26comparator(value%2Ctarget)%3E0)%7Breturn%20sidePreference%3D%3D%5C%5C%5C%22before%5C%5C%5C%22%3FMath.max(0%2Cmiddle-1)%3Amiddle%7Delse%20if(comparator(value%2Ctarget)%3C0%26%26comparator(nextValue%2Ctarget)%3E0)%7Breturn%20sidePreference%3D%3D%5C%5C%5C%22before%5C%5C%5C%22%3Fmiddle%3AMath.min(orderedItems.length-1%2Cmiddle%2B1)%7Delse%7Bif(comparator(value%2Ctarget)%3C0)%7Blow%3Dmiddle%2B1%7Delse%7Bhigh%3Dmiddle-1%7D%7Diteration%2B%2B%7Dreturn-1%7D%3Bexports.easingFunctions%3D%7Blinear%3Afunction%20linear(t)%7Breturn%20t%7D%2CeaseInQuad%3Afunction%20easeInQuad(t)%7Breturn%20t*t%7D%2CeaseOutQuad%3Afunction%20easeOutQuad(t)%7Breturn%20t*(2-t)%7D%2CeaseInOutQuad%3Afunction%20easeInOutQuad(t)%7Breturn%20t%3C.5%3F2*t*t%3A-1%2B(4-2*t)*t%7D%2CeaseInCubic%3Afunction%20easeInCubic(t)%7Breturn%20t*t*t%7D%2CeaseOutCubic%3Afunction%20easeOutCubic(t)%7Breturn--t*t*t%2B1%7D%2CeaseInOutCubic%3Afunction%20easeInOutCubic(t)%7Breturn%20t%3C.5%3F4*t*t*t%3A(t-1)*(2*t-2)*(2*t-2)%2B1%7D%2CeaseInQuart%3Afunction%20easeInQuart(t)%7Breturn%20t*t*t*t%7D%2CeaseOutQuart%3Afunction%20easeOutQuart(t)%7Breturn%201-%20--t*t*t*t%7D%2CeaseInOutQuart%3Afunction%20easeInOutQuart(t)%7Breturn%20t%3C.5%3F8*t*t*t*t%3A1-8*--t*t*t*t%7D%2CeaseInQuint%3Afunction%20easeInQuint(t)%7Breturn%20t*t*t*t*t%7D%2CeaseOutQuint%3Afunction%20easeOutQuint(t)%7Breturn%201%2B--t*t*t*t*t%7D%2CeaseInOutQuint%3Afunction%20easeInOutQuint(t)%7Breturn%20t%3C.5%3F16*t*t*t*t*t%3A1%2B16*--t*t*t*t*t%7D%7D%3Bexports.getScrollBarWidth%3Dfunction()%7Bvar%20inner%3Ddocument.createElement(%5C%5C%5C%22p%5C%5C%5C%22)%3Binner.style.width%3D%5C%5C%5C%22100%25%5C%5C%5C%22%3Binner.style.height%3D%5C%5C%5C%22200px%5C%5C%5C%22%3Bvar%20outer%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bouter.style.position%3D%5C%5C%5C%22absolute%5C%5C%5C%22%3Bouter.style.top%3D%5C%5C%5C%220px%5C%5C%5C%22%3Bouter.style.left%3D%5C%5C%5C%220px%5C%5C%5C%22%3Bouter.style.visibility%3D%5C%5C%5C%22hidden%5C%5C%5C%22%3Bouter.style.width%3D%5C%5C%5C%22200px%5C%5C%5C%22%3Bouter.style.height%3D%5C%5C%5C%22150px%5C%5C%5C%22%3Bouter.style.overflow%3D%5C%5C%5C%22hidden%5C%5C%5C%22%3Bouter.appendChild(inner)%3Bdocument.body.appendChild(outer)%3Bvar%20w1%3Dinner.offsetWidth%3Bouter.style.overflow%3D%5C%5C%5C%22scroll%5C%5C%5C%22%3Bvar%20w2%3Dinner.offsetWidth%3Bif(w1%3D%3Dw2)w2%3Douter.clientWidth%3Bdocument.body.removeChild(outer)%3Breturn%20w1-w2%7D%3Bexports.topMost%3Dfunction(pile%2Caccessors)%7Bvar%20candidate%3Dvoid%200%3Bif(!Array.isArray(accessors))%7Baccessors%3D%5Baccessors%5D%7Dvar%20_iteratorNormalCompletion%3Dtrue%3Bvar%20_didIteratorError%3Dfalse%3Bvar%20_iteratorError%3Dundefined%3Btry%7Bfor(var%20_iterator%3D(0%2C_getIterator3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(pile)%2C_step%3B!(_iteratorNormalCompletion%3D(_step%3D_iterator.next()).done)%3B_iteratorNormalCompletion%3Dtrue)%7Bvar%20member%3D_step.value%3Bif(member)%7Bcandidate%3Dmember%5Baccessors%5B0%5D%5D%3Bfor(var%20i%3D1%3Bi%3Caccessors.length%3Bi%2B%2B)%7Bif(candidate)%7Bcandidate%3Dcandidate%5Baccessors%5Bi%5D%5D%7Delse%7Bcontinue%7D%7Dif(typeof%20candidate!%3D%5C%5C%5C%22undefined%5C%5C%5C%22)%7Bbreak%7D%7D%7D%7Dcatch(err)%7B_didIteratorError%3Dtrue%3B_iteratorError%3Derr%7Dfinally%7Btry%7Bif(!_iteratorNormalCompletion%26%26_iterator%5B%5C%5C%5C%22return%5C%5C%5C%22%5D)%7B_iterator%5B%5C%5C%5C%22return%5C%5C%5C%22%5D()%7D%7Dfinally%7Bif(_didIteratorError)%7Bthrow%20_iteratorError%7D%7D%7Dreturn%20candidate%7D%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7Bmodule.exports%3D%7Bdefault%3A__webpack_require__(194)%2C__esModule%3Atrue%7D%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bexports.__esModule%3Dtrue%3Bvar%20_typeof2%3D__webpack_require__(6)%3Bvar%20_typeof3%3D_interopRequireDefault(_typeof2)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dexports.default%3Dfunction(self%2Ccall)%7Bif(!self)%7Bthrow%20new%20ReferenceError(%5C%5C%5C%22this%20hasn't%20been%20initialised%20-%20super()%20hasn't%20been%20called%5C%5C%5C%22)%7Dreturn%20call%26%26((typeof%20call%3D%3D%3D%5C%5C%5C%22undefined%5C%5C%5C%22%3F%5C%5C%5C%22undefined%5C%5C%5C%22%3A(0%2C_typeof3.default)(call))%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22%7C%7Ctypeof%20call%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22)%3Fcall%3Aself%7D%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bexports.__esModule%3Dtrue%3Bvar%20_setPrototypeOf%3D__webpack_require__(196)%3Bvar%20_setPrototypeOf2%3D_interopRequireDefault(_setPrototypeOf)%3Bvar%20_create%3D__webpack_require__(29)%3Bvar%20_create2%3D_interopRequireDefault(_create)%3Bvar%20_typeof2%3D__webpack_require__(6)%3Bvar%20_typeof3%3D_interopRequireDefault(_typeof2)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dexports.default%3Dfunction(subClass%2CsuperClass)%7Bif(typeof%20superClass!%3D%3D%5C%5C%5C%22function%5C%5C%5C%22%26%26superClass!%3D%3Dnull)%7Bthrow%20new%20TypeError(%5C%5C%5C%22Super%20expression%20must%20either%20be%20null%20or%20a%20function%2C%20not%20%5C%5C%5C%22%2B(typeof%20superClass%3D%3D%3D%5C%5C%5C%22undefined%5C%5C%5C%22%3F%5C%5C%5C%22undefined%5C%5C%5C%22%3A(0%2C_typeof3.default)(superClass)))%7DsubClass.prototype%3D(0%2C_create2.default)(superClass%26%26superClass.prototype%2C%7Bconstructor%3A%7Bvalue%3AsubClass%2Cenumerable%3Afalse%2Cwritable%3Atrue%2Cconfigurable%3Atrue%7D%7D)%3Bif(superClass)_setPrototypeOf2.default%3F(0%2C_setPrototypeOf2.default)(subClass%2CsuperClass)%3AsubClass.__proto__%3DsuperClass%7D%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bexports.__esModule%3Dtrue%3Bvar%20_iterator%3D__webpack_require__(142)%3Bvar%20_iterator2%3D_interopRequireDefault(_iterator)%3Bvar%20_symbol%3D__webpack_require__(144)%3Bvar%20_symbol2%3D_interopRequireDefault(_symbol)%3Bvar%20_typeof%3Dtypeof%20_symbol2.default%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22%26%26typeof%20_iterator2.default%3D%3D%3D%5C%5C%5C%22symbol%5C%5C%5C%22%3Ffunction(obj)%7Breturn%20typeof%20obj%7D%3Afunction(obj)%7Breturn%20obj%26%26typeof%20_symbol2.default%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22%26%26obj.constructor%3D%3D%3D_symbol2.default%26%26obj!%3D%3D_symbol2.default.prototype%3F%5C%5C%5C%22symbol%5C%5C%5C%22%3Atypeof%20obj%7D%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dexports.default%3Dtypeof%20_symbol2.default%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22%26%26_typeof(_iterator2.default)%3D%3D%3D%5C%5C%5C%22symbol%5C%5C%5C%22%3Ffunction(obj)%7Breturn%20typeof%20obj%3D%3D%3D%5C%5C%5C%22undefined%5C%5C%5C%22%3F%5C%5C%5C%22undefined%5C%5C%5C%22%3A_typeof(obj)%7D%3Afunction(obj)%7Breturn%20obj%26%26typeof%20_symbol2.default%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22%26%26obj.constructor%3D%3D%3D_symbol2.default%26%26obj!%3D%3D_symbol2.default.prototype%3F%5C%5C%5C%22symbol%5C%5C%5C%22%3Atypeof%20obj%3D%3D%3D%5C%5C%5C%22undefined%5C%5C%5C%22%3F%5C%5C%5C%22undefined%5C%5C%5C%22%3A_typeof(obj)%7D%7D%2Cfunction(module%2Cexports)%7Bvar%20core%3Dmodule.exports%3D%7Bversion%3A%5C%5C%5C%222.5.1%5C%5C%5C%22%7D%3Bif(typeof%20__e%3D%3D%5C%5C%5C%22number%5C%5C%5C%22)__e%3Dcore%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7Bmodule.exports%3D%7Bdefault%3A__webpack_require__(140)%2C__esModule%3Atrue%7D%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bmodule.exports%3Dtypeof%20window!%3D%3D%5C%5C%5C%22undefined%5C%5C%5C%22%26%26window%5B%5C%5C%5C%22moment%5C%5C%5C%22%5D%7C%7C__webpack_require__(154)%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bfunction%20hammerMock()%7Bvar%20noop%3Dfunction%20noop()%7B%7D%3Breturn%7Bon%3Anoop%2Coff%3Anoop%2Cdestroy%3Anoop%2Cemit%3Anoop%2Cget%3Afunction%20get(m)%7Breturn%7Bset%3Anoop%7D%7D%7D%7Dif(typeof%20window!%3D%3D%5C%5C%5C%22undefined%5C%5C%5C%22)%7Bvar%20propagating%3D__webpack_require__(175)%3Bvar%20Hammer%3Dwindow%5B%5C%5C%5C%22Hammer%5C%5C%5C%22%5D%7C%7C__webpack_require__(176)%3Bmodule.exports%3Dpropagating(Hammer%2C%7BpreventDefault%3A%5C%5C%5C%22mouse%5C%5C%5C%22%7D)%7Delse%7Bmodule.exports%3Dfunction()%7Breturn%20hammerMock()%7D%7D%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bvar%20_stringify%3D__webpack_require__(19)%3Bvar%20_stringify2%3D_interopRequireDefault(_stringify)%3Bvar%20_typeof2%3D__webpack_require__(6)%3Bvar%20_typeof3%3D_interopRequireDefault(_typeof2)%3Bvar%20_keys%3D__webpack_require__(8)%3Bvar%20_keys2%3D_interopRequireDefault(_keys)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20util%3D__webpack_require__(2)%3Bvar%20Queue%3D__webpack_require__(43)%3Bfunction%20DataSet(data%2Coptions)%7Bif(data%26%26!Array.isArray(data))%7Boptions%3Ddata%3Bdata%3Dnull%7Dthis._options%3Doptions%7C%7C%7B%7D%3Bthis._data%3D%7B%7D%3Bthis.length%3D0%3Bthis._fieldId%3Dthis._options.fieldId%7C%7C%5C%5C%5C%22id%5C%5C%5C%22%3Bthis._type%3D%7B%7D%3Bif(this._options.type)%7Bvar%20fields%3D(0%2C_keys2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this._options.type)%3Bfor(var%20i%3D0%2Clen%3Dfields.length%3Bi%3Clen%3Bi%2B%2B)%7Bvar%20field%3Dfields%5Bi%5D%3Bvar%20value%3Dthis._options.type%5Bfield%5D%3Bif(value%3D%3D%5C%5C%5C%22Date%5C%5C%5C%22%7C%7Cvalue%3D%3D%5C%5C%5C%22ISODate%5C%5C%5C%22%7C%7Cvalue%3D%3D%5C%5C%5C%22ASPDate%5C%5C%5C%22)%7Bthis._type%5Bfield%5D%3D%5C%5C%5C%22Date%5C%5C%5C%22%7Delse%7Bthis._type%5Bfield%5D%3Dvalue%7D%7D%7Dthis._subscribers%3D%7B%7D%3Bif(data)%7Bthis.add(data)%7Dthis.setOptions(options)%7DDataSet.prototype.setOptions%3Dfunction(options)%7Bif(options%26%26options.queue!%3D%3Dundefined)%7Bif(options.queue%3D%3D%3Dfalse)%7Bif(this._queue)%7Bthis._queue.destroy()%3Bdelete%20this._queue%7D%7Delse%7Bif(!this._queue)%7Bthis._queue%3DQueue.extend(this%2C%7Breplace%3A%5B%5C%5C%5C%22add%5C%5C%5C%22%2C%5C%5C%5C%22update%5C%5C%5C%22%2C%5C%5C%5C%22remove%5C%5C%5C%22%5D%7D)%7Dif((0%2C_typeof3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(options.queue)%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22)%7Bthis._queue.setOptions(options.queue)%7D%7D%7D%7D%3BDataSet.prototype.on%3Dfunction(event%2Ccallback)%7Bvar%20subscribers%3Dthis._subscribers%5Bevent%5D%3Bif(!subscribers)%7Bsubscribers%3D%5B%5D%3Bthis._subscribers%5Bevent%5D%3Dsubscribers%7Dsubscribers.push(%7Bcallback%3Acallback%7D)%7D%3BDataSet.prototype.off%3Dfunction(event%2Ccallback)%7Bvar%20subscribers%3Dthis._subscribers%5Bevent%5D%3Bif(subscribers)%7Bthis._subscribers%5Bevent%5D%3Dsubscribers.filter(function(listener)%7Breturn%20listener.callback!%3Dcallback%7D)%7D%7D%3BDataSet.prototype._trigger%3Dfunction(event%2Cparams%2CsenderId)%7Bif(event%3D%3D%5C%5C%5C%22*%5C%5C%5C%22)%7Bthrow%20new%20Error(%5C%5C%5C%22Cannot%20trigger%20event%20*%5C%5C%5C%22)%7Dvar%20subscribers%3D%5B%5D%3Bif(event%20in%20this._subscribers)%7Bsubscribers%3Dsubscribers.concat(this._subscribers%5Bevent%5D)%7Dif(%5C%5C%5C%22*%5C%5C%5C%22in%20this._subscribers)%7Bsubscribers%3Dsubscribers.concat(this._subscribers%5B%5C%5C%5C%22*%5C%5C%5C%22%5D)%7Dfor(var%20i%3D0%2Clen%3Dsubscribers.length%3Bi%3Clen%3Bi%2B%2B)%7Bvar%20subscriber%3Dsubscribers%5Bi%5D%3Bif(subscriber.callback)%7Bsubscriber.callback(event%2Cparams%2CsenderId%7C%7Cnull)%7D%7D%7D%3BDataSet.prototype.add%3Dfunction(data%2CsenderId)%7Bvar%20addedIds%3D%5B%5D%2Cid%2Cme%3Dthis%3Bif(Array.isArray(data))%7Bfor(var%20i%3D0%2Clen%3Ddata.length%3Bi%3Clen%3Bi%2B%2B)%7Bid%3Dme._addItem(data%5Bi%5D)%3BaddedIds.push(id)%7D%7Delse%20if(data%26%26(typeof%20data%3D%3D%3D%5C%5C%5C%22undefined%5C%5C%5C%22%3F%5C%5C%5C%22undefined%5C%5C%5C%22%3A(0%2C_typeof3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(data))%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22)%7Bid%3Dme._addItem(data)%3BaddedIds.push(id)%7Delse%7Bthrow%20new%20Error(%5C%5C%5C%22Unknown%20dataType%5C%5C%5C%22)%7Dif(addedIds.length)%7Bthis._trigger(%5C%5C%5C%22add%5C%5C%5C%22%2C%7Bitems%3AaddedIds%7D%2CsenderId)%7Dreturn%20addedIds%7D%3BDataSet.prototype.update%3Dfunction(data%2CsenderId)%7Bvar%20addedIds%3D%5B%5D%3Bvar%20updatedIds%3D%5B%5D%3Bvar%20oldData%3D%5B%5D%3Bvar%20updatedData%3D%5B%5D%3Bvar%20me%3Dthis%3Bvar%20fieldId%3Dme._fieldId%3Bvar%20addOrUpdate%3Dfunction%20addOrUpdate(item)%7Bvar%20id%3Ditem%5BfieldId%5D%3Bif(me._data%5Bid%5D)%7Bvar%20oldItem%3Dutil.extend(%7B%7D%2Cme._data%5Bid%5D)%3Bid%3Dme._updateItem(item)%3BupdatedIds.push(id)%3BupdatedData.push(item)%3BoldData.push(oldItem)%7Delse%7Bid%3Dme._addItem(item)%3BaddedIds.push(id)%7D%7D%3Bif(Array.isArray(data))%7Bfor(var%20i%3D0%2Clen%3Ddata.length%3Bi%3Clen%3Bi%2B%2B)%7Bif(data%5Bi%5D%26%26(0%2C_typeof3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(data%5Bi%5D)%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22)%7BaddOrUpdate(data%5Bi%5D)%7Delse%7Bconsole.warn(%5C%5C%5C%22Ignoring%20input%20item%2C%20which%20is%20not%20an%20object%20at%20index%20%5C%5C%5C%22%2Bi)%7D%7D%7Delse%20if(data%26%26(typeof%20data%3D%3D%3D%5C%5C%5C%22undefined%5C%5C%5C%22%3F%5C%5C%5C%22undefined%5C%5C%5C%22%3A(0%2C_typeof3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(data))%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22)%7BaddOrUpdate(data)%7Delse%7Bthrow%20new%20Error(%5C%5C%5C%22Unknown%20dataType%5C%5C%5C%22)%7Dif(addedIds.length)%7Bthis._trigger(%5C%5C%5C%22add%5C%5C%5C%22%2C%7Bitems%3AaddedIds%7D%2CsenderId)%7Dif(updatedIds.length)%7Bvar%20props%3D%7Bitems%3AupdatedIds%2ColdData%3AoldData%2Cdata%3AupdatedData%7D%3Bthis._trigger(%5C%5C%5C%22update%5C%5C%5C%22%2Cprops%2CsenderId)%7Dreturn%20addedIds.concat(updatedIds)%7D%3BDataSet.prototype.get%3Dfunction(args)%7Bvar%20me%3Dthis%3Bvar%20id%2Cids%2Coptions%3Bvar%20firstType%3Dutil.getType(arguments%5B0%5D)%3Bif(firstType%3D%3D%5C%5C%5C%22String%5C%5C%5C%22%7C%7CfirstType%3D%3D%5C%5C%5C%22Number%5C%5C%5C%22)%7Bid%3Darguments%5B0%5D%3Boptions%3Darguments%5B1%5D%7Delse%20if(firstType%3D%3D%5C%5C%5C%22Array%5C%5C%5C%22)%7B%5C%5Cnids%3Darguments%5B0%5D%3Boptions%3Darguments%5B1%5D%7Delse%7Boptions%3Darguments%5B0%5D%7Dvar%20returnType%3Bif(options%26%26options.returnType)%7Bvar%20allowedValues%3D%5B%5C%5C%5C%22Array%5C%5C%5C%22%2C%5C%5C%5C%22Object%5C%5C%5C%22%5D%3BreturnType%3DallowedValues.indexOf(options.returnType)%3D%3D-1%3F%5C%5C%5C%22Array%5C%5C%5C%22%3Aoptions.returnType%7Delse%7BreturnType%3D%5C%5C%5C%22Array%5C%5C%5C%22%7Dvar%20type%3Doptions%26%26options.type%7C%7Cthis._options.type%3Bvar%20filter%3Doptions%26%26options.filter%3Bvar%20items%3D%5B%5D%2Citem%2CitemIds%2CitemId%2Ci%2Clen%3Bif(id!%3Dundefined)%7Bitem%3Dme._getItem(id%2Ctype)%3Bif(item%26%26filter%26%26!filter(item))%7Bitem%3Dnull%7D%7Delse%20if(ids!%3Dundefined)%7Bfor(i%3D0%2Clen%3Dids.length%3Bi%3Clen%3Bi%2B%2B)%7Bitem%3Dme._getItem(ids%5Bi%5D%2Ctype)%3Bif(!filter%7C%7Cfilter(item))%7Bitems.push(item)%7D%7D%7Delse%7BitemIds%3D(0%2C_keys2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this._data)%3Bfor(i%3D0%2Clen%3DitemIds.length%3Bi%3Clen%3Bi%2B%2B)%7BitemId%3DitemIds%5Bi%5D%3Bitem%3Dme._getItem(itemId%2Ctype)%3Bif(!filter%7C%7Cfilter(item))%7Bitems.push(item)%7D%7D%7Dif(options%26%26options.order%26%26id%3D%3Dundefined)%7Bthis._sort(items%2Coptions.order)%7Dif(options%26%26options.fields)%7Bvar%20fields%3Doptions.fields%3Bif(id!%3Dundefined)%7Bitem%3Dthis._filterFields(item%2Cfields)%7Delse%7Bfor(i%3D0%2Clen%3Ditems.length%3Bi%3Clen%3Bi%2B%2B)%7Bitems%5Bi%5D%3Dthis._filterFields(items%5Bi%5D%2Cfields)%7D%7D%7Dif(returnType%3D%3D%5C%5C%5C%22Object%5C%5C%5C%22)%7Bvar%20result%3D%7B%7D%2Cresultant%3Bfor(i%3D0%2Clen%3Ditems.length%3Bi%3Clen%3Bi%2B%2B)%7Bresultant%3Ditems%5Bi%5D%3Bresult%5Bresultant.id%5D%3Dresultant%7Dreturn%20result%7Delse%7Bif(id!%3Dundefined)%7Breturn%20item%7Delse%7Breturn%20items%7D%7D%7D%3BDataSet.prototype.getIds%3Dfunction(options)%7Bvar%20data%3Dthis._data%2Cfilter%3Doptions%26%26options.filter%2Corder%3Doptions%26%26options.order%2Ctype%3Doptions%26%26options.type%7C%7Cthis._options.type%2CitemIds%3D(0%2C_keys2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(data)%2Ci%2Clen%2Cid%2Citem%2Citems%2Cids%3D%5B%5D%3Bif(filter)%7Bif(order)%7Bitems%3D%5B%5D%3Bfor(i%3D0%2Clen%3DitemIds.length%3Bi%3Clen%3Bi%2B%2B)%7Bid%3DitemIds%5Bi%5D%3Bitem%3Dthis._getItem(id%2Ctype)%3Bif(filter(item))%7Bitems.push(item)%7D%7Dthis._sort(items%2Corder)%3Bfor(i%3D0%2Clen%3Ditems.length%3Bi%3Clen%3Bi%2B%2B)%7Bids.push(items%5Bi%5D%5Bthis._fieldId%5D)%7D%7Delse%7Bfor(i%3D0%2Clen%3DitemIds.length%3Bi%3Clen%3Bi%2B%2B)%7Bid%3DitemIds%5Bi%5D%3Bitem%3Dthis._getItem(id%2Ctype)%3Bif(filter(item))%7Bids.push(item%5Bthis._fieldId%5D)%7D%7D%7D%7Delse%7Bif(order)%7Bitems%3D%5B%5D%3Bfor(i%3D0%2Clen%3DitemIds.length%3Bi%3Clen%3Bi%2B%2B)%7Bid%3DitemIds%5Bi%5D%3Bitems.push(data%5Bid%5D)%7Dthis._sort(items%2Corder)%3Bfor(i%3D0%2Clen%3Ditems.length%3Bi%3Clen%3Bi%2B%2B)%7Bids.push(items%5Bi%5D%5Bthis._fieldId%5D)%7D%7Delse%7Bfor(i%3D0%2Clen%3DitemIds.length%3Bi%3Clen%3Bi%2B%2B)%7Bid%3DitemIds%5Bi%5D%3Bitem%3Ddata%5Bid%5D%3Bids.push(item%5Bthis._fieldId%5D)%7D%7D%7Dreturn%20ids%7D%3BDataSet.prototype.getDataSet%3Dfunction()%7Breturn%20this%7D%3BDataSet.prototype.forEach%3Dfunction(callback%2Coptions)%7Bvar%20filter%3Doptions%26%26options.filter%2Ctype%3Doptions%26%26options.type%7C%7Cthis._options.type%2Cdata%3Dthis._data%2CitemIds%3D(0%2C_keys2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(data)%2Ci%2Clen%2Citem%2Cid%3Bif(options%26%26options.order)%7Bvar%20items%3Dthis.get(options)%3Bfor(i%3D0%2Clen%3Ditems.length%3Bi%3Clen%3Bi%2B%2B)%7Bitem%3Ditems%5Bi%5D%3Bid%3Ditem%5Bthis._fieldId%5D%3Bcallback(item%2Cid)%7D%7Delse%7Bfor(i%3D0%2Clen%3DitemIds.length%3Bi%3Clen%3Bi%2B%2B)%7Bid%3DitemIds%5Bi%5D%3Bitem%3Dthis._getItem(id%2Ctype)%3Bif(!filter%7C%7Cfilter(item))%7Bcallback(item%2Cid)%7D%7D%7D%7D%3BDataSet.prototype.map%3Dfunction(callback%2Coptions)%7Bvar%20filter%3Doptions%26%26options.filter%2Ctype%3Doptions%26%26options.type%7C%7Cthis._options.type%2CmappedItems%3D%5B%5D%2Cdata%3Dthis._data%2CitemIds%3D(0%2C_keys2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(data)%2Ci%2Clen%2Cid%2Citem%3Bfor(i%3D0%2Clen%3DitemIds.length%3Bi%3Clen%3Bi%2B%2B)%7Bid%3DitemIds%5Bi%5D%3Bitem%3Dthis._getItem(id%2Ctype)%3Bif(!filter%7C%7Cfilter(item))%7BmappedItems.push(callback(item%2Cid))%7D%7Dif(options%26%26options.order)%7Bthis._sort(mappedItems%2Coptions.order)%7Dreturn%20mappedItems%7D%3BDataSet.prototype._filterFields%3Dfunction(item%2Cfields)%7Bif(!item)%7Breturn%20item%7Dvar%20filteredItem%3D%7B%7D%2CitemFields%3D(0%2C_keys2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(item)%2Clen%3DitemFields.length%2Ci%2Cfield%3Bif(Array.isArray(fields))%7Bfor(i%3D0%3Bi%3Clen%3Bi%2B%2B)%7Bfield%3DitemFields%5Bi%5D%3Bif(fields.indexOf(field)!%3D-1)%7BfilteredItem%5Bfield%5D%3Ditem%5Bfield%5D%7D%7D%7Delse%7Bfor(i%3D0%3Bi%3Clen%3Bi%2B%2B)%7Bfield%3DitemFields%5Bi%5D%3Bif(fields.hasOwnProperty(field))%7BfilteredItem%5Bfields%5Bfield%5D%5D%3Ditem%5Bfield%5D%7D%7D%7Dreturn%20filteredItem%7D%3BDataSet.prototype._sort%3Dfunction(items%2Corder)%7Bif(util.isString(order))%7Bvar%20name%3Dorder%3Bitems.sort(function(a%2Cb)%7Bvar%20av%3Da%5Bname%5D%3Bvar%20bv%3Db%5Bname%5D%3Breturn%20av%3Ebv%3F1%3Aav%3Cbv%3F-1%3A0%7D)%7Delse%20if(typeof%20order%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22)%7Bitems.sort(order)%7Delse%7Bthrow%20new%20TypeError(%5C%5C%5C%22Order%20must%20be%20a%20function%20or%20a%20string%5C%5C%5C%22)%7D%7D%3BDataSet.prototype.remove%3Dfunction(id%2CsenderId)%7Bvar%20removedIds%3D%5B%5D%2CremovedItems%3D%5B%5D%2Cids%3D%5B%5D%2Ci%2Clen%2CitemId%2Citem%3Bids%3DArray.isArray(id)%3Fid%3A%5Bid%5D%3Bfor(i%3D0%2Clen%3Dids.length%3Bi%3Clen%3Bi%2B%2B)%7Bitem%3Dthis._remove(ids%5Bi%5D)%3Bif(item)%7BitemId%3Ditem%5Bthis._fieldId%5D%3Bif(itemId!%3Dundefined)%7BremovedIds.push(itemId)%3BremovedItems.push(item)%7D%7D%7Dif(removedIds.length)%7Bthis._trigger(%5C%5C%5C%22remove%5C%5C%5C%22%2C%7Bitems%3AremovedIds%2ColdData%3AremovedItems%7D%2CsenderId)%7Dreturn%20removedIds%7D%3BDataSet.prototype._remove%3Dfunction(id)%7Bvar%20item%2Cident%3Bif(util.isNumber(id)%7C%7Cutil.isString(id))%7Bident%3Did%7Delse%20if(id%26%26(typeof%20id%3D%3D%3D%5C%5C%5C%22undefined%5C%5C%5C%22%3F%5C%5C%5C%22undefined%5C%5C%5C%22%3A(0%2C_typeof3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(id))%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22)%7Bident%3Did%5Bthis._fieldId%5D%7Dif(ident!%3D%3Dundefined%26%26this._data%5Bident%5D)%7Bitem%3Dthis._data%5Bident%5D%3Bdelete%20this._data%5Bident%5D%3Bthis.length--%3Breturn%20item%7Dreturn%20null%7D%3BDataSet.prototype.clear%3Dfunction(senderId)%7Bvar%20i%2Clen%3Bvar%20ids%3D(0%2C_keys2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this._data)%3Bvar%20items%3D%5B%5D%3Bfor(i%3D0%2Clen%3Dids.length%3Bi%3Clen%3Bi%2B%2B)%7Bitems.push(this._data%5Bids%5Bi%5D%5D)%7Dthis._data%3D%7B%7D%3Bthis.length%3D0%3Bthis._trigger(%5C%5C%5C%22remove%5C%5C%5C%22%2C%7Bitems%3Aids%2ColdData%3Aitems%7D%2CsenderId)%3Breturn%20ids%7D%3BDataSet.prototype.max%3Dfunction(field)%7Bvar%20data%3Dthis._data%2CitemIds%3D(0%2C_keys2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(data)%2Cmax%3Dnull%2CmaxField%3Dnull%2Ci%2Clen%3Bfor(i%3D0%2Clen%3DitemIds.length%3Bi%3Clen%3Bi%2B%2B)%7Bvar%20id%3DitemIds%5Bi%5D%3Bvar%20item%3Ddata%5Bid%5D%3Bvar%20itemField%3Ditem%5Bfield%5D%3Bif(itemField!%3Dnull%26%26(!max%7C%7CitemField%3EmaxField))%7Bmax%3Ditem%3BmaxField%3DitemField%7D%7Dreturn%20max%7D%3BDataSet.prototype.min%3Dfunction(field)%7Bvar%20data%3Dthis._data%2CitemIds%3D(0%2C_keys2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(data)%2Cmin%3Dnull%2CminField%3Dnull%2Ci%2Clen%3Bfor(i%3D0%2Clen%3DitemIds.length%3Bi%3Clen%3Bi%2B%2B)%7Bvar%20id%3DitemIds%5Bi%5D%3Bvar%20item%3Ddata%5Bid%5D%3Bvar%20itemField%3Ditem%5Bfield%5D%3Bif(itemField!%3Dnull%26%26(!min%7C%7CitemField%3CminField))%7Bmin%3Ditem%3BminField%3DitemField%7D%7Dreturn%20min%7D%3BDataSet.prototype.distinct%3Dfunction(field)%7Bvar%20data%3Dthis._data%3Bvar%20itemIds%3D(0%2C_keys2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(data)%3Bvar%20values%3D%5B%5D%3Bvar%20fieldType%3Dthis._options.type%26%26this._options.type%5Bfield%5D%7C%7Cnull%3Bvar%20count%3D0%3Bvar%20i%2Cj%2Clen%3Bfor(i%3D0%2Clen%3DitemIds.length%3Bi%3Clen%3Bi%2B%2B)%7Bvar%20id%3DitemIds%5Bi%5D%3Bvar%20item%3Ddata%5Bid%5D%3Bvar%20value%3Ditem%5Bfield%5D%3Bvar%20exists%3Dfalse%3Bfor(j%3D0%3Bj%3Ccount%3Bj%2B%2B)%7Bif(values%5Bj%5D%3D%3Dvalue)%7Bexists%3Dtrue%3Bbreak%7D%7Dif(!exists%26%26value!%3D%3Dundefined)%7Bvalues%5Bcount%5D%3Dvalue%3Bcount%2B%2B%7D%7Dif(fieldType)%7Bfor(i%3D0%2Clen%3Dvalues.length%3Bi%3Clen%3Bi%2B%2B)%7Bvalues%5Bi%5D%3Dutil.convert(values%5Bi%5D%2CfieldType)%7D%7Dreturn%20values%7D%3BDataSet.prototype._addItem%3Dfunction(item)%7Bvar%20id%3Ditem%5Bthis._fieldId%5D%3Bif(id!%3Dundefined)%7Bif(this._data%5Bid%5D)%7Bthrow%20new%20Error(%5C%5C%5C%22Cannot%20add%20item%3A%20item%20with%20id%20%5C%5C%5C%22%2Bid%2B%5C%5C%5C%22%20already%20exists%5C%5C%5C%22)%7D%7Delse%7Bid%3Dutil.randomUUID()%3Bitem%5Bthis._fieldId%5D%3Did%7Dvar%20d%3D%7B%7D%2Cfields%3D(0%2C_keys2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(item)%2Ci%2Clen%3Bfor(i%3D0%2Clen%3Dfields.length%3Bi%3Clen%3Bi%2B%2B)%7Bvar%20field%3Dfields%5Bi%5D%3Bvar%20fieldType%3Dthis._type%5Bfield%5D%3Bd%5Bfield%5D%3Dutil.convert(item%5Bfield%5D%2CfieldType)%7Dthis._data%5Bid%5D%3Dd%3Bthis.length%2B%2B%3Breturn%20id%7D%3BDataSet.prototype._getItem%3Dfunction(id%2Ctypes)%7Bvar%20field%2Cvalue%2Ci%2Clen%3Bvar%20raw%3Dthis._data%5Bid%5D%3Bif(!raw)%7Breturn%20null%7Dvar%20converted%3D%7B%7D%2Cfields%3D(0%2C_keys2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(raw)%3Bif(types)%7Bfor(i%3D0%2Clen%3Dfields.length%3Bi%3Clen%3Bi%2B%2B)%7Bfield%3Dfields%5Bi%5D%3Bvalue%3Draw%5Bfield%5D%3Bconverted%5Bfield%5D%3Dutil.convert(value%2Ctypes%5Bfield%5D)%7D%7Delse%7Bfor(i%3D0%2Clen%3Dfields.length%3Bi%3Clen%3Bi%2B%2B)%7Bfield%3Dfields%5Bi%5D%3Bvalue%3Draw%5Bfield%5D%3Bconverted%5Bfield%5D%3Dvalue%7D%7Dif(!converted%5Bthis._fieldId%5D)%7Bconverted%5Bthis._fieldId%5D%3Draw.id%7Dreturn%20converted%7D%3BDataSet.prototype._updateItem%3Dfunction(item)%7Bvar%20id%3Ditem%5Bthis._fieldId%5D%3Bif(id%3D%3Dundefined)%7Bthrow%20new%20Error(%5C%5C%5C%22Cannot%20update%20item%3A%20item%20has%20no%20id%20(item%3A%20%5C%5C%5C%22%2B(0%2C_stringify2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(item)%2B%5C%5C%5C%22)%5C%5C%5C%22)%7Dvar%20d%3Dthis._data%5Bid%5D%3Bif(!d)%7Bthrow%20new%20Error(%5C%5C%5C%22Cannot%20update%20item%3A%20no%20item%20with%20id%20%5C%5C%5C%22%2Bid%2B%5C%5C%5C%22%20found%5C%5C%5C%22)%7Dvar%20fields%3D(0%2C_keys2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(item)%3Bfor(var%20i%3D0%2Clen%3Dfields.length%3Bi%3Clen%3Bi%2B%2B)%7Bvar%20field%3Dfields%5Bi%5D%3Bvar%20fieldType%3Dthis._type%5Bfield%5D%3Bd%5Bfield%5D%3Dutil.convert(item%5Bfield%5D%2CfieldType)%7Dreturn%20id%7D%3Bmodule.exports%3DDataSet%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bvar%20_keys%3D__webpack_require__(8)%3Bvar%20_keys2%3D_interopRequireDefault(_keys)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20util%3D__webpack_require__(2)%3Bvar%20DataSet%3D__webpack_require__(11)%3Bfunction%20DataView(data%2Coptions)%7Bthis._data%3Dnull%3Bthis._ids%3D%7B%7D%3Bthis.length%3D0%3Bthis._options%3Doptions%7C%7C%7B%7D%3Bthis._fieldId%3D%5C%5C%5C%22id%5C%5C%5C%22%3Bthis._subscribers%3D%7B%7D%3Bvar%20me%3Dthis%3Bthis.listener%3Dfunction()%7Bme._onEvent.apply(me%2Carguments)%7D%3Bthis.setData(data)%7DDataView.prototype.setData%3Dfunction(data)%7Bvar%20ids%2Cid%2Ci%2Clen%2Citems%3Bif(this._data)%7Bif(this._data.off)%7Bthis._data.off(%5C%5C%5C%22*%5C%5C%5C%22%2Cthis.listener)%7Dids%3Dthis._data.getIds(%7Bfilter%3Athis._options%26%26this._options.filter%7D)%3Bitems%3D%5B%5D%3Bfor(i%3D0%2Clen%3Dids.length%3Bi%3Clen%3Bi%2B%2B)%7Bitems.push(this._data._data%5Bids%5Bi%5D%5D)%7Dthis._ids%3D%7B%7D%3Bthis.length%3D0%3Bthis._trigger(%5C%5C%5C%22remove%5C%5C%5C%22%2C%7Bitems%3Aids%2ColdData%3Aitems%7D)%7Dthis._data%3Ddata%3Bif(this._data)%7Bthis._fieldId%3Dthis._options.fieldId%7C%7Cthis._data%26%26this._data.options%26%26this._data.options.fieldId%7C%7C%5C%5C%5C%22id%5C%5C%5C%22%3Bids%3Dthis._data.getIds(%7Bfilter%3Athis._options%26%26this._options.filter%7D)%3Bfor(i%3D0%2Clen%3Dids.length%3Bi%3Clen%3Bi%2B%2B)%7Bid%3Dids%5Bi%5D%3Bthis._ids%5Bid%5D%3Dtrue%7Dthis.length%3Dids.length%3Bthis._trigger(%5C%5C%5C%22add%5C%5C%5C%22%2C%7Bitems%3Aids%7D)%3Bif(this._data.on)%7Bthis._data.on(%5C%5C%5C%22*%5C%5C%5C%22%2Cthis.listener)%7D%7D%7D%3BDataView.prototype.refresh%3Dfunction()%7Bvar%20id%2Ci%2Clen%3Bvar%20ids%3Dthis._data.getIds(%7Bfilter%3Athis._options%26%26this._options.filter%7D)%2ColdIds%3D(0%2C_keys2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this._ids)%2CnewIds%3D%7B%7D%2CaddedIds%3D%5B%5D%2CremovedIds%3D%5B%5D%2CremovedItems%3D%5B%5D%3Bfor(i%3D0%2Clen%3Dids.length%3Bi%3Clen%3Bi%2B%2B)%7Bid%3Dids%5Bi%5D%3BnewIds%5Bid%5D%3Dtrue%3Bif(!this._ids%5Bid%5D)%7BaddedIds.push(id)%3Bthis._ids%5Bid%5D%3Dtrue%7D%7Dfor(i%3D0%2Clen%3DoldIds.length%3Bi%3Clen%3Bi%2B%2B)%7Bid%3DoldIds%5Bi%5D%3Bif(!newIds%5Bid%5D)%7BremovedIds.push(id)%3BremovedItems.push(this._data._data%5Bid%5D)%3Bdelete%20this._ids%5Bid%5D%7D%7Dthis.length%2B%3DaddedIds.length-removedIds.length%3Bif(addedIds.length)%7Bthis._trigger(%5C%5C%5C%22add%5C%5C%5C%22%2C%7Bitems%3AaddedIds%7D)%7Dif(removedIds.length)%7Bthis._trigger(%5C%5C%5C%22remove%5C%5C%5C%22%2C%7Bitems%3AremovedIds%2ColdData%3AremovedItems%7D)%7D%7D%3BDataView.prototype.get%3Dfunction(args)%7Bvar%20me%3Dthis%3Bvar%20ids%2Coptions%2Cdata%3Bvar%20firstType%3Dutil.getType(arguments%5B0%5D)%3Bif(firstType%3D%3D%5C%5C%5C%22String%5C%5C%5C%22%7C%7CfirstType%3D%3D%5C%5C%5C%22Number%5C%5C%5C%22%7C%7CfirstType%3D%3D%5C%5C%5C%22Array%5C%5C%5C%22)%7Bids%3Darguments%5B0%5D%3Boptions%3Darguments%5B1%5D%3Bdata%3Darguments%5B2%5D%7Delse%7Boptions%3Darguments%5B0%5D%3Bdata%3Darguments%5B1%5D%7Dvar%20viewOptions%3Dutil.extend(%7B%7D%2Cthis._options%2Coptions)%3Bif(this._options.filter%26%26options%26%26options.filter)%7BviewOptions.filter%3Dfunction(item)%7Breturn%20me._options.filter(item)%26%26options.filter(item)%7D%7Dvar%20getArguments%3D%5B%5D%3Bif(ids!%3Dundefined)%7BgetArguments.push(ids)%7DgetArguments.push(viewOptions)%3BgetArguments.push(data)%3Breturn%20this._data%26%26this._data.get.apply(this._data%2CgetArguments)%7D%3BDataView.prototype.getIds%3Dfunction(options)%7Bvar%20ids%3Bif(this._data)%7Bvar%20defaultFilter%3Dthis._options.filter%3Bvar%20filter%3Bif(options%26%26options.filter)%7Bif(defaultFilter)%7Bfilter%3Dfunction%20filter(item)%7Breturn%20defaultFilter(item)%26%26options.filter(item)%7D%7Delse%7Bfilter%3Doptions.filter%7D%7Delse%7Bfilter%3DdefaultFilter%7Dids%3Dthis._data.getIds(%7Bfilter%3Afilter%2Corder%3Aoptions%26%26options.order%7D)%7Delse%7Bids%3D%5B%5D%7Dreturn%20ids%7D%3BDataView.prototype.map%3Dfunction(callback%2Coptions)%7Bvar%20mappedItems%3D%5B%5D%3Bif(this._data)%7Bvar%20defaultFilter%3Dthis._options.filter%3Bvar%20filter%3Bif(options%26%26options.filter)%7Bif(defaultFilter)%7Bfilter%3Dfunction%20filter(item)%7Breturn%20defaultFilter(item)%26%26options.filter(item)%7D%7Delse%7Bfilter%3Doptions.filter%7D%7Delse%7Bfilter%3DdefaultFilter%7DmappedItems%3Dthis._data.map(callback%2C%7Bfilter%3Afilter%2Corder%3Aoptions%26%26options.order%7D)%7Delse%7BmappedItems%3D%5B%5D%7Dreturn%20mappedItems%7D%3BDataView.prototype.getDataSet%3Dfunction()%7Bvar%20dataSet%3Dthis%3Bwhile(dataSet%20instanceof%20DataView)%7BdataSet%3DdataSet._data%7Dreturn%20dataSet%7C%7Cnull%7D%3BDataView.prototype._onEvent%3Dfunction(event%2Cparams%2CsenderId)%7Bvar%20i%2Clen%2Cid%2Citem%3Bvar%20ids%3Dparams%26%26params.items%3Bvar%20addedIds%3D%5B%5D%2CupdatedIds%3D%5B%5D%2CremovedIds%3D%5B%5D%2ColdItems%3D%5B%5D%2CupdatedItems%3D%5B%5D%2CremovedItems%3D%5B%5D%3Bif(ids%26%26this._data)%7Bswitch(event)%7Bcase%5C%5C%5C%22add%5C%5C%5C%22%3Afor(i%3D0%2Clen%3Dids.length%3Bi%3Clen%3Bi%2B%2B)%7Bid%3Dids%5Bi%5D%3Bitem%3Dthis.get(id)%3Bif(item)%7Bthis._ids%5Bid%5D%3Dtrue%3BaddedIds.push(id)%7D%7Dbreak%3Bcase%5C%5C%5C%22update%5C%5C%5C%22%3Afor(i%3D0%2Clen%3Dids.length%3Bi%3Clen%3Bi%2B%2B)%7Bid%3Dids%5Bi%5D%3Bitem%3Dthis.get(id)%3Bif(item)%7Bif(this._ids%5Bid%5D)%7BupdatedIds.push(id)%3BupdatedItems.push(params.data%5Bi%5D)%3BoldItems.push(params.oldData%5Bi%5D)%7Delse%7Bthis._ids%5Bid%5D%3Dtrue%3BaddedIds.push(id)%7D%7Delse%7Bif(this._ids%5Bid%5D)%7Bdelete%20this._ids%5Bid%5D%3BremovedIds.push(id)%3BremovedItems.push(params.oldData%5Bi%5D)%7Delse%7B%7D%7D%7Dbreak%3Bcase%5C%5C%5C%22remove%5C%5C%5C%22%3Afor(i%3D0%2Clen%3Dids.length%3Bi%3Clen%3Bi%2B%2B)%7Bid%3Dids%5Bi%5D%3Bif(this._ids%5Bid%5D)%7Bdelete%20this._ids%5Bid%5D%3BremovedIds.push(id)%3BremovedItems.push(params.oldData%5Bi%5D)%7D%7Dbreak%7Dthis.length%2B%3DaddedIds.length-removedIds.length%3Bif(addedIds.length)%7Bthis._trigger(%5C%5C%5C%22add%5C%5C%5C%22%2C%7Bitems%3AaddedIds%7D%2CsenderId)%7Dif(updatedIds.length)%7Bthis._trigger(%5C%5C%5C%22update%5C%5C%5C%22%2C%7Bitems%3AupdatedIds%2ColdData%3AoldItems%2Cdata%3AupdatedItems%7D%2CsenderId)%7Dif(removedIds.length)%7Bthis._trigger(%5C%5C%5C%22remove%5C%5C%5C%22%2C%7Bitems%3AremovedIds%2ColdData%3AremovedItems%7D%2CsenderId)%7D%7D%7D%3BDataView.prototype.on%3DDataSet.prototype.on%3BDataView.prototype.off%3DDataSet.prototype.off%3BDataView.prototype._trigger%3DDataSet.prototype._trigger%3BDataView.prototype.subscribe%3DDataView.prototype.on%3BDataView.prototype.unsubscribe%3DDataView.prototype.off%3Bmodule.exports%3DDataView%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7Bvar%20store%3D__webpack_require__(57)(%5C%5C%5C%22wks%5C%5C%5C%22)%3Bvar%20uid%3D__webpack_require__(40)%3Bvar%20Symbol%3D__webpack_require__(18).Symbol%3Bvar%20USE_SYMBOL%3Dtypeof%20Symbol%3D%3D%5C%5C%5C%22function%5C%5C%5C%22%3Bvar%20%24exports%3Dmodule.exports%3Dfunction(name)%7Breturn%20store%5Bname%5D%7C%7C(store%5Bname%5D%3DUSE_SYMBOL%26%26Symbol%5Bname%5D%7C%7C(USE_SYMBOL%3FSymbol%3Auid)(%5C%5C%5C%22Symbol.%5C%5C%5C%22%2Bname))%7D%3B%24exports.store%3Dstore%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bexports.prepareElements%3Dfunction(JSONcontainer)%7Bfor(var%20elementType%20in%20JSONcontainer)%7Bif(JSONcontainer.hasOwnProperty(elementType))%7BJSONcontainer%5BelementType%5D.redundant%3DJSONcontainer%5BelementType%5D.used%3BJSONcontainer%5BelementType%5D.used%3D%5B%5D%7D%7D%7D%3Bexports.cleanupElements%3Dfunction(JSONcontainer)%7Bfor(var%20elementType%20in%20JSONcontainer)%7Bif(JSONcontainer.hasOwnProperty(elementType))%7Bif(JSONcontainer%5BelementType%5D.redundant)%7Bfor(var%20i%3D0%3Bi%3CJSONcontainer%5BelementType%5D.redundant.length%3Bi%2B%2B)%7BJSONcontainer%5BelementType%5D.redundant%5Bi%5D.parentNode.removeChild(JSONcontainer%5BelementType%5D.redundant%5Bi%5D)%7DJSONcontainer%5BelementType%5D.redundant%3D%5B%5D%7D%7D%7D%7D%3Bexports.resetElements%3Dfunction(JSONcontainer)%7Bexports.prepareElements(JSONcontainer)%3Bexports.cleanupElements(JSONcontainer)%3Bexports.prepareElements(JSONcontainer)%7D%3Bexports.getSVGElement%3Dfunction(elementType%2CJSONcontainer%2CsvgContainer)%7Bvar%20element%3Bif(JSONcontainer.hasOwnProperty(elementType))%7Bif(JSONcontainer%5BelementType%5D.redundant.length%3E0)%7Belement%3DJSONcontainer%5BelementType%5D.redundant%5B0%5D%3BJSONcontainer%5BelementType%5D.redundant.shift()%7Delse%7Belement%3Ddocument.createElementNS(%5C%5C%5C%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%5C%5C%5C%22%2CelementType)%3BsvgContainer.appendChild(element)%7D%7Delse%7Belement%3Ddocument.createElementNS(%5C%5C%5C%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%5C%5C%5C%22%2CelementType)%3BJSONcontainer%5BelementType%5D%3D%7Bused%3A%5B%5D%2Credundant%3A%5B%5D%7D%3BsvgContainer.appendChild(element)%7DJSONcontainer%5BelementType%5D.used.push(element)%3Breturn%20element%7D%3Bexports.getDOMElement%3Dfunction(elementType%2CJSONcontainer%2CDOMContainer%2CinsertBefore)%7Bvar%20element%3Bif(JSONcontainer.hasOwnProperty(elementType))%7Bif(JSONcontainer%5BelementType%5D.redundant.length%3E0)%7Belement%3DJSONcontainer%5BelementType%5D.redundant%5B0%5D%3BJSONcontainer%5BelementType%5D.redundant.shift()%7Delse%7Belement%3Ddocument.createElement(elementType)%3Bif(insertBefore!%3D%3Dundefined)%7BDOMContainer.insertBefore(element%2CinsertBefore)%7Delse%7BDOMContainer.appendChild(element)%7D%7D%7Delse%7Belement%3Ddocument.createElement(elementType)%3BJSONcontainer%5BelementType%5D%3D%7Bused%3A%5B%5D%2Credundant%3A%5B%5D%7D%3Bif(insertBefore!%3D%3Dundefined)%7BDOMContainer.insertBefore(element%2CinsertBefore)%7Delse%7BDOMContainer.appendChild(element)%7D%7DJSONcontainer%5BelementType%5D.used.push(element)%3Breturn%20element%7D%3Bexports.drawPoint%3Dfunction(x%2Cy%2CgroupTemplate%2CJSONcontainer%2CsvgContainer%2ClabelObj)%7Bvar%20point%3Bif(groupTemplate.style%3D%3D%5C%5C%5C%22circle%5C%5C%5C%22)%7Bpoint%3Dexports.getSVGElement(%5C%5C%5C%22circle%5C%5C%5C%22%2CJSONcontainer%2CsvgContainer)%3Bpoint.setAttributeNS(null%2C%5C%5C%5C%22cx%5C%5C%5C%22%2Cx)%3Bpoint.setAttributeNS(null%2C%5C%5C%5C%22cy%5C%5C%5C%22%2Cy)%3Bpoint.setAttributeNS(null%2C%5C%5C%5C%22r%5C%5C%5C%22%2C.5*groupTemplate.size)%7Delse%7Bpoint%3Dexports.getSVGElement(%5C%5C%5C%22rect%5C%5C%5C%22%2CJSONcontainer%2CsvgContainer)%3Bpoint.setAttributeNS(null%2C%5C%5C%5C%22x%5C%5C%5C%22%2Cx-.5*groupTemplate.size)%3Bpoint.setAttributeNS(null%2C%5C%5C%5C%22y%5C%5C%5C%22%2Cy-.5*groupTemplate.size)%3Bpoint.setAttributeNS(null%2C%5C%5C%5C%22width%5C%5C%5C%22%2CgroupTemplate.size)%3Bpoint.setAttributeNS(null%2C%5C%5C%5C%22height%5C%5C%5C%22%2CgroupTemplate.size)%7Dif(groupTemplate.styles!%3D%3Dundefined)%7Bpoint.setAttributeNS(null%2C%5C%5C%5C%22style%5C%5C%5C%22%2CgroupTemplate.styles)%7Dpoint.setAttributeNS(null%2C%5C%5C%5C%22class%5C%5C%5C%22%2CgroupTemplate.className%2B%5C%5C%5C%22%20vis-point%5C%5C%5C%22)%3Bif(labelObj)%7Bvar%20label%3Dexports.getSVGElement(%5C%5C%5C%22text%5C%5C%5C%22%2CJSONcontainer%2CsvgContainer)%3Bif(labelObj.xOffset)%7Bx%3Dx%2BlabelObj.xOffset%7Dif(labelObj.yOffset)%7By%3Dy%2BlabelObj.yOffset%7Dif(labelObj.content)%7Blabel.textContent%3DlabelObj.content%7Dif(labelObj.className)%7Blabel.setAttributeNS(null%2C%5C%5C%5C%22class%5C%5C%5C%22%2ClabelObj.className%2B%5C%5C%5C%22%20vis-label%5C%5C%5C%22)%7Dlabel.setAttributeNS(null%2C%5C%5C%5C%22x%5C%5C%5C%22%2Cx)%3Blabel.setAttributeNS(null%2C%5C%5C%5C%22y%5C%5C%5C%22%2Cy)%7Dreturn%20point%7D%3Bexports.drawBar%3Dfunction(x%2Cy%2Cwidth%2Cheight%2CclassName%2CJSONcontainer%2CsvgContainer%2Cstyle)%7Bif(height!%3D0)%7Bif(height%3C0)%7Bheight*%3D-1%3By-%3Dheight%7Dvar%20rect%3Dexports.getSVGElement(%5C%5C%5C%22rect%5C%5C%5C%22%2CJSONcontainer%2CsvgContainer)%3Brect.setAttributeNS(null%2C%5C%5C%5C%22x%5C%5C%5C%22%2Cx-.5*width)%3Brect.setAttributeNS(null%2C%5C%5C%5C%22y%5C%5C%5C%22%2Cy)%3Brect.setAttributeNS(null%2C%5C%5C%5C%22width%5C%5C%5C%22%2Cwidth)%3Brect.setAttributeNS(null%2C%5C%5C%5C%22height%5C%5C%5C%22%2Cheight)%3Brect.setAttributeNS(null%2C%5C%5C%5C%22class%5C%5C%5C%22%2CclassName)%3Bif(style)%7Brect.setAttributeNS(null%2C%5C%5C%5C%22style%5C%5C%5C%22%2Cstyle)%7D%7D%7D%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bexports.printStyle%3Dundefined%3Bvar%20_stringify%3D__webpack_require__(19)%3Bvar%20_stringify2%3D_interopRequireDefault(_stringify)%3Bvar%20_typeof2%3D__webpack_require__(6)%3Bvar%20_typeof3%3D_interopRequireDefault(_typeof2)%3Bvar%20_keys%3D__webpack_require__(8)%3Bvar%20_keys2%3D_interopRequireDefault(_keys)%3Bvar%20_classCallCheck2%3D__webpack_require__(0)%3Bvar%20_classCallCheck3%3D_interopRequireDefault(_classCallCheck2)%3Bvar%20_createClass2%3D__webpack_require__(1)%3Bvar%20_createClass3%3D_interopRequireDefault(_createClass2)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20util%3D__webpack_require__(2)%3Bvar%20errorFound%3Dfalse%3Bvar%20allOptions%3Dvoid%200%3Bvar%20printStyle%3D%5C%5C%5C%22background%3A%20%23FFeeee%3B%20color%3A%20%23dd0000%5C%5C%5C%22%3Bvar%20Validator%3Dfunction()%7Bfunction%20Validator()%7B(0%2C_classCallCheck3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2CValidator)%7D(0%2C_createClass3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(Validator%2Cnull%2C%5B%7Bkey%3A%5C%5C%5C%22validate%5C%5C%5C%22%2Cvalue%3Afunction%20validate(options%2CreferenceOptions%2CsubObject)%7BerrorFound%3Dfalse%3BallOptions%3DreferenceOptions%3Bvar%20usedOptions%3DreferenceOptions%3Bif(subObject!%3D%3Dundefined)%7BusedOptions%3DreferenceOptions%5BsubObject%5D%7DValidator.parse(options%2CusedOptions%2C%5B%5D)%3Breturn%20errorFound%7D%7D%2C%7Bkey%3A%5C%5C%5C%22parse%5C%5C%5C%22%2Cvalue%3Afunction%20parse(options%2CreferenceOptions%2Cpath)%7Bfor(var%20option%20in%20options)%7Bif(options.hasOwnProperty(option))%7BValidator.check(option%2Coptions%2CreferenceOptions%2Cpath)%7D%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22check%5C%5C%5C%22%2Cvalue%3Afunction%20check(option%2Coptions%2CreferenceOptions%2Cpath)%7Bif(referenceOptions%5Boption%5D%3D%3D%3Dundefined%26%26referenceOptions.__any__%3D%3D%3Dundefined)%7BValidator.getSuggestion(option%2CreferenceOptions%2Cpath)%3Breturn%7Dvar%20referenceOption%3Doption%3Bvar%20is_object%3Dtrue%3Bif(referenceOptions%5Boption%5D%3D%3D%3Dundefined%26%26referenceOptions.__any__!%3D%3Dundefined)%7BreferenceOption%3D%5C%5C%5C%22__any__%5C%5C%5C%22%3Bis_object%3DValidator.getType(options%5Boption%5D)%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22%7Delse%7B%7Dvar%20refOptionObj%3DreferenceOptions%5BreferenceOption%5D%3Bif(is_object%26%26refOptionObj.__type__!%3D%3Dundefined)%7BrefOptionObj%3DrefOptionObj.__type__%7DValidator.checkFields(option%2Coptions%2CreferenceOptions%2CreferenceOption%2CrefOptionObj%2Cpath)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22checkFields%5C%5C%5C%22%2Cvalue%3Afunction%20checkFields(option%2Coptions%2CreferenceOptions%2CreferenceOption%2CrefOptionObj%2Cpath)%7Bvar%20log%3Dfunction%20log(message)%7Bconsole.log(%5C%5C%5C%22%25c%5C%5C%5C%22%2Bmessage%2BValidator.printLocation(path%2Coption)%2CprintStyle)%7D%3Bvar%20optionType%3DValidator.getType(options%5Boption%5D)%3Bvar%20refOptionType%3DrefOptionObj%5BoptionType%5D%3Bif(refOptionType!%3D%3Dundefined)%7Bif(Validator.getType(refOptionType)%3D%3D%3D%5C%5C%5C%22array%5C%5C%5C%22%26%26refOptionType.indexOf(options%5Boption%5D)%3D%3D%3D-1)%7Blog('Invalid%20option%20detected%20in%20%5C%5C%5C%22'%2Boption%2B'%5C%5C%5C%22.'%2B%5C%5C%5C%22%20Allowed%20values%20are%3A%5C%5C%5C%22%2BValidator.print(refOptionType)%2B'%20not%20%5C%5C%5C%22'%2Boptions%5Boption%5D%2B'%5C%5C%5C%22.%20')%3BerrorFound%3Dtrue%7Delse%20if(optionType%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22%26%26referenceOption!%3D%3D%5C%5C%5C%22__any__%5C%5C%5C%22)%7Bpath%3Dutil.copyAndExtendArray(path%2Coption)%3BValidator.parse(options%5Boption%5D%2CreferenceOptions%5BreferenceOption%5D%2Cpath)%7D%7Delse%20if(refOptionObj%5B%5C%5C%5C%22any%5C%5C%5C%22%5D%3D%3D%3Dundefined)%7Blog('Invalid%20type%20received%20for%20%5C%5C%5C%22'%2Boption%2B'%5C%5C%5C%22.%20Expected%3A%20'%2BValidator.print((0%2C_keys2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(refOptionObj))%2B%5C%5C%5C%22.%20Received%20%5B%5C%5C%5C%22%2BoptionType%2B'%5D%20%5C%5C%5C%22'%2Boptions%5Boption%5D%2B'%5C%5C%5C%22')%3BerrorFound%3Dtrue%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getType%5C%5C%5C%22%2Cvalue%3Afunction%20getType(object)%7Bvar%20type%3Dtypeof%20object%3D%3D%3D%5C%5C%5C%22undefined%5C%5C%5C%22%3F%5C%5C%5C%22undefined%5C%5C%5C%22%3A(0%2C_typeof3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(object)%3Bif(type%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22)%7Bif(object%3D%3D%3Dnull)%7Breturn%5C%5C%5C%22null%5C%5C%5C%22%7Dif(object%20instanceof%20Boolean)%7Breturn%5C%5C%5C%22boolean%5C%5C%5C%22%7Dif(object%20instanceof%20Number)%7Breturn%5C%5C%5C%22number%5C%5C%5C%22%7Dif(object%20instanceof%20String)%7Breturn%5C%5C%5C%22string%5C%5C%5C%22%7Dif(Array.isArray(object))%7Breturn%5C%5C%5C%22array%5C%5C%5C%22%7Dif(object%20instanceof%20Date)%7Breturn%5C%5C%5C%22date%5C%5C%5C%22%7Dif(object.nodeType!%3D%3Dundefined)%7Breturn%5C%5C%5C%22dom%5C%5C%5C%22%7Dif(object._isAMomentObject%3D%3D%3Dtrue)%7Breturn%5C%5C%5C%22moment%5C%5C%5C%22%7Dreturn%5C%5C%5C%22object%5C%5C%5C%22%7Delse%20if(type%3D%3D%3D%5C%5C%5C%22number%5C%5C%5C%22)%7Breturn%5C%5C%5C%22number%5C%5C%5C%22%7Delse%20if(type%3D%3D%3D%5C%5C%5C%22boolean%5C%5C%5C%22)%7Breturn%5C%5C%5C%22boolean%5C%5C%5C%22%7Delse%20if(type%3D%3D%3D%5C%5C%5C%22string%5C%5C%5C%22)%7Breturn%5C%5C%5C%22string%5C%5C%5C%22%7Delse%20if(type%3D%3D%3Dundefined)%7Breturn%5C%5C%5C%22undefined%5C%5C%5C%22%7Dreturn%20type%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getSuggestion%5C%5C%5C%22%2Cvalue%3Afunction%20getSuggestion(option%2Coptions%2Cpath)%7Bvar%20localSearch%3DValidator.findInOptions(option%2Coptions%2Cpath%2Cfalse)%3Bvar%20globalSearch%3DValidator.findInOptions(option%2CallOptions%2C%5B%5D%2Ctrue)%3Bvar%20localSearchThreshold%3D8%3Bvar%20globalSearchThreshold%3D4%3Bvar%20msg%3Dvoid%200%3Bif(localSearch.indexMatch!%3D%3Dundefined)%7Bmsg%3D%5C%5C%5C%22%20in%20%5C%5C%5C%22%2BValidator.printLocation(localSearch.path%2Coption%2C%5C%5C%5C%22%5C%5C%5C%22)%2B'Perhaps%20it%20was%20incomplete%3F%20Did%20you%20mean%3A%20%5C%5C%5C%22'%2BlocalSearch.indexMatch%2B'%5C%5C%5C%22%3F%5C%5C%5C%5Cn%5C%5C%5C%5Cn'%7Delse%20if(globalSearch.distance%3C%3DglobalSearchThreshold%26%26localSearch.distance%3EglobalSearch.distance)%7Bmsg%3D%5C%5C%5C%22%20in%20%5C%5C%5C%22%2BValidator.printLocation(localSearch.path%2Coption%2C%5C%5C%5C%22%5C%5C%5C%22)%2B%5C%5C%5C%22Perhaps%20it%20was%20misplaced%3F%20Matching%20option%20found%20at%3A%20%5C%5C%5C%22%2BValidator.printLocation(globalSearch.path%2CglobalSearch.closestMatch%2C%5C%5C%5C%22%5C%5C%5C%22)%7Delse%20if(localSearch.distance%3C%3DlocalSearchThreshold)%7Bmsg%3D'.%20Did%20you%20mean%20%5C%5C%5C%22'%2BlocalSearch.closestMatch%2B'%5C%5C%5C%22%3F'%2BValidator.printLocation(localSearch.path%2Coption)%7Delse%7Bmsg%3D%5C%5C%5C%22.%20Did%20you%20mean%20one%20of%20these%3A%20%5C%5C%5C%22%2BValidator.print((0%2C_keys2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(options))%2BValidator.printLocation(path%2Coption)%7Dconsole.log('%25cUnknown%20option%20detected%3A%20%5C%5C%5C%22'%2Boption%2B'%5C%5C%5C%22'%2Bmsg%2CprintStyle)%3BerrorFound%3Dtrue%7D%7D%2C%7Bkey%3A%5C%5C%5C%22findInOptions%5C%5C%5C%22%2Cvalue%3Afunction%20findInOptions(option%2Coptions%2Cpath)%7Bvar%20recursive%3Darguments.length%3E3%26%26arguments%5B3%5D!%3D%3Dundefined%3Farguments%5B3%5D%3Afalse%3Bvar%20min%3D1e9%3Bvar%20closestMatch%3D%5C%5C%5C%22%5C%5C%5C%22%3Bvar%20closestMatchPath%3D%5B%5D%3Bvar%20lowerCaseOption%3Doption.toLowerCase()%3Bvar%20indexMatch%3Dundefined%3Bfor(var%20op%20in%20options)%7Bvar%20distance%3Dvoid%200%3Bif(options%5Bop%5D.__type__!%3D%3Dundefined%26%26recursive%3D%3D%3Dtrue)%7Bvar%20result%3DValidator.findInOptions(option%2Coptions%5Bop%5D%2Cutil.copyAndExtendArray(path%2Cop))%3Bif(min%3Eresult.distance)%7BclosestMatch%3Dresult.closestMatch%3BclosestMatchPath%3Dresult.path%3Bmin%3Dresult.distance%3BindexMatch%3Dresult.indexMatch%7D%7Delse%7Bif(op.toLowerCase().indexOf(lowerCaseOption)!%3D%3D-1)%7BindexMatch%3Dop%7Ddistance%3DValidator.levenshteinDistance(option%2Cop)%3Bif(min%3Edistance)%7BclosestMatch%3Dop%3BclosestMatchPath%3Dutil.copyArray(path)%3Bmin%3Ddistance%7D%7D%7Dreturn%7BclosestMatch%3AclosestMatch%2Cpath%3AclosestMatchPath%2Cdistance%3Amin%2CindexMatch%3AindexMatch%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22printLocation%5C%5C%5C%22%2Cvalue%3Afunction%20printLocation(path%2Coption)%7Bvar%20prefix%3Darguments.length%3E2%26%26arguments%5B2%5D!%3D%3Dundefined%3Farguments%5B2%5D%3A%5C%5C%5C%22Problem%20value%20found%20at%3A%20%5C%5C%5C%5Cn%5C%5C%5C%22%3Bvar%20str%3D%5C%5C%5C%22%5C%5C%5C%5Cn%5C%5C%5C%5Cn%5C%5C%5C%22%2Bprefix%2B%5C%5C%5C%22options%20%3D%20%7B%5C%5C%5C%5Cn%5C%5C%5C%22%3Bfor(var%20i%3D0%3Bi%3Cpath.length%3Bi%2B%2B)%7Bfor(var%20j%3D0%3Bj%3Ci%2B1%3Bj%2B%2B)%7Bstr%2B%3D%5C%5C%5C%22%20%20%5C%5C%5C%22%7Dstr%2B%3Dpath%5Bi%5D%2B%5C%5C%5C%22%3A%20%7B%5C%5C%5C%5Cn%5C%5C%5C%22%7Dfor(var%20_j%3D0%3B_j%3Cpath.length%2B1%3B_j%2B%2B)%7Bstr%2B%3D%5C%5C%5C%22%20%20%5C%5C%5C%22%7Dstr%2B%3Doption%2B%5C%5C%5C%22%5C%5C%5C%5Cn%5C%5C%5C%22%3Bfor(var%20_i%3D0%3B_i%3Cpath.length%2B1%3B_i%2B%2B)%7Bfor(var%20_j2%3D0%3B_j2%3Cpath.length-_i%3B_j2%2B%2B)%7Bstr%2B%3D%5C%5C%5C%22%20%20%5C%5C%5C%22%7Dstr%2B%3D%5C%5C%5C%22%7D%5C%5C%5C%5Cn%5C%5C%5C%22%7Dreturn%20str%2B%5C%5C%5C%22%5C%5C%5C%5Cn%5C%5C%5C%5Cn%5C%5C%5C%22%7D%7D%2C%7Bkey%3A%5C%5C%5C%22print%5C%5C%5C%22%2Cvalue%3Afunction%20print(options)%7Breturn(0%2C_stringify2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(options).replace(%2F(%5C%5C%5C%5C%5C%5C%5C%22)%7C(%5C%5C%5C%5C%5B)%7C(%5C%5C%5C%5C%5D)%7C(%2C%5C%5C%5C%22__type__%5C%5C%5C%22)%2Fg%2C%5C%5C%5C%22%5C%5C%5C%22).replace(%2F(%5C%5C%5C%5C%2C)%2Fg%2C%5C%5C%5C%22%2C%20%5C%5C%5C%22)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22levenshteinDistance%5C%5C%5C%22%2Cvalue%3Afunction%20levenshteinDistance(a%2Cb)%7Bif(a.length%3D%3D%3D0)return%20b.length%3Bif(b.length%3D%3D%3D0)return%20a.length%3Bvar%20matrix%3D%5B%5D%3Bvar%20i%3Bfor(i%3D0%3Bi%3C%3Db.length%3Bi%2B%2B)%7Bmatrix%5Bi%5D%3D%5Bi%5D%7Dvar%20j%3Bfor(j%3D0%3Bj%3C%3Da.length%3Bj%2B%2B)%7Bmatrix%5B0%5D%5Bj%5D%3Dj%7Dfor(i%3D1%3Bi%3C%3Db.length%3Bi%2B%2B)%7Bfor(j%3D1%3Bj%3C%3Da.length%3Bj%2B%2B)%7Bif(b.charAt(i-1)%3D%3Da.charAt(j-1))%7Bmatrix%5Bi%5D%5Bj%5D%3Dmatrix%5Bi-1%5D%5Bj-1%5D%7Delse%7Bmatrix%5Bi%5D%5Bj%5D%3DMath.min(matrix%5Bi-1%5D%5Bj-1%5D%2B1%2CMath.min(matrix%5Bi%5D%5Bj-1%5D%2B1%2Cmatrix%5Bi-1%5D%5Bj%5D%2B1))%7D%7D%7Dreturn%20matrix%5Bb.length%5D%5Ba.length%5D%7D%7D%5D)%3Breturn%20Validator%7D()%3Bexports%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3DValidator%3Bexports.printStyle%3DprintStyle%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bvar%20util%3D__webpack_require__(2)%3Bfunction%20Component(body%2Coptions)%7Bthis.options%3Dnull%3Bthis.props%3Dnull%7DComponent.prototype.setOptions%3Dfunction(options)%7Bif(options)%7Butil.extend(this.options%2Coptions)%7D%7D%3BComponent.prototype.redraw%3Dfunction()%7Breturn%20false%7D%3BComponent.prototype.destroy%3Dfunction()%7B%7D%3BComponent.prototype._isResized%3Dfunction()%7Bvar%20resized%3Dthis.props._previousWidth!%3D%3Dthis.props.width%7C%7Cthis.props._previousHeight!%3D%3Dthis.props.height%3Bthis.props._previousWidth%3Dthis.props.width%3Bthis.props._previousHeight%3Dthis.props.height%3Breturn%20resized%7D%3Bmodule.exports%3DComponent%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7Bvar%20global%3D__webpack_require__(18)%3Bvar%20core%3D__webpack_require__(7)%3Bvar%20ctx%3D__webpack_require__(80)%3Bvar%20hide%3D__webpack_require__(26)%3Bvar%20PROTOTYPE%3D%5C%5C%5C%22prototype%5C%5C%5C%22%3Bvar%20%24export%3Dfunction(type%2Cname%2Csource)%7Bvar%20IS_FORCED%3Dtype%26%24export.F%3Bvar%20IS_GLOBAL%3Dtype%26%24export.G%3Bvar%20IS_STATIC%3Dtype%26%24export.S%3Bvar%20IS_PROTO%3Dtype%26%24export.P%3Bvar%20IS_BIND%3Dtype%26%24export.B%3Bvar%20IS_WRAP%3Dtype%26%24export.W%3Bvar%20exports%3DIS_GLOBAL%3Fcore%3Acore%5Bname%5D%7C%7C(core%5Bname%5D%3D%7B%7D)%3Bvar%20expProto%3Dexports%5BPROTOTYPE%5D%3Bvar%20target%3DIS_GLOBAL%3Fglobal%3AIS_STATIC%3Fglobal%5Bname%5D%3A(global%5Bname%5D%7C%7C%7B%7D)%5BPROTOTYPE%5D%3Bvar%20key%2Cown%2Cout%3Bif(IS_GLOBAL)source%3Dname%3Bfor(key%20in%20source)%7Bown%3D!IS_FORCED%26%26target%26%26target%5Bkey%5D!%3D%3Dundefined%3Bif(own%26%26key%20in%20exports)continue%3Bout%3Down%3Ftarget%5Bkey%5D%3Asource%5Bkey%5D%3Bexports%5Bkey%5D%3DIS_GLOBAL%26%26typeof%20target%5Bkey%5D!%3D%5C%5C%5C%22function%5C%5C%5C%22%3Fsource%5Bkey%5D%3AIS_BIND%26%26own%3Fctx(out%2Cglobal)%3AIS_WRAP%26%26target%5Bkey%5D%3D%3Dout%3Ffunction(C)%7Bvar%20F%3Dfunction(a%2Cb%2Cc)%7Bif(this%20instanceof%20C)%7Bswitch(arguments.length)%7Bcase%200%3Areturn%20new%20C%3Bcase%201%3Areturn%20new%20C(a)%3Bcase%202%3Areturn%20new%20C(a%2Cb)%7Dreturn%20new%20C(a%2Cb%2Cc)%7Dreturn%20C.apply(this%2Carguments)%7D%3BF%5BPROTOTYPE%5D%3DC%5BPROTOTYPE%5D%3Breturn%20F%7D(out)%3AIS_PROTO%26%26typeof%20out%3D%3D%5C%5C%5C%22function%5C%5C%5C%22%3Fctx(Function.call%2Cout)%3Aout%3Bif(IS_PROTO)%7B(exports.virtual%7C%7C(exports.virtual%3D%7B%7D))%5Bkey%5D%3Dout%3Bif(type%26%24export.R%26%26expProto%26%26!expProto%5Bkey%5D)hide(expProto%2Ckey%2Cout)%7D%7D%7D%3B%24export.F%3D1%3B%24export.G%3D2%3B%24export.S%3D4%3B%24export.P%3D8%3B%24export.B%3D16%3B%24export.W%3D32%3B%24export.U%3D64%3B%24export.R%3D128%3Bmodule.exports%3D%24export%7D%2Cfunction(module%2Cexports)%7Bvar%20global%3Dmodule.exports%3Dtypeof%20window!%3D%5C%5C%5C%22undefined%5C%5C%5C%22%26%26window.Math%3D%3DMath%3Fwindow%3Atypeof%20self!%3D%5C%5C%5C%22undefined%5C%5C%5C%22%26%26self.Math%3D%3DMath%3Fself%3AFunction(%5C%5C%5C%22return%20this%5C%5C%5C%22)()%3Bif(typeof%20__g%3D%3D%5C%5C%5C%22number%5C%5C%5C%22)__g%3Dglobal%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7Bmodule.exports%3D%7Bdefault%3A__webpack_require__(160)%2C__esModule%3Atrue%7D%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7Bvar%20anObject%3D__webpack_require__(27)%3Bvar%20IE8_DOM_DEFINE%3D__webpack_require__(81)%3Bvar%20toPrimitive%3D__webpack_require__(53)%3Bvar%20dP%3DObject.defineProperty%3Bexports.f%3D__webpack_require__(21)%3FObject.defineProperty%3Afunction%20defineProperty(O%2CP%2CAttributes)%7BanObject(O)%3BP%3DtoPrimitive(P%2Ctrue)%3BanObject(Attributes)%3Bif(IE8_DOM_DEFINE)try%7Breturn%20dP(O%2CP%2CAttributes)%7Dcatch(e)%7B%7Dif(%5C%5C%5C%22get%5C%5C%5C%22in%20Attributes%7C%7C%5C%5C%5C%22set%5C%5C%5C%22in%20Attributes)throw%20TypeError(%5C%5C%5C%22Accessors%20not%20supported!%5C%5C%5C%22)%3Bif(%5C%5C%5C%22value%5C%5C%5C%22in%20Attributes)O%5BP%5D%3DAttributes.value%3Breturn%20O%7D%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7Bmodule.exports%3D!__webpack_require__(28)(function()%7Breturn%20Object.defineProperty(%7B%7D%2C%5C%5C%5C%22a%5C%5C%5C%22%2C%7Bget%3Afunction()%7Breturn%207%7D%7D).a!%3D7%7D)%7D%2Cfunction(module%2Cexports)%7Bvar%20hasOwnProperty%3D%7B%7D.hasOwnProperty%3Bmodule.exports%3Dfunction(it%2Ckey)%7Breturn%20hasOwnProperty.call(it%2Ckey)%7D%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_typeof2%3D__webpack_require__(6)%3Bvar%20_typeof3%3D_interopRequireDefault(_typeof2)%3Bvar%20_classCallCheck2%3D__webpack_require__(0)%3Bvar%20_classCallCheck3%3D_interopRequireDefault(_classCallCheck2)%3Bvar%20_createClass2%3D__webpack_require__(1)%3Bvar%20_createClass3%3D_interopRequireDefault(_createClass2)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20NodeBase%3Dfunction()%7Bfunction%20NodeBase(options%2Cbody%2ClabelModule)%7B(0%2C_classCallCheck3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2CNodeBase)%3Bthis.body%3Dbody%3Bthis.labelModule%3DlabelModule%3Bthis.setOptions(options)%3Bthis.top%3Dundefined%3Bthis.left%3Dundefined%3Bthis.height%3Dundefined%3Bthis.width%3Dundefined%3Bthis.radius%3Dundefined%3Bthis.margin%3Dundefined%3Bthis.refreshNeeded%3Dtrue%3Bthis.boundingBox%3D%7Btop%3A0%2Cleft%3A0%2Cright%3A0%2Cbottom%3A0%7D%7D(0%2C_createClass3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(NodeBase%2C%5B%7Bkey%3A%5C%5C%5C%22setOptions%5C%5C%5C%22%2Cvalue%3Afunction%20setOptions(options)%7Bthis.options%3Doptions%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_setMargins%5C%5C%5C%22%2Cvalue%3Afunction%20_setMargins(labelModule)%7Bthis.margin%3D%7B%7D%3Bif(this.options.margin)%7Bif((0%2C_typeof3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this.options.margin)%3D%3D%5C%5C%5C%22object%5C%5C%5C%22)%7Bthis.margin.top%3Dthis.options.margin.top%3Bthis.margin.right%3Dthis.options.margin.right%3Bthis.margin.bottom%3Dthis.options.margin.bottom%3Bthis.margin.left%3Dthis.options.margin.left%7Delse%7Bthis.margin.top%3Dthis.options.margin%3Bthis.margin.right%3Dthis.options.margin%3Bthis.margin.bottom%3Dthis.options.margin%3Bthis.margin.left%3Dthis.options.margin%7D%7DlabelModule.adjustSizes(this.margin)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_distanceToBorder%5C%5C%5C%22%2Cvalue%3Afunction%20_distanceToBorder(ctx%2Cangle)%7Bvar%20borderWidth%3Dthis.options.borderWidth%3Bthis.resize(ctx)%3Breturn%20Math.min(Math.abs(this.width%2F2%2FMath.cos(angle))%2CMath.abs(this.height%2F2%2FMath.sin(angle)))%2BborderWidth%7D%7D%2C%7Bkey%3A%5C%5C%5C%22enableShadow%5C%5C%5C%22%2Cvalue%3Afunction%20enableShadow(ctx%2Cvalues)%7Bif(values.shadow)%7Bctx.shadowColor%3Dvalues.shadowColor%3Bctx.shadowBlur%3Dvalues.shadowSize%3Bctx.shadowOffsetX%3Dvalues.shadowX%3Bctx.shadowOffsetY%3Dvalues.shadowY%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22disableShadow%5C%5C%5C%22%2Cvalue%3Afunction%20disableShadow(ctx%2Cvalues)%7Bif(values.shadow)%7Bctx.shadowColor%3D%5C%5C%5C%22rgba(0%2C0%2C0%2C0)%5C%5C%5C%22%3Bctx.shadowBlur%3D0%3Bctx.shadowOffsetX%3D0%3Bctx.shadowOffsetY%3D0%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22enableBorderDashes%5C%5C%5C%22%2Cvalue%3Afunction%20enableBorderDashes(ctx%2Cvalues)%7Bif(values.borderDashes!%3D%3Dfalse)%7Bif(ctx.setLineDash!%3D%3Dundefined)%7Bvar%20dashes%3Dvalues.borderDashes%3Bif(dashes%3D%3D%3Dtrue)%7Bdashes%3D%5B5%2C15%5D%7Dctx.setLineDash(dashes)%7Delse%7Bconsole.warn(%5C%5C%5C%22setLineDash%20is%20not%20supported%20in%20this%20browser.%20The%20dashed%20borders%20cannot%20be%20used.%5C%5C%5C%22)%3Bthis.options.shapeProperties.borderDashes%3Dfalse%3Bvalues.borderDashes%3Dfalse%7D%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22disableBorderDashes%5C%5C%5C%22%2Cvalue%3Afunction%20disableBorderDashes(ctx%2Cvalues)%7Bif(values.borderDashes!%3D%3Dfalse)%7Bif(ctx.setLineDash!%3D%3Dundefined)%7Bctx.setLineDash(%5B0%5D)%7Delse%7Bconsole.warn(%5C%5C%5C%22setLineDash%20is%20not%20supported%20in%20this%20browser.%20The%20dashed%20borders%20cannot%20be%20used.%5C%5C%5C%22)%3Bthis.options.shapeProperties.borderDashes%3Dfalse%3Bvalues.borderDashes%3Dfalse%7D%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22needsRefresh%5C%5C%5C%22%2Cvalue%3Afunction%20needsRefresh(selected%2Chover)%7Bif(this.refreshNeeded%3D%3D%3Dtrue)%7Bthis.refreshNeeded%3Dfalse%3Breturn%20true%7Dreturn%20this.width%3D%3D%3Dundefined%7C%7Cthis.labelModule.differentState(selected%2Chover)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22initContextForDraw%5C%5C%5C%22%2Cvalue%3Afunction%20initContextForDraw(ctx%2Cvalues)%7Bvar%20borderWidth%3Dvalues.borderWidth%2Fthis.body.view.scale%3Bctx.lineWidth%3DMath.min(this.width%2CborderWidth)%3Bctx.strokeStyle%3Dvalues.borderColor%3Bctx.fillStyle%3Dvalues.color%7D%7D%2C%7Bkey%3A%5C%5C%5C%22performStroke%5C%5C%5C%22%2Cvalue%3Afunction%20performStroke(ctx%2Cvalues)%7Bvar%20borderWidth%3Dvalues.borderWidth%2Fthis.body.view.scale%3Bctx.save()%3Bif(borderWidth%3E0)%7Bthis.enableBorderDashes(ctx%2Cvalues)%3Bctx.stroke()%3Bthis.disableBorderDashes(ctx%2Cvalues)%7Dctx.restore()%7D%7D%2C%7Bkey%3A%5C%5C%5C%22performFill%5C%5C%5C%22%2Cvalue%3Afunction%20performFill(ctx%2Cvalues)%7Bthis.enableShadow(ctx%2Cvalues)%3Bctx.fill()%3Bthis.disableShadow(ctx%2Cvalues)%3Bthis.performStroke(ctx%2Cvalues)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_addBoundingBoxMargin%5C%5C%5C%22%2Cvalue%3Afunction%20_addBoundingBoxMargin(margin)%7Bthis.boundingBox.left-%3Dmargin%3Bthis.boundingBox.top-%3Dmargin%3Bthis.boundingBox.bottom%2B%3Dmargin%3Bthis.boundingBox.right%2B%3Dmargin%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_updateBoundingBox%5C%5C%5C%22%2Cvalue%3Afunction%20_updateBoundingBox(x%2Cy%2Cctx%2Cselected%2Chover)%7Bif(ctx!%3D%3Dundefined)%7Bthis.resize(ctx%2Cselected%2Chover)%7Dthis.left%3Dx-this.width%2F2%3Bthis.top%3Dy-this.height%2F2%3Bthis.boundingBox.left%3Dthis.left%3Bthis.boundingBox.top%3Dthis.top%3Bthis.boundingBox.bottom%3Dthis.top%2Bthis.height%3Bthis.boundingBox.right%3Dthis.left%2Bthis.width%7D%7D%2C%7Bkey%3A%5C%5C%5C%22updateBoundingBox%5C%5C%5C%22%2Cvalue%3Afunction%20updateBoundingBox(x%2Cy%2Cctx%2Cselected%2Chover)%7Bthis._updateBoundingBox(x%2Cy%2Cctx%2Cselected%2Chover)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getDimensionsFromLabel%5C%5C%5C%22%2Cvalue%3Afunction%20getDimensionsFromLabel(ctx%2Cselected%2Chover)%7Bthis.textSize%3Dthis.labelModule.getTextSize(ctx%2Cselected%2Chover)%3Bvar%20width%3Dthis.textSize.width%3Bvar%20height%3Dthis.textSize.height%3Bvar%20DEFAULT_SIZE%3D14%3Bif(width%3D%3D%3D0)%7Bwidth%3DDEFAULT_SIZE%3Bheight%3DDEFAULT_SIZE%7Dreturn%7Bwidth%3Awidth%2Cheight%3Aheight%7D%7D%7D%5D)%3Breturn%20NodeBase%7D()%3Bexports%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3DNodeBase%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_getPrototypeOf%3D__webpack_require__(3)%3Bvar%20_getPrototypeOf2%3D_interopRequireDefault(_getPrototypeOf)%3Bvar%20_classCallCheck2%3D__webpack_require__(0)%3Bvar%20_classCallCheck3%3D_interopRequireDefault(_classCallCheck2)%3Bvar%20_createClass2%3D__webpack_require__(1)%3Bvar%20_createClass3%3D_interopRequireDefault(_createClass2)%5C%5Cn%3Bvar%20_possibleConstructorReturn2%3D__webpack_require__(4)%3Bvar%20_possibleConstructorReturn3%3D_interopRequireDefault(_possibleConstructorReturn2)%3Bvar%20_inherits2%3D__webpack_require__(5)%3Bvar%20_inherits3%3D_interopRequireDefault(_inherits2)%3Bvar%20_NodeBase2%3D__webpack_require__(23)%3Bvar%20_NodeBase3%3D_interopRequireDefault(_NodeBase2)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20ShapeBase%3Dfunction(_NodeBase)%7B(0%2C_inherits3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(ShapeBase%2C_NodeBase)%3Bfunction%20ShapeBase(options%2Cbody%2ClabelModule)%7B(0%2C_classCallCheck3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2CShapeBase)%3Breturn(0%2C_possibleConstructorReturn3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2C(ShapeBase.__proto__%7C%7C(0%2C_getPrototypeOf2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(ShapeBase)).call(this%2Coptions%2Cbody%2ClabelModule))%7D(0%2C_createClass3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(ShapeBase%2C%5B%7Bkey%3A%5C%5C%5C%22resize%5C%5C%5C%22%2Cvalue%3Afunction%20resize(ctx)%7Bvar%20selected%3Darguments.length%3E1%26%26arguments%5B1%5D!%3D%3Dundefined%3Farguments%5B1%5D%3Athis.selected%3Bvar%20hover%3Darguments.length%3E2%26%26arguments%5B2%5D!%3D%3Dundefined%3Farguments%5B2%5D%3Athis.hover%3Bvar%20values%3Darguments.length%3E3%26%26arguments%5B3%5D!%3D%3Dundefined%3Farguments%5B3%5D%3A%7Bsize%3Athis.options.size%7D%3Bif(this.needsRefresh(selected%2Chover))%7Bthis.labelModule.getTextSize(ctx%2Cselected%2Chover)%3Bvar%20size%3D2*values.size%3Bthis.width%3Dsize%3Bthis.height%3Dsize%3Bthis.radius%3D.5*this.width%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_drawShape%5C%5C%5C%22%2Cvalue%3Afunction%20_drawShape(ctx%2Cshape%2CsizeMultiplier%2Cx%2Cy%2Cselected%2Chover%2Cvalues)%7Bthis.resize(ctx%2Cselected%2Chover%2Cvalues)%3Bthis.left%3Dx-this.width%2F2%3Bthis.top%3Dy-this.height%2F2%3Bthis.initContextForDraw(ctx%2Cvalues)%3Bctx%5Bshape%5D(x%2Cy%2Cvalues.size)%3Bthis.performFill(ctx%2Cvalues)%3Bif(this.options.label!%3D%3Dundefined)%7Bthis.labelModule.calculateLabelSize(ctx%2Cselected%2Chover%2Cx%2Cy%2C%5C%5C%5C%22hanging%5C%5C%5C%22)%3Bvar%20yLabel%3Dy%2B.5*this.height%2B.5*this.labelModule.size.height%3Bthis.labelModule.draw(ctx%2Cx%2CyLabel%2Cselected%2Chover%2C%5C%5C%5C%22hanging%5C%5C%5C%22)%7Dthis.updateBoundingBox(x%2Cy)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22updateBoundingBox%5C%5C%5C%22%2Cvalue%3Afunction%20updateBoundingBox(x%2Cy)%7Bthis.boundingBox.top%3Dy-this.options.size%3Bthis.boundingBox.left%3Dx-this.options.size%3Bthis.boundingBox.right%3Dx%2Bthis.options.size%3Bthis.boundingBox.bottom%3Dy%2Bthis.options.size%3Bif(this.options.label!%3D%3Dundefined%26%26this.labelModule.size.width%3E0)%7Bthis.boundingBox.left%3DMath.min(this.boundingBox.left%2Cthis.labelModule.size.left)%3Bthis.boundingBox.right%3DMath.max(this.boundingBox.right%2Cthis.labelModule.size.left%2Bthis.labelModule.size.width)%3Bthis.boundingBox.bottom%3DMath.max(this.boundingBox.bottom%2Cthis.boundingBox.bottom%2Bthis.labelModule.size.height)%7D%7D%7D%5D)%3Breturn%20ShapeBase%7D(_NodeBase3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)%3Bexports%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3DShapeBase%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7Bvar%20IObject%3D__webpack_require__(78)%3Bvar%20defined%3D__webpack_require__(51)%3Bmodule.exports%3Dfunction(it)%7Breturn%20IObject(defined(it))%7D%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7Bvar%20dP%3D__webpack_require__(20)%3Bvar%20createDesc%3D__webpack_require__(39)%3Bmodule.exports%3D__webpack_require__(21)%3Ffunction(object%2Ckey%2Cvalue)%7Breturn%20dP.f(object%2Ckey%2CcreateDesc(1%2Cvalue))%7D%3Afunction(object%2Ckey%2Cvalue)%7Bobject%5Bkey%5D%3Dvalue%3Breturn%20object%7D%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7Bvar%20isObject%3D__webpack_require__(32)%3Bmodule.exports%3Dfunction(it)%7Bif(!isObject(it))throw%20TypeError(it%2B%5C%5C%5C%22%20is%20not%20an%20object!%5C%5C%5C%22)%3Breturn%20it%7D%7D%2Cfunction(module%2Cexports)%7Bmodule.exports%3Dfunction(exec)%7Btry%7Breturn!!exec()%7Dcatch(e)%7Breturn%20true%7D%7D%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7Bmodule.exports%3D%7Bdefault%3A__webpack_require__(138)%2C__esModule%3Atrue%7D%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bexports.__esModule%3Dtrue%3Bvar%20_isIterable2%3D__webpack_require__(188)%3Bvar%20_isIterable3%3D_interopRequireDefault(_isIterable2)%3Bvar%20_getIterator2%3D__webpack_require__(77)%3Bvar%20_getIterator3%3D_interopRequireDefault(_getIterator2)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dexports.default%3Dfunction()%7Bfunction%20sliceIterator(arr%2Ci)%7Bvar%20_arr%3D%5B%5D%3Bvar%20_n%3Dtrue%3Bvar%20_d%3Dfalse%3Bvar%20_e%3Dundefined%3Btry%7Bfor(var%20_i%3D(0%2C_getIterator3.default)(arr)%2C_s%3B!(_n%3D(_s%3D_i.next()).done)%3B_n%3Dtrue)%7B_arr.push(_s.value)%3Bif(i%26%26_arr.length%3D%3D%3Di)break%7D%7Dcatch(err)%7B_d%3Dtrue%3B_e%3Derr%7Dfinally%7Btry%7Bif(!_n%26%26_i%5B%5C%5C%5C%22return%5C%5C%5C%22%5D)_i%5B%5C%5C%5C%22return%5C%5C%5C%22%5D()%7Dfinally%7Bif(_d)throw%20_e%7D%7Dreturn%20_arr%7Dreturn%20function(arr%2Ci)%7Bif(Array.isArray(arr))%7Breturn%20arr%7Delse%20if((0%2C_isIterable3.default)(Object(arr)))%7Breturn%20sliceIterator(arr%2Ci)%7Delse%7Bthrow%20new%20TypeError(%5C%5C%5C%22Invalid%20attempt%20to%20destructure%20non-iterable%20instance%5C%5C%5C%22)%7D%7D%7D()%7D%2Cfunction(module%2Cexports)%7Bmodule.exports%3D%7B%7D%7D%2Cfunction(module%2Cexports)%7Bmodule.exports%3Dfunction(it)%7Breturn%20typeof%20it%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22%3Fit!%3D%3Dnull%3Atypeof%20it%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22%7D%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7Bvar%20%24keys%3D__webpack_require__(84)%3Bvar%20enumBugKeys%3D__webpack_require__(58)%3Bmodule.exports%3DObject.keys%7C%7Cfunction%20keys(O)%7Breturn%20%24keys(O%2CenumBugKeys)%7D%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bfunction%20Point3d(x%2Cy%2Cz)%7Bthis.x%3Dx!%3D%3Dundefined%3Fx%3A0%3Bthis.y%3Dy!%3D%3Dundefined%3Fy%3A0%3Bthis.z%3Dz!%3D%3Dundefined%3Fz%3A0%7DPoint3d.subtract%3Dfunction(a%2Cb)%7Bvar%20sub%3Dnew%20Point3d%3Bsub.x%3Da.x-b.x%3Bsub.y%3Da.y-b.y%3Bsub.z%3Da.z-b.z%3Breturn%20sub%7D%3BPoint3d.add%3Dfunction(a%2Cb)%7Bvar%20sum%3Dnew%20Point3d%3Bsum.x%3Da.x%2Bb.x%3Bsum.y%3Da.y%2Bb.y%3Bsum.z%3Da.z%2Bb.z%3Breturn%20sum%7D%3BPoint3d.avg%3Dfunction(a%2Cb)%7Breturn%20new%20Point3d((a.x%2Bb.x)%2F2%2C(a.y%2Bb.y)%2F2%2C(a.z%2Bb.z)%2F2)%7D%3BPoint3d.crossProduct%3Dfunction(a%2Cb)%7Bvar%20crossproduct%3Dnew%20Point3d%3Bcrossproduct.x%3Da.y*b.z-a.z*b.y%3Bcrossproduct.y%3Da.z*b.x-a.x*b.z%3Bcrossproduct.z%3Da.x*b.y-a.y*b.x%3Breturn%20crossproduct%7D%3BPoint3d.prototype.length%3Dfunction()%7Breturn%20Math.sqrt(this.x*this.x%2Bthis.y*this.y%2Bthis.z*this.z)%7D%3Bmodule.exports%3DPoint3d%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bvar%20__WEBPACK_AMD_DEFINE_FACTORY__%2C__WEBPACK_AMD_DEFINE_ARRAY__%2C__WEBPACK_AMD_DEFINE_RESULT__%3B(function(root%2Cfactory)%7Bif(true)%7B!(__WEBPACK_AMD_DEFINE_ARRAY__%3D%5B%5D%2C__WEBPACK_AMD_DEFINE_FACTORY__%3Dfactory%2C__WEBPACK_AMD_DEFINE_RESULT__%3Dtypeof%20__WEBPACK_AMD_DEFINE_FACTORY__%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22%3F__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports%2C__WEBPACK_AMD_DEFINE_ARRAY__)%3A__WEBPACK_AMD_DEFINE_FACTORY__%2C__WEBPACK_AMD_DEFINE_RESULT__!%3D%3Dundefined%26%26(module.exports%3D__WEBPACK_AMD_DEFINE_RESULT__))%7Delse%20if(typeof%20exports%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22)%7Bmodule.exports%3Dfactory()%7Delse%7Broot.keycharm%3Dfactory()%7D%7D)(this%2Cfunction()%7Bfunction%20keycharm(options)%7Bvar%20preventDefault%3Doptions%26%26options.preventDefault%7C%7Cfalse%3Bvar%20container%3Doptions%26%26options.container%7C%7Cwindow%3Bvar%20_exportFunctions%3D%7B%7D%3Bvar%20_bound%3D%7Bkeydown%3A%7B%7D%2Ckeyup%3A%7B%7D%7D%3Bvar%20_keys%3D%7B%7D%3Bvar%20i%3Bfor(i%3D97%3Bi%3C%3D122%3Bi%2B%2B)%7B_keys%5BString.fromCharCode(i)%5D%3D%7Bcode%3A65%2B(i-97)%2Cshift%3Afalse%7D%7Dfor(i%3D65%3Bi%3C%3D90%3Bi%2B%2B)%7B_keys%5BString.fromCharCode(i)%5D%3D%7Bcode%3Ai%2Cshift%3Atrue%7D%7Dfor(i%3D0%3Bi%3C%3D9%3Bi%2B%2B)%7B_keys%5B%5C%5C%5C%22%5C%5C%5C%22%2Bi%5D%3D%7Bcode%3A48%2Bi%2Cshift%3Afalse%7D%7Dfor(i%3D1%3Bi%3C%3D12%3Bi%2B%2B)%7B_keys%5B%5C%5C%5C%22F%5C%5C%5C%22%2Bi%5D%3D%7Bcode%3A111%2Bi%2Cshift%3Afalse%7D%7Dfor(i%3D0%3Bi%3C%3D9%3Bi%2B%2B)%7B_keys%5B%5C%5C%5C%22num%5C%5C%5C%22%2Bi%5D%3D%7Bcode%3A96%2Bi%2Cshift%3Afalse%7D%7D_keys%5B%5C%5C%5C%22num*%5C%5C%5C%22%5D%3D%7Bcode%3A106%2Cshift%3Afalse%7D%3B_keys%5B%5C%5C%5C%22num%2B%5C%5C%5C%22%5D%3D%7Bcode%3A107%2Cshift%3Afalse%7D%3B_keys%5B%5C%5C%5C%22num-%5C%5C%5C%22%5D%3D%7Bcode%3A109%2Cshift%3Afalse%7D%3B_keys%5B%5C%5C%5C%22num%2F%5C%5C%5C%22%5D%3D%7Bcode%3A111%2Cshift%3Afalse%7D%3B_keys%5B%5C%5C%5C%22num.%5C%5C%5C%22%5D%3D%7Bcode%3A110%2Cshift%3Afalse%7D%3B_keys%5B%5C%5C%5C%22left%5C%5C%5C%22%5D%3D%7Bcode%3A37%2Cshift%3Afalse%7D%3B_keys%5B%5C%5C%5C%22up%5C%5C%5C%22%5D%3D%7Bcode%3A38%2Cshift%3Afalse%7D%3B_keys%5B%5C%5C%5C%22right%5C%5C%5C%22%5D%3D%7Bcode%3A39%2Cshift%3Afalse%7D%3B_keys%5B%5C%5C%5C%22down%5C%5C%5C%22%5D%3D%7Bcode%3A40%2Cshift%3Afalse%7D%3B_keys%5B%5C%5C%5C%22space%5C%5C%5C%22%5D%3D%7Bcode%3A32%2Cshift%3Afalse%7D%3B_keys%5B%5C%5C%5C%22enter%5C%5C%5C%22%5D%3D%7Bcode%3A13%2Cshift%3Afalse%7D%3B_keys%5B%5C%5C%5C%22shift%5C%5C%5C%22%5D%3D%7Bcode%3A16%2Cshift%3Aundefined%7D%3B_keys%5B%5C%5C%5C%22esc%5C%5C%5C%22%5D%3D%7Bcode%3A27%2Cshift%3Afalse%7D%3B_keys%5B%5C%5C%5C%22backspace%5C%5C%5C%22%5D%3D%7Bcode%3A8%2Cshift%3Afalse%7D%3B_keys%5B%5C%5C%5C%22tab%5C%5C%5C%22%5D%3D%7Bcode%3A9%2Cshift%3Afalse%7D%3B_keys%5B%5C%5C%5C%22ctrl%5C%5C%5C%22%5D%3D%7Bcode%3A17%2Cshift%3Afalse%7D%3B_keys%5B%5C%5C%5C%22alt%5C%5C%5C%22%5D%3D%7Bcode%3A18%2Cshift%3Afalse%7D%3B_keys%5B%5C%5C%5C%22delete%5C%5C%5C%22%5D%3D%7Bcode%3A46%2Cshift%3Afalse%7D%3B_keys%5B%5C%5C%5C%22pageup%5C%5C%5C%22%5D%3D%7Bcode%3A33%2Cshift%3Afalse%7D%3B_keys%5B%5C%5C%5C%22pagedown%5C%5C%5C%22%5D%3D%7Bcode%3A34%2Cshift%3Afalse%7D%3B_keys%5B%5C%5C%5C%22%3D%5C%5C%5C%22%5D%3D%7Bcode%3A187%2Cshift%3Afalse%7D%3B_keys%5B%5C%5C%5C%22-%5C%5C%5C%22%5D%3D%7Bcode%3A189%2Cshift%3Afalse%7D%3B_keys%5B%5C%5C%5C%22%5D%5C%5C%5C%22%5D%3D%7Bcode%3A221%2Cshift%3Afalse%7D%3B_keys%5B%5C%5C%5C%22%5B%5C%5C%5C%22%5D%3D%7Bcode%3A219%2Cshift%3Afalse%7D%3Bvar%20down%3Dfunction(event)%7BhandleEvent(event%2C%5C%5C%5C%22keydown%5C%5C%5C%22)%7D%3Bvar%20up%3Dfunction(event)%7BhandleEvent(event%2C%5C%5C%5C%22keyup%5C%5C%5C%22)%7D%3Bvar%20handleEvent%3Dfunction(event%2Ctype)%7Bif(_bound%5Btype%5D%5Bevent.keyCode%5D!%3D%3Dundefined)%7Bvar%20bound%3D_bound%5Btype%5D%5Bevent.keyCode%5D%3Bfor(var%20i%3D0%3Bi%3Cbound.length%3Bi%2B%2B)%7Bif(bound%5Bi%5D.shift%3D%3D%3Dundefined)%7Bbound%5Bi%5D.fn(event)%7Delse%20if(bound%5Bi%5D.shift%3D%3Dtrue%26%26event.shiftKey%3D%3Dtrue)%7Bbound%5Bi%5D.fn(event)%7Delse%20if(bound%5Bi%5D.shift%3D%3Dfalse%26%26event.shiftKey%3D%3Dfalse)%7Bbound%5Bi%5D.fn(event)%7D%7Dif(preventDefault%3D%3Dtrue)%7Bevent.preventDefault()%7D%7D%7D%3B_exportFunctions.bind%3Dfunction(key%2Ccallback%2Ctype)%7Bif(type%3D%3D%3Dundefined)%7Btype%3D%5C%5C%5C%22keydown%5C%5C%5C%22%7Dif(_keys%5Bkey%5D%3D%3D%3Dundefined)%7Bthrow%20new%20Error(%5C%5C%5C%22unsupported%20key%3A%20%5C%5C%5C%22%2Bkey)%7Dif(_bound%5Btype%5D%5B_keys%5Bkey%5D.code%5D%3D%3D%3Dundefined)%7B_bound%5Btype%5D%5B_keys%5Bkey%5D.code%5D%3D%5B%5D%7D_bound%5Btype%5D%5B_keys%5Bkey%5D.code%5D.push(%7Bfn%3Acallback%2Cshift%3A_keys%5Bkey%5D.shift%7D)%7D%3B_exportFunctions.bindAll%3Dfunction(callback%2Ctype)%7Bif(type%3D%3D%3Dundefined)%7Btype%3D%5C%5C%5C%22keydown%5C%5C%5C%22%7Dfor(var%20key%20in%20_keys)%7Bif(_keys.hasOwnProperty(key))%7B_exportFunctions.bind(key%2Ccallback%2Ctype)%7D%7D%7D%3B_exportFunctions.getKey%3Dfunction(event)%7Bfor(var%20key%20in%20_keys)%7Bif(_keys.hasOwnProperty(key))%7Bif(event.shiftKey%3D%3Dtrue%26%26_keys%5Bkey%5D.shift%3D%3Dtrue%26%26event.keyCode%3D%3D_keys%5Bkey%5D.code)%7Breturn%20key%7Delse%20if(event.shiftKey%3D%3Dfalse%26%26_keys%5Bkey%5D.shift%3D%3Dfalse%26%26event.keyCode%3D%3D_keys%5Bkey%5D.code)%7Breturn%20key%7Delse%20if(event.keyCode%3D%3D_keys%5Bkey%5D.code%26%26key%3D%3D%5C%5C%5C%22shift%5C%5C%5C%22)%7Breturn%20key%7D%7D%7Dreturn%5C%5C%5C%22unknown%20key%2C%20currently%20not%20supported%5C%5C%5C%22%7D%3B_exportFunctions.unbind%3Dfunction(key%2Ccallback%2Ctype)%7Bif(type%3D%3D%3Dundefined)%7Btype%3D%5C%5C%5C%22keydown%5C%5C%5C%22%7Dif(_keys%5Bkey%5D%3D%3D%3Dundefined)%7Bthrow%20new%20Error(%5C%5C%5C%22unsupported%20key%3A%20%5C%5C%5C%22%2Bkey)%7Dif(callback!%3D%3Dundefined)%7Bvar%20newBindings%3D%5B%5D%3Bvar%20bound%3D_bound%5Btype%5D%5B_keys%5Bkey%5D.code%5D%3Bif(bound!%3D%3Dundefined)%7Bfor(var%20i%3D0%3Bi%3Cbound.length%3Bi%2B%2B)%7Bif(!(bound%5Bi%5D.fn%3D%3Dcallback%26%26bound%5Bi%5D.shift%3D%3D_keys%5Bkey%5D.shift))%7BnewBindings.push(_bound%5Btype%5D%5B_keys%5Bkey%5D.code%5D%5Bi%5D)%7D%7D%7D_bound%5Btype%5D%5B_keys%5Bkey%5D.code%5D%3DnewBindings%7Delse%7B_bound%5Btype%5D%5B_keys%5Bkey%5D.code%5D%3D%5B%5D%7D%7D%3B_exportFunctions.reset%3Dfunction()%7B_bound%3D%7Bkeydown%3A%7B%7D%2Ckeyup%3A%7B%7D%7D%7D%3B_exportFunctions.destroy%3Dfunction()%7B_bound%3D%7Bkeydown%3A%7B%7D%2Ckeyup%3A%7B%7D%7D%3Bcontainer.removeEventListener(%5C%5C%5C%22keydown%5C%5C%5C%22%2Cdown%2Ctrue)%3Bcontainer.removeEventListener(%5C%5C%5C%22keyup%5C%5C%5C%22%2Cup%2Ctrue)%7D%3Bcontainer.addEventListener(%5C%5C%5C%22keydown%5C%5C%5C%22%2Cdown%2Ctrue)%3Bcontainer.addEventListener(%5C%5C%5C%22keyup%5C%5C%5C%22%2Cup%2Ctrue)%3Breturn%20_exportFunctions%7Dreturn%20keycharm%7D)%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bexports.convertHiddenOptions%3Dfunction(moment%2Cbody%2ChiddenDates)%7Bif(hiddenDates%26%26!Array.isArray(hiddenDates))%7Breturn%20exports.convertHiddenOptions(moment%2Cbody%2C%5BhiddenDates%5D)%7Dbody.hiddenDates%3D%5B%5D%3Bif(hiddenDates)%7Bif(Array.isArray(hiddenDates)%3D%3Dtrue)%7Bfor(var%20i%3D0%3Bi%3ChiddenDates.length%3Bi%2B%2B)%7Bif(hiddenDates%5Bi%5D.repeat%3D%3D%3Dundefined)%7Bvar%20dateItem%3D%7B%7D%3BdateItem.start%3Dmoment(hiddenDates%5Bi%5D.start).toDate().valueOf()%3BdateItem.end%3Dmoment(hiddenDates%5Bi%5D.end).toDate().valueOf()%3Bbody.hiddenDates.push(dateItem)%7D%7Dbody.hiddenDates.sort(function(a%2Cb)%7Breturn%20a.start-b.start%7D)%7D%7D%7D%3Bexports.updateHiddenDates%3Dfunction(moment%2Cbody%2ChiddenDates)%7Bif(hiddenDates%26%26!Array.isArray(hiddenDates))%7Breturn%20exports.updateHiddenDates(moment%2Cbody%2C%5BhiddenDates%5D)%7Dif(hiddenDates%26%26body.domProps.centerContainer.width!%3D%3Dundefined)%7Bexports.convertHiddenOptions(moment%2Cbody%2ChiddenDates)%3Bvar%20start%3Dmoment(body.range.start)%3Bvar%20end%3Dmoment(body.range.end)%3Bvar%20totalRange%3Dbody.range.end-body.range.start%3Bvar%20pixelTime%3DtotalRange%2Fbody.domProps.centerContainer.width%3Bfor(var%20i%3D0%3Bi%3ChiddenDates.length%3Bi%2B%2B)%7Bif(hiddenDates%5Bi%5D.repeat!%3D%3Dundefined)%7Bvar%20startDate%3Dmoment(hiddenDates%5Bi%5D.start)%3Bvar%20endDate%3Dmoment(hiddenDates%5Bi%5D.end)%3Bif(startDate._d%3D%3D%5C%5C%5C%22Invalid%20Date%5C%5C%5C%22)%7Bthrow%20new%20Error(%5C%5C%5C%22Supplied%20start%20date%20is%20not%20valid%3A%20%5C%5C%5C%22%2BhiddenDates%5Bi%5D.start)%7Dif(endDate._d%3D%3D%5C%5C%5C%22Invalid%20Date%5C%5C%5C%22)%7Bthrow%20new%20Error(%5C%5C%5C%22Supplied%20end%20date%20is%20not%20valid%3A%20%5C%5C%5C%22%2BhiddenDates%5Bi%5D.end)%7Dvar%20duration%3DendDate-startDate%3Bif(duration%3E%3D4*pixelTime)%7Bvar%20offset%3D0%3Bvar%20runUntil%3Dend.clone()%3Bswitch(hiddenDates%5Bi%5D.repeat)%7Bcase%5C%5C%5C%22daily%5C%5C%5C%22%3Aif(startDate.day()!%3DendDate.day())%7Boffset%3D1%7DstartDate.dayOfYear(start.dayOfYear())%3BstartDate.year(start.year())%3BstartDate.subtract(7%2C%5C%5C%5C%22days%5C%5C%5C%22)%3BendDate.dayOfYear(start.dayOfYear())%3BendDate.year(start.year())%3BendDate.subtract(7-offset%2C%5C%5C%5C%22days%5C%5C%5C%22)%3BrunUntil.add(1%2C%5C%5C%5C%22weeks%5C%5C%5C%22)%3Bbreak%3Bcase%5C%5C%5C%22weekly%5C%5C%5C%22%3Avar%20dayOffset%3DendDate.diff(startDate%2C%5C%5C%5C%22days%5C%5C%5C%22)%3Bvar%20day%3DstartDate.day()%3BstartDate.date(start.date())%3BstartDate.month(start.month())%3BstartDate.year(start.year())%3BendDate%3DstartDate.clone()%3BstartDate.day(day)%3BendDate.day(day)%3BendDate.add(dayOffset%2C%5C%5C%5C%22days%5C%5C%5C%22)%3BstartDate.subtract(1%2C%5C%5C%5C%22weeks%5C%5C%5C%22)%3BendDate.subtract(1%2C%5C%5C%5C%22weeks%5C%5C%5C%22)%3BrunUntil.add(1%2C%5C%5C%5C%22weeks%5C%5C%5C%22)%3Bbreak%3Bcase%5C%5C%5C%22monthly%5C%5C%5C%22%3Aif(startDate.month()!%3DendDate.month())%7Boffset%3D1%7DstartDate.month(start.month())%3BstartDate.year(start.year())%3BstartDate.subtract(1%2C%5C%5C%5C%22months%5C%5C%5C%22)%3BendDate.month(start.month())%3BendDate.year(start.year())%3BendDate.subtract(1%2C%5C%5C%5C%22months%5C%5C%5C%22)%3BendDate.add(offset%2C%5C%5C%5C%22months%5C%5C%5C%22)%3BrunUntil.add(1%2C%5C%5C%5C%22months%5C%5C%5C%22)%3Bbreak%3Bcase%5C%5C%5C%22yearly%5C%5C%5C%22%3Aif(startDate.year()!%3DendDate.year())%7Boffset%3D1%7DstartDate.year(start.year())%3BstartDate.subtract(1%2C%5C%5C%5C%22years%5C%5C%5C%22)%3BendDate.year(start.year())%3BendDate.subtract(1%2C%5C%5C%5C%22years%5C%5C%5C%22)%3BendDate.add(offset%2C%5C%5C%5C%22years%5C%5C%5C%22)%3BrunUntil.add(1%2C%5C%5C%5C%22years%5C%5C%5C%22)%3Bbreak%3Bdefault%3Aconsole.log(%5C%5C%5C%22Wrong%20repeat%20format%2C%20allowed%20are%3A%20daily%2C%20weekly%2C%20monthly%2C%20yearly.%20Given%3A%5C%5C%5C%22%2ChiddenDates%5Bi%5D.repeat)%3Breturn%7Dwhile(startDate%3CrunUntil)%7Bbody.hiddenDates.push(%7Bstart%3AstartDate.valueOf()%2Cend%3AendDate.valueOf()%7D)%3Bswitch(hiddenDates%5Bi%5D.repeat)%7Bcase%5C%5C%5C%22daily%5C%5C%5C%22%3AstartDate.add(1%2C%5C%5C%5C%22days%5C%5C%5C%22)%3BendDate.add(1%2C%5C%5C%5C%22days%5C%5C%5C%22)%3Bbreak%3Bcase%5C%5C%5C%22weekly%5C%5C%5C%22%3AstartDate.add(1%2C%5C%5C%5C%22weeks%5C%5C%5C%22)%3BendDate.add(1%2C%5C%5C%5C%22weeks%5C%5C%5C%22)%3Bbreak%3Bcase%5C%5C%5C%22monthly%5C%5C%5C%22%3AstartDate.add(1%2C%5C%5C%5C%22months%5C%5C%5C%22)%3BendDate.add(1%2C%5C%5C%5C%22months%5C%5C%5C%22)%3Bbreak%3Bcase%5C%5C%5C%22yearly%5C%5C%5C%22%3AstartDate.add(1%2C%5C%5C%5C%22y%5C%5C%5C%22)%3BendDate.add(1%2C%5C%5C%5C%22y%5C%5C%5C%22)%3Bbreak%3Bdefault%3Aconsole.log(%5C%5C%5C%22Wrong%20repeat%20format%2C%20allowed%20are%3A%20daily%2C%20weekly%2C%20monthly%2C%20yearly.%20Given%3A%5C%5C%5C%22%2ChiddenDates%5Bi%5D.repeat)%3Breturn%7D%7Dbody.hiddenDates.push(%7Bstart%3AstartDate.valueOf()%2Cend%3AendDate.valueOf()%7D)%7D%7D%7Dexports.removeDuplicates(body)%3Bvar%20startHidden%3Dexports.isHidden(body.range.start%2Cbody.hiddenDates)%3Bvar%20endHidden%3Dexports.isHidden(body.range.end%2Cbody.hiddenDates)%3Bvar%20rangeStart%3Dbody.range.start%3Bvar%20rangeEnd%3Dbody.range.end%3Bif(startHidden.hidden%3D%3Dtrue)%7BrangeStart%3Dbody.range.startToFront%3D%3Dtrue%3FstartHidden.startDate-1%3AstartHidden.endDate%2B1%7Dif(endHidden.hidden%3D%3Dtrue)%7BrangeEnd%3Dbody.range.endToFront%3D%3Dtrue%3FendHidden.startDate-1%3AendHidden.endDate%2B1%7Dif(startHidden.hidden%3D%3Dtrue%7C%7CendHidden.hidden%3D%3Dtrue)%7Bbody.range._applyRange(rangeStart%2CrangeEnd)%7D%7D%7D%3Bexports.removeDuplicates%3Dfunction(body)%7Bvar%20hiddenDates%3Dbody.hiddenDates%3Bvar%20safeDates%3D%5B%5D%3Bfor(var%20i%3D0%3Bi%3ChiddenDates.length%3Bi%2B%2B)%7Bfor(var%20j%3D0%3Bj%3ChiddenDates.length%3Bj%2B%2B)%7Bif(i!%3Dj%26%26hiddenDates%5Bj%5D.remove!%3Dtrue%26%26hiddenDates%5Bi%5D.remove!%3Dtrue)%7Bif(hiddenDates%5Bj%5D.start%3E%3DhiddenDates%5Bi%5D.start%26%26hiddenDates%5Bj%5D.end%3C%3DhiddenDates%5Bi%5D.end)%7BhiddenDates%5Bj%5D.remove%3Dtrue%7Delse%20if(hiddenDates%5Bj%5D.start%3E%3DhiddenDates%5Bi%5D.start%26%26hiddenDates%5Bj%5D.start%3C%3DhiddenDates%5Bi%5D.end)%7BhiddenDates%5Bi%5D.end%3DhiddenDates%5Bj%5D.end%3BhiddenDates%5Bj%5D.remove%3Dtrue%7Delse%20if(hiddenDates%5Bj%5D.end%3E%3DhiddenDates%5Bi%5D.start%26%26hiddenDates%5Bj%5D.end%3C%3DhiddenDates%5Bi%5D.end)%7BhiddenDates%5Bi%5D.start%3DhiddenDates%5Bj%5D.start%3BhiddenDates%5Bj%5D.remove%3Dtrue%7D%7D%7D%7Dfor(i%3D0%3Bi%3ChiddenDates.length%3Bi%2B%2B)%7Bif(hiddenDates%5Bi%5D.remove!%3D%3Dtrue)%7BsafeDates.push(hiddenDates%5Bi%5D)%7D%7Dbody.hiddenDates%3DsafeDates%3Bbody.hiddenDates.sort(function(a%2Cb)%7Breturn%20a.start-b.start%7D)%7D%3Bexports.printDates%3Dfunction(dates)%7Bfor(var%20i%3D0%3Bi%3Cdates.length%3Bi%2B%2B)%7Bconsole.log(i%2Cnew%20Date(dates%5Bi%5D.start)%2Cnew%20Date(dates%5Bi%5D.end)%2Cdates%5Bi%5D.start%2Cdates%5Bi%5D.end%2Cdates%5Bi%5D.remove)%7D%7D%3Bexports.stepOverHiddenDates%3Dfunction(moment%2CtimeStep%2CpreviousTime)%7Bvar%20stepInHidden%3Dfalse%3Bvar%20currentValue%3DtimeStep.current.valueOf()%3Bfor(var%20i%3D0%3Bi%3CtimeStep.hiddenDates.length%3Bi%2B%2B)%7Bvar%20startDate%3DtimeStep.hiddenDates%5Bi%5D.start%3Bvar%20endDate%3DtimeStep.hiddenDates%5Bi%5D.end%3Bif(currentValue%3E%3DstartDate%26%26currentValue%3CendDate)%7BstepInHidden%3Dtrue%3Bbreak%7D%7Dif(stepInHidden%3D%3Dtrue%26%26currentValue%3CtimeStep._end.valueOf()%26%26currentValue!%3DpreviousTime)%7Bvar%20prevValue%3Dmoment(previousTime)%3Bvar%20newValue%3Dmoment(endDate)%3Bif(prevValue.year()!%3DnewValue.year())%7BtimeStep.switchedYear%3Dtrue%7Delse%20if(prevValue.month()!%3DnewValue.month())%7BtimeStep.switchedMonth%3Dtrue%7Delse%20if(prevValue.dayOfYear()!%3DnewValue.dayOfYear())%7BtimeStep.switchedDay%3Dtrue%7DtimeStep.current%3DnewValue%7D%7D%3Bexports.toScreen%3Dfunction(Core%2Ctime%2Cwidth)%7Bvar%20conversion%3Bif(Core.body.hiddenDates.length%3D%3D0)%7Bconversion%3DCore.range.conversion(width)%3Breturn(time.valueOf()-conversion.offset)*conversion.scale%7Delse%7Bvar%20hidden%3Dexports.isHidden(time%2CCore.body.hiddenDates)%3Bif(hidden.hidden%3D%3Dtrue)%7Btime%3Dhidden.startDate%7Dvar%20duration%3Dexports.getHiddenDurationBetween(Core.body.hiddenDates%2CCore.range.start%2CCore.range.end)%3Bif(time%3CCore.range.start)%7Bconversion%3DCore.range.conversion(width%2Cduration)%3Bvar%20hiddenBeforeStart%3Dexports.getHiddenDurationBeforeStart(Core.body.hiddenDates%2Ctime%2Cconversion.offset)%3Btime%3DCore.options.moment(time).toDate().valueOf()%3Btime%3Dtime%2BhiddenBeforeStart%3Breturn-(conversion.offset-time.valueOf())*conversion.scale%7Delse%20if(time%3ECore.range.end)%7Bvar%20rangeAfterEnd%3D%7Bstart%3ACore.range.start%2Cend%3Atime%7D%3Btime%3Dexports.correctTimeForHidden(Core.options.moment%2CCore.body.hiddenDates%2CrangeAfterEnd%2Ctime)%3Bconversion%3DCore.range.conversion(width%2Cduration)%3Breturn(time.valueOf()-conversion.offset)*conversion.scale%7Delse%7Btime%3Dexports.correctTimeForHidden(Core.options.moment%2CCore.body.hiddenDates%2CCore.range%2Ctime)%3Bconversion%3DCore.range.conversion(width%2Cduration)%3Breturn(time.valueOf()-conversion.offset)*conversion.scale%7D%7D%7D%3Bexports.toTime%3Dfunction(Core%2Cx%2Cwidth)%7Bif(Core.body.hiddenDates.length%3D%3D0)%7Bvar%20conversion%3DCore.range.conversion(width)%3Breturn%20new%20Date(x%2Fconversion.scale%2Bconversion.offset)%7Delse%7Bvar%20hiddenDuration%3Dexports.getHiddenDurationBetween(Core.body.hiddenDates%2CCore.range.start%2CCore.range.end)%3Bvar%20totalDuration%3DCore.range.end-Core.range.start-hiddenDuration%3Bvar%20partialDuration%3DtotalDuration*x%2Fwidth%3Bvar%20accumulatedHiddenDuration%3Dexports.getAccumulatedHiddenDuration(Core.body.hiddenDates%2CCore.range%2CpartialDuration)%3Breturn%20new%20Date(accumulatedHiddenDuration%2BpartialDuration%2BCore.range.start)%7D%7D%3Bexports.getHiddenDurationBetween%3Dfunction(hiddenDates%2Cstart%2Cend)%7Bvar%20duration%3D0%3Bfor(var%20i%3D0%3Bi%3ChiddenDates.length%3Bi%2B%2B)%7Bvar%20startDate%3DhiddenDates%5Bi%5D.start%3Bvar%20endDate%3DhiddenDates%5Bi%5D.end%3Bif(startDate%3E%3Dstart%26%26endDate%3Cend)%7Bduration%2B%3DendDate-startDate%7D%7Dreturn%20duration%7D%3Bexports.getHiddenDurationBeforeStart%3Dfunction(hiddenDates%2Cstart%2Cend)%7Bvar%20duration%3D0%3Bfor(var%20i%3D0%3Bi%3ChiddenDates.length%3Bi%2B%2B)%7Bvar%20startDate%3DhiddenDates%5Bi%5D.start%3Bvar%20endDate%3DhiddenDates%5Bi%5D.end%3Bif(startDate%3E%3Dstart%26%26endDate%3C%3Dend)%7Bduration%2B%3DendDate-startDate%7D%7Dreturn%20duration%7D%3Bexports.correctTimeForHidden%3Dfunction(moment%2ChiddenDates%2Crange%2Ctime)%7Btime%3Dmoment(time).toDate().valueOf()%3Btime-%3Dexports.getHiddenDurationBefore(moment%2ChiddenDates%2Crange%2Ctime)%3Breturn%20time%7D%3Bexports.getHiddenDurationBefore%3Dfunction(moment%2ChiddenDates%2Crange%2Ctime)%7Bvar%20timeOffset%3D0%3Btime%3Dmoment(time).toDate().valueOf()%3Bfor(var%20i%3D0%3Bi%3ChiddenDates.length%3Bi%2B%2B)%7Bvar%20startDate%3DhiddenDates%5Bi%5D.start%3Bvar%20endDate%3DhiddenDates%5Bi%5D.end%3Bif(startDate%3E%3Drange.start%26%26endDate%3Crange.end)%7Bif(time%3E%3DendDate)%7BtimeOffset%2B%3DendDate-startDate%7D%7D%7Dreturn%20timeOffset%7D%3Bexports.getAccumulatedHiddenDuration%3Dfunction(hiddenDates%2Crange%2CrequiredDuration)%7Bvar%20hiddenDuration%3D0%3Bvar%20duration%3D0%3Bvar%20previousPoint%3Drange.start%3Bfor(var%20i%3D0%3Bi%3ChiddenDates.length%3Bi%2B%2B)%7Bvar%20startDate%3DhiddenDates%5Bi%5D.start%3Bvar%20endDate%3DhiddenDates%5Bi%5D.end%3Bif(startDate%3E%3Drange.start%26%26endDate%3Crange.end)%7Bduration%2B%3DstartDate-previousPoint%3BpreviousPoint%3DendDate%3Bif(duration%3E%3DrequiredDuration)%7Bbreak%7Delse%7BhiddenDuration%2B%3DendDate-startDate%7D%7D%7Dreturn%20hiddenDuration%7D%3Bexports.snapAwayFromHidden%3Dfunction(hiddenDates%2Ctime%2Cdirection%2CcorrectionEnabled)%7Bvar%20isHidden%3Dexports.isHidden(time%2ChiddenDates)%3Bif(isHidden.hidden%3D%3Dtrue)%7Bif(direction%3C0)%7Bif(correctionEnabled%3D%3Dtrue)%7Breturn%20isHidden.startDate-(isHidden.endDate-time)-1%7Delse%7Breturn%20isHidden.startDate-1%7D%7Delse%7Bif(correctionEnabled%3D%3Dtrue)%7Breturn%20isHidden.endDate%2B(time-isHidden.startDate)%2B1%7Delse%7Breturn%20isHidden.endDate%2B1%7D%7D%7Delse%7Breturn%20time%7D%7D%3Bexports.isHidden%3Dfunction(time%2ChiddenDates)%7Bfor(var%20i%3D0%3Bi%3ChiddenDates.length%3Bi%2B%2B)%7Bvar%20startDate%3DhiddenDates%5Bi%5D.start%3Bvar%20endDate%3DhiddenDates%5Bi%5D.end%3Bif(time%3E%3DstartDate%26%26time%3CendDate)%7Breturn%7Bhidden%3Atrue%2CstartDate%3AstartDate%2CendDate%3AendDate%7D%7D%7Dreturn%7Bhidden%3Afalse%2CstartDate%3AstartDate%2CendDate%3AendDate%7D%7D%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bexports.onTouch%3Dfunction(hammer%2Ccallback)%7Bcallback.inputHandler%3Dfunction(event)%7Bif(event.isFirst)%7Bcallback(event)%7D%7D%3Bhammer.on(%5C%5C%5C%22hammer.input%5C%5C%5C%22%2Ccallback.inputHandler)%7D%3Bexports.onRelease%3Dfunction(hammer%2Ccallback)%7Bcallback.inputHandler%3Dfunction(event)%7Bif(event.isFinal)%7Bcallback(event)%7D%7D%3Breturn%20hammer.on(%5C%5C%5C%22hammer.input%5C%5C%5C%22%2Ccallback.inputHandler)%7D%3Bexports.offTouch%3Dfunction(hammer%2Ccallback)%7Bhammer.off(%5C%5C%5C%22hammer.input%5C%5C%5C%22%2Ccallback.inputHandler)%7D%3Bexports.offRelease%3Dexports.offTouch%3Bexports.disablePreventDefaultVertically%3Dfunction(pinchRecognizer)%7Bvar%20TOUCH_ACTION_PAN_Y%3D%5C%5C%5C%22pan-y%5C%5C%5C%22%3BpinchRecognizer.getTouchAction%3Dfunction()%7Breturn%5BTOUCH_ACTION_PAN_Y%5D%7D%3Breturn%20pinchRecognizer%7D%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bvar%20_typeof2%3D__webpack_require__(6)%3Bvar%20_typeof3%3D_interopRequireDefault(_typeof2)%3Bvar%20_keys%3D__webpack_require__(8)%3Bvar%20_keys2%3D_interopRequireDefault(_keys)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20Hammer%3D__webpack_require__(10)%3Bvar%20util%3D__webpack_require__(2)%3Bvar%20moment%3D__webpack_require__(9)%3Bfunction%20Item(data%2Cconversion%2Coptions)%7Bthis.id%3Dnull%3Bthis.parent%3Dnull%3Bthis.data%3Ddata%3Bthis.dom%3Dnull%3Bthis.conversion%3Dconversion%7C%7C%7B%7D%3Bthis.options%3Doptions%7C%7C%7B%7D%3Bthis.selected%3Dfalse%3Bthis.displayed%3Dfalse%3Bthis.groupShowing%3Dtrue%3Bthis.dirty%3Dtrue%3Bthis.top%3Dnull%3Bthis.right%3Dnull%3Bthis.left%3Dnull%3Bthis.width%3Dnull%3Bthis.height%3Dnull%3Bthis.editable%3Dnull%3Bthis._updateEditStatus()%7DItem.prototype.stack%3Dtrue%3BItem.prototype.select%3Dfunction()%7Bthis.selected%3Dtrue%3Bthis.dirty%3Dtrue%3Bif(this.displayed)this.redraw()%7D%3BItem.prototype.unselect%3Dfunction()%7Bthis.selected%3Dfalse%3Bthis.dirty%3Dtrue%3Bif(this.displayed)this.redraw()%7D%3BItem.prototype.setData%3Dfunction(data)%7Bvar%20groupChanged%3Ddata.group!%3Dundefined%26%26this.data.group!%3Ddata.group%3Bif(groupChanged%26%26this.parent!%3Dnull)%7Bthis.parent.itemSet._moveToGroup(this%2Cdata.group)%7Dif(this.parent)%7Bthis.parent.stackDirty%3Dtrue%7Dvar%20subGroupChanged%3Ddata.subgroup!%3Dundefined%26%26this.data.subgroup!%3Ddata.subgroup%3Bif(subGroupChanged%26%26this.parent!%3Dnull)%7Bthis.parent.changeSubgroup(this%2Cthis.data.subgroup%2Cdata.subgroup)%7Dthis.data%3Ddata%3Bthis._updateEditStatus()%3Bthis.dirty%3Dtrue%3Bif(this.displayed)this.redraw()%7D%3BItem.prototype.setParent%3Dfunction(parent)%7Bif(this.displayed)%7Bthis.hide()%3Bthis.parent%3Dparent%3Bif(this.parent)%7Bthis.show()%7D%7Delse%7Bthis.parent%3Dparent%7D%7D%3BItem.prototype.isVisible%3Dfunction(range)%7Breturn%20false%7D%3BItem.prototype.show%3Dfunction()%7Breturn%20false%7D%3BItem.prototype.hide%3Dfunction()%7Breturn%20false%7D%3BItem.prototype.redraw%3Dfunction()%7B%7D%3BItem.prototype.repositionX%3Dfunction()%7B%7D%3BItem.prototype.repositionY%3Dfunction()%7B%7D%3BItem.prototype._repaintDragCenter%3Dfunction()%7Bif(this.selected%26%26this.options.editable.updateTime%26%26!this.dom.dragCenter)%7Bvar%20me%3Dthis%3Bvar%20dragCenter%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3BdragCenter.className%3D%5C%5C%5C%22vis-drag-center%5C%5C%5C%22%3BdragCenter.dragCenterItem%3Dthis%3Bvar%20hammer%3Dnew%20Hammer(dragCenter)%3Bhammer.on(%5C%5C%5C%22tap%5C%5C%5C%22%2Cfunction(event)%7Bme.parent.itemSet.body.emitter.emit(%5C%5C%5C%22click%5C%5C%5C%22%2C%7Bevent%3Aevent%2Citem%3Ame.id%7D)%7D)%3Bhammer.on(%5C%5C%5C%22doubletap%5C%5C%5C%22%2Cfunction(event)%7Bevent.stopPropagation()%3Bme.parent.itemSet._onUpdateItem(me)%3Bme.parent.itemSet.body.emitter.emit(%5C%5C%5C%22doubleClick%5C%5C%5C%22%2C%7Bevent%3Aevent%2Citem%3Ame.id%7D)%7D)%3Bif(this.dom.box)%7Bif(this.dom.dragLeft)%7Bthis.dom.box.insertBefore(dragCenter%2Cthis.dom.dragLeft)%7Delse%7Bthis.dom.box.appendChild(dragCenter)%7D%7Delse%20if(this.dom.point)%7Bthis.dom.point.appendChild(dragCenter)%7Dthis.dom.dragCenter%3DdragCenter%7Delse%20if(!this.selected%26%26this.dom.dragCenter)%7Bif(this.dom.dragCenter.parentNode)%7Bthis.dom.dragCenter.parentNode.removeChild(this.dom.dragCenter)%7Dthis.dom.dragCenter%3Dnull%7D%7D%3BItem.prototype._repaintDeleteButton%3Dfunction(anchor)%7Bvar%20editable%3D(this.options.editable.overrideItems%7C%7Cthis.editable%3D%3Dnull)%26%26this.options.editable.remove%7C%7C!this.options.editable.overrideItems%26%26this.editable!%3Dnull%26%26this.editable.remove%3Bif(this.selected%26%26editable%26%26!this.dom.deleteButton)%7Bvar%20me%3Dthis%3Bvar%20deleteButton%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bif(this.options.rtl)%7BdeleteButton.className%3D%5C%5C%5C%22vis-delete-rtl%5C%5C%5C%22%7Delse%7BdeleteButton.className%3D%5C%5C%5C%22vis-delete%5C%5C%5C%22%7DdeleteButton.title%3D%5C%5C%5C%22Delete%20this%20item%5C%5C%5C%22%3Bnew%20Hammer(deleteButton).on(%5C%5C%5C%22tap%5C%5C%5C%22%2Cfunction(event)%7Bevent.stopPropagation()%3Bme.parent.removeFromDataSet(me)%7D)%3Banchor.appendChild(deleteButton)%3Bthis.dom.deleteButton%3DdeleteButton%7Delse%20if(!this.selected%26%26this.dom.deleteButton)%7Bif(this.dom.deleteButton.parentNode)%7Bthis.dom.deleteButton.parentNode.removeChild(this.dom.deleteButton)%7Dthis.dom.deleteButton%3Dnull%7D%7D%3BItem.prototype._repaintOnItemUpdateTimeTooltip%3Dfunction(anchor)%7Bif(!this.options.tooltipOnItemUpdateTime)return%3Bvar%20editable%3D(this.options.editable.updateTime%7C%7Cthis.data.editable%3D%3D%3Dtrue)%26%26this.data.editable!%3D%3Dfalse%3Bif(this.selected%26%26editable%26%26!this.dom.onItemUpdateTimeTooltip)%7Bvar%20onItemUpdateTimeTooltip%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3BonItemUpdateTimeTooltip.className%3D%5C%5C%5C%22vis-onUpdateTime-tooltip%5C%5C%5C%22%3Banchor.appendChild(onItemUpdateTimeTooltip)%3Bthis.dom.onItemUpdateTimeTooltip%3DonItemUpdateTimeTooltip%7Delse%20if(!this.selected%26%26this.dom.onItemUpdateTimeTooltip)%7Bif(this.dom.onItemUpdateTimeTooltip.parentNode)%7Bthis.dom.onItemUpdateTimeTooltip.parentNode.removeChild(this.dom.onItemUpdateTimeTooltip)%7Dthis.dom.onItemUpdateTimeTooltip%3Dnull%7Dif(this.dom.onItemUpdateTimeTooltip)%7Bthis.dom.onItemUpdateTimeTooltip.style.visibility%3Dthis.parent.itemSet.touchParams.itemIsDragging%3F%5C%5C%5C%22visible%5C%5C%5C%22%3A%5C%5C%5C%22hidden%5C%5C%5C%22%3Bif(this.options.rtl)%7Bthis.dom.onItemUpdateTimeTooltip.style.right%3Dthis.dom.content.style.right%7Delse%7Bthis.dom.onItemUpdateTimeTooltip.style.left%3Dthis.dom.content.style.left%7Dvar%20tooltipOffset%3D50%3Bvar%20scrollTop%3Dthis.parent.itemSet.body.domProps.scrollTop%3Bvar%20itemDistanceFromTop%3Bif(this.options.orientation.item%3D%3D%5C%5C%5C%22top%5C%5C%5C%22)%7BitemDistanceFromTop%3Dthis.top%7Delse%7BitemDistanceFromTop%3Dthis.parent.height-this.top-this.height%7Dvar%20isCloseToTop%3DitemDistanceFromTop%2Bthis.parent.top-tooltipOffset%3C-scrollTop%3Bif(isCloseToTop)%7Bthis.dom.onItemUpdateTimeTooltip.style.bottom%3D%5C%5C%5C%22%5C%5C%5C%22%3Bthis.dom.onItemUpdateTimeTooltip.style.top%3Dthis.height%2B2%2B%5C%5C%5C%22px%5C%5C%5C%22%7Delse%7Bthis.dom.onItemUpdateTimeTooltip.style.top%3D%5C%5C%5C%22%5C%5C%5C%22%3Bthis.dom.onItemUpdateTimeTooltip.style.bottom%3Dthis.height%2B2%2B%5C%5C%5C%22px%5C%5C%5C%22%7Dvar%20content%3Bvar%20templateFunction%3Bif(this.options.tooltipOnItemUpdateTime%26%26this.options.tooltipOnItemUpdateTime.template)%7BtemplateFunction%3Dthis.options.tooltipOnItemUpdateTime.template.bind(this)%3Bcontent%3DtemplateFunction(this.data)%7Delse%7Bcontent%3D%5C%5C%5C%22start%3A%20%5C%5C%5C%22%2Bmoment(this.data.start).format(%5C%5C%5C%22MM%2FDD%2FYYYY%20hh%3Amm%5C%5C%5C%22)%3Bif(this.data.end)%7Bcontent%2B%3D%5C%5C%5C%22%3Cbr%3E%20end%3A%20%5C%5C%5C%22%2Bmoment(this.data.end).format(%5C%5C%5C%22MM%2FDD%2FYYYY%20hh%3Amm%5C%5C%5C%22)%7D%7Dthis.dom.onItemUpdateTimeTooltip.innerHTML%3Dcontent%7D%7D%3BItem.prototype._updateContents%3Dfunction(element)%7Bvar%20content%3Bvar%20changed%3Bvar%20templateFunction%3Bvar%20itemVisibleFrameContent%3Bvar%20visibleFrameTemplateFunction%3Bvar%20itemData%3Dthis.parent.itemSet.itemsData.get(this.id)%3Bvar%20frameElement%3Dthis.dom.box%7C%7Cthis.dom.point%3Bvar%20itemVisibleFrameContentElement%3DframeElement.getElementsByClassName(%5C%5C%5C%22vis-item-visible-frame%5C%5C%5C%22)%5B0%5D%3Bif(this.options.visibleFrameTemplate)%7BvisibleFrameTemplateFunction%3Dthis.options.visibleFrameTemplate.bind(this)%3BitemVisibleFrameContent%3DvisibleFrameTemplateFunction(itemData%2CframeElement)%7Delse%7BitemVisibleFrameContent%3D%5C%5C%5C%22%5C%5C%5C%22%7Dif(itemVisibleFrameContentElement)%7Bif(itemVisibleFrameContent%20instanceof%20Object%26%26!(itemVisibleFrameContent%20instanceof%20Element))%7BvisibleFrameTemplateFunction(itemData%2CitemVisibleFrameContentElement)%7Delse%7Bchanged%3Dthis._contentToString(this.itemVisibleFrameContent)!%3D%3Dthis._contentToString(itemVisibleFrameContent)%3Bif(changed)%7Bif(itemVisibleFrameContent%20instanceof%20Element)%7BitemVisibleFrameContentElement.innerHTML%3D%5C%5C%5C%22%5C%5C%5C%22%3BitemVisibleFrameContentElement.appendChild(itemVisibleFrameContent)%7Delse%20if(itemVisibleFrameContent!%3Dundefined)%7BitemVisibleFrameContentElement.innerHTML%3DitemVisibleFrameContent%7Delse%7Bif(!(this.data.type%3D%3D%5C%5C%5C%22background%5C%5C%5C%22%26%26this.data.content%3D%3D%3Dundefined))%7Bthrow%20new%20Error('Property%20%5C%5C%5C%22content%5C%5C%5C%22%20missing%20in%20item%20'%2Bthis.id)%7D%7Dthis.itemVisibleFrameContent%3DitemVisibleFrameContent%7D%7D%7Dif(this.options.template)%7BtemplateFunction%3Dthis.options.template.bind(this)%3Bcontent%3DtemplateFunction(itemData%2Celement%2Cthis.data)%7Delse%7Bcontent%3Dthis.data.content%7Dif(content%20instanceof%20Object%26%26!(content%20instanceof%20Element))%7BtemplateFunction(itemData%2Celement)%7Delse%7Bchanged%3Dthis._contentToString(this.content)!%3D%3Dthis._contentToString(content)%3Bif(changed)%7Bif(content%20instanceof%20Element)%7Belement.innerHTML%3D%5C%5C%5C%22%5C%5C%5C%22%3Belement.appendChild(content)%7Delse%20if(content!%3Dundefined)%7Belement.innerHTML%3Dcontent%7Delse%7Bif(!(this.data.type%3D%3D%5C%5C%5C%22background%5C%5C%5C%22%26%26this.data.content%3D%3D%3Dundefined))%7Bthrow%20new%20Error('Property%20%5C%5C%5C%22content%5C%5C%5C%22%20missing%20in%20item%20'%2Bthis.id)%7D%7Dthis.content%3Dcontent%7D%7D%7D%3BItem.prototype._updateDataAttributes%3Dfunction(element)%7Bif(this.options.dataAttributes%26%26this.options.dataAttributes.length%3E0)%7Bvar%20attributes%3D%5B%5D%3Bif(Array.isArray(this.options.dataAttributes))%7Battributes%3Dthis.options.dataAttributes%7Delse%20if(this.options.dataAttributes%3D%3D%5C%5C%5C%22all%5C%5C%5C%22)%7Battributes%3D(0%2C_keys2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this.data)%7Delse%7Breturn%7Dfor(var%20i%3D0%3Bi%3Cattributes.length%3Bi%2B%2B)%7Bvar%20name%3Dattributes%5Bi%5D%3Bvar%20value%3Dthis.data%5Bname%5D%3Bif(value!%3Dnull)%7Belement.setAttribute(%5C%5C%5C%22data-%5C%5C%5C%22%2Bname%2Cvalue)%7Delse%7Belement.removeAttribute(%5C%5C%5C%22data-%5C%5C%5C%22%2Bname)%7D%7D%7D%7D%3BItem.prototype._updateStyle%3Dfunction(element)%7Bif(this.style)%7Butil.removeCssText(element%2Cthis.style)%3Bthis.style%3Dnull%7Dif(this.data.style)%7Butil.addCssText(element%2Cthis.data.style)%3Bthis.style%3Dthis.data.style%7D%7D%3BItem.prototype._contentToString%3Dfunction(content)%7Bif(typeof%20content%3D%3D%3D%5C%5C%5C%22string%5C%5C%5C%22)return%20content%3Bif(content%26%26%5C%5C%5C%22outerHTML%5C%5C%5C%22in%20content)return%20content.outerHTML%3Breturn%20content%7D%3BItem.prototype._updateEditStatus%3Dfunction()%7Bif(this.options)%7Bif(typeof%20this.options.editable%3D%3D%3D%5C%5C%5C%22boolean%5C%5C%5C%22)%7Bthis.editable%3D%7BupdateTime%3Athis.options.editable%2CupdateGroup%3Athis.options.editable%2Cremove%3Athis.options.editable%7D%7Delse%20if((0%2C_typeof3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this.options.editable)%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22)%7Bthis.editable%3D%7B%7D%3Butil.selectiveExtend(%5B%5C%5C%5C%22updateTime%5C%5C%5C%22%2C%5C%5C%5C%22updateGroup%5C%5C%5C%22%2C%5C%5C%5C%22remove%5C%5C%5C%22%5D%2Cthis.editable%2Cthis.options.editable)%7D%7Dif(!this.options%7C%7C!this.options.editable%7C%7Cthis.options.editable.overrideItems!%3D%3Dtrue)%7Bif(this.data)%7Bif(typeof%20this.data.editable%3D%3D%3D%5C%5C%5C%22boolean%5C%5C%5C%22)%7Bthis.editable%3D%7BupdateTime%3Athis.data.editable%2CupdateGroup%3Athis.data.editable%2Cremove%3Athis.data.editable%7D%7Delse%20if((0%2C_typeof3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this.data.editable)%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22)%7Bthis.editable%3D%7B%7D%3Butil.selectiveExtend(%5B%5C%5C%5C%22updateTime%5C%5C%5C%22%2C%5C%5C%5C%22updateGroup%5C%5C%5C%22%2C%5C%5C%5C%22remove%5C%5C%5C%22%5D%2Cthis.editable%2Cthis.data.editable)%7D%7D%7D%7D%3BItem.prototype.getWidthLeft%3Dfunction()%7Breturn%200%7D%3BItem.prototype.getWidthRight%3Dfunction()%7Breturn%200%7D%3BItem.prototype.getTitle%3Dfunction()%7Breturn%20this.data.title%7D%3Bmodule.exports%3DItem%7D%2Cfunction(module%2Cexports)%7Bmodule.exports%3Dfunction(bitmap%2Cvalue)%7Breturn%7Benumerable%3A!(bitmap%261)%2Cconfigurable%3A!(bitmap%262)%2Cwritable%3A!(bitmap%264)%2Cvalue%3Avalue%7D%7D%7D%2Cfunction(module%2Cexports)%7Bvar%20id%3D0%3Bvar%20px%3DMath.random()%3Bmodule.exports%3Dfunction(key)%7Breturn%5C%5C%5C%22Symbol(%5C%5C%5C%22.concat(key%3D%3D%3Dundefined%3F%5C%5C%5C%22%5C%5C%5C%22%3Akey%2C%5C%5C%5C%22)_%5C%5C%5C%22%2C(%2B%2Bid%2Bpx).toString(36))%7D%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7Bvar%20defined%3D__webpack_require__(51)%3Bmodule.exports%3Dfunction(it)%7Breturn%20Object(defined(it))%7D%7D%2Cfunction(module%2Cexports)%7Bexports.f%3D%7B%7D.propertyIsEnumerable%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bfunction%20Queue(options)%7Bthis.delay%3Dnull%3Bthis.max%3DInfinity%3Bthis._queue%3D%5B%5D%3Bthis._timeout%3Dnull%3Bthis._extended%3Dnull%3Bthis.setOptions(options)%7DQueue.prototype.setOptions%3Dfunction(options)%7Bif(options%26%26typeof%20options.delay!%3D%3D%5C%5C%5C%22undefined%5C%5C%5C%22)%7Bthis.delay%3Doptions.delay%7Dif(options%26%26typeof%20options.max!%3D%3D%5C%5C%5C%22undefined%5C%5C%5C%22)%7Bthis.max%3Doptions.max%7Dthis._flushIfNeeded()%7D%3BQueue.extend%3Dfunction(object%2Coptions)%7Bvar%20queue%3Dnew%20Queue(options)%3Bif(object.flush!%3D%3Dundefined)%7Bthrow%20new%20Error(%5C%5C%5C%22Target%20object%20already%20has%20a%20property%20flush%5C%5C%5C%22)%7Dobject.flush%3Dfunction()%7Bqueue.flush()%7D%3Bvar%20methods%3D%5B%7Bname%3A%5C%5C%5C%22flush%5C%5C%5C%22%2Coriginal%3Aundefined%7D%5D%3Bif(options%26%26options.replace)%7Bfor(var%20i%3D0%3Bi%3Coptions.replace.length%3Bi%2B%2B)%7Bvar%20name%3Doptions.replace%5Bi%5D%3Bmethods.push(%7Bname%3Aname%2Coriginal%3Aobject%5Bname%5D%7D)%3Bqueue.replace(object%2Cname)%7D%7Dqueue._extended%3D%7Bobject%3Aobject%2Cmethods%3Amethods%7D%3Breturn%20queue%7D%3BQueue.prototype.destroy%3Dfunction()%7Bthis.flush()%3Bif(this._extended)%7Bvar%20object%3Dthis._extended.object%3Bvar%20methods%3Dthis._extended.methods%3Bfor(var%20i%3D0%3Bi%3Cmethods.length%3Bi%2B%2B)%7Bvar%20method%3Dmethods%5Bi%5D%3Bif(method.original)%7Bobject%5Bmethod.name%5D%3Dmethod.original%7Delse%7Bdelete%20object%5Bmethod.name%5D%7D%7Dthis._extended%3Dnull%7D%7D%3BQueue.prototype.replace%3Dfunction(object%2Cmethod)%7Bvar%20me%3Dthis%3Bvar%20original%3Dobject%5Bmethod%5D%3Bif(!original)%7Bthrow%20new%20Error(%5C%5C%5C%22Method%20%5C%5C%5C%22%2Bmethod%2B%5C%5C%5C%22%20undefined%5C%5C%5C%22)%7Dobject%5Bmethod%5D%3Dfunction()%7Bvar%20args%3D%5B%5D%3Bfor(var%20i%3D0%3Bi%3Carguments.length%3Bi%2B%2B)%7Bargs%5Bi%5D%3Darguments%5Bi%5D%7Dme.queue(%7Bargs%3Aargs%2Cfn%3Aoriginal%2Ccontext%3Athis%7D)%7D%7D%3BQueue.prototype.queue%3Dfunction(entry)%7Bif(typeof%20entry%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22)%7Bthis._queue.push(%7Bfn%3Aentry%7D)%7Delse%7Bthis._queue.push(entry)%7Dthis._flushIfNeeded()%7D%3BQueue.prototype._flushIfNeeded%3Dfunction()%7B%5C%5Cnif(this._queue.length%3Ethis.max)%7Bthis.flush()%7DclearTimeout(this._timeout)%3Bif(this.queue.length%3E0%26%26typeof%20this.delay%3D%3D%3D%5C%5C%5C%22number%5C%5C%5C%22)%7Bvar%20me%3Dthis%3Bthis._timeout%3DsetTimeout(function()%7Bme.flush()%7D%2Cthis.delay)%7D%7D%3BQueue.prototype.flush%3Dfunction()%7Bwhile(this._queue.length%3E0)%7Bvar%20entry%3Dthis._queue.shift()%3Bentry.fn.apply(entry.context%7C%7Centry.fn%2Centry.args%7C%7C%5B%5D)%7D%7D%3Bmodule.exports%3DQueue%7D%2Cfunction(module%2Cexports)%7Bmodule.exports%3DEmitter%3Bfunction%20Emitter(obj)%7Bif(obj)return%20mixin(obj)%7Dfunction%20mixin(obj)%7Bfor(var%20key%20in%20Emitter.prototype)%7Bobj%5Bkey%5D%3DEmitter.prototype%5Bkey%5D%7Dreturn%20obj%7DEmitter.prototype.on%3DEmitter.prototype.addEventListener%3Dfunction(event%2Cfn)%7Bthis._callbacks%3Dthis._callbacks%7C%7C%7B%7D%3B(this._callbacks%5Bevent%5D%3Dthis._callbacks%5Bevent%5D%7C%7C%5B%5D).push(fn)%3Breturn%20this%7D%3BEmitter.prototype.once%3Dfunction(event%2Cfn)%7Bvar%20self%3Dthis%3Bthis._callbacks%3Dthis._callbacks%7C%7C%7B%7D%3Bfunction%20on()%7Bself.off(event%2Con)%3Bfn.apply(this%2Carguments)%7Don.fn%3Dfn%3Bthis.on(event%2Con)%3Breturn%20this%7D%3BEmitter.prototype.off%3DEmitter.prototype.removeListener%3DEmitter.prototype.removeAllListeners%3DEmitter.prototype.removeEventListener%3Dfunction(event%2Cfn)%7Bthis._callbacks%3Dthis._callbacks%7C%7C%7B%7D%3Bif(0%3D%3Darguments.length)%7Bthis._callbacks%3D%7B%7D%3Breturn%20this%7Dvar%20callbacks%3Dthis._callbacks%5Bevent%5D%3Bif(!callbacks)return%20this%3Bif(1%3D%3Darguments.length)%7Bdelete%20this._callbacks%5Bevent%5D%3Breturn%20this%7Dvar%20cb%3Bfor(var%20i%3D0%3Bi%3Ccallbacks.length%3Bi%2B%2B)%7Bcb%3Dcallbacks%5Bi%5D%3Bif(cb%3D%3D%3Dfn%7C%7Ccb.fn%3D%3D%3Dfn)%7Bcallbacks.splice(i%2C1)%3Bbreak%7D%7Dreturn%20this%7D%3BEmitter.prototype.emit%3Dfunction(event)%7Bthis._callbacks%3Dthis._callbacks%7C%7C%7B%7D%3Bvar%20args%3D%5B%5D.slice.call(arguments%2C1)%2Ccallbacks%3Dthis._callbacks%5Bevent%5D%3Bif(callbacks)%7Bcallbacks%3Dcallbacks.slice(0)%3Bfor(var%20i%3D0%2Clen%3Dcallbacks.length%3Bi%3Clen%3B%2B%2Bi)%7Bcallbacks%5Bi%5D.apply(this%2Cargs)%7D%7Dreturn%20this%7D%3BEmitter.prototype.listeners%3Dfunction(event)%7Bthis._callbacks%3Dthis._callbacks%7C%7C%7B%7D%3Breturn%20this._callbacks%5Bevent%5D%7C%7C%5B%5D%7D%3BEmitter.prototype.hasListeners%3Dfunction(event)%7Breturn!!this.listeners(event).length%7D%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bvar%20_typeof2%3D__webpack_require__(6)%3Bvar%20_typeof3%3D_interopRequireDefault(_typeof2)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20util%3D__webpack_require__(2)%3Bvar%20Component%3D__webpack_require__(16)%3Bvar%20TimeStep%3D__webpack_require__(66)%3Bvar%20DateUtil%3D__webpack_require__(36)%3Bvar%20moment%3D__webpack_require__(9)%3Bfunction%20TimeAxis(body%2Coptions)%7Bthis.dom%3D%7Bforeground%3Anull%2Clines%3A%5B%5D%2CmajorTexts%3A%5B%5D%2CminorTexts%3A%5B%5D%2Credundant%3A%7Blines%3A%5B%5D%2CmajorTexts%3A%5B%5D%2CminorTexts%3A%5B%5D%7D%7D%3Bthis.props%3D%7Brange%3A%7Bstart%3A0%2Cend%3A0%2CminimumStep%3A0%7D%2ClineTop%3A0%7D%3Bthis.defaultOptions%3D%7Borientation%3A%7Baxis%3A%5C%5C%5C%22bottom%5C%5C%5C%22%7D%2CshowMinorLabels%3Atrue%2CshowMajorLabels%3Atrue%2CmaxMinorChars%3A7%2Cformat%3ATimeStep.FORMAT%2Cmoment%3Amoment%2CtimeAxis%3Anull%7D%3Bthis.options%3Dutil.extend(%7B%7D%2Cthis.defaultOptions)%3Bthis.body%3Dbody%3Bthis._create()%3Bthis.setOptions(options)%7DTimeAxis.prototype%3Dnew%20Component%3BTimeAxis.prototype.setOptions%3Dfunction(options)%7Bif(options)%7Butil.selectiveExtend(%5B%5C%5C%5C%22showMinorLabels%5C%5C%5C%22%2C%5C%5C%5C%22showMajorLabels%5C%5C%5C%22%2C%5C%5C%5C%22maxMinorChars%5C%5C%5C%22%2C%5C%5C%5C%22hiddenDates%5C%5C%5C%22%2C%5C%5C%5C%22timeAxis%5C%5C%5C%22%2C%5C%5C%5C%22moment%5C%5C%5C%22%2C%5C%5C%5C%22rtl%5C%5C%5C%22%5D%2Cthis.options%2Coptions)%3Butil.selectiveDeepExtend(%5B%5C%5C%5C%22format%5C%5C%5C%22%5D%2Cthis.options%2Coptions)%3Bif(%5C%5C%5C%22orientation%5C%5C%5C%22in%20options)%7Bif(typeof%20options.orientation%3D%3D%3D%5C%5C%5C%22string%5C%5C%5C%22)%7Bthis.options.orientation.axis%3Doptions.orientation%7Delse%20if((0%2C_typeof3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(options.orientation)%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22%26%26%5C%5C%5C%22axis%5C%5C%5C%22in%20options.orientation)%7Bthis.options.orientation.axis%3Doptions.orientation.axis%7D%7Dif(%5C%5C%5C%22locale%5C%5C%5C%22in%20options)%7Bif(typeof%20moment.locale%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22)%7Bmoment.locale(options.locale)%7Delse%7Bmoment.lang(options.locale)%7D%7D%7D%7D%3BTimeAxis.prototype._create%3Dfunction()%7Bthis.dom.foreground%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bthis.dom.background%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bthis.dom.foreground.className%3D%5C%5C%5C%22vis-time-axis%20vis-foreground%5C%5C%5C%22%3Bthis.dom.background.className%3D%5C%5C%5C%22vis-time-axis%20vis-background%5C%5C%5C%22%7D%3BTimeAxis.prototype.destroy%3Dfunction()%7Bif(this.dom.foreground.parentNode)%7Bthis.dom.foreground.parentNode.removeChild(this.dom.foreground)%7Dif(this.dom.background.parentNode)%7Bthis.dom.background.parentNode.removeChild(this.dom.background)%7Dthis.body%3Dnull%7D%3BTimeAxis.prototype.redraw%3Dfunction()%7Bvar%20props%3Dthis.props%3Bvar%20foreground%3Dthis.dom.foreground%3Bvar%20background%3Dthis.dom.background%3Bvar%20parent%3Dthis.options.orientation.axis%3D%3D%5C%5C%5C%22top%5C%5C%5C%22%3Fthis.body.dom.top%3Athis.body.dom.bottom%3Bvar%20parentChanged%3Dforeground.parentNode!%3D%3Dparent%3Bthis._calculateCharSize()%3Bvar%20showMinorLabels%3Dthis.options.showMinorLabels%26%26this.options.orientation.axis!%3D%3D%5C%5C%5C%22none%5C%5C%5C%22%3Bvar%20showMajorLabels%3Dthis.options.showMajorLabels%26%26this.options.orientation.axis!%3D%3D%5C%5C%5C%22none%5C%5C%5C%22%3Bprops.minorLabelHeight%3DshowMinorLabels%3Fprops.minorCharHeight%3A0%3Bprops.majorLabelHeight%3DshowMajorLabels%3Fprops.majorCharHeight%3A0%3Bprops.height%3Dprops.minorLabelHeight%2Bprops.majorLabelHeight%3Bprops.width%3Dforeground.offsetWidth%3Bprops.minorLineHeight%3Dthis.body.domProps.root.height-props.majorLabelHeight-(this.options.orientation.axis%3D%3D%5C%5C%5C%22top%5C%5C%5C%22%3Fthis.body.domProps.bottom.height%3Athis.body.domProps.top.height)%3Bprops.minorLineWidth%3D1%3Bprops.majorLineHeight%3Dprops.minorLineHeight%2Bprops.majorLabelHeight%3Bprops.majorLineWidth%3D1%3Bvar%20foregroundNextSibling%3Dforeground.nextSibling%3Bvar%20backgroundNextSibling%3Dbackground.nextSibling%3Bforeground.parentNode%26%26foreground.parentNode.removeChild(foreground)%3Bbackground.parentNode%26%26background.parentNode.removeChild(background)%3Bforeground.style.height%3Dthis.props.height%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bthis._repaintLabels()%3Bif(foregroundNextSibling)%7Bparent.insertBefore(foreground%2CforegroundNextSibling)%7Delse%7Bparent.appendChild(foreground)%7Dif(backgroundNextSibling)%7Bthis.body.dom.backgroundVertical.insertBefore(background%2CbackgroundNextSibling)%7Delse%7Bthis.body.dom.backgroundVertical.appendChild(background)%7Dreturn%20this._isResized()%7C%7CparentChanged%7D%3BTimeAxis.prototype._repaintLabels%3Dfunction()%7Bvar%20orientation%3Dthis.options.orientation.axis%3Bvar%20start%3Dutil.convert(this.body.range.start%2C%5C%5C%5C%22Number%5C%5C%5C%22)%3Bvar%20end%3Dutil.convert(this.body.range.end%2C%5C%5C%5C%22Number%5C%5C%5C%22)%3Bvar%20timeLabelsize%3Dthis.body.util.toTime((this.props.minorCharWidth%7C%7C10)*this.options.maxMinorChars).valueOf()%3Bvar%20minimumStep%3DtimeLabelsize-DateUtil.getHiddenDurationBefore(this.options.moment%2Cthis.body.hiddenDates%2Cthis.body.range%2CtimeLabelsize)%3BminimumStep-%3Dthis.body.util.toTime(0).valueOf()%3Bvar%20step%3Dnew%20TimeStep(new%20Date(start)%2Cnew%20Date(end)%2CminimumStep%2Cthis.body.hiddenDates%2Cthis.options)%3Bstep.setMoment(this.options.moment)%3Bif(this.options.format)%7Bstep.setFormat(this.options.format)%7Dif(this.options.timeAxis)%7Bstep.setScale(this.options.timeAxis)%7Dthis.step%3Dstep%3Bvar%20dom%3Dthis.dom%3Bdom.redundant.lines%3Ddom.lines%3Bdom.redundant.majorTexts%3Ddom.majorTexts%3Bdom.redundant.minorTexts%3Ddom.minorTexts%3Bdom.lines%3D%5B%5D%3Bdom.majorTexts%3D%5B%5D%3Bdom.minorTexts%3D%5B%5D%3Bvar%20current%3Bvar%20next%3Bvar%20x%3Bvar%20xNext%3Bvar%20isMajor%3Bvar%20nextIsMajor%3Bvar%20showMinorGrid%3Bvar%20width%3D0%2CprevWidth%3Bvar%20line%3Bvar%20labelMinor%3Bvar%20xFirstMajorLabel%3Dundefined%3Bvar%20count%3D0%3Bvar%20MAX%3D1e3%3Bvar%20className%3Bstep.start()%3Bnext%3Dstep.getCurrent()%3BxNext%3Dthis.body.util.toScreen(next)%3Bwhile(step.hasNext()%26%26count%3CMAX)%7Bcount%2B%2B%3BisMajor%3Dstep.isMajor()%3BclassName%3Dstep.getClassName()%3BlabelMinor%3Dstep.getLabelMinor()%3Bcurrent%3Dnext%3Bx%3DxNext%3Bstep.next()%3Bnext%3Dstep.getCurrent()%3BnextIsMajor%3Dstep.isMajor()%3BxNext%3Dthis.body.util.toScreen(next)%3BprevWidth%3Dwidth%3Bwidth%3DxNext-x%3Bswitch(step.scale)%7Bcase%5C%5C%5C%22week%5C%5C%5C%22%3AshowMinorGrid%3Dtrue%3Bbreak%3Bdefault%3AshowMinorGrid%3Dwidth%3E%3DprevWidth*.4%3Bbreak%7Dif(this.options.showMinorLabels%26%26showMinorGrid)%7Bvar%20label%3Dthis._repaintMinorText(x%2ClabelMinor%2Corientation%2CclassName)%3Blabel.style.width%3Dwidth%2B%5C%5C%5C%22px%5C%5C%5C%22%7Dif(isMajor%26%26this.options.showMajorLabels)%7Bif(x%3E0)%7Bif(xFirstMajorLabel%3D%3Dundefined)%7BxFirstMajorLabel%3Dx%7Dlabel%3Dthis._repaintMajorText(x%2Cstep.getLabelMajor()%2Corientation%2CclassName)%7Dline%3Dthis._repaintMajorLine(x%2Cwidth%2Corientation%2CclassName)%7Delse%7Bif(showMinorGrid)%7Bline%3Dthis._repaintMinorLine(x%2Cwidth%2Corientation%2CclassName)%7Delse%7Bif(line)%7Bline.style.width%3DparseInt(line.style.width)%2Bwidth%2B%5C%5C%5C%22px%5C%5C%5C%22%7D%7D%7D%7Dif(count%3D%3D%3DMAX%26%26!warnedForOverflow)%7Bconsole.warn(%5C%5C%5C%22Something%20is%20wrong%20with%20the%20Timeline%20scale.%20Limited%20drawing%20of%20grid%20lines%20to%20%5C%5C%5C%22%2BMAX%2B%5C%5C%5C%22%20lines.%5C%5C%5C%22)%3BwarnedForOverflow%3Dtrue%7Dif(this.options.showMajorLabels)%7Bvar%20leftTime%3Dthis.body.util.toTime(0)%2CleftText%3Dstep.getLabelMajor(leftTime)%2CwidthText%3DleftText.length*(this.props.majorCharWidth%7C%7C10)%2B10%3Bif(xFirstMajorLabel%3D%3Dundefined%7C%7CwidthText%3CxFirstMajorLabel)%7Bthis._repaintMajorText(0%2CleftText%2Corientation%2CclassName)%7D%7Dutil.forEach(this.dom.redundant%2Cfunction(arr)%7Bwhile(arr.length)%7Bvar%20elem%3Darr.pop()%3Bif(elem%26%26elem.parentNode)%7Belem.parentNode.removeChild(elem)%7D%7D%7D)%7D%3BTimeAxis.prototype._repaintMinorText%3Dfunction(x%2Ctext%2Corientation%2CclassName)%7Bvar%20label%3Dthis.dom.redundant.minorTexts.shift()%3Bif(!label)%7Bvar%20content%3Ddocument.createTextNode(%5C%5C%5C%22%5C%5C%5C%22)%3Blabel%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Blabel.appendChild(content)%3Bthis.dom.foreground.appendChild(label)%7Dthis.dom.minorTexts.push(label)%3Blabel.innerHTML%3Dtext%3Blabel.style.top%3Dorientation%3D%3D%5C%5C%5C%22top%5C%5C%5C%22%3Fthis.props.majorLabelHeight%2B%5C%5C%5C%22px%5C%5C%5C%22%3A%5C%5C%5C%220%5C%5C%5C%22%3Bif(this.options.rtl)%7Blabel.style.left%3D%5C%5C%5C%22%5C%5C%5C%22%3Blabel.style.right%3Dx%2B%5C%5C%5C%22px%5C%5C%5C%22%7Delse%7Blabel.style.left%3Dx%2B%5C%5C%5C%22px%5C%5C%5C%22%7Dlabel.className%3D%5C%5C%5C%22vis-text%20vis-minor%20%5C%5C%5C%22%2BclassName%3Breturn%20label%7D%3BTimeAxis.prototype._repaintMajorText%3Dfunction(x%2Ctext%2Corientation%2CclassName)%7Bvar%20label%3Dthis.dom.redundant.majorTexts.shift()%3Bif(!label)%7Bvar%20content%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Blabel%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Blabel.appendChild(content)%3Bthis.dom.foreground.appendChild(label)%7Dlabel.childNodes%5B0%5D.innerHTML%3Dtext%3Blabel.className%3D%5C%5C%5C%22vis-text%20vis-major%20%5C%5C%5C%22%2BclassName%3Blabel.style.top%3Dorientation%3D%3D%5C%5C%5C%22top%5C%5C%5C%22%3F%5C%5C%5C%220%5C%5C%5C%22%3Athis.props.minorLabelHeight%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bif(this.options.rtl)%7Blabel.style.left%3D%5C%5C%5C%22%5C%5C%5C%22%3Blabel.style.right%3Dx%2B%5C%5C%5C%22px%5C%5C%5C%22%7Delse%7Blabel.style.left%3Dx%2B%5C%5C%5C%22px%5C%5C%5C%22%7Dthis.dom.majorTexts.push(label)%3Breturn%20label%7D%3BTimeAxis.prototype._repaintMinorLine%3Dfunction(x%2Cwidth%2Corientation%2CclassName)%7Bvar%20line%3Dthis.dom.redundant.lines.shift()%3Bif(!line)%7Bline%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bthis.dom.background.appendChild(line)%7Dthis.dom.lines.push(line)%3Bvar%20props%3Dthis.props%3Bif(orientation%3D%3D%5C%5C%5C%22top%5C%5C%5C%22)%7Bline.style.top%3Dprops.majorLabelHeight%2B%5C%5C%5C%22px%5C%5C%5C%22%7Delse%7Bline.style.top%3Dthis.body.domProps.top.height%2B%5C%5C%5C%22px%5C%5C%5C%22%7Dline.style.height%3Dprops.minorLineHeight%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bif(this.options.rtl)%7Bline.style.left%3D%5C%5C%5C%22%5C%5C%5C%22%3Bline.style.right%3Dx-props.minorLineWidth%2F2%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bline.className%3D%5C%5C%5C%22vis-grid%20vis-vertical-rtl%20vis-minor%20%5C%5C%5C%22%2BclassName%7Delse%7Bline.style.left%3Dx-props.minorLineWidth%2F2%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bline.className%3D%5C%5C%5C%22vis-grid%20vis-vertical%20vis-minor%20%5C%5C%5C%22%2BclassName%7Dline.style.width%3Dwidth%2B%5C%5C%5C%22px%5C%5C%5C%22%3Breturn%20line%7D%3BTimeAxis.prototype._repaintMajorLine%3Dfunction(x%2Cwidth%2Corientation%2CclassName)%7Bvar%20line%3Dthis.dom.redundant.lines.shift()%3Bif(!line)%7Bline%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bthis.dom.background.appendChild(line)%7Dthis.dom.lines.push(line)%3Bvar%20props%3Dthis.props%3Bif(orientation%3D%3D%5C%5C%5C%22top%5C%5C%5C%22)%7Bline.style.top%3D%5C%5C%5C%220%5C%5C%5C%22%7Delse%7Bline.style.top%3Dthis.body.domProps.top.height%2B%5C%5C%5C%22px%5C%5C%5C%22%7Dif(this.options.rtl)%7Bline.style.left%3D%5C%5C%5C%22%5C%5C%5C%22%3Bline.style.right%3Dx-props.majorLineWidth%2F2%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bline.className%3D%5C%5C%5C%22vis-grid%20vis-vertical-rtl%20vis-major%20%5C%5C%5C%22%2BclassName%7Delse%7Bline.style.left%3Dx-props.majorLineWidth%2F2%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bline.className%3D%5C%5C%5C%22vis-grid%20vis-vertical%20vis-major%20%5C%5C%5C%22%2BclassName%7Dline.style.height%3Dprops.majorLineHeight%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bline.style.width%3Dwidth%2B%5C%5C%5C%22px%5C%5C%5C%22%3Breturn%20line%7D%3BTimeAxis.prototype._calculateCharSize%3Dfunction()%7Bif(!this.dom.measureCharMinor)%7Bthis.dom.measureCharMinor%3Ddocument.createElement(%5C%5C%5C%22DIV%5C%5C%5C%22)%3Bthis.dom.measureCharMinor.className%3D%5C%5C%5C%22vis-text%20vis-minor%20vis-measure%5C%5C%5C%22%3Bthis.dom.measureCharMinor.style.position%3D%5C%5C%5C%22absolute%5C%5C%5C%22%3Bthis.dom.measureCharMinor.appendChild(document.createTextNode(%5C%5C%5C%220%5C%5C%5C%22))%3Bthis.dom.foreground.appendChild(this.dom.measureCharMinor)%7Dthis.props.minorCharHeight%3Dthis.dom.measureCharMinor.clientHeight%3Bthis.props.minorCharWidth%3Dthis.dom.measureCharMinor.clientWidth%3Bif(!this.dom.measureCharMajor)%7Bthis.dom.measureCharMajor%3Ddocument.createElement(%5C%5C%5C%22DIV%5C%5C%5C%22)%3Bthis.dom.measureCharMajor.className%3D%5C%5C%5C%22vis-text%20vis-major%20vis-measure%5C%5C%5C%22%3Bthis.dom.measureCharMajor.style.position%3D%5C%5C%5C%22absolute%5C%5C%5C%22%3Bthis.dom.measureCharMajor.appendChild(document.createTextNode(%5C%5C%5C%220%5C%5C%5C%22))%3Bthis.dom.foreground.appendChild(this.dom.measureCharMajor)%7Dthis.props.majorCharHeight%3Dthis.dom.measureCharMajor.clientHeight%3Bthis.props.majorCharWidth%3Dthis.dom.measureCharMajor.clientWidth%7D%3Bvar%20warnedForOverflow%3Dfalse%3Bmodule.exports%3DTimeAxis%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bvar%20Hammer%3D__webpack_require__(10)%3Bvar%20util%3D__webpack_require__(2)%3Bvar%20Component%3D__webpack_require__(16)%3Bvar%20moment%3D__webpack_require__(9)%3Bvar%20locales%3D__webpack_require__(98)%3Bfunction%20CustomTime(body%2Coptions)%7Bthis.body%3Dbody%3Bthis.defaultOptions%3D%7Bmoment%3Amoment%2Clocales%3Alocales%2Clocale%3A%5C%5C%5C%22en%5C%5C%5C%22%2Cid%3Aundefined%2Ctitle%3Aundefined%7D%3Bthis.options%3Dutil.extend(%7B%7D%2Cthis.defaultOptions)%3Bif(options%26%26options.time)%7Bthis.customTime%3Doptions.time%7Delse%7Bthis.customTime%3Dnew%20Date%7Dthis.eventParams%3D%7B%7D%3Bthis.setOptions(options)%3Bthis._create()%7DCustomTime.prototype%3Dnew%20Component%3BCustomTime.prototype.setOptions%3Dfunction(options)%7Bif(options)%7Butil.selectiveExtend(%5B%5C%5C%5C%22moment%5C%5C%5C%22%2C%5C%5C%5C%22locale%5C%5C%5C%22%2C%5C%5C%5C%22locales%5C%5C%5C%22%2C%5C%5C%5C%22id%5C%5C%5C%22%5D%2Cthis.options%2Coptions)%7D%7D%3BCustomTime.prototype._create%3Dfunction()%7Bvar%20bar%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bbar%5B%5C%5C%5C%22custom-time%5C%5C%5C%22%5D%3Dthis%3Bbar.className%3D%5C%5C%5C%22vis-custom-time%20%5C%5C%5C%22%2B(this.options.id%7C%7C%5C%5C%5C%22%5C%5C%5C%22)%3Bbar.style.position%3D%5C%5C%5C%22absolute%5C%5C%5C%22%3Bbar.style.top%3D%5C%5C%5C%220px%5C%5C%5C%22%3Bbar.style.height%3D%5C%5C%5C%22100%25%5C%5C%5C%22%3Bthis.bar%3Dbar%3Bvar%20drag%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bdrag.style.position%3D%5C%5C%5C%22relative%5C%5C%5C%22%3Bdrag.style.top%3D%5C%5C%5C%220px%5C%5C%5C%22%3Bdrag.style.left%3D%5C%5C%5C%22-10px%5C%5C%5C%22%3Bdrag.style.height%3D%5C%5C%5C%22100%25%5C%5C%5C%22%3Bdrag.style.width%3D%5C%5C%5C%2220px%5C%5C%5C%22%3Bfunction%20onMouseWheel(e)%7Bthis.body.range._onMouseWheel(e)%7Dif(drag.addEventListener)%7Bdrag.addEventListener(%5C%5C%5C%22mousewheel%5C%5C%5C%22%2ConMouseWheel.bind(this)%2Cfalse)%3Bdrag.addEventListener(%5C%5C%5C%22DOMMouseScroll%5C%5C%5C%22%2ConMouseWheel.bind(this)%2Cfalse)%7Delse%7Bdrag.attachEvent(%5C%5C%5C%22onmousewheel%5C%5C%5C%22%2ConMouseWheel.bind(this))%7Dbar.appendChild(drag)%3Bthis.hammer%3Dnew%20Hammer(drag)%3Bthis.hammer.on(%5C%5C%5C%22panstart%5C%5C%5C%22%2Cthis._onDragStart.bind(this))%3Bthis.hammer.on(%5C%5C%5C%22panmove%5C%5C%5C%22%2Cthis._onDrag.bind(this))%3Bthis.hammer.on(%5C%5C%5C%22panend%5C%5C%5C%22%2Cthis._onDragEnd.bind(this))%3Bthis.hammer.get(%5C%5C%5C%22pan%5C%5C%5C%22).set(%7Bthreshold%3A5%2Cdirection%3AHammer.DIRECTION_HORIZONTAL%7D)%7D%3BCustomTime.prototype.destroy%3Dfunction()%7Bthis.hide()%3Bthis.hammer.destroy()%3Bthis.hammer%3Dnull%3Bthis.body%3Dnull%7D%3BCustomTime.prototype.redraw%3Dfunction()%7Bvar%20parent%3Dthis.body.dom.backgroundVertical%3Bif(this.bar.parentNode!%3Dparent)%7Bif(this.bar.parentNode)%7Bthis.bar.parentNode.removeChild(this.bar)%7Dparent.appendChild(this.bar)%7Dvar%20x%3Dthis.body.util.toScreen(this.customTime)%3Bvar%20locale%3Dthis.options.locales%5Bthis.options.locale%5D%3Bif(!locale)%7Bif(!this.warned)%7Bconsole.log(%5C%5C%5C%22WARNING%3A%20options.locales%5B'%5C%5C%5C%22%2Bthis.options.locale%2B%5C%5C%5C%22'%5D%20not%20found.%20See%20http%3A%2F%2Fvisjs.org%2Fdocs%2Ftimeline%2F%23Localization%5C%5C%5C%22)%3Bthis.warned%3Dtrue%7Dlocale%3Dthis.options.locales%5B%5C%5C%5C%22en%5C%5C%5C%22%5D%7Dvar%20title%3Dthis.options.title%3Bif(title%3D%3D%3Dundefined)%7Btitle%3Dlocale.time%2B%5C%5C%5C%22%3A%20%5C%5C%5C%22%2Bthis.options.moment(this.customTime).format(%5C%5C%5C%22dddd%2C%20MMMM%20Do%20YYYY%2C%20H%3Amm%3Ass%5C%5C%5C%22)%3Btitle%3Dtitle.charAt(0).toUpperCase()%2Btitle.substring(1)%7Delse%20if(typeof%20title%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22)%7Btitle%3Dtitle.call(this.customTime)%7Dthis.bar.style.left%3Dx%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bthis.bar.title%3Dtitle%3Breturn%20false%7D%3BCustomTime.prototype.hide%3Dfunction()%7Bif(this.bar.parentNode)%7Bthis.bar.parentNode.removeChild(this.bar)%7D%7D%3BCustomTime.prototype.setCustomTime%3Dfunction(time)%7Bthis.customTime%3Dutil.convert(time%2C%5C%5C%5C%22Date%5C%5C%5C%22)%3Bthis.redraw()%7D%3BCustomTime.prototype.getCustomTime%3Dfunction()%7Breturn%20new%20Date(this.customTime.valueOf())%7D%3BCustomTime.prototype.setCustomTitle%3Dfunction(title)%7Bthis.options.title%3Dtitle%7D%3BCustomTime.prototype._onDragStart%3Dfunction(event)%7Bthis.eventParams.dragging%3Dtrue%3Bthis.eventParams.customTime%3Dthis.customTime%3Bevent.stopPropagation()%7D%3BCustomTime.prototype._onDrag%3Dfunction(event)%7Bif(!this.eventParams.dragging)return%3Bvar%20x%3Dthis.body.util.toScreen(this.eventParams.customTime)%2Bevent.deltaX%3Bvar%20time%3Dthis.body.util.toTime(x)%3Bthis.setCustomTime(time)%3Bthis.body.emitter.emit(%5C%5C%5C%22timechange%5C%5C%5C%22%2C%7Bid%3Athis.options.id%2Ctime%3Anew%20Date(this.customTime.valueOf())%2Cevent%3Aevent%7D)%3Bevent.stopPropagation()%7D%3BCustomTime.prototype._onDragEnd%3Dfunction(event)%7Bif(!this.eventParams.dragging)return%3Bthis.body.emitter.emit(%5C%5C%5C%22timechanged%5C%5C%5C%22%2C%7Bid%3Athis.options.id%2Ctime%3Anew%20Date(this.customTime.valueOf())%2Cevent%3Aevent%7D)%3Bevent.stopPropagation()%7D%3BCustomTime.customTimeFromTarget%3Dfunction(event)%7Bvar%20target%3Devent.target%3Bwhile(target)%7Bif(target.hasOwnProperty(%5C%5C%5C%22custom-time%5C%5C%5C%22))%7Breturn%20target%5B%5C%5C%5C%22custom-time%5C%5C%5C%22%5D%7Dtarget%3Dtarget.parentNode%7Dreturn%20null%7D%3Bmodule.exports%3DCustomTime%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_classCallCheck2%3D__webpack_require__(0)%3Bvar%20_classCallCheck3%3D_interopRequireDefault(_classCallCheck2)%3Bvar%20_createClass2%3D__webpack_require__(1)%3Bvar%20_createClass3%3D_interopRequireDefault(_createClass2)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20util%3D__webpack_require__(2)%3Bvar%20Label%3D__webpack_require__(117)%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3Bvar%20ComponentUtil%3D__webpack_require__(48)%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3Bvar%20Box%3D__webpack_require__(193)%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3Bvar%20Circle%3D__webpack_require__(200)%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3Bvar%20CircularImage%3D__webpack_require__(201)%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3Bvar%20Database%3D__webpack_require__(202)%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3Bvar%20Diamond%3D__webpack_require__(203)%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3Bvar%20Dot%3D__webpack_require__(204)%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3Bvar%20Ellipse%3D__webpack_require__(205)%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3Bvar%20Icon%3D__webpack_require__(206)%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3Bvar%20Image%3D__webpack_require__(207)%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3Bvar%20Square%3D__webpack_require__(208)%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3Bvar%20Hexagon%3D__webpack_require__(209)%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3Bvar%20Star%3D__webpack_require__(210)%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3Bvar%20Text%3D__webpack_require__(211)%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3Bvar%20Triangle%3D__webpack_require__(212)%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3Bvar%20TriangleDown%3D__webpack_require__(213)%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3Bvar%20_require%3D__webpack_require__(15)%2CprintStyle%3D_require.printStyle%3Bvar%20Node%3Dfunction()%7Bfunction%20Node(options%2Cbody%2Cimagelist%2Cgrouplist%2CglobalOptions%2CdefaultOptions)%7B(0%2C_classCallCheck3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2CNode)%3Bthis.options%3Dutil.bridgeObject(globalOptions)%3Bthis.globalOptions%3DglobalOptions%3Bthis.defaultOptions%3DdefaultOptions%3Bthis.body%3Dbody%3Bthis.edges%3D%5B%5D%3Bthis.id%3Dundefined%3Bthis.imagelist%3Dimagelist%3Bthis.grouplist%3Dgrouplist%3Bthis.x%3Dundefined%3Bthis.y%3Dundefined%3Bthis.baseSize%3Dthis.options.size%3Bthis.baseFontSize%3Dthis.options.font.size%3Bthis.predefinedPosition%3Dfalse%3Bthis.selected%3Dfalse%3Bthis.hover%3Dfalse%3Bthis.labelModule%3Dnew%20Label(this.body%2Cthis.options%2Cfalse)%3Bthis.setOptions(options)%7D(0%2C_createClass3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(Node%2C%5B%7Bkey%3A%5C%5C%5C%22attachEdge%5C%5C%5C%22%2Cvalue%3Afunction%20attachEdge(edge)%7Bif(this.edges.indexOf(edge)%3D%3D%3D-1)%7Bthis.edges.push(edge)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22detachEdge%5C%5C%5C%22%2Cvalue%3Afunction%20detachEdge(edge)%7Bvar%20index%3Dthis.edges.indexOf(edge)%3Bif(index!%3D-1)%7Bthis.edges.splice(index%2C1)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22setOptions%5C%5C%5C%22%2Cvalue%3Afunction%20setOptions(options)%7Bvar%20currentShape%3Dthis.options.shape%3Bif(!options)%7Breturn%7Dif(options.id!%3D%3Dundefined)%7Bthis.id%3Doptions.id%7Dif(this.id%3D%3D%3Dundefined)%7Bthrow%20new%20Error(%5C%5C%5C%22Node%20must%20have%20an%20id%5C%5C%5C%22)%7DNode.checkMass(options%2Cthis.id)%3Bif(options.x!%3D%3Dundefined)%7Bif(options.x%3D%3D%3Dnull)%7Bthis.x%3Dundefined%3Bthis.predefinedPosition%3Dfalse%7Delse%7Bthis.x%3DparseInt(options.x)%3Bthis.predefinedPosition%3Dtrue%7D%7Dif(options.y!%3D%3Dundefined)%7Bif(options.y%3D%3D%3Dnull)%7Bthis.y%3Dundefined%3Bthis.predefinedPosition%3Dfalse%7Delse%7Bthis.y%3DparseInt(options.y)%3Bthis.predefinedPosition%3Dtrue%7D%7Dif(options.size!%3D%3Dundefined)%7Bthis.baseSize%3Doptions.size%7Dif(options.value!%3D%3Dundefined)%7Boptions.value%3DparseFloat(options.value)%7DNode.parseOptions(this.options%2Coptions%2Ctrue%2Cthis.globalOptions%2Cthis.grouplist)%3Bvar%20pile%3D%5Boptions%2Cthis.options%2Cthis.defaultOptions%5D%3Bthis.chooser%3DComponentUtil.choosify(%5C%5C%5C%22node%5C%5C%5C%22%2Cpile)%3Bthis._load_images()%3Bthis.updateLabelModule(options)%3Bthis.updateShape(currentShape)%3Breturn%20options.hidden!%3D%3Dundefined%7C%7Coptions.physics!%3D%3Dundefined%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_load_images%5C%5C%5C%22%2Cvalue%3Afunction%20_load_images()%7Bif(this.options.shape!%3D%3D%5C%5C%5C%22circularImage%5C%5C%5C%22%26%26this.options.shape!%3D%3D%5C%5C%5C%22image%5C%5C%5C%22)%7Breturn%7Dif(this.options.image%3D%3D%3Dundefined)%7Bthrow%20new%20Error(%5C%5C%5C%22Option%20image%20must%20be%20defined%20for%20node%20type%20'%5C%5C%5C%22%2Bthis.options.shape%2B%5C%5C%5C%22'%5C%5C%5C%22)%7Dif(this.imagelist%3D%3D%3Dundefined)%7Bthrow%20new%20Error(%5C%5C%5C%22Internal%20Error%3A%20No%20images%20provided%5C%5C%5C%22)%7Dif(typeof%20this.options.image%3D%3D%3D%5C%5C%5C%22string%5C%5C%5C%22)%7Bthis.imageObj%3Dthis.imagelist.load(this.options.image%2Cthis.options.brokenImage%2Cthis.id)%7Delse%7Bif(this.options.image.unselected%3D%3D%3Dundefined)%7Bthrow%20new%20Error(%5C%5C%5C%22No%20unselected%20image%20provided%5C%5C%5C%22)%7Dthis.imageObj%3Dthis.imagelist.load(this.options.image.unselected%2Cthis.options.brokenImage%2Cthis.id)%3Bif(this.options.image.selected!%3D%3Dundefined)%7Bthis.imageObjAlt%3Dthis.imagelist.load(this.options.image.selected%2Cthis.options.brokenImage%2Cthis.id)%7Delse%7Bthis.imageObjAlt%3Dundefined%7D%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getFormattingValues%5C%5C%5C%22%2Cvalue%3Afunction%20getFormattingValues()%7Bvar%20values%3D%7Bcolor%3Athis.options.color.background%2CborderWidth%3Athis.options.borderWidth%2CborderColor%3Athis.options.color.border%2Csize%3Athis.options.size%2CborderDashes%3Athis.options.shapeProperties.borderDashes%2CborderRadius%3Athis.options.shapeProperties.borderRadius%2Cshadow%3Athis.options.shadow.enabled%2CshadowColor%3Athis.options.shadow.color%2CshadowSize%3Athis.options.shadow.size%2CshadowX%3Athis.options.shadow.x%2CshadowY%3Athis.options.shadow.y%7D%3Bif(this.selected%7C%7Cthis.hover)%7Bif(this.chooser%3D%3D%3Dtrue)%7Bif(this.selected)%7Bvalues.borderWidth*%3D2%3Bvalues.color%3Dthis.options.color.highlight.background%3Bvalues.borderColor%3Dthis.options.color.highlight.border%3Bvalues.shadow%3Dthis.options.shadow.enabled%7Delse%20if(this.hover)%7Bvalues.color%3Dthis.options.color.hover.background%3Bvalues.borderColor%3Dthis.options.color.hover.border%3Bvalues.shadow%3Dthis.options.shadow.enabled%7D%7Delse%20if(typeof%20this.chooser%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22)%7Bthis.chooser(values%2Cthis.options.id%2Cthis.selected%2Cthis.hover)%3Bif(values.shadow%3D%3D%3Dfalse)%7Bif(values.shadowColor!%3D%3Dthis.options.shadow.color%7C%7Cvalues.shadowSize!%3D%3Dthis.options.shadow.size%7C%7Cvalues.shadowX!%3D%3Dthis.options.shadow.x%7C%7Cvalues.shadowY!%3D%3Dthis.options.shadow.y)%7Bvalues.shadow%3Dtrue%7D%7D%7D%7Delse%7Bvalues.shadow%3Dthis.options.shadow.enabled%7Dreturn%20values%7D%7D%2C%7Bkey%3A%5C%5C%5C%22updateLabelModule%5C%5C%5C%22%2Cvalue%3Afunction%20updateLabelModule(options)%7Bif(this.options.label%3D%3D%3Dundefined%7C%7Cthis.options.label%3D%3D%3Dnull)%7Bthis.options.label%3D%5C%5C%5C%22%5C%5C%5C%22%7DNode.updateGroupOptions(this.options%2Coptions%2Cthis.grouplist)%3Bvar%20currentGroup%3Dthis.grouplist.get(this.options.group%2Cfalse)%3Bvar%20pile%3D%5Boptions%2Cthis.options%2CcurrentGroup%2Cthis.globalOptions%2Cthis.defaultOptions%5D%3Bthis.labelModule.update(this.options%2Cpile)%3Bif(this.labelModule.baseSize!%3D%3Dundefined)%7Bthis.baseFontSize%3Dthis.labelModule.baseSize%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22updateShape%5C%5C%5C%22%2Cvalue%3Afunction%20updateShape(currentShape)%7Bif(currentShape%3D%3D%3Dthis.options.shape%26%26this.shape)%7Bthis.shape.setOptions(this.options%2Cthis.imageObj%2Cthis.imageObjAlt)%7Delse%7Bswitch(this.options.shape)%7Bcase%5C%5C%5C%22box%5C%5C%5C%22%3Athis.shape%3Dnew%20Box(this.options%2Cthis.body%2Cthis.labelModule)%3Bbreak%3Bcase%5C%5C%5C%22circle%5C%5C%5C%22%3Athis.shape%3Dnew%20Circle(this.options%2Cthis.body%2Cthis.labelModule)%3Bbreak%3Bcase%5C%5C%5C%22circularImage%5C%5C%5C%22%3Athis.shape%3Dnew%20CircularImage(this.options%2Cthis.body%2Cthis.labelModule%2Cthis.imageObj%2Cthis.imageObjAlt)%3Bbreak%3Bcase%5C%5C%5C%22database%5C%5C%5C%22%3Athis.shape%3Dnew%20Database(this.options%2Cthis.body%2Cthis.labelModule)%3Bbreak%3Bcase%5C%5C%5C%22diamond%5C%5C%5C%22%3Athis.shape%3Dnew%20Diamond(this.options%2Cthis.body%2Cthis.labelModule)%3Bbreak%3Bcase%5C%5C%5C%22dot%5C%5C%5C%22%3Athis.shape%3Dnew%20Dot(this.options%2Cthis.body%2Cthis.labelModule)%3Bbreak%3Bcase%5C%5C%5C%22ellipse%5C%5C%5C%22%3Athis.shape%3Dnew%20Ellipse(this.options%2Cthis.body%2Cthis.labelModule)%3Bbreak%3Bcase%5C%5C%5C%22icon%5C%5C%5C%22%3Athis.shape%3Dnew%20Icon(this.options%2Cthis.body%2Cthis.labelModule)%3Bbreak%3Bcase%5C%5C%5C%22image%5C%5C%5C%22%3Athis.shape%3Dnew%20Image(this.options%2Cthis.body%2Cthis.labelModule%2Cthis.imageObj%2Cthis.imageObjAlt)%3Bbreak%3Bcase%5C%5C%5C%22square%5C%5C%5C%22%3Athis.shape%3Dnew%20Square(this.options%2Cthis.body%2Cthis.labelModule)%3Bbreak%3Bcase%5C%5C%5C%22hexagon%5C%5C%5C%22%3Athis.shape%3Dnew%20Hexagon(this.options%2Cthis.body%2Cthis.labelModule)%3Bbreak%3Bcase%5C%5C%5C%22star%5C%5C%5C%22%3Athis.shape%3Dnew%20Star(this.options%2Cthis.body%2Cthis.labelModule)%3Bbreak%3Bcase%5C%5C%5C%22text%5C%5C%5C%22%3Athis.shape%3Dnew%20Text(this.options%2Cthis.body%2Cthis.labelModule)%3Bbreak%3Bcase%5C%5C%5C%22triangle%5C%5C%5C%22%3Athis.shape%3Dnew%20Triangle(this.options%2Cthis.body%2Cthis.labelModule)%3Bbreak%3Bcase%5C%5C%5C%22triangleDown%5C%5C%5C%22%3Athis.shape%3Dnew%20TriangleDown(this.options%2Cthis.body%2Cthis.labelModule)%3Bbreak%3Bdefault%3Athis.shape%3Dnew%20Ellipse(this.options%2Cthis.body%2Cthis.labelModule)%3Bbreak%7D%7Dthis.needsRefresh()%7D%7D%2C%7Bkey%3A%5C%5C%5C%22select%5C%5C%5C%22%2Cvalue%3Afunction%20select()%7Bthis.selected%3Dtrue%3Bthis.needsRefresh()%7D%7D%2C%7Bkey%3A%5C%5C%5C%22unselect%5C%5C%5C%22%2Cvalue%3Afunction%20unselect()%7Bthis.selected%3Dfalse%3Bthis.needsRefresh()%7D%7D%2C%7Bkey%3A%5C%5C%5C%22needsRefresh%5C%5C%5C%22%2Cvalue%3Afunction%20needsRefresh()%7Bthis.shape.refreshNeeded%3Dtrue%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getTitle%5C%5C%5C%22%2Cvalue%3Afunction%20getTitle()%7Breturn%20this.options.title%7D%7D%2C%7Bkey%3A%5C%5C%5C%22distanceToBorder%5C%5C%5C%22%2Cvalue%3Afunction%20distanceToBorder(ctx%2Cangle)%7Breturn%20this.shape.distanceToBorder(ctx%2Cangle)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22isFixed%5C%5C%5C%22%2Cvalue%3Afunction%20isFixed()%7Breturn%20this.options.fixed.x%26%26this.options.fixed.y%7D%7D%2C%7Bkey%3A%5C%5C%5C%22isSelected%5C%5C%5C%22%2Cvalue%3Afunction%20isSelected()%7Breturn%20this.selected%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getValue%5C%5C%5C%22%2Cvalue%3Afunction%20getValue()%7Breturn%20this.options.value%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getLabelSize%5C%5C%5C%22%2Cvalue%3Afunction%20getLabelSize()%7Breturn%20this.labelModule.size()%7D%7D%2C%7Bkey%3A%5C%5C%5C%22setValueRange%5C%5C%5C%22%2Cvalue%3Afunction%20setValueRange(min%2Cmax%2Ctotal)%7Bif(this.options.value!%3D%3Dundefined)%7Bvar%20scale%3Dthis.options.scaling.customScalingFunction(min%2Cmax%2Ctotal%2Cthis.options.value)%3Bvar%20sizeDiff%3Dthis.options.scaling.max-this.options.scaling.min%3Bif(this.options.scaling.label.enabled%3D%3D%3Dtrue)%7Bvar%20fontDiff%3Dthis.options.scaling.label.max-this.options.scaling.label.min%3Bthis.options.font.size%3Dthis.options.scaling.label.min%2Bscale*fontDiff%7Dthis.options.size%3Dthis.options.scaling.min%2Bscale*sizeDiff%7Delse%7Bthis.options.size%3Dthis.baseSize%3Bthis.options.font.size%3Dthis.baseFontSize%7Dthis.updateLabelModule()%7D%7D%2C%7Bkey%3A%5C%5C%5C%22draw%5C%5C%5C%22%2Cvalue%3Afunction%20draw(ctx)%7Bvar%20values%3Dthis.getFormattingValues()%3Bthis.shape.draw(ctx%2Cthis.x%2Cthis.y%2Cthis.selected%2Cthis.hover%2Cvalues)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22updateBoundingBox%5C%5C%5C%22%2Cvalue%3Afunction%20updateBoundingBox(ctx)%7Bthis.shape.updateBoundingBox(this.x%2Cthis.y%2Cctx)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22resize%5C%5C%5C%22%2Cvalue%3Afunction%20resize(ctx)%7Bvar%20values%3Dthis.getFormattingValues()%3Bthis.shape.resize(ctx%2Cthis.selected%2Cthis.hover%2Cvalues)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getItemsOnPoint%5C%5C%5C%22%2Cvalue%3Afunction%20getItemsOnPoint(point)%7Bvar%20ret%3D%5B%5D%3Bif(this.labelModule.visible())%7Bif(ComponentUtil.pointInRect(this.labelModule.getSize()%2Cpoint))%7Bret.push(%7BnodeId%3Athis.id%2ClabelId%3A0%7D)%7D%7Dif(ComponentUtil.pointInRect(this.shape.boundingBox%2Cpoint))%7Bret.push(%7BnodeId%3Athis.id%7D)%7Dreturn%20ret%7D%7D%2C%7Bkey%3A%5C%5C%5C%22isOverlappingWith%5C%5C%5C%22%2Cvalue%3Afunction%20isOverlappingWith(obj)%7Breturn%20this.shape.left%3Cobj.right%26%26this.shape.left%2Bthis.shape.width%3Eobj.left%26%26this.shape.top%3Cobj.bottom%26%26this.shape.top%2Bthis.shape.height%3Eobj.top%7D%7D%2C%7Bkey%3A%5C%5C%5C%22isBoundingBoxOverlappingWith%5C%5C%5C%22%2Cvalue%3Afunction%20isBoundingBoxOverlappingWith(obj)%7Breturn%20this.shape.boundingBox.left%3Cobj.right%26%26this.shape.boundingBox.right%3Eobj.left%26%26this.shape.boundingBox.top%3Cobj.bottom%26%26this.shape.boundingBox.bottom%3Eobj.top%7D%7D%5D%2C%5B%7Bkey%3A%5C%5C%5C%22updateGroupOptions%5C%5C%5C%22%2Cvalue%3Afunction%20updateGroupOptions(parentOptions%2CnewOptions%2CgroupList)%7Bif(groupList%3D%3D%3Dundefined)return%3Bvar%20group%3DparentOptions.group%3Bif(newOptions!%3D%3Dundefined%26%26newOptions.group!%3D%3Dundefined%26%26group!%3D%3DnewOptions.group)%7Bthrow%20new%20Error(%5C%5C%5C%22updateGroupOptions%3A%20group%20values%20in%20options%20don't%20match.%5C%5C%5C%22)%7Dvar%20hasGroup%3Dtypeof%20group%3D%3D%3D%5C%5C%5C%22number%5C%5C%5C%22%7C%7Ctypeof%20group%3D%3D%3D%5C%5C%5C%22string%5C%5C%5C%22%26%26group!%3D%5C%5C%5C%22%5C%5C%5C%22%3Bif(!hasGroup)return%3Bvar%20groupObj%3DgroupList.get(group)%3Butil.selectiveNotDeepExtend(%5B%5C%5C%5C%22font%5C%5C%5C%22%5D%2CparentOptions%2CgroupObj)%3BparentOptions.color%3Dutil.parseColor(parentOptions.color)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22parseOptions%5C%5C%5C%22%2Cvalue%3Afunction%20parseOptions(parentOptions%2CnewOptions)%7Bvar%20allowDeletion%3Darguments.length%3E2%26%26arguments%5B2%5D!%3D%3Dundefined%3Farguments%5B2%5D%3Afalse%3Bvar%20globalOptions%3Darguments.length%3E3%26%26arguments%5B3%5D!%3D%3Dundefined%3Farguments%5B3%5D%3A%7B%7D%3Bvar%20groupList%3Darguments%5B4%5D%3Bvar%20fields%3D%5B%5C%5C%5C%22color%5C%5C%5C%22%2C%5C%5C%5C%22fixed%5C%5C%5C%22%2C%5C%5C%5C%22shadow%5C%5C%5C%22%5D%3Butil.selectiveNotDeepExtend(fields%2CparentOptions%2CnewOptions%2CallowDeletion)%3BNode.checkMass(newOptions)%3Butil.mergeOptions(parentOptions%2CnewOptions%2C%5C%5C%5C%22shadow%5C%5C%5C%22%2CglobalOptions)%3Bif(newOptions.color!%3D%3Dundefined%26%26newOptions.color!%3D%3Dnull)%7Bvar%20parsedColor%3Dutil.parseColor(newOptions.color)%3Butil.fillIfDefined(parentOptions.color%2CparsedColor)%7Delse%20if(allowDeletion%3D%3D%3Dtrue%26%26newOptions.color%3D%3D%3Dnull)%7BparentOptions.color%3Dutil.bridgeObject(globalOptions.color)%7Dif(newOptions.fixed!%3D%3Dundefined%26%26newOptions.fixed!%3D%3Dnull)%7Bif(typeof%20newOptions.fixed%3D%3D%3D%5C%5C%5C%22boolean%5C%5C%5C%22)%7BparentOptions.fixed.x%3DnewOptions.fixed%3BparentOptions.fixed.y%3DnewOptions.fixed%7Delse%7Bif(newOptions.fixed.x!%3D%3Dundefined%26%26typeof%20newOptions.fixed.x%3D%3D%3D%5C%5C%5C%22boolean%5C%5C%5C%22)%7BparentOptions.fixed.x%3DnewOptions.fixed.x%7Dif(newOptions.fixed.y!%3D%3Dundefined%26%26typeof%20newOptions.fixed.y%3D%3D%3D%5C%5C%5C%22boolean%5C%5C%5C%22)%7BparentOptions.fixed.y%3DnewOptions.fixed.y%7D%7D%7Dif(allowDeletion%3D%3D%3Dtrue%26%26newOptions.font%3D%3D%3Dnull)%7BparentOptions.font%3Dutil.bridgeObject(globalOptions.font)%7DNode.updateGroupOptions(parentOptions%2CnewOptions%2CgroupList)%3Bif(newOptions.scaling!%3D%3Dundefined)%7Butil.mergeOptions(parentOptions.scaling%2CnewOptions.scaling%2C%5C%5C%5C%22label%5C%5C%5C%22%2CglobalOptions.scaling)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22checkMass%5C%5C%5C%22%2Cvalue%3Afunction%20checkMass(options%2Cid)%7Bif(options.mass!%3D%3Dundefined%26%26options.mass%3C%3D0)%7Bvar%20strId%3D%5C%5C%5C%22%5C%5C%5C%22%3Bif(id!%3D%3Dundefined)%7BstrId%3D%5C%5C%5C%22%20in%20node%20id%3A%20%5C%5C%5C%22%2Bid%7Dconsole.log(%5C%5C%5C%22%25cNegative%20or%20zero%20mass%20disallowed%5C%5C%5C%22%2BstrId%2B%5C%5C%5C%22%2C%20setting%20mass%20to%201.%5C%5C%5C%22%2CprintStyle)%3Boptions.mass%3D1%7D%7D%7D%5D)%3Breturn%20Node%7D()%3Bexports%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3DNode%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_typeof2%3D__webpack_require__(6)%3Bvar%20_typeof3%3D_interopRequireDefault(_typeof2)%3Bvar%20_classCallCheck2%3D__webpack_require__(0)%3Bvar%20_classCallCheck3%3D_interopRequireDefault(_classCallCheck2)%3Bvar%20_createClass2%3D__webpack_require__(1)%3Bvar%20_createClass3%3D_interopRequireDefault(_createClass2)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20util%3D__webpack_require__(2)%3Bvar%20ComponentUtil%3Dfunction()%7Bfunction%20ComponentUtil()%7B(0%2C_classCallCheck3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2CComponentUtil)%7D(0%2C_createClass3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(ComponentUtil%2Cnull%2C%5B%7Bkey%3A%5C%5C%5C%22choosify%5C%5C%5C%22%2Cvalue%3Afunction%20choosify(subOption%2Cpile)%7Bvar%20allowed%3D%5B%5C%5C%5C%22node%5C%5C%5C%22%2C%5C%5C%5C%22edge%5C%5C%5C%22%2C%5C%5C%5C%22label%5C%5C%5C%22%5D%3Bvar%20value%3Dtrue%3Bvar%20chosen%3Dutil.topMost(pile%2C%5C%5C%5C%22chosen%5C%5C%5C%22)%3Bif(typeof%20chosen%3D%3D%3D%5C%5C%5C%22boolean%5C%5C%5C%22)%7Bvalue%3Dchosen%7Delse%20if((typeof%20chosen%3D%3D%3D%5C%5C%5C%22undefined%5C%5C%5C%22%3F%5C%5C%5C%22undefined%5C%5C%5C%22%3A(0%2C_typeof3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(chosen))%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22)%7Bif(allowed.indexOf(subOption)%3D%3D%3D-1)%7Bthrow%20new%20Error(%5C%5C%5C%22choosify%3A%20subOption%20'%5C%5C%5C%22%2BsubOption%2B%5C%5C%5C%22'%20should%20be%20one%20of%20%5C%5C%5C%22%2B%5C%5C%5C%22'%5C%5C%5C%22%2Ballowed.join(%5C%5C%5C%22'%2C%20'%5C%5C%5C%22)%2B%5C%5C%5C%22'%5C%5C%5C%22)%7Dvar%20chosenEdge%3Dutil.topMost(pile%2C%5B%5C%5C%5C%22chosen%5C%5C%5C%22%2CsubOption%5D)%3Bif(typeof%20chosenEdge%3D%3D%3D%5C%5C%5C%22boolean%5C%5C%5C%22%7C%7Ctypeof%20chosenEdge%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22)%7Bvalue%3DchosenEdge%7D%7Dreturn%20value%7D%7D%2C%7Bkey%3A%5C%5C%5C%22pointInRect%5C%5C%5C%22%2Cvalue%3Afunction%20pointInRect(rect%2Cpoint%2CrotationPoint)%7Bif(rect.width%3C%3D0%7C%7Crect.height%3C%3D0)%7Breturn%20false%7Dif(rotationPoint!%3D%3Dundefined)%7Bvar%20tmp%3D%7Bx%3Apoint.x-rotationPoint.x%2Cy%3Apoint.y-rotationPoint.y%7D%3Bif(rotationPoint.angle!%3D%3D0)%7Bvar%20angle%3D-rotationPoint.angle%3Bvar%20tmp2%3D%7Bx%3AMath.cos(angle)*tmp.x-Math.sin(angle)*tmp.y%2Cy%3AMath.sin(angle)*tmp.x%2BMath.cos(angle)*tmp.y%7D%3Bpoint%3Dtmp2%7Delse%7Bpoint%3Dtmp%7D%7Dvar%20right%3Drect.x%2Brect.width%3Bvar%20bottom%3Drect.y%2Brect.width%3Breturn%20rect.left%3Cpoint.x%26%26right%3Epoint.x%26%26rect.top%3Cpoint.y%26%26bottom%3Epoint.y%7D%7D%2C%7Bkey%3A%5C%5C%5C%22isValidLabel%5C%5C%5C%22%2Cvalue%3Afunction%20isValidLabel(text)%7Breturn%20typeof%20text%3D%3D%3D%5C%5C%5C%22string%5C%5C%5C%22%26%26text!%3D%3D%5C%5C%5C%22%5C%5C%5C%22%7D%7D%5D)%3Breturn%20ComponentUtil%7D()%3Bexports%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3DComponentUtil%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B__webpack_require__(125)%3Bvar%20global%3D__webpack_require__(18)%3Bvar%20hide%3D__webpack_require__(26)%3Bvar%20Iterators%3D__webpack_require__(31)%3Bvar%20TO_STRING_TAG%3D__webpack_require__(13)(%5C%5C%5C%22toStringTag%5C%5C%5C%22)%3Bvar%20DOMIterables%3D(%5C%5C%5C%22CSSRuleList%2CCSSStyleDeclaration%2CCSSValueList%2CClientRectList%2CDOMRectList%2CDOMStringList%2C%5C%5C%5C%22%2B%5C%5C%5C%22DOMTokenList%2CDataTransferItemList%2CFileList%2CHTMLAllCollection%2CHTMLCollection%2CHTMLFormElement%2CHTMLSelectElement%2C%5C%5C%5C%22%2B%5C%5C%5C%22MediaList%2CMimeTypeArray%2CNamedNodeMap%2CNodeList%2CPaintRequestList%2CPlugin%2CPluginArray%2CSVGLengthList%2CSVGNumberList%2C%5C%5C%5C%22%2B%5C%5C%5C%22SVGPathSegList%2CSVGPointList%2CSVGStringList%2CSVGTransformList%2CSourceBufferList%2CStyleSheetList%2CTextTrackCueList%2C%5C%5C%5C%22%2B%5C%5C%5C%22TextTrackList%2CTouchList%5C%5C%5C%22).split(%5C%5C%5C%22%2C%5C%5C%5C%22)%3Bfor(var%20i%3D0%3Bi%3CDOMIterables.length%3Bi%2B%2B)%7Bvar%20NAME%3DDOMIterables%5Bi%5D%3Bvar%20Collection%3Dglobal%5BNAME%5D%3Bvar%20proto%3DCollection%26%26Collection.prototype%3Bif(proto%26%26!proto%5BTO_STRING_TAG%5D)hide(proto%2CTO_STRING_TAG%2CNAME)%3BIterators%5BNAME%5D%3DIterators.Array%7D%7D%2Cfunction(module%2Cexports)%7Bvar%20toString%3D%7B%7D.toString%3Bmodule.exports%3Dfunction(it)%7Breturn%20toString.call(it).slice(8%2C-1)%7D%7D%2Cfunction(module%2Cexports)%7Bmodule.exports%3Dfunction(it)%7Bif(it%3D%3Dundefined)throw%20TypeError(%5C%5C%5C%22Can't%20call%20method%20on%20%20%5C%5C%5C%22%2Bit)%3Breturn%20it%7D%7D%2Cfunction(module%2Cexports)%7Bmodule.exports%3Dtrue%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7Bvar%20isObject%3D__webpack_require__(32)%3Bmodule.exports%3Dfunction(it%2CS)%7Bif(!isObject(it))return%20it%3Bvar%20fn%2Cval%3Bif(S%26%26typeof(fn%3Dit.toString)%3D%3D%5C%5C%5C%22function%5C%5C%5C%22%26%26!isObject(val%3Dfn.call(it)))return%20val%3Bif(typeof(fn%3Dit.valueOf)%3D%3D%5C%5C%5C%22function%5C%5C%5C%22%26%26!isObject(val%3Dfn.call(it)))return%20val%3Bif(!S%26%26typeof(fn%3Dit.toString)%3D%3D%5C%5C%5C%22function%5C%5C%5C%22%26%26!isObject(val%3Dfn.call(it)))return%20val%3Bthrow%20TypeError(%5C%5C%5C%22Can't%20convert%20object%20to%20primitive%20value%5C%5C%5C%22)%7D%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7Bvar%20anObject%3D__webpack_require__(27)%3Bvar%20dPs%3D__webpack_require__(130)%3Bvar%20enumBugKeys%3D__webpack_require__(58)%3Bvar%20IE_PROTO%3D__webpack_require__(56)(%5C%5C%5C%22IE_PROTO%5C%5C%5C%22)%5C%5Cn%3Bvar%20Empty%3Dfunction()%7B%7D%3Bvar%20PROTOTYPE%3D%5C%5C%5C%22prototype%5C%5C%5C%22%3Bvar%20createDict%3Dfunction()%7Bvar%20iframe%3D__webpack_require__(82)(%5C%5C%5C%22iframe%5C%5C%5C%22)%3Bvar%20i%3DenumBugKeys.length%3Bvar%20lt%3D%5C%5C%5C%22%3C%5C%5C%5C%22%3Bvar%20gt%3D%5C%5C%5C%22%3E%5C%5C%5C%22%3Bvar%20iframeDocument%3Biframe.style.display%3D%5C%5C%5C%22none%5C%5C%5C%22%3B__webpack_require__(134).appendChild(iframe)%3Biframe.src%3D%5C%5C%5C%22javascript%3A%5C%5C%5C%22%3BiframeDocument%3Diframe.contentWindow.document%3BiframeDocument.open()%3BiframeDocument.write(lt%2B%5C%5C%5C%22script%5C%5C%5C%22%2Bgt%2B%5C%5C%5C%22document.F%3DObject%5C%5C%5C%22%2Blt%2B%5C%5C%5C%22%2Fscript%5C%5C%5C%22%2Bgt)%3BiframeDocument.close()%3BcreateDict%3DiframeDocument.F%3Bwhile(i--)delete%20createDict%5BPROTOTYPE%5D%5BenumBugKeys%5Bi%5D%5D%3Breturn%20createDict()%7D%3Bmodule.exports%3DObject.create%7C%7Cfunction%20create(O%2CProperties)%7Bvar%20result%3Bif(O!%3D%3Dnull)%7BEmpty%5BPROTOTYPE%5D%3DanObject(O)%3Bresult%3Dnew%20Empty%3BEmpty%5BPROTOTYPE%5D%3Dnull%3Bresult%5BIE_PROTO%5D%3DO%7Delse%20result%3DcreateDict()%3Breturn%20Properties%3D%3D%3Dundefined%3Fresult%3AdPs(result%2CProperties)%7D%7D%2Cfunction(module%2Cexports)%7Bvar%20ceil%3DMath.ceil%3Bvar%20floor%3DMath.floor%3Bmodule.exports%3Dfunction(it)%7Breturn%20isNaN(it%3D%2Bit)%3F0%3A(it%3E0%3Ffloor%3Aceil)(it)%7D%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7Bvar%20shared%3D__webpack_require__(57)(%5C%5C%5C%22keys%5C%5C%5C%22)%3Bvar%20uid%3D__webpack_require__(40)%3Bmodule.exports%3Dfunction(key)%7Breturn%20shared%5Bkey%5D%7C%7C(shared%5Bkey%5D%3Duid(key))%7D%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7Bvar%20global%3D__webpack_require__(18)%3Bvar%20SHARED%3D%5C%5C%5C%22__core-js_shared__%5C%5C%5C%22%3Bvar%20store%3Dglobal%5BSHARED%5D%7C%7C(global%5BSHARED%5D%3D%7B%7D)%3Bmodule.exports%3Dfunction(key)%7Breturn%20store%5Bkey%5D%7C%7C(store%5Bkey%5D%3D%7B%7D)%7D%7D%2Cfunction(module%2Cexports)%7Bmodule.exports%3D%5C%5C%5C%22constructor%2ChasOwnProperty%2CisPrototypeOf%2CpropertyIsEnumerable%2CtoLocaleString%2CtoString%2CvalueOf%5C%5C%5C%22.split(%5C%5C%5C%22%2C%5C%5C%5C%22)%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7Bvar%20def%3D__webpack_require__(20).f%3Bvar%20has%3D__webpack_require__(22)%3Bvar%20TAG%3D__webpack_require__(13)(%5C%5C%5C%22toStringTag%5C%5C%5C%22)%3Bmodule.exports%3Dfunction(it%2Ctag%2Cstat)%7Bif(it%26%26!has(it%3Dstat%3Fit%3Ait.prototype%2CTAG))def(it%2CTAG%2C%7Bconfigurable%3Atrue%2Cvalue%3Atag%7D)%7D%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bvar%20%24at%3D__webpack_require__(135)(true)%3B__webpack_require__(79)(String%2C%5C%5C%5C%22String%5C%5C%5C%22%2Cfunction(iterated)%7Bthis._t%3DString(iterated)%3Bthis._i%3D0%7D%2Cfunction()%7Bvar%20O%3Dthis._t%3Bvar%20index%3Dthis._i%3Bvar%20point%3Bif(index%3E%3DO.length)return%7Bvalue%3Aundefined%2Cdone%3Atrue%7D%3Bpoint%3D%24at(O%2Cindex)%3Bthis._i%2B%3Dpoint.length%3Breturn%7Bvalue%3Apoint%2Cdone%3Afalse%7D%7D)%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7Bexports.f%3D__webpack_require__(13)%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7Bvar%20global%3D__webpack_require__(18)%3Bvar%20core%3D__webpack_require__(7)%3Bvar%20LIBRARY%3D__webpack_require__(52)%3Bvar%20wksExt%3D__webpack_require__(61)%3Bvar%20defineProperty%3D__webpack_require__(20).f%3Bmodule.exports%3Dfunction(name)%7Bvar%20%24Symbol%3Dcore.Symbol%7C%7C(core.Symbol%3DLIBRARY%3F%7B%7D%3Aglobal.Symbol%7C%7C%7B%7D)%3Bif(name.charAt(0)!%3D%5C%5C%5C%22_%5C%5C%5C%22%26%26!(name%20in%20%24Symbol))defineProperty(%24Symbol%2Cname%2C%7Bvalue%3AwksExt.f(name)%7D)%7D%7D%2Cfunction(module%2Cexports)%7Bexports.f%3DObject.getOwnPropertySymbols%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bvar%20_keys%3D__webpack_require__(8)%3Bvar%20_keys2%3D_interopRequireDefault(_keys)%3Bvar%20_stringify%3D__webpack_require__(19)%3Bvar%20_stringify2%3D_interopRequireDefault(_stringify)%3Bvar%20_typeof2%3D__webpack_require__(6)%3Bvar%20_typeof3%3D_interopRequireDefault(_typeof2)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20util%3D__webpack_require__(2)%3Bvar%20moment%3D__webpack_require__(9)%3Bvar%20Component%3D__webpack_require__(16)%3Bvar%20DateUtil%3D__webpack_require__(36)%3Bfunction%20Range(body%2Coptions)%7Bvar%20now%3Dmoment().hours(0).minutes(0).seconds(0).milliseconds(0)%3Bvar%20start%3Dnow.clone().add(-3%2C%5C%5C%5C%22days%5C%5C%5C%22).valueOf()%3Bvar%20end%3Dnow.clone().add(3%2C%5C%5C%5C%22days%5C%5C%5C%22).valueOf()%3Bthis.millisecondsPerPixelCache%3Dundefined%3Bif(options%3D%3D%3Dundefined)%7Bthis.start%3Dstart%3Bthis.end%3Dend%7Delse%7Bthis.start%3Doptions.start%7C%7Cstart%3Bthis.end%3Doptions.end%7C%7Cend%7Dthis.rolling%3Dfalse%3Bthis.body%3Dbody%3Bthis.deltaDifference%3D0%3Bthis.scaleOffset%3D0%3Bthis.startToFront%3Dfalse%3Bthis.endToFront%3Dtrue%3Bthis.defaultOptions%3D%7Brtl%3Afalse%2Cstart%3Anull%2Cend%3Anull%2Cmoment%3Amoment%2Cdirection%3A%5C%5C%5C%22horizontal%5C%5C%5C%22%2Cmoveable%3Atrue%2Czoomable%3Atrue%2Cmin%3Anull%2Cmax%3Anull%2CzoomMin%3A10%2CzoomMax%3A1e3*60*60*24*365*1e4%2CrollingMode%3A%7Bfollow%3Afalse%2Coffset%3A.5%7D%7D%3Bthis.options%3Dutil.extend(%7B%7D%2Cthis.defaultOptions)%3Bthis.props%3D%7Btouch%3A%7B%7D%7D%3Bthis.animationTimer%3Dnull%3Bthis.body.emitter.on(%5C%5C%5C%22panstart%5C%5C%5C%22%2Cthis._onDragStart.bind(this))%3Bthis.body.emitter.on(%5C%5C%5C%22panmove%5C%5C%5C%22%2Cthis._onDrag.bind(this))%3Bthis.body.emitter.on(%5C%5C%5C%22panend%5C%5C%5C%22%2Cthis._onDragEnd.bind(this))%3Bthis.body.emitter.on(%5C%5C%5C%22mousewheel%5C%5C%5C%22%2Cthis._onMouseWheel.bind(this))%3Bthis.body.emitter.on(%5C%5C%5C%22touch%5C%5C%5C%22%2Cthis._onTouch.bind(this))%3Bthis.body.emitter.on(%5C%5C%5C%22pinch%5C%5C%5C%22%2Cthis._onPinch.bind(this))%3Bthis.body.dom.rollingModeBtn.addEventListener(%5C%5C%5C%22click%5C%5C%5C%22%2Cthis.startRolling.bind(this))%3Bthis.setOptions(options)%7DRange.prototype%3Dnew%20Component%3BRange.prototype.setOptions%3Dfunction(options)%7Bif(options)%7Bvar%20fields%3D%5B%5C%5C%5C%22animation%5C%5C%5C%22%2C%5C%5C%5C%22direction%5C%5C%5C%22%2C%5C%5C%5C%22min%5C%5C%5C%22%2C%5C%5C%5C%22max%5C%5C%5C%22%2C%5C%5C%5C%22zoomMin%5C%5C%5C%22%2C%5C%5C%5C%22zoomMax%5C%5C%5C%22%2C%5C%5C%5C%22moveable%5C%5C%5C%22%2C%5C%5C%5C%22zoomable%5C%5C%5C%22%2C%5C%5C%5C%22moment%5C%5C%5C%22%2C%5C%5C%5C%22activate%5C%5C%5C%22%2C%5C%5C%5C%22hiddenDates%5C%5C%5C%22%2C%5C%5C%5C%22zoomKey%5C%5C%5C%22%2C%5C%5C%5C%22rtl%5C%5C%5C%22%2C%5C%5C%5C%22showCurrentTime%5C%5C%5C%22%2C%5C%5C%5C%22rollingMode%5C%5C%5C%22%2C%5C%5C%5C%22horizontalScroll%5C%5C%5C%22%5D%3Butil.selectiveExtend(fields%2Cthis.options%2Coptions)%3Bif(options.rollingMode%26%26options.rollingMode.follow)%7Bthis.startRolling()%7Dif(%5C%5C%5C%22start%5C%5C%5C%22in%20options%7C%7C%5C%5C%5C%22end%5C%5C%5C%22in%20options)%7Bthis.setRange(options.start%2Coptions.end)%7D%7D%7D%3Bfunction%20validateDirection(direction)%7Bif(direction!%3D%5C%5C%5C%22horizontal%5C%5C%5C%22%26%26direction!%3D%5C%5C%5C%22vertical%5C%5C%5C%22)%7Bthrow%20new%20TypeError('Unknown%20direction%20%5C%5C%5C%22'%2Bdirection%2B'%5C%5C%5C%22.%20'%2B'Choose%20%5C%5C%5C%22horizontal%5C%5C%5C%22%20or%20%5C%5C%5C%22vertical%5C%5C%5C%22.')%7D%7DRange.prototype.startRolling%3Dfunction()%7Bvar%20me%3Dthis%3Bfunction%20update()%7Bme.stopRolling()%3Bme.rolling%3Dtrue%3Bvar%20interval%3Dme.end-me.start%3Bvar%20t%3Dutil.convert(new%20Date%2C%5C%5C%5C%22Date%5C%5C%5C%22).valueOf()%3Bvar%20start%3Dt-interval*me.options.rollingMode.offset%3Bvar%20end%3Dt%2Binterval*(1-me.options.rollingMode.offset)%3Bvar%20options%3D%7Banimation%3Afalse%7D%3Bme.setRange(start%2Cend%2Coptions)%3Bvar%20scale%3Dme.conversion(me.body.domProps.center.width).scale%3Binterval%3D1%2Fscale%2F10%3Bif(interval%3C30)interval%3D30%3Bif(interval%3E1e3)interval%3D1e3%3Bme.body.dom.rollingModeBtn.style.visibility%3D%5C%5C%5C%22hidden%5C%5C%5C%22%3Bme.currentTimeTimer%3DsetTimeout(update%2Cinterval)%7Dupdate()%7D%3BRange.prototype.stopRolling%3Dfunction()%7Bif(this.currentTimeTimer!%3D%3Dundefined)%7BclearTimeout(this.currentTimeTimer)%3Bthis.rolling%3Dfalse%3Bthis.body.dom.rollingModeBtn.style.visibility%3D%5C%5C%5C%22visible%5C%5C%5C%22%7D%7D%3BRange.prototype.setRange%3Dfunction(start%2Cend%2Coptions%2Ccallback%2CframeCallback)%7Bif(!options)%7Boptions%3D%7B%7D%7Dif(options.byUser!%3D%3Dtrue)%7Boptions.byUser%3Dfalse%7Dvar%20me%3Dthis%3Bvar%20finalStart%3Dstart!%3Dundefined%3Futil.convert(start%2C%5C%5C%5C%22Date%5C%5C%5C%22).valueOf()%3Anull%3Bvar%20finalEnd%3Dend!%3Dundefined%3Futil.convert(end%2C%5C%5C%5C%22Date%5C%5C%5C%22).valueOf()%3Anull%3Bthis._cancelAnimation()%3Bthis.millisecondsPerPixelCache%3Dundefined%3Bif(options.animation)%7Bvar%20initStart%3Dthis.start%3Bvar%20initEnd%3Dthis.end%3Bvar%20duration%3D(0%2C_typeof3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(options.animation)%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22%26%26%5C%5C%5C%22duration%5C%5C%5C%22in%20options.animation%3Foptions.animation.duration%3A500%3Bvar%20easingName%3D(0%2C_typeof3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(options.animation)%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22%26%26%5C%5C%5C%22easingFunction%5C%5C%5C%22in%20options.animation%3Foptions.animation.easingFunction%3A%5C%5C%5C%22easeInOutQuad%5C%5C%5C%22%3Bvar%20easingFunction%3Dutil.easingFunctions%5BeasingName%5D%3Bif(!easingFunction)%7Bthrow%20new%20Error(%5C%5C%5C%22Unknown%20easing%20function%20%5C%5C%5C%22%2B(0%2C_stringify2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(easingName)%2B%5C%5C%5C%22.%20%5C%5C%5C%22%2B%5C%5C%5C%22Choose%20from%3A%20%5C%5C%5C%22%2B(0%2C_keys2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(util.easingFunctions).join(%5C%5C%5C%22%2C%20%5C%5C%5C%22))%7Dvar%20initTime%3D(new%20Date).valueOf()%3Bvar%20anyChanged%3Dfalse%3Bvar%20next%3Dfunction%20next()%7Bif(!me.props.touch.dragging)%7Bvar%20now%3D(new%20Date).valueOf()%3Bvar%20time%3Dnow-initTime%3Bvar%20ease%3DeasingFunction(time%2Fduration)%3Bvar%20done%3Dtime%3Eduration%3Bvar%20s%3Ddone%7C%7CfinalStart%3D%3D%3Dnull%3FfinalStart%3AinitStart%2B(finalStart-initStart)*ease%3Bvar%20e%3Ddone%7C%7CfinalEnd%3D%3D%3Dnull%3FfinalEnd%3AinitEnd%2B(finalEnd-initEnd)*ease%3Bchanged%3Dme._applyRange(s%2Ce)%3BDateUtil.updateHiddenDates(me.options.moment%2Cme.body%2Cme.options.hiddenDates)%3BanyChanged%3DanyChanged%7C%7Cchanged%3Bvar%20params%3D%7Bstart%3Anew%20Date(me.start)%2Cend%3Anew%20Date(me.end)%2CbyUser%3Aoptions.byUser%2Cevent%3Aoptions.event%7D%3Bif(frameCallback)%7BframeCallback(ease%2Cchanged%2Cdone)%7Dif(changed)%7Bme.body.emitter.emit(%5C%5C%5C%22rangechange%5C%5C%5C%22%2Cparams)%7Dif(done)%7Bif(anyChanged)%7Bme.body.emitter.emit(%5C%5C%5C%22rangechanged%5C%5C%5C%22%2Cparams)%3Bif(callback)%7Breturn%20callback()%7D%7D%7Delse%7Bme.animationTimer%3DsetTimeout(next%2C20)%7D%7D%7D%3Breturn%20next()%7Delse%7Bvar%20changed%3Dthis._applyRange(finalStart%2CfinalEnd)%3BDateUtil.updateHiddenDates(this.options.moment%2Cthis.body%2Cthis.options.hiddenDates)%3Bif(changed)%7Bvar%20params%3D%7Bstart%3Anew%20Date(this.start)%2Cend%3Anew%20Date(this.end)%2CbyUser%3Aoptions.byUser%2Cevent%3Aoptions.event%7D%3Bthis.body.emitter.emit(%5C%5C%5C%22rangechange%5C%5C%5C%22%2Cparams)%3BclearTimeout(me.timeoutID)%3Bme.timeoutID%3DsetTimeout(function()%7Bme.body.emitter.emit(%5C%5C%5C%22rangechanged%5C%5C%5C%22%2Cparams)%7D%2C200)%3Bif(callback)%7Breturn%20callback()%7D%7D%7D%7D%3BRange.prototype.getMillisecondsPerPixel%3Dfunction()%7Bif(this.millisecondsPerPixelCache%3D%3D%3Dundefined)%7Bthis.millisecondsPerPixelCache%3D(this.end-this.start)%2Fthis.body.dom.center.clientWidth%7Dreturn%20this.millisecondsPerPixelCache%7D%3BRange.prototype._cancelAnimation%3Dfunction()%7Bif(this.animationTimer)%7BclearTimeout(this.animationTimer)%3Bthis.animationTimer%3Dnull%7D%7D%3BRange.prototype._applyRange%3Dfunction(start%2Cend)%7Bvar%20newStart%3Dstart!%3Dnull%3Futil.convert(start%2C%5C%5C%5C%22Date%5C%5C%5C%22).valueOf()%3Athis.start%2CnewEnd%3Dend!%3Dnull%3Futil.convert(end%2C%5C%5C%5C%22Date%5C%5C%5C%22).valueOf()%3Athis.end%2Cmax%3Dthis.options.max!%3Dnull%3Futil.convert(this.options.max%2C%5C%5C%5C%22Date%5C%5C%5C%22).valueOf()%3Anull%2Cmin%3Dthis.options.min!%3Dnull%3Futil.convert(this.options.min%2C%5C%5C%5C%22Date%5C%5C%5C%22).valueOf()%3Anull%2Cdiff%3Bif(isNaN(newStart)%7C%7CnewStart%3D%3D%3Dnull)%7Bthrow%20new%20Error('Invalid%20start%20%5C%5C%5C%22'%2Bstart%2B'%5C%5C%5C%22')%7Dif(isNaN(newEnd)%7C%7CnewEnd%3D%3D%3Dnull)%7Bthrow%20new%20Error('Invalid%20end%20%5C%5C%5C%22'%2Bend%2B'%5C%5C%5C%22')%7Dif(newEnd%3CnewStart)%7BnewEnd%3DnewStart%7Dif(min!%3D%3Dnull)%7Bif(newStart%3Cmin)%7Bdiff%3Dmin-newStart%3BnewStart%2B%3Ddiff%3BnewEnd%2B%3Ddiff%3Bif(max!%3Dnull)%7Bif(newEnd%3Emax)%7BnewEnd%3Dmax%7D%7D%7D%7Dif(max!%3D%3Dnull)%7Bif(newEnd%3Emax)%7Bdiff%3DnewEnd-max%3BnewStart-%3Ddiff%3BnewEnd-%3Ddiff%3Bif(min!%3Dnull)%7Bif(newStart%3Cmin)%7BnewStart%3Dmin%7D%7D%7D%7Dif(this.options.zoomMin!%3D%3Dnull)%7Bvar%20zoomMin%3DparseFloat(this.options.zoomMin)%3Bif(zoomMin%3C0)%7BzoomMin%3D0%7Dif(newEnd-newStart%3CzoomMin)%7Bvar%20compensation%3D.5%3Bif(this.end-this.start%3D%3D%3DzoomMin%26%26newStart%3E%3Dthis.start-compensation%26%26newEnd%3C%3Dthis.end)%7BnewStart%3Dthis.start%3BnewEnd%3Dthis.end%7Delse%7Bdiff%3DzoomMin-(newEnd-newStart)%3BnewStart-%3Ddiff%2F2%3BnewEnd%2B%3Ddiff%2F2%7D%7D%7Dif(this.options.zoomMax!%3D%3Dnull)%7Bvar%20zoomMax%3DparseFloat(this.options.zoomMax)%3Bif(zoomMax%3C0)%7BzoomMax%3D0%7Dif(newEnd-newStart%3EzoomMax)%7Bif(this.end-this.start%3D%3D%3DzoomMax%26%26newStart%3Cthis.start%26%26newEnd%3Ethis.end)%7BnewStart%3Dthis.start%3BnewEnd%3Dthis.end%7Delse%7Bdiff%3DnewEnd-newStart-zoomMax%3BnewStart%2B%3Ddiff%2F2%3BnewEnd-%3Ddiff%2F2%7D%7D%7Dvar%20changed%3Dthis.start!%3DnewStart%7C%7Cthis.end!%3DnewEnd%3Bif(!(newStart%3E%3Dthis.start%26%26newStart%3C%3Dthis.end%7C%7CnewEnd%3E%3Dthis.start%26%26newEnd%3C%3Dthis.end)%26%26!(this.start%3E%3DnewStart%26%26this.start%3C%3DnewEnd%7C%7Cthis.end%3E%3DnewStart%26%26this.end%3C%3DnewEnd))%7Bthis.body.emitter.emit(%5C%5C%5C%22checkRangedItems%5C%5C%5C%22)%7Dthis.start%3DnewStart%3Bthis.end%3DnewEnd%3Breturn%20changed%7D%3BRange.prototype.getRange%3Dfunction()%7Breturn%7Bstart%3Athis.start%2Cend%3Athis.end%7D%7D%3BRange.prototype.conversion%3Dfunction(width%2CtotalHidden)%7Breturn%20Range.conversion(this.start%2Cthis.end%2Cwidth%2CtotalHidden)%7D%3BRange.conversion%3Dfunction(start%2Cend%2Cwidth%2CtotalHidden)%7Bif(totalHidden%3D%3D%3Dundefined)%7BtotalHidden%3D0%7Dif(width!%3D0%26%26end-start!%3D0)%7Breturn%7Boffset%3Astart%2Cscale%3Awidth%2F(end-start-totalHidden)%7D%7Delse%7Breturn%7Boffset%3A0%2Cscale%3A1%7D%7D%7D%3BRange.prototype._onDragStart%3Dfunction(event)%7Bthis.deltaDifference%3D0%3Bthis.previousDelta%3D0%3Bif(!this.options.moveable)return%3Bif(!this._isInsideRange(event))return%3Bif(!this.props.touch.allowDragging)return%3Bthis.stopRolling()%3Bthis.props.touch.start%3Dthis.start%3Bthis.props.touch.end%3Dthis.end%3Bthis.props.touch.dragging%3Dtrue%3Bif(this.body.dom.root)%7Bthis.body.dom.root.style.cursor%3D%5C%5C%5C%22move%5C%5C%5C%22%7D%7D%3BRange.prototype._onDrag%3Dfunction(event)%7Bif(!event)return%3Bif(!this.props.touch.dragging)return%3Bif(!this.options.moveable)return%3Bif(!this.props.touch.allowDragging)return%3Bvar%20direction%3Dthis.options.direction%3BvalidateDirection(direction)%3Bvar%20delta%3Ddirection%3D%3D%5C%5C%5C%22horizontal%5C%5C%5C%22%3Fevent.deltaX%3Aevent.deltaY%3Bdelta-%3Dthis.deltaDifference%3Bvar%20interval%3Dthis.props.touch.end-this.props.touch.start%3Bvar%20duration%3DDateUtil.getHiddenDurationBetween(this.body.hiddenDates%2Cthis.start%2Cthis.end)%3Binterval-%3Dduration%3Bvar%20width%3Ddirection%3D%3D%5C%5C%5C%22horizontal%5C%5C%5C%22%3Fthis.body.domProps.center.width%3Athis.body.domProps.center.height%3Bvar%20diffRange%3Bif(this.options.rtl)%7BdiffRange%3Ddelta%2Fwidth*interval%7Delse%7BdiffRange%3D-delta%2Fwidth*interval%7Dvar%20newStart%3Dthis.props.touch.start%2BdiffRange%3Bvar%20newEnd%3Dthis.props.touch.end%2BdiffRange%3Bvar%20safeStart%3DDateUtil.snapAwayFromHidden(this.body.hiddenDates%2CnewStart%2Cthis.previousDelta-delta%2Ctrue)%3Bvar%20safeEnd%3DDateUtil.snapAwayFromHidden(this.body.hiddenDates%2CnewEnd%2Cthis.previousDelta-delta%2Ctrue)%3Bif(safeStart!%3DnewStart%7C%7CsafeEnd!%3DnewEnd)%7Bthis.deltaDifference%2B%3Ddelta%3Bthis.props.touch.start%3DsafeStart%3Bthis.props.touch.end%3DsafeEnd%3Bthis._onDrag(event)%3Breturn%7Dthis.previousDelta%3Ddelta%3Bthis._applyRange(newStart%2CnewEnd)%3Bvar%20startDate%3Dnew%20Date(this.start)%3Bvar%20endDate%3Dnew%20Date(this.end)%3Bthis.body.emitter.emit(%5C%5C%5C%22rangechange%5C%5C%5C%22%2C%7Bstart%3AstartDate%2Cend%3AendDate%2CbyUser%3Atrue%2Cevent%3Aevent%7D)%3Bthis.body.emitter.emit(%5C%5C%5C%22panmove%5C%5C%5C%22)%7D%3BRange.prototype._onDragEnd%3Dfunction(event)%7Bif(!this.props.touch.dragging)return%3Bif(!this.options.moveable)return%3Bif(!this.props.touch.allowDragging)return%3Bthis.props.touch.dragging%3Dfalse%3Bif(this.body.dom.root)%7Bthis.body.dom.root.style.cursor%3D%5C%5C%5C%22auto%5C%5C%5C%22%7Dthis.body.emitter.emit(%5C%5C%5C%22rangechanged%5C%5C%5C%22%2C%7Bstart%3Anew%20Date(this.start)%2Cend%3Anew%20Date(this.end)%2CbyUser%3Atrue%2Cevent%3Aevent%7D)%7D%3BRange.prototype._onMouseWheel%3Dfunction(event)%7Bvar%20delta%3D0%3Bif(event.wheelDelta)%7Bdelta%3Devent.wheelDelta%2F120%7Delse%20if(event.detail)%7Bdelta%3D-event.detail%2F3%7Dif(this.options.zoomKey%26%26!event%5Bthis.options.zoomKey%5D%26%26this.options.zoomable%7C%7C!this.options.zoomable%26%26this.options.moveable)%7Breturn%7Dif(!(this.options.zoomable%26%26this.options.moveable))return%3Bif(!this._isInsideRange(event))return%3Bif(delta)%7Bvar%20scale%3Bif(delta%3C0)%7Bscale%3D1-delta%2F5%7Delse%7Bscale%3D1%2F(1%2Bdelta%2F5)%7Dvar%20pointerDate%3Bif(this.rolling)%7BpointerDate%3Dthis.start%2B(this.end-this.start)*this.options.rollingMode.offset%7Delse%7Bvar%20pointer%3Dthis.getPointer(%7Bx%3Aevent.clientX%2Cy%3Aevent.clientY%7D%2Cthis.body.dom.center)%3BpointerDate%3Dthis._pointerToDate(pointer)%7Dthis.zoom(scale%2CpointerDate%2Cdelta%2Cevent)%3Bevent.preventDefault()%7D%7D%3BRange.prototype._onTouch%3Dfunction(event)%7Bthis.props.touch.start%3Dthis.start%3Bthis.props.touch.end%3Dthis.end%3Bthis.props.touch.allowDragging%3Dtrue%3Bthis.props.touch.center%3Dnull%3Bthis.scaleOffset%3D0%3Bthis.deltaDifference%3D0%3Butil.preventDefault(event)%7D%3BRange.prototype._onPinch%3Dfunction(event)%7Bif(!(this.options.zoomable%26%26this.options.moveable))return%3Butil.preventDefault(event)%3Bthis.props.touch.allowDragging%3Dfalse%3Bif(!this.props.touch.center)%7Bthis.props.touch.center%3Dthis.getPointer(event.center%2Cthis.body.dom.center)%7Dthis.stopRolling()%3Bvar%20scale%3D1%2F(event.scale%2Bthis.scaleOffset)%3Bvar%20centerDate%3Dthis._pointerToDate(this.props.touch.center)%3Bvar%20hiddenDuration%3DDateUtil.getHiddenDurationBetween(this.body.hiddenDates%2Cthis.start%2Cthis.end)%3Bvar%20hiddenDurationBefore%3DDateUtil.getHiddenDurationBefore(this.options.moment%2Cthis.body.hiddenDates%2Cthis%2CcenterDate)%3Bvar%20hiddenDurationAfter%3DhiddenDuration-hiddenDurationBefore%3Bvar%20newStart%3DcenterDate-hiddenDurationBefore%2B(this.props.touch.start-(centerDate-hiddenDurationBefore))*scale%3Bvar%20newEnd%3DcenterDate%2BhiddenDurationAfter%2B(this.props.touch.end-(centerDate%2BhiddenDurationAfter))*scale%3Bthis.startToFront%3D1-scale%3C%3D0%3Bthis.endToFront%3Dscale-1%3C%3D0%3Bvar%20safeStart%3DDateUtil.snapAwayFromHidden(this.body.hiddenDates%2CnewStart%2C1-scale%2Ctrue)%3Bvar%20safeEnd%3DDateUtil.snapAwayFromHidden(this.body.hiddenDates%2CnewEnd%2Cscale-1%2Ctrue)%3Bif(safeStart!%3DnewStart%7C%7CsafeEnd!%3DnewEnd)%7Bthis.props.touch.start%3DsafeStart%3Bthis.props.touch.end%3DsafeEnd%3Bthis.scaleOffset%3D1-event.scale%3BnewStart%3DsafeStart%3BnewEnd%3DsafeEnd%7Dvar%20options%3D%7Banimation%3Afalse%2CbyUser%3Atrue%2Cevent%3Aevent%7D%3Bthis.setRange(newStart%2CnewEnd%2Coptions)%3Bthis.startToFront%3Dfalse%3Bthis.endToFront%3Dtrue%7D%3BRange.prototype._isInsideRange%3Dfunction(event)%7Bvar%20clientX%3Devent.center%3Fevent.center.x%3Aevent.clientX%3Bvar%20x%3Bif(this.options.rtl)%7Bx%3DclientX-util.getAbsoluteLeft(this.body.dom.centerContainer)%7Delse%7Bx%3Dutil.getAbsoluteRight(this.body.dom.centerContainer)-clientX%7Dvar%20time%3Dthis.body.util.toTime(x)%3Breturn%20time%3E%3Dthis.start%26%26time%3C%3Dthis.end%7D%3BRange.prototype._pointerToDate%3Dfunction(pointer)%7Bvar%20conversion%3Bvar%20direction%3Dthis.options.direction%3BvalidateDirection(direction)%3Bif(direction%3D%3D%5C%5C%5C%22horizontal%5C%5C%5C%22)%7Breturn%20this.body.util.toTime(pointer.x).valueOf()%7Delse%7Bvar%20height%3Dthis.body.domProps.center.height%3Bconversion%3Dthis.conversion(height)%3Breturn%20pointer.y%2Fconversion.scale%2Bconversion.offset%7D%7D%3BRange.prototype.getPointer%3Dfunction(touch%2Celement)%7Bif(this.options.rtl)%7Breturn%7Bx%3Autil.getAbsoluteRight(element)-touch.x%2Cy%3Atouch.y-util.getAbsoluteTop(element)%7D%7Delse%7Breturn%7Bx%3Atouch.x-util.getAbsoluteLeft(element)%2Cy%3Atouch.y-util.getAbsoluteTop(element)%7D%7D%7D%3BRange.prototype.zoom%3Dfunction(scale%2Ccenter%2Cdelta%2Cevent)%7Bif(center%3D%3Dnull)%7Bcenter%3D(this.start%2Bthis.end)%2F2%7Dvar%20hiddenDuration%3DDateUtil.getHiddenDurationBetween(this.body.hiddenDates%2Cthis.start%2Cthis.end)%3Bvar%20hiddenDurationBefore%3DDateUtil.getHiddenDurationBefore(this.options.moment%2Cthis.body.hiddenDates%2Cthis%2Ccenter)%3Bvar%20hiddenDurationAfter%3DhiddenDuration-hiddenDurationBefore%3Bvar%20newStart%3Dcenter-hiddenDurationBefore%2B(this.start-(center-hiddenDurationBefore))*scale%3Bvar%20newEnd%3Dcenter%2BhiddenDurationAfter%2B(this.end-(center%2BhiddenDurationAfter))*scale%3Bthis.startToFront%3Ddelta%3E0%3Ffalse%3Atrue%3Bthis.endToFront%3D-delta%3E0%3Ffalse%3Atrue%3Bvar%20safeStart%3DDateUtil.snapAwayFromHidden(this.body.hiddenDates%2CnewStart%2Cdelta%2Ctrue)%3Bvar%20safeEnd%3DDateUtil.snapAwayFromHidden(this.body.hiddenDates%2CnewEnd%2C-delta%2Ctrue)%3Bif(safeStart!%3DnewStart%7C%7CsafeEnd!%3DnewEnd)%7BnewStart%3DsafeStart%3BnewEnd%3DsafeEnd%7Dvar%20options%3D%7Banimation%3Afalse%2CbyUser%3Atrue%2Cevent%3Aevent%7D%3Bthis.setRange(newStart%2CnewEnd%2Coptions)%3Bthis.startToFront%3Dfalse%3Bthis.endToFront%3Dtrue%7D%3BRange.prototype.move%3Dfunction(delta)%7Bvar%20diff%3Dthis.end-this.start%3Bvar%20newStart%3Dthis.start%2Bdiff*delta%3Bvar%20newEnd%3Dthis.end%2Bdiff*delta%3Bthis.start%3DnewStart%3Bthis.end%3DnewEnd%7D%3BRange.prototype.moveTo%3Dfunction(moveTo)%7Bvar%20center%3D(this.start%2Bthis.end)%2F2%3Bvar%20diff%3Dcenter-moveTo%3Bvar%20newStart%3Dthis.start-diff%3Bvar%20newEnd%3Dthis.end-diff%3Bvar%20options%3D%7Banimation%3Afalse%2CbyUser%3Atrue%2Cevent%3Anull%7D%3Bthis.setRange(newStart%2CnewEnd%2Coptions)%7D%3Bmodule.exports%3DRange%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bvar%20_stringify%3D__webpack_require__(19)%3Bvar%20_stringify2%3D_interopRequireDefault(_stringify)%3Bvar%20_typeof2%3D__webpack_require__(6)%3Bvar%20_typeof3%3D_interopRequireDefault(_typeof2)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20Emitter%3D__webpack_require__(44)%3Bvar%20Hammer%3D__webpack_require__(10)%3Bvar%20hammerUtil%3D__webpack_require__(37)%3Bvar%20util%3D__webpack_require__(2)%3Bvar%20TimeAxis%3D__webpack_require__(45)%3Bvar%20Activator%3D__webpack_require__(97)%3Bvar%20DateUtil%3D__webpack_require__(36)%3Bvar%20CustomTime%3D__webpack_require__(46)%3Bfunction%20Core()%7B%7DEmitter(Core.prototype)%3BCore.prototype._create%3Dfunction(container)%7Bthis.dom%3D%7B%7D%3Bthis.dom.container%3Dcontainer%3Bthis.dom.root%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bthis.dom.background%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bthis.dom.backgroundVertical%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bthis.dom.backgroundHorizontal%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bthis.dom.centerContainer%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bthis.dom.leftContainer%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bthis.dom.rightContainer%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bthis.dom.center%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bthis.dom.left%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bthis.dom.right%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bthis.dom.top%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bthis.dom.bottom%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bthis.dom.shadowTop%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bthis.dom.shadowBottom%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bthis.dom.shadowTopLeft%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bthis.dom.shadowBottomLeft%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bthis.dom.shadowTopRight%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bthis.dom.shadowBottomRight%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bthis.dom.rollingModeBtn%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bthis.dom.root.className%3D%5C%5C%5C%22vis-timeline%5C%5C%5C%22%3Bthis.dom.background.className%3D%5C%5C%5C%22vis-panel%20vis-background%5C%5C%5C%22%3Bthis.dom.backgroundVertical.className%3D%5C%5C%5C%22vis-panel%20vis-background%20vis-vertical%5C%5C%5C%22%3Bthis.dom.backgroundHorizontal.className%3D%5C%5C%5C%22vis-panel%20vis-background%20vis-horizontal%5C%5C%5C%22%3Bthis.dom.centerContainer.className%3D%5C%5C%5C%22vis-panel%20vis-center%5C%5C%5C%22%3Bthis.dom.leftContainer.className%3D%5C%5C%5C%22vis-panel%20vis-left%5C%5C%5C%22%3Bthis.dom.rightContainer.className%3D%5C%5C%5C%22vis-panel%20vis-right%5C%5C%5C%22%3Bthis.dom.top.className%3D%5C%5C%5C%22vis-panel%20vis-top%5C%5C%5C%22%3Bthis.dom.bottom.className%3D%5C%5C%5C%22vis-panel%20vis-bottom%5C%5C%5C%22%3Bthis.dom.left.className%3D%5C%5C%5C%22vis-content%5C%5C%5C%22%3Bthis.dom.center.className%3D%5C%5C%5C%22vis-content%5C%5C%5C%22%3Bthis.dom.right.className%3D%5C%5C%5C%22vis-content%5C%5C%5C%22%3Bthis.dom.shadowTop.className%3D%5C%5C%5C%22vis-shadow%20vis-top%5C%5C%5C%22%3Bthis.dom.shadowBottom.className%3D%5C%5C%5C%22vis-shadow%20vis-bottom%5C%5C%5C%22%3Bthis.dom.shadowTopLeft.className%3D%5C%5C%5C%22vis-shadow%20vis-top%5C%5C%5C%22%3Bthis.dom.shadowBottomLeft.className%3D%5C%5C%5C%22vis-shadow%20vis-bottom%5C%5C%5C%22%3Bthis.dom.shadowTopRight.className%3D%5C%5C%5C%22vis-shadow%20vis-top%5C%5C%5C%22%3Bthis.dom.shadowBottomRight.className%3D%5C%5C%5C%22vis-shadow%20vis-bottom%5C%5C%5C%22%3Bthis.dom.rollingModeBtn.className%3D%5C%5C%5C%22vis-rolling-mode-btn%5C%5C%5C%22%3Bthis.dom.root.appendChild(this.dom.background)%3Bthis.dom.root.appendChild(this.dom.backgroundVertical)%3Bthis.dom.root.appendChild(this.dom.backgroundHorizontal)%3Bthis.dom.root.appendChild(this.dom.centerContainer)%3Bthis.dom.root.appendChild(this.dom.leftContainer)%3Bthis.dom.root.appendChild(this.dom.rightContainer)%3Bthis.dom.root.appendChild(this.dom.top)%3Bthis.dom.root.appendChild(this.dom.bottom)%3Bthis.dom.root.appendChild(this.dom.bottom)%3Bthis.dom.root.appendChild(this.dom.rollingModeBtn)%3Bthis.dom.centerContainer.appendChild(this.dom.center)%3Bthis.dom.leftContainer.appendChild(this.dom.left)%3Bthis.dom.rightContainer.appendChild(this.dom.right)%3Bthis.dom.centerContainer.appendChild(this.dom.shadowTop)%3Bthis.dom.centerContainer.appendChild(this.dom.shadowBottom)%3Bthis.dom.leftContainer.appendChild(this.dom.shadowTopLeft)%3Bthis.dom.leftContainer.appendChild(this.dom.shadowBottomLeft)%3Bthis.dom.rightContainer.appendChild(this.dom.shadowTopRight)%3Bthis.dom.rightContainer.appendChild(this.dom.shadowBottomRight)%3Bthis.props%3D%7Broot%3A%7B%7D%2Cbackground%3A%7B%7D%2CcenterContainer%3A%7B%7D%2CleftContainer%3A%7B%7D%2CrightContainer%3A%7B%7D%2Ccenter%3A%7B%7D%2Cleft%3A%7B%7D%2Cright%3A%7B%7D%2Ctop%3A%7B%7D%2Cbottom%3A%7B%7D%2Cborder%3A%7B%7D%2CscrollTop%3A0%2CscrollTopMin%3A0%7D%3Bthis.on(%5C%5C%5C%22rangechange%5C%5C%5C%22%2Cfunction()%7Bif(this.initialDrawDone%3D%3D%3Dtrue)%7Bthis._redraw()%7D%7D.bind(this))%3Bthis.on(%5C%5C%5C%22rangechanged%5C%5C%5C%22%2Cfunction()%7Bif(!this.initialRangeChangeDone)%7Bthis.initialRangeChangeDone%3Dtrue%7D%7D.bind(this))%3Bthis.on(%5C%5C%5C%22touch%5C%5C%5C%22%2Cthis._onTouch.bind(this))%3Bthis.on(%5C%5C%5C%22panmove%5C%5C%5C%22%2Cthis._onDrag.bind(this))%3Bvar%20me%3Dthis%3Bthis._origRedraw%3Dthis._redraw.bind(this)%3Bthis._redraw%3Dutil.throttle(this._origRedraw)%3Bthis.on(%5C%5C%5C%22_change%5C%5C%5C%22%2Cfunction(properties)%7Bif(me.itemSet%26%26me.itemSet.initialItemSetDrawn%26%26properties%26%26properties.queue%3D%3Dtrue)%7Bme._redraw()%7Delse%7Bme._origRedraw()%7D%7D)%3Bthis.hammer%3Dnew%20Hammer(this.dom.root)%3Bvar%20pinchRecognizer%3Dthis.hammer.get(%5C%5C%5C%22pinch%5C%5C%5C%22).set(%7Benable%3Atrue%7D)%3BhammerUtil.disablePreventDefaultVertically(pinchRecognizer)%3Bthis.hammer.get(%5C%5C%5C%22pan%5C%5C%5C%22).set(%7Bthreshold%3A5%2Cdirection%3AHammer.DIRECTION_HORIZONTAL%7D)%3Bthis.listeners%3D%7B%7D%3Bvar%20events%3D%5B%5C%5C%5C%22tap%5C%5C%5C%22%2C%5C%5C%5C%22doubletap%5C%5C%5C%22%2C%5C%5C%5C%22press%5C%5C%5C%22%2C%5C%5C%5C%22pinch%5C%5C%5C%22%2C%5C%5C%5C%22pan%5C%5C%5C%22%2C%5C%5C%5C%22panstart%5C%5C%5C%22%2C%5C%5C%5C%22panmove%5C%5C%5C%22%2C%5C%5C%5C%22panend%5C%5C%5C%22%5D%3Bevents.forEach(function(type)%7Bvar%20listener%3Dfunction%20listener(event)%7Bif(me.isActive())%7Bme.emit(type%2Cevent)%7D%7D%3Bme.hammer.on(type%2Clistener)%3Bme.listeners%5Btype%5D%3Dlistener%7D)%3BhammerUtil.onTouch(this.hammer%2Cfunction(event)%7Bme.emit(%5C%5C%5C%22touch%5C%5C%5C%22%2Cevent)%7D.bind(this))%3BhammerUtil.onRelease(this.hammer%2Cfunction(event)%7Bme.emit(%5C%5C%5C%22release%5C%5C%5C%22%2Cevent)%7D.bind(this))%3Bfunction%20onMouseWheel(event)%7Bif(this.isActive())%7Bthis.emit(%5C%5C%5C%22mousewheel%5C%5C%5C%22%2Cevent)%7Dvar%20deltaX%3D0%3Bvar%20deltaY%3D0%3Bif(%5C%5C%5C%22detail%5C%5C%5C%22in%20event)%7BdeltaY%3Devent.detail*-1%7Dif(%5C%5C%5C%22wheelDelta%5C%5C%5C%22in%20event)%7BdeltaY%3Devent.wheelDelta%7Dif(%5C%5C%5C%22wheelDeltaY%5C%5C%5C%22in%20event)%7BdeltaY%3Devent.wheelDeltaY%7Dif(%5C%5C%5C%22wheelDeltaX%5C%5C%5C%22in%20event)%7BdeltaX%3Devent.wheelDeltaX*-1%7Dif(%5C%5C%5C%22axis%5C%5C%5C%22in%20event%26%26event.axis%3D%3D%3Devent.HORIZONTAL_AXIS)%7BdeltaX%3DdeltaY*-1%3BdeltaY%3D0%7Dif(%5C%5C%5C%22deltaY%5C%5C%5C%22in%20event)%7BdeltaY%3Devent.deltaY*-1%7Dif(%5C%5C%5C%22deltaX%5C%5C%5C%22in%20event)%7BdeltaX%3Devent.deltaX%7Dif(!this.options.zoomKey%7C%7Cevent%5Bthis.options.zoomKey%5D)return%3Bevent.preventDefault()%3Bif(this.options.verticalScroll%26%26Math.abs(deltaY)%3E%3DMath.abs(deltaX))%7Bvar%20current%3Dthis.props.scrollTop%3Bvar%20adjusted%3Dcurrent%2BdeltaY%3Bif(this.isActive())%7Bthis._setScrollTop(adjusted)%3Bthis._redraw()%3Bthis.emit(%5C%5C%5C%22scroll%5C%5C%5C%22%2Cevent)%7D%7Delse%20if(this.options.horizontalScroll)%7Bvar%20delta%3DMath.abs(deltaX)%3E%3DMath.abs(deltaY)%3FdeltaX%3AdeltaY%3Bvar%20diff%3Ddelta%2F120*(this.range.end-this.range.start)%2F20%3Bvar%20newStart%3Dthis.range.start%2Bdiff%3Bvar%20newEnd%3Dthis.range.end%2Bdiff%3Bvar%20options%3D%7Banimation%3Afalse%2CbyUser%3Atrue%2Cevent%3Aevent%7D%3Bthis.range.setRange(newStart%2CnewEnd%2Coptions)%7D%7Dif(this.dom.centerContainer.addEventListener)%7Bthis.dom.centerContainer.addEventListener(%5C%5C%5C%22mousewheel%5C%5C%5C%22%2ConMouseWheel.bind(this)%2Cfalse)%3Bthis.dom.centerContainer.addEventListener(%5C%5C%5C%22DOMMouseScroll%5C%5C%5C%22%2ConMouseWheel.bind(this)%2Cfalse)%7Delse%7Bthis.dom.centerContainer.attachEvent(%5C%5C%5C%22onmousewheel%5C%5C%5C%22%2ConMouseWheel.bind(this))%7Dfunction%20onMouseScrollSide(event)%7Bif(!me.options.verticalScroll)return%3Bevent.preventDefault()%3Bif(me.isActive())%7Bvar%20adjusted%3D-event.target.scrollTop%3Bme._setScrollTop(adjusted)%3Bme._redraw()%3Bme.emit(%5C%5C%5C%22scrollSide%5C%5C%5C%22%2Cevent)%7D%7Dthis.dom.left.parentNode.addEventListener(%5C%5C%5C%22scroll%5C%5C%5C%22%2ConMouseScrollSide.bind(this))%3Bthis.dom.right.parentNode.addEventListener(%5C%5C%5C%22scroll%5C%5C%5C%22%2ConMouseScrollSide.bind(this))%3Bvar%20itemAddedToTimeline%3Dfalse%3Bfunction%20handleDragOver(event)%7Bif(event.preventDefault)%7Bevent.preventDefault()%7Dif(!event.target.className.indexOf(%5C%5C%5C%22vis%5C%5C%5C%22)%3E-1)return%3Bif(itemAddedToTimeline)return%3Bevent.dataTransfer.dropEffect%3D%5C%5C%5C%22move%5C%5C%5C%22%3BitemAddedToTimeline%3Dtrue%3Breturn%20false%7Dfunction%20handleDrop(event)%7Bif(event.preventDefault)%7Bevent.preventDefault()%7Dif(event.stopPropagation)%7Bevent.stopPropagation()%7Dtry%7Bvar%20itemData%3DJSON.parse(event.dataTransfer.getData(%5C%5C%5C%22text%5C%5C%5C%22))%3Bif(!itemData%7C%7C!itemData.content)return%7Dcatch(err)%7Breturn%20false%7DitemAddedToTimeline%3Dfalse%3Bevent.center%3D%7Bx%3Aevent.clientX%2Cy%3Aevent.clientY%7D%3Bif(itemData.target!%3D%3D%5C%5C%5C%22item%5C%5C%5C%22)%7Bme.itemSet._onAddItem(event)%7Delse%7Bme.itemSet._onDropObjectOnItem(event)%7Dme.emit(%5C%5C%5C%22drop%5C%5C%5C%22%2Cme.getEventProperties(event))%3Breturn%20false%7Dthis.dom.center.addEventListener(%5C%5C%5C%22dragover%5C%5C%5C%22%2ChandleDragOver.bind(this)%2Cfalse)%3Bthis.dom.center.addEventListener(%5C%5C%5C%22drop%5C%5C%5C%22%2ChandleDrop.bind(this)%2Cfalse)%3Bthis.customTimes%3D%5B%5D%3Bthis.touch%3D%7B%7D%3Bthis.redrawCount%3D0%3Bthis.initialDrawDone%3Dfalse%3Bthis.initialRangeChangeDone%3Dfalse%3Bif(!container)throw%20new%20Error(%5C%5C%5C%22No%20container%20provided%5C%5C%5C%22)%3Bcontainer.appendChild(this.dom.root)%7D%3BCore.prototype.setOptions%3Dfunction(options)%7Bif(options)%7Bvar%20fields%3D%5B%5C%5C%5C%22width%5C%5C%5C%22%2C%5C%5C%5C%22height%5C%5C%5C%22%2C%5C%5C%5C%22minHeight%5C%5C%5C%22%2C%5C%5C%5C%22maxHeight%5C%5C%5C%22%2C%5C%5C%5C%22autoResize%5C%5C%5C%22%2C%5C%5C%5C%22start%5C%5C%5C%22%2C%5C%5C%5C%22end%5C%5C%5C%22%2C%5C%5C%5C%22clickToUse%5C%5C%5C%22%2C%5C%5C%5C%22dataAttributes%5C%5C%5C%22%2C%5C%5C%5C%22hiddenDates%5C%5C%5C%22%2C%5C%5C%5C%22locale%5C%5C%5C%22%2C%5C%5C%5C%22locales%5C%5C%5C%22%2C%5C%5C%5C%22moment%5C%5C%5C%22%2C%5C%5C%5C%22rtl%5C%5C%5C%22%2C%5C%5C%5C%22zoomKey%5C%5C%5C%22%2C%5C%5C%5C%22horizontalScroll%5C%5C%5C%22%2C%5C%5C%5C%22verticalScroll%5C%5C%5C%22%5D%3Butil.selectiveExtend(fields%2Cthis.options%2Coptions)%3Bthis.dom.rollingModeBtn.style.visibility%3D%5C%5C%5C%22hidden%5C%5C%5C%22%3Bif(this.options.rtl)%7Bthis.dom.container.style.direction%3D%5C%5C%5C%22rtl%5C%5C%5C%22%3Bthis.dom.backgroundVertical.className%3D%5C%5C%5C%22vis-panel%20vis-background%20vis-vertical-rtl%5C%5C%5C%22%7Dif(this.options.verticalScroll)%7Bif(this.options.rtl)%7Bthis.dom.rightContainer.className%3D%5C%5C%5C%22vis-panel%20vis-right%20vis-vertical-scroll%5C%5C%5C%22%7Delse%7Bthis.dom.leftContainer.className%3D%5C%5C%5C%22vis-panel%20vis-left%20vis-vertical-scroll%5C%5C%5C%22%7D%7Dif((0%2C_typeof3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this.options.orientation)!%3D%3D%5C%5C%5C%22object%5C%5C%5C%22)%7Bthis.options.orientation%3D%7Bitem%3Aundefined%2Caxis%3Aundefined%7D%7Dif(%5C%5C%5C%22orientation%5C%5C%5C%22in%20options)%7Bif(typeof%20options.orientation%3D%3D%3D%5C%5C%5C%22string%5C%5C%5C%22)%7Bthis.options.orientation%3D%7Bitem%3Aoptions.orientation%2Caxis%3Aoptions.orientation%7D%7Delse%20if((0%2C_typeof3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(options.orientation)%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22)%7Bif(%5C%5C%5C%22item%5C%5C%5C%22in%20options.orientation)%7Bthis.options.orientation.item%3Doptions.orientation.item%7Dif(%5C%5C%5C%22axis%5C%5C%5C%22in%20options.orientation)%7Bthis.options.orientation.axis%3Doptions.orientation.axis%7D%7D%7Dif(this.options.orientation.axis%3D%3D%3D%5C%5C%5C%22both%5C%5C%5C%22)%7Bif(!this.timeAxis2)%7Bvar%20timeAxis2%3Dthis.timeAxis2%3Dnew%20TimeAxis(this.body)%3BtimeAxis2.setOptions%3Dfunction(options)%7Bvar%20_options%3Doptions%3Futil.extend(%7B%7D%2Coptions)%3A%7B%7D%3B_options.orientation%3D%5C%5C%5C%22top%5C%5C%5C%22%3BTimeAxis.prototype.setOptions.call(timeAxis2%2C_options)%7D%3Bthis.components.push(timeAxis2)%7D%7Delse%7Bif(this.timeAxis2)%7Bvar%20index%3Dthis.components.indexOf(this.timeAxis2)%3Bif(index!%3D%3D-1)%7Bthis.components.splice(index%2C1)%7Dthis.timeAxis2.destroy()%3Bthis.timeAxis2%3Dnull%7D%7Dif(typeof%20options.drawPoints%3D%3D%5C%5C%5C%22function%5C%5C%5C%22)%7Boptions.drawPoints%3D%7BonRender%3Aoptions.drawPoints%7D%7Dif(%5C%5C%5C%22hiddenDates%5C%5C%5C%22in%20this.options)%7BDateUtil.convertHiddenOptions(this.options.moment%2Cthis.body%2Cthis.options.hiddenDates)%7Dif(%5C%5C%5C%22clickToUse%5C%5C%5C%22in%20options)%7Bif(options.clickToUse)%7Bif(!this.activator)%7Bthis.activator%3Dnew%20Activator(this.dom.root)%7D%7Delse%7Bif(this.activator)%7Bthis.activator.destroy()%3Bdelete%20this.activator%7D%7D%7Dif(%5C%5C%5C%22showCustomTime%5C%5C%5C%22in%20options)%7Bthrow%20new%20Error(%5C%5C%5C%22Option%20%60showCustomTime%60%20is%20deprecated.%20Create%20a%20custom%20time%20bar%20via%20timeline.addCustomTime(time%20%5B%2C%20id%5D)%5C%5C%5C%22)%7Dthis._initAutoResize()%7Dthis.components.forEach(function(component)%7Breturn%20component.setOptions(options)%7D)%3Bif(%5C%5C%5C%22configure%5C%5C%5C%22in%20options)%7Bif(!this.configurator)%7Bthis.configurator%3Dthis._createConfigurator()%7Dthis.configurator.setOptions(options.configure)%3Bvar%20appliedOptions%3Dutil.deepExtend(%7B%7D%2Cthis.options)%3Bthis.components.forEach(function(component)%7Butil.deepExtend(appliedOptions%2Ccomponent.options)%7D)%3Bthis.configurator.setModuleOptions(%7Bglobal%3AappliedOptions%7D)%7Dthis._redraw()%7D%3BCore.prototype.isActive%3Dfunction()%7Breturn!this.activator%7C%7Cthis.activator.active%7D%3BCore.prototype.destroy%3Dfunction()%7Bthis.setItems(null)%3Bthis.setGroups(null)%3Bthis.off()%3Bthis._stopAutoResize()%3Bif(this.dom.root.parentNode)%7Bthis.dom.root.parentNode.removeChild(this.dom.root)%7Dthis.dom%3Dnull%3Bif(this.activator)%7Bthis.activator.destroy()%3Bdelete%20this.activator%7Dfor(var%20event%20in%20this.listeners)%7Bif(this.listeners.hasOwnProperty(event))%7Bdelete%20this.listeners%5Bevent%5D%7D%7Dthis.listeners%3Dnull%3Bthis.hammer%3Dnull%3Bthis.components.forEach(function(component)%7Breturn%20component.destroy()%7D)%3Bthis.body%3Dnull%7D%3BCore.prototype.setCustomTime%3Dfunction(time%2Cid)%7Bvar%20customTimes%3Dthis.customTimes.filter(function(component)%7Breturn%20id%3D%3D%3Dcomponent.options.id%7D)%3Bif(customTimes.length%3D%3D%3D0)%7Bthrow%20new%20Error(%5C%5C%5C%22No%20custom%20time%20bar%20found%20with%20id%20%5C%5C%5C%22%2B(0%2C_stringify2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(id))%7Dif(customTimes.length%3E0)%7BcustomTimes%5B0%5D.setCustomTime(time)%7D%7D%3BCore.prototype.getCustomTime%3Dfunction(id)%7Bvar%20customTimes%3Dthis.customTimes.filter(function(component)%7Breturn%20component.options.id%3D%3D%3Did%7D)%3Bif(customTimes.length%3D%3D%3D0)%7Bthrow%20new%20Error(%5C%5C%5C%22No%20custom%20time%20bar%20found%20with%20id%20%5C%5C%5C%22%2B(0%2C_stringify2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(id))%7Dreturn%20customTimes%5B0%5D.getCustomTime()%7D%3BCore.prototype.setCustomTimeTitle%3Dfunction(title%2Cid)%7Bvar%20customTimes%3Dthis.customTimes.filter(function(component)%7Breturn%20component.options.id%3D%3D%3Did%7D)%3Bif(customTimes.length%3D%3D%3D0)%7Bthrow%20new%20Error(%5C%5C%5C%22No%20custom%20time%20bar%20found%20with%20id%20%5C%5C%5C%22%2B(0%2C_stringify2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(id))%7Dif(customTimes.length%3E0)%7Breturn%20customTimes%5B0%5D.setCustomTitle(title)%7D%7D%3BCore.prototype.getEventProperties%3Dfunction(event)%7Breturn%7Bevent%3Aevent%7D%7D%3BCore.prototype.addCustomTime%3Dfunction(time%2Cid)%7Bvar%20timestamp%3Dtime!%3D%3Dundefined%3Futil.convert(time%2C%5C%5C%5C%22Date%5C%5C%5C%22).valueOf()%3Anew%20Date%3Bvar%20exists%3Dthis.customTimes.some(function(customTime)%7Breturn%20customTime.options.id%3D%3D%3Did%7D)%3Bif(exists)%7Bthrow%20new%20Error(%5C%5C%5C%22A%20custom%20time%20with%20id%20%5C%5C%5C%22%2B(0%2C_stringify2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(id)%2B%5C%5C%5C%22%20already%20exists%5C%5C%5C%22)%7Dvar%20customTime%3Dnew%20CustomTime(this.body%2Cutil.extend(%7B%7D%2Cthis.options%2C%7Btime%3Atimestamp%2Cid%3Aid%7D))%3Bthis.customTimes.push(customTime)%3Bthis.components.push(customTime)%3Bthis._redraw()%3Breturn%20id%7D%3BCore.prototype.removeCustomTime%3Dfunction(id)%7Bvar%20customTimes%3Dthis.customTimes.filter(function(bar)%7Breturn%20bar.options.id%3D%3D%3Did%7D)%3Bif(customTimes.length%3D%3D%3D0)%7Bthrow%20new%20Error(%5C%5C%5C%22No%20custom%20time%20bar%20found%20with%20id%20%5C%5C%5C%22%2B(0%2C_stringify2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(id))%7DcustomTimes.forEach(function(customTime)%7Bthis.customTimes.splice(this.customTimes.indexOf(customTime)%2C1)%3Bthis.components.splice(this.components.indexOf(customTime)%2C1)%3BcustomTime.destroy()%7D.bind(this))%7D%3BCore.prototype.getVisibleItems%3Dfunction()%7Breturn%20this.itemSet%26%26this.itemSet.getVisibleItems()%7C%7C%5B%5D%7D%3BCore.prototype.fit%3Dfunction(options%2Ccallback)%7Bvar%20range%3Dthis.getDataRange()%3Bif(range.min%3D%3D%3Dnull%26%26range.max%3D%3D%3Dnull)%7Breturn%7Dvar%20interval%3Drange.max-range.min%3Bvar%20min%3Dnew%20Date(range.min.valueOf()-interval*.01)%3Bvar%20max%3Dnew%20Date(range.max.valueOf()%2Binterval*.01)%3Bvar%20animation%3Doptions%26%26options.animation!%3D%3Dundefined%3Foptions.animation%3Atrue%3Bthis.range.setRange(min%2Cmax%2C%7Banimation%3Aanimation%7D%2Ccallback)%7D%3BCore.prototype.getDataRange%3Dfunction()%7Bthrow%20new%20Error(%5C%5C%5C%22Cannot%20invoke%20abstract%20method%20getDataRange%5C%5C%5C%22)%7D%3BCore.prototype.setWindow%3Dfunction(start%2Cend%2Coptions%2Ccallback)%7Bif(typeof%20arguments%5B2%5D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22)%7Bcallback%3Darguments%5B2%5D%3Boptions%3D%7B%7D%7Dvar%20animation%3Bvar%20range%3Bif(arguments.length%3D%3D1)%7Brange%3Darguments%5B0%5D%3Banimation%3Drange.animation!%3D%3Dundefined%3Frange.animation%3Atrue%3Bthis.range.setRange(range.start%2Crange.end%2C%7Banimation%3Aanimation%7D)%7Delse%20if(arguments.length%3D%3D2%26%26typeof%20arguments%5B1%5D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22)%7Brange%3Darguments%5B0%5D%3Bcallback%3Darguments%5B1%5D%3Banimation%3Drange.animation!%3D%3Dundefined%3Frange.animation%3Atrue%5C%5Cn%3Bthis.range.setRange(range.start%2Crange.end%2C%7Banimation%3Aanimation%7D%2Ccallback)%7Delse%7Banimation%3Doptions%26%26options.animation!%3D%3Dundefined%3Foptions.animation%3Atrue%3Bthis.range.setRange(start%2Cend%2C%7Banimation%3Aanimation%7D%2Ccallback)%7D%7D%3BCore.prototype.moveTo%3Dfunction(time%2Coptions%2Ccallback)%7Bif(typeof%20arguments%5B1%5D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22)%7Bcallback%3Darguments%5B1%5D%3Boptions%3D%7B%7D%7Dvar%20interval%3Dthis.range.end-this.range.start%3Bvar%20t%3Dutil.convert(time%2C%5C%5C%5C%22Date%5C%5C%5C%22).valueOf()%3Bvar%20start%3Dt-interval%2F2%3Bvar%20end%3Dt%2Binterval%2F2%3Bvar%20animation%3Doptions%26%26options.animation!%3D%3Dundefined%3Foptions.animation%3Atrue%3Bthis.range.setRange(start%2Cend%2C%7Banimation%3Aanimation%7D%2Ccallback)%7D%3BCore.prototype.getWindow%3Dfunction()%7Bvar%20range%3Dthis.range.getRange()%3Breturn%7Bstart%3Anew%20Date(range.start)%2Cend%3Anew%20Date(range.end)%7D%7D%3BCore.prototype.zoomIn%3Dfunction(percentage%2Coptions%2Ccallback)%7Bif(!percentage%7C%7Cpercentage%3C0%7C%7Cpercentage%3E1)return%3Bif(typeof%20arguments%5B1%5D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22)%7Bcallback%3Darguments%5B1%5D%3Boptions%3D%7B%7D%7Dvar%20range%3Dthis.getWindow()%3Bvar%20start%3Drange.start.valueOf()%3Bvar%20end%3Drange.end.valueOf()%3Bvar%20interval%3Dend-start%3Bvar%20newInterval%3Dinterval%2F(1%2Bpercentage)%3Bvar%20distance%3D(interval-newInterval)%2F2%3Bvar%20newStart%3Dstart%2Bdistance%3Bvar%20newEnd%3Dend-distance%3Bthis.setWindow(newStart%2CnewEnd%2Coptions%2Ccallback)%7D%3BCore.prototype.zoomOut%3Dfunction(percentage%2Coptions%2Ccallback)%7Bif(!percentage%7C%7Cpercentage%3C0%7C%7Cpercentage%3E1)return%3Bif(typeof%20arguments%5B1%5D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22)%7Bcallback%3Darguments%5B1%5D%3Boptions%3D%7B%7D%7Dvar%20range%3Dthis.getWindow()%3Bvar%20start%3Drange.start.valueOf()%3Bvar%20end%3Drange.end.valueOf()%3Bvar%20interval%3Dend-start%3Bvar%20newStart%3Dstart-interval*percentage%2F2%3Bvar%20newEnd%3Dend%2Binterval*percentage%2F2%3Bthis.setWindow(newStart%2CnewEnd%2Coptions%2Ccallback)%7D%3BCore.prototype.redraw%3Dfunction()%7Bthis._redraw()%7D%3BCore.prototype._redraw%3Dfunction()%7Bthis.redrawCount%2B%2B%3Bvar%20resized%3Dfalse%3Bvar%20options%3Dthis.options%3Bvar%20props%3Dthis.props%3Bvar%20dom%3Dthis.dom%3Bif(!dom%7C%7C!dom.container%7C%7Cdom.root.offsetWidth%3D%3D0)return%3BDateUtil.updateHiddenDates(this.options.moment%2Cthis.body%2Cthis.options.hiddenDates)%3Bif(options.orientation%3D%3D%5C%5C%5C%22top%5C%5C%5C%22)%7Butil.addClassName(dom.root%2C%5C%5C%5C%22vis-top%5C%5C%5C%22)%3Butil.removeClassName(dom.root%2C%5C%5C%5C%22vis-bottom%5C%5C%5C%22)%7Delse%7Butil.removeClassName(dom.root%2C%5C%5C%5C%22vis-top%5C%5C%5C%22)%3Butil.addClassName(dom.root%2C%5C%5C%5C%22vis-bottom%5C%5C%5C%22)%7Ddom.root.style.maxHeight%3Dutil.option.asSize(options.maxHeight%2C%5C%5C%5C%22%5C%5C%5C%22)%3Bdom.root.style.minHeight%3Dutil.option.asSize(options.minHeight%2C%5C%5C%5C%22%5C%5C%5C%22)%3Bdom.root.style.width%3Dutil.option.asSize(options.width%2C%5C%5C%5C%22%5C%5C%5C%22)%3Bprops.border.left%3D(dom.centerContainer.offsetWidth-dom.centerContainer.clientWidth)%2F2%3Bprops.border.right%3Dprops.border.left%3Bprops.border.top%3D(dom.centerContainer.offsetHeight-dom.centerContainer.clientHeight)%2F2%3Bprops.border.bottom%3Dprops.border.top%3Bprops.borderRootHeight%3Ddom.root.offsetHeight-dom.root.clientHeight%3Bprops.borderRootWidth%3Ddom.root.offsetWidth-dom.root.clientWidth%3Bif(dom.centerContainer.clientHeight%3D%3D%3D0)%7Bprops.border.left%3Dprops.border.top%3Bprops.border.right%3Dprops.border.left%7Dif(dom.root.clientHeight%3D%3D%3D0)%7Bprops.borderRootWidth%3Dprops.borderRootHeight%7Dprops.center.height%3Ddom.center.offsetHeight%3Bprops.left.height%3Ddom.left.offsetHeight%3Bprops.right.height%3Ddom.right.offsetHeight%3Bprops.top.height%3Ddom.top.clientHeight%7C%7C-props.border.top%3Bprops.bottom.height%3Ddom.bottom.clientHeight%7C%7C-props.border.bottom%3Bvar%20contentHeight%3DMath.max(props.left.height%2Cprops.center.height%2Cprops.right.height)%3Bvar%20autoHeight%3Dprops.top.height%2BcontentHeight%2Bprops.bottom.height%2Bprops.borderRootHeight%2Bprops.border.top%2Bprops.border.bottom%3Bdom.root.style.height%3Dutil.option.asSize(options.height%2CautoHeight%2B%5C%5C%5C%22px%5C%5C%5C%22)%3Bprops.root.height%3Ddom.root.offsetHeight%3Bprops.background.height%3Dprops.root.height-props.borderRootHeight%3Bvar%20containerHeight%3Dprops.root.height-props.top.height-props.bottom.height-props.borderRootHeight%3Bprops.centerContainer.height%3DcontainerHeight%3Bprops.leftContainer.height%3DcontainerHeight%3Bprops.rightContainer.height%3Dprops.leftContainer.height%3Bprops.root.width%3Ddom.root.offsetWidth%3Bprops.background.width%3Dprops.root.width-props.borderRootWidth%3Bif(!this.initialDrawDone)%7Bprops.scrollbarWidth%3Dutil.getScrollBarWidth()%7Dif(options.verticalScroll)%7Bif(options.rtl)%7Bprops.left.width%3Ddom.leftContainer.clientWidth%7C%7C-props.border.left%3Bprops.right.width%3Ddom.rightContainer.clientWidth%2Bprops.scrollbarWidth%7C%7C-props.border.right%7Delse%7Bprops.left.width%3Ddom.leftContainer.clientWidth%2Bprops.scrollbarWidth%7C%7C-props.border.left%3Bprops.right.width%3Ddom.rightContainer.clientWidth%7C%7C-props.border.right%7D%7Delse%7Bprops.left.width%3Ddom.leftContainer.clientWidth%7C%7C-props.border.left%3Bprops.right.width%3Ddom.rightContainer.clientWidth%7C%7C-props.border.right%7Dthis._setDOM()%3Bvar%20offset%3Dthis._updateScrollTop()%3Bif(options.orientation.item!%3D%5C%5C%5C%22top%5C%5C%5C%22)%7Boffset%2B%3DMath.max(props.centerContainer.height-props.center.height-props.border.top-props.border.bottom%2C0)%7Ddom.center.style.top%3Doffset%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bvar%20visibilityTop%3Dprops.scrollTop%3D%3D0%3F%5C%5C%5C%22hidden%5C%5C%5C%22%3A%5C%5C%5C%22%5C%5C%5C%22%3Bvar%20visibilityBottom%3Dprops.scrollTop%3D%3Dprops.scrollTopMin%3F%5C%5C%5C%22hidden%5C%5C%5C%22%3A%5C%5C%5C%22%5C%5C%5C%22%3Bdom.shadowTop.style.visibility%3DvisibilityTop%3Bdom.shadowBottom.style.visibility%3DvisibilityBottom%3Bdom.shadowTopLeft.style.visibility%3DvisibilityTop%3Bdom.shadowBottomLeft.style.visibility%3DvisibilityBottom%3Bdom.shadowTopRight.style.visibility%3DvisibilityTop%3Bdom.shadowBottomRight.style.visibility%3DvisibilityBottom%3Bif(options.verticalScroll)%7Bdom.rightContainer.className%3D%5C%5C%5C%22vis-panel%20vis-right%20vis-vertical-scroll%5C%5C%5C%22%3Bdom.leftContainer.className%3D%5C%5C%5C%22vis-panel%20vis-left%20vis-vertical-scroll%5C%5C%5C%22%3Bdom.shadowTopRight.style.visibility%3D%5C%5C%5C%22hidden%5C%5C%5C%22%3Bdom.shadowBottomRight.style.visibility%3D%5C%5C%5C%22hidden%5C%5C%5C%22%3Bdom.shadowTopLeft.style.visibility%3D%5C%5C%5C%22hidden%5C%5C%5C%22%3Bdom.shadowBottomLeft.style.visibility%3D%5C%5C%5C%22hidden%5C%5C%5C%22%3Bdom.left.style.top%3D%5C%5C%5C%220px%5C%5C%5C%22%3Bdom.right.style.top%3D%5C%5C%5C%220px%5C%5C%5C%22%7Dif(!options.verticalScroll%7C%7Cprops.center.height%3Cprops.centerContainer.height)%7Bdom.left.style.top%3Doffset%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bdom.right.style.top%3Doffset%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bdom.rightContainer.className%3Ddom.rightContainer.className.replace(new%20RegExp(%5C%5C%5C%22(%3F%3A%5E%7C%5C%5C%5C%5C%5C%5C%5C%5Cs)%5C%5C%5C%22%2B%5C%5C%5C%22vis-vertical-scroll%5C%5C%5C%22%2B%5C%5C%5C%22(%3F%3A%5C%5C%5C%5C%5C%5C%5C%5Cs%7C%24)%5C%5C%5C%22)%2C%5C%5C%5C%22%20%5C%5C%5C%22)%3Bdom.leftContainer.className%3Ddom.leftContainer.className.replace(new%20RegExp(%5C%5C%5C%22(%3F%3A%5E%7C%5C%5C%5C%5C%5C%5C%5C%5Cs)%5C%5C%5C%22%2B%5C%5C%5C%22vis-vertical-scroll%5C%5C%5C%22%2B%5C%5C%5C%22(%3F%3A%5C%5C%5C%5C%5C%5C%5C%5Cs%7C%24)%5C%5C%5C%22)%2C%5C%5C%5C%22%20%5C%5C%5C%22)%3Bprops.left.width%3Ddom.leftContainer.clientWidth%7C%7C-props.border.left%3Bprops.right.width%3Ddom.rightContainer.clientWidth%7C%7C-props.border.right%3Bthis._setDOM()%7Dvar%20contentsOverflow%3Dprops.center.height%3Eprops.centerContainer.height%3Bthis.hammer.get(%5C%5C%5C%22pan%5C%5C%5C%22).set(%7Bdirection%3AcontentsOverflow%3FHammer.DIRECTION_ALL%3AHammer.DIRECTION_HORIZONTAL%7D)%3Bthis.components.forEach(function(component)%7Bresized%3Dcomponent.redraw()%7C%7Cresized%7D)%3Bvar%20MAX_REDRAW%3D5%3Bif(resized)%7Bif(this.redrawCount%3CMAX_REDRAW)%7Bthis.body.emitter.emit(%5C%5C%5C%22_change%5C%5C%5C%22)%3Breturn%7Delse%7Bconsole.log(%5C%5C%5C%22WARNING%3A%20infinite%20loop%20in%20redraw%3F%5C%5C%5C%22)%7D%7Delse%7Bthis.redrawCount%3D0%7Dthis.body.emitter.emit(%5C%5C%5C%22changed%5C%5C%5C%22)%7D%3BCore.prototype._setDOM%3Dfunction()%7Bvar%20props%3Dthis.props%3Bvar%20dom%3Dthis.dom%3Bprops.leftContainer.width%3Dprops.left.width%3Bprops.rightContainer.width%3Dprops.right.width%3Bvar%20centerWidth%3Dprops.root.width-props.left.width-props.right.width-props.borderRootWidth%3Bprops.center.width%3DcenterWidth%3Bprops.centerContainer.width%3DcenterWidth%3Bprops.top.width%3DcenterWidth%3Bprops.bottom.width%3DcenterWidth%3Bdom.background.style.height%3Dprops.background.height%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bdom.backgroundVertical.style.height%3Dprops.background.height%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bdom.backgroundHorizontal.style.height%3Dprops.centerContainer.height%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bdom.centerContainer.style.height%3Dprops.centerContainer.height%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bdom.leftContainer.style.height%3Dprops.leftContainer.height%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bdom.rightContainer.style.height%3Dprops.rightContainer.height%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bdom.background.style.width%3Dprops.background.width%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bdom.backgroundVertical.style.width%3Dprops.centerContainer.width%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bdom.backgroundHorizontal.style.width%3Dprops.background.width%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bdom.centerContainer.style.width%3Dprops.center.width%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bdom.top.style.width%3Dprops.top.width%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bdom.bottom.style.width%3Dprops.bottom.width%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bdom.background.style.left%3D%5C%5C%5C%220%5C%5C%5C%22%3Bdom.background.style.top%3D%5C%5C%5C%220%5C%5C%5C%22%3Bdom.backgroundVertical.style.left%3Dprops.left.width%2Bprops.border.left%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bdom.backgroundVertical.style.top%3D%5C%5C%5C%220%5C%5C%5C%22%3Bdom.backgroundHorizontal.style.left%3D%5C%5C%5C%220%5C%5C%5C%22%3Bdom.backgroundHorizontal.style.top%3Dprops.top.height%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bdom.centerContainer.style.left%3Dprops.left.width%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bdom.centerContainer.style.top%3Dprops.top.height%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bdom.leftContainer.style.left%3D%5C%5C%5C%220%5C%5C%5C%22%3Bdom.leftContainer.style.top%3Dprops.top.height%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bdom.rightContainer.style.left%3Dprops.left.width%2Bprops.center.width%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bdom.rightContainer.style.top%3Dprops.top.height%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bdom.top.style.left%3Dprops.left.width%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bdom.top.style.top%3D%5C%5C%5C%220%5C%5C%5C%22%3Bdom.bottom.style.left%3Dprops.left.width%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bdom.bottom.style.top%3Dprops.top.height%2Bprops.centerContainer.height%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bdom.center.style.left%3D%5C%5C%5C%220%5C%5C%5C%22%3Bdom.left.style.left%3D%5C%5C%5C%220%5C%5C%5C%22%3Bdom.right.style.left%3D%5C%5C%5C%220%5C%5C%5C%22%7D%3BCore.prototype.repaint%3Dfunction()%7Bthrow%20new%20Error(%5C%5C%5C%22Function%20repaint%20is%20deprecated.%20Use%20redraw%20instead.%5C%5C%5C%22)%7D%3BCore.prototype.setCurrentTime%3Dfunction(time)%7Bif(!this.currentTime)%7Bthrow%20new%20Error(%5C%5C%5C%22Option%20showCurrentTime%20must%20be%20true%5C%5C%5C%22)%7Dthis.currentTime.setCurrentTime(time)%7D%3BCore.prototype.getCurrentTime%3Dfunction()%7Bif(!this.currentTime)%7Bthrow%20new%20Error(%5C%5C%5C%22Option%20showCurrentTime%20must%20be%20true%5C%5C%5C%22)%7Dreturn%20this.currentTime.getCurrentTime()%7D%3BCore.prototype._toTime%3Dfunction(x)%7Breturn%20DateUtil.toTime(this%2Cx%2Cthis.props.center.width)%7D%3BCore.prototype._toGlobalTime%3Dfunction(x)%7Breturn%20DateUtil.toTime(this%2Cx%2Cthis.props.root.width)%7D%3BCore.prototype._toScreen%3Dfunction(time)%7Breturn%20DateUtil.toScreen(this%2Ctime%2Cthis.props.center.width)%7D%3BCore.prototype._toGlobalScreen%3Dfunction(time)%7Breturn%20DateUtil.toScreen(this%2Ctime%2Cthis.props.root.width)%7D%3BCore.prototype._initAutoResize%3Dfunction()%7Bif(this.options.autoResize%3D%3Dtrue)%7Bthis._startAutoResize()%7Delse%7Bthis._stopAutoResize()%7D%7D%3BCore.prototype._startAutoResize%3Dfunction()%7Bvar%20me%3Dthis%3Bthis._stopAutoResize()%3Bthis._onResize%3Dfunction()%7Bif(me.options.autoResize!%3Dtrue)%7Bme._stopAutoResize()%3Breturn%7Dif(me.dom.root)%7Bif(me.dom.root.offsetWidth!%3Dme.props.lastWidth%7C%7Cme.dom.root.offsetHeight!%3Dme.props.lastHeight)%7Bme.props.lastWidth%3Dme.dom.root.offsetWidth%3Bme.props.lastHeight%3Dme.dom.root.offsetHeight%3Bme.props.scrollbarWidth%3Dutil.getScrollBarWidth()%3Bme.body.emitter.emit(%5C%5C%5C%22_change%5C%5C%5C%22)%7D%7D%7D%3Butil.addEventListener(window%2C%5C%5C%5C%22resize%5C%5C%5C%22%2Cthis._onResize)%3Bif(me.dom.root)%7Bme.props.lastWidth%3Dme.dom.root.offsetWidth%3Bme.props.lastHeight%3Dme.dom.root.offsetHeight%7Dthis.watchTimer%3DsetInterval(this._onResize%2C1e3)%7D%3BCore.prototype._stopAutoResize%3Dfunction()%7Bif(this.watchTimer)%7BclearInterval(this.watchTimer)%3Bthis.watchTimer%3Dundefined%7Dif(this._onResize)%7Butil.removeEventListener(window%2C%5C%5C%5C%22resize%5C%5C%5C%22%2Cthis._onResize)%3Bthis._onResize%3Dnull%7D%7D%3BCore.prototype._onTouch%3Dfunction(event)%7Bthis.touch.allowDragging%3Dtrue%3Bthis.touch.initialScrollTop%3Dthis.props.scrollTop%7D%3BCore.prototype._onPinch%3Dfunction(event)%7Bthis.touch.allowDragging%3Dfalse%7D%3BCore.prototype._onDrag%3Dfunction(event)%7Bif(!event)return%3Bif(!this.touch.allowDragging)return%3Bvar%20delta%3Devent.deltaY%3Bvar%20oldScrollTop%3Dthis._getScrollTop()%3Bvar%20newScrollTop%3Dthis._setScrollTop(this.touch.initialScrollTop%2Bdelta)%3Bif(this.options.verticalScroll)%7Bthis.dom.left.parentNode.scrollTop%3D-this.props.scrollTop%3Bthis.dom.right.parentNode.scrollTop%3D-this.props.scrollTop%7Dif(newScrollTop!%3DoldScrollTop)%7Bthis.emit(%5C%5C%5C%22verticalDrag%5C%5C%5C%22)%7D%7D%3BCore.prototype._setScrollTop%3Dfunction(scrollTop)%7Bthis.props.scrollTop%3DscrollTop%3Bthis._updateScrollTop()%3Breturn%20this.props.scrollTop%7D%3BCore.prototype._updateScrollTop%3Dfunction()%7Bvar%20scrollTopMin%3DMath.min(this.props.centerContainer.height-this.props.center.height%2C0)%3Bif(scrollTopMin!%3Dthis.props.scrollTopMin)%7Bif(this.options.orientation.item!%3D%5C%5C%5C%22top%5C%5C%5C%22)%7Bthis.props.scrollTop%2B%3DscrollTopMin-this.props.scrollTopMin%7Dthis.props.scrollTopMin%3DscrollTopMin%7Dif(this.props.scrollTop%3E0)this.props.scrollTop%3D0%3Bif(this.props.scrollTop%3CscrollTopMin)this.props.scrollTop%3DscrollTopMin%3Bif(this.options.verticalScroll)%7Bthis.dom.left.parentNode.scrollTop%3D-this.props.scrollTop%3Bthis.dom.right.parentNode.scrollTop%3D-this.props.scrollTop%7Dreturn%20this.props.scrollTop%7D%3BCore.prototype._getScrollTop%3Dfunction()%7Breturn%20this.props.scrollTop%7D%3BCore.prototype._createConfigurator%3Dfunction()%7Bthrow%20new%20Error(%5C%5C%5C%22Cannot%20invoke%20abstract%20method%20_createConfigurator%5C%5C%5C%22)%7D%3Bmodule.exports%3DCore%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bvar%20moment%3D__webpack_require__(9)%3Bvar%20DateUtil%3D__webpack_require__(36)%3Bvar%20util%3D__webpack_require__(2)%3Bfunction%20TimeStep(start%2Cend%2CminimumStep%2ChiddenDates%2Coptions)%7Bthis.moment%3Dmoment%3Bthis.current%3Dthis.moment()%3Bthis._start%3Dthis.moment()%3Bthis._end%3Dthis.moment()%3Bthis.autoScale%3Dtrue%3Bthis.scale%3D%5C%5C%5C%22day%5C%5C%5C%22%3Bthis.step%3D1%3Bthis.setRange(start%2Cend%2CminimumStep)%3Bthis.switchedDay%3Dfalse%3Bthis.switchedMonth%3Dfalse%3Bthis.switchedYear%3Dfalse%3Bif(Array.isArray(hiddenDates))%7Bthis.hiddenDates%3DhiddenDates%7Delse%20if(hiddenDates!%3Dundefined)%7Bthis.hiddenDates%3D%5BhiddenDates%5D%7Delse%7Bthis.hiddenDates%3D%5B%5D%7Dthis.format%3DTimeStep.FORMAT%3Bthis.options%3Doptions%3Foptions%3A%7B%7D%7DTimeStep.FORMAT%3D%7BminorLabels%3A%7Bmillisecond%3A%5C%5C%5C%22SSS%5C%5C%5C%22%2Csecond%3A%5C%5C%5C%22s%5C%5C%5C%22%2Cminute%3A%5C%5C%5C%22HH%3Amm%5C%5C%5C%22%2Chour%3A%5C%5C%5C%22HH%3Amm%5C%5C%5C%22%2Cweekday%3A%5C%5C%5C%22ddd%20D%5C%5C%5C%22%2Cday%3A%5C%5C%5C%22D%5C%5C%5C%22%2Cweek%3A%5C%5C%5C%22w%5C%5C%5C%22%2Cmonth%3A%5C%5C%5C%22MMM%5C%5C%5C%22%2Cyear%3A%5C%5C%5C%22YYYY%5C%5C%5C%22%7D%2CmajorLabels%3A%7Bmillisecond%3A%5C%5C%5C%22HH%3Amm%3Ass%5C%5C%5C%22%2Csecond%3A%5C%5C%5C%22D%20MMMM%20HH%3Amm%5C%5C%5C%22%2Cminute%3A%5C%5C%5C%22ddd%20D%20MMMM%5C%5C%5C%22%2Chour%3A%5C%5C%5C%22ddd%20D%20MMMM%5C%5C%5C%22%2Cweekday%3A%5C%5C%5C%22MMMM%20YYYY%5C%5C%5C%22%2Cday%3A%5C%5C%5C%22MMMM%20YYYY%5C%5C%5C%22%2Cweek%3A%5C%5C%5C%22MMMM%20YYYY%5C%5C%5C%22%2Cmonth%3A%5C%5C%5C%22YYYY%5C%5C%5C%22%2Cyear%3A%5C%5C%5C%22%5C%5C%5C%22%7D%7D%3BTimeStep.prototype.setMoment%3Dfunction(moment)%7Bthis.moment%3Dmoment%3Bthis.current%3Dthis.moment(this.current.valueOf())%3Bthis._start%3Dthis.moment(this._start.valueOf())%3Bthis._end%3Dthis.moment(this._end.valueOf())%7D%3BTimeStep.prototype.setFormat%3Dfunction(format)%7Bvar%20defaultFormat%3Dutil.deepExtend(%7B%7D%2CTimeStep.FORMAT)%3Bthis.format%3Dutil.deepExtend(defaultFormat%2Cformat)%7D%3BTimeStep.prototype.setRange%3Dfunction(start%2Cend%2CminimumStep)%7Bif(!(start%20instanceof%20Date)%7C%7C!(end%20instanceof%20Date))%7Bthrow%5C%5C%5C%22No%20legal%20start%20or%20end%20date%20in%20method%20setRange%5C%5C%5C%22%7Dthis._start%3Dstart!%3Dundefined%3Fthis.moment(start.valueOf())%3Anew%20Date%3Bthis._end%3Dend!%3Dundefined%3Fthis.moment(end.valueOf())%3Anew%20Date%3Bif(this.autoScale)%7Bthis.setMinimumStep(minimumStep)%7D%7D%3BTimeStep.prototype.start%3Dfunction()%7Bthis.current%3Dthis._start.clone()%3Bthis.roundToMinor()%7D%3BTimeStep.prototype.roundToMinor%3Dfunction()%7Bif(this.scale%3D%3D%5C%5C%5C%22week%5C%5C%5C%22)%7Bthis.current.weekday(0)%7Dswitch(this.scale)%7Bcase%5C%5C%5C%22year%5C%5C%5C%22%3Athis.current.year(this.step*Math.floor(this.current.year()%2Fthis.step))%3Bthis.current.month(0)%3Bcase%5C%5C%5C%22month%5C%5C%5C%22%3Athis.current.date(1)%3Bcase%5C%5C%5C%22week%5C%5C%5C%22%3Acase%5C%5C%5C%22day%5C%5C%5C%22%3Acase%5C%5C%5C%22weekday%5C%5C%5C%22%3Athis.current.hours(0)%3Bcase%5C%5C%5C%22hour%5C%5C%5C%22%3Athis.current.minutes(0)%3Bcase%5C%5C%5C%22minute%5C%5C%5C%22%3Athis.current.seconds(0)%3Bcase%5C%5C%5C%22second%5C%5C%5C%22%3Athis.current.milliseconds(0)%7Dif(this.step!%3D1)%7Bswitch(this.scale)%7Bcase%5C%5C%5C%22millisecond%5C%5C%5C%22%3Athis.current.subtract(this.current.milliseconds()%25this.step%2C%5C%5C%5C%22milliseconds%5C%5C%5C%22)%3Bbreak%3Bcase%5C%5C%5C%22second%5C%5C%5C%22%3Athis.current.subtract(this.current.seconds()%25this.step%2C%5C%5C%5C%22seconds%5C%5C%5C%22)%3Bbreak%3Bcase%5C%5C%5C%22minute%5C%5C%5C%22%3Athis.current.subtract(this.current.minutes()%25this.step%2C%5C%5C%5C%22minutes%5C%5C%5C%22)%3Bbreak%3Bcase%5C%5C%5C%22hour%5C%5C%5C%22%3Athis.current.subtract(this.current.hours()%25this.step%2C%5C%5C%5C%22hours%5C%5C%5C%22)%3Bbreak%3Bcase%5C%5C%5C%22weekday%5C%5C%5C%22%3Acase%5C%5C%5C%22day%5C%5C%5C%22%3Athis.current.subtract((this.current.date()-1)%25this.step%2C%5C%5C%5C%22day%5C%5C%5C%22)%3Bbreak%3Bcase%5C%5C%5C%22week%5C%5C%5C%22%3Athis.current.subtract(this.current.week()%25this.step%2C%5C%5C%5C%22week%5C%5C%5C%22)%3Bbreak%3Bcase%5C%5C%5C%22month%5C%5C%5C%22%3Athis.current.subtract(this.current.month()%25this.step%2C%5C%5C%5C%22month%5C%5C%5C%22)%3Bbreak%3Bcase%5C%5C%5C%22year%5C%5C%5C%22%3Athis.current.subtract(this.current.year()%25this.step%2C%5C%5C%5C%22year%5C%5C%5C%22)%3Bbreak%3Bdefault%3Abreak%7D%7D%7D%3BTimeStep.prototype.hasNext%3Dfunction()%7Breturn%20this.current.valueOf()%3C%3Dthis._end.valueOf()%7D%3BTimeStep.prototype.next%3Dfunction()%7Bvar%20prev%3Dthis.current.valueOf()%3Bswitch(this.scale)%7Bcase%5C%5C%5C%22millisecond%5C%5C%5C%22%3Athis.current.add(this.step%2C%5C%5C%5C%22millisecond%5C%5C%5C%22)%3Bbreak%3Bcase%5C%5C%5C%22second%5C%5C%5C%22%3Athis.current.add(this.step%2C%5C%5C%5C%22second%5C%5C%5C%22)%3Bbreak%3Bcase%5C%5C%5C%22minute%5C%5C%5C%22%3Athis.current.add(this.step%2C%5C%5C%5C%22minute%5C%5C%5C%22)%3Bbreak%3Bcase%5C%5C%5C%22hour%5C%5C%5C%22%3Athis.current.add(this.step%2C%5C%5C%5C%22hour%5C%5C%5C%22)%3Bif(this.current.month()%3C6)%7Bthis.current.subtract(this.current.hours()%25this.step%2C%5C%5C%5C%22hour%5C%5C%5C%22)%7Delse%7Bif(this.current.hours()%25this.step!%3D%3D0)%7Bthis.current.add(this.step-this.current.hours()%25this.step%2C%5C%5C%5C%22hour%5C%5C%5C%22)%7D%7Dbreak%3Bcase%5C%5C%5C%22weekday%5C%5C%5C%22%3Acase%5C%5C%5C%22day%5C%5C%5C%22%3Athis.current.add(this.step%2C%5C%5C%5C%22day%5C%5C%5C%22)%3Bbreak%3Bcase%5C%5C%5C%22week%5C%5C%5C%22%3Aif(this.current.weekday()!%3D%3D0)%7Bthis.current.weekday(0)%3Bthis.current.add(this.step%2C%5C%5C%5C%22week%5C%5C%5C%22)%7Delse%20if(this.options.showMajorLabels%3D%3D%3Dfalse)%7Bthis.current.add(this.step%2C%5C%5C%5C%22week%5C%5C%5C%22)%7Delse%7Bvar%20nextWeek%3Dthis.current.clone()%3BnextWeek.add(1%2C%5C%5C%5C%22week%5C%5C%5C%22)%3Bif(nextWeek.isSame(this.current%2C%5C%5C%5C%22month%5C%5C%5C%22))%7Bthis.current.add(this.step%2C%5C%5C%5C%22week%5C%5C%5C%22)%7Delse%7Bthis.current.add(this.step%2C%5C%5C%5C%22week%5C%5C%5C%22)%3Bthis.current.date(1)%7D%7Dbreak%3Bcase%5C%5C%5C%22month%5C%5C%5C%22%3Athis.current.add(this.step%2C%5C%5C%5C%22month%5C%5C%5C%22)%3Bbreak%3Bcase%5C%5C%5C%22year%5C%5C%5C%22%3Athis.current.add(this.step%2C%5C%5C%5C%22year%5C%5C%5C%22)%3Bbreak%3Bdefault%3Abreak%7Dif(this.step!%3D1)%7Bswitch(this.scale)%7Bcase%5C%5C%5C%22millisecond%5C%5C%5C%22%3Aif(this.current.milliseconds()%3E0%26%26this.current.milliseconds()%3Cthis.step)this.current.milliseconds(0)%3Bbreak%3Bcase%5C%5C%5C%22second%5C%5C%5C%22%3Aif(this.current.seconds()%3E0%26%26this.current.seconds()%3Cthis.step)this.current.seconds(0)%3Bbreak%3Bcase%5C%5C%5C%22minute%5C%5C%5C%22%3Aif(this.current.minutes()%3E0%26%26this.current.minutes()%3Cthis.step)this.current.minutes(0)%3Bbreak%3Bcase%5C%5C%5C%22hour%5C%5C%5C%22%3Aif(this.current.hours()%3E0%26%26this.current.hours()%3Cthis.step)this.current.hours(0)%3Bbreak%3Bcase%5C%5C%5C%22weekday%5C%5C%5C%22%3Acase%5C%5C%5C%22day%5C%5C%5C%22%3Aif(this.current.date()%3Cthis.step%2B1)this.current.date(1)%3Bbreak%3Bcase%5C%5C%5C%22week%5C%5C%5C%22%3Aif(this.current.week()%3Cthis.step)this.current.week(1)%3Bbreak%3Bcase%5C%5C%5C%22month%5C%5C%5C%22%3Aif(this.current.month()%3Cthis.step)this.current.month(0)%3Bbreak%3Bcase%5C%5C%5C%22year%5C%5C%5C%22%3Abreak%3Bdefault%3Abreak%7D%7Dif(this.current.valueOf()%3D%3Dprev)%7Bthis.current%3Dthis._end.clone()%7Dthis.switchedDay%3Dfalse%3Bthis.switchedMonth%3Dfalse%3Bthis.switchedYear%3Dfalse%3BDateUtil.stepOverHiddenDates(this.moment%2Cthis%2Cprev)%7D%3BTimeStep.prototype.getCurrent%3Dfunction()%7Breturn%20this.current%7D%3BTimeStep.prototype.setScale%3Dfunction(params)%7Bif(params%26%26typeof%20params.scale%3D%3D%5C%5C%5C%22string%5C%5C%5C%22)%7Bthis.scale%3Dparams.scale%3Bthis.step%3Dparams.step%3E0%3Fparams.step%3A1%3Bthis.autoScale%3Dfalse%7D%7D%3BTimeStep.prototype.setAutoScale%3Dfunction(enable)%7Bthis.autoScale%3Denable%7D%3BTimeStep.prototype.setMinimumStep%3Dfunction(minimumStep)%7Bif(minimumStep%3D%3Dundefined)%7Breturn%7Dvar%20stepYear%3D1e3*60*60*24*30*12%3Bvar%20stepMonth%3D1e3*60*60*24*30%3Bvar%20stepDay%3D1e3*60*60*24%3Bvar%20stepHour%3D1e3*60*60%3Bvar%20stepMinute%3D1e3*60%3Bvar%20stepSecond%3D1e3%3Bvar%20stepMillisecond%3D1%3Bif(stepYear*1e3%3EminimumStep)%7Bthis.scale%3D%5C%5C%5C%22year%5C%5C%5C%22%3Bthis.step%3D1e3%7Dif(stepYear*500%3EminimumStep)%7Bthis.scale%3D%5C%5C%5C%22year%5C%5C%5C%22%3Bthis.step%3D500%7Dif(stepYear*100%3EminimumStep)%7Bthis.scale%3D%5C%5C%5C%22year%5C%5C%5C%22%3Bthis.step%3D100%7Dif(stepYear*50%3EminimumStep)%7Bthis.scale%3D%5C%5C%5C%22year%5C%5C%5C%22%3Bthis.step%3D50%7Dif(stepYear*10%3EminimumStep)%7Bthis.scale%3D%5C%5C%5C%22year%5C%5C%5C%22%3Bthis.step%3D10%7Dif(stepYear*5%3EminimumStep)%7Bthis.scale%3D%5C%5C%5C%22year%5C%5C%5C%22%3Bthis.step%3D5%7Dif(stepYear%3EminimumStep)%7Bthis.scale%3D%5C%5C%5C%22year%5C%5C%5C%22%3Bthis.step%3D1%7Dif(stepMonth*3%3EminimumStep)%7Bthis.scale%3D%5C%5C%5C%22month%5C%5C%5C%22%3Bthis.step%3D3%7Dif(stepMonth%3EminimumStep)%7Bthis.scale%3D%5C%5C%5C%22month%5C%5C%5C%22%3Bthis.step%3D1%7Dif(stepDay*5%3EminimumStep)%7Bthis.scale%3D%5C%5C%5C%22day%5C%5C%5C%22%3Bthis.step%3D5%7Dif(stepDay*2%3EminimumStep)%7Bthis.scale%3D%5C%5C%5C%22day%5C%5C%5C%22%3Bthis.step%3D2%7Dif(stepDay%3EminimumStep)%7Bthis.scale%3D%5C%5C%5C%22day%5C%5C%5C%22%3Bthis.step%3D1%7Dif(stepDay%2F2%3EminimumStep)%7Bthis.scale%3D%5C%5C%5C%22weekday%5C%5C%5C%22%3Bthis.step%3D1%7Dif(stepHour*4%3EminimumStep)%7Bthis.scale%3D%5C%5C%5C%22hour%5C%5C%5C%22%3Bthis.step%3D4%7Dif(stepHour%3EminimumStep)%7Bthis.scale%3D%5C%5C%5C%22hour%5C%5C%5C%22%3Bthis.step%3D1%7Dif(stepMinute*15%3EminimumStep)%7Bthis.scale%3D%5C%5C%5C%22minute%5C%5C%5C%22%3Bthis.step%3D15%7Dif(stepMinute*10%3EminimumStep)%7Bthis.scale%3D%5C%5C%5C%22minute%5C%5C%5C%22%3Bthis.step%3D10%7Dif(stepMinute*5%3EminimumStep)%7Bthis.scale%3D%5C%5C%5C%22minute%5C%5C%5C%22%3Bthis.step%3D5%7Dif(stepMinute%3EminimumStep)%7Bthis.scale%3D%5C%5C%5C%22minute%5C%5C%5C%22%3Bthis.step%3D1%7Dif(stepSecond*15%3EminimumStep)%7Bthis.scale%3D%5C%5C%5C%22second%5C%5C%5C%22%3Bthis.step%3D15%7Dif(stepSecond*10%3EminimumStep)%7Bthis.scale%3D%5C%5C%5C%22second%5C%5C%5C%22%3Bthis.step%3D10%7Dif(stepSecond*5%3EminimumStep)%7Bthis.scale%3D%5C%5C%5C%22second%5C%5C%5C%22%3Bthis.step%3D5%7Dif(stepSecond%3EminimumStep)%7Bthis.scale%3D%5C%5C%5C%22second%5C%5C%5C%22%3Bthis.step%3D1%7Dif(stepMillisecond*200%3EminimumStep)%7Bthis.scale%3D%5C%5C%5C%22millisecond%5C%5C%5C%22%3Bthis.step%3D200%7Dif(stepMillisecond*100%3EminimumStep)%7Bthis.scale%3D%5C%5C%5C%22millisecond%5C%5C%5C%22%3Bthis.step%3D100%7Dif(stepMillisecond*50%3EminimumStep)%7Bthis.scale%3D%5C%5C%5C%22millisecond%5C%5C%5C%22%3Bthis.step%3D50%7Dif(stepMillisecond*10%3EminimumStep)%7Bthis.scale%3D%5C%5C%5C%22millisecond%5C%5C%5C%22%3Bthis.step%3D10%7Dif(stepMillisecond*5%3EminimumStep)%7Bthis.scale%3D%5C%5C%5C%22millisecond%5C%5C%5C%22%3Bthis.step%3D5%7Dif(stepMillisecond%3EminimumStep)%7Bthis.scale%3D%5C%5C%5C%22millisecond%5C%5C%5C%22%3Bthis.step%3D1%7D%7D%3BTimeStep.snap%3Dfunction(date%2Cscale%2Cstep)%7Bvar%20clone%3Dmoment(date)%3Bif(scale%3D%3D%5C%5C%5C%22year%5C%5C%5C%22)%7Bvar%20year%3Dclone.year()%2BMath.round(clone.month()%2F12)%3Bclone.year(Math.round(year%2Fstep)*step)%3Bclone.month(0)%3Bclone.date(0)%3Bclone.hours(0)%3Bclone.minutes(0)%3Bclone.seconds(0)%3Bclone.milliseconds(0)%7Delse%20if(scale%3D%3D%5C%5C%5C%22month%5C%5C%5C%22)%7Bif(clone.date()%3E15)%7Bclone.date(1)%3Bclone.add(1%2C%5C%5C%5C%22month%5C%5C%5C%22)%7Delse%7Bclone.date(1)%7Dclone.hours(0)%3Bclone.minutes(0)%3Bclone.seconds(0)%3Bclone.milliseconds(0)%7Delse%20if(scale%3D%3D%5C%5C%5C%22week%5C%5C%5C%22)%7Bif(clone.weekday()%3E2)%7Bclone.weekday(0)%3Bclone.add(1%2C%5C%5C%5C%22week%5C%5C%5C%22)%7Delse%7Bclone.weekday(0)%7Dclone.hours(0)%3Bclone.minutes(0)%3Bclone.seconds(0)%3Bclone.milliseconds(0)%7Delse%20if(scale%3D%3D%5C%5C%5C%22day%5C%5C%5C%22)%7Bswitch(step)%7Bcase%205%3Acase%202%3Aclone.hours(Math.round(clone.hours()%2F24)*24)%3Bbreak%3Bdefault%3Aclone.hours(Math.round(clone.hours()%2F12)*12)%3Bbreak%7Dclone.minutes(0)%3Bclone.seconds(0)%3Bclone.milliseconds(0)%7Delse%20if(scale%3D%3D%5C%5C%5C%22weekday%5C%5C%5C%22)%7Bswitch(step)%7Bcase%205%3Acase%202%3Aclone.hours(Math.round(clone.hours()%2F12)*12)%3Bbreak%3Bdefault%3Aclone.hours(Math.round(clone.hours()%2F6)*6)%3Bbreak%7Dclone.minutes(0)%3Bclone.seconds(0)%3Bclone.milliseconds(0)%7Delse%20if(scale%3D%3D%5C%5C%5C%22hour%5C%5C%5C%22)%7Bswitch(step)%7Bcase%204%3Aclone.minutes(Math.round(clone.minutes()%2F60)*60)%3Bbreak%3Bdefault%3Aclone.minutes(Math.round(clone.minutes()%2F30)*30)%3Bbreak%7Dclone.seconds(0)%3Bclone.milliseconds(0)%7Delse%20if(scale%3D%3D%5C%5C%5C%22minute%5C%5C%5C%22)%7Bswitch(step)%7Bcase%2015%3Acase%2010%3Aclone.minutes(Math.round(clone.minutes()%2F5)*5)%3Bclone.seconds(0)%3Bbreak%3Bcase%205%3Aclone.seconds(Math.round(clone.seconds()%2F60)*60)%3Bbreak%3Bdefault%3Aclone.seconds(Math.round(clone.seconds()%2F30)*30)%3Bbreak%7Dclone.milliseconds(0)%7Delse%20if(scale%3D%3D%5C%5C%5C%22second%5C%5C%5C%22)%7Bswitch(step)%7Bcase%2015%3Acase%2010%3Aclone.seconds(Math.round(clone.seconds()%2F5)*5)%3Bclone.milliseconds(0)%3Bbreak%3Bcase%205%3Aclone.milliseconds(Math.round(clone.milliseconds()%2F1e3)*1e3)%3Bbreak%3Bdefault%3Aclone.milliseconds(Math.round(clone.milliseconds()%2F500)*500)%3Bbreak%7D%7Delse%20if(scale%3D%3D%5C%5C%5C%22millisecond%5C%5C%5C%22)%7Bvar%20_step%3Dstep%3E5%3Fstep%2F2%3A1%3Bclone.milliseconds(Math.round(clone.milliseconds()%2F_step)*_step)%7Dreturn%20clone%7D%3BTimeStep.prototype.isMajor%3Dfunction()%7Bif(this.switchedYear%3D%3Dtrue)%7Bswitch(this.scale)%7Bcase%5C%5C%5C%22year%5C%5C%5C%22%3Acase%5C%5C%5C%22month%5C%5C%5C%22%3Acase%5C%5C%5C%22week%5C%5C%5C%22%3Acase%5C%5C%5C%22weekday%5C%5C%5C%22%3Acase%5C%5C%5C%22day%5C%5C%5C%22%3Acase%5C%5C%5C%22hour%5C%5C%5C%22%3Acase%5C%5C%5C%22minute%5C%5C%5C%22%3Acase%5C%5C%5C%22second%5C%5C%5C%22%3Acase%5C%5C%5C%22millisecond%5C%5C%5C%22%3Areturn%20true%3Bdefault%3Areturn%20false%7D%7Delse%20if(this.switchedMonth%3D%3Dtrue)%7Bswitch(this.scale)%7Bcase%5C%5C%5C%22week%5C%5C%5C%22%3Acase%5C%5C%5C%22weekday%5C%5C%5C%22%3Acase%5C%5C%5C%22day%5C%5C%5C%22%3Acase%5C%5C%5C%22hour%5C%5C%5C%22%3Acase%5C%5C%5C%22minute%5C%5C%5C%22%3Acase%5C%5C%5C%22second%5C%5C%5C%22%3Acase%5C%5C%5C%22millisecond%5C%5C%5C%22%3Areturn%20true%3Bdefault%3Areturn%20false%7D%7Delse%20if(this.switchedDay%3D%3Dtrue)%7Bswitch(this.scale)%7Bcase%5C%5C%5C%22millisecond%5C%5C%5C%22%3Acase%5C%5C%5C%22second%5C%5C%5C%22%3Acase%5C%5C%5C%22minute%5C%5C%5C%22%3Acase%5C%5C%5C%22hour%5C%5C%5C%22%3Areturn%20true%3Bdefault%3Areturn%20false%7D%7Dvar%20date%3Dthis.moment(this.current)%3Bswitch(this.scale)%7Bcase%5C%5C%5C%22millisecond%5C%5C%5C%22%3Areturn%20date.milliseconds()%3D%3D0%3Bcase%5C%5C%5C%22second%5C%5C%5C%22%3Areturn%20date.seconds()%3D%3D0%3Bcase%5C%5C%5C%22minute%5C%5C%5C%22%3Areturn%20date.hours()%3D%3D0%26%26date.minutes()%3D%3D0%3Bcase%5C%5C%5C%22hour%5C%5C%5C%22%3Areturn%20date.hours()%3D%3D0%3Bcase%5C%5C%5C%22weekday%5C%5C%5C%22%3Acase%5C%5C%5C%22day%5C%5C%5C%22%3Areturn%20date.date()%3D%3D1%3Bcase%5C%5C%5C%22week%5C%5C%5C%22%3Areturn%20date.date()%3D%3D1%3Bcase%5C%5C%5C%22month%5C%5C%5C%22%3Areturn%20date.month()%3D%3D0%3Bcase%5C%5C%5C%22year%5C%5C%5C%22%3Areturn%20false%3Bdefault%3Areturn%20false%7D%7D%3BTimeStep.prototype.getLabelMinor%3Dfunction(date)%7Bif(date%3D%3Dundefined)%7Bdate%3Dthis.current%7Dif(date%20instanceof%20Date)%7Bdate%3Dthis.moment(date)%7Dif(typeof%20this.format.minorLabels%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22)%7Breturn%20this.format.minorLabels(date%2Cthis.scale%2Cthis.step)%7Dvar%20format%3Dthis.format.minorLabels%5Bthis.scale%5D%3Bswitch(this.scale)%7Bcase%5C%5C%5C%22week%5C%5C%5C%22%3Aif(this.isMajor()%26%26date.weekday()!%3D%3D0)%7Breturn%5C%5C%5C%22%5C%5C%5C%22%7Ddefault%3Areturn%20format%26%26format.length%3E0%3Fthis.moment(date).format(format)%3A%5C%5C%5C%22%5C%5C%5C%22%7D%7D%3BTimeStep.prototype.getLabelMajor%3Dfunction(date)%7Bif(date%3D%3Dundefined)%7Bdate%3Dthis.current%7Dif(date%20instanceof%20Date)%7Bdate%3Dthis.moment(date)%7Dif(typeof%20this.format.majorLabels%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22)%7Breturn%20this.format.majorLabels(date%2Cthis.scale%2Cthis.step)%7Dvar%20format%3Dthis.format.majorLabels%5Bthis.scale%5D%3Breturn%20format%26%26format.length%3E0%3Fthis.moment(date).format(format)%3A%5C%5C%5C%22%5C%5C%5C%22%7D%3BTimeStep.prototype.getClassName%3Dfunction()%7Bvar%20_moment%3Dthis.moment%3Bvar%20m%3Dthis.moment(this.current)%3Bvar%20current%3Dm.locale%3Fm.locale(%5C%5C%5C%22en%5C%5C%5C%22)%3Am.lang(%5C%5C%5C%22en%5C%5C%5C%22)%3Bvar%20step%3Dthis.step%3Bvar%20classNames%3D%5B%5D%3Bfunction%20even(value)%7Breturn%20value%2Fstep%252%3D%3D0%3F%5C%5C%5C%22%20vis-even%5C%5C%5C%22%3A%5C%5C%5C%22%20vis-odd%5C%5C%5C%22%7Dfunction%20today(date)%7Bif(date.isSame(new%20Date%2C%5C%5C%5C%22day%5C%5C%5C%22))%7Breturn%5C%5C%5C%22%20vis-today%5C%5C%5C%22%7Dif(date.isSame(_moment().add(1%2C%5C%5C%5C%22day%5C%5C%5C%22)%2C%5C%5C%5C%22day%5C%5C%5C%22))%7Breturn%5C%5C%5C%22%20vis-tomorrow%5C%5C%5C%22%7Dif(date.isSame(_moment().add(-1%2C%5C%5C%5C%22day%5C%5C%5C%22)%2C%5C%5C%5C%22day%5C%5C%5C%22))%7Breturn%5C%5C%5C%22%20vis-yesterday%5C%5C%5C%22%7Dreturn%5C%5C%5C%22%5C%5C%5C%22%7Dfunction%20currentWeek(date)%7Breturn%20date.isSame(new%20Date%2C%5C%5C%5C%22week%5C%5C%5C%22)%3F%5C%5C%5C%22%20vis-current-week%5C%5C%5C%22%3A%5C%5C%5C%22%5C%5C%5C%22%7Dfunction%20currentMonth(date)%7Breturn%20date.isSame(new%20Date%2C%5C%5C%5C%22month%5C%5C%5C%22)%3F%5C%5C%5C%22%20vis-current-month%5C%5C%5C%22%3A%5C%5C%5C%22%5C%5C%5C%22%7Dfunction%20currentYear(date)%7Breturn%20date.isSame(new%20Date%2C%5C%5C%5C%22year%5C%5C%5C%22)%3F%5C%5C%5C%22%20vis-current-year%5C%5C%5C%22%3A%5C%5C%5C%22%5C%5C%5C%22%7Dswitch(this.scale)%7Bcase%5C%5C%5C%22millisecond%5C%5C%5C%22%3AclassNames.push(today(current))%3BclassNames.push(even(current.milliseconds()))%3Bbreak%3Bcase%5C%5C%5C%22second%5C%5C%5C%22%3AclassNames.push(today(current))%3BclassNames.push(even(current.seconds()))%3Bbreak%3Bcase%5C%5C%5C%22minute%5C%5C%5C%22%3AclassNames.push(today(current))%3BclassNames.push(even(current.minutes()))%3Bbreak%3Bcase%5C%5C%5C%22hour%5C%5C%5C%22%3AclassNames.push(%5C%5C%5C%22vis-h%5C%5C%5C%22%2Bcurrent.hours()%2B(this.step%3D%3D4%3F%5C%5C%5C%22-h%5C%5C%5C%22%2B(current.hours()%2B4)%3A%5C%5C%5C%22%5C%5C%5C%22))%3BclassNames.push(today(current))%3BclassNames.push(even(current.hours()))%3Bbreak%3Bcase%5C%5C%5C%22weekday%5C%5C%5C%22%3AclassNames.push(%5C%5C%5C%22vis-%5C%5C%5C%22%2Bcurrent.format(%5C%5C%5C%22dddd%5C%5C%5C%22).toLowerCase())%3BclassNames.push(today(current))%3BclassNames.push(currentWeek(current))%3BclassNames.push(even(current.date()))%3Bbreak%3Bcase%5C%5C%5C%22day%5C%5C%5C%22%3AclassNames.push(%5C%5C%5C%22vis-day%5C%5C%5C%22%2Bcurrent.date())%3BclassNames.push(%5C%5C%5C%22vis-%5C%5C%5C%22%2Bcurrent.format(%5C%5C%5C%22MMMM%5C%5C%5C%22).toLowerCase())%3BclassNames.push(today(current))%3BclassNames.push(currentMonth(current))%3BclassNames.push(this.step%3C%3D2%3Ftoday(current)%3A%5C%5C%5C%22%5C%5C%5C%22)%3BclassNames.push(this.step%3C%3D2%3F%5C%5C%5C%22vis-%5C%5C%5C%22%2Bcurrent.format(%5C%5C%5C%22dddd%5C%5C%5C%22).toLowerCase()%3A%5C%5C%5C%22%5C%5C%5C%22)%3BclassNames.push(even(current.date()-1))%3Bbreak%3Bcase%5C%5C%5C%22week%5C%5C%5C%22%3AclassNames.push(%5C%5C%5C%22vis-week%5C%5C%5C%22%2Bcurrent.format(%5C%5C%5C%22w%5C%5C%5C%22))%3BclassNames.push(currentWeek(current))%3BclassNames.push(even(current.week()))%3Bbreak%3Bcase%5C%5C%5C%22month%5C%5C%5C%22%3AclassNames.push(%5C%5C%5C%22vis-%5C%5C%5C%22%2Bcurrent.format(%5C%5C%5C%22MMMM%5C%5C%5C%22).toLowerCase())%3BclassNames.push(currentMonth(current))%3BclassNames.push(even(current.month()))%3Bbreak%3Bcase%5C%5C%5C%22year%5C%5C%5C%22%3AclassNames.push(%5C%5C%5C%22vis-year%5C%5C%5C%22%2Bcurrent.year())%3BclassNames.push(currentYear(current))%3BclassNames.push(even(current.year()))%3Bbreak%7Dreturn%20classNames.filter(String).join(%5C%5C%5C%22%20%5C%5C%5C%22)%7D%3Bmodule.exports%3DTimeStep%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bvar%20util%3D__webpack_require__(2)%3Bvar%20Component%3D__webpack_require__(16)%3Bvar%20moment%3D__webpack_require__(9)%3Bvar%20locales%3D__webpack_require__(98)%3Bfunction%20CurrentTime(body%2Coptions)%7Bthis.body%3Dbody%3Bthis.defaultOptions%3D%7Brtl%3Afalse%2CshowCurrentTime%3Atrue%2Cmoment%3Amoment%2Clocales%3Alocales%2Clocale%3A%5C%5C%5C%22en%5C%5C%5C%22%7D%3Bthis.options%3Dutil.extend(%7B%7D%2Cthis.defaultOptions)%3Bthis.offset%3D0%3Bthis._create()%3Bthis.setOptions(options)%7DCurrentTime.prototype%3Dnew%20Component%3BCurrentTime.prototype._create%3Dfunction()%7Bvar%20bar%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bbar.className%3D%5C%5C%5C%22vis-current-time%5C%5C%5C%22%3Bbar.style.position%3D%5C%5C%5C%22absolute%5C%5C%5C%22%3Bbar.style.top%3D%5C%5C%5C%220px%5C%5C%5C%22%3Bbar.style.height%3D%5C%5C%5C%22100%25%5C%5C%5C%22%3Bthis.bar%3Dbar%7D%3BCurrentTime.prototype.destroy%3Dfunction()%7Bthis.options.showCurrentTime%3Dfalse%3Bthis.redraw()%3Bthis.body%3Dnull%7D%3BCurrentTime.prototype.setOptions%3Dfunction(options)%7Bif(options)%7Butil.selectiveExtend(%5B%5C%5C%5C%22rtl%5C%5C%5C%22%2C%5C%5C%5C%22showCurrentTime%5C%5C%5C%22%2C%5C%5C%5C%22moment%5C%5C%5C%22%2C%5C%5C%5C%22locale%5C%5C%5C%22%2C%5C%5C%5C%22locales%5C%5C%5C%22%5D%2Cthis.options%2Coptions)%7D%7D%3BCurrentTime.prototype.redraw%3Dfunction()%7Bif(this.options.showCurrentTime)%7Bvar%20parent%3Dthis.body.dom.backgroundVertical%3Bif(this.bar.parentNode!%3Dparent)%7Bif(this.bar.parentNode)%7Bthis.bar.parentNode.removeChild(this.bar)%7Dparent.appendChild(this.bar)%3Bthis.start()%7Dvar%20now%3Dthis.options.moment((new%20Date).valueOf()%2Bthis.offset)%3Bvar%20x%3Dthis.body.util.toScreen(now)%3Bvar%20locale%3Dthis.options.locales%5Bthis.options.locale%5D%3Bif(!locale)%7Bif(!this.warned)%7Bconsole.log(%5C%5C%5C%22WARNING%3A%20options.locales%5B'%5C%5C%5C%22%2Bthis.options.locale%2B%5C%5C%5C%22'%5D%20not%20found.%20See%20http%3A%2F%2Fvisjs.org%2Fdocs%2Ftimeline%2F%23Localization%5C%5C%5C%22)%3Bthis.warned%3Dtrue%7Dlocale%3Dthis.options.locales%5B%5C%5C%5C%22en%5C%5C%5C%22%5D%7Dvar%20title%3Dlocale.current%2B%5C%5C%5C%22%20%5C%5C%5C%22%2Blocale.time%2B%5C%5C%5C%22%3A%20%5C%5C%5C%22%2Bnow.format(%5C%5C%5C%22dddd%2C%20MMMM%20Do%20YYYY%2C%20H%3Amm%3Ass%5C%5C%5C%22)%3Btitle%3Dtitle.charAt(0).toUpperCase()%2Btitle.substring(1)%3Bif(this.options.rtl)%7Bthis.bar.style.right%3Dx%2B%5C%5C%5C%22px%5C%5C%5C%22%7Delse%7Bthis.bar.style.left%3Dx%2B%5C%5C%5C%22px%5C%5C%5C%22%7Dthis.bar.title%3Dtitle%7Delse%7Bif(this.bar.parentNode)%7Bthis.bar.parentNode.removeChild(this.bar)%7Dthis.stop()%7Dreturn%20false%7D%3BCurrentTime.prototype.start%3Dfunction()%7Bvar%20me%3Dthis%3Bfunction%20update()%7Bme.stop()%3Bvar%20scale%3Dme.body.range.conversion(me.body.domProps.center.width).scale%3Bvar%20interval%3D1%2Fscale%2F10%3Bif(interval%3C30)interval%3D30%3Bif(interval%3E1e3)interval%3D1e3%3Bme.redraw()%3Bme.body.emitter.emit(%5C%5C%5C%22currentTimeTick%5C%5C%5C%22)%3Bme.currentTimeTimer%3DsetTimeout(update%2Cinterval)%7Dupdate()%7D%3BCurrentTime.prototype.stop%3Dfunction()%7Bif(this.currentTimeTimer!%3D%3Dundefined)%7BclearTimeout(this.currentTimeTimer)%3Bdelete%20this.currentTimeTimer%7D%7D%3BCurrentTime.prototype.setCurrentTime%3Dfunction(time)%7Bvar%20t%3Dutil.convert(time%2C%5C%5C%5C%22Date%5C%5C%5C%22).valueOf()%3Bvar%20now%3D(new%20Date).valueOf()%3Bthis.offset%3Dt-now%3Bthis.redraw()%7D%3BCurrentTime.prototype.getCurrentTime%3Dfunction()%7Breturn%20new%20Date((new%20Date).valueOf()%2Bthis.offset)%7D%3Bmodule.exports%3DCurrentTime%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bvar%20_keys%3D__webpack_require__(8)%3Bvar%20_keys2%3D_interopRequireDefault(_keys)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20util%3D__webpack_require__(2)%3Bvar%20stack%3D__webpack_require__(100)%3Bfunction%20Group(groupId%2Cdata%2CitemSet)%7Bthis.groupId%3DgroupId%3Bthis.subgroups%3D%7B%7D%3Bthis.subgroupStack%3D%7B%7D%3Bthis.subgroupStackAll%3Dfalse%3Bthis.doInnerStack%3Dfalse%3Bthis.subgroupIndex%3D0%3Bthis.subgroupOrderer%3Ddata%26%26data.subgroupOrder%3Bthis.itemSet%3DitemSet%3Bthis.isVisible%3Dnull%3Bthis.stackDirty%3Dtrue%3Bif(data%26%26data.nestedGroups)%7Bthis.nestedGroups%3Ddata.nestedGroups%3Bif(data.showNested%3D%3Dfalse)%7Bthis.showNested%3Dfalse%7Delse%7Bthis.showNested%3Dtrue%7D%7Dif(data%26%26data.subgroupStack)%7Bif(typeof%20data.subgroupStack%3D%3D%3D%5C%5C%5C%22boolean%5C%5C%5C%22)%7Bthis.doInnerStack%3Ddata.subgroupStack%3Bthis.subgroupStackAll%3Ddata.subgroupStack%7Delse%7Bfor(var%20key%20in%20data.subgroupStack)%7Bthis.subgroupStack%5Bkey%5D%3Ddata.subgroupStack%5Bkey%5D%3Bthis.doInnerStack%3Dthis.doInnerStack%7C%7Cdata.subgroupStack%5Bkey%5D%7D%7D%7Dthis.nestedInGroup%3Dnull%3Bthis.dom%3D%7B%7D%3Bthis.props%3D%7Blabel%3A%7Bwidth%3A0%2Cheight%3A0%7D%7D%3Bthis.className%3Dnull%3Bthis.items%3D%7B%7D%3Bthis.visibleItems%3D%5B%5D%3Bthis.itemsInRange%3D%5B%5D%3Bthis.orderedItems%3D%7BbyStart%3A%5B%5D%2CbyEnd%3A%5B%5D%7D%3Bthis.checkRangedItems%3Dfalse%3Bvar%20me%3Dthis%3Bthis.itemSet.body.emitter.on(%5C%5C%5C%22checkRangedItems%5C%5C%5C%22%2Cfunction()%7Bme.checkRangedItems%3Dtrue%7D)%3Bthis._create()%3Bthis.setData(data)%7DGroup.prototype._create%3Dfunction()%7Bvar%20label%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bif(this.itemSet.options.groupEditable.order)%7Blabel.className%3D%5C%5C%5C%22vis-label%20draggable%5C%5C%5C%22%7Delse%7Blabel.className%3D%5C%5C%5C%22vis-label%5C%5C%5C%22%7Dthis.dom.label%3Dlabel%3Bvar%20inner%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Binner.className%3D%5C%5C%5C%22vis-inner%5C%5C%5C%22%3Blabel.appendChild(inner)%3Bthis.dom.inner%3Dinner%3Bvar%20foreground%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bforeground.className%3D%5C%5C%5C%22vis-group%5C%5C%5C%22%3Bforeground%5B%5C%5C%5C%22timeline-group%5C%5C%5C%22%5D%3Dthis%3Bthis.dom.foreground%3Dforeground%3Bthis.dom.background%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bthis.dom.background.className%3D%5C%5C%5C%22vis-group%5C%5C%5C%22%3Bthis.dom.axis%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bthis.dom.axis.className%3D%5C%5C%5C%22vis-group%5C%5C%5C%22%3Bthis.dom.marker%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bthis.dom.marker.style.visibility%3D%5C%5C%5C%22hidden%5C%5C%5C%22%3Bthis.dom.marker.style.position%3D%5C%5C%5C%22absolute%5C%5C%5C%22%3Bthis.dom.marker.innerHTML%3D%5C%5C%5C%22%5C%5C%5C%22%3Bthis.dom.background.appendChild(this.dom.marker)%7D%3BGroup.prototype.setData%3Dfunction(data)%7Bvar%20content%3Bvar%20templateFunction%3Bif(this.itemSet.options%26%26this.itemSet.options.groupTemplate)%7BtemplateFunction%3Dthis.itemSet.options.groupTemplate.bind(this)%3Bcontent%3DtemplateFunction(data%2Cthis.dom.inner)%7Delse%7Bcontent%3Ddata%26%26data.content%7Dif(content%20instanceof%20Element)%7Bthis.dom.inner.appendChild(content)%3Bwhile(this.dom.inner.firstChild)%7Bthis.dom.inner.removeChild(this.dom.inner.firstChild)%7Dthis.dom.inner.appendChild(content)%7Delse%20if(content%20instanceof%20Object)%7BtemplateFunction(data%2Cthis.dom.inner)%7Delse%20if(content!%3D%3Dundefined%26%26content!%3D%3Dnull)%7Bthis.dom.inner.innerHTML%3Dcontent%7Delse%7Bthis.dom.inner.innerHTML%3Dthis.groupId%7C%7C%5C%5C%5C%22%5C%5C%5C%22%7Dthis.dom.label.title%3Ddata%26%26data.title%7C%7C%5C%5C%5C%22%5C%5C%5C%22%3Bif(!this.dom.inner.firstChild)%7Butil.addClassName(this.dom.inner%2C%5C%5C%5C%22vis-hidden%5C%5C%5C%22)%7Delse%7Butil.removeClassName(this.dom.inner%2C%5C%5C%5C%22vis-hidden%5C%5C%5C%22)%7Dif(data%26%26data.nestedGroups)%7Bif(!this.nestedGroups%7C%7Cthis.nestedGroups!%3Ddata.nestedGroups)%7Bthis.nestedGroups%3Ddata.nestedGroups%7Dif(data.showNested!%3D%3Dundefined%7C%7Cthis.showNested%3D%3D%3Dundefined)%7Bif(data.showNested%3D%3Dfalse)%7Bthis.showNested%3Dfalse%7Delse%7Bthis.showNested%3Dtrue%7D%7Dutil.addClassName(this.dom.label%2C%5C%5C%5C%22vis-nesting-group%5C%5C%5C%22)%3Bvar%20collapsedDirClassName%3Dthis.itemSet.options.rtl%3F%5C%5C%5C%22collapsed-rtl%5C%5C%5C%22%3A%5C%5C%5C%22collapsed%5C%5C%5C%22%3Bif(this.showNested)%7Butil.removeClassName(this.dom.label%2CcollapsedDirClassName)%3Butil.addClassName(this.dom.label%2C%5C%5C%5C%22expanded%5C%5C%5C%22)%7Delse%7Butil.removeClassName(this.dom.label%2C%5C%5C%5C%22expanded%5C%5C%5C%22)%3Butil.addClassName(this.dom.label%2CcollapsedDirClassName)%7D%7Delse%20if(this.nestedGroups)%7Bthis.nestedGroups%3Dnull%3BcollapsedDirClassName%3Dthis.itemSet.options.rtl%3F%5C%5C%5C%22collapsed-rtl%5C%5C%5C%22%3A%5C%5C%5C%22collapsed%5C%5C%5C%22%3Butil.removeClassName(this.dom.label%2CcollapsedDirClassName)%3Butil.removeClassName(this.dom.label%2C%5C%5C%5C%22expanded%5C%5C%5C%22)%3Butil.removeClassName(this.dom.label%2C%5C%5C%5C%22vis-nesting-group%5C%5C%5C%22)%7Dif(data%26%26data.nestedInGroup)%7Butil.addClassName(this.dom.label%2C%5C%5C%5C%22vis-nested-group%5C%5C%5C%22)%3Bif(this.itemSet.options%26%26this.itemSet.options.rtl)%7Bthis.dom.inner.style.paddingRight%3D%5C%5C%5C%2230px%5C%5C%5C%22%7Delse%7B%5C%5Cnthis.dom.inner.style.paddingLeft%3D%5C%5C%5C%2230px%5C%5C%5C%22%7D%7Dvar%20className%3Ddata%26%26data.className%7C%7Cnull%3Bif(className!%3Dthis.className)%7Bif(this.className)%7Butil.removeClassName(this.dom.label%2Cthis.className)%3Butil.removeClassName(this.dom.foreground%2Cthis.className)%3Butil.removeClassName(this.dom.background%2Cthis.className)%3Butil.removeClassName(this.dom.axis%2Cthis.className)%7Dutil.addClassName(this.dom.label%2CclassName)%3Butil.addClassName(this.dom.foreground%2CclassName)%3Butil.addClassName(this.dom.background%2CclassName)%3Butil.addClassName(this.dom.axis%2CclassName)%3Bthis.className%3DclassName%7Dif(this.style)%7Butil.removeCssText(this.dom.label%2Cthis.style)%3Bthis.style%3Dnull%7Dif(data%26%26data.style)%7Butil.addCssText(this.dom.label%2Cdata.style)%3Bthis.style%3Ddata.style%7D%7D%3BGroup.prototype.getLabelWidth%3Dfunction()%7Breturn%20this.props.label.width%7D%3BGroup.prototype._didMarkerHeightChange%3Dfunction()%7Bvar%20markerHeight%3Dthis.dom.marker.clientHeight%3Bif(markerHeight!%3Dthis.lastMarkerHeight)%7Bthis.lastMarkerHeight%3DmarkerHeight%3Bvar%20redrawQueue%3D%7B%7D%3Bvar%20redrawQueueLength%3D0%3Butil.forEach(this.items%2Cfunction(item%2Ckey)%7Bitem.dirty%3Dtrue%3Bif(item.displayed)%7Bvar%20returnQueue%3Dtrue%3BredrawQueue%5Bkey%5D%3Ditem.redraw(returnQueue)%3BredrawQueueLength%3DredrawQueue%5Bkey%5D.length%7D%7D)%3Bvar%20needRedraw%3DredrawQueueLength%3E0%3Bif(needRedraw)%7Bfor(var%20i%3D0%3Bi%3CredrawQueueLength%3Bi%2B%2B)%7Butil.forEach(redrawQueue%2Cfunction(fns)%7Bfns%5Bi%5D()%7D)%7D%7Dreturn%20true%7D%7D%3BGroup.prototype._calculateGroupSizeAndPosition%3Dfunction()%7Bvar%20offsetTop%3Dthis.dom.foreground.offsetTop%3Bvar%20offsetLeft%3Dthis.dom.foreground.offsetLeft%3Bvar%20offsetWidth%3Dthis.dom.foreground.offsetWidth%3Bthis.top%3DoffsetTop%3Bthis.right%3DoffsetLeft%3Bthis.width%3DoffsetWidth%7D%3BGroup.prototype._redrawItems%3Dfunction(forceRestack%2ClastIsVisible%2Cmargin%2Crange)%7Bvar%20restack%3DforceRestack%7C%7Cthis.stackDirty%7C%7Cthis.isVisible%26%26!lastIsVisible%3Bif(restack)%7Bvar%20visibleSubgroups%3D%7B%7D%3Bvar%20subgroup%3Dnull%3Bif(typeof%20this.itemSet.options.order%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22)%7Bvar%20me%3Dthis%3Bvar%20limitSize%3Dfalse%3Bvar%20redrawQueue%3D%7B%7D%3Bvar%20redrawQueueLength%3D0%3Butil.forEach(this.items%2Cfunction(item%2Ckey)%7Bif(!item.displayed)%7Bvar%20returnQueue%3Dtrue%3BredrawQueue%5Bkey%5D%3Ditem.redraw(returnQueue)%3BredrawQueueLength%3DredrawQueue%5Bkey%5D.length%3Bme.visibleItems.push(item)%7D%7D)%3Bvar%20needRedraw%3DredrawQueueLength%3E0%3Bif(needRedraw)%7Bfor(var%20i%3D0%3Bi%3CredrawQueueLength%3Bi%2B%2B)%7Butil.forEach(redrawQueue%2Cfunction(fns)%7Bfns%5Bi%5D()%7D)%7D%7Dutil.forEach(this.items%2Cfunction(item)%7Bitem.repositionX(limitSize)%7D)%3Bif(this.doInnerStack%26%26this.itemSet.options.stackSubgroups)%7Bfor(subgroup%20in%20this.subgroups)%7BvisibleSubgroups%5Bsubgroup%5D%3Dthis.subgroups%5Bsubgroup%5D.items.slice().sort(function(a%2Cb)%7Breturn%20me.itemSet.options.order(a.data%2Cb.data)%7D)%7Dstack.stackSubgroupsWithInnerStack(visibleSubgroups%2Cmargin%2Cthis.subgroups)%7Delse%7Bvar%20customOrderedItems%3Dthis.orderedItems.byStart.slice().sort(function(a%2Cb)%7Breturn%20me.itemSet.options.order(a.data%2Cb.data)%7D)%3Bstack.stack(customOrderedItems%2Cmargin%2Ctrue)%7Dthis.visibleItems%3Dthis._updateItemsInRange(this.orderedItems%2Cthis.visibleItems%2Crange)%7Delse%7Bthis.visibleItems%3Dthis._updateItemsInRange(this.orderedItems%2Cthis.visibleItems%2Crange)%3Bif(this.itemSet.options.stack)%7Bif(this.doInnerStack%26%26this.itemSet.options.stackSubgroups)%7Bfor(subgroup%20in%20this.subgroups)%7BvisibleSubgroups%5Bsubgroup%5D%3Dthis.subgroups%5Bsubgroup%5D.items%7Dstack.stackSubgroupsWithInnerStack(visibleSubgroups%2Cmargin%2Cthis.subgroups)%7Delse%7Bstack.stack(this.visibleItems%2Cmargin%2Ctrue)%7D%7Delse%7Bstack.nostack(this.visibleItems%2Cmargin%2Cthis.subgroups%2Cthis.itemSet.options.stackSubgroups)%7D%7Dthis.stackDirty%3Dfalse%7D%7D%3BGroup.prototype._didResize%3Dfunction(resized%2Cheight)%7Bresized%3Dutil.updateProperty(this%2C%5C%5C%5C%22height%5C%5C%5C%22%2Cheight)%7C%7Cresized%3Bvar%20labelWidth%3Dthis.dom.inner.clientWidth%3Bvar%20labelHeight%3Dthis.dom.inner.clientHeight%3Bresized%3Dutil.updateProperty(this.props.label%2C%5C%5C%5C%22width%5C%5C%5C%22%2ClabelWidth)%7C%7Cresized%3Bresized%3Dutil.updateProperty(this.props.label%2C%5C%5C%5C%22height%5C%5C%5C%22%2ClabelHeight)%7C%7Cresized%3Breturn%20resized%7D%3BGroup.prototype._applyGroupHeight%3Dfunction(height)%7Bthis.dom.background.style.height%3Dheight%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bthis.dom.foreground.style.height%3Dheight%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bthis.dom.label.style.height%3Dheight%2B%5C%5C%5C%22px%5C%5C%5C%22%7D%3BGroup.prototype._updateItemsVerticalPosition%3Dfunction(margin)%7Bfor(var%20i%3D0%2Cii%3Dthis.visibleItems.length%3Bi%3Cii%3Bi%2B%2B)%7Bvar%20item%3Dthis.visibleItems%5Bi%5D%3Bitem.repositionY(margin)%3Bif(!this.isVisible%26%26this.groupId!%3D%5C%5C%5C%22__background__%5C%5C%5C%22)%7Bif(item.displayed)item.hide()%7D%7D%7D%3BGroup.prototype.redraw%3Dfunction(range%2Cmargin%2CforceRestack%2CreturnQueue)%7Bvar%20resized%3Dfalse%3Bvar%20lastIsVisible%3Dthis.isVisible%3Bvar%20height%3Bvar%20queue%3D%5Bfunction()%7BforceRestack%3Dthis._didMarkerHeightChange.bind(this)%7D.bind(this)%2Cthis._updateSubGroupHeights.bind(this%2Cmargin)%2Cthis._calculateGroupSizeAndPosition.bind(this)%2Cfunction()%7Bthis.isVisible%3Dthis._isGroupVisible.bind(this)(range%2Cmargin)%7D.bind(this)%2Cfunction()%7Bthis._redrawItems.bind(this)(forceRestack%2ClastIsVisible%2Cmargin%2Crange)%7D.bind(this)%2Cthis._updateSubgroupsSizes.bind(this)%2Cfunction()%7Bheight%3Dthis._calculateHeight.bind(this)(margin)%7D.bind(this)%2Cthis._calculateGroupSizeAndPosition.bind(this)%2Cfunction()%7Bresized%3Dthis._didResize.bind(this)(resized%2Cheight)%7D.bind(this)%2Cfunction()%7Bthis._applyGroupHeight.bind(this)(height)%7D.bind(this)%2Cfunction()%7Bthis._updateItemsVerticalPosition.bind(this)(margin)%7D.bind(this)%2Cfunction()%7Bif(!this.isVisible%26%26this.height)%7Bresized%3Dfalse%7Dreturn%20resized%7D%5D%3Bif(returnQueue)%7Breturn%20queue%7Delse%7Bvar%20result%3Bqueue.forEach(function(fn)%7Bresult%3Dfn()%7D)%3Breturn%20result%7D%7D%3BGroup.prototype._updateSubGroupHeights%3Dfunction(margin)%7Bif((0%2C_keys2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this.subgroups).length%3E0)%7Bvar%20me%3Dthis%3Bthis.resetSubgroups()%3Butil.forEach(this.visibleItems%2Cfunction(item)%7Bif(item.data.subgroup!%3D%3Dundefined)%7Bme.subgroups%5Bitem.data.subgroup%5D.height%3DMath.max(me.subgroups%5Bitem.data.subgroup%5D.height%2Citem.height%2Bmargin.item.vertical)%3Bme.subgroups%5Bitem.data.subgroup%5D.visible%3Dtrue%7D%7D)%7D%7D%3BGroup.prototype._isGroupVisible%3Dfunction(range%2Cmargin)%7Breturn%20this.top%3C%3Drange.body.domProps.centerContainer.height-range.body.domProps.scrollTop%2Bmargin.axis%26%26this.top%2Bthis.height%2Bmargin.axis%3E%3D-range.body.domProps.scrollTop%7D%3BGroup.prototype._calculateHeight%3Dfunction(margin)%7Bvar%20height%3Bvar%20itemsInRange%3Dthis.visibleItems%3Bif(itemsInRange.length%3E0)%7Bvar%20min%3DitemsInRange%5B0%5D.top%3Bvar%20max%3DitemsInRange%5B0%5D.top%2BitemsInRange%5B0%5D.height%3Butil.forEach(itemsInRange%2Cfunction(item)%7Bmin%3DMath.min(min%2Citem.top)%3Bmax%3DMath.max(max%2Citem.top%2Bitem.height)%7D)%3Bif(min%3Emargin.axis)%7Bvar%20offset%3Dmin-margin.axis%3Bmax-%3Doffset%3Butil.forEach(itemsInRange%2Cfunction(item)%7Bitem.top-%3Doffset%7D)%7Dheight%3Dmax%2Bmargin.item.vertical%2F2%7Delse%7Bheight%3D0%7Dheight%3DMath.max(height%2Cthis.props.label.height)%3Breturn%20height%7D%3BGroup.prototype.show%3Dfunction()%7Bif(!this.dom.label.parentNode)%7Bthis.itemSet.dom.labelSet.appendChild(this.dom.label)%7Dif(!this.dom.foreground.parentNode)%7Bthis.itemSet.dom.foreground.appendChild(this.dom.foreground)%7Dif(!this.dom.background.parentNode)%7Bthis.itemSet.dom.background.appendChild(this.dom.background)%7Dif(!this.dom.axis.parentNode)%7Bthis.itemSet.dom.axis.appendChild(this.dom.axis)%7D%7D%3BGroup.prototype.hide%3Dfunction()%7Bvar%20label%3Dthis.dom.label%3Bif(label.parentNode)%7Blabel.parentNode.removeChild(label)%7Dvar%20foreground%3Dthis.dom.foreground%3Bif(foreground.parentNode)%7Bforeground.parentNode.removeChild(foreground)%7Dvar%20background%3Dthis.dom.background%3Bif(background.parentNode)%7Bbackground.parentNode.removeChild(background)%7Dvar%20axis%3Dthis.dom.axis%3Bif(axis.parentNode)%7Baxis.parentNode.removeChild(axis)%7D%7D%3BGroup.prototype.add%3Dfunction(item)%7Bthis.items%5Bitem.id%5D%3Ditem%3Bitem.setParent(this)%3Bthis.stackDirty%3Dtrue%3Bif(item.data.subgroup!%3D%3Dundefined)%7Bthis._addToSubgroup(item)%3Bthis.orderSubgroups()%7Dif(this.visibleItems.indexOf(item)%3D%3D-1)%7Bvar%20range%3Dthis.itemSet.body.range%3Bthis._checkIfVisible(item%2Cthis.visibleItems%2Crange)%7D%7D%3BGroup.prototype._addToSubgroup%3Dfunction(item%2CsubgroupId)%7BsubgroupId%3DsubgroupId%7C%7Citem.data.subgroup%3Bif(subgroupId!%3Dundefined%26%26this.subgroups%5BsubgroupId%5D%3D%3D%3Dundefined)%7Bthis.subgroups%5BsubgroupId%5D%3D%7Bheight%3A0%2Ctop%3A0%2Cstart%3Aitem.data.start%2Cend%3Aitem.data.end%7C%7Citem.data.start%2Cvisible%3Afalse%2Cindex%3Athis.subgroupIndex%2Citems%3A%5B%5D%2Cstack%3Athis.subgroupStackAll%7C%7Cthis.subgroupStack%5BsubgroupId%5D%7C%7Cfalse%7D%3Bthis.subgroupIndex%2B%2B%7Dif(new%20Date(item.data.start)%3Cnew%20Date(this.subgroups%5BsubgroupId%5D.start))%7Bthis.subgroups%5BsubgroupId%5D.start%3Ditem.data.start%7Dvar%20itemEnd%3Ditem.data.end%7C%7Citem.data.start%3Bif(new%20Date(itemEnd)%3Enew%20Date(this.subgroups%5BsubgroupId%5D.end))%7Bthis.subgroups%5BsubgroupId%5D.end%3DitemEnd%7Dthis.subgroups%5BsubgroupId%5D.items.push(item)%7D%3BGroup.prototype._updateSubgroupsSizes%3Dfunction()%7Bvar%20me%3Dthis%3Bif(me.subgroups)%7Bfor(var%20subgroup%20in%20me.subgroups)%7Bvar%20initialEnd%3Dme.subgroups%5Bsubgroup%5D.items%5B0%5D.data.end%7C%7Cme.subgroups%5Bsubgroup%5D.items%5B0%5D.data.start%3Bvar%20newStart%3Dme.subgroups%5Bsubgroup%5D.items%5B0%5D.data.start%3Bvar%20newEnd%3DinitialEnd-1%3Bme.subgroups%5Bsubgroup%5D.items.forEach(function(item)%7Bif(new%20Date(item.data.start)%3Cnew%20Date(newStart))%7BnewStart%3Ditem.data.start%7Dvar%20itemEnd%3Ditem.data.end%7C%7Citem.data.start%3Bif(new%20Date(itemEnd)%3Enew%20Date(newEnd))%7BnewEnd%3DitemEnd%7D%7D)%3Bme.subgroups%5Bsubgroup%5D.start%3DnewStart%3Bme.subgroups%5Bsubgroup%5D.end%3Dnew%20Date(newEnd-1)%7D%7D%7D%3BGroup.prototype.orderSubgroups%3Dfunction()%7Bif(this.subgroupOrderer!%3D%3Dundefined)%7Bvar%20sortArray%3D%5B%5D%3Bvar%20subgroup%3Bif(typeof%20this.subgroupOrderer%3D%3D%5C%5C%5C%22string%5C%5C%5C%22)%7Bfor(subgroup%20in%20this.subgroups)%7BsortArray.push(%7Bsubgroup%3Asubgroup%2CsortField%3Athis.subgroups%5Bsubgroup%5D.items%5B0%5D.data%5Bthis.subgroupOrderer%5D%7D)%7DsortArray.sort(function(a%2Cb)%7Breturn%20a.sortField-b.sortField%7D)%7Delse%20if(typeof%20this.subgroupOrderer%3D%3D%5C%5C%5C%22function%5C%5C%5C%22)%7Bfor(subgroup%20in%20this.subgroups)%7BsortArray.push(this.subgroups%5Bsubgroup%5D.items%5B0%5D.data)%7DsortArray.sort(this.subgroupOrderer)%7Dif(sortArray.length%3E0)%7Bfor(var%20i%3D0%3Bi%3CsortArray.length%3Bi%2B%2B)%7Bthis.subgroups%5BsortArray%5Bi%5D.subgroup%5D.index%3Di%7D%7D%7D%7D%3BGroup.prototype.resetSubgroups%3Dfunction()%7Bfor(var%20subgroup%20in%20this.subgroups)%7Bif(this.subgroups.hasOwnProperty(subgroup))%7Bthis.subgroups%5Bsubgroup%5D.visible%3Dfalse%3Bthis.subgroups%5Bsubgroup%5D.height%3D0%7D%7D%7D%3BGroup.prototype.remove%3Dfunction(item)%7Bdelete%20this.items%5Bitem.id%5D%3Bitem.setParent(null)%3Bthis.stackDirty%3Dtrue%3Bvar%20index%3Dthis.visibleItems.indexOf(item)%3Bif(index!%3D-1)this.visibleItems.splice(index%2C1)%3Bif(item.data.subgroup!%3D%3Dundefined)%7Bthis._removeFromSubgroup(item)%3Bthis.orderSubgroups()%7D%7D%3BGroup.prototype._removeFromSubgroup%3Dfunction(item%2CsubgroupId)%7BsubgroupId%3DsubgroupId%7C%7Citem.data.subgroup%3Bif(subgroupId!%3Dundefined)%7Bvar%20subgroup%3Dthis.subgroups%5BsubgroupId%5D%3Bif(subgroup)%7Bvar%20itemIndex%3Dsubgroup.items.indexOf(item)%3Bif(itemIndex%3E%3D0)%7Bsubgroup.items.splice(itemIndex%2C1)%3Bif(!subgroup.items.length)%7Bdelete%20this.subgroups%5BsubgroupId%5D%7Delse%7Bthis._updateSubgroupsSizes()%7D%7D%7D%7D%7D%3BGroup.prototype.removeFromDataSet%3Dfunction(item)%7Bthis.itemSet.removeItem(item.id)%7D%3BGroup.prototype.order%3Dfunction()%7Bvar%20array%3Dutil.toArray(this.items)%3Bvar%20startArray%3D%5B%5D%3Bvar%20endArray%3D%5B%5D%3Bfor(var%20i%3D0%3Bi%3Carray.length%3Bi%2B%2B)%7Bif(array%5Bi%5D.data.end!%3D%3Dundefined)%7BendArray.push(array%5Bi%5D)%7DstartArray.push(array%5Bi%5D)%7Dthis.orderedItems%3D%7BbyStart%3AstartArray%2CbyEnd%3AendArray%7D%3Bstack.orderByStart(this.orderedItems.byStart)%3Bstack.orderByEnd(this.orderedItems.byEnd)%7D%3BGroup.prototype._updateItemsInRange%3Dfunction(orderedItems%2ColdVisibleItems%2Crange)%7Bvar%20visibleItems%3D%5B%5D%3Bvar%20visibleItemsLookup%3D%7B%7D%3Bvar%20interval%3D(range.end-range.start)%2F4%3Bvar%20lowerBound%3Drange.start-interval%3Bvar%20upperBound%3Drange.end%2Binterval%3Bvar%20searchFunction%3Dfunction%20searchFunction(value)%7Bif(value%3ClowerBound)%7Breturn-1%7Delse%20if(value%3C%3DupperBound)%7Breturn%200%7Delse%7Breturn%201%7D%7D%3Bif(oldVisibleItems.length%3E0)%7Bfor(var%20i%3D0%3Bi%3ColdVisibleItems.length%3Bi%2B%2B)%7Bthis._checkIfVisibleWithReference(oldVisibleItems%5Bi%5D%2CvisibleItems%2CvisibleItemsLookup%2Crange)%7D%7Dvar%20initialPosByStart%3Dutil.binarySearchCustom(orderedItems.byStart%2CsearchFunction%2C%5C%5C%5C%22data%5C%5C%5C%22%2C%5C%5C%5C%22start%5C%5C%5C%22)%3Bthis._traceVisible(initialPosByStart%2CorderedItems.byStart%2CvisibleItems%2CvisibleItemsLookup%2Cfunction(item)%7Breturn%20item.data.start%3ClowerBound%7C%7Citem.data.start%3EupperBound%7D)%3Bif(this.checkRangedItems%3D%3Dtrue)%7Bthis.checkRangedItems%3Dfalse%3Bfor(i%3D0%3Bi%3CorderedItems.byEnd.length%3Bi%2B%2B)%7Bthis._checkIfVisibleWithReference(orderedItems.byEnd%5Bi%5D%2CvisibleItems%2CvisibleItemsLookup%2Crange)%7D%7Delse%7Bvar%20initialPosByEnd%3Dutil.binarySearchCustom(orderedItems.byEnd%2CsearchFunction%2C%5C%5C%5C%22data%5C%5C%5C%22%2C%5C%5C%5C%22end%5C%5C%5C%22)%3Bthis._traceVisible(initialPosByEnd%2CorderedItems.byEnd%2CvisibleItems%2CvisibleItemsLookup%2Cfunction(item)%7Breturn%20item.data.end%3ClowerBound%7C%7Citem.data.end%3EupperBound%7D)%7Dvar%20redrawQueue%3D%7B%7D%3Bvar%20redrawQueueLength%3D0%3Bfor(i%3D0%3Bi%3CvisibleItems.length%3Bi%2B%2B)%7Bvar%20item%3DvisibleItems%5Bi%5D%3Bif(!item.displayed)%7Bvar%20returnQueue%3Dtrue%3BredrawQueue%5Bi%5D%3Ditem.redraw(returnQueue)%3BredrawQueueLength%3DredrawQueue%5Bi%5D.length%7D%7Dvar%20needRedraw%3DredrawQueueLength%3E0%3Bif(needRedraw)%7Bfor(var%20j%3D0%3Bj%3CredrawQueueLength%3Bj%2B%2B)%7Butil.forEach(redrawQueue%2Cfunction(fns)%7Bfns%5Bj%5D()%7D)%7D%7Dfor(i%3D0%3Bi%3CvisibleItems.length%3Bi%2B%2B)%7BvisibleItems%5Bi%5D.repositionX()%7Dreturn%20visibleItems%7D%3BGroup.prototype._traceVisible%3Dfunction(initialPos%2Citems%2CvisibleItems%2CvisibleItemsLookup%2CbreakCondition)%7Bif(initialPos!%3D-1)%7Bvar%20i%2Citem%3Bfor(i%3DinitialPos%3Bi%3E%3D0%3Bi--)%7Bitem%3Ditems%5Bi%5D%3Bif(breakCondition(item))%7Bbreak%7Delse%7Bif(visibleItemsLookup%5Bitem.id%5D%3D%3D%3Dundefined)%7BvisibleItemsLookup%5Bitem.id%5D%3Dtrue%3BvisibleItems.push(item)%7D%7D%7Dfor(i%3DinitialPos%2B1%3Bi%3Citems.length%3Bi%2B%2B)%7Bitem%3Ditems%5Bi%5D%3Bif(breakCondition(item))%7Bbreak%7Delse%7Bif(visibleItemsLookup%5Bitem.id%5D%3D%3D%3Dundefined)%7BvisibleItemsLookup%5Bitem.id%5D%3Dtrue%3BvisibleItems.push(item)%7D%7D%7D%7D%7D%3BGroup.prototype._checkIfVisible%3Dfunction(item%2CvisibleItems%2Crange)%7Bif(item.isVisible(range))%7Bif(!item.displayed)item.show()%3Bitem.repositionX()%3BvisibleItems.push(item)%7Delse%7Bif(item.displayed)item.hide()%7D%7D%3BGroup.prototype._checkIfVisibleWithReference%3Dfunction(item%2CvisibleItems%2CvisibleItemsLookup%2Crange)%7Bif(item.isVisible(range))%7Bif(visibleItemsLookup%5Bitem.id%5D%3D%3D%3Dundefined)%7BvisibleItemsLookup%5Bitem.id%5D%3Dtrue%3BvisibleItems.push(item)%7D%7Delse%7Bif(item.displayed)item.hide()%7D%7D%3BGroup.prototype.changeSubgroup%3Dfunction(item%2ColdSubgroup%2CnewSubgroup)%7Bthis._removeFromSubgroup(item%2ColdSubgroup)%3Bthis._addToSubgroup(item%2CnewSubgroup)%3Bthis.orderSubgroups()%7D%3Bmodule.exports%3DGroup%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bvar%20_create%3D__webpack_require__(29)%3Bvar%20_create2%3D_interopRequireDefault(_create)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20Group%3D__webpack_require__(68)%3Bfunction%20BackgroundGroup(groupId%2Cdata%2CitemSet)%7BGroup.call(this%2CgroupId%2Cdata%2CitemSet)%3Bthis.width%3D0%3Bthis.height%3D0%3Bthis.top%3D0%3Bthis.left%3D0%7DBackgroundGroup.prototype%3D(0%2C_create2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(Group.prototype)%3BBackgroundGroup.prototype.redraw%3Dfunction(range%2Cmargin%2CforceRestack)%7Bvar%20resized%3Dfalse%3Bthis.visibleItems%3Dthis._updateItemsInRange(this.orderedItems%2Cthis.visibleItems%2Crange)%3Bthis.width%3Dthis.dom.background.offsetWidth%3Bthis.dom.background.style.height%3D%5C%5C%5C%220%5C%5C%5C%22%3Bfor(var%20i%3D0%2Cii%3Dthis.visibleItems.length%3Bi%3Cii%3Bi%2B%2B)%7Bvar%20item%3Dthis.visibleItems%5Bi%5D%3Bitem.repositionY(margin)%7Dreturn%20resized%7D%3BBackgroundGroup.prototype.show%3Dfunction()%7Bif(!this.dom.background.parentNode)%7Bthis.itemSet.dom.background.appendChild(this.dom.background)%7D%7D%3Bmodule.exports%3DBackgroundGroup%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bvar%20Item%3D__webpack_require__(38)%3Bfunction%20RangeItem(data%2Cconversion%2Coptions)%7Bthis.props%3D%7Bcontent%3A%7Bwidth%3A0%7D%7D%3Bthis.overflow%3Dfalse%3Bthis.options%3Doptions%3Bif(data)%7Bif(data.start%3D%3Dundefined)%7Bthrow%20new%20Error('Property%20%5C%5C%5C%22start%5C%5C%5C%22%20missing%20in%20item%20'%2Bdata.id)%7Dif(data.end%3D%3Dundefined)%7Bthrow%20new%20Error('Property%20%5C%5C%5C%22end%5C%5C%5C%22%20missing%20in%20item%20'%2Bdata.id)%7D%7DItem.call(this%2Cdata%2Cconversion%2Coptions)%7DRangeItem.prototype%3Dnew%20Item(null%2Cnull%2Cnull)%3BRangeItem.prototype.baseClassName%3D%5C%5C%5C%22vis-item%20vis-range%5C%5C%5C%22%3BRangeItem.prototype.isVisible%3Dfunction(range)%7Breturn%20this.data.start%3Crange.end%26%26this.data.end%3Erange.start%7D%3BRangeItem.prototype._createDomElement%3Dfunction()%7Bif(!this.dom)%7Bthis.dom%3D%7B%7D%3Bthis.dom.box%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bthis.dom.frame%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bthis.dom.frame.className%3D%5C%5C%5C%22vis-item-overflow%5C%5C%5C%22%3Bthis.dom.box.appendChild(this.dom.frame)%3Bthis.dom.visibleFrame%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bthis.dom.visibleFrame.className%3D%5C%5C%5C%22vis-item-visible-frame%5C%5C%5C%22%3Bthis.dom.box.appendChild(this.dom.visibleFrame)%3Bthis.dom.content%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bthis.dom.content.className%3D%5C%5C%5C%22vis-item-content%5C%5C%5C%22%3Bthis.dom.frame.appendChild(this.dom.content)%3Bthis.dom.box%5B%5C%5C%5C%22timeline-item%5C%5C%5C%22%5D%3Dthis%3Bthis.dirty%3Dtrue%7D%7D%3BRangeItem.prototype._appendDomElement%3Dfunction()%7Bif(!this.parent)%7Bthrow%20new%20Error(%5C%5C%5C%22Cannot%20redraw%20item%3A%20no%20parent%20attached%5C%5C%5C%22)%7Dif(!this.dom.box.parentNode)%7Bvar%20foreground%3Dthis.parent.dom.foreground%3Bif(!foreground)%7Bthrow%20new%20Error(%5C%5C%5C%22Cannot%20redraw%20item%3A%20parent%20has%20no%20foreground%20container%20element%5C%5C%5C%22)%7Dforeground.appendChild(this.dom.box)%7Dthis.displayed%3Dtrue%7D%3BRangeItem.prototype._updateDirtyDomComponents%3Dfunction()%7Bif(this.dirty)%7Bthis._updateContents(this.dom.content)%3Bthis._updateDataAttributes(this.dom.box)%3Bthis._updateStyle(this.dom.box)%3Bvar%20editable%3Dthis.editable.updateTime%7C%7Cthis.editable.updateGroup%3Bvar%20className%3D(this.data.className%3F%5C%5C%5C%22%20%5C%5C%5C%22%2Bthis.data.className%3A%5C%5C%5C%22%5C%5C%5C%22)%2B(this.selected%3F%5C%5C%5C%22%20vis-selected%5C%5C%5C%22%3A%5C%5C%5C%22%5C%5C%5C%22)%2B(editable%3F%5C%5C%5C%22%20vis-editable%5C%5C%5C%22%3A%5C%5C%5C%22%20vis-readonly%5C%5C%5C%22)%3Bthis.dom.box.className%3Dthis.baseClassName%2BclassName%3Bthis.dom.content.style.maxWidth%3D%5C%5C%5C%22none%5C%5C%5C%22%7D%7D%3BRangeItem.prototype._getDomComponentsSizes%3Dfunction()%7Bthis.overflow%3Dwindow.getComputedStyle(this.dom.frame).overflow!%3D%3D%5C%5C%5C%22hidden%5C%5C%5C%22%3Breturn%7Bcontent%3A%7Bwidth%3Athis.dom.content.offsetWidth%7D%2Cbox%3A%7Bheight%3Athis.dom.box.offsetHeight%7D%7D%7D%3BRangeItem.prototype._updateDomComponentsSizes%3Dfunction(sizes)%7Bthis.props.content.width%3Dsizes.content.width%3Bthis.height%3Dsizes.box.height%3Bthis.dom.content.style.maxWidth%3D%5C%5C%5C%22%5C%5C%5C%22%3Bthis.dirty%3Dfalse%7D%3BRangeItem.prototype._repaintDomAdditionals%3Dfunction()%7Bthis._repaintOnItemUpdateTimeTooltip(this.dom.box)%3Bthis._repaintDeleteButton(this.dom.box)%3Bthis._repaintDragCenter()%3Bthis._repaintDragLeft()%3Bthis._repaintDragRight()%7D%3BRangeItem.prototype.redraw%3Dfunction(returnQueue)%7Bvar%20sizes%3Bvar%20queue%3D%5Bthis._createDomElement.bind(this)%2Cthis._appendDomElement.bind(this)%2Cthis._updateDirtyDomComponents.bind(this)%2Cfunction()%7Bif(this.dirty)%7Bsizes%3Dthis._getDomComponentsSizes.bind(this)()%7D%7D.bind(this)%2Cfunction()%7Bif(this.dirty)%7Bthis._updateDomComponentsSizes.bind(this)(sizes)%7D%7D.bind(this)%2Cthis._repaintDomAdditionals.bind(this)%5D%3Bif(returnQueue)%7Breturn%20queue%7Delse%7Bvar%20result%3Bqueue.forEach(function(fn)%7Bresult%3Dfn()%7D)%3Breturn%20result%7D%7D%3BRangeItem.prototype.show%3Dfunction()%7Bif(!this.displayed)%7Bthis.redraw()%7D%7D%3BRangeItem.prototype.hide%3Dfunction()%7Bif(this.displayed)%7Bvar%20box%3Dthis.dom.box%3Bif(box.parentNode)%7Bbox.parentNode.removeChild(box)%7Dthis.displayed%3Dfalse%7D%7D%3BRangeItem.prototype.repositionX%3Dfunction(limitSize)%7Bvar%20parentWidth%3Dthis.parent.width%3Bvar%20start%3Dthis.conversion.toScreen(this.data.start)%3Bvar%20end%3Dthis.conversion.toScreen(this.data.end)%3Bvar%20align%3Dthis.data.align%3D%3D%3Dundefined%3Fthis.options.align%3Athis.data.align%3Bvar%20contentStartPosition%3Bvar%20contentWidth%3Bif(this.data.limitSize!%3D%3Dfalse%26%26(limitSize%3D%3D%3Dundefined%7C%7ClimitSize%3D%3D%3Dtrue))%7Bif(start%3C-parentWidth)%7Bstart%3D-parentWidth%7Dif(end%3E2*parentWidth)%7Bend%3D2*parentWidth%7D%7Dvar%20boxWidth%3DMath.max(end-start%2B.5%2C1)%3Bif(this.overflow)%7Bif(this.options.rtl)%7Bthis.right%3Dstart%7Delse%7Bthis.left%3Dstart%7Dthis.width%3DboxWidth%2Bthis.props.content.width%3BcontentWidth%3Dthis.props.content.width%7Delse%7Bif(this.options.rtl)%7Bthis.right%3Dstart%7Delse%7Bthis.left%3Dstart%7Dthis.width%3DboxWidth%3BcontentWidth%3DMath.min(end-start%2Cthis.props.content.width)%7Dif(this.options.rtl)%7Bthis.dom.box.style.right%3Dthis.right%2B%5C%5C%5C%22px%5C%5C%5C%22%7Delse%7Bthis.dom.box.style.left%3Dthis.left%2B%5C%5C%5C%22px%5C%5C%5C%22%7Dthis.dom.box.style.width%3DboxWidth%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bswitch(align)%7Bcase%5C%5C%5C%22left%5C%5C%5C%22%3Aif(this.options.rtl)%7Bthis.dom.content.style.right%3D%5C%5C%5C%220%5C%5C%5C%22%7Delse%7Bthis.dom.content.style.left%3D%5C%5C%5C%220%5C%5C%5C%22%7Dbreak%3Bcase%5C%5C%5C%22right%5C%5C%5C%22%3Aif(this.options.rtl)%7Bthis.dom.content.style.right%3DMath.max(boxWidth-contentWidth%2C0)%2B%5C%5C%5C%22px%5C%5C%5C%22%7Delse%7Bthis.dom.content.style.left%3DMath.max(boxWidth-contentWidth%2C0)%2B%5C%5C%5C%22px%5C%5C%5C%22%7Dbreak%3Bcase%5C%5C%5C%22center%5C%5C%5C%22%3Aif(this.options.rtl)%7Bthis.dom.content.style.right%3DMath.max((boxWidth-contentWidth)%2F2%2C0)%2B%5C%5C%5C%22px%5C%5C%5C%22%7Delse%7Bthis.dom.content.style.left%3DMath.max((boxWidth-contentWidth)%2F2%2C0)%2B%5C%5C%5C%22px%5C%5C%5C%22%7Dbreak%3Bdefault%3Aif(this.overflow)%7Bif(end%3E0)%7BcontentStartPosition%3DMath.max(-start%2C0)%7Delse%7BcontentStartPosition%3D-contentWidth%7D%7Delse%7Bif(start%3C0)%7BcontentStartPosition%3D-start%7Delse%7BcontentStartPosition%3D0%7D%7Dif(this.options.rtl)%7Bthis.dom.content.style.right%3DcontentStartPosition%2B%5C%5C%5C%22px%5C%5C%5C%22%7Delse%7Bthis.dom.content.style.left%3DcontentStartPosition%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bthis.dom.content.style.width%3D%5C%5C%5C%22calc(100%25%20-%20%5C%5C%5C%22%2BcontentStartPosition%2B%5C%5C%5C%22px)%5C%5C%5C%22%7D%7D%7D%3BRangeItem.prototype.repositionY%3Dfunction()%7Bvar%20orientation%3Dthis.options.orientation.item%3Bvar%20box%3Dthis.dom.box%3Bif(orientation%3D%3D%5C%5C%5C%22top%5C%5C%5C%22)%7Bbox.style.top%3Dthis.top%2B%5C%5C%5C%22px%5C%5C%5C%22%7Delse%7Bbox.style.top%3Dthis.parent.height-this.top-this.height%2B%5C%5C%5C%22px%5C%5C%5C%22%7D%7D%3BRangeItem.prototype._repaintDragLeft%3Dfunction()%7Bif((this.selected%7C%7Cthis.options.itemsAlwaysDraggable.range)%26%26this.options.editable.updateTime%26%26!this.dom.dragLeft)%7Bvar%20dragLeft%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3BdragLeft.className%3D%5C%5C%5C%22vis-drag-left%5C%5C%5C%22%3BdragLeft.dragLeftItem%3Dthis%3Bthis.dom.box.appendChild(dragLeft)%3Bthis.dom.dragLeft%3DdragLeft%7Delse%20if(!this.selected%26%26!this.options.itemsAlwaysDraggable.range%26%26this.dom.dragLeft)%7Bif(this.dom.dragLeft.parentNode)%7Bthis.dom.dragLeft.parentNode.removeChild(this.dom.dragLeft)%7Dthis.dom.dragLeft%3Dnull%7D%7D%3BRangeItem.prototype._repaintDragRight%3Dfunction()%7Bif((this.selected%7C%7Cthis.options.itemsAlwaysDraggable.range)%26%26this.options.editable.updateTime%26%26!this.dom.dragRight)%7Bvar%20dragRight%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3BdragRight.className%3D%5C%5C%5C%22vis-drag-right%5C%5C%5C%22%3BdragRight.dragRightItem%3Dthis%3Bthis.dom.box.appendChild(dragRight)%3Bthis.dom.dragRight%3DdragRight%7Delse%20if(!this.selected%26%26!this.options.itemsAlwaysDraggable.range%26%26this.dom.dragRight)%7Bif(this.dom.dragRight.parentNode)%7Bthis.dom.dragRight.parentNode.removeChild(this.dom.dragRight)%7Dthis.dom.dragRight%3Dnull%7D%7D%3Bmodule.exports%3DRangeItem%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_stringify%3D__webpack_require__(19)%3Bvar%20_stringify2%3D_interopRequireDefault(_stringify)%3Bvar%20_typeof2%3D__webpack_require__(6)%3Bvar%20_typeof3%3D_interopRequireDefault(_typeof2)%3Bvar%20_classCallCheck2%3D__webpack_require__(0)%3Bvar%20_classCallCheck3%3D_interopRequireDefault(_classCallCheck2)%3Bvar%20_createClass2%3D__webpack_require__(1)%3Bvar%20_createClass3%3D_interopRequireDefault(_createClass2)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20util%3D__webpack_require__(2)%3Bvar%20ColorPicker%3D__webpack_require__(179)%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3Bvar%20Configurator%3Dfunction()%7Bfunction%20Configurator(parentModule%2CdefaultContainer%2CconfigureOptions)%7Bvar%20pixelRatio%3Darguments.length%3E3%26%26arguments%5B3%5D!%3D%3Dundefined%3Farguments%5B3%5D%3A1%3B(0%2C_classCallCheck3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2CConfigurator)%3Bthis.parent%3DparentModule%3Bthis.changedOptions%3D%5B%5D%3Bthis.container%3DdefaultContainer%3Bthis.allowCreation%3Dfalse%3Bthis.options%3D%7B%7D%3Bthis.initialized%3Dfalse%3Bthis.popupCounter%3D0%3Bthis.defaultOptions%3D%7Benabled%3Afalse%2Cfilter%3Atrue%2Ccontainer%3Aundefined%2CshowButton%3Atrue%7D%3Butil.extend(this.options%2Cthis.defaultOptions)%3Bthis.configureOptions%3DconfigureOptions%3Bthis.moduleOptions%3D%7B%7D%3Bthis.domElements%3D%5B%5D%3Bthis.popupDiv%3D%7B%7D%3Bthis.popupLimit%3D5%3Bthis.popupHistory%3D%7B%7D%3Bthis.colorPicker%3Dnew%20ColorPicker(pixelRatio)%3Bthis.wrapper%3Dundefined%7D(0%2C_createClass3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(Configurator%2C%5B%7Bkey%3A%5C%5C%5C%22setOptions%5C%5C%5C%22%2Cvalue%3Afunction%20setOptions(options)%7Bif(options!%3D%3Dundefined)%7Bthis.popupHistory%3D%7B%7D%3Bthis._removePopup()%3Bvar%20enabled%3Dtrue%3Bif(typeof%20options%3D%3D%3D%5C%5C%5C%22string%5C%5C%5C%22)%7Bthis.options.filter%3Doptions%7Delse%20if(options%20instanceof%20Array)%7Bthis.options.filter%3Doptions.join()%7Delse%20if((typeof%20options%3D%3D%3D%5C%5C%5C%22undefined%5C%5C%5C%22%3F%5C%5C%5C%22undefined%5C%5C%5C%22%3A(0%2C_typeof3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(options))%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22)%7Bif(options.container!%3D%3Dundefined)%7Bthis.options.container%3Doptions.container%7Dif(options.filter!%3D%3Dundefined)%7Bthis.options.filter%3Doptions.filter%7Dif(options.showButton!%3D%3Dundefined)%7Bthis.options.showButton%3Doptions.showButton%7Dif(options.enabled!%3D%3Dundefined)%7Benabled%3Doptions.enabled%7D%7Delse%20if(typeof%20options%3D%3D%3D%5C%5C%5C%22boolean%5C%5C%5C%22)%7Bthis.options.filter%3Dtrue%3Benabled%3Doptions%7Delse%20if(typeof%20options%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22)%7Bthis.options.filter%3Doptions%3Benabled%3Dtrue%7Dif(this.options.filter%3D%3D%3Dfalse)%7Benabled%3Dfalse%7Dthis.options.enabled%3Denabled%7Dthis._clean()%7D%7D%2C%7Bkey%3A%5C%5C%5C%22setModuleOptions%5C%5C%5C%22%2Cvalue%3Afunction%20setModuleOptions(moduleOptions)%7Bthis.moduleOptions%3DmoduleOptions%3Bif(this.options.enabled%3D%3D%3Dtrue)%7Bthis._clean()%3Bif(this.options.container!%3D%3Dundefined)%7Bthis.container%3Dthis.options.container%7Dthis._create()%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_create%5C%5C%5C%22%2Cvalue%3Afunction%20_create()%7Bvar%20_this%3Dthis%3Bthis._clean()%3Bthis.changedOptions%3D%5B%5D%3Bvar%20filter%3Dthis.options.filter%3Bvar%20counter%3D0%3Bvar%20show%3Dfalse%3Bfor(var%20option%20in%20this.configureOptions)%7Bif(this.configureOptions.hasOwnProperty(option))%7Bthis.allowCreation%3Dfalse%3Bshow%3Dfalse%3Bif(typeof%20filter%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22)%7Bshow%3Dfilter(option%2C%5B%5D)%3Bshow%3Dshow%7C%7Cthis._handleObject(this.configureOptions%5Boption%5D%2C%5Boption%5D%2Ctrue)%7Delse%20if(filter%3D%3D%3Dtrue%7C%7Cfilter.indexOf(option)!%3D%3D-1)%7Bshow%3Dtrue%7Dif(show!%3D%3Dfalse)%7Bthis.allowCreation%3Dtrue%3Bif(counter%3E0)%7Bthis._makeItem(%5B%5D)%7Dthis._makeHeader(option)%3Bthis._handleObject(this.configureOptions%5Boption%5D%2C%5Boption%5D)%7Dcounter%2B%2B%7D%7Dif(this.options.showButton%3D%3D%3Dtrue)%7Bvar%20generateButton%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3BgenerateButton.className%3D%5C%5C%5C%22vis-configuration%20vis-config-button%5C%5C%5C%22%3BgenerateButton.innerHTML%3D%5C%5C%5C%22generate%20options%5C%5C%5C%22%3BgenerateButton.onclick%3Dfunction()%7B_this._printOptions()%7D%3BgenerateButton.onmouseover%3Dfunction()%7BgenerateButton.className%3D%5C%5C%5C%22vis-configuration%20vis-config-button%20hover%5C%5C%5C%22%7D%3BgenerateButton.onmouseout%3Dfunction()%7BgenerateButton.className%3D%5C%5C%5C%22vis-configuration%20vis-config-button%5C%5C%5C%22%7D%3Bthis.optionsContainer%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bthis.optionsContainer.className%3D%5C%5C%5C%22vis-configuration%20vis-config-option-container%5C%5C%5C%22%3Bthis.domElements.push(this.optionsContainer)%3Bthis.domElements.push(generateButton)%7Dthis._push()%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_push%5C%5C%5C%22%2Cvalue%3Afunction%20_push()%7Bthis.wrapper%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bthis.wrapper.className%3D%5C%5C%5C%22vis-configuration-wrapper%5C%5C%5C%22%3Bthis.container.appendChild(this.wrapper)%3Bfor(var%20i%3D0%3Bi%3Cthis.domElements.length%3Bi%2B%2B)%7Bthis.wrapper.appendChild(this.domElements%5Bi%5D)%7Dthis._showPopupIfNeeded()%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_clean%5C%5C%5C%22%2Cvalue%3Afunction%20_clean()%7Bfor(var%20i%3D0%3Bi%3Cthis.domElements.length%3Bi%2B%2B)%7Bthis.wrapper.removeChild(this.domElements%5Bi%5D)%7Dif(this.wrapper!%3D%3Dundefined)%7Bthis.container.removeChild(this.wrapper)%3Bthis.wrapper%3Dundefined%7Dthis.domElements%3D%5B%5D%3Bthis._removePopup()%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_getValue%5C%5C%5C%22%2Cvalue%3Afunction%20_getValue(path)%7Bvar%20base%3Dthis.moduleOptions%3Bfor(var%20i%3D0%3Bi%3Cpath.length%3Bi%2B%2B)%7Bif(base%5Bpath%5Bi%5D%5D!%3D%3Dundefined)%7Bbase%3Dbase%5Bpath%5Bi%5D%5D%7Delse%7Bbase%3Dundefined%3Bbreak%7D%7Dreturn%20base%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_makeItem%5C%5C%5C%22%2Cvalue%3Afunction%20_makeItem(path)%7Bif(this.allowCreation%3D%3D%3Dtrue)%7Bvar%20item%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bitem.className%3D%5C%5C%5C%22vis-configuration%20vis-config-item%20vis-config-s%5C%5C%5C%22%2Bpath.length%3Bfor(var%20_len%3Darguments.length%2CdomElements%3DArray(_len%3E1%3F_len-1%3A0)%2C_key%3D1%3B_key%3C_len%3B_key%2B%2B)%7BdomElements%5B_key-1%5D%3Darguments%5B_key%5D%7DdomElements.forEach(function(element)%7Bitem.appendChild(element)%7D)%3Bthis.domElements.push(item)%3Breturn%20this.domElements.length%7Dreturn%200%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_makeHeader%5C%5C%5C%22%2Cvalue%3Afunction%20_makeHeader(name)%7Bvar%20div%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bdiv.className%3D%5C%5C%5C%22vis-configuration%20vis-config-header%5C%5C%5C%22%3Bdiv.innerHTML%3Dname%3Bthis._makeItem(%5B%5D%2Cdiv)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_makeLabel%5C%5C%5C%22%2Cvalue%3Afunction%20_makeLabel(name%2Cpath)%7Bvar%20objectLabel%3Darguments.length%3E2%26%26arguments%5B2%5D!%3D%3Dundefined%3Farguments%5B2%5D%3Afalse%3Bvar%20div%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bdiv.className%3D%5C%5C%5C%22vis-configuration%20vis-config-label%20vis-config-s%5C%5C%5C%22%2Bpath.length%3Bif(objectLabel%3D%3D%3Dtrue)%7Bdiv.innerHTML%3D%5C%5C%5C%22%3Ci%3E%3Cb%3E%5C%5C%5C%22%2Bname%2B%5C%5C%5C%22%3A%3C%2Fb%3E%3C%2Fi%3E%5C%5C%5C%22%7Delse%7Bdiv.innerHTML%3Dname%2B%5C%5C%5C%22%3A%5C%5C%5C%22%7Dreturn%20div%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_makeDropdown%5C%5C%5C%22%2Cvalue%3Afunction%20_makeDropdown(arr%2Cvalue%2Cpath)%7Bvar%20select%3Ddocument.createElement(%5C%5C%5C%22select%5C%5C%5C%22)%3Bselect.className%3D%5C%5C%5C%22vis-configuration%20vis-config-select%5C%5C%5C%22%3Bvar%20selectedValue%3D0%3Bif(value!%3D%3Dundefined)%7Bif(arr.indexOf(value)!%3D%3D-1)%7BselectedValue%3Darr.indexOf(value)%7D%7Dfor(var%20i%3D0%3Bi%3Carr.length%3Bi%2B%2B)%7Bvar%20option%3Ddocument.createElement(%5C%5C%5C%22option%5C%5C%5C%22)%3Boption.value%3Darr%5Bi%5D%3Bif(i%3D%3D%3DselectedValue)%7Boption.selected%3D%5C%5C%5C%22selected%5C%5C%5C%22%7Doption.innerHTML%3Darr%5Bi%5D%3Bselect.appendChild(option)%7Dvar%20me%3Dthis%3Bselect.onchange%3Dfunction()%7Bme._update(this.value%2Cpath)%7D%3Bvar%20label%3Dthis._makeLabel(path%5Bpath.length-1%5D%2Cpath)%3Bthis._makeItem(path%2Clabel%2Cselect)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_makeRange%5C%5C%5C%22%2Cvalue%3Afunction%20_makeRange(arr%2Cvalue%2Cpath)%7Bvar%20defaultValue%3Darr%5B0%5D%3Bvar%20min%3Darr%5B1%5D%3Bvar%20max%3Darr%5B2%5D%3Bvar%20step%3Darr%5B3%5D%3Bvar%20range%3Ddocument.createElement(%5C%5C%5C%22input%5C%5C%5C%22)%3Brange.className%3D%5C%5C%5C%22vis-configuration%20vis-config-range%5C%5C%5C%22%3Btry%7Brange.type%3D%5C%5C%5C%22range%5C%5C%5C%22%3Brange.min%3Dmin%3Brange.max%3Dmax%7Dcatch(err)%7B%7Drange.step%3Dstep%3Bvar%20popupString%3D%5C%5C%5C%22%5C%5C%5C%22%3Bvar%20popupValue%3D0%3Bif(value!%3D%3Dundefined)%7Bvar%20factor%3D1.2%3Bif(value%3C0%26%26value*factor%3Cmin)%7Brange.min%3DMath.ceil(value*factor)%3BpopupValue%3Drange.min%3BpopupString%3D%5C%5C%5C%22range%20increased%5C%5C%5C%22%7Delse%20if(value%2Ffactor%3Cmin)%7Brange.min%3DMath.ceil(value%2Ffactor)%3BpopupValue%3Drange.min%3BpopupString%3D%5C%5C%5C%22range%20increased%5C%5C%5C%22%7Dif(value*factor%3Emax%26%26max!%3D%3D1)%7Brange.max%3DMath.ceil(value*factor)%3BpopupValue%3Drange.max%3BpopupString%3D%5C%5C%5C%22range%20increased%5C%5C%5C%22%7Drange.value%3Dvalue%7Delse%7Brange.value%3DdefaultValue%7Dvar%20input%3Ddocument.createElement(%5C%5C%5C%22input%5C%5C%5C%22)%3Binput.className%3D%5C%5C%5C%22vis-configuration%20vis-config-rangeinput%5C%5C%5C%22%3Binput.value%3Drange.value%3Bvar%20me%3Dthis%3Brange.onchange%3Dfunction()%7Binput.value%3Dthis.value%3Bme._update(Number(this.value)%2Cpath)%7D%3Brange.oninput%3Dfunction()%7Binput.value%3Dthis.value%7D%3Bvar%20label%3Dthis._makeLabel(path%5Bpath.length-1%5D%2Cpath)%3Bvar%20itemIndex%3Dthis._makeItem(path%2Clabel%2Crange%2Cinput)%3Bif(popupString!%3D%3D%5C%5C%5C%22%5C%5C%5C%22%26%26this.popupHistory%5BitemIndex%5D!%3D%3DpopupValue)%7Bthis.popupHistory%5BitemIndex%5D%3DpopupValue%3Bthis._setupPopup(popupString%2CitemIndex)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_setupPopup%5C%5C%5C%22%2Cvalue%3Afunction%20_setupPopup(string%2Cindex)%7Bvar%20_this2%3Dthis%3Bif(this.initialized%3D%3D%3Dtrue%26%26this.allowCreation%3D%3D%3Dtrue%26%26this.popupCounter%3Cthis.popupLimit)%7Bvar%20div%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bdiv.id%3D%5C%5C%5C%22vis-configuration-popup%5C%5C%5C%22%3Bdiv.className%3D%5C%5C%5C%22vis-configuration-popup%5C%5C%5C%22%3Bdiv.innerHTML%3Dstring%3Bdiv.onclick%3Dfunction()%7B_this2._removePopup()%7D%3Bthis.popupCounter%2B%3D1%3Bthis.popupDiv%3D%7Bhtml%3Adiv%2Cindex%3Aindex%7D%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_removePopup%5C%5C%5C%22%2Cvalue%3Afunction%20_removePopup()%7Bif(this.popupDiv.html!%3D%3Dundefined)%7Bthis.popupDiv.html.parentNode.removeChild(this.popupDiv.html)%3BclearTimeout(this.popupDiv.hideTimeout)%3BclearTimeout(this.popupDiv.deleteTimeout)%3Bthis.popupDiv%3D%7B%7D%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_showPopupIfNeeded%5C%5C%5C%22%2Cvalue%3Afunction%20_showPopupIfNeeded()%7Bvar%20_this3%3Dthis%3Bif(this.popupDiv.html!%3D%3Dundefined)%7Bvar%20correspondingElement%3Dthis.domElements%5Bthis.popupDiv.index%5D%3Bvar%20rect%3DcorrespondingElement.getBoundingClientRect()%3Bthis.popupDiv.html.style.left%3Drect.left%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bthis.popupDiv.html.style.top%3Drect.top-30%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bdocument.body.appendChild(this.popupDiv.html)%3Bthis.popupDiv.hideTimeout%3DsetTimeout(function()%7B_this3.popupDiv.html.style.opacity%3D0%7D%2C1500)%3Bthis.popupDiv.deleteTimeout%3DsetTimeout(function()%7B_this3._removePopup()%7D%2C1800)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_makeCheckbox%5C%5C%5C%22%2Cvalue%3Afunction%20_makeCheckbox(defaultValue%2Cvalue%2Cpath)%7Bvar%20checkbox%3Ddocument.createElement(%5C%5C%5C%22input%5C%5C%5C%22)%3Bcheckbox.type%3D%5C%5C%5C%22checkbox%5C%5C%5C%22%3Bcheckbox.className%3D%5C%5C%5C%22vis-configuration%20vis-config-checkbox%5C%5C%5C%22%3Bcheckbox.checked%3DdefaultValue%3Bif(value!%3D%3Dundefined)%7Bcheckbox.checked%3Dvalue%3Bif(value!%3D%3DdefaultValue)%7Bif((typeof%20defaultValue%3D%3D%3D%5C%5C%5C%22undefined%5C%5C%5C%22%3F%5C%5C%5C%22undefined%5C%5C%5C%22%3A(0%2C_typeof3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(defaultValue))%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22)%7Bif(value!%3D%3DdefaultValue.enabled)%7Bthis.changedOptions.push(%7Bpath%3Apath%2Cvalue%3Avalue%7D)%7D%7Delse%7Bthis.changedOptions.push(%7Bpath%3Apath%2Cvalue%3Avalue%7D)%7D%7D%7Dvar%20me%3Dthis%3Bcheckbox.onchange%3Dfunction()%7Bme._update(this.checked%2Cpath)%7D%3Bvar%20label%3Dthis._makeLabel(path%5Bpath.length-1%5D%2Cpath)%3Bthis._makeItem(path%2Clabel%2Ccheckbox)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_makeTextInput%5C%5C%5C%22%2Cvalue%3Afunction%20_makeTextInput(defaultValue%2Cvalue%2Cpath)%7Bvar%20checkbox%3Ddocument.createElement(%5C%5C%5C%22input%5C%5C%5C%22)%3Bcheckbox.type%3D%5C%5C%5C%22text%5C%5C%5C%22%3Bcheckbox.className%3D%5C%5C%5C%22vis-configuration%20vis-config-text%5C%5C%5C%22%3Bcheckbox.value%3Dvalue%3Bif(value!%3D%3DdefaultValue)%7Bthis.changedOptions.push(%7Bpath%3Apath%2Cvalue%3Avalue%7D)%7Dvar%20me%3Dthis%3Bcheckbox.onchange%3Dfunction()%7Bme._update(this.value%2Cpath)%7D%3Bvar%20label%3Dthis._makeLabel(path%5Bpath.length-1%5D%2Cpath)%3Bthis._makeItem(path%2Clabel%2Ccheckbox)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_makeColorField%5C%5C%5C%22%2Cvalue%3Afunction%20_makeColorField(arr%2Cvalue%2Cpath)%7Bvar%20_this4%3Dthis%3Bvar%20defaultColor%3Darr%5B1%5D%3Bvar%20div%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bvalue%3Dvalue%3D%3D%3Dundefined%3FdefaultColor%3Avalue%3Bif(value!%3D%3D%5C%5C%5C%22none%5C%5C%5C%22)%7Bdiv.className%3D%5C%5C%5C%22vis-configuration%20vis-config-colorBlock%5C%5C%5C%22%3Bdiv.style.backgroundColor%3Dvalue%7Delse%7Bdiv.className%3D%5C%5C%5C%22vis-configuration%20vis-config-colorBlock%20none%5C%5C%5C%22%7Dvalue%3Dvalue%3D%3D%3Dundefined%3FdefaultColor%3Avalue%3Bdiv.onclick%3Dfunction()%7B_this4._showColorPicker(value%2Cdiv%2Cpath)%7D%3Bvar%20label%3Dthis._makeLabel(path%5Bpath.length-1%5D%2Cpath)%3Bthis._makeItem(path%2Clabel%2Cdiv)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_showColorPicker%5C%5C%5C%22%2Cvalue%3Afunction%20_showColorPicker(value%2Cdiv%2Cpath)%7Bvar%20_this5%3Dthis%3Bdiv.onclick%3Dfunction()%7B%7D%3Bthis.colorPicker.insertTo(div)%3Bthis.colorPicker.show()%3Bthis.colorPicker.setColor(value)%3Bthis.colorPicker.setUpdateCallback(function(color)%7B%5C%5Cnvar%20colorString%3D%5C%5C%5C%22rgba(%5C%5C%5C%22%2Bcolor.r%2B%5C%5C%5C%22%2C%5C%5C%5C%22%2Bcolor.g%2B%5C%5C%5C%22%2C%5C%5C%5C%22%2Bcolor.b%2B%5C%5C%5C%22%2C%5C%5C%5C%22%2Bcolor.a%2B%5C%5C%5C%22)%5C%5C%5C%22%3Bdiv.style.backgroundColor%3DcolorString%3B_this5._update(colorString%2Cpath)%7D)%3Bthis.colorPicker.setCloseCallback(function()%7Bdiv.onclick%3Dfunction()%7B_this5._showColorPicker(value%2Cdiv%2Cpath)%7D%7D)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_handleObject%5C%5C%5C%22%2Cvalue%3Afunction%20_handleObject(obj)%7Bvar%20path%3Darguments.length%3E1%26%26arguments%5B1%5D!%3D%3Dundefined%3Farguments%5B1%5D%3A%5B%5D%3Bvar%20checkOnly%3Darguments.length%3E2%26%26arguments%5B2%5D!%3D%3Dundefined%3Farguments%5B2%5D%3Afalse%3Bvar%20show%3Dfalse%3Bvar%20filter%3Dthis.options.filter%3Bvar%20visibleInSet%3Dfalse%3Bfor(var%20subObj%20in%20obj)%7Bif(obj.hasOwnProperty(subObj))%7Bshow%3Dtrue%3Bvar%20item%3Dobj%5BsubObj%5D%3Bvar%20newPath%3Dutil.copyAndExtendArray(path%2CsubObj)%3Bif(typeof%20filter%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22)%7Bshow%3Dfilter(subObj%2Cpath)%3Bif(show%3D%3D%3Dfalse)%7Bif(!(item%20instanceof%20Array)%26%26typeof%20item!%3D%3D%5C%5C%5C%22string%5C%5C%5C%22%26%26typeof%20item!%3D%3D%5C%5C%5C%22boolean%5C%5C%5C%22%26%26item%20instanceof%20Object)%7Bthis.allowCreation%3Dfalse%3Bshow%3Dthis._handleObject(item%2CnewPath%2Ctrue)%3Bthis.allowCreation%3DcheckOnly%3D%3D%3Dfalse%7D%7D%7Dif(show!%3D%3Dfalse)%7BvisibleInSet%3Dtrue%3Bvar%20value%3Dthis._getValue(newPath)%3Bif(item%20instanceof%20Array)%7Bthis._handleArray(item%2Cvalue%2CnewPath)%7Delse%20if(typeof%20item%3D%3D%3D%5C%5C%5C%22string%5C%5C%5C%22)%7Bthis._makeTextInput(item%2Cvalue%2CnewPath)%7Delse%20if(typeof%20item%3D%3D%3D%5C%5C%5C%22boolean%5C%5C%5C%22)%7Bthis._makeCheckbox(item%2Cvalue%2CnewPath)%7Delse%20if(item%20instanceof%20Object)%7Bvar%20draw%3Dtrue%3Bif(path.indexOf(%5C%5C%5C%22physics%5C%5C%5C%22)!%3D%3D-1)%7Bif(this.moduleOptions.physics.solver!%3D%3DsubObj)%7Bdraw%3Dfalse%7D%7Dif(draw%3D%3D%3Dtrue)%7Bif(item.enabled!%3D%3Dundefined)%7Bvar%20enabledPath%3Dutil.copyAndExtendArray(newPath%2C%5C%5C%5C%22enabled%5C%5C%5C%22)%3Bvar%20enabledValue%3Dthis._getValue(enabledPath)%3Bif(enabledValue%3D%3D%3Dtrue)%7Bvar%20label%3Dthis._makeLabel(subObj%2CnewPath%2Ctrue)%3Bthis._makeItem(newPath%2Clabel)%3BvisibleInSet%3Dthis._handleObject(item%2CnewPath)%7C%7CvisibleInSet%7Delse%7Bthis._makeCheckbox(item%2CenabledValue%2CnewPath)%7D%7Delse%7Bvar%20_label%3Dthis._makeLabel(subObj%2CnewPath%2Ctrue)%3Bthis._makeItem(newPath%2C_label)%3BvisibleInSet%3Dthis._handleObject(item%2CnewPath)%7C%7CvisibleInSet%7D%7D%7Delse%7Bconsole.error(%5C%5C%5C%22dont%20know%20how%20to%20handle%5C%5C%5C%22%2Citem%2CsubObj%2CnewPath)%7D%7D%7D%7Dreturn%20visibleInSet%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_handleArray%5C%5C%5C%22%2Cvalue%3Afunction%20_handleArray(arr%2Cvalue%2Cpath)%7Bif(typeof%20arr%5B0%5D%3D%3D%3D%5C%5C%5C%22string%5C%5C%5C%22%26%26arr%5B0%5D%3D%3D%3D%5C%5C%5C%22color%5C%5C%5C%22)%7Bthis._makeColorField(arr%2Cvalue%2Cpath)%3Bif(arr%5B1%5D!%3D%3Dvalue)%7Bthis.changedOptions.push(%7Bpath%3Apath%2Cvalue%3Avalue%7D)%7D%7Delse%20if(typeof%20arr%5B0%5D%3D%3D%3D%5C%5C%5C%22string%5C%5C%5C%22)%7Bthis._makeDropdown(arr%2Cvalue%2Cpath)%3Bif(arr%5B0%5D!%3D%3Dvalue)%7Bthis.changedOptions.push(%7Bpath%3Apath%2Cvalue%3Avalue%7D)%7D%7Delse%20if(typeof%20arr%5B0%5D%3D%3D%3D%5C%5C%5C%22number%5C%5C%5C%22)%7Bthis._makeRange(arr%2Cvalue%2Cpath)%3Bif(arr%5B0%5D!%3D%3Dvalue)%7Bthis.changedOptions.push(%7Bpath%3Apath%2Cvalue%3ANumber(value)%7D)%7D%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_update%5C%5C%5C%22%2Cvalue%3Afunction%20_update(value%2Cpath)%7Bvar%20options%3Dthis._constructOptions(value%2Cpath)%3Bif(this.parent.body%26%26this.parent.body.emitter%26%26this.parent.body.emitter.emit)%7Bthis.parent.body.emitter.emit(%5C%5C%5C%22configChange%5C%5C%5C%22%2Coptions)%7Dthis.initialized%3Dtrue%3Bthis.parent.setOptions(options)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_constructOptions%5C%5C%5C%22%2Cvalue%3Afunction%20_constructOptions(value%2Cpath)%7Bvar%20optionsObj%3Darguments.length%3E2%26%26arguments%5B2%5D!%3D%3Dundefined%3Farguments%5B2%5D%3A%7B%7D%3Bvar%20pointer%3DoptionsObj%3Bvalue%3Dvalue%3D%3D%3D%5C%5C%5C%22true%5C%5C%5C%22%3Ftrue%3Avalue%3Bvalue%3Dvalue%3D%3D%3D%5C%5C%5C%22false%5C%5C%5C%22%3Ffalse%3Avalue%3Bfor(var%20i%3D0%3Bi%3Cpath.length%3Bi%2B%2B)%7Bif(path%5Bi%5D!%3D%3D%5C%5C%5C%22global%5C%5C%5C%22)%7Bif(pointer%5Bpath%5Bi%5D%5D%3D%3D%3Dundefined)%7Bpointer%5Bpath%5Bi%5D%5D%3D%7B%7D%7Dif(i!%3D%3Dpath.length-1)%7Bpointer%3Dpointer%5Bpath%5Bi%5D%5D%7Delse%7Bpointer%5Bpath%5Bi%5D%5D%3Dvalue%7D%7D%7Dreturn%20optionsObj%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_printOptions%5C%5C%5C%22%2Cvalue%3Afunction%20_printOptions()%7Bvar%20options%3Dthis.getOptions()%3Bthis.optionsContainer.innerHTML%3D%5C%5C%5C%22%3Cpre%3Evar%20options%20%3D%20%5C%5C%5C%22%2B(0%2C_stringify2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(options%2Cnull%2C2)%2B%5C%5C%5C%22%3C%2Fpre%3E%5C%5C%5C%22%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getOptions%5C%5C%5C%22%2Cvalue%3Afunction%20getOptions()%7Bvar%20options%3D%7B%7D%3Bfor(var%20i%3D0%3Bi%3Cthis.changedOptions.length%3Bi%2B%2B)%7Bthis._constructOptions(this.changedOptions%5Bi%5D.value%2Cthis.changedOptions%5Bi%5D.path%2Coptions)%7Dreturn%20options%7D%7D%5D)%3Breturn%20Configurator%7D()%3Bexports%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3DConfigurator%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bvar%20_typeof2%3D__webpack_require__(6)%3Bvar%20_typeof3%3D_interopRequireDefault(_typeof2)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20DOMutil%3D__webpack_require__(14)%3Bfunction%20Points(groupId%2Coptions)%7B%7DPoints.draw%3Dfunction(dataset%2Cgroup%2Cframework%2Coffset)%7Boffset%3Doffset%7C%7C0%3Bvar%20callback%3DgetCallback(framework%2Cgroup)%3Bfor(var%20i%3D0%3Bi%3Cdataset.length%3Bi%2B%2B)%7Bif(!callback)%7BDOMutil.drawPoint(dataset%5Bi%5D.screen_x%2Boffset%2Cdataset%5Bi%5D.screen_y%2CgetGroupTemplate(group)%2Cframework.svgElements%2Cframework.svg%2Cdataset%5Bi%5D.label)%7Delse%7Bvar%20callbackResult%3Dcallback(dataset%5Bi%5D%2Cgroup)%3Bif(callbackResult%3D%3D%3Dtrue%7C%7C(typeof%20callbackResult%3D%3D%3D%5C%5C%5C%22undefined%5C%5C%5C%22%3F%5C%5C%5C%22undefined%5C%5C%5C%22%3A(0%2C_typeof3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(callbackResult))%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22)%7BDOMutil.drawPoint(dataset%5Bi%5D.screen_x%2Boffset%2Cdataset%5Bi%5D.screen_y%2CgetGroupTemplate(group%2CcallbackResult)%2Cframework.svgElements%2Cframework.svg%2Cdataset%5Bi%5D.label)%7D%7D%7D%7D%3BPoints.drawIcon%3Dfunction(group%2Cx%2Cy%2CiconWidth%2CiconHeight%2Cframework)%7Bvar%20fillHeight%3DiconHeight*.5%3Bvar%20outline%3DDOMutil.getSVGElement(%5C%5C%5C%22rect%5C%5C%5C%22%2Cframework.svgElements%2Cframework.svg)%3Boutline.setAttributeNS(null%2C%5C%5C%5C%22x%5C%5C%5C%22%2Cx)%3Boutline.setAttributeNS(null%2C%5C%5C%5C%22y%5C%5C%5C%22%2Cy-fillHeight)%3Boutline.setAttributeNS(null%2C%5C%5C%5C%22width%5C%5C%5C%22%2CiconWidth)%3Boutline.setAttributeNS(null%2C%5C%5C%5C%22height%5C%5C%5C%22%2C2*fillHeight)%3Boutline.setAttributeNS(null%2C%5C%5C%5C%22class%5C%5C%5C%22%2C%5C%5C%5C%22vis-outline%5C%5C%5C%22)%3BDOMutil.drawPoint(x%2B.5*iconWidth%2Cy%2CgetGroupTemplate(group)%2Cframework.svgElements%2Cframework.svg)%7D%3Bfunction%20getGroupTemplate(group%2CcallbackResult)%7BcallbackResult%3Dtypeof%20callbackResult%3D%3D%3D%5C%5C%5C%22undefined%5C%5C%5C%22%3F%7B%7D%3AcallbackResult%3Breturn%7Bstyle%3AcallbackResult.style%7C%7Cgroup.options.drawPoints.style%2Cstyles%3AcallbackResult.styles%7C%7Cgroup.options.drawPoints.styles%2Csize%3AcallbackResult.size%7C%7Cgroup.options.drawPoints.size%2CclassName%3AcallbackResult.className%7C%7Cgroup.className%7D%7Dfunction%20getCallback(framework%2Cgroup)%7Bvar%20callback%3Dundefined%3Bif(framework.options%26%26framework.options.drawPoints%26%26framework.options.drawPoints.onRender%26%26typeof%20framework.options.drawPoints.onRender%3D%3D%5C%5C%5C%22function%5C%5C%5C%22)%7Bcallback%3Dframework.options.drawPoints.onRender%7Dif(group.group.options%26%26group.group.options.drawPoints%26%26group.group.options.drawPoints.onRender%26%26typeof%20group.group.options.drawPoints.onRender%3D%3D%5C%5C%5C%22function%5C%5C%5C%22)%7Bcallback%3Dgroup.group.options.drawPoints.onRender%7Dreturn%20callback%7Dmodule.exports%3DPoints%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_getPrototypeOf%3D__webpack_require__(3)%3Bvar%20_getPrototypeOf2%3D_interopRequireDefault(_getPrototypeOf)%3Bvar%20_classCallCheck2%3D__webpack_require__(0)%3Bvar%20_classCallCheck3%3D_interopRequireDefault(_classCallCheck2)%3Bvar%20_createClass2%3D__webpack_require__(1)%3Bvar%20_createClass3%3D_interopRequireDefault(_createClass2)%3Bvar%20_possibleConstructorReturn2%3D__webpack_require__(4)%3Bvar%20_possibleConstructorReturn3%3D_interopRequireDefault(_possibleConstructorReturn2)%3Bvar%20_inherits2%3D__webpack_require__(5)%3Bvar%20_inherits3%3D_interopRequireDefault(_inherits2)%3Bvar%20_NodeBase2%3D__webpack_require__(23)%3Bvar%20_NodeBase3%3D_interopRequireDefault(_NodeBase2)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20CircleImageBase%3Dfunction(_NodeBase)%7B(0%2C_inherits3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(CircleImageBase%2C_NodeBase)%3Bfunction%20CircleImageBase(options%2Cbody%2ClabelModule)%7B(0%2C_classCallCheck3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2CCircleImageBase)%3Bvar%20_this%3D(0%2C_possibleConstructorReturn3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2C(CircleImageBase.__proto__%7C%7C(0%2C_getPrototypeOf2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(CircleImageBase)).call(this%2Coptions%2Cbody%2ClabelModule))%3B_this.labelOffset%3D0%3B_this.selected%3Dfalse%3Breturn%20_this%7D(0%2C_createClass3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(CircleImageBase%2C%5B%7Bkey%3A%5C%5C%5C%22setOptions%5C%5C%5C%22%2Cvalue%3Afunction%20setOptions(options%2CimageObj%2CimageObjAlt)%7Bthis.options%3Doptions%3Bif(!(imageObj%3D%3D%3Dundefined%26%26imageObjAlt%3D%3D%3Dundefined))%7Bthis.setImages(imageObj%2CimageObjAlt)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22setImages%5C%5C%5C%22%2Cvalue%3Afunction%20setImages(imageObj%2CimageObjAlt)%7Bif(imageObjAlt%26%26this.selected)%7Bthis.imageObj%3DimageObjAlt%3Bthis.imageObjAlt%3DimageObj%7Delse%7Bthis.imageObj%3DimageObj%3Bthis.imageObjAlt%3DimageObjAlt%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22switchImages%5C%5C%5C%22%2Cvalue%3Afunction%20switchImages(selected)%7Bvar%20selection_changed%3Dselected%26%26!this.selected%7C%7C!selected%26%26this.selected%3Bthis.selected%3Dselected%3Bif(this.imageObjAlt!%3D%3Dundefined%26%26selection_changed)%7Bvar%20imageTmp%3Dthis.imageObj%3Bthis.imageObj%3Dthis.imageObjAlt%3Bthis.imageObjAlt%3DimageTmp%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_resizeImage%5C%5C%5C%22%2Cvalue%3Afunction%20_resizeImage()%7Bvar%20width%2Cheight%3Bif(this.options.shapeProperties.useImageSize%3D%3D%3Dfalse)%7Bvar%20ratio_width%3D1%3Bvar%20ratio_height%3D1%3Bif(this.imageObj.width%26%26this.imageObj.height)%7Bif(this.imageObj.width%3Ethis.imageObj.height)%7Bratio_width%3Dthis.imageObj.width%2Fthis.imageObj.height%7Delse%7Bratio_height%3Dthis.imageObj.height%2Fthis.imageObj.width%7D%7Dwidth%3Dthis.options.size*2*ratio_width%3Bheight%3Dthis.options.size*2*ratio_height%7Delse%7Bwidth%3Dthis.imageObj.width%3Bheight%3Dthis.imageObj.height%7Dthis.width%3Dwidth%3Bthis.height%3Dheight%3Bthis.radius%3D.5*this.width%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_drawRawCircle%5C%5C%5C%22%2Cvalue%3Afunction%20_drawRawCircle(ctx%2Cx%2Cy%2Cvalues)%7Bthis.initContextForDraw(ctx%2Cvalues)%3Bctx.circle(x%2Cy%2Cvalues.size)%3Bthis.performFill(ctx%2Cvalues)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_drawImageAtPosition%5C%5C%5C%22%2Cvalue%3Afunction%20_drawImageAtPosition(ctx%2Cvalues)%7Bif(this.imageObj.width!%3D0)%7Bctx.globalAlpha%3D1%3Bthis.enableShadow(ctx%2Cvalues)%3Bvar%20factor%3D1%3Bif(this.options.shapeProperties.interpolation%3D%3D%3Dtrue)%7Bfactor%3Dthis.imageObj.width%2Fthis.width%2Fthis.body.view.scale%7Dthis.imageObj.drawImageAtPosition(ctx%2Cfactor%2Cthis.left%2Cthis.top%2Cthis.width%2Cthis.height)%3Bthis.disableShadow(ctx%2Cvalues)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_drawImageLabel%5C%5C%5C%22%2Cvalue%3Afunction%20_drawImageLabel(ctx%2Cx%2Cy%2Cselected%2Chover)%7Bvar%20yLabel%3Bvar%20offset%3D0%3Bif(this.height!%3D%3Dundefined)%7Boffset%3Dthis.height*.5%3Bvar%20labelDimensions%3Dthis.labelModule.getTextSize(ctx%2Cselected%2Chover)%3Bif(labelDimensions.lineCount%3E%3D1)%7Boffset%2B%3DlabelDimensions.height%2F2%7D%7DyLabel%3Dy%2Boffset%3Bif(this.options.label)%7Bthis.labelOffset%3Doffset%7Dthis.labelModule.draw(ctx%2Cx%2CyLabel%2Cselected%2Chover%2C%5C%5C%5C%22hanging%5C%5C%5C%22)%7D%7D%5D)%3Breturn%20CircleImageBase%7D(_NodeBase3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)%3Bexports%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3DCircleImageBase%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_stringify%3D__webpack_require__(19)%3Bvar%20_stringify2%3D_interopRequireDefault(_stringify)%3Bvar%20_typeof2%3D__webpack_require__(6)%3Bvar%20_typeof3%3D_interopRequireDefault(_typeof2)%3Bvar%20_create%3D__webpack_require__(29)%3Bvar%20_create2%3D_interopRequireDefault(_create)%3Bvar%20_classCallCheck2%3D__webpack_require__(0)%3Bvar%20_classCallCheck3%3D_interopRequireDefault(_classCallCheck2)%3Bvar%20_createClass2%3D__webpack_require__(1)%3Bvar%20_createClass3%3D_interopRequireDefault(_createClass2)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20util%3D__webpack_require__(2)%3Bvar%20Label%3D__webpack_require__(117)%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3Bvar%20ComponentUtil%3D__webpack_require__(48)%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3Bvar%20CubicBezierEdge%3D__webpack_require__(215)%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3Bvar%20BezierEdgeDynamic%3D__webpack_require__(217)%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3Bvar%20BezierEdgeStatic%3D__webpack_require__(218)%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3Bvar%20StraightEdge%3D__webpack_require__(219)%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3Bvar%20Edge%3Dfunction()%7Bfunction%20Edge(options%2Cbody%2CglobalOptions%2CdefaultOptions)%7B(0%2C_classCallCheck3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2CEdge)%3Bif(body%3D%3D%3Dundefined)%7Bthrow%20new%20Error(%5C%5C%5C%22No%20body%20provided%5C%5C%5C%22)%7Dthis.options%3Dutil.bridgeObject(globalOptions)%3Bthis.globalOptions%3DglobalOptions%3Bthis.defaultOptions%3DdefaultOptions%3Bthis.body%3Dbody%3Bthis.id%3Dundefined%3Bthis.fromId%3Dundefined%3Bthis.toId%3Dundefined%3Bthis.selected%3Dfalse%3Bthis.hover%3Dfalse%3Bthis.labelDirty%3Dtrue%3Bthis.baseWidth%3Dthis.options.width%3Bthis.baseFontSize%3Dthis.options.font.size%3Bthis.from%3Dundefined%3Bthis.to%3Dundefined%3Bthis.edgeType%3Dundefined%3Bthis.connected%3Dfalse%3Bthis.labelModule%3Dnew%20Label(this.body%2Cthis.options%2Ctrue)%3Bthis.setOptions(options)%7D(0%2C_createClass3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(Edge%2C%5B%7Bkey%3A%5C%5C%5C%22setOptions%5C%5C%5C%22%2Cvalue%3Afunction%20setOptions(options)%7Bif(!options)%7Breturn%7DEdge.parseOptions(this.options%2Coptions%2Ctrue%2Cthis.globalOptions)%3Bif(options.id!%3D%3Dundefined)%7Bthis.id%3Doptions.id%7Dif(options.from!%3D%3Dundefined)%7Bthis.fromId%3Doptions.from%7Dif(options.to!%3D%3Dundefined)%7Bthis.toId%3Doptions.to%7Dif(options.title!%3D%3Dundefined)%7Bthis.title%3Doptions.title%7Dif(options.value!%3D%3Dundefined)%7Boptions.value%3DparseFloat(options.value)%7Dvar%20pile%3D%5Boptions%2Cthis.options%2Cthis.defaultOptions%5D%3Bthis.chooser%3DComponentUtil.choosify(%5C%5C%5C%22edge%5C%5C%5C%22%2Cpile)%3Bthis.updateLabelModule(options)%3Bvar%20dataChanged%3Dthis.updateEdgeType()%3Bthis._setInteractionWidths()%3Bthis.connect()%3Bif(options.hidden!%3D%3Dundefined%7C%7Coptions.physics!%3D%3Dundefined)%7BdataChanged%3Dtrue%7Dreturn%20dataChanged%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getFormattingValues%5C%5C%5C%22%2Cvalue%3Afunction%20getFormattingValues()%7Bvar%20toArrow%3Dthis.options.arrows.to%3D%3D%3Dtrue%7C%7Cthis.options.arrows.to.enabled%3D%3D%3Dtrue%3Bvar%20fromArrow%3Dthis.options.arrows.from%3D%3D%3Dtrue%7C%7Cthis.options.arrows.from.enabled%3D%3D%3Dtrue%3Bvar%20middleArrow%3Dthis.options.arrows.middle%3D%3D%3Dtrue%7C%7Cthis.options.arrows.middle.enabled%3D%3D%3Dtrue%3Bvar%20inheritsColor%3Dthis.options.color.inherit%3Bvar%20values%3D%7BtoArrow%3AtoArrow%2CtoArrowScale%3Athis.options.arrows.to.scaleFactor%2CtoArrowType%3Athis.options.arrows.to.type%2CmiddleArrow%3AmiddleArrow%2CmiddleArrowScale%3Athis.options.arrows.middle.scaleFactor%2CmiddleArrowType%3Athis.options.arrows.middle.type%2CfromArrow%3AfromArrow%2CfromArrowScale%3Athis.options.arrows.from.scaleFactor%2CfromArrowType%3Athis.options.arrows.from.type%2CarrowStrikethrough%3Athis.options.arrowStrikethrough%2Ccolor%3AinheritsColor%3Fundefined%3Athis.options.color.color%2CinheritsColor%3AinheritsColor%2Copacity%3Athis.options.color.opacity%2Chidden%3Athis.options.hidden%2Clength%3Athis.options.length%2Cshadow%3Athis.options.shadow.enabled%2CshadowColor%3Athis.options.shadow.color%2CshadowSize%3Athis.options.shadow.size%2CshadowX%3Athis.options.shadow.x%2CshadowY%3Athis.options.shadow.y%2Cdashes%3Athis.options.dashes%2Cwidth%3Athis.options.width%7D%3Bif(this.selected%7C%7Cthis.hover)%7Bif(this.chooser%3D%3D%3Dtrue)%7Bif(this.selected)%7Bvar%20selectedWidth%3Dthis.options.selectionWidth%3Bif(typeof%20selectedWidth%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22)%7Bvalues.width%3DselectedWidth(values.width)%7Delse%20if(typeof%20selectedWidth%3D%3D%3D%5C%5C%5C%22number%5C%5C%5C%22)%7Bvalues.width%2B%3DselectedWidth%7Dvalues.width%3DMath.max(values.width%2C.3%2Fthis.body.view.scale)%3Bvalues.color%3Dthis.options.color.highlight%3Bvalues.shadow%3Dthis.options.shadow.enabled%7Delse%20if(this.hover)%7Bvar%20hoverWidth%3Dthis.options.hoverWidth%3Bif(typeof%20hoverWidth%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22)%7Bvalues.width%3DhoverWidth(values.width)%7Delse%20if(typeof%20hoverWidth%3D%3D%3D%5C%5C%5C%22number%5C%5C%5C%22)%7Bvalues.width%2B%3DhoverWidth%7Dvalues.width%3DMath.max(values.width%2C.3%2Fthis.body.view.scale)%3Bvalues.color%3Dthis.options.color.hover%3Bvalues.shadow%3Dthis.options.shadow.enabled%7D%7Delse%20if(typeof%20this.chooser%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22)%7Bthis.chooser(values%2Cthis.options.id%2Cthis.selected%2Cthis.hover)%3Bif(values.color!%3D%3Dundefined)%7Bvalues.inheritsColor%3Dfalse%7Dif(values.shadow%3D%3D%3Dfalse)%7Bif(values.shadowColor!%3D%3Dthis.options.shadow.color%7C%7Cvalues.shadowSize!%3D%3Dthis.options.shadow.size%7C%7Cvalues.shadowX!%3D%3Dthis.options.shadow.x%7C%7Cvalues.shadowY!%3D%3Dthis.options.shadow.y)%7Bvalues.shadow%3Dtrue%7D%7D%7D%7Delse%7Bvalues.shadow%3Dthis.options.shadow.enabled%3Bvalues.width%3DMath.max(values.width%2C.3%2Fthis.body.view.scale)%7Dreturn%20values%7D%7D%2C%7Bkey%3A%5C%5C%5C%22updateLabelModule%5C%5C%5C%22%2Cvalue%3Afunction%20updateLabelModule(options)%7Bvar%20pile%3D%5Boptions%2Cthis.options%2Cthis.globalOptions%2Cthis.defaultOptions%5D%3Bthis.labelModule.update(this.options%2Cpile)%3Bif(this.labelModule.baseSize!%3D%3Dundefined)%7Bthis.baseFontSize%3Dthis.labelModule.baseSize%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22updateEdgeType%5C%5C%5C%22%2Cvalue%3Afunction%20updateEdgeType()%7Bvar%20smooth%3Dthis.options.smooth%3Bvar%20dataChanged%3Dfalse%3Bvar%20changeInType%3Dtrue%3Bif(this.edgeType!%3D%3Dundefined)%7Bif(this.edgeType%20instanceof%20BezierEdgeDynamic%26%26smooth.enabled%3D%3D%3Dtrue%26%26smooth.type%3D%3D%3D%5C%5C%5C%22dynamic%5C%5C%5C%22%7C%7Cthis.edgeType%20instanceof%20CubicBezierEdge%26%26smooth.enabled%3D%3D%3Dtrue%26%26smooth.type%3D%3D%3D%5C%5C%5C%22cubicBezier%5C%5C%5C%22%7C%7Cthis.edgeType%20instanceof%20BezierEdgeStatic%26%26smooth.enabled%3D%3D%3Dtrue%26%26smooth.type!%3D%3D%5C%5C%5C%22dynamic%5C%5C%5C%22%26%26smooth.type!%3D%3D%5C%5C%5C%22cubicBezier%5C%5C%5C%22%7C%7Cthis.edgeType%20instanceof%20StraightEdge%26%26smooth.type.enabled%3D%3D%3Dfalse)%7BchangeInType%3Dfalse%7Dif(changeInType%3D%3D%3Dtrue)%7BdataChanged%3Dthis.cleanup()%7D%7Dif(changeInType%3D%3D%3Dtrue)%7Bif(smooth.enabled%3D%3D%3Dtrue)%7Bif(smooth.type%3D%3D%3D%5C%5C%5C%22dynamic%5C%5C%5C%22)%7BdataChanged%3Dtrue%3Bthis.edgeType%3Dnew%20BezierEdgeDynamic(this.options%2Cthis.body%2Cthis.labelModule)%7Delse%20if(smooth.type%3D%3D%3D%5C%5C%5C%22cubicBezier%5C%5C%5C%22)%7Bthis.edgeType%3Dnew%20CubicBezierEdge(this.options%2Cthis.body%2Cthis.labelModule)%7Delse%7Bthis.edgeType%3Dnew%20BezierEdgeStatic(this.options%2Cthis.body%2Cthis.labelModule)%7D%7Delse%7Bthis.edgeType%3Dnew%20StraightEdge(this.options%2Cthis.body%2Cthis.labelModule)%7D%7Delse%7Bthis.edgeType.setOptions(this.options)%7Dreturn%20dataChanged%7D%7D%2C%7Bkey%3A%5C%5C%5C%22connect%5C%5C%5C%22%2Cvalue%3Afunction%20connect()%7Bthis.disconnect()%3Bthis.from%3Dthis.body.nodes%5Bthis.fromId%5D%7C%7Cundefined%3Bthis.to%3Dthis.body.nodes%5Bthis.toId%5D%7C%7Cundefined%3Bthis.connected%3Dthis.from!%3D%3Dundefined%26%26this.to!%3D%3Dundefined%3Bif(this.connected%3D%3D%3Dtrue)%7Bthis.from.attachEdge(this)%3Bthis.to.attachEdge(this)%7Delse%7Bif(this.from)%7Bthis.from.detachEdge(this)%7Dif(this.to)%7Bthis.to.detachEdge(this)%7D%7Dthis.edgeType.connect()%7D%7D%2C%7Bkey%3A%5C%5C%5C%22disconnect%5C%5C%5C%22%2Cvalue%3Afunction%20disconnect()%7Bif(this.from)%7Bthis.from.detachEdge(this)%3Bthis.from%3Dundefined%7Dif(this.to)%7Bthis.to.detachEdge(this)%3Bthis.to%3Dundefined%7Dthis.connected%3Dfalse%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getTitle%5C%5C%5C%22%2Cvalue%3Afunction%20getTitle()%7Breturn%20this.title%7D%7D%2C%7Bkey%3A%5C%5C%5C%22isSelected%5C%5C%5C%22%2Cvalue%3Afunction%20isSelected()%7Breturn%20this.selected%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getValue%5C%5C%5C%22%2Cvalue%3Afunction%20getValue()%7Breturn%20this.options.value%7D%7D%2C%7Bkey%3A%5C%5C%5C%22setValueRange%5C%5C%5C%22%2Cvalue%3Afunction%20setValueRange(min%2Cmax%2Ctotal)%7Bif(this.options.value!%3D%3Dundefined)%7Bvar%20scale%3Dthis.options.scaling.customScalingFunction(min%2Cmax%2Ctotal%2Cthis.options.value)%3Bvar%20widthDiff%3Dthis.options.scaling.max-this.options.scaling.min%3Bif(this.options.scaling.label.enabled%3D%3D%3Dtrue)%7Bvar%20fontDiff%3Dthis.options.scaling.label.max-this.options.scaling.label.min%3Bthis.options.font.size%3Dthis.options.scaling.label.min%2Bscale*fontDiff%7Dthis.options.width%3Dthis.options.scaling.min%2Bscale*widthDiff%7Delse%7Bthis.options.width%3Dthis.baseWidth%3Bthis.options.font.size%3Dthis.baseFontSize%7Dthis._setInteractionWidths()%3Bthis.updateLabelModule()%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_setInteractionWidths%5C%5C%5C%22%2Cvalue%3Afunction%20_setInteractionWidths()%7Bif(typeof%20this.options.hoverWidth%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22)%7Bthis.edgeType.hoverWidth%3Dthis.options.hoverWidth(this.options.width)%7Delse%7Bthis.edgeType.hoverWidth%3Dthis.options.hoverWidth%2Bthis.options.width%7Dif(typeof%20this.options.selectionWidth%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22)%7Bthis.edgeType.selectionWidth%3Dthis.options.selectionWidth(this.options.width)%7Delse%7Bthis.edgeType.selectionWidth%3Dthis.options.selectionWidth%2Bthis.options.width%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22draw%5C%5C%5C%22%2Cvalue%3Afunction%20draw(ctx)%7Bvar%20values%3Dthis.getFormattingValues()%3Bif(values.hidden)%7Breturn%7Dvar%20viaNode%3Dthis.edgeType.getViaNode()%3Bvar%20arrowData%3D%7B%7D%3Bthis.edgeType.fromPoint%3Dthis.edgeType.from%3Bthis.edgeType.toPoint%3Dthis.edgeType.to%3Bif(values.fromArrow)%7BarrowData.from%3Dthis.edgeType.getArrowData(ctx%2C%5C%5C%5C%22from%5C%5C%5C%22%2CviaNode%2Cthis.selected%2Cthis.hover%2Cvalues)%3Bif(values.arrowStrikethrough%3D%3D%3Dfalse)this.edgeType.fromPoint%3DarrowData.from.core%7Dif(values.toArrow)%7BarrowData.to%3Dthis.edgeType.getArrowData(ctx%2C%5C%5C%5C%22to%5C%5C%5C%22%2CviaNode%2Cthis.selected%2Cthis.hover%2Cvalues)%3Bif(values.arrowStrikethrough%3D%3D%3Dfalse)this.edgeType.toPoint%3DarrowData.to.core%7Dif(values.middleArrow)%7BarrowData.middle%3Dthis.edgeType.getArrowData(ctx%2C%5C%5C%5C%22middle%5C%5C%5C%22%2CviaNode%2Cthis.selected%2Cthis.hover%2Cvalues)%7Dthis.edgeType.drawLine(ctx%2Cvalues%2Cthis.selected%2Cthis.hover%2CviaNode)%3Bthis.drawArrows(ctx%2CarrowData%2Cvalues)%3Bthis.drawLabel(ctx%2CviaNode)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22drawArrows%5C%5C%5C%22%2Cvalue%3Afunction%20drawArrows(ctx%2CarrowData%2Cvalues)%7Bif(values.fromArrow)%7Bthis.edgeType.drawArrowHead(ctx%2Cvalues%2Cthis.selected%2Cthis.hover%2CarrowData.from)%7Dif(values.middleArrow)%7Bthis.edgeType.drawArrowHead(ctx%2Cvalues%2Cthis.selected%2Cthis.hover%2CarrowData.middle)%7Dif(values.toArrow)%7Bthis.edgeType.drawArrowHead(ctx%2Cvalues%2Cthis.selected%2Cthis.hover%2CarrowData.to)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22drawLabel%5C%5C%5C%22%2Cvalue%3Afunction%20drawLabel(ctx%2CviaNode)%7Bif(this.options.label!%3D%3Dundefined)%7Bvar%20node1%3Dthis.from%3Bvar%20node2%3Dthis.to%3Bif(this.labelModule.differentState(this.selected%2Cthis.hover))%7Bthis.labelModule.getTextSize(ctx%2Cthis.selected%2Cthis.hover)%7Dif(node1.id!%3Dnode2.id)%7Bthis.labelModule.pointToSelf%3Dfalse%3Bvar%20point%3Dthis.edgeType.getPoint(.5%2CviaNode)%3Bctx.save()%3Bvar%20rotationPoint%3Dthis._getRotation(ctx)%3Bif(rotationPoint.angle!%3D0)%7Bctx.translate(rotationPoint.x%2CrotationPoint.y)%3Bctx.rotate(rotationPoint.angle)%7Dthis.labelModule.draw(ctx%2Cpoint.x%2Cpoint.y%2Cthis.selected%2Cthis.hover)%3Bctx.restore()%7Delse%7Bthis.labelModule.pointToSelf%3Dtrue%3Bvar%20x%2Cy%3Bvar%20radius%3Dthis.options.selfReferenceSize%3Bif(node1.shape.width%3Enode1.shape.height)%7Bx%3Dnode1.x%2Bnode1.shape.width*.5%3By%3Dnode1.y-radius%7Delse%7Bx%3Dnode1.x%2Bradius%3By%3Dnode1.y-node1.shape.height*.5%7Dpoint%3Dthis._pointOnCircle(x%2Cy%2Cradius%2C.125)%3Bthis.labelModule.draw(ctx%2Cpoint.x%2Cpoint.y%2Cthis.selected%2Cthis.hover)%7D%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getItemsOnPoint%5C%5C%5C%22%2Cvalue%3Afunction%20getItemsOnPoint(point)%7Bvar%20ret%3D%5B%5D%3Bif(this.labelModule.visible())%7Bvar%20rotationPoint%3Dthis._getRotation()%3Bif(ComponentUtil.pointInRect(this.labelModule.getSize()%2Cpoint%2CrotationPoint))%7Bret.push(%7BedgeId%3Athis.id%2ClabelId%3A0%7D)%7D%7Dvar%20obj%3D%7Bleft%3Apoint.x%2Ctop%3Apoint.y%7D%3Bif(this.isOverlappingWith(obj))%7Bret.push(%7BedgeId%3Athis.id%7D)%7Dreturn%20ret%7D%7D%2C%7Bkey%3A%5C%5C%5C%22isOverlappingWith%5C%5C%5C%22%2Cvalue%3Afunction%20isOverlappingWith(obj)%7Bif(this.connected)%7Bvar%20distMax%3D10%3Bvar%20xFrom%3Dthis.from.x%3Bvar%20yFrom%3Dthis.from.y%3Bvar%20xTo%3Dthis.to.x%3Bvar%20yTo%3Dthis.to.y%3Bvar%20xObj%3Dobj.left%3Bvar%20yObj%3Dobj.top%3Bvar%20dist%3Dthis.edgeType.getDistanceToEdge(xFrom%2CyFrom%2CxTo%2CyTo%2CxObj%2CyObj)%3Breturn%20dist%3CdistMax%7Delse%7Breturn%20false%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_getRotation%5C%5C%5C%22%2Cvalue%3Afunction%20_getRotation(ctx)%7Bvar%20viaNode%3Dthis.edgeType.getViaNode()%3Bvar%20point%3Dthis.edgeType.getPoint(.5%2CviaNode)%3Bif(ctx!%3D%3Dundefined)%7Bthis.labelModule.calculateLabelSize(ctx%2Cthis.selected%2Cthis.hover%2Cpoint.x%2Cpoint.y)%7Dvar%20ret%3D%7Bx%3Apoint.x%2Cy%3Athis.labelModule.size.yLine%2Cangle%3A0%7D%3Bif(!this.labelModule.visible())%7Breturn%20ret%7Dif(this.options.font.align%3D%3D%3D%5C%5C%5C%22horizontal%5C%5C%5C%22)%7Breturn%20ret%7Dvar%20dy%3Dthis.from.y-this.to.y%3Bvar%20dx%3Dthis.from.x-this.to.x%3Bvar%20angle%3DMath.atan2(dy%2Cdx)%3Bif(angle%3C-1%26%26dx%3C0%7C%7Cangle%3E0%26%26dx%3C0)%7Bangle%2B%3DMath.PI%7Dret.angle%3Dangle%3Breturn%20ret%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_pointOnCircle%5C%5C%5C%22%2Cvalue%3Afunction%20_pointOnCircle(x%2Cy%2Cradius%2Cpercentage)%7Bvar%20angle%3Dpercentage*2*Math.PI%3Breturn%7Bx%3Ax%2Bradius*Math.cos(angle)%2Cy%3Ay-radius*Math.sin(angle)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22select%5C%5C%5C%22%2Cvalue%3Afunction%20select()%7Bthis.selected%3Dtrue%7D%7D%2C%7Bkey%3A%5C%5C%5C%22unselect%5C%5C%5C%22%2Cvalue%3Afunction%20unselect()%7Bthis.selected%3Dfalse%7D%7D%2C%7Bkey%3A%5C%5C%5C%22cleanup%5C%5C%5C%22%2Cvalue%3Afunction%20cleanup()%7Breturn%20this.edgeType.cleanup()%7D%7D%2C%7Bkey%3A%5C%5C%5C%22remove%5C%5C%5C%22%2Cvalue%3Afunction%20remove()%7Bthis.cleanup()%3Bthis.disconnect()%3Bdelete%20this.body.edges%5Bthis.id%5D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22endPointsValid%5C%5C%5C%22%2Cvalue%3Afunction%20endPointsValid()%7Breturn%20this.body.nodes%5Bthis.fromId%5D!%3D%3Dundefined%26%26this.body.nodes%5Bthis.toId%5D!%3D%3Dundefined%7D%7D%5D%2C%5B%7Bkey%3A%5C%5C%5C%22parseOptions%5C%5C%5C%22%2Cvalue%3Afunction%20parseOptions(parentOptions%2CnewOptions)%7Bvar%20allowDeletion%3Darguments.length%3E2%26%26arguments%5B2%5D!%3D%3Dundefined%3Farguments%5B2%5D%3Afalse%3Bvar%20globalOptions%3Darguments.length%3E3%26%26arguments%5B3%5D!%3D%3Dundefined%3Farguments%5B3%5D%3A%7B%7D%3Bvar%20copyFromGlobals%3Darguments.length%3E4%26%26arguments%5B4%5D!%3D%3Dundefined%3Farguments%5B4%5D%3Afalse%3Bvar%20fields%3D%5B%5C%5C%5C%22arrowStrikethrough%5C%5C%5C%22%2C%5C%5C%5C%22id%5C%5C%5C%22%2C%5C%5C%5C%22from%5C%5C%5C%22%2C%5C%5C%5C%22hidden%5C%5C%5C%22%2C%5C%5C%5C%22hoverWidth%5C%5C%5C%22%2C%5C%5C%5C%22labelHighlightBold%5C%5C%5C%22%2C%5C%5C%5C%22length%5C%5C%5C%22%2C%5C%5C%5C%22line%5C%5C%5C%22%2C%5C%5C%5C%22opacity%5C%5C%5C%22%2C%5C%5C%5C%22physics%5C%5C%5C%22%2C%5C%5C%5C%22scaling%5C%5C%5C%22%2C%5C%5C%5C%22selectionWidth%5C%5C%5C%22%2C%5C%5C%5C%22selfReferenceSize%5C%5C%5C%22%2C%5C%5C%5C%22to%5C%5C%5C%22%2C%5C%5C%5C%22title%5C%5C%5C%22%2C%5C%5C%5C%22value%5C%5C%5C%22%2C%5C%5C%5C%22width%5C%5C%5C%22%2C%5C%5C%5C%22font%5C%5C%5C%22%2C%5C%5C%5C%22chosen%5C%5C%5C%22%2C%5C%5C%5C%22widthConstraint%5C%5C%5C%22%5D%3Butil.selectiveDeepExtend(fields%2CparentOptions%2CnewOptions%2CallowDeletion)%3Bif(ComponentUtil.isValidLabel(newOptions.label))%7BparentOptions.label%3DnewOptions.label%7Delse%7BparentOptions.label%3Dundefined%7Dutil.mergeOptions(parentOptions%2CnewOptions%2C%5C%5C%5C%22smooth%5C%5C%5C%22%2CglobalOptions)%3Butil.mergeOptions(parentOptions%2CnewOptions%2C%5C%5C%5C%22shadow%5C%5C%5C%22%2CglobalOptions)%3Bif(newOptions.dashes!%3D%3Dundefined%26%26newOptions.dashes!%3D%3Dnull)%7BparentOptions.dashes%3DnewOptions.dashes%7Delse%20if(allowDeletion%3D%3D%3Dtrue%26%26newOptions.dashes%3D%3D%3Dnull)%7BparentOptions.dashes%3D(0%2C_create2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(globalOptions.dashes)%7Dif(newOptions.scaling!%3D%3Dundefined%26%26newOptions.scaling!%3D%3Dnull)%7Bif(newOptions.scaling.min!%3D%3Dundefined)%7BparentOptions.scaling.min%3DnewOptions.scaling.min%7Dif(newOptions.scaling.max!%3D%3Dundefined)%7BparentOptions.scaling.max%3DnewOptions.scaling.max%7Dutil.mergeOptions(parentOptions.scaling%2CnewOptions.scaling%2C%5C%5C%5C%22label%5C%5C%5C%22%2CglobalOptions.scaling)%7Delse%20if(allowDeletion%3D%3D%3Dtrue%26%26newOptions.scaling%3D%3D%3Dnull)%7BparentOptions.scaling%3D(0%2C_create2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(globalOptions.scaling)%7Dif(newOptions.arrows!%3D%3Dundefined%26%26newOptions.arrows!%3D%3Dnull)%7Bif(typeof%20newOptions.arrows%3D%3D%3D%5C%5C%5C%22string%5C%5C%5C%22)%7Bvar%20arrows%3DnewOptions.arrows.toLowerCase()%3BparentOptions.arrows.to.enabled%3Darrows.indexOf(%5C%5C%5C%22to%5C%5C%5C%22)!%3D-1%3BparentOptions.arrows.middle.enabled%3Darrows.indexOf(%5C%5C%5C%22middle%5C%5C%5C%22)!%3D-1%3BparentOptions.arrows.from.enabled%3Darrows.indexOf(%5C%5C%5C%22from%5C%5C%5C%22)!%3D-1%7Delse%20if((0%2C_typeof3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(newOptions.arrows)%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22)%7Butil.mergeOptions(parentOptions.arrows%2CnewOptions.arrows%2C%5C%5C%5C%22to%5C%5C%5C%22%2CglobalOptions.arrows)%3Butil.mergeOptions(parentOptions.arrows%2CnewOptions.arrows%2C%5C%5C%5C%22middle%5C%5C%5C%22%2CglobalOptions.arrows)%3Butil.mergeOptions(parentOptions.arrows%2CnewOptions.arrows%2C%5C%5C%5C%22from%5C%5C%5C%22%2CglobalOptions.arrows)%7Delse%7Bthrow%20new%20Error(%5C%5C%5C%22The%20arrow%20newOptions%20can%20only%20be%20an%20object%20or%20a%20string.%20Refer%20to%20the%20documentation.%20You%20used%3A%5C%5C%5C%22%2B(0%2C_stringify2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(newOptions.arrows))%7D%7Delse%20if(allowDeletion%3D%3D%3Dtrue%26%26newOptions.arrows%3D%3D%3Dnull)%7BparentOptions.arrows%3D(0%2C_create2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(globalOptions.arrows)%7Dif(newOptions.color!%3D%3Dundefined%26%26newOptions.color!%3D%3Dnull)%7Bvar%20fromColor%3DnewOptions.color%3Bvar%20toColor%3DparentOptions.color%3Bif(copyFromGlobals)%7Butil.deepExtend(toColor%2CglobalOptions.color%2Cfalse%2CallowDeletion)%7Delse%7Bfor(var%20i%20in%20toColor)%7Bif(toColor.hasOwnProperty(i))%7Bdelete%20toColor%5Bi%5D%7D%7D%7Dif(util.isString(toColor))%7BtoColor.color%3DtoColor%3BtoColor.highlight%3DtoColor%3BtoColor.hover%3DtoColor%3BtoColor.inherit%3Dfalse%3Bif(fromColor.opacity%3D%3D%3Dundefined)%7BtoColor.opacity%3D1%7D%7Delse%7Bvar%20colorsDefined%3Dfalse%3Bif(fromColor.color!%3D%3Dundefined)%7BtoColor.color%3DfromColor.color%3BcolorsDefined%3Dtrue%7Dif(fromColor.highlight!%3D%3Dundefined)%7BtoColor.highlight%3DfromColor.highlight%3BcolorsDefined%3Dtrue%7Dif(fromColor.hover!%3D%3Dundefined)%7BtoColor.hover%3DfromColor.hover%3BcolorsDefined%3Dtrue%7Dif(fromColor.inherit!%3D%3Dundefined)%7BtoColor.inherit%3DfromColor.inherit%7Dif(fromColor.opacity!%3D%3Dundefined)%7BtoColor.opacity%3DMath.min(1%2CMath.max(0%2CfromColor.opacity))%7Dif(colorsDefined%3D%3D%3Dtrue)%7BtoColor.inherit%3Dfalse%7Delse%7Bif(toColor.inherit%3D%3D%3Dundefined)%7BtoColor.inherit%3D%5C%5C%5C%22from%5C%5C%5C%22%7D%7D%7D%7Delse%20if(allowDeletion%3D%3D%3Dtrue%26%26newOptions.color%3D%3D%3Dnull)%7BparentOptions.color%3Dutil.bridgeObject(globalOptions.color)%7Dif(allowDeletion%3D%3D%3Dtrue%26%26newOptions.font%3D%3D%3Dnull)%7BparentOptions.font%3Dutil.bridgeObject(globalOptions.font)%7D%7D%7D%5D)%3Breturn%20Edge%7D()%3Bexports%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3DEdge%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_getPrototypeOf%3D__webpack_require__(3)%3Bvar%20_getPrototypeOf2%3D_interopRequireDefault(_getPrototypeOf)%3Bvar%20_classCallCheck2%3D__webpack_require__(0)%3Bvar%20_classCallCheck3%3D_interopRequireDefault(_classCallCheck2)%3Bvar%20_createClass2%3D__webpack_require__(1)%3Bvar%20_createClass3%3D_interopRequireDefault(_createClass2)%3Bvar%20_possibleConstructorReturn2%3D__webpack_require__(4)%3Bvar%20_possibleConstructorReturn3%3D_interopRequireDefault(_possibleConstructorReturn2)%3Bvar%20_inherits2%3D__webpack_require__(5)%3Bvar%20_inherits3%3D_interopRequireDefault(_inherits2)%3Bvar%20_EdgeBase2%3D__webpack_require__(118)%3Bvar%20_EdgeBase3%3D_interopRequireDefault(_EdgeBase2)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20BezierEdgeBase%3Dfunction(_EdgeBase)%7B(0%2C_inherits3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(BezierEdgeBase%2C_EdgeBase)%3Bfunction%20BezierEdgeBase(options%2Cbody%2ClabelModule)%7B(0%2C_classCallCheck3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2CBezierEdgeBase)%3Breturn(0%2C_possibleConstructorReturn3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2C(BezierEdgeBase.__proto__%7C%7C(0%2C_getPrototypeOf2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(BezierEdgeBase)).call(this%2Coptions%2Cbody%2ClabelModule))%7D(0%2C_createClass3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(BezierEdgeBase%2C%5B%7Bkey%3A%5C%5C%5C%22_findBorderPositionBezier%5C%5C%5C%22%2Cvalue%3Afunction%20_findBorderPositionBezier(nearNode%2Cctx)%7Bvar%20viaNode%3Darguments.length%3E2%26%26arguments%5B2%5D!%3D%3Dundefined%3Farguments%5B2%5D%3Athis._getViaCoordinates()%3Bvar%20maxIterations%3D10%3Bvar%20iteration%3D0%3Bvar%20low%3D0%3Bvar%20high%3D1%3Bvar%20pos%2Cangle%2CdistanceToBorder%2CdistanceToPoint%2Cdifference%3Bvar%20threshold%3D.2%3Bvar%20node%3Dthis.to%3Bvar%20from%3Dfalse%3Bif(nearNode.id%3D%3D%3Dthis.from.id)%7Bnode%3Dthis.from%3Bfrom%3Dtrue%7Dwhile(low%3C%3Dhigh%26%26iteration%3CmaxIterations)%7Bvar%20middle%3D(low%2Bhigh)*.5%3Bpos%3Dthis.getPoint(middle%2CviaNode)%3Bangle%3DMath.atan2(node.y-pos.y%2Cnode.x-pos.x)%3BdistanceToBorder%3Dnode.distanceToBorder(ctx%2Cangle)%3BdistanceToPoint%3DMath.sqrt(Math.pow(pos.x-node.x%2C2)%2BMath.pow(pos.y-node.y%2C2))%3Bdifference%3DdistanceToBorder-distanceToPoint%3Bif(Math.abs(difference)%3Cthreshold)%7Bbreak%7Delse%20if(difference%3C0)%7Bif(from%3D%3D%3Dfalse)%7Blow%3Dmiddle%7Delse%7Bhigh%3Dmiddle%7D%7Delse%7Bif(from%3D%3D%3Dfalse)%7Bhigh%3Dmiddle%7Delse%7Blow%3Dmiddle%7D%7Diteration%2B%2B%7Dpos.t%3Dmiddle%3Breturn%20pos%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_getDistanceToBezierEdge%5C%5C%5C%22%2Cvalue%3Afunction%20_getDistanceToBezierEdge(x1%2Cy1%2Cx2%2Cy2%2Cx3%2Cy3%2Cvia)%7Bvar%20minDistance%3D1e9%3Bvar%20distance%3Dvoid%200%3Bvar%20i%3Dvoid%200%2Ct%3Dvoid%200%2Cx%3Dvoid%200%2Cy%3Dvoid%200%3Bvar%20lastX%3Dx1%3Bvar%20lastY%3Dy1%3Bfor(i%3D1%3Bi%3C10%3Bi%2B%2B)%7Bt%3D.1*i%3Bx%3DMath.pow(1-t%2C2)*x1%2B2*t*(1-t)*via.x%2BMath.pow(t%2C2)*x2%3By%3DMath.pow(1-t%2C2)*y1%2B2*t*(1-t)*via.y%2BMath.pow(t%2C2)*y2%3Bif(i%3E0)%7Bdistance%3Dthis._getDistanceToLine(lastX%2ClastY%2Cx%2Cy%2Cx3%2Cy3)%3BminDistance%3Ddistance%3CminDistance%3Fdistance%3AminDistance%7DlastX%3Dx%3BlastY%3Dy%7Dreturn%20minDistance%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_bezierCurve%5C%5C%5C%22%2Cvalue%3Afunction%20_bezierCurve(ctx%2Cvalues%2CviaNode1%2CviaNode2)%7Bvar%20hasNode1%3DviaNode1!%3D%3Dundefined%26%26viaNode1.x!%3D%3Dundefined%3Bvar%20hasNode2%3DviaNode2!%3D%3Dundefined%26%26viaNode2.x!%3D%3Dundefined%3Bctx.beginPath()%3Bctx.moveTo(this.fromPoint.x%2Cthis.fromPoint.y)%3Bif(hasNode1%26%26hasNode2)%7Bctx.bezierCurveTo(viaNode1.x%2CviaNode1.y%2CviaNode2.x%2CviaNode2.y%2Cthis.toPoint.x%2Cthis.toPoint.y)%7Delse%20if(hasNode1)%7Bctx.quadraticCurveTo(viaNode1.x%2CviaNode1.y%2Cthis.toPoint.x%2Cthis.toPoint.y)%7Delse%7Bctx.lineTo(this.toPoint.x%2Cthis.toPoint.y)%7Dthis.enableShadow(ctx%2Cvalues)%3Bctx.stroke()%3Bthis.disableShadow(ctx%2Cvalues)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getViaNode%5C%5C%5C%22%2Cvalue%3Afunction%20getViaNode()%7Breturn%20this._getViaCoordinates()%7D%7D%5D)%3Breturn%20BezierEdgeBase%7D(_EdgeBase3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)%3Bexports%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3DBezierEdgeBase%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_classCallCheck2%3D__webpack_require__(0)%3Bvar%20_classCallCheck3%3D_interopRequireDefault(_classCallCheck2)%3Bvar%20_createClass2%3D__webpack_require__(1)%3Bvar%20_createClass3%3D_interopRequireDefault(_createClass2)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20util%3D__webpack_require__(2)%3Bvar%20NetworkUtil%3Dfunction()%7Bfunction%20NetworkUtil()%7B(0%2C_classCallCheck3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2CNetworkUtil)%7D(0%2C_createClass3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(NetworkUtil%2Cnull%2C%5B%7Bkey%3A%5C%5C%5C%22getRange%5C%5C%5C%22%2Cvalue%3Afunction%20getRange(allNodes)%7Bvar%20specificNodes%3Darguments.length%3E1%26%26arguments%5B1%5D!%3D%3Dundefined%3Farguments%5B1%5D%3A%5B%5D%3Bvar%20minY%3D1e9%2CmaxY%3D-1e9%2CminX%3D1e9%2CmaxX%3D-1e9%2Cnode%3Bif(specificNodes.length%3E0)%7Bfor(var%20i%3D0%3Bi%3CspecificNodes.length%3Bi%2B%2B)%7Bnode%3DallNodes%5BspecificNodes%5Bi%5D%5D%3Bif(minX%3Enode.shape.boundingBox.left)%7BminX%3Dnode.shape.boundingBox.left%7Dif(maxX%3Cnode.shape.boundingBox.right)%7BmaxX%3Dnode.shape.boundingBox.right%7Dif(minY%3Enode.shape.boundingBox.top)%7BminY%3Dnode.shape.boundingBox.top%7Dif(maxY%3Cnode.shape.boundingBox.bottom)%7BmaxY%3Dnode.shape.boundingBox.bottom%7D%7D%7Dif(minX%3D%3D%3D1e9%26%26maxX%3D%3D%3D-1e9%26%26minY%3D%3D%3D1e9%26%26maxY%3D%3D%3D-1e9)%7BminY%3D0%2CmaxY%3D0%2CminX%3D0%2CmaxX%3D0%7Dreturn%7BminX%3AminX%2CmaxX%3AmaxX%2CminY%3AminY%2CmaxY%3AmaxY%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getRangeCore%5C%5C%5C%22%2Cvalue%3Afunction%20getRangeCore(allNodes)%7Bvar%20specificNodes%3Darguments.length%3E1%26%26arguments%5B1%5D!%3D%3Dundefined%3Farguments%5B1%5D%3A%5B%5D%3Bvar%20minY%3D1e9%2CmaxY%3D-1e9%2CminX%3D1e9%2CmaxX%3D-1e9%2Cnode%3Bif(specificNodes.length%3E0)%7Bfor(var%20i%3D0%3Bi%3CspecificNodes.length%3Bi%2B%2B)%7Bnode%3DallNodes%5BspecificNodes%5Bi%5D%5D%3Bif(minX%3Enode.x)%7BminX%3Dnode.x%7Dif(maxX%3Cnode.x)%7BmaxX%3Dnode.x%7Dif(minY%3Enode.y)%7BminY%3Dnode.y%7Dif(maxY%3Cnode.y)%7BmaxY%3Dnode.y%7D%7D%7Dif(minX%3D%3D%3D1e9%26%26maxX%3D%3D%3D-1e9%26%26minY%3D%3D%3D1e9%26%26maxY%3D%3D%3D-1e9)%7BminY%3D0%2CmaxY%3D0%2CminX%3D0%2CmaxX%3D0%7Dreturn%7BminX%3AminX%2CmaxX%3AmaxX%2CminY%3AminY%2CmaxY%3AmaxY%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22findCenter%5C%5C%5C%22%2Cvalue%3Afunction%20findCenter(range)%7Breturn%7Bx%3A.5*(range.maxX%2Brange.minX)%2Cy%3A.5*(range.maxY%2Brange.minY)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22cloneOptions%5C%5C%5C%22%2Cvalue%3Afunction%20cloneOptions(item%2Ctype)%7Bvar%20clonedOptions%3D%7B%7D%3Bif(type%3D%3D%3Dundefined%7C%7Ctype%3D%3D%3D%5C%5C%5C%22node%5C%5C%5C%22)%7Butil.deepExtend(clonedOptions%2Citem.options%2Ctrue)%3BclonedOptions.x%3Ditem.x%3BclonedOptions.y%3Ditem.y%3BclonedOptions.amountOfConnections%3Ditem.edges.length%7Delse%7Butil.deepExtend(clonedOptions%2Citem.options%2Ctrue)%7Dreturn%20clonedOptions%7D%7D%5D)%3Breturn%20NetworkUtil%7D()%3Bexports%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3DNetworkUtil%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7Bmodule.exports%3D%7Bdefault%3A__webpack_require__(124)%2C__esModule%3Atrue%7D%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7Bvar%20cof%3D__webpack_require__(50)%3Bmodule.exports%3DObject(%5C%5C%5C%22z%5C%5C%5C%22).propertyIsEnumerable(0)%3FObject%3Afunction(it)%7Breturn%20cof(it)%3D%3D%5C%5C%5C%22String%5C%5C%5C%22%3Fit.split(%5C%5C%5C%22%5C%5C%5C%22)%3AObject(it)%7D%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bvar%20LIBRARY%3D__webpack_require__(52)%3Bvar%20%24export%3D__webpack_require__(17)%3Bvar%20redefine%3D__webpack_require__(83)%3Bvar%20hide%3D__webpack_require__(26)%3Bvar%20has%3D__webpack_require__(22)%3Bvar%20Iterators%3D__webpack_require__(31)%3Bvar%20%24iterCreate%3D__webpack_require__(129)%3Bvar%20setToStringTag%3D__webpack_require__(59)%3Bvar%20getPrototypeOf%3D__webpack_require__(85)%3Bvar%20ITERATOR%3D__webpack_require__(13)(%5C%5C%5C%22iterator%5C%5C%5C%22)%3Bvar%20BUGGY%3D!(%5B%5D.keys%26%26%5C%5C%5C%22next%5C%5C%5C%22in%5B%5D.keys())%5C%5Cn%3Bvar%20FF_ITERATOR%3D%5C%5C%5C%22%40%40iterator%5C%5C%5C%22%3Bvar%20KEYS%3D%5C%5C%5C%22keys%5C%5C%5C%22%3Bvar%20VALUES%3D%5C%5C%5C%22values%5C%5C%5C%22%3Bvar%20returnThis%3Dfunction()%7Breturn%20this%7D%3Bmodule.exports%3Dfunction(Base%2CNAME%2CConstructor%2Cnext%2CDEFAULT%2CIS_SET%2CFORCED)%7B%24iterCreate(Constructor%2CNAME%2Cnext)%3Bvar%20getMethod%3Dfunction(kind)%7Bif(!BUGGY%26%26kind%20in%20proto)return%20proto%5Bkind%5D%3Bswitch(kind)%7Bcase%20KEYS%3Areturn%20function%20keys()%7Breturn%20new%20Constructor(this%2Ckind)%7D%3Bcase%20VALUES%3Areturn%20function%20values()%7Breturn%20new%20Constructor(this%2Ckind)%7D%7Dreturn%20function%20entries()%7Breturn%20new%20Constructor(this%2Ckind)%7D%7D%3Bvar%20TAG%3DNAME%2B%5C%5C%5C%22%20Iterator%5C%5C%5C%22%3Bvar%20DEF_VALUES%3DDEFAULT%3D%3DVALUES%3Bvar%20VALUES_BUG%3Dfalse%3Bvar%20proto%3DBase.prototype%3Bvar%20%24native%3Dproto%5BITERATOR%5D%7C%7Cproto%5BFF_ITERATOR%5D%7C%7CDEFAULT%26%26proto%5BDEFAULT%5D%3Bvar%20%24default%3D%24native%7C%7CgetMethod(DEFAULT)%3Bvar%20%24entries%3DDEFAULT%3F!DEF_VALUES%3F%24default%3AgetMethod(%5C%5C%5C%22entries%5C%5C%5C%22)%3Aundefined%3Bvar%20%24anyNative%3DNAME%3D%3D%5C%5C%5C%22Array%5C%5C%5C%22%3Fproto.entries%7C%7C%24native%3A%24native%3Bvar%20methods%2Ckey%2CIteratorPrototype%3Bif(%24anyNative)%7BIteratorPrototype%3DgetPrototypeOf(%24anyNative.call(new%20Base))%3Bif(IteratorPrototype!%3D%3DObject.prototype%26%26IteratorPrototype.next)%7BsetToStringTag(IteratorPrototype%2CTAG%2Ctrue)%3Bif(!LIBRARY%26%26!has(IteratorPrototype%2CITERATOR))hide(IteratorPrototype%2CITERATOR%2CreturnThis)%7D%7Dif(DEF_VALUES%26%26%24native%26%26%24native.name!%3D%3DVALUES)%7BVALUES_BUG%3Dtrue%3B%24default%3Dfunction%20values()%7Breturn%20%24native.call(this)%7D%7Dif((!LIBRARY%7C%7CFORCED)%26%26(BUGGY%7C%7CVALUES_BUG%7C%7C!proto%5BITERATOR%5D))%7Bhide(proto%2CITERATOR%2C%24default)%7DIterators%5BNAME%5D%3D%24default%3BIterators%5BTAG%5D%3DreturnThis%3Bif(DEFAULT)%7Bmethods%3D%7Bvalues%3ADEF_VALUES%3F%24default%3AgetMethod(VALUES)%2Ckeys%3AIS_SET%3F%24default%3AgetMethod(KEYS)%2Centries%3A%24entries%7D%3Bif(FORCED)for(key%20in%20methods)%7Bif(!(key%20in%20proto))redefine(proto%2Ckey%2Cmethods%5Bkey%5D)%7Delse%20%24export(%24export.P%2B%24export.F*(BUGGY%7C%7CVALUES_BUG)%2CNAME%2Cmethods)%7Dreturn%20methods%7D%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7Bvar%20aFunction%3D__webpack_require__(128)%3Bmodule.exports%3Dfunction(fn%2Cthat%2Clength)%7BaFunction(fn)%3Bif(that%3D%3D%3Dundefined)return%20fn%3Bswitch(length)%7Bcase%201%3Areturn%20function(a)%7Breturn%20fn.call(that%2Ca)%7D%3Bcase%202%3Areturn%20function(a%2Cb)%7Breturn%20fn.call(that%2Ca%2Cb)%7D%3Bcase%203%3Areturn%20function(a%2Cb%2Cc)%7Breturn%20fn.call(that%2Ca%2Cb%2Cc)%7D%7Dreturn%20function()%7Breturn%20fn.apply(that%2Carguments)%7D%7D%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7Bmodule.exports%3D!__webpack_require__(21)%26%26!__webpack_require__(28)(function()%7Breturn%20Object.defineProperty(__webpack_require__(82)(%5C%5C%5C%22div%5C%5C%5C%22)%2C%5C%5C%5C%22a%5C%5C%5C%22%2C%7Bget%3Afunction()%7Breturn%207%7D%7D).a!%3D7%7D)%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7Bvar%20isObject%3D__webpack_require__(32)%3Bvar%20document%3D__webpack_require__(18).document%3Bvar%20is%3DisObject(document)%26%26isObject(document.createElement)%3Bmodule.exports%3Dfunction(it)%7Breturn%20is%3Fdocument.createElement(it)%3A%7B%7D%7D%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7Bmodule.exports%3D__webpack_require__(26)%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7Bvar%20has%3D__webpack_require__(22)%3Bvar%20toIObject%3D__webpack_require__(25)%3Bvar%20arrayIndexOf%3D__webpack_require__(131)(false)%3Bvar%20IE_PROTO%3D__webpack_require__(56)(%5C%5C%5C%22IE_PROTO%5C%5C%5C%22)%3Bmodule.exports%3Dfunction(object%2Cnames)%7Bvar%20O%3DtoIObject(object)%3Bvar%20i%3D0%3Bvar%20result%3D%5B%5D%3Bvar%20key%3Bfor(key%20in%20O)if(key!%3DIE_PROTO)has(O%2Ckey)%26%26result.push(key)%3Bwhile(names.length%3Ei)if(has(O%2Ckey%3Dnames%5Bi%2B%2B%5D))%7B~arrayIndexOf(result%2Ckey)%7C%7Cresult.push(key)%7Dreturn%20result%7D%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7Bvar%20has%3D__webpack_require__(22)%3Bvar%20toObject%3D__webpack_require__(41)%3Bvar%20IE_PROTO%3D__webpack_require__(56)(%5C%5C%5C%22IE_PROTO%5C%5C%5C%22)%3Bvar%20ObjectProto%3DObject.prototype%3Bmodule.exports%3DObject.getPrototypeOf%7C%7Cfunction(O)%7BO%3DtoObject(O)%3Bif(has(O%2CIE_PROTO))return%20O%5BIE_PROTO%5D%3Bif(typeof%20O.constructor%3D%3D%5C%5C%5C%22function%5C%5C%5C%22%26%26O%20instanceof%20O.constructor)%7Breturn%20O.constructor.prototype%7Dreturn%20O%20instanceof%20Object%3FObjectProto%3Anull%7D%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7Bvar%20cof%3D__webpack_require__(50)%3Bvar%20TAG%3D__webpack_require__(13)(%5C%5C%5C%22toStringTag%5C%5C%5C%22)%3Bvar%20ARG%3Dcof(function()%7Breturn%20arguments%7D())%3D%3D%5C%5C%5C%22Arguments%5C%5C%5C%22%3Bvar%20tryGet%3Dfunction(it%2Ckey)%7Btry%7Breturn%20it%5Bkey%5D%7Dcatch(e)%7B%7D%7D%3Bmodule.exports%3Dfunction(it)%7Bvar%20O%2CT%2CB%3Breturn%20it%3D%3D%3Dundefined%3F%5C%5C%5C%22Undefined%5C%5C%5C%22%3Ait%3D%3D%3Dnull%3F%5C%5C%5C%22Null%5C%5C%5C%22%3Atypeof(T%3DtryGet(O%3DObject(it)%2CTAG))%3D%3D%5C%5C%5C%22string%5C%5C%5C%22%3FT%3AARG%3Fcof(O)%3A(B%3Dcof(O))%3D%3D%5C%5C%5C%22Object%5C%5C%5C%22%26%26typeof%20O.callee%3D%3D%5C%5C%5C%22function%5C%5C%5C%22%3F%5C%5C%5C%22Arguments%5C%5C%5C%22%3AB%7D%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7Bvar%20%24export%3D__webpack_require__(17)%3Bvar%20core%3D__webpack_require__(7)%3Bvar%20fails%3D__webpack_require__(28)%3Bmodule.exports%3Dfunction(KEY%2Cexec)%7Bvar%20fn%3D(core.Object%7C%7C%7B%7D)%5BKEY%5D%7C%7CObject%5BKEY%5D%3Bvar%20exp%3D%7B%7D%3Bexp%5BKEY%5D%3Dexec(fn)%3B%24export(%24export.S%2B%24export.F*fails(function()%7Bfn(1)%7D)%2C%5C%5C%5C%22Object%5C%5C%5C%22%2Cexp)%7D%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7Bvar%20%24keys%3D__webpack_require__(84)%3Bvar%20hiddenKeys%3D__webpack_require__(58).concat(%5C%5C%5C%22length%5C%5C%5C%22%2C%5C%5C%5C%22prototype%5C%5C%5C%22)%3Bexports.f%3DObject.getOwnPropertyNames%7C%7Cfunction%20getOwnPropertyNames(O)%7Breturn%20%24keys(O%2ChiddenKeys)%7D%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7Bvar%20pIE%3D__webpack_require__(42)%3Bvar%20createDesc%3D__webpack_require__(39)%3Bvar%20toIObject%3D__webpack_require__(25)%3Bvar%20toPrimitive%3D__webpack_require__(53)%3Bvar%20has%3D__webpack_require__(22)%3Bvar%20IE8_DOM_DEFINE%3D__webpack_require__(81)%3Bvar%20gOPD%3DObject.getOwnPropertyDescriptor%3Bexports.f%3D__webpack_require__(21)%3FgOPD%3Afunction%20getOwnPropertyDescriptor(O%2CP)%7BO%3DtoIObject(O)%3BP%3DtoPrimitive(P%2Ctrue)%3Bif(IE8_DOM_DEFINE)try%7Breturn%20gOPD(O%2CP)%7Dcatch(e)%7B%7Dif(has(O%2CP))return%20createDesc(!pIE.f.call(O%2CP)%2CO%5BP%5D)%7D%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7Bmodule.exports%3D%7Bdefault%3A__webpack_require__(162)%2C__esModule%3Atrue%7D%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bfunction%20Point2d(x%2Cy)%7Bthis.x%3Dx!%3D%3Dundefined%3Fx%3A0%3Bthis.y%3Dy!%3D%3Dundefined%3Fy%3A0%7Dmodule.exports%3DPoint2d%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bvar%20util%3D__webpack_require__(2)%3Bfunction%20Slider(container%2Coptions)%7Bif(container%3D%3D%3Dundefined)%7Bthrow%20new%20Error(%5C%5C%5C%22No%20container%20element%20defined%5C%5C%5C%22)%7Dthis.container%3Dcontainer%3Bthis.visible%3Doptions%26%26options.visible!%3Dundefined%3Foptions.visible%3Atrue%3Bif(this.visible)%7Bthis.frame%3Ddocument.createElement(%5C%5C%5C%22DIV%5C%5C%5C%22)%3Bthis.frame.style.width%3D%5C%5C%5C%22100%25%5C%5C%5C%22%3Bthis.frame.style.position%3D%5C%5C%5C%22relative%5C%5C%5C%22%3Bthis.container.appendChild(this.frame)%3Bthis.frame.prev%3Ddocument.createElement(%5C%5C%5C%22INPUT%5C%5C%5C%22)%3Bthis.frame.prev.type%3D%5C%5C%5C%22BUTTON%5C%5C%5C%22%3Bthis.frame.prev.value%3D%5C%5C%5C%22Prev%5C%5C%5C%22%3Bthis.frame.appendChild(this.frame.prev)%3Bthis.frame.play%3Ddocument.createElement(%5C%5C%5C%22INPUT%5C%5C%5C%22)%3Bthis.frame.play.type%3D%5C%5C%5C%22BUTTON%5C%5C%5C%22%3Bthis.frame.play.value%3D%5C%5C%5C%22Play%5C%5C%5C%22%3Bthis.frame.appendChild(this.frame.play)%3Bthis.frame.next%3Ddocument.createElement(%5C%5C%5C%22INPUT%5C%5C%5C%22)%3Bthis.frame.next.type%3D%5C%5C%5C%22BUTTON%5C%5C%5C%22%3Bthis.frame.next.value%3D%5C%5C%5C%22Next%5C%5C%5C%22%3Bthis.frame.appendChild(this.frame.next)%3Bthis.frame.bar%3Ddocument.createElement(%5C%5C%5C%22INPUT%5C%5C%5C%22)%3Bthis.frame.bar.type%3D%5C%5C%5C%22BUTTON%5C%5C%5C%22%3Bthis.frame.bar.style.position%3D%5C%5C%5C%22absolute%5C%5C%5C%22%3Bthis.frame.bar.style.border%3D%5C%5C%5C%221px%20solid%20red%5C%5C%5C%22%3Bthis.frame.bar.style.width%3D%5C%5C%5C%22100px%5C%5C%5C%22%3Bthis.frame.bar.style.height%3D%5C%5C%5C%226px%5C%5C%5C%22%3Bthis.frame.bar.style.borderRadius%3D%5C%5C%5C%222px%5C%5C%5C%22%3Bthis.frame.bar.style.MozBorderRadius%3D%5C%5C%5C%222px%5C%5C%5C%22%3Bthis.frame.bar.style.border%3D%5C%5C%5C%221px%20solid%20%237F7F7F%5C%5C%5C%22%3Bthis.frame.bar.style.backgroundColor%3D%5C%5C%5C%22%23E5E5E5%5C%5C%5C%22%3Bthis.frame.appendChild(this.frame.bar)%3Bthis.frame.slide%3Ddocument.createElement(%5C%5C%5C%22INPUT%5C%5C%5C%22)%3Bthis.frame.slide.type%3D%5C%5C%5C%22BUTTON%5C%5C%5C%22%3Bthis.frame.slide.style.margin%3D%5C%5C%5C%220px%5C%5C%5C%22%3Bthis.frame.slide.value%3D%5C%5C%5C%22%20%5C%5C%5C%22%3Bthis.frame.slide.style.position%3D%5C%5C%5C%22relative%5C%5C%5C%22%3Bthis.frame.slide.style.left%3D%5C%5C%5C%22-100px%5C%5C%5C%22%3Bthis.frame.appendChild(this.frame.slide)%3Bvar%20me%3Dthis%3Bthis.frame.slide.onmousedown%3Dfunction(event)%7Bme._onMouseDown(event)%7D%3Bthis.frame.prev.onclick%3Dfunction(event)%7Bme.prev(event)%7D%3Bthis.frame.play.onclick%3Dfunction(event)%7Bme.togglePlay(event)%7D%3Bthis.frame.next.onclick%3Dfunction(event)%7Bme.next(event)%7D%7Dthis.onChangeCallback%3Dundefined%3Bthis.values%3D%5B%5D%3Bthis.index%3Dundefined%3Bthis.playTimeout%3Dundefined%3Bthis.playInterval%3D1e3%3Bthis.playLoop%3Dtrue%7DSlider.prototype.prev%3Dfunction()%7Bvar%20index%3Dthis.getIndex()%3Bif(index%3E0)%7Bindex--%3Bthis.setIndex(index)%7D%7D%3BSlider.prototype.next%3Dfunction()%7Bvar%20index%3Dthis.getIndex()%3Bif(index%3Cthis.values.length-1)%7Bindex%2B%2B%3Bthis.setIndex(index)%7D%7D%3BSlider.prototype.playNext%3Dfunction()%7Bvar%20start%3Dnew%20Date%3Bvar%20index%3Dthis.getIndex()%3Bif(index%3Cthis.values.length-1)%7Bindex%2B%2B%3Bthis.setIndex(index)%7Delse%20if(this.playLoop)%7Bindex%3D0%3Bthis.setIndex(index)%7Dvar%20end%3Dnew%20Date%3Bvar%20diff%3Dend-start%3Bvar%20interval%3DMath.max(this.playInterval-diff%2C0)%3Bvar%20me%3Dthis%3Bthis.playTimeout%3DsetTimeout(function()%7Bme.playNext()%7D%2Cinterval)%7D%3BSlider.prototype.togglePlay%3Dfunction()%7Bif(this.playTimeout%3D%3D%3Dundefined)%7Bthis.play()%7Delse%7Bthis.stop()%7D%7D%3BSlider.prototype.play%3Dfunction()%7Bif(this.playTimeout)return%3Bthis.playNext()%3Bif(this.frame)%7Bthis.frame.play.value%3D%5C%5C%5C%22Stop%5C%5C%5C%22%7D%7D%3BSlider.prototype.stop%3Dfunction()%7BclearInterval(this.playTimeout)%3Bthis.playTimeout%3Dundefined%3Bif(this.frame)%7Bthis.frame.play.value%3D%5C%5C%5C%22Play%5C%5C%5C%22%7D%7D%3BSlider.prototype.setOnChangeCallback%3Dfunction(callback)%7Bthis.onChangeCallback%3Dcallback%7D%3BSlider.prototype.setPlayInterval%3Dfunction(interval)%7Bthis.playInterval%3Dinterval%7D%3BSlider.prototype.getPlayInterval%3Dfunction()%7Breturn%20this.playInterval%7D%3BSlider.prototype.setPlayLoop%3Dfunction(doLoop)%7Bthis.playLoop%3DdoLoop%7D%3BSlider.prototype.onChange%3Dfunction()%7Bif(this.onChangeCallback!%3D%3Dundefined)%7Bthis.onChangeCallback()%7D%7D%3BSlider.prototype.redraw%3Dfunction()%7Bif(this.frame)%7Bthis.frame.bar.style.top%3Dthis.frame.clientHeight%2F2-this.frame.bar.offsetHeight%2F2%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bthis.frame.bar.style.width%3Dthis.frame.clientWidth-this.frame.prev.clientWidth-this.frame.play.clientWidth-this.frame.next.clientWidth-30%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bvar%20left%3Dthis.indexToLeft(this.index)%3Bthis.frame.slide.style.left%3Dleft%2B%5C%5C%5C%22px%5C%5C%5C%22%7D%7D%3BSlider.prototype.setValues%3Dfunction(values)%7Bthis.values%3Dvalues%3Bif(this.values.length%3E0)this.setIndex(0)%3Belse%20this.index%3Dundefined%7D%3BSlider.prototype.setIndex%3Dfunction(index)%7Bif(index%3Cthis.values.length)%7Bthis.index%3Dindex%3Bthis.redraw()%3Bthis.onChange()%7Delse%7Bthrow%20new%20Error(%5C%5C%5C%22Index%20out%20of%20range%5C%5C%5C%22)%7D%7D%3BSlider.prototype.getIndex%3Dfunction()%7Breturn%20this.index%7D%3BSlider.prototype.get%3Dfunction()%7Breturn%20this.values%5Bthis.index%5D%7D%3BSlider.prototype._onMouseDown%3Dfunction(event)%7Bvar%20leftButtonDown%3Devent.which%3Fevent.which%3D%3D%3D1%3Aevent.button%3D%3D%3D1%3Bif(!leftButtonDown)return%3Bthis.startClientX%3Devent.clientX%3Bthis.startSlideX%3DparseFloat(this.frame.slide.style.left)%3Bthis.frame.style.cursor%3D%5C%5C%5C%22move%5C%5C%5C%22%3Bvar%20me%3Dthis%3Bthis.onmousemove%3Dfunction(event)%7Bme._onMouseMove(event)%7D%3Bthis.onmouseup%3Dfunction(event)%7Bme._onMouseUp(event)%7D%3Butil.addEventListener(document%2C%5C%5C%5C%22mousemove%5C%5C%5C%22%2Cthis.onmousemove)%3Butil.addEventListener(document%2C%5C%5C%5C%22mouseup%5C%5C%5C%22%2Cthis.onmouseup)%3Butil.preventDefault(event)%7D%3BSlider.prototype.leftToIndex%3Dfunction(left)%7Bvar%20width%3DparseFloat(this.frame.bar.style.width)-this.frame.slide.clientWidth-10%3Bvar%20x%3Dleft-3%3Bvar%20index%3DMath.round(x%2Fwidth*(this.values.length-1))%3Bif(index%3C0)index%3D0%3Bif(index%3Ethis.values.length-1)index%3Dthis.values.length-1%3Breturn%20index%7D%3BSlider.prototype.indexToLeft%3Dfunction(index)%7Bvar%20width%3DparseFloat(this.frame.bar.style.width)-this.frame.slide.clientWidth-10%3Bvar%20x%3Dindex%2F(this.values.length-1)*width%3Bvar%20left%3Dx%2B3%3Breturn%20left%7D%3BSlider.prototype._onMouseMove%3Dfunction(event)%7Bvar%20diff%3Devent.clientX-this.startClientX%3Bvar%20x%3Dthis.startSlideX%2Bdiff%3Bvar%20index%3Dthis.leftToIndex(x)%3Bthis.setIndex(index)%3Butil.preventDefault()%7D%3BSlider.prototype._onMouseUp%3Dfunction(event)%7Bthis.frame.style.cursor%3D%5C%5C%5C%22auto%5C%5C%5C%22%3Butil.removeEventListener(document%2C%5C%5C%5C%22mousemove%5C%5C%5C%22%2Cthis.onmousemove)%3Butil.removeEventListener(document%2C%5C%5C%5C%22mouseup%5C%5C%5C%22%2Cthis.onmouseup)%3Butil.preventDefault()%7D%3Bmodule.exports%3DSlider%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bfunction%20StepNumber(start%2Cend%2Cstep%2CprettyStep)%7Bthis._start%3D0%3Bthis._end%3D0%3Bthis._step%3D1%3Bthis.prettyStep%3Dtrue%3Bthis.precision%3D5%3Bthis._current%3D0%3Bthis.setRange(start%2Cend%2Cstep%2CprettyStep)%7DStepNumber.prototype.isNumeric%3Dfunction(n)%7Breturn!isNaN(parseFloat(n))%26%26isFinite(n)%7D%3BStepNumber.prototype.setRange%3Dfunction(start%2Cend%2Cstep%2CprettyStep)%7Bif(!this.isNumeric(start))%7Bthrow%20new%20Error(%5C%5C%5C%22Parameter%20'start'%20is%20not%20numeric%3B%20value%3A%20%5C%5C%5C%22%2Bstart)%7Dif(!this.isNumeric(end))%7Bthrow%20new%20Error(%5C%5C%5C%22Parameter%20'end'%20is%20not%20numeric%3B%20value%3A%20%5C%5C%5C%22%2Bstart)%7Dif(!this.isNumeric(step))%7Bthrow%20new%20Error(%5C%5C%5C%22Parameter%20'step'%20is%20not%20numeric%3B%20value%3A%20%5C%5C%5C%22%2Bstart)%7Dthis._start%3Dstart%3Fstart%3A0%3Bthis._end%3Dend%3Fend%3A0%3Bthis.setStep(step%2CprettyStep)%7D%3BStepNumber.prototype.setStep%3Dfunction(step%2CprettyStep)%7Bif(step%3D%3D%3Dundefined%7C%7Cstep%3C%3D0)return%3Bif(prettyStep!%3D%3Dundefined)this.prettyStep%3DprettyStep%3Bif(this.prettyStep%3D%3D%3Dtrue)this._step%3DStepNumber.calculatePrettyStep(step)%3Belse%20this._step%3Dstep%7D%3BStepNumber.calculatePrettyStep%3Dfunction(step)%7Bvar%20log10%3Dfunction%20log10(x)%7Breturn%20Math.log(x)%2FMath.LN10%7D%3Bvar%20step1%3DMath.pow(10%2CMath.round(log10(step)))%2Cstep2%3D2*Math.pow(10%2CMath.round(log10(step%2F2)))%2Cstep5%3D5*Math.pow(10%2CMath.round(log10(step%2F5)))%3Bvar%20prettyStep%3Dstep1%3Bif(Math.abs(step2-step)%3C%3DMath.abs(prettyStep-step))prettyStep%3Dstep2%3Bif(Math.abs(step5-step)%3C%3DMath.abs(prettyStep-step))prettyStep%3Dstep5%3Bif(prettyStep%3C%3D0)%7BprettyStep%3D1%7Dreturn%20prettyStep%7D%3BStepNumber.prototype.getCurrent%3Dfunction()%7Breturn%20parseFloat(this._current.toPrecision(this.precision))%7D%3BStepNumber.prototype.getStep%3Dfunction()%7Breturn%20this._step%7D%3BStepNumber.prototype.start%3Dfunction(checkFirst)%7Bif(checkFirst%3D%3D%3Dundefined)%7BcheckFirst%3Dfalse%7Dthis._current%3Dthis._start-this._start%25this._step%3Bif(checkFirst)%7Bif(this.getCurrent()%3Cthis._start)%7Bthis.next()%7D%7D%7D%3BStepNumber.prototype.next%3Dfunction()%7Bthis._current%2B%3Dthis._step%7D%3BStepNumber.prototype.end%3Dfunction()%7Breturn%20this._current%3Ethis._end%7D%3Bmodule.exports%3DStepNumber%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bvar%20_typeof2%3D__webpack_require__(6)%3Bvar%20_typeof3%3D_interopRequireDefault(_typeof2)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20util%3D__webpack_require__(2)%3Bvar%20Camera%3D__webpack_require__(95)%3Bvar%20Point3d%3D__webpack_require__(34)%3Bvar%20STYLE%3D%7BBAR%3A0%2CBARCOLOR%3A1%2CBARSIZE%3A2%2CDOT%3A3%2CDOTLINE%3A4%2CDOTCOLOR%3A5%2CDOTSIZE%3A6%2CGRID%3A7%2CLINE%3A8%2CSURFACE%3A9%7D%3Bvar%20STYLENAME%3D%7Bdot%3ASTYLE.DOT%2C%5C%5C%5C%22dot-line%5C%5C%5C%22%3ASTYLE.DOTLINE%2C%5C%5C%5C%22dot-color%5C%5C%5C%22%3ASTYLE.DOTCOLOR%2C%5C%5C%5C%22dot-size%5C%5C%5C%22%3ASTYLE.DOTSIZE%2Cline%3ASTYLE.LINE%2Cgrid%3ASTYLE.GRID%2Csurface%3ASTYLE.SURFACE%2Cbar%3ASTYLE.BAR%2C%5C%5C%5C%22bar-color%5C%5C%5C%22%3ASTYLE.BARCOLOR%2C%5C%5C%5C%22bar-size%5C%5C%5C%22%3ASTYLE.BARSIZE%7D%3Bvar%20OPTIONKEYS%3D%5B%5C%5C%5C%22width%5C%5C%5C%22%2C%5C%5C%5C%22height%5C%5C%5C%22%2C%5C%5C%5C%22filterLabel%5C%5C%5C%22%2C%5C%5C%5C%22legendLabel%5C%5C%5C%22%2C%5C%5C%5C%22xLabel%5C%5C%5C%22%2C%5C%5C%5C%22yLabel%5C%5C%5C%22%2C%5C%5C%5C%22zLabel%5C%5C%5C%22%2C%5C%5C%5C%22xValueLabel%5C%5C%5C%22%2C%5C%5C%5C%22yValueLabel%5C%5C%5C%22%2C%5C%5C%5C%22zValueLabel%5C%5C%5C%22%2C%5C%5C%5C%22showXAxis%5C%5C%5C%22%2C%5C%5C%5C%22showYAxis%5C%5C%5C%22%2C%5C%5C%5C%22showZAxis%5C%5C%5C%22%2C%5C%5C%5C%22showGrid%5C%5C%5C%22%2C%5C%5C%5C%22showPerspective%5C%5C%5C%22%2C%5C%5C%5C%22showShadow%5C%5C%5C%22%2C%5C%5C%5C%22keepAspectRatio%5C%5C%5C%22%2C%5C%5C%5C%22verticalRatio%5C%5C%5C%22%2C%5C%5C%5C%22dotSizeRatio%5C%5C%5C%22%2C%5C%5C%5C%22dotSizeMinFraction%5C%5C%5C%22%2C%5C%5C%5C%22dotSizeMaxFraction%5C%5C%5C%22%2C%5C%5C%5C%22showAnimationControls%5C%5C%5C%22%2C%5C%5C%5C%22animationInterval%5C%5C%5C%22%2C%5C%5C%5C%22animationPreload%5C%5C%5C%22%2C%5C%5C%5C%22animationAutoStart%5C%5C%5C%22%2C%5C%5C%5C%22axisColor%5C%5C%5C%22%2C%5C%5C%5C%22gridColor%5C%5C%5C%22%2C%5C%5C%5C%22xCenter%5C%5C%5C%22%2C%5C%5C%5C%22yCenter%5C%5C%5C%22%5D%3Bvar%20PREFIXEDOPTIONKEYS%3D%5B%5C%5C%5C%22xBarWidth%5C%5C%5C%22%2C%5C%5C%5C%22yBarWidth%5C%5C%5C%22%2C%5C%5C%5C%22valueMin%5C%5C%5C%22%2C%5C%5C%5C%22valueMax%5C%5C%5C%22%2C%5C%5C%5C%22xMin%5C%5C%5C%22%2C%5C%5C%5C%22xMax%5C%5C%5C%22%2C%5C%5C%5C%22xStep%5C%5C%5C%22%2C%5C%5C%5C%22yMin%5C%5C%5C%22%2C%5C%5C%5C%22yMax%5C%5C%5C%22%2C%5C%5C%5C%22yStep%5C%5C%5C%22%2C%5C%5C%5C%22zMin%5C%5C%5C%22%2C%5C%5C%5C%22zMax%5C%5C%5C%22%2C%5C%5C%5C%22zStep%5C%5C%5C%22%5D%3Bvar%20DEFAULTS%3Dundefined%3Bfunction%20isEmpty(obj)%7Bfor(var%20prop%20in%20obj)%7Bif(obj.hasOwnProperty(prop))return%20false%7Dreturn%20true%7Dfunction%20capitalize(str)%7Bif(str%3D%3D%3Dundefined%7C%7Cstr%3D%3D%3D%5C%5C%5C%22%5C%5C%5C%22%7C%7Ctypeof%20str!%3D%5C%5C%5C%22string%5C%5C%5C%22)%7Breturn%20str%7Dreturn%20str.charAt(0).toUpperCase()%2Bstr.slice(1)%7Dfunction%20prefixFieldName(prefix%2CfieldName)%7Bif(prefix%3D%3D%3Dundefined%7C%7Cprefix%3D%3D%3D%5C%5C%5C%22%5C%5C%5C%22)%7Breturn%20fieldName%7Dreturn%20prefix%2Bcapitalize(fieldName)%7Dfunction%20forceCopy(src%2Cdst%2Cfields%2Cprefix)%7Bvar%20srcKey%3Bvar%20dstKey%3Bfor(var%20i%3D0%3Bi%3Cfields.length%3B%2B%2Bi)%7BsrcKey%3Dfields%5Bi%5D%3BdstKey%3DprefixFieldName(prefix%2CsrcKey)%3Bdst%5BdstKey%5D%3Dsrc%5BsrcKey%5D%7D%7Dfunction%20safeCopy(src%2Cdst%2Cfields%2Cprefix)%7Bvar%20srcKey%3Bvar%20dstKey%3Bfor(var%20i%3D0%3Bi%3Cfields.length%3B%2B%2Bi)%7BsrcKey%3Dfields%5Bi%5D%3Bif(src%5BsrcKey%5D%3D%3D%3Dundefined)continue%3BdstKey%3DprefixFieldName(prefix%2CsrcKey)%3Bdst%5BdstKey%5D%3Dsrc%5BsrcKey%5D%7D%7Dfunction%20setDefaults(src%2Cdst)%7Bif(src%3D%3D%3Dundefined%7C%7CisEmpty(src))%7Bthrow%20new%20Error(%5C%5C%5C%22No%20DEFAULTS%20passed%5C%5C%5C%22)%7Dif(dst%3D%3D%3Dundefined)%7Bthrow%20new%20Error(%5C%5C%5C%22No%20dst%20passed%5C%5C%5C%22)%7DDEFAULTS%3Dsrc%3BforceCopy(src%2Cdst%2COPTIONKEYS)%3BforceCopy(src%2Cdst%2CPREFIXEDOPTIONKEYS%2C%5C%5C%5C%22default%5C%5C%5C%22)%3BsetSpecialSettings(src%2Cdst)%3Bdst.margin%3D10%3Bdst.showGrayBottom%3Dfalse%3Bdst.showTooltip%3Dfalse%3Bdst.onclick_callback%3Dnull%3Bdst.eye%3Dnew%20Point3d(0%2C0%2C-1)%7Dfunction%20setOptions(options%2Cdst)%7Bif(options%3D%3D%3Dundefined)%7Breturn%7Dif(dst%3D%3D%3Dundefined)%7Bthrow%20new%20Error(%5C%5C%5C%22No%20dst%20passed%5C%5C%5C%22)%7Dif(DEFAULTS%3D%3D%3Dundefined%7C%7CisEmpty(DEFAULTS))%7Bthrow%20new%20Error(%5C%5C%5C%22DEFAULTS%20not%20set%20for%20module%20Settings%5C%5C%5C%22)%7DsafeCopy(options%2Cdst%2COPTIONKEYS)%3BsafeCopy(options%2Cdst%2CPREFIXEDOPTIONKEYS%2C%5C%5C%5C%22default%5C%5C%5C%22)%3BsetSpecialSettings(options%2Cdst)%7Dfunction%20setSpecialSettings(src%2Cdst)%7Bif(src.backgroundColor!%3D%3Dundefined)%7BsetBackgroundColor(src.backgroundColor%2Cdst)%7DsetDataColor(src.dataColor%2Cdst)%3BsetStyle(src.style%2Cdst)%3BsetShowLegend(src.showLegend%2Cdst)%3BsetCameraPosition(src.cameraPosition%2Cdst)%3Bif(src.tooltip!%3D%3Dundefined)%7Bdst.showTooltip%3Dsrc.tooltip%7Dif(src.onclick!%3Dundefined)%7Bdst.onclick_callback%3Dsrc.onclick%7Dif(src.tooltipStyle!%3D%3Dundefined)%7Butil.selectiveDeepExtend(%5B%5C%5C%5C%22tooltipStyle%5C%5C%5C%22%5D%2Cdst%2Csrc)%7D%7Dfunction%20setShowLegend(showLegend%2Cdst)%7Bif(showLegend%3D%3D%3Dundefined)%7Bvar%20isAutoByDefault%3DDEFAULTS.showLegend%3D%3D%3Dundefined%3Bif(isAutoByDefault)%7Bvar%20isLegendGraphStyle%3Ddst.style%3D%3D%3DSTYLE.DOTCOLOR%7C%7Cdst.style%3D%3D%3DSTYLE.DOTSIZE%3Bdst.showLegend%3DisLegendGraphStyle%7Delse%7B%7D%7Delse%7Bdst.showLegend%3DshowLegend%7D%7Dfunction%20getStyleNumberByName(styleName)%7Bvar%20number%3DSTYLENAME%5BstyleName%5D%3Bif(number%3D%3D%3Dundefined)%7Breturn-1%7Dreturn%20number%7Dfunction%20checkStyleNumber(style)%7Bvar%20valid%3Dfalse%3Bfor(var%20n%20in%20STYLE)%7Bif(STYLE%5Bn%5D%3D%3D%3Dstyle)%7Bvalid%3Dtrue%3Bbreak%7D%7Dreturn%20valid%7Dfunction%20setStyle(style%2Cdst)%7Bif(style%3D%3D%3Dundefined)%7Breturn%7Dvar%20styleNumber%3Bif(typeof%20style%3D%3D%3D%5C%5C%5C%22string%5C%5C%5C%22)%7BstyleNumber%3DgetStyleNumberByName(style)%3Bif(styleNumber%3D%3D%3D-1)%7Bthrow%20new%20Error(%5C%5C%5C%22Style%20'%5C%5C%5C%22%2Bstyle%2B%5C%5C%5C%22'%20is%20invalid%5C%5C%5C%22)%7D%7Delse%7Bif(!checkStyleNumber(style))%7Bthrow%20new%20Error(%5C%5C%5C%22Style%20'%5C%5C%5C%22%2Bstyle%2B%5C%5C%5C%22'%20is%20invalid%5C%5C%5C%22)%7DstyleNumber%3Dstyle%7Ddst.style%3DstyleNumber%7Dfunction%20setBackgroundColor(backgroundColor%2Cdst)%7Bvar%20fill%3D%5C%5C%5C%22white%5C%5C%5C%22%3Bvar%20stroke%3D%5C%5C%5C%22gray%5C%5C%5C%22%3Bvar%20strokeWidth%3D1%3Bif(typeof%20backgroundColor%3D%3D%3D%5C%5C%5C%22string%5C%5C%5C%22)%7Bfill%3DbackgroundColor%3Bstroke%3D%5C%5C%5C%22none%5C%5C%5C%22%3BstrokeWidth%3D0%7Delse%20if((typeof%20backgroundColor%3D%3D%3D%5C%5C%5C%22undefined%5C%5C%5C%22%3F%5C%5C%5C%22undefined%5C%5C%5C%22%3A(0%2C_typeof3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(backgroundColor))%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22)%7Bif(backgroundColor.fill!%3D%3Dundefined)fill%3DbackgroundColor.fill%3Bif(backgroundColor.stroke!%3D%3Dundefined)stroke%3DbackgroundColor.stroke%3Bif(backgroundColor.strokeWidth!%3D%3Dundefined)strokeWidth%3DbackgroundColor.strokeWidth%7Delse%7Bthrow%20new%20Error(%5C%5C%5C%22Unsupported%20type%20of%20backgroundColor%5C%5C%5C%22)%7Ddst.frame.style.backgroundColor%3Dfill%3Bdst.frame.style.borderColor%3Dstroke%3Bdst.frame.style.borderWidth%3DstrokeWidth%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bdst.frame.style.borderStyle%3D%5C%5C%5C%22solid%5C%5C%5C%22%7Dfunction%20setDataColor(dataColor%2Cdst)%7Bif(dataColor%3D%3D%3Dundefined)%7Breturn%7Dif(dst.dataColor%3D%3D%3Dundefined)%7Bdst.dataColor%3D%7B%7D%7Dif(typeof%20dataColor%3D%3D%3D%5C%5C%5C%22string%5C%5C%5C%22)%7Bdst.dataColor.fill%3DdataColor%3Bdst.dataColor.stroke%3DdataColor%7Delse%7Bif(dataColor.fill)%7Bdst.dataColor.fill%3DdataColor.fill%7Dif(dataColor.stroke)%7Bdst.dataColor.stroke%3DdataColor.stroke%7Dif(dataColor.strokeWidth!%3D%3Dundefined)%7Bdst.dataColor.strokeWidth%3DdataColor.strokeWidth%7D%7D%7Dfunction%20setCameraPosition(cameraPosition%2Cdst)%7Bvar%20camPos%3DcameraPosition%3Bif(camPos%3D%3D%3Dundefined)%7Breturn%7Dif(dst.camera%3D%3D%3Dundefined)%7Bdst.camera%3Dnew%20Camera%7Ddst.camera.setArmRotation(camPos.horizontal%2CcamPos.vertical)%3Bdst.camera.setArmLength(camPos.distance)%7Dmodule.exports.STYLE%3DSTYLE%3Bmodule.exports.setDefaults%3DsetDefaults%3Bmodule.exports.setOptions%3DsetOptions%3Bmodule.exports.setCameraPosition%3DsetCameraPosition%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bvar%20_sign%3D__webpack_require__(165)%3Bvar%20_sign2%3D_interopRequireDefault(_sign)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20Point3d%3D__webpack_require__(34)%3Bfunction%20Camera()%7Bthis.armLocation%3Dnew%20Point3d%3Bthis.armRotation%3D%7B%7D%3Bthis.armRotation.horizontal%3D0%3Bthis.armRotation.vertical%3D0%3Bthis.armLength%3D1.7%3Bthis.cameraOffset%3Dnew%20Point3d%3Bthis.offsetMultiplier%3D.6%3Bthis.cameraLocation%3Dnew%20Point3d%3Bthis.cameraRotation%3Dnew%20Point3d(.5*Math.PI%2C0%2C0)%3Bthis.calculateCameraOrientation()%7DCamera.prototype.setOffset%3Dfunction(x%2Cy)%7Bvar%20abs%3DMath.abs%2Csign%3D_sign2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%2Cmul%3Dthis.offsetMultiplier%2Cborder%3Dthis.armLength*mul%3Bif(abs(x)%3Eborder)%7Bx%3Dsign(x)*border%7Dif(abs(y)%3Eborder)%7By%3Dsign(y)*border%7Dthis.cameraOffset.x%3Dx%3Bthis.cameraOffset.y%3Dy%3Bthis.calculateCameraOrientation()%7D%3BCamera.prototype.getOffset%3Dfunction()%7Breturn%20this.cameraOffset%7D%3BCamera.prototype.setArmLocation%3Dfunction(x%2Cy%2Cz)%7Bthis.armLocation.x%3Dx%3Bthis.armLocation.y%3Dy%3Bthis.armLocation.z%3Dz%3Bthis.calculateCameraOrientation()%7D%3BCamera.prototype.setArmRotation%3Dfunction(horizontal%2Cvertical)%7Bif(horizontal!%3D%3Dundefined)%7Bthis.armRotation.horizontal%3Dhorizontal%7Dif(vertical!%3D%3Dundefined)%7Bthis.armRotation.vertical%3Dvertical%3Bif(this.armRotation.vertical%3C0)this.armRotation.vertical%3D0%3Bif(this.armRotation.vertical%3E.5*Math.PI)this.armRotation.vertical%3D.5*Math.PI%7Dif(horizontal!%3D%3Dundefined%7C%7Cvertical!%3D%3Dundefined)%7Bthis.calculateCameraOrientation()%7D%7D%3BCamera.prototype.getArmRotation%3Dfunction()%7Bvar%20rot%3D%7B%7D%3Brot.horizontal%3Dthis.armRotation.horizontal%3Brot.vertical%3Dthis.armRotation.vertical%3Breturn%20rot%7D%3BCamera.prototype.setArmLength%3Dfunction(length)%7Bif(length%3D%3D%3Dundefined)return%3Bthis.armLength%3Dlength%3Bif(this.armLength%3C.71)this.armLength%3D.71%3Bif(this.armLength%3E5)this.armLength%3D5%3Bthis.setOffset(this.cameraOffset.x%2Cthis.cameraOffset.y)%3Bthis.calculateCameraOrientation()%7D%3BCamera.prototype.getArmLength%3Dfunction()%7Breturn%20this.armLength%7D%3BCamera.prototype.getCameraLocation%3Dfunction()%7Breturn%20this.cameraLocation%7D%3BCamera.prototype.getCameraRotation%3Dfunction()%7Breturn%20this.cameraRotation%7D%3BCamera.prototype.calculateCameraOrientation%3Dfunction()%7Bthis.cameraLocation.x%3Dthis.armLocation.x-this.armLength*Math.sin(this.armRotation.horizontal)*Math.cos(this.armRotation.vertical)%3Bthis.cameraLocation.y%3Dthis.armLocation.y-this.armLength*Math.cos(this.armRotation.horizontal)*Math.cos(this.armRotation.vertical)%3Bthis.cameraLocation.z%3Dthis.armLocation.z%2Bthis.armLength*Math.sin(this.armRotation.vertical)%3Bthis.cameraRotation.x%3DMath.PI%2F2-this.armRotation.vertical%3Bthis.cameraRotation.y%3D0%3Bthis.cameraRotation.z%3D-this.armRotation.horizontal%3Bvar%20xa%3Dthis.cameraRotation.x%3Bvar%20za%3Dthis.cameraRotation.z%3Bvar%20dx%3Dthis.cameraOffset.x%3Bvar%20dy%3Dthis.cameraOffset.y%3Bvar%20sin%3DMath.sin%2Ccos%3DMath.cos%3Bthis.cameraLocation.x%3Dthis.cameraLocation.x%2Bdx*cos(za)%2Bdy*-sin(za)*cos(xa)%3Bthis.cameraLocation.y%3Dthis.cameraLocation.y%2Bdx*sin(za)%2Bdy*cos(za)*cos(xa)%3Bthis.cameraLocation.z%3Dthis.cameraLocation.z%2Bdy*sin(xa)%7D%3Bmodule.exports%3DCamera%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bvar%20DataView%3D__webpack_require__(12)%3Bfunction%20Filter(dataGroup%2Ccolumn%2Cgraph)%7Bthis.dataGroup%3DdataGroup%3Bthis.column%3Dcolumn%3Bthis.graph%3Dgraph%3Bthis.index%3Dundefined%3Bthis.value%3Dundefined%3Bthis.values%3DdataGroup.getDistinctValues(this.column)%3Bif(this.values.length%3E0)%7Bthis.selectValue(0)%7Dthis.dataPoints%3D%5B%5D%3Bthis.loaded%3Dfalse%3Bthis.onLoadCallback%3Dundefined%3Bif(graph.animationPreload)%7Bthis.loaded%3Dfalse%3Bthis.loadInBackground()%7Delse%7Bthis.loaded%3Dtrue%7D%7DFilter.prototype.isLoaded%3Dfunction()%7Breturn%20this.loaded%7D%3BFilter.prototype.getLoadedProgress%3Dfunction()%7Bvar%20len%3Dthis.values.length%3Bvar%20i%3D0%3Bwhile(this.dataPoints%5Bi%5D)%7Bi%2B%2B%7Dreturn%20Math.round(i%2Flen*100)%7D%3BFilter.prototype.getLabel%3Dfunction()%7Breturn%20this.graph.filterLabel%7D%3BFilter.prototype.getColumn%3Dfunction()%7Breturn%20this.column%7D%3BFilter.prototype.getSelectedValue%3Dfunction()%7Bif(this.index%3D%3D%3Dundefined)return%20undefined%3Breturn%20this.values%5Bthis.index%5D%7D%3BFilter.prototype.getValues%3Dfunction()%7Breturn%20this.values%7D%3BFilter.prototype.getValue%3Dfunction(index)%7Bif(index%3E%3Dthis.values.length)throw%20new%20Error(%5C%5C%5C%22Index%20out%20of%20range%5C%5C%5C%22)%3Breturn%20this.values%5Bindex%5D%7D%3BFilter.prototype._getDataPoints%3Dfunction(index)%7Bif(index%3D%3D%3Dundefined)index%3Dthis.index%3Bif(index%3D%3D%3Dundefined)return%5B%5D%3Bvar%20dataPoints%3Bif(this.dataPoints%5Bindex%5D)%7BdataPoints%3Dthis.dataPoints%5Bindex%5D%7Delse%7Bvar%20f%3D%7B%7D%3Bf.column%3Dthis.column%3Bf.value%3Dthis.values%5Bindex%5D%3Bvar%20dataView%3Dnew%20DataView(this.dataGroup.getDataSet()%2C%7Bfilter%3Afunction%20filter(item)%7Breturn%20item%5Bf.column%5D%3D%3Df.value%7D%7D).get()%3BdataPoints%3Dthis.dataGroup._getDataPoints(dataView)%3Bthis.dataPoints%5Bindex%5D%3DdataPoints%7Dreturn%20dataPoints%7D%3BFilter.prototype.setOnLoadCallback%3Dfunction(callback)%7Bthis.onLoadCallback%3Dcallback%7D%3BFilter.prototype.selectValue%3Dfunction(index)%7Bif(index%3E%3Dthis.values.length)throw%20new%20Error(%5C%5C%5C%22Index%20out%20of%20range%5C%5C%5C%22)%3Bthis.index%3Dindex%3Bthis.value%3Dthis.values%5Bindex%5D%7D%3BFilter.prototype.loadInBackground%3Dfunction(index)%7Bif(index%3D%3D%3Dundefined)index%3D0%3Bvar%20frame%3Dthis.graph.frame%3Bif(index%3Cthis.values.length)%7Bif(frame.progress%3D%3D%3Dundefined)%7Bframe.progress%3Ddocument.createElement(%5C%5C%5C%22DIV%5C%5C%5C%22)%3Bframe.progress.style.position%3D%5C%5C%5C%22absolute%5C%5C%5C%22%3Bframe.progress.style.color%3D%5C%5C%5C%22gray%5C%5C%5C%22%3Bframe.appendChild(frame.progress)%7Dvar%20progress%3Dthis.getLoadedProgress()%3Bframe.progress.innerHTML%3D%5C%5C%5C%22Loading%20animation...%20%5C%5C%5C%22%2Bprogress%2B%5C%5C%5C%22%25%5C%5C%5C%22%3Bframe.progress.style.bottom%3D60%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bframe.progress.style.left%3D10%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bvar%20me%3Dthis%3BsetTimeout(function()%7Bme.loadInBackground(index%2B1)%7D%2C10)%3Bthis.loaded%3Dfalse%7Delse%7Bthis.loaded%3Dtrue%3Bif(frame.progress!%3D%3Dundefined)%7Bframe.removeChild(frame.progress)%3Bframe.progress%3Dundefined%7Dif(this.onLoadCallback)this.onLoadCallback()%7D%7D%3Bmodule.exports%3DFilter%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bvar%20keycharm%3D__webpack_require__(35)%3Bvar%20Emitter%3D__webpack_require__(44)%3Bvar%20Hammer%3D__webpack_require__(10)%3Bvar%20util%3D__webpack_require__(2)%3Bfunction%20Activator(container)%7Bthis.active%3Dfalse%3Bthis.dom%3D%7Bcontainer%3Acontainer%7D%3Bthis.dom.overlay%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bthis.dom.overlay.className%3D%5C%5C%5C%22vis-overlay%5C%5C%5C%22%3Bthis.dom.container.appendChild(this.dom.overlay)%3Bthis.hammer%3DHammer(this.dom.overlay)%3Bthis.hammer.on(%5C%5C%5C%22tap%5C%5C%5C%22%2Cthis._onTapOverlay.bind(this))%3Bvar%20me%3Dthis%3Bvar%20events%3D%5B%5C%5C%5C%22tap%5C%5C%5C%22%2C%5C%5C%5C%22doubletap%5C%5C%5C%22%2C%5C%5C%5C%22press%5C%5C%5C%22%2C%5C%5C%5C%22pinch%5C%5C%5C%22%2C%5C%5C%5C%22pan%5C%5C%5C%22%2C%5C%5C%5C%22panstart%5C%5C%5C%22%2C%5C%5C%5C%22panmove%5C%5C%5C%22%2C%5C%5C%5C%22panend%5C%5C%5C%22%5D%3Bevents.forEach(function(event)%7Bme.hammer.on(event%2Cfunction(event)%7Bevent.stopPropagation()%7D)%7D)%3Bif(document%26%26document.body)%7Bthis.onClick%3Dfunction(event)%7Bif(!_hasParent(event.target%2Ccontainer))%7Bme.deactivate()%7D%7D%3Bdocument.body.addEventListener(%5C%5C%5C%22click%5C%5C%5C%22%2Cthis.onClick)%7Dif(this.keycharm!%3D%3Dundefined)%7Bthis.keycharm.destroy()%7Dthis.keycharm%3Dkeycharm()%3Bthis.escListener%3Dthis.deactivate.bind(this)%7DEmitter(Activator.prototype)%3BActivator.current%3Dnull%3BActivator.prototype.destroy%3Dfunction()%7Bthis.deactivate()%3Bthis.dom.overlay.parentNode.removeChild(this.dom.overlay)%3Bif(this.onClick)%7Bdocument.body.removeEventListener(%5C%5C%5C%22click%5C%5C%5C%22%2Cthis.onClick)%7Dthis.hammer.destroy()%3Bthis.hammer%3Dnull%7D%3BActivator.prototype.activate%3Dfunction()%7Bif(Activator.current)%7BActivator.current.deactivate()%7DActivator.current%3Dthis%3Bthis.active%3Dtrue%3Bthis.dom.overlay.style.display%3D%5C%5C%5C%22none%5C%5C%5C%22%3Butil.addClassName(this.dom.container%2C%5C%5C%5C%22vis-active%5C%5C%5C%22)%3Bthis.emit(%5C%5C%5C%22change%5C%5C%5C%22)%3Bthis.emit(%5C%5C%5C%22activate%5C%5C%5C%22)%3Bthis.keycharm.bind(%5C%5C%5C%22esc%5C%5C%5C%22%2Cthis.escListener)%7D%3BActivator.prototype.deactivate%3Dfunction()%7Bthis.active%3Dfalse%3Bthis.dom.overlay.style.display%3D%5C%5C%5C%22%5C%5C%5C%22%3Butil.removeClassName(this.dom.container%2C%5C%5C%5C%22vis-active%5C%5C%5C%22)%3Bthis.keycharm.unbind(%5C%5C%5C%22esc%5C%5C%5C%22%2Cthis.escListener)%3Bthis.emit(%5C%5C%5C%22change%5C%5C%5C%22)%3Bthis.emit(%5C%5C%5C%22deactivate%5C%5C%5C%22)%7D%3BActivator.prototype._onTapOverlay%3Dfunction(event)%7Bthis.activate()%3Bevent.stopPropagation()%7D%3Bfunction%20_hasParent(element%2Cparent)%7Bwhile(element)%7Bif(element%3D%3D%3Dparent)%7Breturn%20true%7Delement%3Delement.parentNode%7Dreturn%20false%7Dmodule.exports%3DActivator%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bexports%5B%5C%5C%5C%22en%5C%5C%5C%22%5D%3D%7Bcurrent%3A%5C%5C%5C%22current%5C%5C%5C%22%2Ctime%3A%5C%5C%5C%22time%5C%5C%5C%22%7D%3Bexports%5B%5C%5C%5C%22en_EN%5C%5C%5C%22%5D%3Dexports%5B%5C%5C%5C%22en%5C%5C%5C%22%5D%3Bexports%5B%5C%5C%5C%22en_US%5C%5C%5C%22%5D%3Dexports%5B%5C%5C%5C%22en%5C%5C%5C%22%5D%3Bexports%5B%5C%5C%5C%22it%5C%5C%5C%22%5D%3D%7Bcurrent%3A%5C%5C%5C%22attuale%5C%5C%5C%22%2Ctime%3A%5C%5C%5C%22tempo%5C%5C%5C%22%7D%3Bexports%5B%5C%5C%5C%22it_IT%5C%5C%5C%22%5D%3Dexports%5B%5C%5C%5C%22it%5C%5C%5C%22%5D%3Bexports%5B%5C%5C%5C%22it_CH%5C%5C%5C%22%5D%3Dexports%5B%5C%5C%5C%22it%5C%5C%5C%22%5D%3Bexports%5B%5C%5C%5C%22nl%5C%5C%5C%22%5D%3D%7Bcurrent%3A%5C%5C%5C%22huidige%5C%5C%5C%22%2Ctime%3A%5C%5C%5C%22tijd%5C%5C%5C%22%7D%3Bexports%5B%5C%5C%5C%22nl_NL%5C%5C%5C%22%5D%3Dexports%5B%5C%5C%5C%22nl%5C%5C%5C%22%5D%3Bexports%5B%5C%5C%5C%22nl_BE%5C%5C%5C%22%5D%3Dexports%5B%5C%5C%5C%22nl%5C%5C%5C%22%5D%3Bexports%5B%5C%5C%5C%22de%5C%5C%5C%22%5D%3D%7Bcurrent%3A%5C%5C%5C%22Aktuelle%5C%5C%5C%22%2Ctime%3A%5C%5C%5C%22Zeit%5C%5C%5C%22%7D%3Bexports%5B%5C%5C%5C%22de_DE%5C%5C%5C%22%5D%3Dexports%5B%5C%5C%5C%22de%5C%5C%5C%22%5D%3Bexports%5B%5C%5C%5C%22fr%5C%5C%5C%22%5D%3D%7Bcurrent%3A%5C%5C%5C%22actuel%5C%5C%5C%22%2Ctime%3A%5C%5C%5C%22heure%5C%5C%5C%22%7D%3Bexports%5B%5C%5C%5C%22fr_FR%5C%5C%5C%22%5D%3Dexports%5B%5C%5C%5C%22fr%5C%5C%5C%22%5D%3Bexports%5B%5C%5C%5C%22fr_CA%5C%5C%5C%22%5D%3Dexports%5B%5C%5C%5C%22fr%5C%5C%5C%22%5D%3Bexports%5B%5C%5C%5C%22fr_BE%5C%5C%5C%22%5D%3Dexports%5B%5C%5C%5C%22fr%5C%5C%5C%22%5D%3Bexports%5B%5C%5C%5C%22es%5C%5C%5C%22%5D%3D%7Bcurrent%3A%5C%5C%5C%22corriente%5C%5C%5C%22%2Ctime%3A%5C%5C%5C%22hora%5C%5C%5C%22%7D%3Bexports%5B%5C%5C%5C%22es_ES%5C%5C%5C%22%5D%3Dexports%5B%5C%5C%5C%22es%5C%5C%5C%22%5D%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bvar%20_create%3D__webpack_require__(29)%3Bvar%20_create2%3D_interopRequireDefault(_create)%3Bvar%20_typeof2%3D__webpack_require__(6)%3Bvar%20_typeof3%3D_interopRequireDefault(_typeof2)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20Hammer%3D__webpack_require__(10)%3Bvar%20util%3D__webpack_require__(2)%3Bvar%20DataSet%3D__webpack_require__(11)%3Bvar%20DataView%3D__webpack_require__(12)%3Bvar%20TimeStep%3D__webpack_require__(66)%3Bvar%20Component%3D__webpack_require__(16)%3Bvar%20Group%3D__webpack_require__(68)%3Bvar%20BackgroundGroup%3D__webpack_require__(69)%3Bvar%20BoxItem%3D__webpack_require__(101)%3Bvar%20PointItem%3D__webpack_require__(102)%3Bvar%20RangeItem%3D__webpack_require__(70)%3Bvar%20BackgroundItem%3D__webpack_require__(103)%3Bvar%20Popup%3D__webpack_require__(104)%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3Bvar%20UNGROUPED%3D%5C%5C%5C%22__ungrouped__%5C%5C%5C%22%3Bvar%20BACKGROUND%3D%5C%5C%5C%22__background__%5C%5C%5C%22%3Bfunction%20ItemSet(body%2Coptions)%7Bthis.body%3Dbody%3Bthis.defaultOptions%3D%7Btype%3Anull%2Corientation%3A%7Bitem%3A%5C%5C%5C%22bottom%5C%5C%5C%22%7D%2Calign%3A%5C%5C%5C%22auto%5C%5C%5C%22%2Cstack%3Atrue%2CstackSubgroups%3Atrue%2CgroupOrderSwap%3Afunction%20groupOrderSwap(fromGroup%2CtoGroup%2Cgroups)%7Bvar%20targetOrder%3DtoGroup.order%3BtoGroup.order%3DfromGroup.order%3BfromGroup.order%3DtargetOrder%7D%2CgroupOrder%3A%5C%5C%5C%22order%5C%5C%5C%22%2Cselectable%3Atrue%2Cmultiselect%3Afalse%2CitemsAlwaysDraggable%3A%7Bitem%3Afalse%2Crange%3Afalse%7D%2Ceditable%3A%7BupdateTime%3Afalse%2CupdateGroup%3Afalse%2Cadd%3Afalse%2Cremove%3Afalse%2CoverrideItems%3Afalse%7D%2CgroupEditable%3A%7Border%3Afalse%2Cadd%3Afalse%2Cremove%3Afalse%7D%2Csnap%3ATimeStep.snap%2ConDropObjectOnItem%3Afunction%20onDropObjectOnItem(objectData%2Citem%2Ccallback)%7Bcallback(item)%7D%2ConAdd%3Afunction%20onAdd(item%2Ccallback)%7Bcallback(item)%7D%2ConUpdate%3Afunction%20onUpdate(item%2Ccallback)%7Bcallback(item)%7D%2ConMove%3Afunction%20onMove(item%2Ccallback)%7Bcallback(item)%7D%2ConRemove%3Afunction%20onRemove(item%2Ccallback)%7Bcallback(item)%7D%2ConMoving%3Afunction%20onMoving(item%2Ccallback)%7Bcallback(item)%7D%2ConAddGroup%3Afunction%20onAddGroup(item%2Ccallback)%7Bcallback(item)%7D%2ConMoveGroup%3Afunction%20onMoveGroup(item%2Ccallback)%7Bcallback(item)%7D%2ConRemoveGroup%3Afunction%20onRemoveGroup(item%2Ccallback)%7Bcallback(item)%7D%2Cmargin%3A%7Bitem%3A%7Bhorizontal%3A10%2Cvertical%3A10%7D%2Caxis%3A20%7D%2CshowTooltips%3Atrue%2Ctooltip%3A%7BfollowMouse%3Afalse%2CoverflowMethod%3A%5C%5C%5C%22flip%5C%5C%5C%22%7D%2CtooltipOnItemUpdateTime%3Afalse%7D%3Bthis.options%3Dutil.extend(%7B%7D%2Cthis.defaultOptions)%3Bthis.options.rtl%3Doptions.rtl%3Bthis.itemOptions%3D%7Btype%3A%7Bstart%3A%5C%5C%5C%22Date%5C%5C%5C%22%2Cend%3A%5C%5C%5C%22Date%5C%5C%5C%22%7D%7D%3Bthis.conversion%3D%7BtoScreen%3Abody.util.toScreen%2CtoTime%3Abody.util.toTime%7D%3Bthis.dom%3D%7B%7D%3Bthis.props%3D%7B%7D%3Bthis.hammer%3Dnull%3Bvar%20me%3Dthis%3Bthis.itemsData%3Dnull%3Bthis.groupsData%3Dnull%3Bthis.itemListeners%3D%7Badd%3Afunction%20add(event%2Cparams%2CsenderId)%7Bme._onAdd(params.items)%7D%2Cupdate%3Afunction%20update(event%2Cparams%2CsenderId)%7Bme._onUpdate(params.items)%7D%2Cremove%3Afunction%20remove(event%2Cparams%2CsenderId)%7Bme._onRemove(params.items)%7D%7D%3Bthis.groupListeners%3D%7Badd%3Afunction%20add(event%2Cparams%2CsenderId)%7Bme._onAddGroups(params.items)%3Bif(me.groupsData%26%26me.groupsData.length%3E0)%7Bvar%20groupsData%3Dme.groupsData.getDataSet()%3BgroupsData.get().forEach(function(groupData)%7Bif(groupData.nestedGroups)%7Bif(groupData.showNested!%3Dfalse)%7BgroupData.showNested%3Dtrue%7Dvar%20updatedGroups%3D%5B%5D%3BgroupData.nestedGroups.forEach(function(nestedGroupId)%7Bvar%20updatedNestedGroup%3DgroupsData.get(nestedGroupId)%3Bif(!updatedNestedGroup)%7Breturn%7DupdatedNestedGroup.nestedInGroup%3DgroupData.id%3Bif(groupData.showNested%3D%3Dfalse)%7BupdatedNestedGroup.visible%3Dfalse%7DupdatedGroups%3DupdatedGroups.concat(updatedNestedGroup)%7D)%3BgroupsData.update(updatedGroups%2CsenderId)%7D%7D)%7D%7D%2Cupdate%3Afunction%20update(event%2Cparams%2CsenderId)%7Bme._onUpdateGroups(params.items)%7D%2Cremove%3Afunction%20remove(event%2Cparams%2CsenderId)%7Bme._onRemoveGroups(params.items)%7D%7D%3Bthis.items%3D%7B%7D%3Bthis.groups%3D%7B%7D%3Bthis.groupIds%3D%5B%5D%3Bthis.selection%3D%5B%5D%3Bthis.popup%3Dnull%3Bthis.touchParams%3D%7B%7D%3Bthis.groupTouchParams%3D%7B%7D%3Bthis._create()%3Bthis.setOptions(options)%7DItemSet.prototype%3Dnew%20Component%3BItemSet.types%3D%7Bbackground%3ABackgroundItem%2Cbox%3ABoxItem%2Crange%3ARangeItem%2Cpoint%3APointItem%7D%3BItemSet.prototype._create%3Dfunction()%7Bvar%20frame%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bframe.className%3D%5C%5C%5C%22vis-itemset%5C%5C%5C%22%3Bframe%5B%5C%5C%5C%22timeline-itemset%5C%5C%5C%22%5D%3Dthis%3Bthis.dom.frame%3Dframe%3Bvar%20background%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bbackground.className%3D%5C%5C%5C%22vis-background%5C%5C%5C%22%3Bframe.appendChild(background)%3Bthis.dom.background%3Dbackground%3Bvar%20foreground%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bforeground.className%3D%5C%5C%5C%22vis-foreground%5C%5C%5C%22%3Bframe.appendChild(foreground)%3Bthis.dom.foreground%3Dforeground%3Bvar%20axis%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Baxis.className%3D%5C%5C%5C%22vis-axis%5C%5C%5C%22%3Bthis.dom.axis%3Daxis%3Bvar%20labelSet%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3BlabelSet.className%3D%5C%5C%5C%22vis-labelset%5C%5C%5C%22%3Bthis.dom.labelSet%3DlabelSet%3Bthis._updateUngrouped()%3Bvar%20backgroundGroup%3Dnew%20BackgroundGroup(BACKGROUND%2Cnull%2Cthis)%3BbackgroundGroup.show()%3Bthis.groups%5BBACKGROUND%5D%3DbackgroundGroup%3Bthis.hammer%3Dnew%20Hammer(this.body.dom.centerContainer)%3Bthis.hammer.on(%5C%5C%5C%22hammer.input%5C%5C%5C%22%2Cfunction(event)%7Bif(event.isFirst)%7Bthis._onTouch(event)%7D%7D.bind(this))%3Bthis.hammer.on(%5C%5C%5C%22panstart%5C%5C%5C%22%2Cthis._onDragStart.bind(this))%3Bthis.hammer.on(%5C%5C%5C%22panmove%5C%5C%5C%22%2Cthis._onDrag.bind(this))%3Bthis.hammer.on(%5C%5C%5C%22panend%5C%5C%5C%22%2Cthis._onDragEnd.bind(this))%3Bthis.hammer.get(%5C%5C%5C%22pan%5C%5C%5C%22).set(%7Bthreshold%3A5%2Cdirection%3AHammer.DIRECTION_HORIZONTAL%7D)%3Bthis.hammer.on(%5C%5C%5C%22tap%5C%5C%5C%22%2Cthis._onSelectItem.bind(this))%3Bthis.hammer.on(%5C%5C%5C%22press%5C%5C%5C%22%2Cthis._onMultiSelectItem.bind(this))%3Bthis.hammer.on(%5C%5C%5C%22doubletap%5C%5C%5C%22%2Cthis._onAddItem.bind(this))%3Bif(this.options.rtl)%7B%5C%5Cnthis.groupHammer%3Dnew%20Hammer(this.body.dom.rightContainer)%7Delse%7Bthis.groupHammer%3Dnew%20Hammer(this.body.dom.leftContainer)%7Dthis.groupHammer.on(%5C%5C%5C%22tap%5C%5C%5C%22%2Cthis._onGroupClick.bind(this))%3Bthis.groupHammer.on(%5C%5C%5C%22panstart%5C%5C%5C%22%2Cthis._onGroupDragStart.bind(this))%3Bthis.groupHammer.on(%5C%5C%5C%22panmove%5C%5C%5C%22%2Cthis._onGroupDrag.bind(this))%3Bthis.groupHammer.on(%5C%5C%5C%22panend%5C%5C%5C%22%2Cthis._onGroupDragEnd.bind(this))%3Bthis.groupHammer.get(%5C%5C%5C%22pan%5C%5C%5C%22).set(%7Bthreshold%3A5%2Cdirection%3AHammer.DIRECTION_VERTICAL%7D)%3Bthis.body.dom.centerContainer.addEventListener(%5C%5C%5C%22mouseover%5C%5C%5C%22%2Cthis._onMouseOver.bind(this))%3Bthis.body.dom.centerContainer.addEventListener(%5C%5C%5C%22mouseout%5C%5C%5C%22%2Cthis._onMouseOut.bind(this))%3Bthis.body.dom.centerContainer.addEventListener(%5C%5C%5C%22mousemove%5C%5C%5C%22%2Cthis._onMouseMove.bind(this))%3Bthis.body.dom.centerContainer.addEventListener(%5C%5C%5C%22contextmenu%5C%5C%5C%22%2Cthis._onDragEnd.bind(this))%3Bthis.body.dom.centerContainer.addEventListener(%5C%5C%5C%22mousewheel%5C%5C%5C%22%2Cthis._onMouseWheel.bind(this))%3Bthis.show()%7D%3BItemSet.prototype.setOptions%3Dfunction(options)%7Bif(options)%7Bvar%20fields%3D%5B%5C%5C%5C%22type%5C%5C%5C%22%2C%5C%5C%5C%22rtl%5C%5C%5C%22%2C%5C%5C%5C%22align%5C%5C%5C%22%2C%5C%5C%5C%22order%5C%5C%5C%22%2C%5C%5C%5C%22stack%5C%5C%5C%22%2C%5C%5C%5C%22stackSubgroups%5C%5C%5C%22%2C%5C%5C%5C%22selectable%5C%5C%5C%22%2C%5C%5C%5C%22multiselect%5C%5C%5C%22%2C%5C%5C%5C%22multiselectPerGroup%5C%5C%5C%22%2C%5C%5C%5C%22groupOrder%5C%5C%5C%22%2C%5C%5C%5C%22dataAttributes%5C%5C%5C%22%2C%5C%5C%5C%22template%5C%5C%5C%22%2C%5C%5C%5C%22groupTemplate%5C%5C%5C%22%2C%5C%5C%5C%22visibleFrameTemplate%5C%5C%5C%22%2C%5C%5C%5C%22hide%5C%5C%5C%22%2C%5C%5C%5C%22snap%5C%5C%5C%22%2C%5C%5C%5C%22groupOrderSwap%5C%5C%5C%22%2C%5C%5C%5C%22showTooltips%5C%5C%5C%22%2C%5C%5C%5C%22tooltip%5C%5C%5C%22%2C%5C%5C%5C%22tooltipOnItemUpdateTime%5C%5C%5C%22%5D%3Butil.selectiveExtend(fields%2Cthis.options%2Coptions)%3Bif(%5C%5C%5C%22itemsAlwaysDraggable%5C%5C%5C%22in%20options)%7Bif(typeof%20options.itemsAlwaysDraggable%3D%3D%3D%5C%5C%5C%22boolean%5C%5C%5C%22)%7Bthis.options.itemsAlwaysDraggable.item%3Doptions.itemsAlwaysDraggable%3Bthis.options.itemsAlwaysDraggable.range%3Dfalse%7Delse%20if((0%2C_typeof3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(options.itemsAlwaysDraggable)%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22)%7Butil.selectiveExtend(%5B%5C%5C%5C%22item%5C%5C%5C%22%2C%5C%5C%5C%22range%5C%5C%5C%22%5D%2Cthis.options.itemsAlwaysDraggable%2Coptions.itemsAlwaysDraggable)%3Bif(!this.options.itemsAlwaysDraggable.item)%7Bthis.options.itemsAlwaysDraggable.range%3Dfalse%7D%7D%7Dif(%5C%5C%5C%22orientation%5C%5C%5C%22in%20options)%7Bif(typeof%20options.orientation%3D%3D%3D%5C%5C%5C%22string%5C%5C%5C%22)%7Bthis.options.orientation.item%3Doptions.orientation%3D%3D%3D%5C%5C%5C%22top%5C%5C%5C%22%3F%5C%5C%5C%22top%5C%5C%5C%22%3A%5C%5C%5C%22bottom%5C%5C%5C%22%7Delse%20if((0%2C_typeof3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(options.orientation)%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22%26%26%5C%5C%5C%22item%5C%5C%5C%22in%20options.orientation)%7Bthis.options.orientation.item%3Doptions.orientation.item%7D%7Dif(%5C%5C%5C%22margin%5C%5C%5C%22in%20options)%7Bif(typeof%20options.margin%3D%3D%3D%5C%5C%5C%22number%5C%5C%5C%22)%7Bthis.options.margin.axis%3Doptions.margin%3Bthis.options.margin.item.horizontal%3Doptions.margin%3Bthis.options.margin.item.vertical%3Doptions.margin%7Delse%20if((0%2C_typeof3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(options.margin)%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22)%7Butil.selectiveExtend(%5B%5C%5C%5C%22axis%5C%5C%5C%22%5D%2Cthis.options.margin%2Coptions.margin)%3Bif(%5C%5C%5C%22item%5C%5C%5C%22in%20options.margin)%7Bif(typeof%20options.margin.item%3D%3D%3D%5C%5C%5C%22number%5C%5C%5C%22)%7Bthis.options.margin.item.horizontal%3Doptions.margin.item%3Bthis.options.margin.item.vertical%3Doptions.margin.item%7Delse%20if((0%2C_typeof3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(options.margin.item)%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22)%7Butil.selectiveExtend(%5B%5C%5C%5C%22horizontal%5C%5C%5C%22%2C%5C%5C%5C%22vertical%5C%5C%5C%22%5D%2Cthis.options.margin.item%2Coptions.margin.item)%7D%7D%7D%7Dif(%5C%5C%5C%22editable%5C%5C%5C%22in%20options)%7Bif(typeof%20options.editable%3D%3D%3D%5C%5C%5C%22boolean%5C%5C%5C%22)%7Bthis.options.editable.updateTime%3Doptions.editable%3Bthis.options.editable.updateGroup%3Doptions.editable%3Bthis.options.editable.add%3Doptions.editable%3Bthis.options.editable.remove%3Doptions.editable%3Bthis.options.editable.overrideItems%3Dfalse%7Delse%20if((0%2C_typeof3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(options.editable)%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22)%7Butil.selectiveExtend(%5B%5C%5C%5C%22updateTime%5C%5C%5C%22%2C%5C%5C%5C%22updateGroup%5C%5C%5C%22%2C%5C%5C%5C%22add%5C%5C%5C%22%2C%5C%5C%5C%22remove%5C%5C%5C%22%2C%5C%5C%5C%22overrideItems%5C%5C%5C%22%5D%2Cthis.options.editable%2Coptions.editable)%7D%7Dif(%5C%5C%5C%22groupEditable%5C%5C%5C%22in%20options)%7Bif(typeof%20options.groupEditable%3D%3D%3D%5C%5C%5C%22boolean%5C%5C%5C%22)%7Bthis.options.groupEditable.order%3Doptions.groupEditable%3Bthis.options.groupEditable.add%3Doptions.groupEditable%3Bthis.options.groupEditable.remove%3Doptions.groupEditable%7Delse%20if((0%2C_typeof3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(options.groupEditable)%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22)%7Butil.selectiveExtend(%5B%5C%5C%5C%22order%5C%5C%5C%22%2C%5C%5C%5C%22add%5C%5C%5C%22%2C%5C%5C%5C%22remove%5C%5C%5C%22%5D%2Cthis.options.groupEditable%2Coptions.groupEditable)%7D%7Dvar%20addCallback%3Dfunction(name)%7Bvar%20fn%3Doptions%5Bname%5D%3Bif(fn)%7Bif(!(fn%20instanceof%20Function))%7Bthrow%20new%20Error(%5C%5C%5C%22option%20%5C%5C%5C%22%2Bname%2B%5C%5C%5C%22%20must%20be%20a%20function%20%5C%5C%5C%22%2Bname%2B%5C%5C%5C%22(item%2C%20callback)%5C%5C%5C%22)%7Dthis.options%5Bname%5D%3Dfn%7D%7D.bind(this)%3B%5B%5C%5C%5C%22onDropObjectOnItem%5C%5C%5C%22%2C%5C%5C%5C%22onAdd%5C%5C%5C%22%2C%5C%5C%5C%22onUpdate%5C%5C%5C%22%2C%5C%5C%5C%22onRemove%5C%5C%5C%22%2C%5C%5C%5C%22onMove%5C%5C%5C%22%2C%5C%5C%5C%22onMoving%5C%5C%5C%22%2C%5C%5C%5C%22onAddGroup%5C%5C%5C%22%2C%5C%5C%5C%22onMoveGroup%5C%5C%5C%22%2C%5C%5C%5C%22onRemoveGroup%5C%5C%5C%22%5D.forEach(addCallback)%3Bthis.markDirty()%7D%7D%3BItemSet.prototype.markDirty%3Dfunction(options)%7Bthis.groupIds%3D%5B%5D%3Bif(options%26%26options.refreshItems)%7Butil.forEach(this.items%2Cfunction(item)%7Bitem.dirty%3Dtrue%3Bif(item.displayed)item.redraw()%7D)%7D%7D%3BItemSet.prototype.destroy%3Dfunction()%7Bthis.hide()%3Bthis.setItems(null)%3Bthis.setGroups(null)%3Bthis.hammer%3Dnull%3Bthis.body%3Dnull%3Bthis.conversion%3Dnull%7D%3BItemSet.prototype.hide%3Dfunction()%7Bif(this.dom.frame.parentNode)%7Bthis.dom.frame.parentNode.removeChild(this.dom.frame)%7Dif(this.dom.axis.parentNode)%7Bthis.dom.axis.parentNode.removeChild(this.dom.axis)%7Dif(this.dom.labelSet.parentNode)%7Bthis.dom.labelSet.parentNode.removeChild(this.dom.labelSet)%7D%7D%3BItemSet.prototype.show%3Dfunction()%7Bif(!this.dom.frame.parentNode)%7Bthis.body.dom.center.appendChild(this.dom.frame)%7Dif(!this.dom.axis.parentNode)%7Bthis.body.dom.backgroundVertical.appendChild(this.dom.axis)%7Dif(!this.dom.labelSet.parentNode)%7Bif(this.options.rtl)%7Bthis.body.dom.right.appendChild(this.dom.labelSet)%7Delse%7Bthis.body.dom.left.appendChild(this.dom.labelSet)%7D%7D%7D%3BItemSet.prototype.setSelection%3Dfunction(ids)%7Bvar%20i%2Cii%2Cid%2Citem%3Bif(ids%3D%3Dundefined)ids%3D%5B%5D%3Bif(!Array.isArray(ids))ids%3D%5Bids%5D%3Bfor(i%3D0%2Cii%3Dthis.selection.length%3Bi%3Cii%3Bi%2B%2B)%7Bid%3Dthis.selection%5Bi%5D%3Bitem%3Dthis.items%5Bid%5D%3Bif(item)item.unselect()%7Dthis.selection%3D%5B%5D%3Bfor(i%3D0%2Cii%3Dids.length%3Bi%3Cii%3Bi%2B%2B)%7Bid%3Dids%5Bi%5D%3Bitem%3Dthis.items%5Bid%5D%3Bif(item)%7Bthis.selection.push(id)%3Bitem.select()%7D%7D%7D%3BItemSet.prototype.getSelection%3Dfunction()%7Breturn%20this.selection.concat(%5B%5D)%7D%3BItemSet.prototype.getVisibleItems%3Dfunction()%7Bvar%20range%3Dthis.body.range.getRange()%3Bvar%20right%2Cleft%3Bif(this.options.rtl)%7Bright%3Dthis.body.util.toScreen(range.start)%3Bleft%3Dthis.body.util.toScreen(range.end)%7Delse%7Bleft%3Dthis.body.util.toScreen(range.start)%3Bright%3Dthis.body.util.toScreen(range.end)%7Dvar%20ids%3D%5B%5D%3Bfor(var%20groupId%20in%20this.groups)%7Bif(this.groups.hasOwnProperty(groupId))%7Bvar%20group%3Dthis.groups%5BgroupId%5D%3Bvar%20rawVisibleItems%3Dgroup.isVisible%3Fgroup.visibleItems%3A%5B%5D%3Bfor(var%20i%3D0%3Bi%3CrawVisibleItems.length%3Bi%2B%2B)%7Bvar%20item%3DrawVisibleItems%5Bi%5D%3Bif(this.options.rtl)%7Bif(item.right%3Cleft%26%26item.right%2Bitem.width%3Eright)%7Bids.push(item.id)%7D%7Delse%7Bif(item.left%3Cright%26%26item.left%2Bitem.width%3Eleft)%7Bids.push(item.id)%7D%7D%7D%7D%7Dreturn%20ids%7D%3BItemSet.prototype._deselect%3Dfunction(id)%7Bvar%20selection%3Dthis.selection%3Bfor(var%20i%3D0%2Cii%3Dselection.length%3Bi%3Cii%3Bi%2B%2B)%7Bif(selection%5Bi%5D%3D%3Did)%7Bselection.splice(i%2C1)%3Bbreak%7D%7D%7D%3BItemSet.prototype.redraw%3Dfunction()%7Bvar%20margin%3Dthis.options.margin%2Crange%3Dthis.body.range%2CasSize%3Dutil.option.asSize%2Coptions%3Dthis.options%2Corientation%3Doptions.orientation.item%2Cresized%3Dfalse%2Cframe%3Dthis.dom.frame%3Bthis.props.top%3Dthis.body.domProps.top.height%2Bthis.body.domProps.border.top%3Bif(this.options.rtl)%7Bthis.props.right%3Dthis.body.domProps.right.width%2Bthis.body.domProps.border.right%7Delse%7Bthis.props.left%3Dthis.body.domProps.left.width%2Bthis.body.domProps.border.left%7Dframe.className%3D%5C%5C%5C%22vis-itemset%5C%5C%5C%22%3Bresized%3Dthis._orderGroups()%7C%7Cresized%3Bvar%20visibleInterval%3Drange.end-range.start%3Bvar%20zoomed%3DvisibleInterval!%3Dthis.lastVisibleInterval%7C%7Cthis.props.width!%3Dthis.props.lastWidth%3Bvar%20scrolled%3Drange.start!%3Dthis.lastRangeStart%3Bvar%20changedStackOption%3Doptions.stack!%3Dthis.lastStack%3Bvar%20changedStackSubgroupsOption%3Doptions.stackSubgroups!%3Dthis.lastStackSubgroups%3Bvar%20forceRestack%3Dzoomed%7C%7Cscrolled%7C%7CchangedStackOption%7C%7CchangedStackSubgroupsOption%3Bthis.lastVisibleInterval%3DvisibleInterval%3Bthis.lastRangeStart%3Drange.start%3Bthis.lastStack%3Doptions.stack%3Bthis.lastStackSubgroups%3Doptions.stackSubgroups%3Bthis.props.lastWidth%3Dthis.props.width%3Bvar%20firstGroup%3Dthis._firstGroup()%3Bvar%20firstMargin%3D%7Bitem%3Amargin.item%2Caxis%3Amargin.axis%7D%3Bvar%20nonFirstMargin%3D%7Bitem%3Amargin.item%2Caxis%3Amargin.item.vertical%2F2%7D%3Bvar%20height%3D0%3Bvar%20minHeight%3Dmargin.axis%2Bmargin.item.vertical%3Bthis.groups%5BBACKGROUND%5D.redraw(range%2CnonFirstMargin%2CforceRestack)%3Bvar%20redrawQueue%3D%7B%7D%3Bvar%20redrawQueueLength%3D0%3Butil.forEach(this.groups%2Cfunction(group%2Ckey)%7Bif(key%3D%3D%3DBACKGROUND)return%3Bvar%20groupMargin%3Dgroup%3D%3DfirstGroup%3FfirstMargin%3AnonFirstMargin%3Bvar%20returnQueue%3Dtrue%3BredrawQueue%5Bkey%5D%3Dgroup.redraw(range%2CgroupMargin%2CforceRestack%2CreturnQueue)%3BredrawQueueLength%3DredrawQueue%5Bkey%5D.length%7D)%3Bvar%20needRedraw%3DredrawQueueLength%3E0%3Bif(needRedraw)%7Bvar%20redrawResults%3D%7B%7D%3Bfor(var%20i%3D0%3Bi%3CredrawQueueLength%3Bi%2B%2B)%7Butil.forEach(redrawQueue%2Cfunction(fns%2Ckey)%7BredrawResults%5Bkey%5D%3Dfns%5Bi%5D()%7D)%7Dutil.forEach(this.groups%2Cfunction(group%2Ckey)%7Bif(key%3D%3D%3DBACKGROUND)return%3Bvar%20groupResized%3DredrawResults%5Bkey%5D%3Bresized%3DgroupResized%7C%7Cresized%3Bheight%2B%3Dgroup.height%7D)%3Bheight%3DMath.max(height%2CminHeight)%7Dheight%3DMath.max(height%2CminHeight)%3Bframe.style.height%3DasSize(height)%3Bthis.props.width%3Dframe.offsetWidth%3Bthis.props.height%3Dheight%3Bthis.dom.axis.style.top%3DasSize(orientation%3D%3D%5C%5C%5C%22top%5C%5C%5C%22%3Fthis.body.domProps.top.height%2Bthis.body.domProps.border.top%3Athis.body.domProps.top.height%2Bthis.body.domProps.centerContainer.height)%3Bif(this.options.rtl)%7Bthis.dom.axis.style.right%3D%5C%5C%5C%220%5C%5C%5C%22%7Delse%7Bthis.dom.axis.style.left%3D%5C%5C%5C%220%5C%5C%5C%22%7Dthis.initialItemSetDrawn%3Dtrue%3Bresized%3Dthis._isResized()%7C%7Cresized%3Breturn%20resized%7D%3BItemSet.prototype._firstGroup%3Dfunction()%7Bvar%20firstGroupIndex%3Dthis.options.orientation.item%3D%3D%5C%5C%5C%22top%5C%5C%5C%22%3F0%3Athis.groupIds.length-1%3Bvar%20firstGroupId%3Dthis.groupIds%5BfirstGroupIndex%5D%3Bvar%20firstGroup%3Dthis.groups%5BfirstGroupId%5D%7C%7Cthis.groups%5BUNGROUPED%5D%3Breturn%20firstGroup%7C%7Cnull%7D%3BItemSet.prototype._updateUngrouped%3Dfunction()%7Bvar%20ungrouped%3Dthis.groups%5BUNGROUPED%5D%3Bvar%20item%2CitemId%3Bif(this.groupsData)%7Bif(ungrouped)%7Bungrouped.hide()%3Bdelete%20this.groups%5BUNGROUPED%5D%3Bfor(itemId%20in%20this.items)%7Bif(this.items.hasOwnProperty(itemId))%7Bitem%3Dthis.items%5BitemId%5D%3Bitem.parent%26%26item.parent.remove(item)%3Bvar%20groupId%3Dthis._getGroupId(item.data)%3Bvar%20group%3Dthis.groups%5BgroupId%5D%3Bgroup%26%26group.add(item)%7C%7Citem.hide()%7D%7D%7D%7Delse%7Bif(!ungrouped)%7Bvar%20id%3Dnull%3Bvar%20data%3Dnull%3Bungrouped%3Dnew%20Group(id%2Cdata%2Cthis)%3Bthis.groups%5BUNGROUPED%5D%3Dungrouped%3Bfor(itemId%20in%20this.items)%7Bif(this.items.hasOwnProperty(itemId))%7Bitem%3Dthis.items%5BitemId%5D%3Bungrouped.add(item)%7D%7Dungrouped.show()%7D%7D%7D%3BItemSet.prototype.getLabelSet%3Dfunction()%7Breturn%20this.dom.labelSet%7D%3BItemSet.prototype.setItems%3Dfunction(items)%7Bvar%20me%3Dthis%2Cids%2ColdItemsData%3Dthis.itemsData%3Bif(!items)%7Bthis.itemsData%3Dnull%7Delse%20if(items%20instanceof%20DataSet%7C%7Citems%20instanceof%20DataView)%7Bthis.itemsData%3Ditems%7Delse%7Bthrow%20new%20TypeError(%5C%5C%5C%22Data%20must%20be%20an%20instance%20of%20DataSet%20or%20DataView%5C%5C%5C%22)%7Dif(oldItemsData)%7Butil.forEach(this.itemListeners%2Cfunction(callback%2Cevent)%7BoldItemsData.off(event%2Ccallback)%7D)%3Bids%3DoldItemsData.getIds()%3Bthis._onRemove(ids)%7Dif(this.itemsData)%7Bvar%20id%3Dthis.id%3Butil.forEach(this.itemListeners%2Cfunction(callback%2Cevent)%7Bme.itemsData.on(event%2Ccallback%2Cid)%7D)%3Bids%3Dthis.itemsData.getIds()%3Bthis._onAdd(ids)%3Bthis._updateUngrouped()%7Dthis.body.emitter.emit(%5C%5C%5C%22_change%5C%5C%5C%22%2C%7Bqueue%3Atrue%7D)%7D%3BItemSet.prototype.getItems%3Dfunction()%7Breturn%20this.itemsData%7D%3BItemSet.prototype.setGroups%3Dfunction(groups)%7Bvar%20me%3Dthis%2Cids%3Bif(this.groupsData)%7Butil.forEach(this.groupListeners%2Cfunction(callback%2Cevent)%7Bme.groupsData.off(event%2Ccallback)%7D)%3Bids%3Dthis.groupsData.getIds()%3Bthis.groupsData%3Dnull%3Bthis._onRemoveGroups(ids)%7Dif(!groups)%7Bthis.groupsData%3Dnull%7Delse%20if(groups%20instanceof%20DataSet%7C%7Cgroups%20instanceof%20DataView)%7Bthis.groupsData%3Dgroups%7Delse%7Bthrow%20new%20TypeError(%5C%5C%5C%22Data%20must%20be%20an%20instance%20of%20DataSet%20or%20DataView%5C%5C%5C%22)%7Dif(this.groupsData)%7Bvar%20groupsData%3Dthis.groupsData%3Bif(this.groupsData%20instanceof%20DataView)%7BgroupsData%3Dthis.groupsData.getDataSet()%7DgroupsData.get().forEach(function(group)%7Bif(group.nestedGroups)%7Bgroup.nestedGroups.forEach(function(nestedGroupId)%7Bvar%20updatedNestedGroup%3DgroupsData.get(nestedGroupId)%3BupdatedNestedGroup.nestedInGroup%3Dgroup.id%3Bif(group.showNested%3D%3Dfalse)%7BupdatedNestedGroup.visible%3Dfalse%7DgroupsData.update(updatedNestedGroup)%7D)%7D%7D)%3Bvar%20id%3Dthis.id%3Butil.forEach(this.groupListeners%2Cfunction(callback%2Cevent)%7Bme.groupsData.on(event%2Ccallback%2Cid)%7D)%3Bids%3Dthis.groupsData.getIds()%3Bthis._onAddGroups(ids)%7Dthis._updateUngrouped()%3Bthis._order()%3Bthis.body.emitter.emit(%5C%5C%5C%22_change%5C%5C%5C%22%2C%7Bqueue%3Atrue%7D)%7D%3BItemSet.prototype.getGroups%3Dfunction()%7Breturn%20this.groupsData%7D%3BItemSet.prototype.removeItem%3Dfunction(id)%7Bvar%20item%3Dthis.itemsData.get(id)%2Cdataset%3Dthis.itemsData.getDataSet()%3Bif(item)%7Bthis.options.onRemove(item%2Cfunction(item)%7Bif(item)%7Bdataset.remove(id)%7D%7D)%7D%7D%3BItemSet.prototype._getType%3Dfunction(itemData)%7Breturn%20itemData.type%7C%7Cthis.options.type%7C%7C(itemData.end%3F%5C%5C%5C%22range%5C%5C%5C%22%3A%5C%5C%5C%22box%5C%5C%5C%22)%7D%3BItemSet.prototype._getGroupId%3Dfunction(itemData)%7Bvar%20type%3Dthis._getType(itemData)%3Bif(type%3D%3D%5C%5C%5C%22background%5C%5C%5C%22%26%26itemData.group%3D%3Dundefined)%7Breturn%20BACKGROUND%7Delse%7Breturn%20this.groupsData%3FitemData.group%3AUNGROUPED%7D%7D%3BItemSet.prototype._onUpdate%3Dfunction(ids)%7Bvar%20me%3Dthis%3Bids.forEach(function(id)%7Bvar%20itemData%3Dme.itemsData.get(id%2Cme.itemOptions)%3Bvar%20item%3Dme.items%5Bid%5D%3Bvar%20type%3DitemData%3Fme._getType(itemData)%3Anull%3Bvar%20constructor%3DItemSet.types%5Btype%5D%3Bvar%20selected%3Bif(item)%7Bif(!constructor%7C%7C!(item%20instanceof%20constructor))%7Bselected%3Ditem.selected%3Bme._removeItem(item)%3Bitem%3Dnull%7Delse%7Bme._updateItem(item%2CitemData)%7D%7Dif(!item%26%26itemData)%7Bif(constructor)%7Bitem%3Dnew%20constructor(itemData%2Cme.conversion%2Cme.options)%3Bitem.id%3Did%3Bme._addItem(item)%3Bif(selected)%7Bthis.selection.push(id)%3Bitem.select()%7D%7Delse%20if(type%3D%3D%5C%5C%5C%22rangeoverflow%5C%5C%5C%22)%7Bthrow%20new%20TypeError('Item%20type%20%5C%5C%5C%22rangeoverflow%5C%5C%5C%22%20is%20deprecated.%20Use%20css%20styling%20instead%3A%20'%2B%5C%5C%5C%22.vis-item.vis-range%20.vis-item-content%20%7Boverflow%3A%20visible%3B%7D%5C%5C%5C%22)%7Delse%7Bthrow%20new%20TypeError('Unknown%20item%20type%20%5C%5C%5C%22'%2Btype%2B'%5C%5C%5C%22')%7D%7D%7D.bind(this))%3Bthis._order()%3Bthis.body.emitter.emit(%5C%5C%5C%22_change%5C%5C%5C%22%2C%7Bqueue%3Atrue%7D)%7D%3BItemSet.prototype._onAdd%3DItemSet.prototype._onUpdate%3BItemSet.prototype._onRemove%3Dfunction(ids)%7Bvar%20count%3D0%3Bvar%20me%3Dthis%3Bids.forEach(function(id)%7Bvar%20item%3Dme.items%5Bid%5D%3Bif(item)%7Bcount%2B%2B%3Bme._removeItem(item)%7D%7D)%3Bif(count)%7Bthis._order()%3Bthis.body.emitter.emit(%5C%5C%5C%22_change%5C%5C%5C%22%2C%7Bqueue%3Atrue%7D)%7D%7D%3BItemSet.prototype._order%3Dfunction()%7Butil.forEach(this.groups%2Cfunction(group)%7Bgroup.order()%7D)%7D%3BItemSet.prototype._onUpdateGroups%3Dfunction(ids)%7Bthis._onAddGroups(ids)%7D%3BItemSet.prototype._onAddGroups%3Dfunction(ids)%7Bvar%20me%3Dthis%3Bids.forEach(function(id)%7Bvar%20groupData%3Dme.groupsData.get(id)%3Bvar%20group%3Dme.groups%5Bid%5D%3Bif(!group)%7Bif(id%3D%3DUNGROUPED%7C%7Cid%3D%3DBACKGROUND)%7Bthrow%20new%20Error(%5C%5C%5C%22Illegal%20group%20id.%20%5C%5C%5C%22%2Bid%2B%5C%5C%5C%22%20is%20a%20reserved%20id.%5C%5C%5C%22)%7Dvar%20groupOptions%3D(0%2C_create2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(me.options)%3Butil.extend(groupOptions%2C%7Bheight%3Anull%7D)%3Bgroup%3Dnew%20Group(id%2CgroupData%2Cme)%3Bme.groups%5Bid%5D%3Dgroup%3Bfor(var%20itemId%20in%20me.items)%7Bif(me.items.hasOwnProperty(itemId))%7Bvar%20item%3Dme.items%5BitemId%5D%3Bif(item.data.group%3D%3Did)%7Bgroup.add(item)%7D%7D%7Dgroup.order()%3Bgroup.show()%7Delse%7Bgroup.setData(groupData)%7D%7D)%3Bthis.body.emitter.emit(%5C%5C%5C%22_change%5C%5C%5C%22%2C%7Bqueue%3Atrue%7D)%7D%3BItemSet.prototype._onRemoveGroups%3Dfunction(ids)%7Bvar%20groups%3Dthis.groups%3Bids.forEach(function(id)%7Bvar%20group%3Dgroups%5Bid%5D%3Bif(group)%7Bgroup.hide()%3Bdelete%20groups%5Bid%5D%7D%7D)%3Bthis.markDirty()%3Bthis.body.emitter.emit(%5C%5C%5C%22_change%5C%5C%5C%22%2C%7Bqueue%3Atrue%7D)%7D%3BItemSet.prototype._orderGroups%3Dfunction()%7Bif(this.groupsData)%7Bvar%20groupIds%3Dthis.groupsData.getIds(%7Border%3Athis.options.groupOrder%7D)%3BgroupIds%3Dthis._orderNestedGroups(groupIds)%3Bvar%20changed%3D!util.equalArray(groupIds%2Cthis.groupIds)%3Bif(changed)%7Bvar%20groups%3Dthis.groups%3BgroupIds.forEach(function(groupId)%7Bgroups%5BgroupId%5D.hide()%7D)%3BgroupIds.forEach(function(groupId)%7Bgroups%5BgroupId%5D.show()%7D)%3Bthis.groupIds%3DgroupIds%7Dreturn%20changed%7Delse%7Breturn%20false%7D%7D%3BItemSet.prototype._orderNestedGroups%3Dfunction(groupIds)%7Bvar%20newGroupIdsOrder%3D%5B%5D%3BgroupIds.forEach(function(groupId)%7Bvar%20groupData%3Dthis.groupsData.get(groupId)%3Bif(!groupData.nestedInGroup)%7BnewGroupIdsOrder.push(groupId)%7Dif(groupData.nestedGroups)%7Bvar%20nestedGroups%3Dthis.groupsData.get(%7Bfilter%3Afunction%20filter(nestedGroup)%7Breturn%20nestedGroup.nestedInGroup%3D%3DgroupId%7D%2Corder%3Athis.options.groupOrder%7D)%3Bvar%20nestedGroupIds%3DnestedGroups.map(function(nestedGroup)%7Breturn%20nestedGroup.id%7D)%3BnewGroupIdsOrder%3DnewGroupIdsOrder.concat(nestedGroupIds)%7D%7D%2Cthis)%3Breturn%20newGroupIdsOrder%7D%3BItemSet.prototype._addItem%3Dfunction(item)%7Bthis.items%5Bitem.id%5D%3Ditem%3Bvar%20groupId%3Dthis._getGroupId(item.data)%3Bvar%20group%3Dthis.groups%5BgroupId%5D%3Bif(!group)%7Bitem.groupShowing%3Dfalse%7Delse%20if(group%26%26group.data%26%26group.data.showNested)%7Bitem.groupShowing%3Dtrue%7Dif(group)group.add(item)%7D%3BItemSet.prototype._updateItem%3Dfunction(item%2CitemData)%7Bitem.setData(itemData)%3Bvar%20groupId%3Dthis._getGroupId(item.data)%3Bvar%20group%3Dthis.groups%5BgroupId%5D%3Bif(!group)%7Bitem.groupShowing%3Dfalse%7Delse%20if(group%26%26group.data%26%26group.data.showNested)%7Bitem.groupShowing%3Dtrue%7D%7D%3BItemSet.prototype._removeItem%3Dfunction(item)%7Bitem.hide()%3Bdelete%20this.items%5Bitem.id%5D%3Bvar%20index%3Dthis.selection.indexOf(item.id)%3Bif(index!%3D-1)this.selection.splice(index%2C1)%3Bitem.parent%26%26item.parent.remove(item)%7D%3BItemSet.prototype._constructByEndArray%3Dfunction(array)%7Bvar%20endArray%3D%5B%5D%3Bfor(var%20i%3D0%3Bi%3Carray.length%3Bi%2B%2B)%7Bif(array%5Bi%5Dinstanceof%20RangeItem)%7BendArray.push(array%5Bi%5D)%7D%7Dreturn%20endArray%7D%3BItemSet.prototype._onTouch%3Dfunction(event)%7Bthis.touchParams.item%3Dthis.itemFromTarget(event)%3Bthis.touchParams.dragLeftItem%3Devent.target.dragLeftItem%7C%7Cfalse%3Bthis.touchParams.dragRightItem%3Devent.target.dragRightItem%7C%7Cfalse%3Bthis.touchParams.itemProps%3Dnull%7D%3BItemSet.prototype._getGroupIndex%3Dfunction(groupId)%7Bfor(var%20i%3D0%3Bi%3Cthis.groupIds.length%3Bi%2B%2B)%7Bif(groupId%3D%3Dthis.groupIds%5Bi%5D)return%20i%7D%7D%3BItemSet.prototype._onDragStart%3Dfunction(event)%7Bif(this.touchParams.itemIsDragging)%7Breturn%7Dvar%20item%3Dthis.touchParams.item%7C%7Cnull%3Bvar%20me%3Dthis%3Bvar%20props%3Bif(item%26%26(item.selected%7C%7Cthis.options.itemsAlwaysDraggable.item))%7Bif(this.options.editable.overrideItems%26%26!this.options.editable.updateTime%26%26!this.options.editable.updateGroup)%7Breturn%7Dif(item.editable!%3Dnull%26%26!item.editable.updateTime%26%26!item.editable.updateGroup%26%26!this.options.editable.overrideItems)%7Breturn%7Dvar%20dragLeftItem%3Dthis.touchParams.dragLeftItem%3Bvar%20dragRightItem%3Dthis.touchParams.dragRightItem%3Bthis.touchParams.itemIsDragging%3Dtrue%3Bthis.touchParams.selectedItem%3Ditem%3Bif(dragLeftItem)%7Bprops%3D%7Bitem%3AdragLeftItem%2CinitialX%3Aevent.center.x%2CdragLeft%3Atrue%2Cdata%3Athis._cloneItemData(item.data)%7D%3Bthis.touchParams.itemProps%3D%5Bprops%5D%7Delse%20if(dragRightItem)%7Bprops%3D%7Bitem%3AdragRightItem%2CinitialX%3Aevent.center.x%2CdragRight%3Atrue%2Cdata%3Athis._cloneItemData(item.data)%7D%3Bthis.touchParams.itemProps%3D%5Bprops%5D%7Delse%20if(this.options.editable.add%26%26(event.srcEvent.ctrlKey%7C%7Cevent.srcEvent.metaKey))%7Bthis._onDragStartAddItem(event)%7Delse%7Bif(this.groupIds.length%3C1)%7Bthis.redraw()%7Dvar%20baseGroupIndex%3Dthis._getGroupIndex(item.data.group)%3Bvar%20itemsToDrag%3Dthis.options.itemsAlwaysDraggable.item%26%26!item.selected%3F%5Bitem.id%5D%3Athis.getSelection()%3Bthis.touchParams.itemProps%3DitemsToDrag.map(function(id)%7Bvar%20item%3Dme.items%5Bid%5D%3Bvar%20groupIndex%3Dme._getGroupIndex(item.data.group)%3Breturn%7Bitem%3Aitem%2CinitialX%3Aevent.center.x%2CgroupOffset%3AbaseGroupIndex-groupIndex%2Cdata%3Athis._cloneItemData(item.data)%7D%7D.bind(this))%7Devent.stopPropagation()%7Delse%20if(this.options.editable.add%26%26(event.srcEvent.ctrlKey%7C%7Cevent.srcEvent.metaKey))%7Bthis._onDragStartAddItem(event)%7D%7D%3BItemSet.prototype._onDragStartAddItem%3Dfunction(event)%7Bvar%20xAbs%3Bvar%20x%3Bvar%20snap%3Dthis.options.snap%7C%7Cnull%3Bif(this.options.rtl)%7BxAbs%3Dutil.getAbsoluteRight(this.dom.frame)%3Bx%3DxAbs-event.center.x%2B10%7Delse%7BxAbs%3Dutil.getAbsoluteLeft(this.dom.frame)%3Bx%3Devent.center.x-xAbs-10%7Dvar%20time%3Dthis.body.util.toTime(x)%3Bvar%20scale%3Dthis.body.util.getScale()%3Bvar%20step%3Dthis.body.util.getStep()%3Bvar%20start%3Dsnap%3Fsnap(time%2Cscale%2Cstep)%3Atime%3Bvar%20end%3Dstart%3Bvar%20itemData%3D%7Btype%3A%5C%5C%5C%22range%5C%5C%5C%22%2Cstart%3Astart%2Cend%3Aend%2Ccontent%3A%5C%5C%5C%22new%20item%5C%5C%5C%22%7D%3Bvar%20id%3Dutil.randomUUID()%3BitemData%5Bthis.itemsData._fieldId%5D%3Did%3Bvar%20group%3Dthis.groupFromTarget(event)%3Bif(group)%7BitemData.group%3Dgroup.groupId%7Dvar%20newItem%3Dnew%20RangeItem(itemData%2Cthis.conversion%2Cthis.options)%3BnewItem.id%3Did%3BnewItem.data%3Dthis._cloneItemData(itemData)%3Bthis._addItem(newItem)%3Bthis.touchParams.selectedItem%3DnewItem%3Bvar%20props%3D%7Bitem%3AnewItem%2CinitialX%3Aevent.center.x%2Cdata%3AnewItem.data%7D%3Bif(this.options.rtl)%7Bprops.dragLeft%3Dtrue%7Delse%7Bprops.dragRight%3Dtrue%7Dthis.touchParams.itemProps%3D%5Bprops%5D%3Bevent.stopPropagation()%7D%3BItemSet.prototype._onDrag%3Dfunction(event)%7Bif(this.touchParams.itemProps)%7Bevent.stopPropagation()%3Bvar%20me%3Dthis%3Bvar%20snap%3Dthis.options.snap%7C%7Cnull%3Bvar%20xOffset%3Bif(this.options.rtl)%7BxOffset%3Dthis.body.dom.root.offsetLeft%2Bthis.body.domProps.right.width%7Delse%7BxOffset%3Dthis.body.dom.root.offsetLeft%2Bthis.body.domProps.left.width%7Dvar%20scale%3Dthis.body.util.getScale()%3Bvar%20step%3Dthis.body.util.getStep()%3Bvar%20selectedItem%3Dthis.touchParams.selectedItem%3Bvar%20updateGroupAllowed%3D(this.options.editable.overrideItems%7C%7CselectedItem.editable%3D%3Dnull)%26%26this.options.editable.updateGroup%7C%7C!this.options.editable.overrideItems%26%26selectedItem.editable!%3Dnull%26%26selectedItem.editable.updateGroup%3Bvar%20newGroupBase%3Dnull%3Bif(updateGroupAllowed%26%26selectedItem)%7Bif(selectedItem.data.group!%3Dundefined)%7Bvar%20group%3Dme.groupFromTarget(event)%3Bif(group)%7BnewGroupBase%3Dthis._getGroupIndex(group.groupId)%7D%7D%7Dthis.touchParams.itemProps.forEach(function(props)%7Bvar%20current%3Dme.body.util.toTime(event.center.x-xOffset)%3Bvar%20initial%3Dme.body.util.toTime(props.initialX-xOffset)%3Bvar%20offset%3Bvar%20initialStart%3Bvar%20initialEnd%3Bvar%20start%3Bvar%20end%3Bif(this.options.rtl)%7Boffset%3D-(current-initial)%7Delse%7Boffset%3Dcurrent-initial%7Dvar%20itemData%3Dthis._cloneItemData(props.item.data)%3Bif(props.item.editable!%3Dnull%26%26!props.item.editable.updateTime%26%26!props.item.editable.updateGroup%26%26!me.options.editable.overrideItems)%7Breturn%7Dvar%20updateTimeAllowed%3D(this.options.editable.overrideItems%7C%7CselectedItem.editable%3D%3Dnull)%26%26this.options.editable.updateTime%7C%7C!this.options.editable.overrideItems%26%26selectedItem.editable!%3Dnull%26%26selectedItem.editable.updateTime%3Bif(updateTimeAllowed)%7Bif(props.dragLeft)%7Bif(this.options.rtl)%7Bif(itemData.end!%3Dundefined)%7BinitialEnd%3Dutil.convert(props.data.end%2C%5C%5C%5C%22Date%5C%5C%5C%22)%3Bend%3Dnew%20Date(initialEnd.valueOf()%2Boffset)%3BitemData.end%3Dsnap%3Fsnap(end%2Cscale%2Cstep)%3Aend%7D%7Delse%7Bif(itemData.start!%3Dundefined)%7BinitialStart%3Dutil.convert(props.data.start%2C%5C%5C%5C%22Date%5C%5C%5C%22)%3Bstart%3Dnew%20Date(initialStart.valueOf()%2Boffset)%3BitemData.start%3Dsnap%3Fsnap(start%2Cscale%2Cstep)%3Astart%7D%7D%7Delse%20if(props.dragRight)%7Bif(this.options.rtl)%7Bif(itemData.start!%3Dundefined)%7BinitialStart%3Dutil.convert(props.data.start%2C%5C%5C%5C%22Date%5C%5C%5C%22)%3Bstart%3Dnew%20Date(initialStart.valueOf()%2Boffset)%3BitemData.start%3Dsnap%3Fsnap(start%2Cscale%2Cstep)%3Astart%7D%7Delse%7Bif(itemData.end!%3Dundefined)%7BinitialEnd%3Dutil.convert(props.data.end%2C%5C%5C%5C%22Date%5C%5C%5C%22)%3Bend%3Dnew%20Date(initialEnd.valueOf()%2Boffset)%3BitemData.end%3Dsnap%3Fsnap(end%2Cscale%2Cstep)%3Aend%7D%7D%7Delse%7Bif(itemData.start!%3Dundefined)%7BinitialStart%3Dutil.convert(props.data.start%2C%5C%5C%5C%22Date%5C%5C%5C%22).valueOf()%3Bstart%3Dnew%20Date(initialStart%2Boffset)%3Bif(itemData.end!%3Dundefined)%7BinitialEnd%3Dutil.convert(props.data.end%2C%5C%5C%5C%22Date%5C%5C%5C%22)%3Bvar%20duration%3DinitialEnd.valueOf()-initialStart.valueOf()%3BitemData.start%3Dsnap%3Fsnap(start%2Cscale%2Cstep)%3Astart%3BitemData.end%3Dnew%20Date(itemData.start.valueOf()%2Bduration)%7Delse%7BitemData.start%3Dsnap%3Fsnap(start%2Cscale%2Cstep)%3Astart%7D%7D%7D%7Dif(updateGroupAllowed%26%26!props.dragLeft%26%26!props.dragRight%26%26newGroupBase!%3Dnull)%7Bif(itemData.group!%3Dundefined)%7Bvar%20newOffset%3DnewGroupBase-props.groupOffset%3BnewOffset%3DMath.max(0%2CnewOffset)%3BnewOffset%3DMath.min(me.groupIds.length-1%2CnewOffset)%3BitemData.group%3Dme.groupIds%5BnewOffset%5D%7D%7DitemData%3Dthis._cloneItemData(itemData)%3Bme.options.onMoving(itemData%2Cfunction(itemData)%7Bif(itemData)%7Bprops.item.setData(this._cloneItemData(itemData%2C%5C%5C%5C%22Date%5C%5C%5C%22))%7D%7D.bind(this))%7D.bind(this))%3Bthis.body.emitter.emit(%5C%5C%5C%22_change%5C%5C%5C%22)%7D%7D%3BItemSet.prototype._moveToGroup%3Dfunction(item%2CgroupId)%7Bvar%20group%3Dthis.groups%5BgroupId%5D%3Bif(group%26%26group.groupId!%3Ditem.data.group)%7Bvar%20oldGroup%3Ditem.parent%3BoldGroup.remove(item)%3BoldGroup.order()%3Bitem.data.group%3Dgroup.groupId%3Bgroup.add(item)%3Bgroup.order()%7D%7D%3BItemSet.prototype._onDragEnd%3Dfunction(event)%7Bthis.touchParams.itemIsDragging%3Dfalse%3Bif(this.touchParams.itemProps)%7Bevent.stopPropagation()%3Bvar%20me%3Dthis%3Bvar%20dataset%3Dthis.itemsData.getDataSet()%3Bvar%20itemProps%3Dthis.touchParams.itemProps%3Bthis.touchParams.itemProps%3Dnull%3BitemProps.forEach(function(props)%7Bvar%20id%3Dprops.item.id%3Bvar%20exists%3Dme.itemsData.get(id%2Cme.itemOptions)!%3Dnull%3Bif(!exists)%7Bme.options.onAdd(props.item.data%2Cfunction(itemData)%7Bme._removeItem(props.item)%3Bif(itemData)%7Bme.itemsData.getDataSet().add(itemData)%7Dme.body.emitter.emit(%5C%5C%5C%22_change%5C%5C%5C%22)%7D)%7Delse%7Bvar%20itemData%3Dthis._cloneItemData(props.item.data)%3Bme.options.onMove(itemData%2Cfunction(itemData)%7Bif(itemData)%7BitemData%5Bdataset._fieldId%5D%3Did%3Bdataset.update(itemData)%7Delse%7Bprops.item.setData(props.data)%3Bme.body.emitter.emit(%5C%5C%5C%22_change%5C%5C%5C%22)%7D%7D)%7D%7D.bind(this))%7D%7D%3BItemSet.prototype._onGroupClick%3Dfunction(event)%7Bvar%20group%3Dthis.groupFromTarget(event)%3Bif(!group%7C%7C!group.nestedGroups)return%3Bvar%20groupsData%3Dthis.groupsData.getDataSet()%3Bvar%20nestingGroup%3DgroupsData.get(group.groupId)%3Bif(nestingGroup.showNested%3D%3Dundefined)%7BnestingGroup.showNested%3Dtrue%7DnestingGroup.showNested%3D!nestingGroup.showNested%3Bvar%20nestedGroups%3DgroupsData.get(group.nestedGroups).map(function(nestedGroup)%7BnestedGroup.visible%3DnestingGroup.showNested%3Breturn%20nestedGroup%7D)%3BgroupsData.update(nestedGroups.concat(nestingGroup))%3Bif(nestingGroup.showNested)%7Butil.removeClassName(group.dom.label%2C%5C%5C%5C%22collapsed%5C%5C%5C%22)%3Butil.addClassName(group.dom.label%2C%5C%5C%5C%22expanded%5C%5C%5C%22)%7Delse%7Butil.removeClassName(group.dom.label%2C%5C%5C%5C%22expanded%5C%5C%5C%22)%3Bvar%20collapsedDirClassName%3Dthis.options.rtl%3F%5C%5C%5C%22collapsed-rtl%5C%5C%5C%22%3A%5C%5C%5C%22collapsed%5C%5C%5C%22%3Butil.addClassName(group.dom.label%2CcollapsedDirClassName)%7D%7D%3BItemSet.prototype._onGroupDragStart%3Dfunction(event)%7Bif(this.options.groupEditable.order)%7Bthis.groupTouchParams.group%3Dthis.groupFromTarget(event)%3Bif(this.groupTouchParams.group)%7Bevent.stopPropagation()%3Bthis.groupTouchParams.originalOrder%3Dthis.groupsData.getIds(%7Border%3Athis.options.groupOrder%7D)%7D%7D%7D%3BItemSet.prototype._onGroupDrag%3Dfunction(event)%7Bif(this.options.groupEditable.order%26%26this.groupTouchParams.group)%7Bevent.stopPropagation()%3Bvar%20groupsData%3Dthis.groupsData%3Bif(this.groupsData%20instanceof%20DataView)%7BgroupsData%3Dthis.groupsData.getDataSet()%7Dvar%20group%3Dthis.groupFromTarget(event)%3Bif(group%26%26group.height!%3Dthis.groupTouchParams.group.height)%7Bvar%20movingUp%3Dgroup.top%3Cthis.groupTouchParams.group.top%3Bvar%20clientY%3Devent.center%3Fevent.center.y%3Aevent.clientY%3Bvar%20targetGroupTop%3Dutil.getAbsoluteTop(group.dom.foreground)%3Bvar%20draggedGroupHeight%3Dthis.groupTouchParams.group.height%3Bif(movingUp)%7Bif(targetGroupTop%2BdraggedGroupHeight%3CclientY)%7Breturn%7D%7Delse%7Bvar%20targetGroupHeight%3Dgroup.height%3Bif(targetGroupTop%2BtargetGroupHeight-draggedGroupHeight%3EclientY)%7Breturn%7D%7D%7Dif(group%26%26group!%3Dthis.groupTouchParams.group)%7Bvar%20targetGroup%3DgroupsData.get(group.groupId)%3Bvar%20draggedGroup%3DgroupsData.get(this.groupTouchParams.group.groupId)%3Bif(draggedGroup%26%26targetGroup)%7Bthis.options.groupOrderSwap(draggedGroup%2CtargetGroup%2CgroupsData)%3BgroupsData.update(draggedGroup)%3BgroupsData.update(targetGroup)%7Dvar%20newOrder%3DgroupsData.getIds(%7Border%3Athis.options.groupOrder%7D)%3Bif(!util.equalArray(newOrder%2Cthis.groupTouchParams.originalOrder))%7Bvar%20origOrder%3Dthis.groupTouchParams.originalOrder%3Bvar%20draggedId%3Dthis.groupTouchParams.group.groupId%3Bvar%20numGroups%3DMath.min(origOrder.length%2CnewOrder.length)%3Bvar%20curPos%3D0%3Bvar%20newOffset%3D0%3Bvar%20orgOffset%3D0%3Bwhile(curPos%3CnumGroups)%7Bwhile(curPos%2BnewOffset%3CnumGroups%26%26curPos%2BorgOffset%3CnumGroups%26%26newOrder%5BcurPos%2BnewOffset%5D%3D%3DorigOrder%5BcurPos%2BorgOffset%5D)%7BcurPos%2B%2B%7Dif(curPos%2BnewOffset%3E%3DnumGroups)%7Bbreak%7Dif(newOrder%5BcurPos%2BnewOffset%5D%3D%3DdraggedId)%7BnewOffset%3D1%7Delse%20if(origOrder%5BcurPos%2BorgOffset%5D%3D%3DdraggedId)%7BorgOffset%3D1%7Delse%7Bvar%20slippedPosition%3DnewOrder.indexOf(origOrder%5BcurPos%2BorgOffset%5D)%3Bvar%20switchGroup%3DgroupsData.get(newOrder%5BcurPos%2BnewOffset%5D)%3Bvar%20shouldBeGroup%3DgroupsData.get(origOrder%5BcurPos%2BorgOffset%5D)%3Bthis.options.groupOrderSwap(switchGroup%2CshouldBeGroup%2CgroupsData)%3BgroupsData.update(switchGroup)%3BgroupsData.update(shouldBeGroup)%3Bvar%20switchGroupId%3DnewOrder%5BcurPos%2BnewOffset%5D%3BnewOrder%5BcurPos%2BnewOffset%5D%3DorigOrder%5BcurPos%2BorgOffset%5D%3BnewOrder%5BslippedPosition%5D%3DswitchGroupId%3BcurPos%2B%2B%7D%7D%7D%7D%7D%7D%3BItemSet.prototype._onGroupDragEnd%3Dfunction(event)%7Bif(this.options.groupEditable.order%26%26this.groupTouchParams.group)%7Bevent.stopPropagation()%3Bvar%20me%3Dthis%3Bvar%20id%3Dme.groupTouchParams.group.groupId%3Bvar%20dataset%3Dme.groupsData.getDataSet()%3Bvar%20groupData%3Dutil.extend(%7B%7D%2Cdataset.get(id))%3Bme.options.onMoveGroup(groupData%2Cfunction(groupData)%7Bif(groupData)%7BgroupData%5Bdataset._fieldId%5D%3Did%3Bdataset.update(groupData)%7Delse%7Bvar%20newOrder%3Ddataset.getIds(%7Border%3Ame.options.groupOrder%7D)%3Bif(!util.equalArray(newOrder%2Cme.groupTouchParams.originalOrder))%7Bvar%20origOrder%3Dme.groupTouchParams.originalOrder%3Bvar%20numGroups%3DMath.min(origOrder.length%2CnewOrder.length)%3Bvar%20curPos%3D0%3Bwhile(curPos%3CnumGroups)%7Bwhile(curPos%3CnumGroups%26%26newOrder%5BcurPos%5D%3D%3DorigOrder%5BcurPos%5D)%7BcurPos%2B%2B%7Dif(curPos%3E%3DnumGroups)%7Bbreak%7Dvar%20slippedPosition%3DnewOrder.indexOf(origOrder%5BcurPos%5D)%3Bvar%20switchGroup%3Ddataset.get(newOrder%5BcurPos%5D)%3Bvar%20shouldBeGroup%3Ddataset.get(origOrder%5BcurPos%5D)%3Bme.options.groupOrderSwap(switchGroup%2CshouldBeGroup%2Cdataset)%3Bdataset.update(switchGroup)%3Bdataset.update(shouldBeGroup)%3Bvar%20switchGroupId%3DnewOrder%5BcurPos%5D%3BnewOrder%5BcurPos%5D%3DorigOrder%5BcurPos%5D%3BnewOrder%5BslippedPosition%5D%3DswitchGroupId%3BcurPos%2B%2B%7D%7D%7D%7D)%3Bme.body.emitter.emit(%5C%5C%5C%22groupDragged%5C%5C%5C%22%2C%7BgroupId%3Aid%7D)%7D%7D%3BItemSet.prototype._onSelectItem%3Dfunction(event)%7Bif(!this.options.selectable)return%3Bvar%20ctrlKey%3Devent.srcEvent%26%26(event.srcEvent.ctrlKey%7C%7Cevent.srcEvent.metaKey)%3Bvar%20shiftKey%3Devent.srcEvent%26%26event.srcEvent.shiftKey%3Bif(ctrlKey%7C%7CshiftKey)%7Bthis._onMultiSelectItem(event)%3Breturn%7Dvar%20oldSelection%3Dthis.getSelection()%3Bvar%20item%3Dthis.itemFromTarget(event)%3Bvar%20selection%3Ditem%3F%5Bitem.id%5D%3A%5B%5D%3Bthis.setSelection(selection)%3Bvar%20newSelection%3Dthis.getSelection()%3Bif(newSelection.length%3E0%7C%7ColdSelection.length%3E0)%7Bthis.body.emitter.emit(%5C%5C%5C%22select%5C%5C%5C%22%2C%7Bitems%3AnewSelection%2Cevent%3Aevent%7D)%7D%7D%3BItemSet.prototype._onMouseOver%3Dfunction(event)%7Bvar%20item%3Dthis.itemFromTarget(event)%3Bif(!item)return%3Bvar%20related%3Dthis.itemFromRelatedTarget(event)%3Bif(item%3D%3D%3Drelated)%7Breturn%7Dvar%20title%3Ditem.getTitle()%3Bif(this.options.showTooltips%26%26title)%7Bif(this.popup%3D%3Dnull)%7Bthis.popup%3Dnew%20Popup(this.body.dom.root%2Cthis.options.tooltip.overflowMethod%7C%7C%5C%5C%5C%22flip%5C%5C%5C%22)%7Dthis.popup.setText(title)%3Bvar%20container%3Dthis.body.dom.centerContainer%3Bthis.popup.setPosition(event.clientX-util.getAbsoluteLeft(container)%2Bcontainer.offsetLeft%2Cevent.clientY-util.getAbsoluteTop(container)%2Bcontainer.offsetTop)%3Bthis.popup.show()%7Delse%7Bif(this.popup!%3Dnull)%7Bthis.popup.hide()%7D%7Dthis.body.emitter.emit(%5C%5C%5C%22itemover%5C%5C%5C%22%2C%7Bitem%3Aitem.id%2Cevent%3Aevent%7D)%7D%3BItemSet.prototype._onMouseOut%3Dfunction(event)%7Bvar%20item%3Dthis.itemFromTarget(event)%3Bif(!item)return%3Bvar%20related%3Dthis.itemFromRelatedTarget(event)%3Bif(item%3D%3D%3Drelated)%7Breturn%7Dif(this.popup!%3Dnull)%7Bthis.popup.hide()%7Dthis.body.emitter.emit(%5C%5C%5C%22itemout%5C%5C%5C%22%2C%7Bitem%3Aitem.id%2Cevent%3Aevent%7D)%7D%3BItemSet.prototype._onMouseMove%3Dfunction(event)%7Bvar%20item%3Dthis.itemFromTarget(event)%3Bif(!item)return%3Bif(this.options.showTooltips%26%26this.options.tooltip.followMouse)%7Bif(this.popup)%7Bif(!this.popup.hidden)%7Bvar%20container%3Dthis.body.dom.centerContainer%3Bthis.popup.setPosition(event.clientX-util.getAbsoluteLeft(container)%2Bcontainer.offsetLeft%2Cevent.clientY-util.getAbsoluteTop(container)%2Bcontainer.offsetTop)%3Bthis.popup.show()%7D%7D%7D%7D%3BItemSet.prototype._onMouseWheel%3Dfunction(event)%7Bif(this.touchParams.itemIsDragging)%7Bthis._onDragEnd(event)%7D%7D%3BItemSet.prototype._onUpdateItem%3Dfunction(item)%7Bif(!this.options.selectable)return%3Bif(!this.options.editable.add)return%3Bvar%20me%3Dthis%3Bif(item)%7Bvar%20itemData%3Dme.itemsData.get(item.id)%3Bthis.options.onUpdate(itemData%2Cfunction(itemData)%7Bif(itemData)%7Bme.itemsData.getDataSet().update(itemData)%7D%7D)%7D%7D%3BItemSet.prototype._onDropObjectOnItem%3Dfunction(event)%7Bvar%20item%3Dthis.itemFromTarget(event)%3Bvar%20objectData%3DJSON.parse(event.dataTransfer.getData(%5C%5C%5C%22text%5C%5C%5C%22))%3Bthis.options.onDropObjectOnItem(objectData%2Citem)%7D%3BItemSet.prototype._onAddItem%3Dfunction(event)%7Bif(!this.options.selectable)return%3Bif(!this.options.editable.add)return%3Bvar%20me%3Dthis%3Bvar%20snap%3Dthis.options.snap%7C%7Cnull%3Bvar%20xAbs%3Bvar%20x%3Bif(this.options.rtl)%7BxAbs%3Dutil.getAbsoluteRight(this.dom.frame)%3Bx%3DxAbs-event.center.x%7Delse%7BxAbs%3Dutil.getAbsoluteLeft(this.dom.frame)%3Bx%3Devent.center.x-xAbs%7Dvar%20start%3Dthis.body.util.toTime(x)%3Bvar%20scale%3Dthis.body.util.getScale()%3Bvar%20step%3Dthis.body.util.getStep()%3Bvar%20end%3Bvar%20newItemData%3Bif(event.type%3D%3D%5C%5C%5C%22drop%5C%5C%5C%22)%7BnewItemData%3DJSON.parse(event.dataTransfer.getData(%5C%5C%5C%22text%5C%5C%5C%22))%3BnewItemData.content%3DnewItemData.content%3FnewItemData.content%3A%5C%5C%5C%22new%20item%5C%5C%5C%22%3BnewItemData.start%3DnewItemData.start%3FnewItemData.start%3Asnap%3Fsnap(start%2Cscale%2Cstep)%3Astart%3BnewItemData.type%3DnewItemData.type%7C%7C%5C%5C%5C%22box%5C%5C%5C%22%3BnewItemData%5Bthis.itemsData._fieldId%5D%3DnewItemData.id%7C%7Cutil.randomUUID()%3Bif(newItemData.type%3D%3D%5C%5C%5C%22range%5C%5C%5C%22%26%26!newItemData.end)%7Bend%3Dthis.body.util.toTime(x%2Bthis.props.width%2F5)%3BnewItemData.end%3Dsnap%3Fsnap(end%2Cscale%2Cstep)%3Aend%7D%7Delse%7BnewItemData%3D%7Bstart%3Asnap%3Fsnap(start%2Cscale%2Cstep)%3Astart%2Ccontent%3A%5C%5C%5C%22new%20item%5C%5C%5C%22%7D%3BnewItemData%5Bthis.itemsData._fieldId%5D%3Dutil.randomUUID()%3Bif(this.options.type%3D%3D%3D%5C%5C%5C%22range%5C%5C%5C%22)%7B%5C%5Cnend%3Dthis.body.util.toTime(x%2Bthis.props.width%2F5)%3BnewItemData.end%3Dsnap%3Fsnap(end%2Cscale%2Cstep)%3Aend%7D%7Dvar%20group%3Dthis.groupFromTarget(event)%3Bif(group)%7BnewItemData.group%3Dgroup.groupId%7DnewItemData%3Dthis._cloneItemData(newItemData)%3Bthis.options.onAdd(newItemData%2Cfunction(item)%7Bif(item)%7Bme.itemsData.getDataSet().add(item)%3Bif(event.type%3D%3D%5C%5C%5C%22drop%5C%5C%5C%22)%7Bme.setSelection(%5Bitem.id%5D)%7D%7D%7D)%7D%3BItemSet.prototype._onMultiSelectItem%3Dfunction(event)%7Bif(!this.options.selectable)return%3Bvar%20item%3Dthis.itemFromTarget(event)%3Bif(item)%7Bvar%20selection%3Dthis.options.multiselect%3Fthis.getSelection()%3A%5B%5D%3Bvar%20shiftKey%3Devent.srcEvent%26%26event.srcEvent.shiftKey%7C%7Cfalse%3Bif(shiftKey%26%26this.options.multiselect)%7Bvar%20itemGroup%3Dthis.itemsData.get(item.id).group%3Bvar%20lastSelectedGroup%3Dundefined%3Bif(this.options.multiselectPerGroup)%7Bif(selection.length%3E0)%7BlastSelectedGroup%3Dthis.itemsData.get(selection%5B0%5D).group%7D%7Dif(!this.options.multiselectPerGroup%7C%7ClastSelectedGroup%3D%3Dundefined%7C%7ClastSelectedGroup%3D%3DitemGroup)%7Bselection.push(item.id)%7Dvar%20range%3DItemSet._getItemRange(this.itemsData.get(selection%2Cthis.itemOptions))%3Bif(!this.options.multiselectPerGroup%7C%7ClastSelectedGroup%3D%3DitemGroup)%7Bselection%3D%5B%5D%3Bfor(var%20id%20in%20this.items)%7Bif(this.items.hasOwnProperty(id))%7Bvar%20_item%3Dthis.items%5Bid%5D%3Bvar%20start%3D_item.data.start%3Bvar%20end%3D_item.data.end!%3D%3Dundefined%3F_item.data.end%3Astart%3Bif(start%3E%3Drange.min%26%26end%3C%3Drange.max%26%26(!this.options.multiselectPerGroup%7C%7ClastSelectedGroup%3D%3Dthis.itemsData.get(_item.id).group)%26%26!(_item%20instanceof%20BackgroundItem))%7Bselection.push(_item.id)%7D%7D%7D%7D%7Delse%7Bvar%20index%3Dselection.indexOf(item.id)%3Bif(index%3D%3D-1)%7Bselection.push(item.id)%7Delse%7Bselection.splice(index%2C1)%7D%7Dthis.setSelection(selection)%3Bthis.body.emitter.emit(%5C%5C%5C%22select%5C%5C%5C%22%2C%7Bitems%3Athis.getSelection()%2Cevent%3Aevent%7D)%7D%7D%3BItemSet._getItemRange%3Dfunction(itemsData)%7Bvar%20max%3Dnull%3Bvar%20min%3Dnull%3BitemsData.forEach(function(data)%7Bif(min%3D%3Dnull%7C%7Cdata.start%3Cmin)%7Bmin%3Ddata.start%7Dif(data.end!%3Dundefined)%7Bif(max%3D%3Dnull%7C%7Cdata.end%3Emax)%7Bmax%3Ddata.end%7D%7Delse%7Bif(max%3D%3Dnull%7C%7Cdata.start%3Emax)%7Bmax%3Ddata.start%7D%7D%7D)%3Breturn%7Bmin%3Amin%2Cmax%3Amax%7D%7D%3BItemSet.prototype.itemFromElement%3Dfunction(element)%7Bvar%20cur%3Delement%3Bwhile(cur)%7Bif(cur.hasOwnProperty(%5C%5C%5C%22timeline-item%5C%5C%5C%22))%7Breturn%20cur%5B%5C%5C%5C%22timeline-item%5C%5C%5C%22%5D%7Dcur%3Dcur.parentNode%7Dreturn%20null%7D%3BItemSet.prototype.itemFromTarget%3Dfunction(event)%7Breturn%20this.itemFromElement(event.target)%7D%3BItemSet.prototype.itemFromRelatedTarget%3Dfunction(event)%7Breturn%20this.itemFromElement(event.relatedTarget)%7D%3BItemSet.prototype.groupFromTarget%3Dfunction(event)%7Bvar%20clientY%3Devent.center%3Fevent.center.y%3Aevent.clientY%3Bvar%20groupIds%3Dthis.groupIds%3Bif(groupIds.length%3C%3D0%26%26this.groupsData)%7BgroupIds%3Dthis.groupsData.getIds(%7Border%3Athis.options.groupOrder%7D)%7Dfor(var%20i%3D0%3Bi%3CgroupIds.length%3Bi%2B%2B)%7Bvar%20groupId%3DgroupIds%5Bi%5D%3Bvar%20group%3Dthis.groups%5BgroupId%5D%3Bvar%20foreground%3Dgroup.dom.foreground%3Bvar%20top%3Dutil.getAbsoluteTop(foreground)%3Bif(clientY%3Etop%26%26clientY%3Ctop%2Bforeground.offsetHeight)%7Breturn%20group%7Dif(this.options.orientation.item%3D%3D%3D%5C%5C%5C%22top%5C%5C%5C%22)%7Bif(i%3D%3D%3Dthis.groupIds.length-1%26%26clientY%3Etop)%7Breturn%20group%7D%7Delse%7Bif(i%3D%3D%3D0%26%26clientY%3Ctop%2Bforeground.offset)%7Breturn%20group%7D%7D%7Dreturn%20null%7D%3BItemSet.itemSetFromTarget%3Dfunction(event)%7Bvar%20target%3Devent.target%3Bwhile(target)%7Bif(target.hasOwnProperty(%5C%5C%5C%22timeline-itemset%5C%5C%5C%22))%7Breturn%20target%5B%5C%5C%5C%22timeline-itemset%5C%5C%5C%22%5D%7Dtarget%3Dtarget.parentNode%7Dreturn%20null%7D%3BItemSet.prototype._cloneItemData%3Dfunction(itemData%2Ctype)%7Bvar%20clone%3Dutil.extend(%7B%7D%2CitemData)%3Bif(!type)%7Btype%3Dthis.itemsData.getDataSet()._options.type%7Dif(clone.start!%3Dundefined)%7Bclone.start%3Dutil.convert(clone.start%2Ctype%26%26type.start%7C%7C%5C%5C%5C%22Date%5C%5C%5C%22)%7Dif(clone.end!%3Dundefined)%7Bclone.end%3Dutil.convert(clone.end%2Ctype%26%26type.end%7C%7C%5C%5C%5C%22Date%5C%5C%5C%22)%7Dreturn%20clone%7D%3Bmodule.exports%3DItemSet%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bvar%20EPSILON%3D.001%3Bexports.orderByStart%3Dfunction(items)%7Bitems.sort(function(a%2Cb)%7Breturn%20a.data.start-b.data.start%7D)%7D%3Bexports.orderByEnd%3Dfunction(items)%7Bitems.sort(function(a%2Cb)%7Bvar%20aTime%3D%5C%5C%5C%22end%5C%5C%5C%22in%20a.data%3Fa.data.end%3Aa.data.start%2CbTime%3D%5C%5C%5C%22end%5C%5C%5C%22in%20b.data%3Fb.data.end%3Ab.data.start%3Breturn%20aTime-bTime%7D)%7D%3Bexports.stack%3Dfunction(items%2Cmargin%2Cforce)%7Bif(force)%7Bfor(var%20i%3D0%3Bi%3Citems.length%3Bi%2B%2B)%7Bitems%5Bi%5D.top%3Dnull%7D%7Dfor(var%20i%3D0%3Bi%3Citems.length%3Bi%2B%2B)%7Bvar%20item%3Ditems%5Bi%5D%3Bif(item.stack%26%26item.top%3D%3D%3Dnull)%7Bitem.top%3Dmargin.axis%3Bdo%7Bvar%20collidingItem%3Dnull%3Bfor(var%20j%3D0%2Cjj%3Ditems.length%3Bj%3Cjj%3Bj%2B%2B)%7Bvar%20other%3Ditems%5Bj%5D%3Bif(other.top!%3D%3Dnull%26%26other!%3D%3Ditem%26%26other.stack%26%26exports.collision(item%2Cother%2Cmargin.item%2Cother.options.rtl))%7BcollidingItem%3Dother%3Bbreak%7D%7Dif(collidingItem!%3Dnull)%7Bitem.top%3DcollidingItem.top%2BcollidingItem.height%2Bmargin.item.vertical%7D%7Dwhile(collidingItem)%7D%7D%7D%3Bexports.substack%3Dfunction(items%2Cmargin%2Csubgroup)%7Bfor(var%20i%3D0%3Bi%3Citems.length%3Bi%2B%2B)%7Bitems%5Bi%5D.top%3Dnull%7Dvar%20subgroupHeight%3Dsubgroup.height%3Bfor(i%3D0%3Bi%3Citems.length%3Bi%2B%2B)%7Bvar%20item%3Ditems%5Bi%5D%3Bif(item.stack%26%26item.top%3D%3D%3Dnull)%7Bitem.top%3Ditem.baseTop%3Bdo%7Bvar%20collidingItem%3Dnull%3Bfor(var%20j%3D0%2Cjj%3Ditems.length%3Bj%3Cjj%3Bj%2B%2B)%7Bvar%20other%3Ditems%5Bj%5D%3Bif(other.top!%3D%3Dnull%26%26other!%3D%3Ditem%26%26exports.collision(item%2Cother%2Cmargin.item%2Cother.options.rtl))%7BcollidingItem%3Dother%3Bbreak%7D%7Dif(collidingItem!%3Dnull)%7Bitem.top%3DcollidingItem.top%2BcollidingItem.height%2Bmargin.item.vertical%7Dif(item.top%2Bitem.height%3EsubgroupHeight)%7BsubgroupHeight%3Ditem.top%2Bitem.height%7D%7Dwhile(collidingItem)%7D%7Dsubgroup.height%3DsubgroupHeight-subgroup.top%2B.5*margin.item.vertical%7D%3Bexports.nostack%3Dfunction(items%2Cmargin%2Csubgroups%2CstackSubgroups)%7Bfor(var%20i%3D0%3Bi%3Citems.length%3Bi%2B%2B)%7Bif(items%5Bi%5D.data.subgroup%3D%3Dundefined)%7Bitems%5Bi%5D.top%3Dmargin.item.vertical%7Delse%20if(items%5Bi%5D.data.subgroup!%3D%3Dundefined%26%26stackSubgroups)%7Bvar%20newTop%3D0%3Bfor(var%20subgroup%20in%20subgroups)%7Bif(subgroups.hasOwnProperty(subgroup))%7Bif(subgroups%5Bsubgroup%5D.visible%3D%3Dtrue%26%26subgroups%5Bsubgroup%5D.index%3Csubgroups%5Bitems%5Bi%5D.data.subgroup%5D.index)%7BnewTop%2B%3Dsubgroups%5Bsubgroup%5D.height%3Bsubgroups%5Bitems%5Bi%5D.data.subgroup%5D.top%3DnewTop%7D%7D%7Ditems%5Bi%5D.top%3DnewTop%2B.5*margin.item.vertical%7D%7Dif(!stackSubgroups)%7Bexports.stackSubgroups(items%2Cmargin%2Csubgroups)%7D%7D%3Bexports.stackSubgroups%3Dfunction(items%2Cmargin%2Csubgroups)%7Bfor(var%20subgroup%20in%20subgroups)%7Bif(subgroups.hasOwnProperty(subgroup))%7Bsubgroups%5Bsubgroup%5D.top%3D0%3Bdo%7Bvar%20collidingItem%3Dnull%3Bfor(var%20otherSubgroup%20in%20subgroups)%7Bif(subgroups%5BotherSubgroup%5D.top!%3D%3Dnull%26%26otherSubgroup!%3D%3Dsubgroup%26%26subgroups%5Bsubgroup%5D.index%3Esubgroups%5BotherSubgroup%5D.index%26%26exports.collisionByTimes(subgroups%5Bsubgroup%5D%2Csubgroups%5BotherSubgroup%5D))%7BcollidingItem%3Dsubgroups%5BotherSubgroup%5D%3Bbreak%7D%7Dif(collidingItem!%3Dnull)%7Bsubgroups%5Bsubgroup%5D.top%3DcollidingItem.top%2BcollidingItem.height%7D%7Dwhile(collidingItem)%7D%7Dfor(var%20i%3D0%3Bi%3Citems.length%3Bi%2B%2B)%7Bif(items%5Bi%5D.data.subgroup!%3D%3Dundefined)%7Bitems%5Bi%5D.top%3Dsubgroups%5Bitems%5Bi%5D.data.subgroup%5D.top%2B.5*margin.item.vertical%7D%7D%7D%3Bexports.stackSubgroupsWithInnerStack%3Dfunction(subgroupItems%2Cmargin%2Csubgroups)%7Bvar%20doSubStack%3Dfalse%3Bvar%20subgroupOrder%3D%5B%5D%3Bfor(var%20subgroup%20in%20subgroups)%7Bif(subgroups%5Bsubgroup%5D.hasOwnProperty(%5C%5C%5C%22index%5C%5C%5C%22))%7BsubgroupOrder%5Bsubgroups%5Bsubgroup%5D.index%5D%3Dsubgroup%7Delse%7BsubgroupOrder.push(subgroup)%7D%7Dfor(var%20j%3D0%3Bj%3CsubgroupOrder.length%3Bj%2B%2B)%7Bsubgroup%3DsubgroupOrder%5Bj%5D%3Bif(subgroups.hasOwnProperty(subgroup))%7BdoSubStack%3DdoSubStack%7C%7Csubgroups%5Bsubgroup%5D.stack%3Bsubgroups%5Bsubgroup%5D.top%3D0%3Bfor(var%20otherSubgroup%20in%20subgroups)%7Bif(subgroups%5BotherSubgroup%5D.visible%26%26subgroups%5Bsubgroup%5D.index%3Esubgroups%5BotherSubgroup%5D.index)%7Bsubgroups%5Bsubgroup%5D.top%2B%3Dsubgroups%5BotherSubgroup%5D.height%7D%7Dvar%20items%3DsubgroupItems%5Bsubgroup%5D%3Bfor(var%20i%3D0%3Bi%3Citems.length%3Bi%2B%2B)%7Bif(items%5Bi%5D.data.subgroup!%3D%3Dundefined)%7Bitems%5Bi%5D.top%3Dsubgroups%5Bitems%5Bi%5D.data.subgroup%5D.top%2B.5*margin.item.vertical%3Bif(subgroups%5Bsubgroup%5D.stack)%7Bitems%5Bi%5D.baseTop%3Ditems%5Bi%5D.top%7D%7D%7Dif(doSubStack%26%26subgroups%5Bsubgroup%5D.stack)%7Bexports.substack(subgroupItems%5Bsubgroup%5D%2Cmargin%2Csubgroups%5Bsubgroup%5D)%7D%7D%7D%7D%3Bexports.collision%3Dfunction(a%2Cb%2Cmargin%2Crtl)%7Bif(rtl)%7Breturn%20a.right-margin.horizontal%2BEPSILON%3Cb.right%2Bb.width%26%26a.right%2Ba.width%2Bmargin.horizontal-EPSILON%3Eb.right%26%26a.top-margin.vertical%2BEPSILON%3Cb.top%2Bb.height%26%26a.top%2Ba.height%2Bmargin.vertical-EPSILON%3Eb.top%7Delse%7Breturn%20a.left-margin.horizontal%2BEPSILON%3Cb.left%2Bb.width%26%26a.left%2Ba.width%2Bmargin.horizontal-EPSILON%3Eb.left%26%26a.top-margin.vertical%2BEPSILON%3Cb.top%2Bb.height%26%26a.top%2Ba.height%2Bmargin.vertical-EPSILON%3Eb.top%7D%7D%3Bexports.collisionByTimes%3Dfunction(a%2Cb)%7Breturn%20a.start%3C%3Db.start%26%26a.end%3E%3Db.start%26%26a.top%3Cb.top%2Bb.height%26%26a.top%2Ba.height%3Eb.top%7C%7Cb.start%3C%3Da.start%26%26b.end%3E%3Da.start%26%26b.top%3Ca.top%2Ba.height%26%26b.top%2Bb.height%3Ea.top%7D%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bvar%20Item%3D__webpack_require__(38)%3Bfunction%20BoxItem(data%2Cconversion%2Coptions)%7Bthis.props%3D%7Bdot%3A%7Bwidth%3A0%2Cheight%3A0%7D%2Cline%3A%7Bwidth%3A0%2Cheight%3A0%7D%7D%3Bthis.options%3Doptions%3Bif(data)%7Bif(data.start%3D%3Dundefined)%7Bthrow%20new%20Error('Property%20%5C%5C%5C%22start%5C%5C%5C%22%20missing%20in%20item%20'%2Bdata)%7D%7DItem.call(this%2Cdata%2Cconversion%2Coptions)%7DBoxItem.prototype%3Dnew%20Item(null%2Cnull%2Cnull)%3BBoxItem.prototype.isVisible%3Dfunction(range)%7Bvar%20isVisible%3Bvar%20align%3Dthis.options.align%3Bvar%20widthInMs%3Dthis.width*range.getMillisecondsPerPixel()%3Bif(align%3D%3D%5C%5C%5C%22right%5C%5C%5C%22)%7BisVisible%3Dthis.data.start.getTime()%3Erange.start%26%26this.data.start.getTime()-widthInMs%3Crange.end%7Delse%20if(align%3D%3D%5C%5C%5C%22left%5C%5C%5C%22)%7BisVisible%3Dthis.data.start.getTime()%2BwidthInMs%3Erange.start%26%26this.data.start.getTime()%3Crange.end%7Delse%7BisVisible%3Dthis.data.start.getTime()%2BwidthInMs%2F2%3Erange.start%26%26this.data.start.getTime()-widthInMs%2F2%3Crange.end%7Dreturn%20isVisible%7D%3BBoxItem.prototype._createDomElement%3Dfunction()%7Bif(!this.dom)%7Bthis.dom%3D%7B%7D%3Bthis.dom.box%3Ddocument.createElement(%5C%5C%5C%22DIV%5C%5C%5C%22)%3Bthis.dom.content%3Ddocument.createElement(%5C%5C%5C%22DIV%5C%5C%5C%22)%3Bthis.dom.content.className%3D%5C%5C%5C%22vis-item-content%5C%5C%5C%22%3Bthis.dom.box.appendChild(this.dom.content)%3Bthis.dom.line%3Ddocument.createElement(%5C%5C%5C%22DIV%5C%5C%5C%22)%3Bthis.dom.line.className%3D%5C%5C%5C%22vis-line%5C%5C%5C%22%3Bthis.dom.dot%3Ddocument.createElement(%5C%5C%5C%22DIV%5C%5C%5C%22)%3Bthis.dom.dot.className%3D%5C%5C%5C%22vis-dot%5C%5C%5C%22%3Bthis.dom.box%5B%5C%5C%5C%22timeline-item%5C%5C%5C%22%5D%3Dthis%3Bthis.dirty%3Dtrue%7D%7D%3BBoxItem.prototype._appendDomElement%3Dfunction()%7Bif(!this.parent)%7Bthrow%20new%20Error(%5C%5C%5C%22Cannot%20redraw%20item%3A%20no%20parent%20attached%5C%5C%5C%22)%7Dif(!this.dom.box.parentNode)%7Bvar%20foreground%3Dthis.parent.dom.foreground%3Bif(!foreground)throw%20new%20Error(%5C%5C%5C%22Cannot%20redraw%20item%3A%20parent%20has%20no%20foreground%20container%20element%5C%5C%5C%22)%3Bforeground.appendChild(this.dom.box)%7Dif(!this.dom.line.parentNode)%7Bvar%20background%3Dthis.parent.dom.background%3Bif(!background)throw%20new%20Error(%5C%5C%5C%22Cannot%20redraw%20item%3A%20parent%20has%20no%20background%20container%20element%5C%5C%5C%22)%3Bbackground.appendChild(this.dom.line)%7Dif(!this.dom.dot.parentNode)%7Bvar%20axis%3Dthis.parent.dom.axis%3Bif(!background)throw%20new%20Error(%5C%5C%5C%22Cannot%20redraw%20item%3A%20parent%20has%20no%20axis%20container%20element%5C%5C%5C%22)%3Baxis.appendChild(this.dom.dot)%7Dthis.displayed%3Dtrue%7D%3BBoxItem.prototype._updateDirtyDomComponents%3Dfunction()%7Bif(this.dirty)%7Bthis._updateContents(this.dom.content)%3Bthis._updateDataAttributes(this.dom.box)%3Bthis._updateStyle(this.dom.box)%3Bvar%20editable%3Dthis.editable.updateTime%7C%7Cthis.editable.updateGroup%3Bvar%20className%3D(this.data.className%3F%5C%5C%5C%22%20%5C%5C%5C%22%2Bthis.data.className%3A%5C%5C%5C%22%5C%5C%5C%22)%2B(this.selected%3F%5C%5C%5C%22%20vis-selected%5C%5C%5C%22%3A%5C%5C%5C%22%5C%5C%5C%22)%2B(editable%3F%5C%5C%5C%22%20vis-editable%5C%5C%5C%22%3A%5C%5C%5C%22%20vis-readonly%5C%5C%5C%22)%3Bthis.dom.box.className%3D%5C%5C%5C%22vis-item%20vis-box%5C%5C%5C%22%2BclassName%3Bthis.dom.line.className%3D%5C%5C%5C%22vis-item%20vis-line%5C%5C%5C%22%2BclassName%3Bthis.dom.dot.className%3D%5C%5C%5C%22vis-item%20vis-dot%5C%5C%5C%22%2BclassName%7D%7D%3BBoxItem.prototype._getDomComponentsSizes%3Dfunction()%7Breturn%7Bprevious%3A%7Bright%3Athis.dom.box.style.right%2Cleft%3Athis.dom.box.style.left%7D%2Cdot%3A%7Bheight%3Athis.dom.dot.offsetHeight%2Cwidth%3Athis.dom.dot.offsetWidth%7D%2Cline%3A%7Bwidth%3Athis.dom.line.offsetWidth%7D%2Cbox%3A%7Bwidth%3Athis.dom.box.offsetWidth%2Cheight%3Athis.dom.box.offsetHeight%7D%7D%7D%3BBoxItem.prototype._updateDomComponentsSizes%3Dfunction(sizes)%7Bif(this.options.rtl)%7Bthis.dom.box.style.right%3D%5C%5C%5C%220px%5C%5C%5C%22%7Delse%7Bthis.dom.box.style.left%3D%5C%5C%5C%220px%5C%5C%5C%22%7Dthis.props.dot.height%3Dsizes.dot.height%3Bthis.props.dot.width%3Dsizes.dot.width%3Bthis.props.line.width%3Dsizes.line.width%3Bthis.width%3Dsizes.box.width%3Bthis.height%3Dsizes.box.height%3Bif(this.options.rtl)%7Bthis.dom.box.style.right%3Dsizes.previous.right%7Delse%7Bthis.dom.box.style.left%3Dsizes.previous.left%7Dthis.dirty%3Dfalse%7D%3BBoxItem.prototype._repaintDomAdditionals%3Dfunction()%7Bthis._repaintOnItemUpdateTimeTooltip(this.dom.box)%3Bthis._repaintDragCenter()%3Bthis._repaintDeleteButton(this.dom.box)%7D%3BBoxItem.prototype.redraw%3Dfunction(returnQueue)%7Bvar%20sizes%3Bvar%20queue%3D%5Bthis._createDomElement.bind(this)%2Cthis._appendDomElement.bind(this)%2Cthis._updateDirtyDomComponents.bind(this)%2Cfunction()%7Bif(this.dirty)%7Bsizes%3Dthis._getDomComponentsSizes()%7D%7D.bind(this)%2Cfunction()%7Bif(this.dirty)%7Bthis._updateDomComponentsSizes.bind(this)(sizes)%7D%7D.bind(this)%2Cthis._repaintDomAdditionals.bind(this)%5D%3Bif(returnQueue)%7Breturn%20queue%7Delse%7Bvar%20result%3Bqueue.forEach(function(fn)%7Bresult%3Dfn()%7D)%3Breturn%20result%7D%7D%3BBoxItem.prototype.show%3Dfunction()%7Bif(!this.displayed)%7Bthis.redraw()%7D%7D%3BBoxItem.prototype.hide%3Dfunction()%7Bif(this.displayed)%7Bvar%20dom%3Dthis.dom%3Bif(dom.box.parentNode)dom.box.parentNode.removeChild(dom.box)%3Bif(dom.line.parentNode)dom.line.parentNode.removeChild(dom.line)%3Bif(dom.dot.parentNode)dom.dot.parentNode.removeChild(dom.dot)%3Bthis.displayed%3Dfalse%7D%7D%3BBoxItem.prototype.repositionX%3Dfunction()%7Bvar%20start%3Dthis.conversion.toScreen(this.data.start)%3Bvar%20align%3Dthis.options.align%3Bif(align%3D%3D%5C%5C%5C%22right%5C%5C%5C%22)%7Bif(this.options.rtl)%7Bthis.right%3Dstart-this.width%3Bthis.dom.box.style.right%3Dthis.right%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bthis.dom.line.style.right%3Dstart-this.props.line.width%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bthis.dom.dot.style.right%3Dstart-this.props.line.width%2F2-this.props.dot.width%2F2%2B%5C%5C%5C%22px%5C%5C%5C%22%7Delse%7Bthis.left%3Dstart-this.width%3Bthis.dom.box.style.left%3Dthis.left%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bthis.dom.line.style.left%3Dstart-this.props.line.width%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bthis.dom.dot.style.left%3Dstart-this.props.line.width%2F2-this.props.dot.width%2F2%2B%5C%5C%5C%22px%5C%5C%5C%22%7D%7Delse%20if(align%3D%3D%5C%5C%5C%22left%5C%5C%5C%22)%7Bif(this.options.rtl)%7Bthis.right%3Dstart%3Bthis.dom.box.style.right%3Dthis.right%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bthis.dom.line.style.right%3Dstart%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bthis.dom.dot.style.right%3Dstart%2Bthis.props.line.width%2F2-this.props.dot.width%2F2%2B%5C%5C%5C%22px%5C%5C%5C%22%7Delse%7Bthis.left%3Dstart%3Bthis.dom.box.style.left%3Dthis.left%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bthis.dom.line.style.left%3Dstart%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bthis.dom.dot.style.left%3Dstart%2Bthis.props.line.width%2F2-this.props.dot.width%2F2%2B%5C%5C%5C%22px%5C%5C%5C%22%7D%7Delse%7Bif(this.options.rtl)%7Bthis.right%3Dstart-this.width%2F2%3Bthis.dom.box.style.right%3Dthis.right%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bthis.dom.line.style.right%3Dstart-this.props.line.width%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bthis.dom.dot.style.right%3Dstart-this.props.dot.width%2F2%2B%5C%5C%5C%22px%5C%5C%5C%22%7Delse%7Bthis.left%3Dstart-this.width%2F2%3Bthis.dom.box.style.left%3Dthis.left%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bthis.dom.line.style.left%3Dstart-this.props.line.width%2F2%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bthis.dom.dot.style.left%3Dstart-this.props.dot.width%2F2%2B%5C%5C%5C%22px%5C%5C%5C%22%7D%7D%7D%3BBoxItem.prototype.repositionY%3Dfunction()%7Bvar%20orientation%3Dthis.options.orientation.item%3Bvar%20box%3Dthis.dom.box%3Bvar%20line%3Dthis.dom.line%3Bvar%20dot%3Dthis.dom.dot%3Bif(orientation%3D%3D%5C%5C%5C%22top%5C%5C%5C%22)%7Bbox.style.top%3D(this.top%7C%7C0)%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bline.style.top%3D%5C%5C%5C%220%5C%5C%5C%22%3Bline.style.height%3Dthis.parent.top%2Bthis.top%2B1%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bline.style.bottom%3D%5C%5C%5C%22%5C%5C%5C%22%7Delse%7Bvar%20itemSetHeight%3Dthis.parent.itemSet.props.height%3Bvar%20lineHeight%3DitemSetHeight-this.parent.top-this.parent.height%2Bthis.top%3Bbox.style.top%3D(this.parent.height-this.top-this.height%7C%7C0)%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bline.style.top%3DitemSetHeight-lineHeight%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bline.style.bottom%3D%5C%5C%5C%220%5C%5C%5C%22%7Ddot.style.top%3D-this.props.dot.height%2F2%2B%5C%5C%5C%22px%5C%5C%5C%22%7D%3BBoxItem.prototype.getWidthLeft%3Dfunction()%7Breturn%20this.width%2F2%7D%3BBoxItem.prototype.getWidthRight%3Dfunction()%7Breturn%20this.width%2F2%7D%3Bmodule.exports%3DBoxItem%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bvar%20Item%3D__webpack_require__(38)%3Bfunction%20PointItem(data%2Cconversion%2Coptions)%7Bthis.props%3D%7Bdot%3A%7Btop%3A0%2Cwidth%3A0%2Cheight%3A0%7D%2Ccontent%3A%7Bheight%3A0%2CmarginLeft%3A0%2CmarginRight%3A0%7D%7D%3Bthis.options%3Doptions%3Bif(data)%7Bif(data.start%3D%3Dundefined)%7Bthrow%20new%20Error('Property%20%5C%5C%5C%22start%5C%5C%5C%22%20missing%20in%20item%20'%2Bdata)%7D%7DItem.call(this%2Cdata%2Cconversion%2Coptions)%7DPointItem.prototype%3Dnew%20Item(null%2Cnull%2Cnull)%3BPointItem.prototype.isVisible%3Dfunction(range)%7Bvar%20widthInMs%3Dthis.width*range.getMillisecondsPerPixel()%3Breturn%20this.data.start.getTime()%2BwidthInMs%3Erange.start%26%26this.data.start%3Crange.end%7D%3BPointItem.prototype._createDomElement%3Dfunction()%7Bif(!this.dom)%7Bthis.dom%3D%7B%7D%3Bthis.dom.point%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bthis.dom.content%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bthis.dom.content.className%3D%5C%5C%5C%22vis-item-content%5C%5C%5C%22%3Bthis.dom.point.appendChild(this.dom.content)%3Bthis.dom.dot%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bthis.dom.point.appendChild(this.dom.dot)%3Bthis.dom.point%5B%5C%5C%5C%22timeline-item%5C%5C%5C%22%5D%3Dthis%3Bthis.dirty%3Dtrue%7D%7D%3BPointItem.prototype._appendDomElement%3Dfunction()%7Bif(!this.parent)%7Bthrow%20new%20Error(%5C%5C%5C%22Cannot%20redraw%20item%3A%20no%20parent%20attached%5C%5C%5C%22)%7Dif(!this.dom.point.parentNode)%7Bvar%20foreground%3Dthis.parent.dom.foreground%3Bif(!foreground)%7Bthrow%20new%20Error(%5C%5C%5C%22Cannot%20redraw%20item%3A%20parent%20has%20no%20foreground%20container%20element%5C%5C%5C%22)%7Dforeground.appendChild(this.dom.point)%7Dthis.displayed%3Dtrue%7D%3BPointItem.prototype._updateDirtyDomComponents%3Dfunction()%7Bif(this.dirty)%7Bthis._updateContents(this.dom.content)%3Bthis._updateDataAttributes(this.dom.point)%3Bthis._updateStyle(this.dom.point)%3Bvar%20editable%3Dthis.editable.updateTime%7C%7Cthis.editable.updateGroup%3Bvar%20className%3D(this.data.className%3F%5C%5C%5C%22%20%5C%5C%5C%22%2Bthis.data.className%3A%5C%5C%5C%22%5C%5C%5C%22)%2B(this.selected%3F%5C%5C%5C%22%20vis-selected%5C%5C%5C%22%3A%5C%5C%5C%22%5C%5C%5C%22)%2B(editable%3F%5C%5C%5C%22%20vis-editable%5C%5C%5C%22%3A%5C%5C%5C%22%20vis-readonly%5C%5C%5C%22)%3Bthis.dom.point.className%3D%5C%5C%5C%22vis-item%20vis-point%5C%5C%5C%22%2BclassName%3Bthis.dom.dot.className%3D%5C%5C%5C%22vis-item%20vis-dot%5C%5C%5C%22%2BclassName%7D%7D%3BPointItem.prototype._getDomComponentsSizes%3Dfunction()%7Breturn%7Bdot%3A%7Bwidth%3Athis.dom.dot.offsetWidth%2Cheight%3Athis.dom.dot.offsetHeight%7D%2Ccontent%3A%7Bwidth%3Athis.dom.content.offsetWidth%2Cheight%3Athis.dom.content.offsetHeight%7D%2Cpoint%3A%7Bwidth%3Athis.dom.point.offsetWidth%2Cheight%3Athis.dom.point.offsetHeight%7D%7D%7D%3BPointItem.prototype._updateDomComponentsSizes%3Dfunction(sizes)%7Bthis.props.dot.width%3Dsizes.dot.width%3Bthis.props.dot.height%3Dsizes.dot.height%3Bthis.props.content.height%3Dsizes.content.height%3Bif(this.options.rtl)%7Bthis.dom.content.style.marginRight%3D2*this.props.dot.width%2B%5C%5C%5C%22px%5C%5C%5C%22%7Delse%7Bthis.dom.content.style.marginLeft%3D2*this.props.dot.width%2B%5C%5C%5C%22px%5C%5C%5C%22%7Dthis.width%3Dsizes.point.width%3Bthis.height%3Dsizes.point.height%3Bthis.dom.dot.style.top%3D(this.height-this.props.dot.height)%2F2%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bif(this.options.rtl)%7Bthis.dom.dot.style.right%3Dthis.props.dot.width%2F2%2B%5C%5C%5C%22px%5C%5C%5C%22%7Delse%7Bthis.dom.dot.style.left%3Dthis.props.dot.width%2F2%2B%5C%5C%5C%22px%5C%5C%5C%22%7Dthis.dirty%3Dfalse%7D%3BPointItem.prototype._repaintDomAdditionals%3Dfunction()%7Bthis._repaintOnItemUpdateTimeTooltip(this.dom.point)%3Bthis._repaintDragCenter()%3Bthis._repaintDeleteButton(this.dom.point)%7D%3BPointItem.prototype.redraw%3Dfunction(returnQueue)%7Bvar%20sizes%3Bvar%20queue%3D%5Bthis._createDomElement.bind(this)%2Cthis._appendDomElement.bind(this)%2Cthis._updateDirtyDomComponents.bind(this)%2Cfunction()%7Bif(this.dirty)%7Bsizes%3Dthis._getDomComponentsSizes()%7D%7D.bind(this)%2Cfunction()%7Bif(this.dirty)%7Bthis._updateDomComponentsSizes.bind(this)(sizes)%7D%7D.bind(this)%2Cthis._repaintDomAdditionals.bind(this)%5D%3Bif(returnQueue)%7Breturn%20queue%7Delse%7Bvar%20result%3Bqueue.forEach(function(fn)%7Bresult%3Dfn()%7D)%3Breturn%20result%7D%7D%3BPointItem.prototype.show%3Dfunction()%7Bif(!this.displayed)%7Bthis.redraw()%7D%7D%3BPointItem.prototype.hide%3Dfunction()%7Bif(this.displayed)%7Bif(this.dom.point.parentNode)%7Bthis.dom.point.parentNode.removeChild(this.dom.point)%7Dthis.displayed%3Dfalse%7D%7D%3BPointItem.prototype.repositionX%3Dfunction()%7Bvar%20start%3Dthis.conversion.toScreen(this.data.start)%3Bif(this.options.rtl)%7Bthis.right%3Dstart-this.props.dot.width%3Bthis.dom.point.style.right%3Dthis.right%2B%5C%5C%5C%22px%5C%5C%5C%22%7Delse%7Bthis.left%3Dstart-this.props.dot.width%3Bthis.dom.point.style.left%3Dthis.left%2B%5C%5C%5C%22px%5C%5C%5C%22%7D%7D%3BPointItem.prototype.repositionY%3Dfunction()%7Bvar%20orientation%3Dthis.options.orientation.item%3Bvar%20point%3Dthis.dom.point%3Bif(orientation%3D%3D%5C%5C%5C%22top%5C%5C%5C%22)%7Bpoint.style.top%3Dthis.top%2B%5C%5C%5C%22px%5C%5C%5C%22%7Delse%7Bpoint.style.top%3Dthis.parent.height-this.top-this.height%2B%5C%5C%5C%22px%5C%5C%5C%22%7D%7D%3BPointItem.prototype.getWidthLeft%3Dfunction()%7Breturn%20this.props.dot.width%7D%3BPointItem.prototype.getWidthRight%3Dfunction()%7Breturn%20this.props.dot.width%7D%3Bmodule.exports%3DPointItem%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bvar%20Item%3D__webpack_require__(38)%3Bvar%20BackgroundGroup%3D__webpack_require__(69)%3Bvar%20RangeItem%3D__webpack_require__(70)%3Bfunction%20BackgroundItem(data%2Cconversion%2Coptions)%7Bthis.props%3D%7Bcontent%3A%7Bwidth%3A0%7D%7D%3Bthis.overflow%3Dfalse%3Bif(data)%7Bif(data.start%3D%3Dundefined)%7Bthrow%20new%20Error('Property%20%5C%5C%5C%22start%5C%5C%5C%22%20missing%20in%20item%20'%2Bdata.id)%7Dif(data.end%3D%3Dundefined)%7Bthrow%20new%20Error('Property%20%5C%5C%5C%22end%5C%5C%5C%22%20missing%20in%20item%20'%2Bdata.id)%7D%7DItem.call(this%2Cdata%2Cconversion%2Coptions)%7DBackgroundItem.prototype%3Dnew%20Item(null%2Cnull%2Cnull)%3BBackgroundItem.prototype.baseClassName%3D%5C%5C%5C%22vis-item%20vis-background%5C%5C%5C%22%3BBackgroundItem.prototype.stack%3Dfalse%3BBackgroundItem.prototype.isVisible%3Dfunction(range)%7Breturn%20this.data.start%3Crange.end%26%26this.data.end%3Erange.start%7D%3BBackgroundItem.prototype._createDomElement%3Dfunction()%7Bif(!this.dom)%7Bthis.dom%3D%7B%7D%3Bthis.dom.box%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bthis.dom.frame%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bthis.dom.frame.className%3D%5C%5C%5C%22vis-item-overflow%5C%5C%5C%22%3Bthis.dom.box.appendChild(this.dom.frame)%3Bthis.dom.content%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bthis.dom.content.className%3D%5C%5C%5C%22vis-item-content%5C%5C%5C%22%3Bthis.dom.frame.appendChild(this.dom.content)%3Bthis.dirty%3Dtrue%7D%7D%3BBackgroundItem.prototype._appendDomElement%3Dfunction()%7Bif(!this.parent)%7Bthrow%20new%20Error(%5C%5C%5C%22Cannot%20redraw%20item%3A%20no%20parent%20attached%5C%5C%5C%22)%7Dif(!this.dom.box.parentNode)%7Bvar%20background%3Dthis.parent.dom.background%3Bif(!background)%7Bthrow%20new%20Error(%5C%5C%5C%22Cannot%20redraw%20item%3A%20parent%20has%20no%20background%20container%20element%5C%5C%5C%22)%7Dbackground.appendChild(this.dom.box)%7Dthis.displayed%3Dtrue%7D%3BBackgroundItem.prototype._updateDirtyDomComponents%3Dfunction()%7Bif(this.dirty)%7Bthis._updateContents(this.dom.content)%3Bthis._updateDataAttributes(this.dom.content)%3Bthis._updateStyle(this.dom.box)%3Bvar%20className%3D(this.data.className%3F%5C%5C%5C%22%20%5C%5C%5C%22%2Bthis.data.className%3A%5C%5C%5C%22%5C%5C%5C%22)%2B(this.selected%3F%5C%5C%5C%22%20vis-selected%5C%5C%5C%22%3A%5C%5C%5C%22%5C%5C%5C%22)%3Bthis.dom.box.className%3Dthis.baseClassName%2BclassName%7D%7D%3BBackgroundItem.prototype._getDomComponentsSizes%3Dfunction()%7Bthis.overflow%3Dwindow.getComputedStyle(this.dom.content).overflow!%3D%3D%5C%5C%5C%22hidden%5C%5C%5C%22%3Breturn%7Bcontent%3A%7Bwidth%3Athis.dom.content.offsetWidth%7D%7D%7D%3BBackgroundItem.prototype._updateDomComponentsSizes%3Dfunction(sizes)%7Bthis.props.content.width%3Dsizes.content.width%3Bthis.height%3D0%3Bthis.dirty%3Dfalse%7D%3BBackgroundItem.prototype._repaintDomAdditionals%3Dfunction()%7B%7D%3BBackgroundItem.prototype.redraw%3Dfunction(returnQueue)%7Bvar%20sizes%3Bvar%20queue%3D%5Bthis._createDomElement.bind(this)%2Cthis._appendDomElement.bind(this)%2Cthis._updateDirtyDomComponents.bind(this)%2Cfunction()%7Bif(this.dirty)%7Bsizes%3Dthis._getDomComponentsSizes.bind(this)()%7D%7D.bind(this)%2Cfunction()%7Bif(this.dirty)%7Bthis._updateDomComponentsSizes.bind(this)(sizes)%7D%7D.bind(this)%2Cthis._repaintDomAdditionals.bind(this)%5D%3Bif(returnQueue)%7Breturn%20queue%7Delse%7Bvar%20result%3Bqueue.forEach(function(fn)%7Bresult%3Dfn()%7D)%3Breturn%20result%7D%7D%3BBackgroundItem.prototype.show%3DRangeItem.prototype.show%3BBackgroundItem.prototype.hide%3DRangeItem.prototype.hide%3BBackgroundItem.prototype.repositionX%3DRangeItem.prototype.repositionX%3BBackgroundItem.prototype.repositionY%3Dfunction(margin)%7Bvar%20height%3Bvar%20orientation%3Dthis.options.orientation.item%3Bif(this.data.subgroup!%3D%3Dundefined)%7Bvar%20itemSubgroup%3Dthis.data.subgroup%3Bthis.dom.box.style.height%3Dthis.parent.subgroups%5BitemSubgroup%5D.height%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bif(orientation%3D%3D%5C%5C%5C%22top%5C%5C%5C%22)%7Bthis.dom.box.style.top%3Dthis.parent.top%2Bthis.parent.subgroups%5BitemSubgroup%5D.top%2B%5C%5C%5C%22px%5C%5C%5C%22%7Delse%7Bthis.dom.box.style.top%3Dthis.parent.top%2Bthis.parent.height-this.parent.subgroups%5BitemSubgroup%5D.top-this.parent.subgroups%5BitemSubgroup%5D.height%2B%5C%5C%5C%22px%5C%5C%5C%22%7Dthis.dom.box.style.bottom%3D%5C%5C%5C%22%5C%5C%5C%22%7Delse%7Bif(this.parent%20instanceof%20BackgroundGroup)%7Bheight%3DMath.max(this.parent.height%2Cthis.parent.itemSet.body.domProps.center.height%2Cthis.parent.itemSet.body.domProps.centerContainer.height)%3Bthis.dom.box.style.bottom%3Dorientation%3D%3D%5C%5C%5C%22bottom%5C%5C%5C%22%3F%5C%5C%5C%220%5C%5C%5C%22%3A%5C%5C%5C%22%5C%5C%5C%22%3Bthis.dom.box.style.top%3Dorientation%3D%3D%5C%5C%5C%22top%5C%5C%5C%22%3F%5C%5C%5C%220%5C%5C%5C%22%3A%5C%5C%5C%22%5C%5C%5C%22%7Delse%7Bheight%3Dthis.parent.height%3Bthis.dom.box.style.top%3Dthis.parent.top%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bthis.dom.box.style.bottom%3D%5C%5C%5C%22%5C%5C%5C%22%7D%7Dthis.dom.box.style.height%3Dheight%2B%5C%5C%5C%22px%5C%5C%5C%22%7D%3Bmodule.exports%3DBackgroundItem%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_classCallCheck2%3D__webpack_require__(0)%3Bvar%20_classCallCheck3%3D_interopRequireDefault(_classCallCheck2)%3Bvar%20_createClass2%3D__webpack_require__(1)%3Bvar%20_createClass3%3D_interopRequireDefault(_createClass2)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20Popup%3Dfunction()%7Bfunction%20Popup(container%2CoverflowMethod)%7B(0%2C_classCallCheck3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2CPopup)%3Bthis.container%3Dcontainer%3Bthis.overflowMethod%3DoverflowMethod%7C%7C%5C%5C%5C%22cap%5C%5C%5C%22%3Bthis.x%3D0%3Bthis.y%3D0%3Bthis.padding%3D5%3Bthis.hidden%3Dfalse%3Bthis.frame%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bthis.frame.className%3D%5C%5C%5C%22vis-tooltip%5C%5C%5C%22%3Bthis.container.appendChild(this.frame)%7D(0%2C_createClass3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(Popup%2C%5B%7Bkey%3A%5C%5C%5C%22setPosition%5C%5C%5C%22%2Cvalue%3Afunction%20setPosition(x%2Cy)%7Bthis.x%3DparseInt(x)%3Bthis.y%3DparseInt(y)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22setText%5C%5C%5C%22%2Cvalue%3Afunction%20setText(content)%7Bif(content%20instanceof%20Element)%7Bthis.frame.innerHTML%3D%5C%5C%5C%22%5C%5C%5C%22%3Bthis.frame.appendChild(content)%7Delse%7Bthis.frame.innerHTML%3Dcontent%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22show%5C%5C%5C%22%2Cvalue%3Afunction%20show(doShow)%7Bif(doShow%3D%3D%3Dundefined)%7BdoShow%3Dtrue%7Dif(doShow%3D%3D%3Dtrue)%7Bvar%20height%3Dthis.frame.clientHeight%3Bvar%20width%3Dthis.frame.clientWidth%3Bvar%20maxHeight%3Dthis.frame.parentNode.clientHeight%3Bvar%20maxWidth%3Dthis.frame.parentNode.clientWidth%3Bvar%20left%3D0%2Ctop%3D0%3Bif(this.overflowMethod%3D%3D%5C%5C%5C%22flip%5C%5C%5C%22)%7Bvar%20isLeft%3Dfalse%2CisTop%3Dtrue%3Bif(this.y-height%3Cthis.padding)%7BisTop%3Dfalse%7Dif(this.x%2Bwidth%3EmaxWidth-this.padding)%7BisLeft%3Dtrue%7Dif(isLeft)%7Bleft%3Dthis.x-width%7Delse%7Bleft%3Dthis.x%7Dif(isTop)%7Btop%3Dthis.y-height%7Delse%7Btop%3Dthis.y%7D%7Delse%7Btop%3Dthis.y-height%3Bif(top%2Bheight%2Bthis.padding%3EmaxHeight)%7Btop%3DmaxHeight-height-this.padding%7Dif(top%3Cthis.padding)%7Btop%3Dthis.padding%7Dleft%3Dthis.x%3Bif(left%2Bwidth%2Bthis.padding%3EmaxWidth)%7Bleft%3DmaxWidth-width-this.padding%7Dif(left%3Cthis.padding)%7Bleft%3Dthis.padding%7D%7Dthis.frame.style.left%3Dleft%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bthis.frame.style.top%3Dtop%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bthis.frame.style.visibility%3D%5C%5C%5C%22visible%5C%5C%5C%22%3Bthis.hidden%3Dfalse%7Delse%7Bthis.hide()%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22hide%5C%5C%5C%22%2Cvalue%3Afunction%20hide()%7Bthis.hidden%3Dtrue%3Bthis.frame.style.left%3D%5C%5C%5C%220%5C%5C%5C%22%3Bthis.frame.style.top%3D%5C%5C%5C%220%5C%5C%5C%22%3Bthis.frame.style.visibility%3D%5C%5C%5C%22hidden%5C%5C%5C%22%7D%7D%2C%7Bkey%3A%5C%5C%5C%22destroy%5C%5C%5C%22%2Cvalue%3Afunction%20destroy()%7Bthis.frame.parentNode.removeChild(this.frame)%7D%7D%5D)%3Breturn%20Popup%7D()%3Bexports%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3DPopup%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20string%3D%5C%5C%5C%22string%5C%5C%5C%22%3Bvar%20bool%3D%5C%5C%5C%22boolean%5C%5C%5C%22%3Bvar%20number%3D%5C%5C%5C%22number%5C%5C%5C%22%3Bvar%20array%3D%5C%5C%5C%22array%5C%5C%5C%22%3Bvar%20date%3D%5C%5C%5C%22date%5C%5C%5C%22%3Bvar%20object%3D%5C%5C%5C%22object%5C%5C%5C%22%3Bvar%20dom%3D%5C%5C%5C%22dom%5C%5C%5C%22%3Bvar%20moment%3D%5C%5C%5C%22moment%5C%5C%5C%22%3Bvar%20any%3D%5C%5C%5C%22any%5C%5C%5C%22%3Bvar%20allOptions%3D%7Bconfigure%3A%7Benabled%3A%7Bboolean%3Abool%7D%2Cfilter%3A%7Bboolean%3Abool%2Cfunction%3A%5C%5C%5C%22function%5C%5C%5C%22%7D%2Ccontainer%3A%7Bdom%3Adom%7D%2C__type__%3A%7Bobject%3Aobject%2Cboolean%3Abool%2Cfunction%3A%5C%5C%5C%22function%5C%5C%5C%22%7D%7D%2Calign%3A%7Bstring%3Astring%7D%2Crtl%3A%7Bboolean%3Abool%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2CrollingMode%3A%7Bfollow%3A%7Bboolean%3Abool%7D%2Coffset%3A%7Bnumber%3Anumber%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2C__type__%3A%7Bobject%3Aobject%7D%7D%2CverticalScroll%3A%7Bboolean%3Abool%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2ChorizontalScroll%3A%7Bboolean%3Abool%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2CautoResize%3A%7Bboolean%3Abool%7D%2CthrottleRedraw%3A%7Bnumber%3Anumber%7D%2CclickToUse%3A%7Bboolean%3Abool%7D%2CdataAttributes%3A%7Bstring%3Astring%2Carray%3Aarray%7D%2Ceditable%3A%7Badd%3A%7Bboolean%3Abool%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2Cremove%3A%7Bboolean%3Abool%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2CupdateGroup%3A%7Bboolean%3Abool%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2CupdateTime%3A%7Bboolean%3Abool%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2CoverrideItems%3A%7Bboolean%3Abool%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2C__type__%3A%7Bboolean%3Abool%2Cobject%3Aobject%7D%7D%2Cend%3A%7Bnumber%3Anumber%2Cdate%3Adate%2Cstring%3Astring%2Cmoment%3Amoment%7D%2Cformat%3A%7BminorLabels%3A%7Bmillisecond%3A%7Bstring%3Astring%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2Csecond%3A%7Bstring%3Astring%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2Cminute%3A%7Bstring%3Astring%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2Chour%3A%7Bstring%3Astring%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2Cweekday%3A%7Bstring%3Astring%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2Cday%3A%7Bstring%3Astring%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2Cweek%3A%7Bstring%3Astring%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2Cmonth%3A%7Bstring%3Astring%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2Cyear%3A%7Bstring%3Astring%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2C__type__%3A%7Bobject%3Aobject%2Cfunction%3A%5C%5C%5C%22function%5C%5C%5C%22%7D%7D%2CmajorLabels%3A%7Bmillisecond%3A%7Bstring%3Astring%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2Csecond%3A%7Bstring%3Astring%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2Cminute%3A%7Bstring%3Astring%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2Chour%3A%7Bstring%3Astring%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2Cweekday%3A%7Bstring%3Astring%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2Cday%3A%7Bstring%3Astring%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2Cweek%3A%7Bstring%3Astring%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2Cmonth%3A%7Bstring%3Astring%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2Cyear%3A%7Bstring%3Astring%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2C__type__%3A%7Bobject%3Aobject%2Cfunction%3A%5C%5C%5C%22function%5C%5C%5C%22%7D%7D%2C__type__%3A%7Bobject%3Aobject%7D%7D%2Cmoment%3A%7Bfunction%3A%5C%5C%5C%22function%5C%5C%5C%22%7D%2CgroupOrder%3A%7Bstring%3Astring%2Cfunction%3A%5C%5C%5C%22function%5C%5C%5C%22%7D%2CgroupEditable%3A%7Badd%3A%7Bboolean%3Abool%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2Cremove%3A%7Bboolean%3Abool%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2Corder%3A%7Bboolean%3Abool%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2C__type__%3A%7Bboolean%3Abool%2Cobject%3Aobject%7D%7D%2CgroupOrderSwap%3A%7Bfunction%3A%5C%5C%5C%22function%5C%5C%5C%22%7D%2Cheight%3A%7Bstring%3Astring%2Cnumber%3Anumber%7D%2ChiddenDates%3A%7Bstart%3A%7Bdate%3Adate%2Cnumber%3Anumber%2Cstring%3Astring%2Cmoment%3Amoment%7D%2Cend%3A%7Bdate%3Adate%2Cnumber%3Anumber%2Cstring%3Astring%2Cmoment%3Amoment%7D%2Crepeat%3A%7Bstring%3Astring%7D%2C__type__%3A%7Bobject%3Aobject%2Carray%3Aarray%7D%7D%2CitemsAlwaysDraggable%3A%7Bitem%3A%7Bboolean%3Abool%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2Crange%3A%7Bboolean%3Abool%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2C__type__%3A%7Bboolean%3Abool%2Cobject%3Aobject%7D%7D%2ClimitSize%3A%7Bboolean%3Abool%7D%2Clocale%3A%7Bstring%3Astring%7D%2Clocales%3A%7B__any__%3A%7Bany%3Aany%7D%2C__type__%3A%7Bobject%3Aobject%7D%7D%2Cmargin%3A%7Baxis%3A%7Bnumber%3Anumber%7D%2Citem%3A%7Bhorizontal%3A%7Bnumber%3Anumber%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2Cvertical%3A%7Bnumber%3Anumber%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2C__type__%3A%7Bobject%3Aobject%2Cnumber%3Anumber%7D%7D%2C__type__%3A%7Bobject%3Aobject%2Cnumber%3Anumber%7D%7D%2Cmax%3A%7Bdate%3Adate%2Cnumber%3Anumber%2Cstring%3Astring%2Cmoment%3Amoment%7D%2CmaxHeight%3A%7Bnumber%3Anumber%2Cstring%3Astring%7D%2CmaxMinorChars%3A%7Bnumber%3Anumber%7D%2Cmin%3A%7Bdate%3Adate%2Cnumber%3Anumber%2Cstring%3Astring%2Cmoment%3Amoment%7D%2CminHeight%3A%7Bnumber%3Anumber%2Cstring%3Astring%7D%2Cmoveable%3A%7Bboolean%3Abool%7D%2Cmultiselect%3A%7Bboolean%3Abool%7D%2CmultiselectPerGroup%3A%7Bboolean%3Abool%7D%2ConAdd%3A%7Bfunction%3A%5C%5C%5C%22function%5C%5C%5C%22%7D%2ConDropObjectOnItem%3A%7Bfunction%3A%5C%5C%5C%22function%5C%5C%5C%22%7D%2ConUpdate%3A%7Bfunction%3A%5C%5C%5C%22function%5C%5C%5C%22%7D%2ConMove%3A%7Bfunction%3A%5C%5C%5C%22function%5C%5C%5C%22%7D%2ConMoving%3A%7Bfunction%3A%5C%5C%5C%22function%5C%5C%5C%22%7D%2ConRemove%3A%7Bfunction%3A%5C%5C%5C%22function%5C%5C%5C%22%7D%2ConAddGroup%3A%7Bfunction%3A%5C%5C%5C%22function%5C%5C%5C%22%7D%2ConMoveGroup%3A%7Bfunction%3A%5C%5C%5C%22function%5C%5C%5C%22%7D%2ConRemoveGroup%3A%7Bfunction%3A%5C%5C%5C%22function%5C%5C%5C%22%7D%2ConInitialDrawComplete%3A%7Bfunction%3A%5C%5C%5C%22function%5C%5C%5C%22%7D%2Corder%3A%7Bfunction%3A%5C%5C%5C%22function%5C%5C%5C%22%7D%2Corientation%3A%7Baxis%3A%7Bstring%3Astring%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2Citem%3A%7Bstring%3Astring%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2C__type__%3A%7Bstring%3Astring%2Cobject%3Aobject%7D%7D%2Cselectable%3A%7Bboolean%3Abool%7D%2CshowCurrentTime%3A%7Bboolean%3Abool%7D%2CshowMajorLabels%3A%7Bboolean%3Abool%7D%2CshowMinorLabels%3A%7Bboolean%3Abool%7D%2Cstack%3A%7Bboolean%3Abool%7D%2CstackSubgroups%3A%7Bboolean%3Abool%7D%2Csnap%3A%7Bfunction%3A%5C%5C%5C%22function%5C%5C%5C%22%2Cnull%3A%5C%5C%5C%22null%5C%5C%5C%22%7D%2Cstart%3A%7Bdate%3Adate%2Cnumber%3Anumber%2Cstring%3Astring%2Cmoment%3Amoment%7D%2Ctemplate%3A%7Bfunction%3A%5C%5C%5C%22function%5C%5C%5C%22%7D%2CgroupTemplate%3A%7Bfunction%3A%5C%5C%5C%22function%5C%5C%5C%22%7D%2CvisibleFrameTemplate%3A%7Bstring%3Astring%2Cfunction%3A%5C%5C%5C%22function%5C%5C%5C%22%7D%2CshowTooltips%3A%7Bboolean%3Abool%7D%2Ctooltip%3A%7BfollowMouse%3A%7Bboolean%3Abool%7D%2CoverflowMethod%3A%7Bstring%3A%5B%5C%5C%5C%22cap%5C%5C%5C%22%2C%5C%5C%5C%22flip%5C%5C%5C%22%5D%7D%2C__type__%3A%7Bobject%3Aobject%7D%7D%2CtooltipOnItemUpdateTime%3A%7Btemplate%3A%7Bfunction%3A%5C%5C%5C%22function%5C%5C%5C%22%7D%2C__type__%3A%7Bboolean%3Abool%2Cobject%3Aobject%7D%7D%2CtimeAxis%3A%7Bscale%3A%7Bstring%3Astring%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2Cstep%3A%7Bnumber%3Anumber%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2C__type__%3A%7Bobject%3Aobject%7D%7D%2Ctype%3A%7Bstring%3Astring%7D%2Cwidth%3A%7Bstring%3Astring%2Cnumber%3Anumber%7D%2Czoomable%3A%7Bboolean%3Abool%7D%2CzoomKey%3A%7Bstring%3A%5B%5C%5C%5C%22ctrlKey%5C%5C%5C%22%2C%5C%5C%5C%22altKey%5C%5C%5C%22%2C%5C%5C%5C%22metaKey%5C%5C%5C%22%2C%5C%5C%5C%22%5C%5C%5C%22%5D%7D%2CzoomMax%3A%7Bnumber%3Anumber%7D%2CzoomMin%3A%7Bnumber%3Anumber%7D%2C__type__%3A%7Bobject%3Aobject%7D%7D%3Bvar%20configureOptions%3D%7Bglobal%3A%7Balign%3A%5B%5C%5C%5C%22center%5C%5C%5C%22%2C%5C%5C%5C%22left%5C%5C%5C%22%2C%5C%5C%5C%22right%5C%5C%5C%22%5D%2Cdirection%3Afalse%2CautoResize%3Atrue%2CclickToUse%3Afalse%2Ceditable%3A%7Badd%3Afalse%2Cremove%3Afalse%2CupdateGroup%3Afalse%2CupdateTime%3Afalse%7D%2Cend%3A%5C%5C%5C%22%5C%5C%5C%22%2Cformat%3A%7BminorLabels%3A%7Bmillisecond%3A%5C%5C%5C%22SSS%5C%5C%5C%22%2Csecond%3A%5C%5C%5C%22s%5C%5C%5C%22%2Cminute%3A%5C%5C%5C%22HH%3Amm%5C%5C%5C%22%2Chour%3A%5C%5C%5C%22HH%3Amm%5C%5C%5C%22%2Cweekday%3A%5C%5C%5C%22ddd%20D%5C%5C%5C%22%2Cday%3A%5C%5C%5C%22D%5C%5C%5C%22%2Cweek%3A%5C%5C%5C%22w%5C%5C%5C%22%2Cmonth%3A%5C%5C%5C%22MMM%5C%5C%5C%22%2Cyear%3A%5C%5C%5C%22YYYY%5C%5C%5C%22%7D%2CmajorLabels%3A%7Bmillisecond%3A%5C%5C%5C%22HH%3Amm%3Ass%5C%5C%5C%22%2Csecond%3A%5C%5C%5C%22D%20MMMM%20HH%3Amm%5C%5C%5C%22%2Cminute%3A%5C%5C%5C%22ddd%20D%20MMMM%5C%5C%5C%22%2Chour%3A%5C%5C%5C%22ddd%20D%20MMMM%5C%5C%5C%22%2Cweekday%3A%5C%5C%5C%22MMMM%20YYYY%5C%5C%5C%22%2Cday%3A%5C%5C%5C%22MMMM%20YYYY%5C%5C%5C%22%2Cweek%3A%5C%5C%5C%22MMMM%20YYYY%5C%5C%5C%22%2Cmonth%3A%5C%5C%5C%22YYYY%5C%5C%5C%22%2Cyear%3A%5C%5C%5C%22%5C%5C%5C%22%7D%7D%2CgroupsDraggable%3Afalse%2Cheight%3A%5C%5C%5C%22%5C%5C%5C%22%2Clocale%3A%5C%5C%5C%22%5C%5C%5C%22%2Cmargin%3A%7Baxis%3A%5B20%2C0%2C100%2C1%5D%2Citem%3A%7Bhorizontal%3A%5B10%2C0%2C100%2C1%5D%2Cvertical%3A%5B10%2C0%2C100%2C1%5D%7D%7D%2Cmax%3A%5C%5C%5C%22%5C%5C%5C%22%2CmaxHeight%3A%5C%5C%5C%22%5C%5C%5C%22%2CmaxMinorChars%3A%5B7%2C0%2C20%2C1%5D%2Cmin%3A%5C%5C%5C%22%5C%5C%5C%22%2CminHeight%3A%5C%5C%5C%22%5C%5C%5C%22%2Cmoveable%3Afalse%2Cmultiselect%3Afalse%2CmultiselectPerGroup%3Afalse%2Corientation%3A%7Baxis%3A%5B%5C%5C%5C%22both%5C%5C%5C%22%2C%5C%5C%5C%22bottom%5C%5C%5C%22%2C%5C%5C%5C%22top%5C%5C%5C%22%5D%2Citem%3A%5B%5C%5C%5C%22bottom%5C%5C%5C%22%2C%5C%5C%5C%22top%5C%5C%5C%22%5D%7D%2Cselectable%3Atrue%2CshowCurrentTime%3Afalse%2CshowMajorLabels%3Atrue%2CshowMinorLabels%3Atrue%2Cstack%3Atrue%2CstackSubgroups%3Atrue%2Cstart%3A%5C%5C%5C%22%5C%5C%5C%22%2CshowTooltips%3Atrue%2Ctooltip%3A%7BfollowMouse%3Afalse%2CoverflowMethod%3A%5C%5C%5C%22flip%5C%5C%5C%22%7D%2CtooltipOnItemUpdateTime%3Afalse%2Ctype%3A%5B%5C%5C%5C%22box%5C%5C%5C%22%2C%5C%5C%5C%22point%5C%5C%5C%22%2C%5C%5C%5C%22range%5C%5C%5C%22%2C%5C%5C%5C%22background%5C%5C%5C%22%5D%2Cwidth%3A%5C%5C%5C%22100%25%5C%5C%5C%22%2Czoomable%3Atrue%2CzoomKey%3A%5B%5C%5C%5C%22ctrlKey%5C%5C%5C%22%2C%5C%5C%5C%22altKey%5C%5C%5C%22%2C%5C%5C%5C%22metaKey%5C%5C%5C%22%2C%5C%5C%5C%22%5C%5C%5C%22%5D%2CzoomMax%3A%5B31536e10%2C10%2C31536e10%2C1%5D%2CzoomMin%3A%5B10%2C10%2C31536e10%2C1%5D%7D%7D%3Bexports.allOptions%3DallOptions%3Bexports.configureOptions%3DconfigureOptions%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bvar%20_typeof2%3D__webpack_require__(6)%3Bvar%20_typeof3%3D_interopRequireDefault(_typeof2)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20util%3D__webpack_require__(2)%3Bvar%20DOMutil%3D__webpack_require__(14)%3Bvar%20DataSet%3D__webpack_require__(11)%3Bvar%20DataView%3D__webpack_require__(12)%3Bvar%20Component%3D__webpack_require__(16)%3Bvar%20DataAxis%3D__webpack_require__(107)%3Bvar%20GraphGroup%3D__webpack_require__(109)%3Bvar%20Legend%3D__webpack_require__(112)%3Bvar%20Bars%3D__webpack_require__(110)%5C%5Cn%3Bvar%20Lines%3D__webpack_require__(111)%3Bvar%20Points%3D__webpack_require__(72)%3Bvar%20UNGROUPED%3D%5C%5C%5C%22__ungrouped__%5C%5C%5C%22%3Bfunction%20LineGraph(body%2Coptions)%7Bthis.id%3Dutil.randomUUID()%3Bthis.body%3Dbody%3Bthis.defaultOptions%3D%7ByAxisOrientation%3A%5C%5C%5C%22left%5C%5C%5C%22%2CdefaultGroup%3A%5C%5C%5C%22default%5C%5C%5C%22%2Csort%3Atrue%2Csampling%3Atrue%2Cstack%3Afalse%2CgraphHeight%3A%5C%5C%5C%22400px%5C%5C%5C%22%2Cshaded%3A%7Benabled%3Afalse%2Corientation%3A%5C%5C%5C%22bottom%5C%5C%5C%22%7D%2Cstyle%3A%5C%5C%5C%22line%5C%5C%5C%22%2CbarChart%3A%7Bwidth%3A50%2CsideBySide%3Afalse%2Calign%3A%5C%5C%5C%22center%5C%5C%5C%22%7D%2Cinterpolation%3A%7Benabled%3Atrue%2Cparametrization%3A%5C%5C%5C%22centripetal%5C%5C%5C%22%2Calpha%3A.5%7D%2CdrawPoints%3A%7Benabled%3Atrue%2Csize%3A6%2Cstyle%3A%5C%5C%5C%22square%5C%5C%5C%22%7D%2CdataAxis%3A%7B%7D%2Clegend%3A%7B%7D%2Cgroups%3A%7Bvisibility%3A%7B%7D%7D%7D%3Bthis.options%3Dutil.extend(%7B%7D%2Cthis.defaultOptions)%3Bthis.dom%3D%7B%7D%3Bthis.props%3D%7B%7D%3Bthis.hammer%3Dnull%3Bthis.groups%3D%7B%7D%3Bthis.abortedGraphUpdate%3Dfalse%3Bthis.updateSVGheight%3Dfalse%3Bthis.updateSVGheightOnResize%3Dfalse%3Bthis.forceGraphUpdate%3Dtrue%3Bvar%20me%3Dthis%3Bthis.itemsData%3Dnull%3Bthis.groupsData%3Dnull%3Bthis.itemListeners%3D%7Badd%3Afunction%20add(event%2Cparams%2CsenderId)%7Bme._onAdd(params.items)%7D%2Cupdate%3Afunction%20update(event%2Cparams%2CsenderId)%7Bme._onUpdate(params.items)%7D%2Cremove%3Afunction%20remove(event%2Cparams%2CsenderId)%7Bme._onRemove(params.items)%7D%7D%3Bthis.groupListeners%3D%7Badd%3Afunction%20add(event%2Cparams%2CsenderId)%7Bme._onAddGroups(params.items)%7D%2Cupdate%3Afunction%20update(event%2Cparams%2CsenderId)%7Bme._onUpdateGroups(params.items)%7D%2Cremove%3Afunction%20remove(event%2Cparams%2CsenderId)%7Bme._onRemoveGroups(params.items)%7D%7D%3Bthis.items%3D%7B%7D%3Bthis.selection%3D%5B%5D%3Bthis.lastStart%3Dthis.body.range.start%3Bthis.touchParams%3D%7B%7D%3Bthis.svgElements%3D%7B%7D%3Bthis.setOptions(options)%3Bthis.groupsUsingDefaultStyles%3D%5B0%5D%3Bthis.body.emitter.on(%5C%5C%5C%22rangechanged%5C%5C%5C%22%2Cfunction()%7Bme.lastStart%3Dme.body.range.start%3Bme.svg.style.left%3Dutil.option.asSize(-me.props.width)%3Bme.forceGraphUpdate%3Dtrue%3Bme.redraw.call(me)%7D)%3Bthis._create()%3Bthis.framework%3D%7Bsvg%3Athis.svg%2CsvgElements%3Athis.svgElements%2Coptions%3Athis.options%2Cgroups%3Athis.groups%7D%7DLineGraph.prototype%3Dnew%20Component%3BLineGraph.prototype._create%3Dfunction()%7Bvar%20frame%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bframe.className%3D%5C%5C%5C%22vis-line-graph%5C%5C%5C%22%3Bthis.dom.frame%3Dframe%3Bthis.svg%3Ddocument.createElementNS(%5C%5C%5C%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%5C%5C%5C%22%2C%5C%5C%5C%22svg%5C%5C%5C%22)%3Bthis.svg.style.position%3D%5C%5C%5C%22relative%5C%5C%5C%22%3Bthis.svg.style.height%3D(%5C%5C%5C%22%5C%5C%5C%22%2Bthis.options.graphHeight).replace(%5C%5C%5C%22px%5C%5C%5C%22%2C%5C%5C%5C%22%5C%5C%5C%22)%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bthis.svg.style.display%3D%5C%5C%5C%22block%5C%5C%5C%22%3Bframe.appendChild(this.svg)%3Bthis.options.dataAxis.orientation%3D%5C%5C%5C%22left%5C%5C%5C%22%3Bthis.yAxisLeft%3Dnew%20DataAxis(this.body%2Cthis.options.dataAxis%2Cthis.svg%2Cthis.options.groups)%3Bthis.options.dataAxis.orientation%3D%5C%5C%5C%22right%5C%5C%5C%22%3Bthis.yAxisRight%3Dnew%20DataAxis(this.body%2Cthis.options.dataAxis%2Cthis.svg%2Cthis.options.groups)%3Bdelete%20this.options.dataAxis.orientation%3Bthis.legendLeft%3Dnew%20Legend(this.body%2Cthis.options.legend%2C%5C%5C%5C%22left%5C%5C%5C%22%2Cthis.options.groups)%3Bthis.legendRight%3Dnew%20Legend(this.body%2Cthis.options.legend%2C%5C%5C%5C%22right%5C%5C%5C%22%2Cthis.options.groups)%3Bthis.show()%7D%3BLineGraph.prototype.setOptions%3Dfunction(options)%7Bif(options)%7Bvar%20fields%3D%5B%5C%5C%5C%22sampling%5C%5C%5C%22%2C%5C%5C%5C%22defaultGroup%5C%5C%5C%22%2C%5C%5C%5C%22stack%5C%5C%5C%22%2C%5C%5C%5C%22height%5C%5C%5C%22%2C%5C%5C%5C%22graphHeight%5C%5C%5C%22%2C%5C%5C%5C%22yAxisOrientation%5C%5C%5C%22%2C%5C%5C%5C%22style%5C%5C%5C%22%2C%5C%5C%5C%22barChart%5C%5C%5C%22%2C%5C%5C%5C%22dataAxis%5C%5C%5C%22%2C%5C%5C%5C%22sort%5C%5C%5C%22%2C%5C%5C%5C%22groups%5C%5C%5C%22%5D%3Bif(options.graphHeight%3D%3D%3Dundefined%26%26options.height!%3D%3Dundefined)%7Bthis.updateSVGheight%3Dtrue%3Bthis.updateSVGheightOnResize%3Dtrue%7Delse%20if(this.body.domProps.centerContainer.height!%3D%3Dundefined%26%26options.graphHeight!%3D%3Dundefined)%7Bif(parseInt((options.graphHeight%2B%5C%5C%5C%22%5C%5C%5C%22).replace(%5C%5C%5C%22px%5C%5C%5C%22%2C%5C%5C%5C%22%5C%5C%5C%22))%3Cthis.body.domProps.centerContainer.height)%7Bthis.updateSVGheight%3Dtrue%7D%7Dutil.selectiveDeepExtend(fields%2Cthis.options%2Coptions)%3Butil.mergeOptions(this.options%2Coptions%2C%5C%5C%5C%22interpolation%5C%5C%5C%22)%3Butil.mergeOptions(this.options%2Coptions%2C%5C%5C%5C%22drawPoints%5C%5C%5C%22)%3Butil.mergeOptions(this.options%2Coptions%2C%5C%5C%5C%22shaded%5C%5C%5C%22)%3Butil.mergeOptions(this.options%2Coptions%2C%5C%5C%5C%22legend%5C%5C%5C%22)%3Bif(options.interpolation)%7Bif((0%2C_typeof3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(options.interpolation)%3D%3D%5C%5C%5C%22object%5C%5C%5C%22)%7Bif(options.interpolation.parametrization)%7Bif(options.interpolation.parametrization%3D%3D%5C%5C%5C%22uniform%5C%5C%5C%22)%7Bthis.options.interpolation.alpha%3D0%7Delse%20if(options.interpolation.parametrization%3D%3D%5C%5C%5C%22chordal%5C%5C%5C%22)%7Bthis.options.interpolation.alpha%3D1%7Delse%7Bthis.options.interpolation.parametrization%3D%5C%5C%5C%22centripetal%5C%5C%5C%22%3Bthis.options.interpolation.alpha%3D.5%7D%7D%7D%7Dif(this.yAxisLeft)%7Bif(options.dataAxis!%3D%3Dundefined)%7Bthis.yAxisLeft.setOptions(this.options.dataAxis)%3Bthis.yAxisRight.setOptions(this.options.dataAxis)%7D%7Dif(this.legendLeft)%7Bif(options.legend!%3D%3Dundefined)%7Bthis.legendLeft.setOptions(this.options.legend)%3Bthis.legendRight.setOptions(this.options.legend)%7D%7Dif(this.groups.hasOwnProperty(UNGROUPED))%7Bthis.groups%5BUNGROUPED%5D.setOptions(options)%7D%7Dif(this.dom.frame)%7Bthis.forceGraphUpdate%3Dtrue%3Bthis.body.emitter.emit(%5C%5C%5C%22_change%5C%5C%5C%22%2C%7Bqueue%3Atrue%7D)%7D%7D%3BLineGraph.prototype.hide%3Dfunction()%7Bif(this.dom.frame.parentNode)%7Bthis.dom.frame.parentNode.removeChild(this.dom.frame)%7D%7D%3BLineGraph.prototype.show%3Dfunction()%7Bif(!this.dom.frame.parentNode)%7Bthis.body.dom.center.appendChild(this.dom.frame)%7D%7D%3BLineGraph.prototype.setItems%3Dfunction(items)%7Bvar%20me%3Dthis%2Cids%2ColdItemsData%3Dthis.itemsData%3Bif(!items)%7Bthis.itemsData%3Dnull%7Delse%20if(items%20instanceof%20DataSet%7C%7Citems%20instanceof%20DataView)%7Bthis.itemsData%3Ditems%7Delse%7Bthrow%20new%20TypeError(%5C%5C%5C%22Data%20must%20be%20an%20instance%20of%20DataSet%20or%20DataView%5C%5C%5C%22)%7Dif(oldItemsData)%7Butil.forEach(this.itemListeners%2Cfunction(callback%2Cevent)%7BoldItemsData.off(event%2Ccallback)%7D)%3Bids%3DoldItemsData.getIds()%3Bthis._onRemove(ids)%7Dif(this.itemsData)%7Bvar%20id%3Dthis.id%3Butil.forEach(this.itemListeners%2Cfunction(callback%2Cevent)%7Bme.itemsData.on(event%2Ccallback%2Cid)%7D)%3Bids%3Dthis.itemsData.getIds()%3Bthis._onAdd(ids)%7D%7D%3BLineGraph.prototype.setGroups%3Dfunction(groups)%7Bvar%20me%3Dthis%3Bvar%20ids%3Bif(this.groupsData)%7Butil.forEach(this.groupListeners%2Cfunction(callback%2Cevent)%7Bme.groupsData.off(event%2Ccallback)%7D)%3Bids%3Dthis.groupsData.getIds()%3Bthis.groupsData%3Dnull%3Bfor(var%20i%3D0%3Bi%3Cids.length%3Bi%2B%2B)%7Bthis._removeGroup(ids%5Bi%5D)%7D%7Dif(!groups)%7Bthis.groupsData%3Dnull%7Delse%20if(groups%20instanceof%20DataSet%7C%7Cgroups%20instanceof%20DataView)%7Bthis.groupsData%3Dgroups%7Delse%7Bthrow%20new%20TypeError(%5C%5C%5C%22Data%20must%20be%20an%20instance%20of%20DataSet%20or%20DataView%5C%5C%5C%22)%7Dif(this.groupsData)%7Bvar%20id%3Dthis.id%3Butil.forEach(this.groupListeners%2Cfunction(callback%2Cevent)%7Bme.groupsData.on(event%2Ccallback%2Cid)%7D)%3Bids%3Dthis.groupsData.getIds()%3Bthis._onAddGroups(ids)%7D%7D%3BLineGraph.prototype._onUpdate%3Dfunction(ids)%7Bthis._updateAllGroupData(ids)%7D%3BLineGraph.prototype._onAdd%3Dfunction(ids)%7Bthis._onUpdate(ids)%7D%3BLineGraph.prototype._onRemove%3Dfunction(ids)%7Bthis._onUpdate(ids)%7D%3BLineGraph.prototype._onUpdateGroups%3Dfunction(groupIds)%7Bthis._updateAllGroupData(null%2CgroupIds)%7D%3BLineGraph.prototype._onAddGroups%3Dfunction(groupIds)%7Bthis._onUpdateGroups(groupIds)%7D%3BLineGraph.prototype._onRemoveGroups%3Dfunction(groupIds)%7Bfor(var%20i%3D0%3Bi%3CgroupIds.length%3Bi%2B%2B)%7Bthis._removeGroup(groupIds%5Bi%5D)%7Dthis.forceGraphUpdate%3Dtrue%3Bthis.body.emitter.emit(%5C%5C%5C%22_change%5C%5C%5C%22%2C%7Bqueue%3Atrue%7D)%7D%3BLineGraph.prototype._removeGroup%3Dfunction(groupId)%7Bif(this.groups.hasOwnProperty(groupId))%7Bif(this.groups%5BgroupId%5D.options.yAxisOrientation%3D%3D%5C%5C%5C%22right%5C%5C%5C%22)%7Bthis.yAxisRight.removeGroup(groupId)%3Bthis.legendRight.removeGroup(groupId)%3Bthis.legendRight.redraw()%7Delse%7Bthis.yAxisLeft.removeGroup(groupId)%3Bthis.legendLeft.removeGroup(groupId)%3Bthis.legendLeft.redraw()%7Ddelete%20this.groups%5BgroupId%5D%7D%7D%3BLineGraph.prototype._updateGroup%3Dfunction(group%2CgroupId)%7Bif(!this.groups.hasOwnProperty(groupId))%7Bthis.groups%5BgroupId%5D%3Dnew%20GraphGroup(group%2CgroupId%2Cthis.options%2Cthis.groupsUsingDefaultStyles)%3Bif(this.groups%5BgroupId%5D.options.yAxisOrientation%3D%3D%5C%5C%5C%22right%5C%5C%5C%22)%7Bthis.yAxisRight.addGroup(groupId%2Cthis.groups%5BgroupId%5D)%3Bthis.legendRight.addGroup(groupId%2Cthis.groups%5BgroupId%5D)%7Delse%7Bthis.yAxisLeft.addGroup(groupId%2Cthis.groups%5BgroupId%5D)%3Bthis.legendLeft.addGroup(groupId%2Cthis.groups%5BgroupId%5D)%7D%7Delse%7Bthis.groups%5BgroupId%5D.update(group)%3Bif(this.groups%5BgroupId%5D.options.yAxisOrientation%3D%3D%5C%5C%5C%22right%5C%5C%5C%22)%7Bthis.yAxisRight.updateGroup(groupId%2Cthis.groups%5BgroupId%5D)%3Bthis.legendRight.updateGroup(groupId%2Cthis.groups%5BgroupId%5D)%3Bthis.yAxisLeft.removeGroup(groupId)%3Bthis.legendLeft.removeGroup(groupId)%7Delse%7Bthis.yAxisLeft.updateGroup(groupId%2Cthis.groups%5BgroupId%5D)%3Bthis.legendLeft.updateGroup(groupId%2Cthis.groups%5BgroupId%5D)%3Bthis.yAxisRight.removeGroup(groupId)%3Bthis.legendRight.removeGroup(groupId)%7D%7Dthis.legendLeft.redraw()%3Bthis.legendRight.redraw()%7D%3BLineGraph.prototype._updateAllGroupData%3Dfunction(ids%2CgroupIds)%7Bif(this.itemsData!%3Dnull)%7Bvar%20groupsContent%3D%7B%7D%3Bvar%20items%3Dthis.itemsData.get()%3Bvar%20fieldId%3Dthis.itemsData._fieldId%3Bvar%20idMap%3D%7B%7D%3Bif(ids)%7Bids.map(function(id)%7BidMap%5Bid%5D%3Did%7D)%7Dvar%20groupCounts%3D%7B%7D%3Bfor(var%20i%3D0%3Bi%3Citems.length%3Bi%2B%2B)%7Bvar%20item%3Ditems%5Bi%5D%3Bvar%20groupId%3Ditem.group%3Bif(groupId%3D%3D%3Dnull%7C%7CgroupId%3D%3D%3Dundefined)%7BgroupId%3DUNGROUPED%7DgroupCounts.hasOwnProperty(groupId)%3FgroupCounts%5BgroupId%5D%2B%2B%3AgroupCounts%5BgroupId%5D%3D1%7Dvar%20existingItemsMap%3D%7B%7D%3Bif(!groupIds%26%26ids)%7Bfor(groupId%20in%20this.groups)%7Bif(this.groups.hasOwnProperty(groupId))%7Bgroup%3Dthis.groups%5BgroupId%5D%3Bvar%20existing_items%3Dgroup.getItems()%3BgroupsContent%5BgroupId%5D%3Dexisting_items.filter(function(item)%7BexistingItemsMap%5Bitem%5BfieldId%5D%5D%3Ditem%5BfieldId%5D%3Breturn%20item%5BfieldId%5D!%3D%3DidMap%5Bitem%5BfieldId%5D%5D%7D)%3Bvar%20newLength%3DgroupCounts%5BgroupId%5D%3BgroupCounts%5BgroupId%5D-%3DgroupsContent%5BgroupId%5D.length%3Bif(groupsContent%5BgroupId%5D.length%3CnewLength)%7BgroupsContent%5BgroupId%5D%5BnewLength-1%5D%3D%7B%7D%7D%7D%7D%7Dfor(i%3D0%3Bi%3Citems.length%3Bi%2B%2B)%7Bitem%3Ditems%5Bi%5D%3BgroupId%3Ditem.group%3Bif(groupId%3D%3D%3Dnull%7C%7CgroupId%3D%3D%3Dundefined)%7BgroupId%3DUNGROUPED%7Dif(!groupIds%26%26ids%26%26item%5BfieldId%5D!%3D%3DidMap%5Bitem%5BfieldId%5D%5D%26%26existingItemsMap.hasOwnProperty(item%5BfieldId%5D))%7Bcontinue%7Dif(!groupsContent.hasOwnProperty(groupId))%7BgroupsContent%5BgroupId%5D%3Dnew%20Array(groupCounts%5BgroupId%5D)%7Dvar%20extended%3Dutil.bridgeObject(item)%3Bextended.x%3Dutil.convert(item.x%2C%5C%5C%5C%22Date%5C%5C%5C%22)%3Bextended.end%3Dutil.convert(item.end%2C%5C%5C%5C%22Date%5C%5C%5C%22)%3Bextended.orginalY%3Ditem.y%3Bextended.y%3DNumber(item.y)%3Bextended%5BfieldId%5D%3Ditem%5BfieldId%5D%3Bvar%20index%3DgroupsContent%5BgroupId%5D.length-groupCounts%5BgroupId%5D--%3BgroupsContent%5BgroupId%5D%5Bindex%5D%3Dextended%7Dfor(groupId%20in%20this.groups)%7Bif(this.groups.hasOwnProperty(groupId))%7Bif(!groupsContent.hasOwnProperty(groupId))%7BgroupsContent%5BgroupId%5D%3Dnew%20Array(0)%7D%7D%7Dfor(groupId%20in%20groupsContent)%7Bif(groupsContent.hasOwnProperty(groupId))%7Bif(groupsContent%5BgroupId%5D.length%3D%3D0)%7Bif(this.groups.hasOwnProperty(groupId))%7Bthis._removeGroup(groupId)%7D%7Delse%7Bvar%20group%3Dundefined%3Bif(this.groupsData!%3Dundefined)%7Bgroup%3Dthis.groupsData.get(groupId)%7Dif(group%3D%3Dundefined)%7Bgroup%3D%7Bid%3AgroupId%2Ccontent%3Athis.options.defaultGroup%2BgroupId%7D%7Dthis._updateGroup(group%2CgroupId)%3Bthis.groups%5BgroupId%5D.setItems(groupsContent%5BgroupId%5D)%7D%7D%7Dthis.forceGraphUpdate%3Dtrue%3Bthis.body.emitter.emit(%5C%5C%5C%22_change%5C%5C%5C%22%2C%7Bqueue%3Atrue%7D)%7D%7D%3BLineGraph.prototype.redraw%3Dfunction()%7Bvar%20resized%3Dfalse%3Bthis.props.width%3Dthis.dom.frame.offsetWidth%3Bthis.props.height%3Dthis.body.domProps.centerContainer.height-this.body.domProps.border.top-this.body.domProps.border.bottom%3Bresized%3Dthis._isResized()%7C%7Cresized%3Bvar%20visibleInterval%3Dthis.body.range.end-this.body.range.start%3Bvar%20zoomed%3DvisibleInterval!%3Dthis.lastVisibleInterval%3Bthis.lastVisibleInterval%3DvisibleInterval%3Bif(resized%3D%3Dtrue)%7Bthis.svg.style.width%3Dutil.option.asSize(3*this.props.width)%3Bthis.svg.style.left%3Dutil.option.asSize(-this.props.width)%3Bif((this.options.height%2B%5C%5C%5C%22%5C%5C%5C%22).indexOf(%5C%5C%5C%22%25%5C%5C%5C%22)!%3D-1%7C%7Cthis.updateSVGheightOnResize%3D%3Dtrue)%7Bthis.updateSVGheight%3Dtrue%7D%7Dif(this.updateSVGheight%3D%3Dtrue)%7Bif(this.options.graphHeight!%3Dthis.props.height%2B%5C%5C%5C%22px%5C%5C%5C%22)%7Bthis.options.graphHeight%3Dthis.props.height%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bthis.svg.style.height%3Dthis.props.height%2B%5C%5C%5C%22px%5C%5C%5C%22%7Dthis.updateSVGheight%3Dfalse%7Delse%7Bthis.svg.style.height%3D(%5C%5C%5C%22%5C%5C%5C%22%2Bthis.options.graphHeight).replace(%5C%5C%5C%22px%5C%5C%5C%22%2C%5C%5C%5C%22%5C%5C%5C%22)%2B%5C%5C%5C%22px%5C%5C%5C%22%7Dif(resized%3D%3Dtrue%7C%7Czoomed%3D%3Dtrue%7C%7Cthis.abortedGraphUpdate%3D%3Dtrue%7C%7Cthis.forceGraphUpdate%3D%3Dtrue)%7Bresized%3Dthis._updateGraph()%7C%7Cresized%3Bthis.forceGraphUpdate%3Dfalse%7Delse%7Bif(this.lastStart!%3D0)%7Bvar%20offset%3Dthis.body.range.start-this.lastStart%3Bvar%20range%3Dthis.body.range.end-this.body.range.start%3Bif(this.props.width!%3D0)%7Bvar%20rangePerPixelInv%3Dthis.props.width%2Frange%3Bvar%20xOffset%3Doffset*rangePerPixelInv%3Bthis.svg.style.left%3D-this.props.width-xOffset%2B%5C%5C%5C%22px%5C%5C%5C%22%7D%7D%7Dthis.legendLeft.redraw()%3Bthis.legendRight.redraw()%3Breturn%20resized%7D%3BLineGraph.prototype._getSortedGroupIds%3Dfunction()%7Bvar%20grouplist%3D%5B%5D%3Bfor(var%20groupId%20in%20this.groups)%7Bif(this.groups.hasOwnProperty(groupId))%7Bvar%20group%3Dthis.groups%5BgroupId%5D%3Bif(group.visible%3D%3Dtrue%26%26(this.options.groups.visibility%5BgroupId%5D%3D%3D%3Dundefined%7C%7Cthis.options.groups.visibility%5BgroupId%5D%3D%3Dtrue))%7Bgrouplist.push(%7Bid%3AgroupId%2CzIndex%3Agroup.options.zIndex%7D)%7D%7D%7Dutil.insertSort(grouplist%2Cfunction(a%2Cb)%7Bvar%20az%3Da.zIndex%3Bvar%20bz%3Db.zIndex%3Bif(az%3D%3D%3Dundefined)az%3D0%3Bif(bz%3D%3D%3Dundefined)bz%3D0%3Breturn%20az%3D%3Dbz%3F0%3Aaz%3Cbz%3F-1%3A1%7D)%3Bvar%20groupIds%3Dnew%20Array(grouplist.length)%3Bfor(var%20i%3D0%3Bi%3Cgrouplist.length%3Bi%2B%2B)%7BgroupIds%5Bi%5D%3Dgrouplist%5Bi%5D.id%7Dreturn%20groupIds%7D%3BLineGraph.prototype._updateGraph%3Dfunction()%7BDOMutil.prepareElements(this.svgElements)%3Bif(this.props.width!%3D0%26%26this.itemsData!%3Dnull)%7Bvar%20group%2Ci%3Bvar%20groupRanges%3D%7B%7D%3Bvar%20changeCalled%3Dfalse%3Bvar%20minDate%3Dthis.body.util.toGlobalTime(-this.body.domProps.root.width)%3Bvar%20maxDate%3Dthis.body.util.toGlobalTime(2*this.body.domProps.root.width)%3Bvar%20groupIds%3Dthis._getSortedGroupIds()%3Bif(groupIds.length%3E0)%7Bvar%20groupsData%3D%7B%7D%3Bthis._getRelevantData(groupIds%2CgroupsData%2CminDate%2CmaxDate)%3Bthis._applySampling(groupIds%2CgroupsData)%3Bfor(i%3D0%3Bi%3CgroupIds.length%3Bi%2B%2B)%7Bthis._convertXcoordinates(groupsData%5BgroupIds%5Bi%5D%5D)%7Dthis._getYRanges(groupIds%2CgroupsData%2CgroupRanges)%3BchangeCalled%3Dthis._updateYAxis(groupIds%2CgroupRanges)%3Bif(changeCalled%3D%3Dtrue)%7BDOMutil.cleanupElements(this.svgElements)%3Bthis.abortedGraphUpdate%3Dtrue%3Breturn%20true%7Dthis.abortedGraphUpdate%3Dfalse%3Bvar%20below%3Dundefined%3Bfor(i%3D0%3Bi%3CgroupIds.length%3Bi%2B%2B)%7Bgroup%3Dthis.groups%5BgroupIds%5Bi%5D%5D%3Bif(this.options.stack%3D%3D%3Dtrue%26%26this.options.style%3D%3D%3D%5C%5C%5C%22line%5C%5C%5C%22)%7Bif(group.options.excludeFromStacking%3D%3Dundefined%7C%7C!group.options.excludeFromStacking)%7Bif(below!%3Dundefined)%7Bthis._stack(groupsData%5Bgroup.id%5D%2CgroupsData%5Bbelow.id%5D)%3Bif(group.options.shaded.enabled%3D%3Dtrue%26%26group.options.shaded.orientation!%3D%3D%5C%5C%5C%22group%5C%5C%5C%22)%7Bif(group.options.shaded.orientation%3D%3D%5C%5C%5C%22top%5C%5C%5C%22%26%26below.options.shaded.orientation!%3D%3D%5C%5C%5C%22group%5C%5C%5C%22)%7Bbelow.options.shaded.orientation%3D%5C%5C%5C%22group%5C%5C%5C%22%3Bbelow.options.shaded.groupId%3Dgroup.id%7Delse%7Bgroup.options.shaded.orientation%3D%5C%5C%5C%22group%5C%5C%5C%22%3Bgroup.options.shaded.groupId%3Dbelow.id%7D%7D%7Dbelow%3Dgroup%7D%7Dthis._convertYcoordinates(groupsData%5BgroupIds%5Bi%5D%5D%2Cgroup)%7Dvar%20paths%3D%7B%7D%3Bfor(i%3D0%3Bi%3CgroupIds.length%3Bi%2B%2B)%7Bgroup%3Dthis.groups%5BgroupIds%5Bi%5D%5D%3Bif(group.options.style%3D%3D%3D%5C%5C%5C%22line%5C%5C%5C%22%26%26group.options.shaded.enabled%3D%3Dtrue)%7Bvar%20dataset%3DgroupsData%5BgroupIds%5Bi%5D%5D%3Bif(dataset%3D%3Dnull%7C%7Cdataset.length%3D%3D0)%7Bcontinue%7Dif(!paths.hasOwnProperty(groupIds%5Bi%5D))%7Bpaths%5BgroupIds%5Bi%5D%5D%3DLines.calcPath(dataset%2Cgroup)%7Dif(group.options.shaded.orientation%3D%3D%3D%5C%5C%5C%22group%5C%5C%5C%22)%7Bvar%20subGroupId%3Dgroup.options.shaded.groupId%3Bif(groupIds.indexOf(subGroupId)%3D%3D%3D-1)%7Bconsole.log(group.id%2B%5C%5C%5C%22%3A%20Unknown%20shading%20group%20target%20given%3A%5C%5C%5C%22%2BsubGroupId)%3Bcontinue%7Dif(!paths.hasOwnProperty(subGroupId))%7Bpaths%5BsubGroupId%5D%3DLines.calcPath(groupsData%5BsubGroupId%5D%2Cthis.groups%5BsubGroupId%5D)%7DLines.drawShading(paths%5BgroupIds%5Bi%5D%5D%2Cgroup%2Cpaths%5BsubGroupId%5D%2Cthis.framework)%7Delse%7BLines.drawShading(paths%5BgroupIds%5Bi%5D%5D%2Cgroup%2Cundefined%2Cthis.framework)%7D%7D%7DBars.draw(groupIds%2CgroupsData%2Cthis.framework)%3Bfor(i%3D0%3Bi%3CgroupIds.length%3Bi%2B%2B)%7Bgroup%3Dthis.groups%5BgroupIds%5Bi%5D%5D%3Bif(groupsData%5BgroupIds%5Bi%5D%5D.length%3E0)%7Bswitch(group.options.style)%7Bcase%5C%5C%5C%22line%5C%5C%5C%22%3Aif(!paths.hasOwnProperty(groupIds%5Bi%5D))%7Bpaths%5BgroupIds%5Bi%5D%5D%3DLines.calcPath(groupsData%5BgroupIds%5Bi%5D%5D%2Cgroup)%7DLines.draw(paths%5BgroupIds%5Bi%5D%5D%2Cgroup%2Cthis.framework)%3Bcase%5C%5C%5C%22point%5C%5C%5C%22%3Acase%5C%5C%5C%22points%5C%5C%5C%22%3Aif(group.options.style%3D%3D%5C%5C%5C%22point%5C%5C%5C%22%7C%7Cgroup.options.style%3D%3D%5C%5C%5C%22points%5C%5C%5C%22%7C%7Cgroup.options.drawPoints.enabled%3D%3Dtrue)%7BPoints.draw(groupsData%5BgroupIds%5Bi%5D%5D%2Cgroup%2Cthis.framework)%7Dbreak%3Bcase%5C%5C%5C%22bar%5C%5C%5C%22%3Adefault%3A%7D%7D%7D%7D%7DDOMutil.cleanupElements(this.svgElements)%3Breturn%20false%7D%3BLineGraph.prototype._stack%3Dfunction(data%2CsubData)%7Bvar%20index%2Cdx%2Cdy%2CsubPrevPoint%2CsubNextPoint%3Bindex%3D0%3Bfor(var%20j%3D0%3Bj%3Cdata.length%3Bj%2B%2B)%7BsubPrevPoint%3Dundefined%3BsubNextPoint%3Dundefined%3Bfor(var%20k%3Dindex%3Bk%3CsubData.length%3Bk%2B%2B)%7Bif(subData%5Bk%5D.x%3D%3D%3Ddata%5Bj%5D.x)%7BsubPrevPoint%3DsubData%5Bk%5D%3BsubNextPoint%3DsubData%5Bk%5D%3Bindex%3Dk%3Bbreak%7Delse%20if(subData%5Bk%5D.x%3Edata%5Bj%5D.x)%7BsubNextPoint%3DsubData%5Bk%5D%3Bif(k%3D%3D0)%7BsubPrevPoint%3DsubNextPoint%7Delse%7BsubPrevPoint%3DsubData%5Bk-1%5D%7Dindex%3Dk%3Bbreak%7D%7Dif(subNextPoint%3D%3D%3Dundefined)%7BsubPrevPoint%3DsubData%5BsubData.length-1%5D%3BsubNextPoint%3DsubData%5BsubData.length-1%5D%7Ddx%3DsubNextPoint.x-subPrevPoint.x%3Bdy%3DsubNextPoint.y-subPrevPoint.y%3Bif(dx%3D%3D0)%7Bdata%5Bj%5D.y%3Ddata%5Bj%5D.orginalY%2BsubNextPoint.y%7Delse%7Bdata%5Bj%5D.y%3Ddata%5Bj%5D.orginalY%2Bdy%2Fdx*(data%5Bj%5D.x-subPrevPoint.x)%2BsubPrevPoint.y%7D%7D%7D%3BLineGraph.prototype._getRelevantData%3Dfunction(groupIds%2CgroupsData%2CminDate%2CmaxDate)%7Bvar%20group%2Ci%2Cj%2Citem%3Bif(groupIds.length%3E0)%7Bfor(i%3D0%3Bi%3CgroupIds.length%3Bi%2B%2B)%7Bgroup%3Dthis.groups%5BgroupIds%5Bi%5D%5D%3Bvar%20itemsData%3Dgroup.getItems()%3Bif(group.options.sort%3D%3Dtrue)%7Bvar%20dateComparator%3Dfunction%20dateComparator(a%2Cb)%7Breturn%20a.getTime()%3D%3Db.getTime()%3F0%3Aa%3Cb%3F-1%3A1%7D%3Bvar%20first%3DMath.max(0%2Cutil.binarySearchValue(itemsData%2CminDate%2C%5C%5C%5C%22x%5C%5C%5C%22%2C%5C%5C%5C%22before%5C%5C%5C%22%2CdateComparator))%3Bvar%20last%3DMath.min(itemsData.length%2Cutil.binarySearchValue(itemsData%2CmaxDate%2C%5C%5C%5C%22x%5C%5C%5C%22%2C%5C%5C%5C%22after%5C%5C%5C%22%2CdateComparator)%2B1)%3Bif(last%3C%3D0)%7Blast%3DitemsData.length%7Dvar%20dataContainer%3Dnew%20Array(last-first)%3Bfor(j%3Dfirst%3Bj%3Clast%3Bj%2B%2B)%7Bitem%3Dgroup.itemsData%5Bj%5D%3BdataContainer%5Bj-first%5D%3Ditem%7DgroupsData%5BgroupIds%5Bi%5D%5D%3DdataContainer%7Delse%7BgroupsData%5BgroupIds%5Bi%5D%5D%3Dgroup.itemsData%7D%7D%7D%7D%3BLineGraph.prototype._applySampling%3Dfunction(groupIds%2CgroupsData)%7Bvar%20group%3Bif(groupIds.length%3E0)%7Bfor(var%20i%3D0%3Bi%3CgroupIds.length%3Bi%2B%2B)%7Bgroup%3Dthis.groups%5BgroupIds%5Bi%5D%5D%3Bif(group.options.sampling%3D%3Dtrue)%7Bvar%20dataContainer%3DgroupsData%5BgroupIds%5Bi%5D%5D%3Bif(dataContainer.length%3E0)%7Bvar%20increment%3D1%3Bvar%20amountOfPoints%3DdataContainer.length%3Bvar%20xDistance%3Dthis.body.util.toGlobalScreen(dataContainer%5BdataContainer.length-1%5D.x)-this.body.util.toGlobalScreen(dataContainer%5B0%5D.x)%3Bvar%20pointsPerPixel%3DamountOfPoints%2FxDistance%3Bincrement%3DMath.min(Math.ceil(.2*amountOfPoints)%2CMath.max(1%2CMath.round(pointsPerPixel)))%3Bvar%20sampledData%3Dnew%20Array(amountOfPoints)%3Bfor(var%20j%3D0%3Bj%3CamountOfPoints%3Bj%2B%3Dincrement)%7Bvar%20idx%3DMath.round(j%2Fincrement)%3BsampledData%5Bidx%5D%3DdataContainer%5Bj%5D%7DgroupsData%5BgroupIds%5Bi%5D%5D%3DsampledData.splice(0%2CMath.round(amountOfPoints%2Fincrement))%7D%7D%7D%7D%7D%3BLineGraph.prototype._getYRanges%3Dfunction(groupIds%2CgroupsData%2CgroupRanges)%7Bvar%20groupData%2Cgroup%2Ci%3Bvar%20combinedDataLeft%3D%5B%5D%3Bvar%20combinedDataRight%3D%5B%5D%3Bvar%20options%3Bif(groupIds.length%3E0)%7Bfor(i%3D0%3Bi%3CgroupIds.length%3Bi%2B%2B)%7BgroupData%3DgroupsData%5BgroupIds%5Bi%5D%5D%3Boptions%3Dthis.groups%5BgroupIds%5Bi%5D%5D.options%3Bif(groupData.length%3E0)%7Bgroup%3Dthis.groups%5BgroupIds%5Bi%5D%5D%3Bif(options.stack%3D%3D%3Dtrue%26%26options.style%3D%3D%3D%5C%5C%5C%22bar%5C%5C%5C%22)%7Bif(options.yAxisOrientation%3D%3D%3D%5C%5C%5C%22left%5C%5C%5C%22)%7BcombinedDataLeft%3DcombinedDataLeft.concat(groupData)%7Delse%7BcombinedDataRight%3DcombinedDataRight.concat(groupData)%7D%7Delse%7BgroupRanges%5BgroupIds%5Bi%5D%5D%3Dgroup.getYRange(groupData%2CgroupIds%5Bi%5D)%7D%7D%7DBars.getStackedYRange(combinedDataLeft%2CgroupRanges%2CgroupIds%2C%5C%5C%5C%22__barStackLeft%5C%5C%5C%22%2C%5C%5C%5C%22left%5C%5C%5C%22)%3BBars.getStackedYRange(combinedDataRight%2CgroupRanges%2CgroupIds%2C%5C%5C%5C%22__barStackRight%5C%5C%5C%22%2C%5C%5C%5C%22right%5C%5C%5C%22)%7D%7D%3BLineGraph.prototype._updateYAxis%3Dfunction(groupIds%2CgroupRanges)%7Bvar%20resized%3Dfalse%3Bvar%20yAxisLeftUsed%3Dfalse%3Bvar%20yAxisRightUsed%3Dfalse%3Bvar%20minLeft%3D1e9%2CminRight%3D1e9%2CmaxLeft%3D-1e9%2CmaxRight%3D-1e9%2CminVal%2CmaxVal%3Bif(groupIds.length%3E0)%7Bfor(var%20i%3D0%3Bi%3CgroupIds.length%3Bi%2B%2B)%7Bvar%20group%3Dthis.groups%5BgroupIds%5Bi%5D%5D%3Bif(group%26%26group.options.yAxisOrientation!%3D%5C%5C%5C%22right%5C%5C%5C%22)%7ByAxisLeftUsed%3Dtrue%3BminLeft%3D1e9%3BmaxLeft%3D-1e9%7Delse%20if(group%26%26group.options.yAxisOrientation)%7ByAxisRightUsed%3Dtrue%3BminRight%3D1e9%3BmaxRight%3D-1e9%7D%7Dfor(i%3D0%3Bi%3CgroupIds.length%3Bi%2B%2B)%7Bif(groupRanges.hasOwnProperty(groupIds%5Bi%5D))%7Bif(groupRanges%5BgroupIds%5Bi%5D%5D.ignore!%3D%3Dtrue)%7BminVal%3DgroupRanges%5BgroupIds%5Bi%5D%5D.min%3BmaxVal%3DgroupRanges%5BgroupIds%5Bi%5D%5D.max%3Bif(groupRanges%5BgroupIds%5Bi%5D%5D.yAxisOrientation!%3D%5C%5C%5C%22right%5C%5C%5C%22)%7ByAxisLeftUsed%3Dtrue%3BminLeft%3DminLeft%3EminVal%3FminVal%3AminLeft%3BmaxLeft%3DmaxLeft%3CmaxVal%3FmaxVal%3AmaxLeft%7Delse%7ByAxisRightUsed%3Dtrue%3BminRight%3DminRight%3EminVal%3FminVal%3AminRight%3BmaxRight%3DmaxRight%3CmaxVal%3FmaxVal%3AmaxRight%7D%7D%7D%7Dif(yAxisLeftUsed%3D%3Dtrue)%7Bthis.yAxisLeft.setRange(minLeft%2CmaxLeft)%7Dif(yAxisRightUsed%3D%3Dtrue)%7Bthis.yAxisRight.setRange(minRight%2CmaxRight)%7D%7Dresized%3Dthis._toggleAxisVisiblity(yAxisLeftUsed%2Cthis.yAxisLeft)%7C%7Cresized%3Bresized%3Dthis._toggleAxisVisiblity(yAxisRightUsed%2Cthis.yAxisRight)%7C%7Cresized%3Bif(yAxisRightUsed%3D%3Dtrue%26%26yAxisLeftUsed%3D%3Dtrue)%7Bthis.yAxisLeft.drawIcons%3Dtrue%3Bthis.yAxisRight.drawIcons%3Dtrue%7Delse%7Bthis.yAxisLeft.drawIcons%3Dfalse%3Bthis.yAxisRight.drawIcons%3Dfalse%7Dthis.yAxisRight.master%3D!yAxisLeftUsed%3Bthis.yAxisRight.masterAxis%3Dthis.yAxisLeft%3Bif(this.yAxisRight.master%3D%3Dfalse)%7Bif(yAxisRightUsed%3D%3Dtrue)%7Bthis.yAxisLeft.lineOffset%3Dthis.yAxisRight.width%7Delse%7Bthis.yAxisLeft.lineOffset%3D0%7Dresized%3Dthis.yAxisLeft.redraw()%7C%7Cresized%3Bresized%3Dthis.yAxisRight.redraw()%7C%7Cresized%7Delse%7Bresized%3Dthis.yAxisRight.redraw()%7C%7Cresized%7Dvar%20tempGroups%3D%5B%5C%5C%5C%22__barStackLeft%5C%5C%5C%22%2C%5C%5C%5C%22__barStackRight%5C%5C%5C%22%2C%5C%5C%5C%22__lineStackLeft%5C%5C%5C%22%2C%5C%5C%5C%22__lineStackRight%5C%5C%5C%22%5D%3Bfor(i%3D0%3Bi%3CtempGroups.length%3Bi%2B%2B)%7Bif(groupIds.indexOf(tempGroups%5Bi%5D)!%3D-1)%7BgroupIds.splice(groupIds.indexOf(tempGroups%5Bi%5D)%2C1)%7D%7Dreturn%20resized%7D%3BLineGraph.prototype._toggleAxisVisiblity%3Dfunction(axisUsed%2Caxis)%7Bvar%20changed%3Dfalse%3Bif(axisUsed%3D%3Dfalse)%7Bif(axis.dom.frame.parentNode%26%26axis.hidden%3D%3Dfalse)%7Baxis.hide()%3Bchanged%3Dtrue%7D%7Delse%7Bif(!axis.dom.frame.parentNode%26%26axis.hidden%3D%3Dtrue)%7Baxis.show()%3Bchanged%3Dtrue%7D%7Dreturn%20changed%7D%3BLineGraph.prototype._convertXcoordinates%3Dfunction(datapoints)%7Bvar%20toScreen%3Dthis.body.util.toScreen%3Bfor(var%20i%3D0%3Bi%3Cdatapoints.length%3Bi%2B%2B)%7Bdatapoints%5Bi%5D.screen_x%3DtoScreen(datapoints%5Bi%5D.x)%2Bthis.props.width%3Bdatapoints%5Bi%5D.screen_y%3Ddatapoints%5Bi%5D.y%3Bif(datapoints%5Bi%5D.end!%3Dundefined)%7Bdatapoints%5Bi%5D.screen_end%3DtoScreen(datapoints%5Bi%5D.end)%2Bthis.props.width%7Delse%7Bdatapoints%5Bi%5D.screen_end%3Dundefined%7D%7D%7D%3BLineGraph.prototype._convertYcoordinates%3Dfunction(datapoints%2Cgroup)%7Bvar%20axis%3Dthis.yAxisLeft%3Bvar%20svgHeight%3DNumber(this.svg.style.height.replace(%5C%5C%5C%22px%5C%5C%5C%22%2C%5C%5C%5C%22%5C%5C%5C%22))%3Bif(group.options.yAxisOrientation%3D%3D%5C%5C%5C%22right%5C%5C%5C%22)%7Baxis%3Dthis.yAxisRight%7Dfor(var%20i%3D0%3Bi%3Cdatapoints.length%3Bi%2B%2B)%7Bdatapoints%5Bi%5D.screen_y%3DMath.round(axis.convertValue(datapoints%5Bi%5D.y))%7Dgroup.setZeroPosition(Math.min(svgHeight%2Caxis.convertValue(0)))%7D%3Bmodule.exports%3DLineGraph%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bvar%20_keys%3D__webpack_require__(8)%3Bvar%20_keys2%3D_interopRequireDefault(_keys)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20util%3D__webpack_require__(2)%3Bvar%20DOMutil%3D__webpack_require__(14)%3Bvar%20Component%3D__webpack_require__(16)%3Bvar%20DataScale%3D__webpack_require__(108)%3Bfunction%20DataAxis(body%2Coptions%2Csvg%2ClinegraphOptions)%7Bthis.id%3Dutil.randomUUID()%3Bthis.body%3Dbody%3Bthis.defaultOptions%3D%7Borientation%3A%5C%5C%5C%22left%5C%5C%5C%22%2CshowMinorLabels%3Atrue%2CshowMajorLabels%3Atrue%2Cicons%3Afalse%2CmajorLinesOffset%3A7%2CminorLinesOffset%3A4%2ClabelOffsetX%3A10%2ClabelOffsetY%3A2%2CiconWidth%3A20%2Cwidth%3A%5C%5C%5C%2240px%5C%5C%5C%22%2Cvisible%3Atrue%2CalignZeros%3Atrue%2Cleft%3A%7Brange%3A%7Bmin%3Aundefined%2Cmax%3Aundefined%7D%2Cformat%3Afunction%20format(value)%7Breturn%5C%5C%5C%22%5C%5C%5C%22%2BparseFloat(value.toPrecision(3))%7D%2Ctitle%3A%7Btext%3Aundefined%2Cstyle%3Aundefined%7D%7D%2Cright%3A%7Brange%3A%7Bmin%3Aundefined%2Cmax%3Aundefined%7D%2Cformat%3Afunction%20format(value)%7Breturn%5C%5C%5C%22%5C%5C%5C%22%2BparseFloat(value.toPrecision(3))%7D%2Ctitle%3A%7Btext%3Aundefined%2Cstyle%3Aundefined%7D%7D%7D%3Bthis.linegraphOptions%3DlinegraphOptions%3Bthis.linegraphSVG%3Dsvg%3Bthis.props%3D%7B%7D%3Bthis.DOMelements%3D%7Blines%3A%7B%7D%2Clabels%3A%7B%7D%2Ctitle%3A%7B%7D%7D%3Bthis.dom%3D%7B%7D%3Bthis.scale%3Dundefined%3Bthis.range%3D%7Bstart%3A0%2Cend%3A0%7D%3Bthis.options%3Dutil.extend(%7B%7D%2Cthis.defaultOptions)%3Bthis.conversionFactor%3D1%3Bthis.setOptions(options)%3Bthis.width%3DNumber((%5C%5C%5C%22%5C%5C%5C%22%2Bthis.options.width).replace(%5C%5C%5C%22px%5C%5C%5C%22%2C%5C%5C%5C%22%5C%5C%5C%22))%3Bthis.minWidth%3Dthis.width%3Bthis.height%3Dthis.linegraphSVG.getBoundingClientRect().height%3Bthis.hidden%3Dfalse%3Bthis.stepPixels%3D25%3Bthis.zeroCrossing%3D-1%3Bthis.amountOfSteps%3D-1%3Bthis.lineOffset%3D0%3Bthis.master%3Dtrue%3Bthis.masterAxis%3Dnull%3Bthis.svgElements%3D%7B%7D%3Bthis.iconsRemoved%3Dfalse%3Bthis.groups%3D%7B%7D%3Bthis.amountOfGroups%3D0%3Bthis._create()%3Bthis.framework%3D%7Bsvg%3Athis.svg%2CsvgElements%3Athis.svgElements%2Coptions%3Athis.options%2Cgroups%3Athis.groups%7D%3Bvar%20me%3Dthis%3Bthis.body.emitter.on(%5C%5C%5C%22verticalDrag%5C%5C%5C%22%2Cfunction()%7Bme.dom.lineContainer.style.top%3Dme.body.domProps.scrollTop%2B%5C%5C%5C%22px%5C%5C%5C%22%7D)%7DDataAxis.prototype%3Dnew%20Component%3BDataAxis.prototype.addGroup%3Dfunction(label%2CgraphOptions)%7Bif(!this.groups.hasOwnProperty(label))%7Bthis.groups%5Blabel%5D%3DgraphOptions%7Dthis.amountOfGroups%2B%3D1%7D%3BDataAxis.prototype.updateGroup%3Dfunction(label%2CgraphOptions)%7Bif(!this.groups.hasOwnProperty(label))%7Bthis.amountOfGroups%2B%3D1%7Dthis.groups%5Blabel%5D%3DgraphOptions%7D%3BDataAxis.prototype.removeGroup%3Dfunction(label)%7Bif(this.groups.hasOwnProperty(label))%7Bdelete%20this.groups%5Blabel%5D%3Bthis.amountOfGroups-%3D1%7D%7D%3BDataAxis.prototype.setOptions%3Dfunction(options)%7Bif(options)%7Bvar%20redraw%3Dfalse%3Bif(this.options.orientation!%3Doptions.orientation%26%26options.orientation!%3D%3Dundefined)%7Bredraw%3Dtrue%7Dvar%20fields%3D%5B%5C%5C%5C%22orientation%5C%5C%5C%22%2C%5C%5C%5C%22showMinorLabels%5C%5C%5C%22%2C%5C%5C%5C%22showMajorLabels%5C%5C%5C%22%2C%5C%5C%5C%22icons%5C%5C%5C%22%2C%5C%5C%5C%22majorLinesOffset%5C%5C%5C%22%2C%5C%5C%5C%22minorLinesOffset%5C%5C%5C%22%2C%5C%5C%5C%22labelOffsetX%5C%5C%5C%22%2C%5C%5C%5C%22labelOffsetY%5C%5C%5C%22%2C%5C%5C%5C%22iconWidth%5C%5C%5C%22%2C%5C%5C%5C%22width%5C%5C%5C%22%2C%5C%5C%5C%22visible%5C%5C%5C%22%2C%5C%5C%5C%22left%5C%5C%5C%22%2C%5C%5C%5C%22right%5C%5C%5C%22%2C%5C%5C%5C%22alignZeros%5C%5C%5C%22%5D%3Butil.selectiveDeepExtend(fields%2Cthis.options%2Coptions)%3Bthis.minWidth%3DNumber((%5C%5C%5C%22%5C%5C%5C%22%2Bthis.options.width).replace(%5C%5C%5C%22px%5C%5C%5C%22%2C%5C%5C%5C%22%5C%5C%5C%22))%3Bif(redraw%3D%3D%3Dtrue%26%26this.dom.frame)%7Bthis.hide()%3Bthis.show()%7D%7D%7D%3BDataAxis.prototype._create%3Dfunction()%7Bthis.dom.frame%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bthis.dom.frame.style.width%3Dthis.options.width%3Bthis.dom.frame.style.height%3Dthis.height%3Bthis.dom.lineContainer%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bthis.dom.lineContainer.style.width%3D%5C%5C%5C%22100%25%5C%5C%5C%22%3Bthis.dom.lineContainer.style.height%3Dthis.height%3Bthis.dom.lineContainer.style.position%3D%5C%5C%5C%22relative%5C%5C%5C%22%3Bthis.svg%3Ddocument.createElementNS(%5C%5C%5C%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%5C%5C%5C%22%2C%5C%5C%5C%22svg%5C%5C%5C%22)%3Bthis.svg.style.position%3D%5C%5C%5C%22absolute%5C%5C%5C%22%3Bthis.svg.style.top%3D%5C%5C%5C%220px%5C%5C%5C%22%3Bthis.svg.style.height%3D%5C%5C%5C%22100%25%5C%5C%5C%22%3Bthis.svg.style.width%3D%5C%5C%5C%22100%25%5C%5C%5C%22%3Bthis.svg.style.display%3D%5C%5C%5C%22block%5C%5C%5C%22%3Bthis.dom.frame.appendChild(this.svg)%7D%3BDataAxis.prototype._redrawGroupIcons%3Dfunction()%7BDOMutil.prepareElements(this.svgElements)%3Bvar%20x%3Bvar%20iconWidth%3Dthis.options.iconWidth%3Bvar%20iconHeight%3D15%3Bvar%20iconOffset%3D4%3Bvar%20y%3DiconOffset%2B.5*iconHeight%3Bif(this.options.orientation%3D%3D%3D%5C%5C%5C%22left%5C%5C%5C%22)%7Bx%3DiconOffset%7Delse%7Bx%3Dthis.width-iconWidth-iconOffset%7Dvar%20groupArray%3D(0%2C_keys2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this.groups)%3BgroupArray.sort(function(a%2Cb)%7Breturn%20a%3Cb%3F-1%3A1%7D)%3Bfor(var%20i%3D0%3Bi%3CgroupArray.length%3Bi%2B%2B)%7Bvar%20groupId%3DgroupArray%5Bi%5D%3Bif(this.groups%5BgroupId%5D.visible%3D%3D%3Dtrue%26%26(this.linegraphOptions.visibility%5BgroupId%5D%3D%3D%3Dundefined%7C%7Cthis.linegraphOptions.visibility%5BgroupId%5D%3D%3D%3Dtrue))%7Bthis.groups%5BgroupId%5D.getLegend(iconWidth%2CiconHeight%2Cthis.framework%2Cx%2Cy)%3By%2B%3DiconHeight%2BiconOffset%7D%7DDOMutil.cleanupElements(this.svgElements)%3Bthis.iconsRemoved%3Dfalse%7D%3BDataAxis.prototype._cleanupIcons%3Dfunction()%7Bif(this.iconsRemoved%3D%3D%3Dfalse)%7BDOMutil.prepareElements(this.svgElements)%3BDOMutil.cleanupElements(this.svgElements)%3Bthis.iconsRemoved%3Dtrue%7D%7D%3BDataAxis.prototype.show%3Dfunction()%7Bthis.hidden%3Dfalse%3Bif(!this.dom.frame.parentNode)%7Bif(this.options.orientation%3D%3D%3D%5C%5C%5C%22left%5C%5C%5C%22)%7Bthis.body.dom.left.appendChild(this.dom.frame)%7Delse%7Bthis.body.dom.right.appendChild(this.dom.frame)%7D%7Dif(!this.dom.lineContainer.parentNode)%7Bthis.body.dom.backgroundHorizontal.appendChild(this.dom.lineContainer)%7D%7D%3BDataAxis.prototype.hide%3Dfunction()%7Bthis.hidden%3Dtrue%3Bif(this.dom.frame.parentNode)%7Bthis.dom.frame.parentNode.removeChild(this.dom.frame)%7Dif(this.dom.lineContainer.parentNode)%7Bthis.dom.lineContainer.parentNode.removeChild(this.dom.lineContainer)%7D%7D%3BDataAxis.prototype.setRange%3Dfunction(start%2Cend)%7Bthis.range.start%3Dstart%3Bthis.range.end%3Dend%7D%3BDataAxis.prototype.redraw%3Dfunction()%7Bvar%20resized%3Dfalse%3Bvar%20activeGroups%3D0%3Bthis.dom.lineContainer.style.top%3Dthis.body.domProps.scrollTop%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bfor(var%20groupId%20in%20this.groups)%7Bif(this.groups.hasOwnProperty(groupId))%7Bif(this.groups%5BgroupId%5D.visible%3D%3D%3Dtrue%26%26(this.linegraphOptions.visibility%5BgroupId%5D%3D%3D%3Dundefined%7C%7Cthis.linegraphOptions.visibility%5BgroupId%5D%3D%3D%3Dtrue))%7BactiveGroups%2B%2B%7D%7D%7Dif(this.amountOfGroups%3D%3D%3D0%7C%7CactiveGroups%3D%3D%3D0)%7Bthis.hide()%7Delse%7Bthis.show()%3Bthis.height%3DNumber(this.linegraphSVG.style.height.replace(%5C%5C%5C%22px%5C%5C%5C%22%2C%5C%5C%5C%22%5C%5C%5C%22))%3Bthis.dom.lineContainer.style.height%3Dthis.height%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bthis.width%3Dthis.options.visible%3D%3D%3Dtrue%3FNumber((%5C%5C%5C%22%5C%5C%5C%22%2Bthis.options.width).replace(%5C%5C%5C%22px%5C%5C%5C%22%2C%5C%5C%5C%22%5C%5C%5C%22))%3A0%3Bvar%20props%3Dthis.props%3Bvar%20frame%3Dthis.dom.frame%3Bframe.className%3D%5C%5C%5C%22vis-data-axis%5C%5C%5C%22%3Bthis._calculateCharSize()%3Bvar%20orientation%3Dthis.options.orientation%3Bvar%20showMinorLabels%3Dthis.options.showMinorLabels%3Bvar%20showMajorLabels%3Dthis.options.showMajorLabels%3Bprops.minorLabelHeight%3DshowMinorLabels%3Fprops.minorCharHeight%3A0%3Bprops.majorLabelHeight%3DshowMajorLabels%3Fprops.majorCharHeight%3A0%3Bprops.minorLineWidth%3Dthis.body.dom.backgroundHorizontal.offsetWidth-this.lineOffset-this.width%2B2*this.options.minorLinesOffset%3Bprops.minorLineHeight%3D1%3Bprops.majorLineWidth%3Dthis.body.dom.backgroundHorizontal.offsetWidth-this.lineOffset-this.width%2B2*this.options.majorLinesOffset%3Bprops.majorLineHeight%3D1%3Bif(orientation%3D%3D%3D%5C%5C%5C%22left%5C%5C%5C%22)%7Bframe.style.top%3D%5C%5C%5C%220%5C%5C%5C%22%3Bframe.style.left%3D%5C%5C%5C%220%5C%5C%5C%22%3Bframe.style.bottom%3D%5C%5C%5C%22%5C%5C%5C%22%3Bframe.style.width%3Dthis.width%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bframe.style.height%3Dthis.height%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bthis.props.width%3Dthis.body.domProps.left.width%3Bthis.props.height%3Dthis.body.domProps.left.height%7Delse%7Bframe.style.top%3D%5C%5C%5C%22%5C%5C%5C%22%3Bframe.style.bottom%3D%5C%5C%5C%220%5C%5C%5C%22%3Bframe.style.left%3D%5C%5C%5C%220%5C%5C%5C%22%3Bframe.style.width%3Dthis.width%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bframe.style.height%3Dthis.height%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bthis.props.width%3Dthis.body.domProps.right.width%3Bthis.props.height%3Dthis.body.domProps.right.height%7Dresized%3Dthis._redrawLabels()%3Bresized%3Dthis._isResized()%7C%7Cresized%3Bif(this.options.icons%3D%3D%3Dtrue)%7Bthis._redrawGroupIcons()%7Delse%7Bthis._cleanupIcons()%7Dthis._redrawTitle(orientation)%7Dreturn%20resized%7D%3BDataAxis.prototype._redrawLabels%3Dfunction()%7Bvar%20_this%3Dthis%3Bvar%20resized%3Dfalse%3BDOMutil.prepareElements(this.DOMelements.lines)%3BDOMutil.prepareElements(this.DOMelements.labels)%3Bvar%20orientation%3Dthis.options%5B%5C%5C%5C%22orientation%5C%5C%5C%22%5D%3Bvar%20customRange%3Dthis.options%5Borientation%5D.range!%3Dundefined%3Fthis.options%5Borientation%5D.range%3A%7B%7D%3Bvar%20autoScaleEnd%3Dtrue%3Bif(customRange.max!%3Dundefined)%7Bthis.range.end%3DcustomRange.max%3BautoScaleEnd%3Dfalse%7Dvar%20autoScaleStart%3Dtrue%3Bif(customRange.min!%3Dundefined)%7Bthis.range.start%3DcustomRange.min%3BautoScaleStart%3Dfalse%7Dthis.scale%3Dnew%20DataScale(this.range.start%2Cthis.range.end%2CautoScaleStart%2CautoScaleEnd%2Cthis.dom.frame.offsetHeight%2Cthis.props.majorCharHeight%2Cthis.options.alignZeros%2Cthis.options%5Borientation%5D.format)%3Bif(this.master%3D%3D%3Dfalse%26%26this.masterAxis!%3Dundefined)%7Bthis.scale.followScale(this.masterAxis.scale)%7Dthis.maxLabelSize%3D0%3Bvar%20lines%3Dthis.scale.getLines()%3Blines.forEach(function(line)%7Bvar%20y%3Dline.y%3Bvar%20isMajor%3Dline.major%3Bif(_this.options%5B%5C%5C%5C%22showMinorLabels%5C%5C%5C%22%5D%26%26isMajor%3D%3D%3Dfalse)%7B_this._redrawLabel(y-2%2Cline.val%2Corientation%2C%5C%5C%5C%22vis-y-axis%20vis-minor%5C%5C%5C%22%2C_this.props.minorCharHeight)%7Dif(isMajor)%7Bif(y%3E%3D0)%7B_this._redrawLabel(y-2%2Cline.val%2Corientation%2C%5C%5C%5C%22vis-y-axis%20vis-major%5C%5C%5C%22%2C_this.props.majorCharHeight)%7D%7Dif(_this.master%3D%3D%3Dtrue)%7Bif(isMajor)%7B_this._redrawLine(y%2Corientation%2C%5C%5C%5C%22vis-grid%20vis-horizontal%20vis-major%5C%5C%5C%22%2C_this.options.majorLinesOffset%2C_this.props.majorLineWidth)%7Delse%7B_this._redrawLine(y%2Corientation%2C%5C%5C%5C%22vis-grid%20vis-horizontal%20vis-minor%5C%5C%5C%22%2C_this.options.minorLinesOffset%2C_this.props.minorLineWidth)%7D%7D%7D)%3Bvar%20titleWidth%3D0%3Bif(this.options%5Borientation%5D.title!%3D%3Dundefined%26%26this.options%5Borientation%5D.title.text!%3D%3Dundefined)%7BtitleWidth%3Dthis.props.titleCharHeight%7Dvar%20offset%3Dthis.options.icons%3D%3D%3Dtrue%3FMath.max(this.options.iconWidth%2CtitleWidth)%2Bthis.options.labelOffsetX%2B15%3AtitleWidth%2Bthis.options.labelOffsetX%2B15%3Bif(this.maxLabelSize%3Ethis.width-offset%26%26this.options.visible%3D%3D%3Dtrue)%7Bthis.width%3Dthis.maxLabelSize%2Boffset%3Bthis.options.width%3Dthis.width%2B%5C%5C%5C%22px%5C%5C%5C%22%3BDOMutil.cleanupElements(this.DOMelements.lines)%3BDOMutil.cleanupElements(this.DOMelements.labels)%3Bthis.redraw()%3Bresized%3Dtrue%7Delse%20if(this.maxLabelSize%3Cthis.width-offset%26%26this.options.visible%3D%3D%3Dtrue%26%26this.width%3Ethis.minWidth)%7Bthis.width%3DMath.max(this.minWidth%2Cthis.maxLabelSize%2Boffset)%3Bthis.options.width%3Dthis.width%2B%5C%5C%5C%22px%5C%5C%5C%22%3BDOMutil.cleanupElements(this.DOMelements.lines)%3BDOMutil.cleanupElements(this.DOMelements.labels)%3Bthis.redraw()%3Bresized%3Dtrue%7Delse%7BDOMutil.cleanupElements(this.DOMelements.lines)%3BDOMutil.cleanupElements(this.DOMelements.labels)%3Bresized%3Dfalse%7Dreturn%20resized%7D%3BDataAxis.prototype.convertValue%3Dfunction(value)%7Breturn%20this.scale.convertValue(value)%7D%3BDataAxis.prototype.screenToValue%3Dfunction(x)%7Breturn%20this.scale.screenToValue(x)%7D%3BDataAxis.prototype._redrawLabel%3Dfunction(y%2Ctext%2Corientation%2CclassName%2CcharacterHeight)%7Bvar%20label%3DDOMutil.getDOMElement(%5C%5C%5C%22div%5C%5C%5C%22%2Cthis.DOMelements.labels%2Cthis.dom.frame)%3Blabel.className%3DclassName%3Blabel.innerHTML%3Dtext%3Bif(orientation%3D%3D%3D%5C%5C%5C%22left%5C%5C%5C%22)%7Blabel.style.left%3D%5C%5C%5C%22-%5C%5C%5C%22%2Bthis.options.labelOffsetX%2B%5C%5C%5C%22px%5C%5C%5C%22%3Blabel.style.textAlign%3D%5C%5C%5C%22right%5C%5C%5C%22%7Delse%7Blabel.style.right%3D%5C%5C%5C%22-%5C%5C%5C%22%2Bthis.options.labelOffsetX%2B%5C%5C%5C%22px%5C%5C%5C%22%3Blabel.style.textAlign%3D%5C%5C%5C%22left%5C%5C%5C%22%7Dlabel.style.top%3Dy-.5*characterHeight%2Bthis.options.labelOffsetY%2B%5C%5C%5C%22px%5C%5C%5C%22%3Btext%2B%3D%5C%5C%5C%22%5C%5C%5C%22%3Bvar%20largestWidth%3DMath.max(this.props.majorCharWidth%2Cthis.props.minorCharWidth)%3Bif(this.maxLabelSize%3Ctext.length*largestWidth)%7Bthis.maxLabelSize%3Dtext.length*largestWidth%7D%7D%3BDataAxis.prototype._redrawLine%3Dfunction(y%2Corientation%2CclassName%2Coffset%2Cwidth)%7Bif(this.master%3D%3D%3Dtrue)%7B%5C%5Cnvar%20line%3DDOMutil.getDOMElement(%5C%5C%5C%22div%5C%5C%5C%22%2Cthis.DOMelements.lines%2Cthis.dom.lineContainer)%3Bline.className%3DclassName%3Bline.innerHTML%3D%5C%5C%5C%22%5C%5C%5C%22%3Bif(orientation%3D%3D%3D%5C%5C%5C%22left%5C%5C%5C%22)%7Bline.style.left%3Dthis.width-offset%2B%5C%5C%5C%22px%5C%5C%5C%22%7Delse%7Bline.style.right%3Dthis.width-offset%2B%5C%5C%5C%22px%5C%5C%5C%22%7Dline.style.width%3Dwidth%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bline.style.top%3Dy%2B%5C%5C%5C%22px%5C%5C%5C%22%7D%7D%3BDataAxis.prototype._redrawTitle%3Dfunction(orientation)%7BDOMutil.prepareElements(this.DOMelements.title)%3Bif(this.options%5Borientation%5D.title!%3D%3Dundefined%26%26this.options%5Borientation%5D.title.text!%3D%3Dundefined)%7Bvar%20title%3DDOMutil.getDOMElement(%5C%5C%5C%22div%5C%5C%5C%22%2Cthis.DOMelements.title%2Cthis.dom.frame)%3Btitle.className%3D%5C%5C%5C%22vis-y-axis%20vis-title%20vis-%5C%5C%5C%22%2Borientation%3Btitle.innerHTML%3Dthis.options%5Borientation%5D.title.text%3Bif(this.options%5Borientation%5D.title.style!%3D%3Dundefined)%7Butil.addCssText(title%2Cthis.options%5Borientation%5D.title.style)%7Dif(orientation%3D%3D%3D%5C%5C%5C%22left%5C%5C%5C%22)%7Btitle.style.left%3Dthis.props.titleCharHeight%2B%5C%5C%5C%22px%5C%5C%5C%22%7Delse%7Btitle.style.right%3Dthis.props.titleCharHeight%2B%5C%5C%5C%22px%5C%5C%5C%22%7Dtitle.style.width%3Dthis.height%2B%5C%5C%5C%22px%5C%5C%5C%22%7DDOMutil.cleanupElements(this.DOMelements.title)%7D%3BDataAxis.prototype._calculateCharSize%3Dfunction()%7Bif(!(%5C%5C%5C%22minorCharHeight%5C%5C%5C%22in%20this.props))%7Bvar%20textMinor%3Ddocument.createTextNode(%5C%5C%5C%220%5C%5C%5C%22)%3Bvar%20measureCharMinor%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3BmeasureCharMinor.className%3D%5C%5C%5C%22vis-y-axis%20vis-minor%20vis-measure%5C%5C%5C%22%3BmeasureCharMinor.appendChild(textMinor)%3Bthis.dom.frame.appendChild(measureCharMinor)%3Bthis.props.minorCharHeight%3DmeasureCharMinor.clientHeight%3Bthis.props.minorCharWidth%3DmeasureCharMinor.clientWidth%3Bthis.dom.frame.removeChild(measureCharMinor)%7Dif(!(%5C%5C%5C%22majorCharHeight%5C%5C%5C%22in%20this.props))%7Bvar%20textMajor%3Ddocument.createTextNode(%5C%5C%5C%220%5C%5C%5C%22)%3Bvar%20measureCharMajor%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3BmeasureCharMajor.className%3D%5C%5C%5C%22vis-y-axis%20vis-major%20vis-measure%5C%5C%5C%22%3BmeasureCharMajor.appendChild(textMajor)%3Bthis.dom.frame.appendChild(measureCharMajor)%3Bthis.props.majorCharHeight%3DmeasureCharMajor.clientHeight%3Bthis.props.majorCharWidth%3DmeasureCharMajor.clientWidth%3Bthis.dom.frame.removeChild(measureCharMajor)%7Dif(!(%5C%5C%5C%22titleCharHeight%5C%5C%5C%22in%20this.props))%7Bvar%20textTitle%3Ddocument.createTextNode(%5C%5C%5C%220%5C%5C%5C%22)%3Bvar%20measureCharTitle%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3BmeasureCharTitle.className%3D%5C%5C%5C%22vis-y-axis%20vis-title%20vis-measure%5C%5C%5C%22%3BmeasureCharTitle.appendChild(textTitle)%3Bthis.dom.frame.appendChild(measureCharTitle)%3Bthis.props.titleCharHeight%3DmeasureCharTitle.clientHeight%3Bthis.props.titleCharWidth%3DmeasureCharTitle.clientWidth%3Bthis.dom.frame.removeChild(measureCharTitle)%7D%7D%3Bmodule.exports%3DDataAxis%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bfunction%20DataScale(start%2Cend%2CautoScaleStart%2CautoScaleEnd%2CcontainerHeight%2CmajorCharHeight)%7Bvar%20zeroAlign%3Darguments.length%3E6%26%26arguments%5B6%5D!%3D%3Dundefined%3Farguments%5B6%5D%3Afalse%3Bvar%20formattingFunction%3Darguments.length%3E7%26%26arguments%5B7%5D!%3D%3Dundefined%3Farguments%5B7%5D%3Afalse%3Bthis.majorSteps%3D%5B1%2C2%2C5%2C10%5D%3Bthis.minorSteps%3D%5B.25%2C.5%2C1%2C2%5D%3Bthis.customLines%3Dnull%3Bthis.containerHeight%3DcontainerHeight%3Bthis.majorCharHeight%3DmajorCharHeight%3Bthis._start%3Dstart%3Bthis._end%3Dend%3Bthis.scale%3D1%3Bthis.minorStepIdx%3D-1%3Bthis.magnitudefactor%3D1%3Bthis.determineScale()%3Bthis.zeroAlign%3DzeroAlign%3Bthis.autoScaleStart%3DautoScaleStart%3Bthis.autoScaleEnd%3DautoScaleEnd%3Bthis.formattingFunction%3DformattingFunction%3Bif(autoScaleStart%7C%7CautoScaleEnd)%7Bvar%20me%3Dthis%3Bvar%20roundToMinor%3Dfunction%20roundToMinor(value)%7Bvar%20rounded%3Dvalue-value%25(me.magnitudefactor*me.minorSteps%5Bme.minorStepIdx%5D)%3Bif(value%25(me.magnitudefactor*me.minorSteps%5Bme.minorStepIdx%5D)%3E.5*(me.magnitudefactor*me.minorSteps%5Bme.minorStepIdx%5D))%7Breturn%20rounded%2Bme.magnitudefactor*me.minorSteps%5Bme.minorStepIdx%5D%7Delse%7Breturn%20rounded%7D%7D%3Bif(autoScaleStart)%7Bthis._start-%3Dthis.magnitudefactor*2*this.minorSteps%5Bthis.minorStepIdx%5D%3Bthis._start%3DroundToMinor(this._start)%7Dif(autoScaleEnd)%7Bthis._end%2B%3Dthis.magnitudefactor*this.minorSteps%5Bthis.minorStepIdx%5D%3Bthis._end%3DroundToMinor(this._end)%7Dthis.determineScale()%7D%7DDataScale.prototype.setCharHeight%3Dfunction(majorCharHeight)%7Bthis.majorCharHeight%3DmajorCharHeight%7D%3BDataScale.prototype.setHeight%3Dfunction(containerHeight)%7Bthis.containerHeight%3DcontainerHeight%7D%3BDataScale.prototype.determineScale%3Dfunction()%7Bvar%20range%3Dthis._end-this._start%3Bthis.scale%3Dthis.containerHeight%2Frange%3Bvar%20minimumStepValue%3Dthis.majorCharHeight%2Fthis.scale%3Bvar%20orderOfMagnitude%3Drange%3E0%3FMath.round(Math.log(range)%2FMath.LN10)%3A0%3Bthis.minorStepIdx%3D-1%3Bthis.magnitudefactor%3DMath.pow(10%2CorderOfMagnitude)%3Bvar%20start%3D0%3Bif(orderOfMagnitude%3C0)%7Bstart%3DorderOfMagnitude%7Dvar%20solutionFound%3Dfalse%3Bfor(var%20l%3Dstart%3BMath.abs(l)%3C%3DMath.abs(orderOfMagnitude)%3Bl%2B%2B)%7Bthis.magnitudefactor%3DMath.pow(10%2Cl)%3Bfor(var%20j%3D0%3Bj%3Cthis.minorSteps.length%3Bj%2B%2B)%7Bvar%20stepSize%3Dthis.magnitudefactor*this.minorSteps%5Bj%5D%3Bif(stepSize%3E%3DminimumStepValue)%7BsolutionFound%3Dtrue%3Bthis.minorStepIdx%3Dj%3Bbreak%7D%7Dif(solutionFound%3D%3D%3Dtrue)%7Bbreak%7D%7D%7D%3BDataScale.prototype.is_major%3Dfunction(value)%7Breturn%20value%25(this.magnitudefactor*this.majorSteps%5Bthis.minorStepIdx%5D)%3D%3D%3D0%7D%3BDataScale.prototype.getStep%3Dfunction()%7Breturn%20this.magnitudefactor*this.minorSteps%5Bthis.minorStepIdx%5D%7D%3BDataScale.prototype.getFirstMajor%3Dfunction()%7Bvar%20majorStep%3Dthis.magnitudefactor*this.majorSteps%5Bthis.minorStepIdx%5D%3Breturn%20this.convertValue(this._start%2B(majorStep-this._start%25majorStep)%25majorStep)%7D%3BDataScale.prototype.formatValue%3Dfunction(current)%7Bvar%20returnValue%3Dcurrent.toPrecision(5)%3Bif(typeof%20this.formattingFunction%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22)%7BreturnValue%3Dthis.formattingFunction(current)%7Dif(typeof%20returnValue%3D%3D%3D%5C%5C%5C%22number%5C%5C%5C%22)%7Breturn%5C%5C%5C%22%5C%5C%5C%22%2BreturnValue%7Delse%20if(typeof%20returnValue%3D%3D%3D%5C%5C%5C%22string%5C%5C%5C%22)%7Breturn%20returnValue%7Delse%7Breturn%20current.toPrecision(5)%7D%7D%3BDataScale.prototype.getLines%3Dfunction()%7Bvar%20lines%3D%5B%5D%3Bvar%20step%3Dthis.getStep()%3Bvar%20bottomOffset%3D(step-this._start%25step)%25step%3Bfor(var%20i%3Dthis._start%2BbottomOffset%3Bthis._end-i%3E1e-5%3Bi%2B%3Dstep)%7Bif(i!%3Dthis._start)%7Blines.push(%7Bmajor%3Athis.is_major(i)%2Cy%3Athis.convertValue(i)%2Cval%3Athis.formatValue(i)%7D)%7D%7Dreturn%20lines%7D%3BDataScale.prototype.followScale%3Dfunction(other)%7Bvar%20oldStepIdx%3Dthis.minorStepIdx%3Bvar%20oldStart%3Dthis._start%3Bvar%20oldEnd%3Dthis._end%3Bvar%20me%3Dthis%3Bvar%20increaseMagnitude%3Dfunction%20increaseMagnitude()%7Bme.magnitudefactor*%3D2%7D%3Bvar%20decreaseMagnitude%3Dfunction%20decreaseMagnitude()%7Bme.magnitudefactor%2F%3D2%7D%3Bif(other.minorStepIdx%3C%3D1%26%26this.minorStepIdx%3C%3D1%7C%7Cother.minorStepIdx%3E1%26%26this.minorStepIdx%3E1)%7B%7Delse%20if(other.minorStepIdx%3Cthis.minorStepIdx)%7Bthis.minorStepIdx%3D1%3Bif(oldStepIdx%3D%3D2)%7BincreaseMagnitude()%7Delse%7BincreaseMagnitude()%3BincreaseMagnitude()%7D%7Delse%7Bthis.minorStepIdx%3D2%3Bif(oldStepIdx%3D%3D1)%7BdecreaseMagnitude()%7Delse%7BdecreaseMagnitude()%3BdecreaseMagnitude()%7D%7Dvar%20otherZero%3Dother.convertValue(0)%3Bvar%20otherStep%3Dother.getStep()*other.scale%3Bvar%20done%3Dfalse%3Bvar%20count%3D0%3Bwhile(!done%26%26count%2B%2B%3C5)%7Bthis.scale%3DotherStep%2F(this.minorSteps%5Bthis.minorStepIdx%5D*this.magnitudefactor)%3Bvar%20newRange%3Dthis.containerHeight%2Fthis.scale%3Bthis._start%3DoldStart%3Bthis._end%3Dthis._start%2BnewRange%3Bvar%20myOriginalZero%3Dthis._end*this.scale%3Bvar%20majorStep%3Dthis.magnitudefactor*this.majorSteps%5Bthis.minorStepIdx%5D%3Bvar%20majorOffset%3Dthis.getFirstMajor()-other.getFirstMajor()%3Bif(this.zeroAlign)%7Bvar%20zeroOffset%3DotherZero-myOriginalZero%3Bthis._end%2B%3DzeroOffset%2Fthis.scale%3Bthis._start%3Dthis._end-newRange%7Delse%7Bif(!this.autoScaleStart)%7Bthis._start%2B%3DmajorStep-majorOffset%2Fthis.scale%3Bthis._end%3Dthis._start%2BnewRange%7Delse%7Bthis._start-%3DmajorOffset%2Fthis.scale%3Bthis._end%3Dthis._start%2BnewRange%7D%7Dif(!this.autoScaleEnd%26%26this._end%3EoldEnd%2B1e-5)%7BdecreaseMagnitude()%3Bdone%3Dfalse%3Bcontinue%7Dif(!this.autoScaleStart%26%26this._start%3ColdStart-1e-5)%7Bif(this.zeroAlign%26%26oldStart%3E%3D0)%7Bconsole.warn(%5C%5C%5C%22Can't%20adhere%20to%20given%20'min'%20range%2C%20due%20to%20zeroalign%5C%5C%5C%22)%7Delse%7BdecreaseMagnitude()%3Bdone%3Dfalse%3Bcontinue%7D%7Dif(this.autoScaleStart%26%26this.autoScaleEnd%26%26newRange%3ColdEnd-oldStart)%7BincreaseMagnitude()%3Bdone%3Dfalse%3Bcontinue%7Ddone%3Dtrue%7D%7D%3BDataScale.prototype.convertValue%3Dfunction(value)%7Breturn%20this.containerHeight-(value-this._start)*this.scale%7D%3BDataScale.prototype.screenToValue%3Dfunction(pixels)%7Breturn(this.containerHeight-pixels)%2Fthis.scale%2Bthis._start%7D%3Bmodule.exports%3DDataScale%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bvar%20_typeof2%3D__webpack_require__(6)%3Bvar%20_typeof3%3D_interopRequireDefault(_typeof2)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20util%3D__webpack_require__(2)%3Bvar%20Bars%3D__webpack_require__(110)%3Bvar%20Lines%3D__webpack_require__(111)%3Bvar%20Points%3D__webpack_require__(72)%3Bfunction%20GraphGroup(group%2CgroupId%2Coptions%2CgroupsUsingDefaultStyles)%7Bthis.id%3DgroupId%3Bvar%20fields%3D%5B%5C%5C%5C%22sampling%5C%5C%5C%22%2C%5C%5C%5C%22style%5C%5C%5C%22%2C%5C%5C%5C%22sort%5C%5C%5C%22%2C%5C%5C%5C%22yAxisOrientation%5C%5C%5C%22%2C%5C%5C%5C%22barChart%5C%5C%5C%22%2C%5C%5C%5C%22drawPoints%5C%5C%5C%22%2C%5C%5C%5C%22shaded%5C%5C%5C%22%2C%5C%5C%5C%22interpolation%5C%5C%5C%22%2C%5C%5C%5C%22zIndex%5C%5C%5C%22%2C%5C%5C%5C%22excludeFromStacking%5C%5C%5C%22%2C%5C%5C%5C%22excludeFromLegend%5C%5C%5C%22%5D%3Bthis.options%3Dutil.selectiveBridgeObject(fields%2Coptions)%3Bthis.usingDefaultStyle%3Dgroup.className%3D%3D%3Dundefined%3Bthis.groupsUsingDefaultStyles%3DgroupsUsingDefaultStyles%3Bthis.zeroPosition%3D0%3Bthis.update(group)%3Bif(this.usingDefaultStyle%3D%3Dtrue)%7Bthis.groupsUsingDefaultStyles%5B0%5D%2B%3D1%7Dthis.itemsData%3D%5B%5D%3Bthis.visible%3Dgroup.visible%3D%3D%3Dundefined%3Ftrue%3Agroup.visible%7DGraphGroup.prototype.setItems%3Dfunction(items)%7Bif(items!%3Dnull)%7Bthis.itemsData%3Ditems%3Bif(this.options.sort%3D%3Dtrue)%7Butil.insertSort(this.itemsData%2Cfunction(a%2Cb)%7Breturn%20a.x%3Eb.x%3F1%3A-1%7D)%7D%7Delse%7Bthis.itemsData%3D%5B%5D%7D%7D%3BGraphGroup.prototype.getItems%3Dfunction()%7Breturn%20this.itemsData%7D%3BGraphGroup.prototype.setZeroPosition%3Dfunction(pos)%7Bthis.zeroPosition%3Dpos%7D%3BGraphGroup.prototype.setOptions%3Dfunction(options)%7Bif(options!%3D%3Dundefined)%7Bvar%20fields%3D%5B%5C%5C%5C%22sampling%5C%5C%5C%22%2C%5C%5C%5C%22style%5C%5C%5C%22%2C%5C%5C%5C%22sort%5C%5C%5C%22%2C%5C%5C%5C%22yAxisOrientation%5C%5C%5C%22%2C%5C%5C%5C%22barChart%5C%5C%5C%22%2C%5C%5C%5C%22zIndex%5C%5C%5C%22%2C%5C%5C%5C%22excludeFromStacking%5C%5C%5C%22%2C%5C%5C%5C%22excludeFromLegend%5C%5C%5C%22%5D%3Butil.selectiveDeepExtend(fields%2Cthis.options%2Coptions)%3Bif(typeof%20options.drawPoints%3D%3D%5C%5C%5C%22function%5C%5C%5C%22)%7Boptions.drawPoints%3D%7BonRender%3Aoptions.drawPoints%7D%7Dutil.mergeOptions(this.options%2Coptions%2C%5C%5C%5C%22interpolation%5C%5C%5C%22)%3Butil.mergeOptions(this.options%2Coptions%2C%5C%5C%5C%22drawPoints%5C%5C%5C%22)%3Butil.mergeOptions(this.options%2Coptions%2C%5C%5C%5C%22shaded%5C%5C%5C%22)%3Bif(options.interpolation)%7Bif((0%2C_typeof3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(options.interpolation)%3D%3D%5C%5C%5C%22object%5C%5C%5C%22)%7Bif(options.interpolation.parametrization)%7Bif(options.interpolation.parametrization%3D%3D%5C%5C%5C%22uniform%5C%5C%5C%22)%7Bthis.options.interpolation.alpha%3D0%7Delse%20if(options.interpolation.parametrization%3D%3D%5C%5C%5C%22chordal%5C%5C%5C%22)%7Bthis.options.interpolation.alpha%3D1%7Delse%7Bthis.options.interpolation.parametrization%3D%5C%5C%5C%22centripetal%5C%5C%5C%22%3Bthis.options.interpolation.alpha%3D.5%7D%7D%7D%7D%7D%7D%3BGraphGroup.prototype.update%3Dfunction(group)%7Bthis.group%3Dgroup%3Bthis.content%3Dgroup.content%7C%7C%5C%5C%5C%22graph%5C%5C%5C%22%3Bthis.className%3Dgroup.className%7C%7Cthis.className%7C%7C%5C%5C%5C%22vis-graph-group%5C%5C%5C%22%2Bthis.groupsUsingDefaultStyles%5B0%5D%2510%3Bthis.visible%3Dgroup.visible%3D%3D%3Dundefined%3Ftrue%3Agroup.visible%3Bthis.style%3Dgroup.style%3Bthis.setOptions(group.options)%7D%3BGraphGroup.prototype.getLegend%3Dfunction(iconWidth%2CiconHeight%2Cframework%2Cx%2Cy)%7Bif(framework%3D%3Dundefined%7C%7Cframework%3D%3Dnull)%7Bvar%20svg%3Ddocument.createElementNS(%5C%5C%5C%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%5C%5C%5C%22%2C%5C%5C%5C%22svg%5C%5C%5C%22)%3Bframework%3D%7Bsvg%3Asvg%2CsvgElements%3A%7B%7D%2Coptions%3Athis.options%2Cgroups%3A%5Bthis%5D%7D%7Dif(x%3D%3Dundefined%7C%7Cx%3D%3Dnull)%7Bx%3D0%7Dif(y%3D%3Dundefined%7C%7Cy%3D%3Dnull)%7By%3D.5*iconHeight%7Dswitch(this.options.style)%7Bcase%5C%5C%5C%22line%5C%5C%5C%22%3ALines.drawIcon(this%2Cx%2Cy%2CiconWidth%2CiconHeight%2Cframework)%3Bbreak%3Bcase%5C%5C%5C%22points%5C%5C%5C%22%3Acase%5C%5C%5C%22point%5C%5C%5C%22%3APoints.drawIcon(this%2Cx%2Cy%2CiconWidth%2CiconHeight%2Cframework)%3Bbreak%3Bcase%5C%5C%5C%22bar%5C%5C%5C%22%3ABars.drawIcon(this%2Cx%2Cy%2CiconWidth%2CiconHeight%2Cframework)%3Bbreak%7Dreturn%7Bicon%3Aframework.svg%2Clabel%3Athis.content%2Corientation%3Athis.options.yAxisOrientation%7D%7D%3BGraphGroup.prototype.getYRange%3Dfunction(groupData)%7Bvar%20yMin%3DgroupData%5B0%5D.y%3Bvar%20yMax%3DgroupData%5B0%5D.y%3Bfor(var%20j%3D0%3Bj%3CgroupData.length%3Bj%2B%2B)%7ByMin%3DyMin%3EgroupData%5Bj%5D.y%3FgroupData%5Bj%5D.y%3AyMin%3ByMax%3DyMax%3CgroupData%5Bj%5D.y%3FgroupData%5Bj%5D.y%3AyMax%7Dreturn%7Bmin%3AyMin%2Cmax%3AyMax%2CyAxisOrientation%3Athis.options.yAxisOrientation%7D%7D%3Bmodule.exports%3DGraphGroup%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bvar%20DOMutil%3D__webpack_require__(14)%3Bvar%20Points%3D__webpack_require__(72)%3Bfunction%20Bargraph(groupId%2Coptions)%7B%7DBargraph.drawIcon%3Dfunction(group%2Cx%2Cy%2CiconWidth%2CiconHeight%2Cframework)%7Bvar%20fillHeight%3DiconHeight*.5%3Bvar%20outline%3DDOMutil.getSVGElement(%5C%5C%5C%22rect%5C%5C%5C%22%2Cframework.svgElements%2Cframework.svg)%3Boutline.setAttributeNS(null%2C%5C%5C%5C%22x%5C%5C%5C%22%2Cx)%3Boutline.setAttributeNS(null%2C%5C%5C%5C%22y%5C%5C%5C%22%2Cy-fillHeight)%3Boutline.setAttributeNS(null%2C%5C%5C%5C%22width%5C%5C%5C%22%2CiconWidth)%3Boutline.setAttributeNS(null%2C%5C%5C%5C%22height%5C%5C%5C%22%2C2*fillHeight)%3Boutline.setAttributeNS(null%2C%5C%5C%5C%22class%5C%5C%5C%22%2C%5C%5C%5C%22vis-outline%5C%5C%5C%22)%3Bvar%20barWidth%3DMath.round(.3*iconWidth)%3Bvar%20originalWidth%3Dgroup.options.barChart.width%3Bvar%20scale%3DoriginalWidth%2FbarWidth%3Bvar%20bar1Height%3DMath.round(.4*iconHeight)%3Bvar%20bar2Height%3DMath.round(.75*iconHeight)%3Bvar%20offset%3DMath.round((iconWidth-2*barWidth)%2F3)%3BDOMutil.drawBar(x%2B.5*barWidth%2Boffset%2Cy%2BfillHeight-bar1Height-1%2CbarWidth%2Cbar1Height%2Cgroup.className%2B%5C%5C%5C%22%20vis-bar%5C%5C%5C%22%2Cframework.svgElements%2Cframework.svg%2Cgroup.style)%3BDOMutil.drawBar(x%2B1.5*barWidth%2Boffset%2B2%2Cy%2BfillHeight-bar2Height-1%2CbarWidth%2Cbar2Height%2Cgroup.className%2B%5C%5C%5C%22%20vis-bar%5C%5C%5C%22%2Cframework.svgElements%2Cframework.svg%2Cgroup.style)%3Bif(group.options.drawPoints.enabled%3D%3Dtrue)%7Bvar%20groupTemplate%3D%7Bstyle%3Agroup.options.drawPoints.style%2Cstyles%3Agroup.options.drawPoints.styles%2Csize%3Agroup.options.drawPoints.size%2Fscale%2CclassName%3Agroup.className%7D%3BDOMutil.drawPoint(x%2B.5*barWidth%2Boffset%2Cy%2BfillHeight-bar1Height-1%2CgroupTemplate%2Cframework.svgElements%2Cframework.svg)%3BDOMutil.drawPoint(x%2B1.5*barWidth%2Boffset%2B2%2Cy%2BfillHeight-bar2Height-1%2CgroupTemplate%2Cframework.svgElements%2Cframework.svg)%7D%7D%3BBargraph.draw%3Dfunction(groupIds%2CprocessedGroupData%2Cframework)%7Bvar%20combinedData%3D%5B%5D%3Bvar%20intersections%3D%7B%7D%3Bvar%20coreDistance%3Bvar%20key%2CdrawData%3Bvar%20group%3Bvar%20i%2Cj%3Bvar%20barPoints%3D0%3Bfor(i%3D0%3Bi%3CgroupIds.length%3Bi%2B%2B)%7Bgroup%3Dframework.groups%5BgroupIds%5Bi%5D%5D%3Bif(group.options.style%3D%3D%3D%5C%5C%5C%22bar%5C%5C%5C%22)%7Bif(group.visible%3D%3D%3Dtrue%26%26(framework.options.groups.visibility%5BgroupIds%5Bi%5D%5D%3D%3D%3Dundefined%7C%7Cframework.options.groups.visibility%5BgroupIds%5Bi%5D%5D%3D%3D%3Dtrue))%7Bfor(j%3D0%3Bj%3CprocessedGroupData%5BgroupIds%5Bi%5D%5D.length%3Bj%2B%2B)%7BcombinedData.push(%7Bscreen_x%3AprocessedGroupData%5BgroupIds%5Bi%5D%5D%5Bj%5D.screen_x%2Cscreen_end%3AprocessedGroupData%5BgroupIds%5Bi%5D%5D%5Bj%5D.screen_end%2Cscreen_y%3AprocessedGroupData%5BgroupIds%5Bi%5D%5D%5Bj%5D.screen_y%2Cx%3AprocessedGroupData%5BgroupIds%5Bi%5D%5D%5Bj%5D.x%2Cend%3AprocessedGroupData%5BgroupIds%5Bi%5D%5D%5Bj%5D.end%2Cy%3AprocessedGroupData%5BgroupIds%5Bi%5D%5D%5Bj%5D.y%2CgroupId%3AgroupIds%5Bi%5D%2Clabel%3AprocessedGroupData%5BgroupIds%5Bi%5D%5D%5Bj%5D.label%7D)%3BbarPoints%2B%3D1%7D%7D%7D%7Dif(barPoints%3D%3D%3D0)%7Breturn%7DcombinedData.sort(function(a%2Cb)%7Bif(a.screen_x%3D%3D%3Db.screen_x)%7Breturn%20a.groupId%3Cb.groupId%3F-1%3A1%7Delse%7Breturn%20a.screen_x-b.screen_x%7D%7D)%3BBargraph._getDataIntersections(intersections%2CcombinedData)%3Bfor(i%3D0%3Bi%3CcombinedData.length%3Bi%2B%2B)%7Bgroup%3Dframework.groups%5BcombinedData%5Bi%5D.groupId%5D%3Bvar%20minWidth%3Dgroup.options.barChart.minWidth!%3Dundefined%3Fgroup.options.barChart.minWidth%3A.1*group.options.barChart.width%3Bkey%3DcombinedData%5Bi%5D.screen_x%3Bvar%20heightOffset%3D0%3Bif(intersections%5Bkey%5D%3D%3D%3Dundefined)%7Bif(i%2B1%3CcombinedData.length)%7BcoreDistance%3DMath.abs(combinedData%5Bi%2B1%5D.screen_x-key)%7DdrawData%3DBargraph._getSafeDrawData(coreDistance%2Cgroup%2CminWidth)%7Delse%7Bvar%20nextKey%3Di%2B(intersections%5Bkey%5D.amount-intersections%5Bkey%5D.resolved)%3Bif(nextKey%3CcombinedData.length)%7BcoreDistance%3DMath.abs(combinedData%5BnextKey%5D.screen_x-key)%7DdrawData%3DBargraph._getSafeDrawData(coreDistance%2Cgroup%2CminWidth)%3Bintersections%5Bkey%5D.resolved%2B%3D1%3Bif(group.options.stack%3D%3D%3Dtrue%26%26group.options.excludeFromStacking!%3D%3Dtrue)%7Bif(combinedData%5Bi%5D.screen_y%3Cgroup.zeroPosition)%7BheightOffset%3Dintersections%5Bkey%5D.accumulatedNegative%3Bintersections%5Bkey%5D.accumulatedNegative%2B%3Dgroup.zeroPosition-combinedData%5Bi%5D.screen_y%7Delse%7BheightOffset%3Dintersections%5Bkey%5D.accumulatedPositive%3Bintersections%5Bkey%5D.accumulatedPositive%2B%3Dgroup.zeroPosition-combinedData%5Bi%5D.screen_y%7D%7Delse%20if(group.options.barChart.sideBySide%3D%3D%3Dtrue)%7BdrawData.width%3DdrawData.width%2Fintersections%5Bkey%5D.amount%3BdrawData.offset%2B%3Dintersections%5Bkey%5D.resolved*drawData.width-.5*drawData.width*(intersections%5Bkey%5D.amount%2B1)%7D%7Dvar%20dataWidth%3DdrawData.width%3Bvar%20start%3DcombinedData%5Bi%5D.screen_x%3Bif(combinedData%5Bi%5D.screen_end!%3Dundefined)%7BdataWidth%3DcombinedData%5Bi%5D.screen_end-combinedData%5Bi%5D.screen_x%3Bstart%2B%3DdataWidth*.5%7Delse%7Bstart%2B%3DdrawData.offset%7DDOMutil.drawBar(start%2CcombinedData%5Bi%5D.screen_y-heightOffset%2CdataWidth%2Cgroup.zeroPosition-combinedData%5Bi%5D.screen_y%2Cgroup.className%2B%5C%5C%5C%22%20vis-bar%5C%5C%5C%22%2Cframework.svgElements%2Cframework.svg%2Cgroup.style)%3Bif(group.options.drawPoints.enabled%3D%3D%3Dtrue)%7Bvar%20pointData%3D%7Bscreen_x%3AcombinedData%5Bi%5D.screen_x%2Cscreen_y%3AcombinedData%5Bi%5D.screen_y-heightOffset%2Cx%3AcombinedData%5Bi%5D.x%2Cy%3AcombinedData%5Bi%5D.y%2CgroupId%3AcombinedData%5Bi%5D.groupId%2Clabel%3AcombinedData%5Bi%5D.label%7D%3BPoints.draw(%5BpointData%5D%2Cgroup%2Cframework%2CdrawData.offset)%7D%7D%7D%3BBargraph._getDataIntersections%3Dfunction(intersections%2CcombinedData)%7Bvar%20coreDistance%3Bfor(var%20i%3D0%3Bi%3CcombinedData.length%3Bi%2B%2B)%7Bif(i%2B1%3CcombinedData.length)%7BcoreDistance%3DMath.abs(combinedData%5Bi%2B1%5D.screen_x-combinedData%5Bi%5D.screen_x)%7Dif(i%3E0)%7BcoreDistance%3DMath.min(coreDistance%2CMath.abs(combinedData%5Bi-1%5D.screen_x-combinedData%5Bi%5D.screen_x))%7Dif(coreDistance%3D%3D%3D0)%7Bif(intersections%5BcombinedData%5Bi%5D.screen_x%5D%3D%3D%3Dundefined)%7Bintersections%5BcombinedData%5Bi%5D.screen_x%5D%3D%7Bamount%3A0%2Cresolved%3A0%2CaccumulatedPositive%3A0%2CaccumulatedNegative%3A0%7D%7Dintersections%5BcombinedData%5Bi%5D.screen_x%5D.amount%2B%3D1%7D%7D%7D%3BBargraph._getSafeDrawData%3Dfunction(coreDistance%2Cgroup%2CminWidth)%7Bvar%20width%2Coffset%3Bif(coreDistance%3Cgroup.options.barChart.width%26%26coreDistance%3E0)%7Bwidth%3DcoreDistance%3CminWidth%3FminWidth%3AcoreDistance%3Boffset%3D0%3Bif(group.options.barChart.align%3D%3D%3D%5C%5C%5C%22left%5C%5C%5C%22)%7Boffset-%3D.5*coreDistance%7Delse%20if(group.options.barChart.align%3D%3D%3D%5C%5C%5C%22right%5C%5C%5C%22)%7Boffset%2B%3D.5*coreDistance%7D%7Delse%7Bwidth%3Dgroup.options.barChart.width%3Boffset%3D0%3Bif(group.options.barChart.align%3D%3D%3D%5C%5C%5C%22left%5C%5C%5C%22)%7Boffset-%3D.5*group.options.barChart.width%7Delse%20if(group.options.barChart.align%3D%3D%3D%5C%5C%5C%22right%5C%5C%5C%22)%7Boffset%2B%3D.5*group.options.barChart.width%7D%7Dreturn%7Bwidth%3Awidth%2Coffset%3Aoffset%7D%7D%3BBargraph.getStackedYRange%3Dfunction(combinedData%2CgroupRanges%2CgroupIds%2CgroupLabel%2Corientation)%7Bif(combinedData.length%3E0)%7BcombinedData.sort(function(a%2Cb)%7Bif(a.screen_x%3D%3D%3Db.screen_x)%7Breturn%20a.groupId%3Cb.groupId%3F-1%3A1%7Delse%7Breturn%20a.screen_x-b.screen_x%7D%7D)%3Bvar%20intersections%3D%7B%7D%3BBargraph._getDataIntersections(intersections%2CcombinedData)%3BgroupRanges%5BgroupLabel%5D%3DBargraph._getStackedYRange(intersections%2CcombinedData)%3BgroupRanges%5BgroupLabel%5D.yAxisOrientation%3Dorientation%3BgroupIds.push(groupLabel)%7D%7D%3BBargraph._getStackedYRange%3Dfunction(intersections%2CcombinedData)%7Bvar%20key%3Bvar%20yMin%3DcombinedData%5B0%5D.screen_y%3Bvar%20yMax%3DcombinedData%5B0%5D.screen_y%3Bfor(var%20i%3D0%3Bi%3CcombinedData.length%3Bi%2B%2B)%7Bkey%3DcombinedData%5Bi%5D.screen_x%3Bif(intersections%5Bkey%5D%3D%3D%3Dundefined)%7ByMin%3DyMin%3EcombinedData%5Bi%5D.screen_y%3FcombinedData%5Bi%5D.screen_y%3AyMin%3ByMax%3DyMax%3CcombinedData%5Bi%5D.screen_y%3FcombinedData%5Bi%5D.screen_y%3AyMax%7Delse%7Bif(combinedData%5Bi%5D.screen_y%3C0)%7Bintersections%5Bkey%5D.accumulatedNegative%2B%3DcombinedData%5Bi%5D.screen_y%7Delse%7Bintersections%5Bkey%5D.accumulatedPositive%2B%3DcombinedData%5Bi%5D.screen_y%7D%7D%7Dfor(var%20xpos%20in%20intersections)%7Bif(intersections.hasOwnProperty(xpos))%7ByMin%3DyMin%3Eintersections%5Bxpos%5D.accumulatedNegative%3Fintersections%5Bxpos%5D.accumulatedNegative%3AyMin%3ByMin%3DyMin%3Eintersections%5Bxpos%5D.accumulatedPositive%3Fintersections%5Bxpos%5D.accumulatedPositive%3AyMin%3ByMax%3DyMax%3Cintersections%5Bxpos%5D.accumulatedNegative%3Fintersections%5Bxpos%5D.accumulatedNegative%3AyMax%3ByMax%3DyMax%3Cintersections%5Bxpos%5D.accumulatedPositive%3Fintersections%5Bxpos%5D.accumulatedPositive%3AyMax%7D%7Dreturn%7Bmin%3AyMin%2Cmax%3AyMax%7D%7D%3Bmodule.exports%3DBargraph%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bvar%20DOMutil%3D__webpack_require__(14)%3Bfunction%20Line(groupId%2Coptions)%7B%7DLine.calcPath%3Dfunction(dataset%2Cgroup)%7Bif(dataset!%3Dnull)%7Bif(dataset.length%3E0)%7Bvar%20d%3D%5B%5D%3Bif(group.options.interpolation.enabled%3D%3Dtrue)%7Bd%3DLine._catmullRom(dataset%2Cgroup)%7Delse%7Bd%3DLine._linear(dataset)%7Dreturn%20d%7D%7D%7D%3BLine.drawIcon%3Dfunction(group%2Cx%2Cy%2CiconWidth%2CiconHeight%2Cframework)%7Bvar%20fillHeight%3DiconHeight*.5%3Bvar%20path%2CfillPath%3Bvar%20outline%3DDOMutil.getSVGElement(%5C%5C%5C%22rect%5C%5C%5C%22%2Cframework.svgElements%2Cframework.svg)%3Boutline.setAttributeNS(null%2C%5C%5C%5C%22x%5C%5C%5C%22%2Cx)%3Boutline.setAttributeNS(null%2C%5C%5C%5C%22y%5C%5C%5C%22%2Cy-fillHeight)%3Boutline.setAttributeNS(null%2C%5C%5C%5C%22width%5C%5C%5C%22%2CiconWidth)%3Boutline.setAttributeNS(null%2C%5C%5C%5C%22height%5C%5C%5C%22%2C2*fillHeight)%3Boutline.setAttributeNS(null%2C%5C%5C%5C%22class%5C%5C%5C%22%2C%5C%5C%5C%22vis-outline%5C%5C%5C%22)%3Bpath%3DDOMutil.getSVGElement(%5C%5C%5C%22path%5C%5C%5C%22%2Cframework.svgElements%2Cframework.svg)%3Bpath.setAttributeNS(null%2C%5C%5C%5C%22class%5C%5C%5C%22%2Cgroup.className)%3Bif(group.style!%3D%3Dundefined)%7Bpath.setAttributeNS(null%2C%5C%5C%5C%22style%5C%5C%5C%22%2Cgroup.style)%7Dpath.setAttributeNS(null%2C%5C%5C%5C%22d%5C%5C%5C%22%2C%5C%5C%5C%22M%5C%5C%5C%22%2Bx%2B%5C%5C%5C%22%2C%5C%5C%5C%22%2By%2B%5C%5C%5C%22%20L%5C%5C%5C%22%2B(x%2BiconWidth)%2B%5C%5C%5C%22%2C%5C%5C%5C%22%2By%2B%5C%5C%5C%22%5C%5C%5C%22)%3Bif(group.options.shaded.enabled%3D%3Dtrue)%7BfillPath%3DDOMutil.getSVGElement(%5C%5C%5C%22path%5C%5C%5C%22%2Cframework.svgElements%2Cframework.svg)%3Bif(group.options.shaded.orientation%3D%3D%5C%5C%5C%22top%5C%5C%5C%22)%7BfillPath.setAttributeNS(null%2C%5C%5C%5C%22d%5C%5C%5C%22%2C%5C%5C%5C%22M%5C%5C%5C%22%2Bx%2B%5C%5C%5C%22%2C%20%5C%5C%5C%22%2B(y-fillHeight)%2B%5C%5C%5C%22L%5C%5C%5C%22%2Bx%2B%5C%5C%5C%22%2C%5C%5C%5C%22%2By%2B%5C%5C%5C%22%20L%5C%5C%5C%22%2B(x%2BiconWidth)%2B%5C%5C%5C%22%2C%5C%5C%5C%22%2By%2B%5C%5C%5C%22%20L%5C%5C%5C%22%2B(x%2BiconWidth)%2B%5C%5C%5C%22%2C%5C%5C%5C%22%2B(y-fillHeight))%7Delse%7BfillPath.setAttributeNS(null%2C%5C%5C%5C%22d%5C%5C%5C%22%2C%5C%5C%5C%22M%5C%5C%5C%22%2Bx%2B%5C%5C%5C%22%2C%5C%5C%5C%22%2By%2B%5C%5C%5C%22%20%5C%5C%5C%22%2B%5C%5C%5C%22L%5C%5C%5C%22%2Bx%2B%5C%5C%5C%22%2C%5C%5C%5C%22%2B(y%2BfillHeight)%2B%5C%5C%5C%22%20%5C%5C%5C%22%2B%5C%5C%5C%22L%5C%5C%5C%22%2B(x%2BiconWidth)%2B%5C%5C%5C%22%2C%5C%5C%5C%22%2B(y%2BfillHeight)%2B%5C%5C%5C%22L%5C%5C%5C%22%2B(x%2BiconWidth)%2B%5C%5C%5C%22%2C%5C%5C%5C%22%2By)%7DfillPath.setAttributeNS(null%2C%5C%5C%5C%22class%5C%5C%5C%22%2Cgroup.className%2B%5C%5C%5C%22%20vis-icon-fill%5C%5C%5C%22)%3Bif(group.options.shaded.style!%3D%3Dundefined%26%26group.options.shaded.style!%3D%3D%5C%5C%5C%22%5C%5C%5C%22)%7BfillPath.setAttributeNS(null%2C%5C%5C%5C%22style%5C%5C%5C%22%2Cgroup.options.shaded.style)%7D%7Dif(group.options.drawPoints.enabled%3D%3Dtrue)%7Bvar%20groupTemplate%3D%7Bstyle%3Agroup.options.drawPoints.style%2Cstyles%3Agroup.options.drawPoints.styles%2Csize%3Agroup.options.drawPoints.size%2CclassName%3Agroup.className%7D%3BDOMutil.drawPoint(x%2B.5*iconWidth%2Cy%2CgroupTemplate%2Cframework.svgElements%2Cframework.svg)%7D%7D%3BLine.drawShading%3Dfunction(pathArray%2Cgroup%2CsubPathArray%2Cframework)%7Bif(group.options.shaded.enabled%3D%3Dtrue)%7Bvar%20svgHeight%3DNumber(framework.svg.style.height.replace(%5C%5C%5C%22px%5C%5C%5C%22%2C%5C%5C%5C%22%5C%5C%5C%22))%3Bvar%20fillPath%3DDOMutil.getSVGElement(%5C%5C%5C%22path%5C%5C%5C%22%2Cframework.svgElements%2Cframework.svg)%3Bvar%20type%3D%5C%5C%5C%22L%5C%5C%5C%22%3Bif(group.options.interpolation.enabled%3D%3Dtrue)%7Btype%3D%5C%5C%5C%22C%5C%5C%5C%22%7Dvar%20dFill%3Bvar%20zero%3D0%3Bif(group.options.shaded.orientation%3D%3D%5C%5C%5C%22top%5C%5C%5C%22)%7Bzero%3D0%7Delse%20if(group.options.shaded.orientation%3D%3D%5C%5C%5C%22bottom%5C%5C%5C%22)%7Bzero%3DsvgHeight%7Delse%7Bzero%3DMath.min(Math.max(0%2Cgroup.zeroPosition)%2CsvgHeight)%7Dif(group.options.shaded.orientation%3D%3D%5C%5C%5C%22group%5C%5C%5C%22%26%26subPathArray!%3Dnull%26%26subPathArray!%3Dundefined)%7BdFill%3D%5C%5C%5C%22M%5C%5C%5C%22%2BpathArray%5B0%5D%5B0%5D%2B%5C%5C%5C%22%2C%5C%5C%5C%22%2BpathArray%5B0%5D%5B1%5D%2B%5C%5C%5C%22%20%5C%5C%5C%22%2Bthis.serializePath(pathArray%2Ctype%2Cfalse)%2B%5C%5C%5C%22%20L%5C%5C%5C%22%2BsubPathArray%5BsubPathArray.length-1%5D%5B0%5D%2B%5C%5C%5C%22%2C%5C%5C%5C%22%2BsubPathArray%5BsubPathArray.length-1%5D%5B1%5D%2B%5C%5C%5C%22%20%5C%5C%5C%22%2Bthis.serializePath(subPathArray%2Ctype%2Ctrue)%2BsubPathArray%5B0%5D%5B0%5D%2B%5C%5C%5C%22%2C%5C%5C%5C%22%2BsubPathArray%5B0%5D%5B1%5D%2B%5C%5C%5C%22%20Z%5C%5C%5C%22%7Delse%7BdFill%3D%5C%5C%5C%22M%5C%5C%5C%22%2BpathArray%5B0%5D%5B0%5D%2B%5C%5C%5C%22%2C%5C%5C%5C%22%2BpathArray%5B0%5D%5B1%5D%2B%5C%5C%5C%22%20%5C%5C%5C%22%2Bthis.serializePath(pathArray%2Ctype%2Cfalse)%2B%5C%5C%5C%22%20V%5C%5C%5C%22%2Bzero%2B%5C%5C%5C%22%20H%5C%5C%5C%22%2BpathArray%5B0%5D%5B0%5D%2B%5C%5C%5C%22%20Z%5C%5C%5C%22%7DfillPath.setAttributeNS(null%2C%5C%5C%5C%22class%5C%5C%5C%22%2Cgroup.className%2B%5C%5C%5C%22%20vis-fill%5C%5C%5C%22)%3Bif(group.options.shaded.style!%3D%3Dundefined)%7BfillPath.setAttributeNS(null%2C%5C%5C%5C%22style%5C%5C%5C%22%2Cgroup.options.shaded.style)%7DfillPath.setAttributeNS(null%2C%5C%5C%5C%22d%5C%5C%5C%22%2CdFill)%7D%7D%3BLine.draw%3Dfunction(pathArray%2Cgroup%2Cframework)%7Bif(pathArray!%3Dnull%26%26pathArray!%3Dundefined)%7Bvar%20path%3DDOMutil.getSVGElement(%5C%5C%5C%22path%5C%5C%5C%22%2Cframework.svgElements%2Cframework.svg)%3Bpath.setAttributeNS(null%2C%5C%5C%5C%22class%5C%5C%5C%22%2Cgroup.className)%3Bif(group.style!%3D%3Dundefined)%7Bpath.setAttributeNS(null%2C%5C%5C%5C%22style%5C%5C%5C%22%2Cgroup.style)%7Dvar%20type%3D%5C%5C%5C%22L%5C%5C%5C%22%3Bif(group.options.interpolation.enabled%3D%3Dtrue)%7Btype%3D%5C%5C%5C%22C%5C%5C%5C%22%7Dpath.setAttributeNS(null%2C%5C%5C%5C%22d%5C%5C%5C%22%2C%5C%5C%5C%22M%5C%5C%5C%22%2BpathArray%5B0%5D%5B0%5D%2B%5C%5C%5C%22%2C%5C%5C%5C%22%2BpathArray%5B0%5D%5B1%5D%2B%5C%5C%5C%22%20%5C%5C%5C%22%2Bthis.serializePath(pathArray%2Ctype%2Cfalse))%7D%7D%3BLine.serializePath%3Dfunction(pathArray%2Ctype%2Cinverse)%7Bif(pathArray.length%3C2)%7Breturn%5C%5C%5C%22%5C%5C%5C%22%7Dvar%20d%3Dtype%3Bvar%20i%3Bif(inverse)%7Bfor(i%3DpathArray.length-2%3Bi%3E0%3Bi--)%7Bd%2B%3DpathArray%5Bi%5D%5B0%5D%2B%5C%5C%5C%22%2C%5C%5C%5C%22%2BpathArray%5Bi%5D%5B1%5D%2B%5C%5C%5C%22%20%5C%5C%5C%22%7D%7Delse%7Bfor(i%3D1%3Bi%3CpathArray.length%3Bi%2B%2B)%7Bd%2B%3DpathArray%5Bi%5D%5B0%5D%2B%5C%5C%5C%22%2C%5C%5C%5C%22%2BpathArray%5Bi%5D%5B1%5D%2B%5C%5C%5C%22%20%5C%5C%5C%22%7D%7Dreturn%20d%7D%3BLine._catmullRomUniform%3Dfunction(data)%7Bvar%20p0%2Cp1%2Cp2%2Cp3%2Cbp1%2Cbp2%3Bvar%20d%3D%5B%5D%3Bd.push(%5BMath.round(data%5B0%5D.screen_x)%2CMath.round(data%5B0%5D.screen_y)%5D)%3Bvar%20normalization%3D1%2F6%3Bvar%20length%3Ddata.length%3Bfor(var%20i%3D0%3Bi%3Clength-1%3Bi%2B%2B)%7Bp0%3Di%3D%3D0%3Fdata%5B0%5D%3Adata%5Bi-1%5D%3Bp1%3Ddata%5Bi%5D%3Bp2%3Ddata%5Bi%2B1%5D%3Bp3%3Di%2B2%3Clength%3Fdata%5Bi%2B2%5D%3Ap2%3Bbp1%3D%7Bscreen_x%3A(-p0.screen_x%2B6*p1.screen_x%2Bp2.screen_x)*normalization%2Cscreen_y%3A(-p0.screen_y%2B6*p1.screen_y%2Bp2.screen_y)*normalization%7D%3Bbp2%3D%7Bscreen_x%3A(p1.screen_x%2B6*p2.screen_x-p3.screen_x)*normalization%2Cscreen_y%3A(p1.screen_y%2B6*p2.screen_y-p3.screen_y)*normalization%7D%3Bd.push(%5Bbp1.screen_x%2Cbp1.screen_y%5D)%3Bd.push(%5Bbp2.screen_x%2Cbp2.screen_y%5D)%3Bd.push(%5Bp2.screen_x%2Cp2.screen_y%5D)%7Dreturn%20d%7D%3BLine._catmullRom%3Dfunction(data%2Cgroup)%7Bvar%20alpha%3Dgroup.options.interpolation.alpha%3Bif(alpha%3D%3D0%7C%7Calpha%3D%3D%3Dundefined)%7Breturn%20this._catmullRomUniform(data)%7Delse%7Bvar%20p0%2Cp1%2Cp2%2Cp3%2Cbp1%2Cbp2%2Cd1%2Cd2%2Cd3%2CA%2CB%2CN%2CM%3Bvar%20d3powA%2Cd2powA%2Cd3pow2A%2Cd2pow2A%2Cd1pow2A%2Cd1powA%3Bvar%20d%3D%5B%5D%3Bd.push(%5BMath.round(data%5B0%5D.screen_x)%2CMath.round(data%5B0%5D.screen_y)%5D)%3Bvar%20length%3Ddata.length%3Bfor(var%20i%3D0%3Bi%3Clength-1%3Bi%2B%2B)%7Bp0%3Di%3D%3D0%3Fdata%5B0%5D%3Adata%5Bi-1%5D%3Bp1%3Ddata%5Bi%5D%3Bp2%3Ddata%5Bi%2B1%5D%3Bp3%3Di%2B2%3Clength%3Fdata%5Bi%2B2%5D%3Ap2%3Bd1%3DMath.sqrt(Math.pow(p0.screen_x-p1.screen_x%2C2)%2BMath.pow(p0.screen_y-p1.screen_y%2C2))%3Bd2%3DMath.sqrt(Math.pow(p1.screen_x-p2.screen_x%2C2)%2BMath.pow(p1.screen_y-p2.screen_y%2C2))%3Bd3%3DMath.sqrt(Math.pow(p2.screen_x-p3.screen_x%2C2)%2BMath.pow(p2.screen_y-p3.screen_y%2C2))%3Bd3powA%3DMath.pow(d3%2Calpha)%3Bd3pow2A%3DMath.pow(d3%2C2*alpha)%3Bd2powA%3DMath.pow(d2%2Calpha)%3Bd2pow2A%3DMath.pow(d2%2C2*alpha)%3Bd1powA%3DMath.pow(d1%2Calpha)%3Bd1pow2A%3DMath.pow(d1%2C2*alpha)%3BA%3D2*d1pow2A%2B3*d1powA*d2powA%2Bd2pow2A%3BB%3D2*d3pow2A%2B3*d3powA*d2powA%2Bd2pow2A%3BN%3D3*d1powA*(d1powA%2Bd2powA)%3Bif(N%3E0)%7BN%3D1%2FN%7DM%3D3*d3powA*(d3powA%2Bd2powA)%3Bif(M%3E0)%7BM%3D1%2FM%7Dbp1%3D%7Bscreen_x%3A(-d2pow2A*p0.screen_x%2BA*p1.screen_x%2Bd1pow2A*p2.screen_x)*N%2Cscreen_y%3A(-d2pow2A*p0.screen_y%2BA*p1.screen_y%2Bd1pow2A*p2.screen_y)*N%7D%3Bbp2%3D%7Bscreen_x%3A(d3pow2A*p1.screen_x%2BB*p2.screen_x-d2pow2A*p3.screen_x)*M%2Cscreen_y%3A(d3pow2A*p1.screen_y%2BB*p2.screen_y-d2pow2A*p3.screen_y)*M%7D%3Bif(bp1.screen_x%3D%3D0%26%26bp1.screen_y%3D%3D0)%7Bbp1%3Dp1%7Dif(bp2.screen_x%3D%3D0%26%26bp2.screen_y%3D%3D0)%7Bbp2%3Dp2%7Dd.push(%5Bbp1.screen_x%2Cbp1.screen_y%5D)%3Bd.push(%5Bbp2.screen_x%2Cbp2.screen_y%5D)%3Bd.push(%5Bp2.screen_x%2Cp2.screen_y%5D)%7Dreturn%20d%7D%7D%3BLine._linear%3Dfunction(data)%7Bvar%20d%3D%5B%5D%3Bfor(var%20i%3D0%3Bi%3Cdata.length%3Bi%2B%2B)%7Bd.push(%5Bdata%5Bi%5D.screen_x%2Cdata%5Bi%5D.screen_y%5D)%7Dreturn%20d%7D%3Bmodule.exports%3DLine%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bvar%20_keys%3D__webpack_require__(8)%3Bvar%20_keys2%3D_interopRequireDefault(_keys)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20util%3D__webpack_require__(2)%3Bvar%20DOMutil%3D__webpack_require__(14)%3Bvar%20Component%3D__webpack_require__(16)%3Bfunction%20Legend(body%2Coptions%2Cside%2ClinegraphOptions)%7Bthis.body%3Dbody%3Bthis.defaultOptions%3D%7Benabled%3Afalse%2Cicons%3Atrue%2CiconSize%3A20%2CiconSpacing%3A6%2Cleft%3A%7Bvisible%3Atrue%2Cposition%3A%5C%5C%5C%22top-left%5C%5C%5C%22%7D%2Cright%3A%7Bvisible%3Atrue%2Cposition%3A%5C%5C%5C%22top-right%5C%5C%5C%22%7D%7D%3Bthis.side%3Dside%3Bthis.options%3Dutil.extend(%7B%7D%2Cthis.defaultOptions)%3Bthis.linegraphOptions%3DlinegraphOptions%3Bthis.svgElements%3D%7B%7D%3Bthis.dom%3D%7B%7D%3Bthis.groups%3D%7B%7D%3Bthis.amountOfGroups%3D0%3Bthis._create()%3Bthis.framework%3D%7Bsvg%3Athis.svg%2CsvgElements%3Athis.svgElements%2Coptions%3Athis.options%2Cgroups%3Athis.groups%7D%3Bthis.setOptions(options)%7DLegend.prototype%3Dnew%20Component%3BLegend.prototype.clear%3Dfunction()%7Bthis.groups%3D%7B%7D%3Bthis.amountOfGroups%3D0%7D%3BLegend.prototype.addGroup%3Dfunction(label%2CgraphOptions)%7Bif(graphOptions.options.excludeFromLegend!%3Dtrue)%7Bif(!this.groups.hasOwnProperty(label))%7Bthis.groups%5Blabel%5D%3DgraphOptions%7Dthis.amountOfGroups%2B%3D1%7D%7D%3BLegend.prototype.updateGroup%3Dfunction(label%2CgraphOptions)%7Bthis.groups%5Blabel%5D%3DgraphOptions%7D%3BLegend.prototype.removeGroup%3Dfunction(label)%7Bif(this.groups.hasOwnProperty(label))%7Bdelete%20this.groups%5Blabel%5D%3Bthis.amountOfGroups-%3D1%7D%7D%3BLegend.prototype._create%3Dfunction()%7Bthis.dom.frame%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bthis.dom.frame.className%3D%5C%5C%5C%22vis-legend%5C%5C%5C%22%3Bthis.dom.frame.style.position%3D%5C%5C%5C%22absolute%5C%5C%5C%22%3Bthis.dom.frame.style.top%3D%5C%5C%5C%2210px%5C%5C%5C%22%3Bthis.dom.frame.style.display%3D%5C%5C%5C%22block%5C%5C%5C%22%3Bthis.dom.textArea%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bthis.dom.textArea.className%3D%5C%5C%5C%22vis-legend-text%5C%5C%5C%22%3Bthis.dom.textArea.style.position%3D%5C%5C%5C%22relative%5C%5C%5C%22%3Bthis.dom.textArea.style.top%3D%5C%5C%5C%220px%5C%5C%5C%22%3Bthis.svg%3Ddocument.createElementNS(%5C%5C%5C%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%5C%5C%5C%22%2C%5C%5C%5C%22svg%5C%5C%5C%22)%3Bthis.svg.style.position%3D%5C%5C%5C%22absolute%5C%5C%5C%22%3Bthis.svg.style.top%3D0%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bthis.svg.style.width%3Dthis.options.iconSize%2B5%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bthis.svg.style.height%3D%5C%5C%5C%22100%25%5C%5C%5C%22%3Bthis.dom.frame.appendChild(this.svg)%3Bthis.dom.frame.appendChild(this.dom.textArea)%7D%3BLegend.prototype.hide%3Dfunction()%7Bif(this.dom.frame.parentNode)%7Bthis.dom.frame.parentNode.removeChild(this.dom.frame)%7D%7D%3BLegend.prototype.show%3Dfunction()%7Bif(!this.dom.frame.parentNode)%7Bthis.body.dom.center.appendChild(this.dom.frame)%7D%7D%3BLegend.prototype.setOptions%3Dfunction(options)%7Bvar%20fields%3D%5B%5C%5C%5C%22enabled%5C%5C%5C%22%2C%5C%5C%5C%22orientation%5C%5C%5C%22%2C%5C%5C%5C%22icons%5C%5C%5C%22%2C%5C%5C%5C%22left%5C%5C%5C%22%2C%5C%5C%5C%22right%5C%5C%5C%22%5D%3Butil.selectiveDeepExtend(fields%2Cthis.options%2Coptions)%7D%3BLegend.prototype.redraw%3Dfunction()%7Bvar%20activeGroups%3D0%3Bvar%20groupArray%3D(0%2C_keys2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this.groups)%3BgroupArray.sort(function(a%2Cb)%7Breturn%20a%3Cb%3F-1%3A1%7D)%3Bfor(var%20i%3D0%3Bi%3CgroupArray.length%3Bi%2B%2B)%7Bvar%20groupId%3DgroupArray%5Bi%5D%3Bif(this.groups%5BgroupId%5D.visible%3D%3Dtrue%26%26(this.linegraphOptions.visibility%5BgroupId%5D%3D%3D%3Dundefined%7C%7Cthis.linegraphOptions.visibility%5BgroupId%5D%3D%3Dtrue))%7BactiveGroups%2B%2B%7D%7Dif(this.options%5Bthis.side%5D.visible%3D%3Dfalse%7C%7Cthis.amountOfGroups%3D%3D0%7C%7Cthis.options.enabled%3D%3Dfalse%7C%7CactiveGroups%3D%3D0)%7Bthis.hide()%7Delse%7Bthis.show()%3Bif(this.options%5Bthis.side%5D.position%3D%3D%5C%5C%5C%22top-left%5C%5C%5C%22%7C%7Cthis.options%5Bthis.side%5D.position%3D%3D%5C%5C%5C%22bottom-left%5C%5C%5C%22)%7Bthis.dom.frame.style.left%3D%5C%5C%5C%224px%5C%5C%5C%22%3Bthis.dom.frame.style.textAlign%3D%5C%5C%5C%22left%5C%5C%5C%22%3Bthis.dom.textArea.style.textAlign%3D%5C%5C%5C%22left%5C%5C%5C%22%3Bthis.dom.textArea.style.left%3Dthis.options.iconSize%2B15%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bthis.dom.textArea.style.right%3D%5C%5C%5C%22%5C%5C%5C%22%3Bthis.svg.style.left%3D0%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bthis.svg.style.right%3D%5C%5C%5C%22%5C%5C%5C%22%7Delse%7Bthis.dom.frame.style.right%3D%5C%5C%5C%224px%5C%5C%5C%22%3Bthis.dom.frame.style.textAlign%3D%5C%5C%5C%22right%5C%5C%5C%22%3Bthis.dom.textArea.style.textAlign%3D%5C%5C%5C%22right%5C%5C%5C%22%3Bthis.dom.textArea.style.right%3Dthis.options.iconSize%2B15%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bthis.dom.textArea.style.left%3D%5C%5C%5C%22%5C%5C%5C%22%3Bthis.svg.style.right%3D0%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bthis.svg.style.left%3D%5C%5C%5C%22%5C%5C%5C%22%7Dif(this.options%5Bthis.side%5D.position%3D%3D%5C%5C%5C%22top-left%5C%5C%5C%22%7C%7Cthis.options%5Bthis.side%5D.position%3D%3D%5C%5C%5C%22top-right%5C%5C%5C%22)%7Bthis.dom.frame.style.top%3D4-Number(this.body.dom.center.style.top.replace(%5C%5C%5C%22px%5C%5C%5C%22%2C%5C%5C%5C%22%5C%5C%5C%22))%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bthis.dom.frame.style.bottom%3D%5C%5C%5C%22%5C%5C%5C%22%7Delse%7Bvar%20scrollableHeight%3Dthis.body.domProps.center.height-this.body.domProps.centerContainer.height%3Bthis.dom.frame.style.bottom%3D4%2BscrollableHeight%2BNumber(this.body.dom.center.style.top.replace(%5C%5C%5C%22px%5C%5C%5C%22%2C%5C%5C%5C%22%5C%5C%5C%22))%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bthis.dom.frame.style.top%3D%5C%5C%5C%22%5C%5C%5C%22%7Dif(this.options.icons%3D%3Dfalse)%7Bthis.dom.frame.style.width%3Dthis.dom.textArea.offsetWidth%2B10%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bthis.dom.textArea.style.right%3D%5C%5C%5C%22%5C%5C%5C%22%3Bthis.dom.textArea.style.left%3D%5C%5C%5C%22%5C%5C%5C%22%3Bthis.svg.style.width%3D%5C%5C%5C%220px%5C%5C%5C%22%7Delse%7Bthis.dom.frame.style.width%3Dthis.options.iconSize%2B15%2Bthis.dom.textArea.offsetWidth%2B10%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bthis.drawLegendIcons()%7Dvar%20content%3D%5C%5C%5C%22%5C%5C%5C%22%3Bfor(i%3D0%3Bi%3CgroupArray.length%3Bi%2B%2B)%7BgroupId%3DgroupArray%5Bi%5D%3Bif(this.groups%5BgroupId%5D.visible%3D%3Dtrue%26%26(this.linegraphOptions.visibility%5BgroupId%5D%3D%3D%3Dundefined%7C%7Cthis.linegraphOptions.visibility%5BgroupId%5D%3D%3Dtrue))%7Bcontent%2B%3Dthis.groups%5BgroupId%5D.content%2B%5C%5C%5C%22%3Cbr%20%2F%3E%5C%5C%5C%22%7D%7Dthis.dom.textArea.innerHTML%3Dcontent%3Bthis.dom.textArea.style.lineHeight%3D.75*this.options.iconSize%2Bthis.options.iconSpacing%2B%5C%5C%5C%22px%5C%5C%5C%22%7D%7D%3BLegend.prototype.drawLegendIcons%3Dfunction()%7Bif(this.dom.frame.parentNode)%7Bvar%20groupArray%3D(0%2C_keys2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this.groups)%3BgroupArray.sort(function(a%2Cb)%7Breturn%20a%3Cb%3F-1%3A1%7D)%3BDOMutil.resetElements(this.svgElements)%3Bvar%20padding%3Dwindow.getComputedStyle(this.dom.frame).paddingTop%3Bvar%20iconOffset%3DNumber(padding.replace(%5C%5C%5C%22px%5C%5C%5C%22%2C%5C%5C%5C%22%5C%5C%5C%22))%3Bvar%20x%3DiconOffset%3Bvar%20iconWidth%3Dthis.options.iconSize%3Bvar%20iconHeight%3D.75*this.options.iconSize%3Bvar%20y%3DiconOffset%2B.5*iconHeight%2B3%3Bthis.svg.style.width%3DiconWidth%2B5%2BiconOffset%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bfor(var%20i%3D0%3Bi%3CgroupArray.length%3Bi%2B%2B)%7Bvar%20groupId%3DgroupArray%5Bi%5D%3Bif(this.groups%5BgroupId%5D.visible%3D%3Dtrue%26%26(this.linegraphOptions.visibility%5BgroupId%5D%3D%3D%3Dundefined%7C%7Cthis.linegraphOptions.visibility%5BgroupId%5D%3D%3Dtrue))%7Bthis.groups%5BgroupId%5D.getLegend(iconWidth%2CiconHeight%2Cthis.framework%2Cx%2Cy)%3By%2B%3DiconHeight%2Bthis.options.iconSpacing%7D%7D%7D%7D%3Bmodule.exports%3DLegend%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20string%3D%5C%5C%5C%22string%5C%5C%5C%22%3Bvar%20bool%3D%5C%5C%5C%22boolean%5C%5C%5C%22%3Bvar%20number%3D%5C%5C%5C%22number%5C%5C%5C%22%3Bvar%20array%3D%5C%5C%5C%22array%5C%5C%5C%22%3Bvar%20date%3D%5C%5C%5C%22date%5C%5C%5C%22%3Bvar%20object%3D%5C%5C%5C%22object%5C%5C%5C%22%3Bvar%20dom%3D%5C%5C%5C%22dom%5C%5C%5C%22%3Bvar%20moment%3D%5C%5C%5C%22moment%5C%5C%5C%22%3Bvar%20any%3D%5C%5C%5C%22any%5C%5C%5C%22%3Bvar%20allOptions%3D%7Bconfigure%3A%7Benabled%3A%7Bboolean%3Abool%7D%2Cfilter%3A%7Bboolean%3Abool%2Cfunction%3A%5C%5C%5C%22function%5C%5C%5C%22%7D%2Ccontainer%3A%7Bdom%3Adom%7D%2C__type__%3A%7Bobject%3Aobject%2Cboolean%3Abool%2Cfunction%3A%5C%5C%5C%22function%5C%5C%5C%22%7D%7D%2CyAxisOrientation%3A%7Bstring%3A%5B%5C%5C%5C%22left%5C%5C%5C%22%2C%5C%5C%5C%22right%5C%5C%5C%22%5D%7D%2CdefaultGroup%3A%7Bstring%3Astring%7D%2Csort%3A%7Bboolean%3Abool%7D%2Csampling%3A%7Bboolean%3Abool%7D%2Cstack%3A%7Bboolean%3Abool%7D%2CgraphHeight%3A%7Bstring%3Astring%2Cnumber%3Anumber%7D%2Cshaded%3A%7Benabled%3A%7Bboolean%3Abool%7D%2Corientation%3A%7Bstring%3A%5B%5C%5C%5C%22bottom%5C%5C%5C%22%2C%5C%5C%5C%22top%5C%5C%5C%22%2C%5C%5C%5C%22zero%5C%5C%5C%22%2C%5C%5C%5C%22group%5C%5C%5C%22%5D%7D%2CgroupId%3A%7Bobject%3Aobject%7D%2C__type__%3A%7Bboolean%3Abool%2Cobject%3Aobject%7D%7D%2Cstyle%3A%7Bstring%3A%5B%5C%5C%5C%22line%5C%5C%5C%22%2C%5C%5C%5C%22bar%5C%5C%5C%22%2C%5C%5C%5C%22points%5C%5C%5C%22%5D%7D%2CbarChart%3A%7Bwidth%3A%7Bnumber%3Anumber%7D%2CminWidth%3A%7Bnumber%3Anumber%7D%2CsideBySide%3A%7Bboolean%3Abool%7D%2Calign%3A%7Bstring%3A%5B%5C%5C%5C%22left%5C%5C%5C%22%2C%5C%5C%5C%22center%5C%5C%5C%22%2C%5C%5C%5C%22right%5C%5C%5C%22%5D%7D%2C__type__%3A%7Bobject%3Aobject%7D%7D%2Cinterpolation%3A%7Benabled%3A%7Bboolean%3Abool%7D%2Cparametrization%3A%7Bstring%3A%5B%5C%5C%5C%22centripetal%5C%5C%5C%22%2C%5C%5C%5C%22chordal%5C%5C%5C%22%2C%5C%5C%5C%22uniform%5C%5C%5C%22%5D%7D%2Calpha%3A%7Bnumber%3Anumber%7D%2C__type__%3A%7Bobject%3Aobject%2Cboolean%3Abool%7D%7D%2CdrawPoints%3A%7Benabled%3A%7Bboolean%3Abool%7D%2ConRender%3A%7Bfunction%3A%5C%5C%5C%22function%5C%5C%5C%22%7D%2Csize%3A%7Bnumber%3Anumber%7D%2Cstyle%3A%7Bstring%3A%5B%5C%5C%5C%22square%5C%5C%5C%22%2C%5C%5C%5C%22circle%5C%5C%5C%22%5D%7D%2C__type__%3A%7Bobject%3Aobject%2Cboolean%3Abool%2Cfunction%3A%5C%5C%5C%22function%5C%5C%5C%22%7D%7D%2CdataAxis%3A%7BshowMinorLabels%3A%7Bboolean%3Abool%7D%2CshowMajorLabels%3A%7Bboolean%3Abool%7D%2Cicons%3A%7Bboolean%3Abool%7D%2Cwidth%3A%7Bstring%3Astring%2Cnumber%3Anumber%7D%2Cvisible%3A%7Bboolean%3Abool%7D%2CalignZeros%3A%7Bboolean%3Abool%7D%2Cleft%3A%7Brange%3A%7Bmin%3A%7B%5C%5Cnnumber%3Anumber%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2Cmax%3A%7Bnumber%3Anumber%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2C__type__%3A%7Bobject%3Aobject%7D%7D%2Cformat%3A%7Bfunction%3A%5C%5C%5C%22function%5C%5C%5C%22%7D%2Ctitle%3A%7Btext%3A%7Bstring%3Astring%2Cnumber%3Anumber%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2Cstyle%3A%7Bstring%3Astring%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2C__type__%3A%7Bobject%3Aobject%7D%7D%2C__type__%3A%7Bobject%3Aobject%7D%7D%2Cright%3A%7Brange%3A%7Bmin%3A%7Bnumber%3Anumber%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2Cmax%3A%7Bnumber%3Anumber%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2C__type__%3A%7Bobject%3Aobject%7D%7D%2Cformat%3A%7Bfunction%3A%5C%5C%5C%22function%5C%5C%5C%22%7D%2Ctitle%3A%7Btext%3A%7Bstring%3Astring%2Cnumber%3Anumber%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2Cstyle%3A%7Bstring%3Astring%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2C__type__%3A%7Bobject%3Aobject%7D%7D%2C__type__%3A%7Bobject%3Aobject%7D%7D%2C__type__%3A%7Bobject%3Aobject%7D%7D%2Clegend%3A%7Benabled%3A%7Bboolean%3Abool%7D%2Cicons%3A%7Bboolean%3Abool%7D%2Cleft%3A%7Bvisible%3A%7Bboolean%3Abool%7D%2Cposition%3A%7Bstring%3A%5B%5C%5C%5C%22top-right%5C%5C%5C%22%2C%5C%5C%5C%22bottom-right%5C%5C%5C%22%2C%5C%5C%5C%22top-left%5C%5C%5C%22%2C%5C%5C%5C%22bottom-left%5C%5C%5C%22%5D%7D%2C__type__%3A%7Bobject%3Aobject%7D%7D%2Cright%3A%7Bvisible%3A%7Bboolean%3Abool%7D%2Cposition%3A%7Bstring%3A%5B%5C%5C%5C%22top-right%5C%5C%5C%22%2C%5C%5C%5C%22bottom-right%5C%5C%5C%22%2C%5C%5C%5C%22top-left%5C%5C%5C%22%2C%5C%5C%5C%22bottom-left%5C%5C%5C%22%5D%7D%2C__type__%3A%7Bobject%3Aobject%7D%7D%2C__type__%3A%7Bobject%3Aobject%2Cboolean%3Abool%7D%7D%2Cgroups%3A%7Bvisibility%3A%7Bany%3Aany%7D%2C__type__%3A%7Bobject%3Aobject%7D%7D%2CautoResize%3A%7Bboolean%3Abool%7D%2CthrottleRedraw%3A%7Bnumber%3Anumber%7D%2CclickToUse%3A%7Bboolean%3Abool%7D%2Cend%3A%7Bnumber%3Anumber%2Cdate%3Adate%2Cstring%3Astring%2Cmoment%3Amoment%7D%2Cformat%3A%7BminorLabels%3A%7Bmillisecond%3A%7Bstring%3Astring%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2Csecond%3A%7Bstring%3Astring%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2Cminute%3A%7Bstring%3Astring%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2Chour%3A%7Bstring%3Astring%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2Cweekday%3A%7Bstring%3Astring%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2Cday%3A%7Bstring%3Astring%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2Cmonth%3A%7Bstring%3Astring%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2Cyear%3A%7Bstring%3Astring%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2C__type__%3A%7Bobject%3Aobject%7D%7D%2CmajorLabels%3A%7Bmillisecond%3A%7Bstring%3Astring%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2Csecond%3A%7Bstring%3Astring%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2Cminute%3A%7Bstring%3Astring%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2Chour%3A%7Bstring%3Astring%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2Cweekday%3A%7Bstring%3Astring%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2Cday%3A%7Bstring%3Astring%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2Cmonth%3A%7Bstring%3Astring%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2Cyear%3A%7Bstring%3Astring%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2C__type__%3A%7Bobject%3Aobject%7D%7D%2C__type__%3A%7Bobject%3Aobject%7D%7D%2Cmoment%3A%7Bfunction%3A%5C%5C%5C%22function%5C%5C%5C%22%7D%2Cheight%3A%7Bstring%3Astring%2Cnumber%3Anumber%7D%2ChiddenDates%3A%7Bstart%3A%7Bdate%3Adate%2Cnumber%3Anumber%2Cstring%3Astring%2Cmoment%3Amoment%7D%2Cend%3A%7Bdate%3Adate%2Cnumber%3Anumber%2Cstring%3Astring%2Cmoment%3Amoment%7D%2Crepeat%3A%7Bstring%3Astring%7D%2C__type__%3A%7Bobject%3Aobject%2Carray%3Aarray%7D%7D%2Clocale%3A%7Bstring%3Astring%7D%2Clocales%3A%7B__any__%3A%7Bany%3Aany%7D%2C__type__%3A%7Bobject%3Aobject%7D%7D%2Cmax%3A%7Bdate%3Adate%2Cnumber%3Anumber%2Cstring%3Astring%2Cmoment%3Amoment%7D%2CmaxHeight%3A%7Bnumber%3Anumber%2Cstring%3Astring%7D%2CmaxMinorChars%3A%7Bnumber%3Anumber%7D%2Cmin%3A%7Bdate%3Adate%2Cnumber%3Anumber%2Cstring%3Astring%2Cmoment%3Amoment%7D%2CminHeight%3A%7Bnumber%3Anumber%2Cstring%3Astring%7D%2Cmoveable%3A%7Bboolean%3Abool%7D%2Cmultiselect%3A%7Bboolean%3Abool%7D%2Corientation%3A%7Bstring%3Astring%7D%2CshowCurrentTime%3A%7Bboolean%3Abool%7D%2CshowMajorLabels%3A%7Bboolean%3Abool%7D%2CshowMinorLabels%3A%7Bboolean%3Abool%7D%2Cstart%3A%7Bdate%3Adate%2Cnumber%3Anumber%2Cstring%3Astring%2Cmoment%3Amoment%7D%2CtimeAxis%3A%7Bscale%3A%7Bstring%3Astring%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2Cstep%3A%7Bnumber%3Anumber%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2C__type__%3A%7Bobject%3Aobject%7D%7D%2Cwidth%3A%7Bstring%3Astring%2Cnumber%3Anumber%7D%2Czoomable%3A%7Bboolean%3Abool%7D%2CzoomKey%3A%7Bstring%3A%5B%5C%5C%5C%22ctrlKey%5C%5C%5C%22%2C%5C%5C%5C%22altKey%5C%5C%5C%22%2C%5C%5C%5C%22metaKey%5C%5C%5C%22%2C%5C%5C%5C%22%5C%5C%5C%22%5D%7D%2CzoomMax%3A%7Bnumber%3Anumber%7D%2CzoomMin%3A%7Bnumber%3Anumber%7D%2CzIndex%3A%7Bnumber%3Anumber%7D%2C__type__%3A%7Bobject%3Aobject%7D%7D%3Bvar%20configureOptions%3D%7Bglobal%3A%7Bsort%3Atrue%2Csampling%3Atrue%2Cstack%3Afalse%2Cshaded%3A%7Benabled%3Afalse%2Corientation%3A%5B%5C%5C%5C%22zero%5C%5C%5C%22%2C%5C%5C%5C%22top%5C%5C%5C%22%2C%5C%5C%5C%22bottom%5C%5C%5C%22%2C%5C%5C%5C%22group%5C%5C%5C%22%5D%7D%2Cstyle%3A%5B%5C%5C%5C%22line%5C%5C%5C%22%2C%5C%5C%5C%22bar%5C%5C%5C%22%2C%5C%5C%5C%22points%5C%5C%5C%22%5D%2CbarChart%3A%7Bwidth%3A%5B50%2C5%2C100%2C5%5D%2CminWidth%3A%5B50%2C5%2C100%2C5%5D%2CsideBySide%3Afalse%2Calign%3A%5B%5C%5C%5C%22left%5C%5C%5C%22%2C%5C%5C%5C%22center%5C%5C%5C%22%2C%5C%5C%5C%22right%5C%5C%5C%22%5D%7D%2Cinterpolation%3A%7Benabled%3Atrue%2Cparametrization%3A%5B%5C%5C%5C%22centripetal%5C%5C%5C%22%2C%5C%5C%5C%22chordal%5C%5C%5C%22%2C%5C%5C%5C%22uniform%5C%5C%5C%22%5D%7D%2CdrawPoints%3A%7Benabled%3Atrue%2Csize%3A%5B6%2C2%2C30%2C1%5D%2Cstyle%3A%5B%5C%5C%5C%22square%5C%5C%5C%22%2C%5C%5C%5C%22circle%5C%5C%5C%22%5D%7D%2CdataAxis%3A%7BshowMinorLabels%3Atrue%2CshowMajorLabels%3Atrue%2Cicons%3Afalse%2Cwidth%3A%5B40%2C0%2C200%2C1%5D%2Cvisible%3Atrue%2CalignZeros%3Atrue%2Cleft%3A%7Btitle%3A%7Btext%3A%5C%5C%5C%22%5C%5C%5C%22%2Cstyle%3A%5C%5C%5C%22%5C%5C%5C%22%7D%7D%2Cright%3A%7Btitle%3A%7Btext%3A%5C%5C%5C%22%5C%5C%5C%22%2Cstyle%3A%5C%5C%5C%22%5C%5C%5C%22%7D%7D%7D%2Clegend%3A%7Benabled%3Afalse%2Cicons%3Atrue%2Cleft%3A%7Bvisible%3Atrue%2Cposition%3A%5B%5C%5C%5C%22top-right%5C%5C%5C%22%2C%5C%5C%5C%22bottom-right%5C%5C%5C%22%2C%5C%5C%5C%22top-left%5C%5C%5C%22%2C%5C%5C%5C%22bottom-left%5C%5C%5C%22%5D%7D%2Cright%3A%7Bvisible%3Atrue%2Cposition%3A%5B%5C%5C%5C%22top-right%5C%5C%5C%22%2C%5C%5C%5C%22bottom-right%5C%5C%5C%22%2C%5C%5C%5C%22top-left%5C%5C%5C%22%2C%5C%5C%5C%22bottom-left%5C%5C%5C%22%5D%7D%7D%2CautoResize%3Atrue%2CclickToUse%3Afalse%2Cend%3A%5C%5C%5C%22%5C%5C%5C%22%2Cformat%3A%7BminorLabels%3A%7Bmillisecond%3A%5C%5C%5C%22SSS%5C%5C%5C%22%2Csecond%3A%5C%5C%5C%22s%5C%5C%5C%22%2Cminute%3A%5C%5C%5C%22HH%3Amm%5C%5C%5C%22%2Chour%3A%5C%5C%5C%22HH%3Amm%5C%5C%5C%22%2Cweekday%3A%5C%5C%5C%22ddd%20D%5C%5C%5C%22%2Cday%3A%5C%5C%5C%22D%5C%5C%5C%22%2Cmonth%3A%5C%5C%5C%22MMM%5C%5C%5C%22%2Cyear%3A%5C%5C%5C%22YYYY%5C%5C%5C%22%7D%2CmajorLabels%3A%7Bmillisecond%3A%5C%5C%5C%22HH%3Amm%3Ass%5C%5C%5C%22%2Csecond%3A%5C%5C%5C%22D%20MMMM%20HH%3Amm%5C%5C%5C%22%2Cminute%3A%5C%5C%5C%22ddd%20D%20MMMM%5C%5C%5C%22%2Chour%3A%5C%5C%5C%22ddd%20D%20MMMM%5C%5C%5C%22%2Cweekday%3A%5C%5C%5C%22MMMM%20YYYY%5C%5C%5C%22%2Cday%3A%5C%5C%5C%22MMMM%20YYYY%5C%5C%5C%22%2Cmonth%3A%5C%5C%5C%22YYYY%5C%5C%5C%22%2Cyear%3A%5C%5C%5C%22%5C%5C%5C%22%7D%7D%2Cheight%3A%5C%5C%5C%22%5C%5C%5C%22%2Clocale%3A%5C%5C%5C%22%5C%5C%5C%22%2Cmax%3A%5C%5C%5C%22%5C%5C%5C%22%2CmaxHeight%3A%5C%5C%5C%22%5C%5C%5C%22%2CmaxMinorChars%3A%5B7%2C0%2C20%2C1%5D%2Cmin%3A%5C%5C%5C%22%5C%5C%5C%22%2CminHeight%3A%5C%5C%5C%22%5C%5C%5C%22%2Cmoveable%3Atrue%2Corientation%3A%5B%5C%5C%5C%22both%5C%5C%5C%22%2C%5C%5C%5C%22bottom%5C%5C%5C%22%2C%5C%5C%5C%22top%5C%5C%5C%22%5D%2CshowCurrentTime%3Afalse%2CshowMajorLabels%3Atrue%2CshowMinorLabels%3Atrue%2Cstart%3A%5C%5C%5C%22%5C%5C%5C%22%2Cwidth%3A%5C%5C%5C%22100%25%5C%5C%5C%22%2Czoomable%3Atrue%2CzoomKey%3A%5B%5C%5C%5C%22ctrlKey%5C%5C%5C%22%2C%5C%5C%5C%22altKey%5C%5C%5C%22%2C%5C%5C%5C%22metaKey%5C%5C%5C%22%2C%5C%5C%5C%22%5C%5C%5C%22%5D%2CzoomMax%3A%5B31536e10%2C10%2C31536e10%2C1%5D%2CzoomMin%3A%5B10%2C10%2C31536e10%2C1%5D%2CzIndex%3A0%7D%7D%3Bexports.allOptions%3DallOptions%3Bexports.configureOptions%3DconfigureOptions%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bvar%20_create%3D__webpack_require__(29)%3Bvar%20_create2%3D_interopRequireDefault(_create)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dfunction%20parseDOT(data)%7Bdot%3Ddata%3Breturn%20parseGraph()%7Dvar%20NODE_ATTR_MAPPING%3D%7Bfontsize%3A%5C%5C%5C%22font.size%5C%5C%5C%22%2Cfontcolor%3A%5C%5C%5C%22font.color%5C%5C%5C%22%2Clabelfontcolor%3A%5C%5C%5C%22font.color%5C%5C%5C%22%2Cfontname%3A%5C%5C%5C%22font.face%5C%5C%5C%22%2Ccolor%3A%5B%5C%5C%5C%22color.border%5C%5C%5C%22%2C%5C%5C%5C%22color.background%5C%5C%5C%22%5D%2Cfillcolor%3A%5C%5C%5C%22color.background%5C%5C%5C%22%2Ctooltip%3A%5C%5C%5C%22title%5C%5C%5C%22%2Clabeltooltip%3A%5C%5C%5C%22title%5C%5C%5C%22%7D%3Bvar%20EDGE_ATTR_MAPPING%3D(0%2C_create2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(NODE_ATTR_MAPPING)%3BEDGE_ATTR_MAPPING.color%3D%5C%5C%5C%22color.color%5C%5C%5C%22%3BEDGE_ATTR_MAPPING.style%3D%5C%5C%5C%22dashes%5C%5C%5C%22%3Bvar%20TOKENTYPE%3D%7BNULL%3A0%2CDELIMITER%3A1%2CIDENTIFIER%3A2%2CUNKNOWN%3A3%7D%3Bvar%20DELIMITERS%3D%7B%5C%5C%5C%22%7B%5C%5C%5C%22%3Atrue%2C%5C%5C%5C%22%7D%5C%5C%5C%22%3Atrue%2C%5C%5C%5C%22%5B%5C%5C%5C%22%3Atrue%2C%5C%5C%5C%22%5D%5C%5C%5C%22%3Atrue%2C%5C%5C%5C%22%3B%5C%5C%5C%22%3Atrue%2C%5C%5C%5C%22%3D%5C%5C%5C%22%3Atrue%2C%5C%5C%5C%22%2C%5C%5C%5C%22%3Atrue%2C%5C%5C%5C%22-%3E%5C%5C%5C%22%3Atrue%2C%5C%5C%5C%22--%5C%5C%5C%22%3Atrue%7D%3Bvar%20dot%3D%5C%5C%5C%22%5C%5C%5C%22%3Bvar%20index%3D0%3Bvar%20c%3D%5C%5C%5C%22%5C%5C%5C%22%3Bvar%20token%3D%5C%5C%5C%22%5C%5C%5C%22%3Bvar%20tokenType%3DTOKENTYPE.NULL%3Bfunction%20first()%7Bindex%3D0%3Bc%3Ddot.charAt(0)%7Dfunction%20next()%7Bindex%2B%2B%3Bc%3Ddot.charAt(index)%7Dfunction%20nextPreview()%7Breturn%20dot.charAt(index%2B1)%7Dvar%20regexAlphaNumeric%3D%2F%5Ba-zA-Z_0-9.%3A%23%5D%2F%3Bfunction%20isAlphaNumeric(c)%7Breturn%20regexAlphaNumeric.test(c)%7Dfunction%20merge(a%2Cb)%7Bif(!a)%7Ba%3D%7B%7D%7Dif(b)%7Bfor(var%20name%20in%20b)%7Bif(b.hasOwnProperty(name))%7Ba%5Bname%5D%3Db%5Bname%5D%7D%7D%7Dreturn%20a%7Dfunction%20setValue(obj%2Cpath%2Cvalue)%7Bvar%20keys%3Dpath.split(%5C%5C%5C%22.%5C%5C%5C%22)%3Bvar%20o%3Dobj%3Bwhile(keys.length)%7Bvar%20key%3Dkeys.shift()%3Bif(keys.length)%7Bif(!o%5Bkey%5D)%7Bo%5Bkey%5D%3D%7B%7D%7Do%3Do%5Bkey%5D%7Delse%7Bo%5Bkey%5D%3Dvalue%7D%7D%7Dfunction%20addNode(graph%2Cnode)%7Bvar%20i%2Clen%3Bvar%20current%3Dnull%3Bvar%20graphs%3D%5Bgraph%5D%3Bvar%20root%3Dgraph%3Bwhile(root.parent)%7Bgraphs.push(root.parent)%3Broot%3Droot.parent%7Dif(root.nodes)%7Bfor(i%3D0%2Clen%3Droot.nodes.length%3Bi%3Clen%3Bi%2B%2B)%7Bif(node.id%3D%3D%3Droot.nodes%5Bi%5D.id)%7Bcurrent%3Droot.nodes%5Bi%5D%3Bbreak%7D%7D%7Dif(!current)%7Bcurrent%3D%7Bid%3Anode.id%7D%3Bif(graph.node)%7Bcurrent.attr%3Dmerge(current.attr%2Cgraph.node)%7D%7Dfor(i%3Dgraphs.length-1%3Bi%3E%3D0%3Bi--)%7Bvar%20g%3Dgraphs%5Bi%5D%3Bif(!g.nodes)%7Bg.nodes%3D%5B%5D%7Dif(g.nodes.indexOf(current)%3D%3D%3D-1)%7Bg.nodes.push(current)%7D%7Dif(node.attr)%7Bcurrent.attr%3Dmerge(current.attr%2Cnode.attr)%7D%7Dfunction%20addEdge(graph%2Cedge)%7Bif(!graph.edges)%7Bgraph.edges%3D%5B%5D%7Dgraph.edges.push(edge)%3Bif(graph.edge)%7Bvar%20attr%3Dmerge(%7B%7D%2Cgraph.edge)%3Bedge.attr%3Dmerge(attr%2Cedge.attr)%7D%7Dfunction%20createEdge(graph%2Cfrom%2Cto%2Ctype%2Cattr)%7Bvar%20edge%3D%7Bfrom%3Afrom%2Cto%3Ato%2Ctype%3Atype%7D%3Bif(graph.edge)%7Bedge.attr%3Dmerge(%7B%7D%2Cgraph.edge)%7Dedge.attr%3Dmerge(edge.attr%7C%7C%7B%7D%2Cattr)%3Breturn%20edge%7Dfunction%20getToken()%7BtokenType%3DTOKENTYPE.NULL%3Btoken%3D%5C%5C%5C%22%5C%5C%5C%22%3Bwhile(c%3D%3D%3D%5C%5C%5C%22%20%5C%5C%5C%22%7C%7Cc%3D%3D%3D%5C%5C%5C%22%5C%5C%5C%5Ct%5C%5C%5C%22%7C%7Cc%3D%3D%3D%5C%5C%5C%22%5C%5C%5C%5Cn%5C%5C%5C%22%7C%7Cc%3D%3D%3D%5C%5C%5C%22%5C%5C%5C%5Cr%5C%5C%5C%22)%7Bnext()%7Ddo%7Bvar%20isComment%3Dfalse%3Bif(c%3D%3D%3D%5C%5C%5C%22%23%5C%5C%5C%22)%7Bvar%20i%3Dindex-1%3Bwhile(dot.charAt(i)%3D%3D%3D%5C%5C%5C%22%20%5C%5C%5C%22%7C%7Cdot.charAt(i)%3D%3D%3D%5C%5C%5C%22%5C%5C%5C%5Ct%5C%5C%5C%22)%7Bi--%7Dif(dot.charAt(i)%3D%3D%3D%5C%5C%5C%22%5C%5C%5C%5Cn%5C%5C%5C%22%7C%7Cdot.charAt(i)%3D%3D%3D%5C%5C%5C%22%5C%5C%5C%22)%7Bwhile(c!%3D%5C%5C%5C%22%5C%5C%5C%22%26%26c!%3D%5C%5C%5C%22%5C%5C%5C%5Cn%5C%5C%5C%22)%7Bnext()%7DisComment%3Dtrue%7D%7Dif(c%3D%3D%3D%5C%5C%5C%22%2F%5C%5C%5C%22%26%26nextPreview()%3D%3D%3D%5C%5C%5C%22%2F%5C%5C%5C%22)%7Bwhile(c!%3D%5C%5C%5C%22%5C%5C%5C%22%26%26c!%3D%5C%5C%5C%22%5C%5C%5C%5Cn%5C%5C%5C%22)%7Bnext()%7DisComment%3Dtrue%7Dif(c%3D%3D%3D%5C%5C%5C%22%2F%5C%5C%5C%22%26%26nextPreview()%3D%3D%3D%5C%5C%5C%22*%5C%5C%5C%22)%7Bwhile(c!%3D%5C%5C%5C%22%5C%5C%5C%22)%7Bif(c%3D%3D%3D%5C%5C%5C%22*%5C%5C%5C%22%26%26nextPreview()%3D%3D%3D%5C%5C%5C%22%2F%5C%5C%5C%22)%7Bnext()%3Bnext()%3Bbreak%7Delse%7Bnext()%7D%7DisComment%3Dtrue%7Dwhile(c%3D%3D%3D%5C%5C%5C%22%20%5C%5C%5C%22%7C%7Cc%3D%3D%3D%5C%5C%5C%22%5C%5C%5C%5Ct%5C%5C%5C%22%7C%7Cc%3D%3D%3D%5C%5C%5C%22%5C%5C%5C%5Cn%5C%5C%5C%22%7C%7Cc%3D%3D%3D%5C%5C%5C%22%5C%5C%5C%5Cr%5C%5C%5C%22)%7Bnext()%7D%7Dwhile(isComment)%3Bif(c%3D%3D%3D%5C%5C%5C%22%5C%5C%5C%22)%7BtokenType%3DTOKENTYPE.DELIMITER%3Breturn%7Dvar%20c2%3Dc%2BnextPreview()%3Bif(DELIMITERS%5Bc2%5D)%7BtokenType%3DTOKENTYPE.DELIMITER%3Btoken%3Dc2%3Bnext()%3Bnext()%3Breturn%7Dif(DELIMITERS%5Bc%5D)%7BtokenType%3DTOKENTYPE.DELIMITER%3Btoken%3Dc%3Bnext()%3Breturn%7Dif(isAlphaNumeric(c)%7C%7Cc%3D%3D%3D%5C%5C%5C%22-%5C%5C%5C%22)%7Btoken%2B%3Dc%3Bnext()%3Bwhile(isAlphaNumeric(c))%7Btoken%2B%3Dc%3Bnext()%7Dif(token%3D%3D%3D%5C%5C%5C%22false%5C%5C%5C%22)%7Btoken%3Dfalse%7Delse%20if(token%3D%3D%3D%5C%5C%5C%22true%5C%5C%5C%22)%7Btoken%3Dtrue%7Delse%20if(!isNaN(Number(token)))%7Btoken%3DNumber(token)%7DtokenType%3DTOKENTYPE.IDENTIFIER%3Breturn%7Dif(c%3D%3D%3D'%5C%5C%5C%22')%7Bnext()%3Bwhile(c!%3D%5C%5C%5C%22%5C%5C%5C%22%26%26(c!%3D'%5C%5C%5C%22'%7C%7Cc%3D%3D%3D'%5C%5C%5C%22'%26%26nextPreview()%3D%3D%3D'%5C%5C%5C%22'))%7Bif(c%3D%3D%3D'%5C%5C%5C%22')%7Btoken%2B%3Dc%3Bnext()%7Delse%20if(c%3D%3D%3D%5C%5C%5C%22%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%22%26%26nextPreview()%3D%3D%3D%5C%5C%5C%22n%5C%5C%5C%22)%7Btoken%2B%3D%5C%5C%5C%22%5C%5C%5C%5Cn%5C%5C%5C%22%3Bnext()%7Delse%7Btoken%2B%3Dc%7Dnext()%7Dif(c!%3D'%5C%5C%5C%22')%7Bthrow%20newSyntaxError('End%20of%20string%20%5C%5C%5C%22%20expected')%7Dnext()%3BtokenType%3DTOKENTYPE.IDENTIFIER%3Breturn%7DtokenType%3DTOKENTYPE.UNKNOWN%3Bwhile(c!%3D%5C%5C%5C%22%5C%5C%5C%22)%7Btoken%2B%3Dc%3Bnext()%7Dthrow%20new%20SyntaxError('Syntax%20error%20in%20part%20%5C%5C%5C%22'%2Bchop(token%2C30)%2B'%5C%5C%5C%22')%7Dfunction%20parseGraph()%7Bvar%20graph%3D%7B%7D%3Bfirst()%3BgetToken()%3Bif(token%3D%3D%3D%5C%5C%5C%22strict%5C%5C%5C%22)%7Bgraph.strict%3Dtrue%3BgetToken()%7Dif(token%3D%3D%3D%5C%5C%5C%22graph%5C%5C%5C%22%7C%7Ctoken%3D%3D%3D%5C%5C%5C%22digraph%5C%5C%5C%22)%7Bgraph.type%3Dtoken%3BgetToken()%7Dif(tokenType%3D%3D%3DTOKENTYPE.IDENTIFIER)%7Bgraph.id%3Dtoken%3BgetToken()%7Dif(token!%3D%5C%5C%5C%22%7B%5C%5C%5C%22)%7Bthrow%20newSyntaxError(%5C%5C%5C%22Angle%20bracket%20%7B%20expected%5C%5C%5C%22)%7DgetToken()%3BparseStatements(graph)%3Bif(token!%3D%5C%5C%5C%22%7D%5C%5C%5C%22)%7Bthrow%20newSyntaxError(%5C%5C%5C%22Angle%20bracket%20%7D%20expected%5C%5C%5C%22)%7DgetToken()%3Bif(token!%3D%3D%5C%5C%5C%22%5C%5C%5C%22)%7Bthrow%20newSyntaxError(%5C%5C%5C%22End%20of%20file%20expected%5C%5C%5C%22)%7DgetToken()%3Bdelete%20graph.node%3Bdelete%20graph.edge%3Bdelete%20graph.graph%3Breturn%20graph%7Dfunction%20parseStatements(graph)%7Bwhile(token!%3D%3D%5C%5C%5C%22%5C%5C%5C%22%26%26token!%3D%5C%5C%5C%22%7D%5C%5C%5C%22)%7BparseStatement(graph)%3Bif(token%3D%3D%3D%5C%5C%5C%22%3B%5C%5C%5C%22)%7BgetToken()%7D%7D%7Dfunction%20parseStatement(graph)%7Bvar%20subgraph%3DparseSubgraph(graph)%3Bif(subgraph)%7BparseEdge(graph%2Csubgraph)%3Breturn%7Dvar%20attr%3DparseAttributeStatement(graph)%3Bif(attr)%7Breturn%7Dif(tokenType!%3DTOKENTYPE.IDENTIFIER)%7Bthrow%20newSyntaxError(%5C%5C%5C%22Identifier%20expected%5C%5C%5C%22)%7Dvar%20id%3Dtoken%3BgetToken()%3Bif(token%3D%3D%3D%5C%5C%5C%22%3D%5C%5C%5C%22)%7BgetToken()%3Bif(tokenType!%3DTOKENTYPE.IDENTIFIER)%7Bthrow%20newSyntaxError(%5C%5C%5C%22Identifier%20expected%5C%5C%5C%22)%7Dgraph%5Bid%5D%3Dtoken%3BgetToken()%7Delse%7BparseNodeStatement(graph%2Cid)%7D%7Dfunction%20parseSubgraph(graph)%7Bvar%20subgraph%3Dnull%3Bif(token%3D%3D%3D%5C%5C%5C%22subgraph%5C%5C%5C%22)%7Bsubgraph%3D%7B%7D%3Bsubgraph.type%3D%5C%5C%5C%22subgraph%5C%5C%5C%22%3BgetToken()%3Bif(tokenType%3D%3D%3DTOKENTYPE.IDENTIFIER)%7Bsubgraph.id%3Dtoken%3BgetToken()%7D%7Dif(token%3D%3D%3D%5C%5C%5C%22%7B%5C%5C%5C%22)%7BgetToken()%3Bif(!subgraph)%7Bsubgraph%3D%7B%7D%7Dsubgraph.parent%3Dgraph%3Bsubgraph.node%3Dgraph.node%3Bsubgraph.edge%3Dgraph.edge%3Bsubgraph.graph%3Dgraph.graph%3BparseStatements(subgraph)%3Bif(token!%3D%5C%5C%5C%22%7D%5C%5C%5C%22)%7Bthrow%20newSyntaxError(%5C%5C%5C%22Angle%20bracket%20%7D%20expected%5C%5C%5C%22)%7DgetToken()%3Bdelete%20subgraph.node%3Bdelete%20subgraph.edge%3Bdelete%20subgraph.graph%3Bdelete%20subgraph.parent%3Bif(!graph.subgraphs)%7Bgraph.subgraphs%3D%5B%5D%7Dgraph.subgraphs.push(subgraph)%7Dreturn%20subgraph%7Dfunction%20parseAttributeStatement(graph)%7Bif(token%3D%3D%3D%5C%5C%5C%22node%5C%5C%5C%22)%7BgetToken()%3Bgraph.node%3DparseAttributeList()%3Breturn%5C%5C%5C%22node%5C%5C%5C%22%7Delse%20if(token%3D%3D%3D%5C%5C%5C%22edge%5C%5C%5C%22)%7BgetToken()%3Bgraph.edge%3DparseAttributeList()%3Breturn%5C%5C%5C%22edge%5C%5C%5C%22%7Delse%20if(token%3D%3D%3D%5C%5C%5C%22graph%5C%5C%5C%22)%7BgetToken()%3Bgraph.graph%3DparseAttributeList()%3Breturn%5C%5C%5C%22graph%5C%5C%5C%22%7Dreturn%20null%7Dfunction%20parseNodeStatement(graph%2Cid)%7Bvar%20node%3D%7Bid%3Aid%7D%3Bvar%20attr%3DparseAttributeList()%3Bif(attr)%7Bnode.attr%3Dattr%7DaddNode(graph%2Cnode)%3BparseEdge(graph%2Cid)%7Dfunction%20parseEdge(graph%2Cfrom)%7Bwhile(token%3D%3D%3D%5C%5C%5C%22-%3E%5C%5C%5C%22%7C%7Ctoken%3D%3D%3D%5C%5C%5C%22--%5C%5C%5C%22)%7Bvar%20to%3Bvar%20type%3Dtoken%3BgetToken()%3Bvar%20subgraph%3DparseSubgraph(graph)%3Bif(subgraph)%7Bto%3Dsubgraph%7Delse%7Bif(tokenType!%3DTOKENTYPE.IDENTIFIER)%7Bthrow%20newSyntaxError(%5C%5C%5C%22Identifier%20or%20subgraph%20expected%5C%5C%5C%22)%7Dto%3Dtoken%3BaddNode(graph%2C%7Bid%3Ato%7D)%3BgetToken()%7Dvar%20attr%3DparseAttributeList()%3Bvar%20edge%3DcreateEdge(graph%2Cfrom%2Cto%2Ctype%2Cattr)%3BaddEdge(graph%2Cedge)%3Bfrom%3Dto%7D%7Dfunction%20parseAttributeList()%7Bvar%20attr%3Dnull%3Bvar%20edgeStyles%3D%7Bdashed%3Atrue%2Csolid%3Afalse%2Cdotted%3A%5B1%2C5%5D%7D%3Bwhile(token%3D%3D%3D%5C%5C%5C%22%5B%5C%5C%5C%22)%7BgetToken()%3Battr%3D%7B%7D%3Bwhile(token!%3D%3D%5C%5C%5C%22%5C%5C%5C%22%26%26token!%3D%5C%5C%5C%22%5D%5C%5C%5C%22)%7Bif(tokenType!%3DTOKENTYPE.IDENTIFIER)%7Bthrow%20newSyntaxError(%5C%5C%5C%22Attribute%20name%20expected%5C%5C%5C%22)%7Dvar%20name%3Dtoken%3BgetToken()%3Bif(token!%3D%5C%5C%5C%22%3D%5C%5C%5C%22)%7Bthrow%20newSyntaxError(%5C%5C%5C%22Equal%20sign%20%3D%20expected%5C%5C%5C%22)%7DgetToken()%3Bif(tokenType!%3DTOKENTYPE.IDENTIFIER)%7Bthrow%20newSyntaxError(%5C%5C%5C%22Attribute%20value%20expected%5C%5C%5C%22)%7Dvar%20value%3Dtoken%3Bif(name%3D%3D%3D%5C%5C%5C%22style%5C%5C%5C%22)%7Bvalue%3DedgeStyles%5Bvalue%5D%7DsetValue(attr%2Cname%2Cvalue)%3BgetToken()%3Bif(token%3D%3D%5C%5C%5C%22%2C%5C%5C%5C%22)%7BgetToken()%7D%7Dif(token!%3D%5C%5C%5C%22%5D%5C%5C%5C%22)%7Bthrow%20newSyntaxError(%5C%5C%5C%22Bracket%20%5D%20expected%5C%5C%5C%22)%7DgetToken()%7Dreturn%20attr%7Dfunction%20newSyntaxError(message)%7Breturn%20new%20SyntaxError(message%2B'%2C%20got%20%5C%5C%5C%22'%2Bchop(token%2C30)%2B'%5C%5C%5C%22%20(char%20'%2Bindex%2B%5C%5C%5C%22)%5C%5C%5C%22)%7Dfunction%20chop(text%2CmaxLength)%7Breturn%20text.length%3C%3DmaxLength%3Ftext%3Atext.substr(0%2C27)%2B%5C%5C%5C%22...%5C%5C%5C%22%7Dfunction%20forEach2(array1%2Carray2%2Cfn)%7Bif(Array.isArray(array1))%7Barray1.forEach(function(elem1)%7Bif(Array.isArray(array2))%7Barray2.forEach(function(elem2)%7Bfn(elem1%2Celem2)%7D)%7Delse%7Bfn(elem1%2Carray2)%7D%7D)%7Delse%7Bif(Array.isArray(array2))%7Barray2.forEach(function(elem2)%7Bfn(array1%2Celem2)%7D)%7Delse%7Bfn(array1%2Carray2)%7D%7D%7Dfunction%20setProp(object%2Cpath%2Cvalue)%7Bvar%20names%3Dpath.split(%5C%5C%5C%22.%5C%5C%5C%22)%3Bvar%20prop%3Dnames.pop()%3Bvar%20obj%3Dobject%3Bfor(var%20i%3D0%3Bi%3Cnames.length%3Bi%2B%2B)%7Bvar%20name%3Dnames%5Bi%5D%3Bif(!(name%20in%20obj))%7Bobj%5Bname%5D%3D%7B%7D%7Dobj%3Dobj%5Bname%5D%7Dobj%5Bprop%5D%3Dvalue%3Breturn%20object%7Dfunction%20convertAttr(attr%2Cmapping)%7Bvar%20converted%3D%7B%7D%3Bfor(var%20prop%20in%20attr)%7Bif(attr.hasOwnProperty(prop))%7Bvar%20visProp%3Dmapping%5Bprop%5D%3Bif(Array.isArray(visProp))%7BvisProp.forEach(function(visPropI)%7BsetProp(converted%2CvisPropI%2Cattr%5Bprop%5D)%7D)%7Delse%20if(typeof%20visProp%3D%3D%3D%5C%5C%5C%22string%5C%5C%5C%22)%7BsetProp(converted%2CvisProp%2Cattr%5Bprop%5D)%7Delse%7BsetProp(converted%2Cprop%2Cattr%5Bprop%5D)%7D%7D%7Dreturn%20converted%7Dfunction%20DOTToGraph(data)%7Bvar%20dotData%3DparseDOT(data)%3Bvar%20graphData%3D%7Bnodes%3A%5B%5D%2Cedges%3A%5B%5D%2Coptions%3A%7B%7D%7D%3Bif(dotData.nodes)%7BdotData.nodes.forEach(function(dotNode)%7Bvar%20graphNode%3D%7Bid%3AdotNode.id%2Clabel%3AString(dotNode.label%7C%7CdotNode.id)%7D%3Bmerge(graphNode%2CconvertAttr(dotNode.attr%2CNODE_ATTR_MAPPING))%3Bif(graphNode.image)%7BgraphNode.shape%3D%5C%5C%5C%22image%5C%5C%5C%22%7DgraphData.nodes.push(graphNode)%7D)%7Dif(dotData.edges)%7Bvar%20convertEdge%3Dfunction%20convertEdge(dotEdge)%7Bvar%20graphEdge%3D%7Bfrom%3AdotEdge.from%2Cto%3AdotEdge.to%7D%3Bmerge(graphEdge%2CconvertAttr(dotEdge.attr%2CEDGE_ATTR_MAPPING))%3BgraphEdge.arrows%3DdotEdge.type%3D%3D%3D%5C%5C%5C%22-%3E%5C%5C%5C%22%3F%5C%5C%5C%22to%5C%5C%5C%22%3Aundefined%3Breturn%20graphEdge%7D%3BdotData.edges.forEach(function(dotEdge)%7Bvar%20from%2Cto%3Bif(dotEdge.from%20instanceof%20Object)%7Bfrom%3DdotEdge.from.nodes%7Delse%7Bfrom%3D%7Bid%3AdotEdge.from%7D%7Dif(dotEdge.to%20instanceof%20Object)%7Bto%3DdotEdge.to.nodes%7Delse%7Bto%3D%7Bid%3AdotEdge.to%7D%7Dif(dotEdge.from%20instanceof%20Object%26%26dotEdge.from.edges)%7BdotEdge.from.edges.forEach(function(subEdge)%7Bvar%20graphEdge%3DconvertEdge(subEdge)%3BgraphData.edges.push(graphEdge)%7D)%7DforEach2(from%2Cto%2Cfunction(from%2Cto)%7Bvar%20subEdge%3DcreateEdge(graphData%2Cfrom.id%2Cto.id%2CdotEdge.type%2CdotEdge.attr)%3Bvar%20graphEdge%3DconvertEdge(subEdge)%3BgraphData.edges.push(graphEdge)%7D)%3Bif(dotEdge.to%20instanceof%20Object%26%26dotEdge.to.edges)%7BdotEdge.to.edges.forEach(function(subEdge)%7Bvar%20graphEdge%3DconvertEdge(subEdge)%3BgraphData.edges.push(graphEdge)%7D)%7D%7D)%7Dif(dotData.attr)%7BgraphData.options%3DdotData.attr%7Dreturn%20graphData%7Dexports.parseDOT%3DparseDOT%3Bexports.DOTToGraph%3DDOTToGraph%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bfunction%20parseGephi(gephiJSON%2CoptionsObj)%7Bvar%20edges%3D%5B%5D%3Bvar%20nodes%3D%5B%5D%3Bvar%20options%3D%7Bedges%3A%7BinheritColor%3Afalse%7D%2Cnodes%3A%7Bfixed%3Afalse%2CparseColor%3Afalse%7D%7D%3Bif(optionsObj!%3D%3Dundefined)%7Bif(optionsObj.fixed!%3D%3Dundefined)%7Boptions.nodes.fixed%3DoptionsObj.fixed%7Dif(optionsObj.parseColor!%3D%3Dundefined)%7Boptions.nodes.parseColor%3DoptionsObj.parseColor%7Dif(optionsObj.inheritColor!%3D%3Dundefined)%7Boptions.edges.inheritColor%3DoptionsObj.inheritColor%7D%7Dvar%20gEdges%3DgephiJSON.edges%3Bvar%20gNodes%3DgephiJSON.nodes%3Bfor(var%20i%3D0%3Bi%3CgEdges.length%3Bi%2B%2B)%7Bvar%20edge%3D%7B%7D%3Bvar%20gEdge%3DgEdges%5Bi%5D%3Bedge%5B%5C%5C%5C%22id%5C%5C%5C%22%5D%3DgEdge.id%3Bedge%5B%5C%5C%5C%22from%5C%5C%5C%22%5D%3DgEdge.source%3Bedge%5B%5C%5C%5C%22to%5C%5C%5C%22%5D%3DgEdge.target%3Bedge%5B%5C%5C%5C%22attributes%5C%5C%5C%22%5D%3DgEdge.attributes%3Bedge%5B%5C%5C%5C%22label%5C%5C%5C%22%5D%3DgEdge.label%3Bedge%5B%5C%5C%5C%22title%5C%5C%5C%22%5D%3DgEdge.attributes!%3D%3Dundefined%3FgEdge.attributes.title%3Aundefined%3Bif(gEdge%5B%5C%5C%5C%22type%5C%5C%5C%22%5D%3D%3D%3D%5C%5C%5C%22Directed%5C%5C%5C%22)%7Bedge%5B%5C%5C%5C%22arrows%5C%5C%5C%22%5D%3D%5C%5C%5C%22to%5C%5C%5C%22%7Dif(gEdge.color%26%26options.inheritColor%3D%3D%3Dfalse)%7Bedge%5B%5C%5C%5C%22color%5C%5C%5C%22%5D%3DgEdge.color%7Dedges.push(edge)%7Dfor(var%20j%3D0%3Bj%3CgNodes.length%3Bj%2B%2B)%7Bvar%20node%3D%7B%7D%3Bvar%20gNode%3DgNodes%5Bj%5D%3Bnode%5B%5C%5C%5C%22id%5C%5C%5C%22%5D%3DgNode.id%3Bnode%5B%5C%5C%5C%22attributes%5C%5C%5C%22%5D%3DgNode.attributes%3Bnode%5B%5C%5C%5C%22x%5C%5C%5C%22%5D%3DgNode.x%3Bnode%5B%5C%5C%5C%22y%5C%5C%5C%22%5D%3DgNode.y%3Bnode%5B%5C%5C%5C%22label%5C%5C%5C%22%5D%3DgNode.label%3Bnode%5B%5C%5C%5C%22title%5C%5C%5C%22%5D%3DgNode.attributes!%3D%3Dundefined%3FgNode.attributes.title%3AgNode.title%3Bif(options.nodes.parseColor%3D%3D%3Dtrue)%7Bnode%5B%5C%5C%5C%22color%5C%5C%5C%22%5D%3DgNode.color%7Delse%7Bnode%5B%5C%5C%5C%22color%5C%5C%5C%22%5D%3DgNode.color!%3D%3Dundefined%3F%7Bbackground%3AgNode.color%2Cborder%3AgNode.color%2Chighlight%3A%7Bbackground%3AgNode.color%2Cborder%3AgNode.color%7D%2Chover%3A%7Bbackground%3AgNode.color%2Cborder%3AgNode.color%7D%7D%3Aundefined%7Dnode%5B%5C%5C%5C%22size%5C%5C%5C%22%5D%3DgNode.size%3Bnode%5B%5C%5C%5C%22fixed%5C%5C%5C%22%5D%3Doptions.nodes.fixed%26%26gNode.x!%3D%3Dundefined%26%26gNode.y!%3D%3Dundefined%3Bnodes.push(node)%7Dreturn%7Bnodes%3Anodes%2Cedges%3Aedges%7D%7Dexports.parseGephi%3DparseGephi%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_classCallCheck2%3D__webpack_require__(0)%3Bvar%20_classCallCheck3%3D_interopRequireDefault(_classCallCheck2)%3Bvar%20_createClass2%3D__webpack_require__(1)%3Bvar%20_createClass3%3D_interopRequireDefault(_createClass2)%3Bvar%20_CachedImage%3D__webpack_require__(185)%3Bvar%20_CachedImage2%3D_interopRequireDefault(_CachedImage)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20Images%3Dfunction()%7Bfunction%20Images(callback)%7B(0%2C_classCallCheck3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2CImages)%3Bthis.images%3D%7B%7D%3Bthis.imageBroken%3D%7B%7D%3Bthis.callback%3Dcallback%7D(0%2C_createClass3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(Images%2C%5B%7Bkey%3A%5C%5C%5C%22_tryloadBrokenUrl%5C%5C%5C%22%2Cvalue%3Afunction%20_tryloadBrokenUrl(url%2CbrokenUrl%2CimageToLoadBrokenUrlOn)%7Bif(url%3D%3D%3Dundefined%7C%7CimageToLoadBrokenUrlOn%3D%3D%3Dundefined)return%3Bif(brokenUrl%3D%3D%3Dundefined)%7Bconsole.warn(%5C%5C%5C%22No%20broken%20url%20image%20defined%5C%5C%5C%22)%3Breturn%7DimageToLoadBrokenUrlOn.onerror%3Dfunction()%7Bconsole.error(%5C%5C%5C%22Could%20not%20load%20brokenImage%3A%5C%5C%5C%22%2CbrokenUrl)%7D%3BimageToLoadBrokenUrlOn.image.src%3DbrokenUrl%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_redrawWithImage%5C%5C%5C%22%2Cvalue%3Afunction%20_redrawWithImage(imageToRedrawWith)%7Bif(this.callback)%7Bthis.callback(imageToRedrawWith)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22load%5C%5C%5C%22%2Cvalue%3Afunction%20load(url%2CbrokenUrl)%7Bvar%20_this%3Dthis%3Bvar%20cachedImage%3Dthis.images%5Burl%5D%3Bif(cachedImage)return%20cachedImage%3Bvar%20img%3Dnew%20_CachedImage2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3Bthis.images%5Burl%5D%3Dimg%3Bimg.image.onload%3Dfunction()%7B_this._fixImageCoordinates(img.image)%3Bimg.init()%3B_this._redrawWithImage(img)%7D%3Bimg.image.onerror%3Dfunction()%7Bconsole.error(%5C%5C%5C%22Could%20not%20load%20image%3A%5C%5C%5C%22%2Curl)%3B_this._tryloadBrokenUrl(url%2CbrokenUrl%2Cimg)%7D%3Bimg.image.src%3Durl%3Breturn%20img%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_fixImageCoordinates%5C%5C%5C%22%2Cvalue%3Afunction%20_fixImageCoordinates(imageToCache)%7Bif(imageToCache.width%3D%3D%3D0)%7Bdocument.body.appendChild(imageToCache)%3BimageToCache.width%3DimageToCache.offsetWidth%3BimageToCache.height%3DimageToCache.offsetHeight%3Bdocument.body.removeChild(imageToCache)%7D%7D%7D%5D)%3Breturn%20Images%7D()%3Bexports%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3DImages%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_slicedToArray2%3D__webpack_require__(30)%3Bvar%20_slicedToArray3%3D_interopRequireDefault(_slicedToArray2)%3Bvar%20_typeof2%3D__webpack_require__(6)%3Bvar%20_typeof3%3D_interopRequireDefault(_typeof2)%3Bvar%20_classCallCheck2%3D__webpack_require__(0)%3Bvar%20_classCallCheck3%3D_interopRequireDefault(_classCallCheck2)%3Bvar%20_createClass2%3D__webpack_require__(1)%3Bvar%20_createClass3%3D_interopRequireDefault(_createClass2)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20util%3D__webpack_require__(2)%3Bvar%20ComponentUtil%3D__webpack_require__(48)%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3Bvar%20LabelSplitter%3D__webpack_require__(191)%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3Bvar%20multiFontStyle%3D%5B%5C%5C%5C%22bold%5C%5C%5C%22%2C%5C%5C%5C%22ital%5C%5C%5C%22%2C%5C%5C%5C%22boldital%5C%5C%5C%22%2C%5C%5C%5C%22mono%5C%5C%5C%22%5D%3Bvar%20Label%3Dfunction()%7Bfunction%20Label(body%2Coptions)%7Bvar%20edgelabel%3Darguments.length%3E2%26%26arguments%5B2%5D!%3D%3Dundefined%3Farguments%5B2%5D%3Afalse%3B(0%2C_classCallCheck3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2CLabel)%3Bthis.body%3Dbody%3Bthis.pointToSelf%3Dfalse%3Bthis.baseSize%3Dundefined%3Bthis.fontOptions%3D%7B%7D%3Bthis.setOptions(options)%3Bthis.size%3D%7Btop%3A0%2Cleft%3A0%2Cwidth%3A0%2Cheight%3A0%2CyLine%3A0%7D%3Bthis.isEdgeLabel%3Dedgelabel%7D(0%2C_createClass3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(Label%2C%5B%7Bkey%3A%5C%5C%5C%22setOptions%5C%5C%5C%22%2Cvalue%3Afunction%20setOptions(options)%7Bthis.elementOptions%3Doptions%3Bthis.initFontOptions(options.font)%3Bif(ComponentUtil.isValidLabel(options.label))%7Bthis.labelDirty%3Dtrue%7Delse%7Boptions.label%3D%5C%5C%5C%22%5C%5C%5C%22%7Dif(options.font!%3D%3Dundefined%26%26options.font!%3D%3Dnull)%7Bif(typeof%20options.font%3D%3D%3D%5C%5C%5C%22string%5C%5C%5C%22)%7Bthis.baseSize%3Dthis.fontOptions.size%7Delse%20if((0%2C_typeof3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(options.font)%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22)%7Bvar%20size%3Doptions.font.size%3Bif(size!%3D%3Dundefined)%7Bthis.baseSize%3Dsize%7D%7D%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22initFontOptions%5C%5C%5C%22%2Cvalue%3Afunction%20initFontOptions(newFontOptions)%7Bvar%20_this%3Dthis%3Butil.forEach(multiFontStyle%2Cfunction(style)%7B_this.fontOptions%5Bstyle%5D%3D%7B%7D%7D)%3Bif(Label.parseFontString(this.fontOptions%2CnewFontOptions))%7Bthis.fontOptions.vadjust%3D0%3Breturn%7Dutil.forEach(newFontOptions%2Cfunction(prop%2Cn)%7Bif(prop!%3D%3Dundefined%26%26prop!%3D%3Dnull%26%26(typeof%20prop%3D%3D%3D%5C%5C%5C%22undefined%5C%5C%5C%22%3F%5C%5C%5C%22undefined%5C%5C%5C%22%3A(0%2C_typeof3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(prop))!%3D%3D%5C%5C%5C%22object%5C%5C%5C%22)%7B_this.fontOptions%5Bn%5D%3Dprop%7D%7D)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22constrain%5C%5C%5C%22%2Cvalue%3Afunction%20constrain(pile)%7Bvar%20fontOptions%3D%7BconstrainWidth%3Afalse%2CmaxWdt%3A-1%2CminWdt%3A-1%2CconstrainHeight%3Afalse%2CminHgt%3A-1%2Cvalign%3A%5C%5C%5C%22middle%5C%5C%5C%22%7D%3Bvar%20widthConstraint%3Dutil.topMost(pile%2C%5C%5C%5C%22widthConstraint%5C%5C%5C%22)%3Bif(typeof%20widthConstraint%3D%3D%3D%5C%5C%5C%22number%5C%5C%5C%22)%7BfontOptions.maxWdt%3DNumber(widthConstraint)%3BfontOptions.minWdt%3DNumber(widthConstraint)%7Delse%20if((typeof%20widthConstraint%3D%3D%3D%5C%5C%5C%22undefined%5C%5C%5C%22%3F%5C%5C%5C%22undefined%5C%5C%5C%22%3A(0%2C_typeof3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(widthConstraint))%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22)%7Bvar%20widthConstraintMaximum%3Dutil.topMost(pile%2C%5B%5C%5C%5C%22widthConstraint%5C%5C%5C%22%2C%5C%5C%5C%22maximum%5C%5C%5C%22%5D)%3Bif(typeof%20widthConstraintMaximum%3D%3D%3D%5C%5C%5C%22number%5C%5C%5C%22)%7BfontOptions.maxWdt%3DNumber(widthConstraintMaximum)%7Dvar%20widthConstraintMinimum%3Dutil.topMost(pile%2C%5B%5C%5C%5C%22widthConstraint%5C%5C%5C%22%2C%5C%5C%5C%22minimum%5C%5C%5C%22%5D)%3Bif(typeof%20widthConstraintMinimum%3D%3D%3D%5C%5C%5C%22number%5C%5C%5C%22)%7BfontOptions.minWdt%3DNumber(widthConstraintMinimum)%7D%7Dvar%20heightConstraint%3Dutil.topMost(pile%2C%5C%5C%5C%22heightConstraint%5C%5C%5C%22)%3Bif(typeof%20heightConstraint%3D%3D%3D%5C%5C%5C%22number%5C%5C%5C%22)%7BfontOptions.minHgt%3DNumber(heightConstraint)%7Delse%20if((typeof%20heightConstraint%3D%3D%3D%5C%5C%5C%22undefined%5C%5C%5C%22%3F%5C%5C%5C%22undefined%5C%5C%5C%22%3A(0%2C_typeof3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(heightConstraint))%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22)%7Bvar%20heightConstraintMinimum%3Dutil.topMost(pile%2C%5B%5C%5C%5C%22heightConstraint%5C%5C%5C%22%2C%5C%5C%5C%22minimum%5C%5C%5C%22%5D)%3Bif(typeof%20heightConstraintMinimum%3D%3D%3D%5C%5C%5C%22number%5C%5C%5C%22)%7BfontOptions.minHgt%3DNumber(heightConstraintMinimum)%7Dvar%20heightConstraintValign%3Dutil.topMost(pile%2C%5B%5C%5C%5C%22heightConstraint%5C%5C%5C%22%2C%5C%5C%5C%22valign%5C%5C%5C%22%5D)%3Bif(typeof%20heightConstraintValign%3D%3D%3D%5C%5C%5C%22string%5C%5C%5C%22)%7Bif(heightConstraintValign%3D%3D%3D%5C%5C%5C%22top%5C%5C%5C%22%7C%7CheightConstraintValign%3D%3D%3D%5C%5C%5C%22bottom%5C%5C%5C%22)%7BfontOptions.valign%3DheightConstraintValign%7D%7D%7Dreturn%20fontOptions%7D%7D%2C%7Bkey%3A%5C%5C%5C%22update%5C%5C%5C%22%2Cvalue%3Afunction%20update(options%2Cpile)%7Bthis.setOptions(options%2Ctrue)%3Bthis.propagateFonts(pile)%3Butil.deepExtend(this.fontOptions%2Cthis.constrain(pile))%3Bthis.fontOptions.chooser%3DComponentUtil.choosify(%5C%5C%5C%22label%5C%5C%5C%22%2Cpile)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22adjustSizes%5C%5C%5C%22%2Cvalue%3Afunction%20adjustSizes(margins)%7Bvar%20widthBias%3Dmargins%3Fmargins.right%2Bmargins.left%3A0%3Bif(this.fontOptions.constrainWidth)%7Bthis.fontOptions.maxWdt-%3DwidthBias%3Bthis.fontOptions.minWdt-%3DwidthBias%7Dvar%20heightBias%3Dmargins%3Fmargins.top%2Bmargins.bottom%3A0%3Bif(this.fontOptions.constrainHeight)%7Bthis.fontOptions.minHgt-%3DheightBias%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22addFontOptionsToPile%5C%5C%5C%22%2Cvalue%3Afunction%20addFontOptionsToPile(dstPile%2CsrcPile)%7Bfor(var%20i%3D0%3Bi%3CsrcPile.length%3B%2B%2Bi)%7Bthis.addFontToPile(dstPile%2CsrcPile%5Bi%5D)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22addFontToPile%5C%5C%5C%22%2Cvalue%3Afunction%20addFontToPile(pile%2Coptions)%7Bif(options%3D%3D%3Dundefined)return%3Bif(options.font%3D%3D%3Dundefined%7C%7Coptions.font%3D%3D%3Dnull)return%3Bvar%20item%3Doptions.font%3Bpile.push(item)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getBasicOptions%5C%5C%5C%22%2Cvalue%3Afunction%20getBasicOptions(pile)%7Bvar%20ret%3D%7B%7D%3Bfor(var%20n%3D0%3Bn%3Cpile.length%3B%2B%2Bn)%7Bvar%20fontOptions%3Dpile%5Bn%5D%3Bvar%20tmpShorthand%3D%7B%7D%3Bif(Label.parseFontString(tmpShorthand%2CfontOptions))%7BfontOptions%3DtmpShorthand%7Dutil.forEach(fontOptions%2Cfunction(opt%2Cname)%7Bif(opt%3D%3D%3Dundefined)return%3Bif(ret.hasOwnProperty(name))return%3Bif(multiFontStyle.indexOf(name)!%3D%3D-1)%7Bret%5Bname%5D%3D%7B%7D%7Delse%7Bret%5Bname%5D%3Dopt%7D%7D)%7Dreturn%20ret%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getFontOption%5C%5C%5C%22%2Cvalue%3Afunction%20getFontOption(pile%2CmultiName%2Coption)%7Bvar%20multiFont%3Dvoid%200%3Bfor(var%20n%3D0%3Bn%3Cpile.length%3B%2B%2Bn)%7Bvar%20fontOptions%3Dpile%5Bn%5D%3Bif(fontOptions.hasOwnProperty(multiName))%7BmultiFont%3DfontOptions%5BmultiName%5D%3Bif(multiFont%3D%3D%3Dundefined%7C%7CmultiFont%3D%3D%3Dnull)continue%3Bvar%20tmpShorthand%3D%7B%7D%3Bif(Label.parseFontString(tmpShorthand%2CmultiFont))%7BmultiFont%3DtmpShorthand%7Dif(multiFont.hasOwnProperty(option))%7Breturn%20multiFont%5Boption%5D%7D%7D%7Dif(this.fontOptions.hasOwnProperty(option))%7Breturn%20this.fontOptions%5Boption%5D%7Dthrow%20new%20Error(%5C%5C%5C%22Did%20not%20find%20value%20for%20multi-font%20for%20property%3A%20'%5C%5C%5C%22%2Boption%2B%5C%5C%5C%22'%5C%5C%5C%22)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getFontOptions%5C%5C%5C%22%2Cvalue%3Afunction%20getFontOptions(pile%2CmultiName)%7Bvar%20result%3D%7B%7D%3Bvar%20optionNames%3D%5B%5C%5C%5C%22color%5C%5C%5C%22%2C%5C%5C%5C%22size%5C%5C%5C%22%2C%5C%5C%5C%22face%5C%5C%5C%22%2C%5C%5C%5C%22mod%5C%5C%5C%22%2C%5C%5C%5C%22vadjust%5C%5C%5C%22%5D%3Bfor(var%20i%3D0%3Bi%3CoptionNames.length%3B%2B%2Bi)%7Bvar%20mod%3DoptionNames%5Bi%5D%3Bresult%5Bmod%5D%3Dthis.getFontOption(pile%2CmultiName%2Cmod)%7Dreturn%20result%7D%7D%2C%7Bkey%3A%5C%5C%5C%22propagateFonts%5C%5C%5C%22%2Cvalue%3Afunction%20propagateFonts(pile)%7Bvar%20_this2%3Dthis%3Bvar%20fontPile%3D%5B%5D%3Bthis.addFontOptionsToPile(fontPile%2Cpile)%3Bthis.fontOptions%3Dthis.getBasicOptions(fontPile)%3Bvar%20_loop%3Dfunction%20_loop(i)%7Bvar%20mod%3DmultiFontStyle%5Bi%5D%3Bvar%20modOptions%3D_this2.fontOptions%5Bmod%5D%3Bvar%20tmpMultiFontOptions%3D_this2.getFontOptions(fontPile%2Cmod)%3Butil.forEach(tmpMultiFontOptions%2Cfunction(option%2Cn)%7BmodOptions%5Bn%5D%3Doption%7D)%3BmodOptions.size%3DNumber(modOptions.size)%3BmodOptions.vadjust%3DNumber(modOptions.vadjust)%7D%3Bfor(var%20i%3D0%3Bi%3CmultiFontStyle.length%3B%2B%2Bi)%7B_loop(i)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22draw%5C%5C%5C%22%2Cvalue%3Afunction%20draw(ctx%2Cx%2Cy%2Cselected%2Chover)%7Bvar%20baseline%3Darguments.length%3E5%26%26arguments%5B5%5D!%3D%3Dundefined%3Farguments%5B5%5D%3A%5C%5C%5C%22middle%5C%5C%5C%22%3Bif(this.elementOptions.label%3D%3D%3Dundefined)return%3Bvar%20viewFontSize%3Dthis.fontOptions.size*this.body.view.scale%3Bif(this.elementOptions.label%26%26viewFontSize%3Cthis.elementOptions.scaling.label.drawThreshold-1)return%3Bif(viewFontSize%3E%3Dthis.elementOptions.scaling.label.maxVisible)%7BviewFontSize%3DNumber(this.elementOptions.scaling.label.maxVisible)%2Fthis.body.view.scale%7Dthis.calculateLabelSize(ctx%2Cselected%2Chover%2Cx%2Cy%2Cbaseline)%3Bthis._drawBackground(ctx)%3Bthis._drawText(ctx%2Cx%2Cthis.size.yLine%2Cbaseline%2CviewFontSize)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_drawBackground%5C%5C%5C%22%2Cvalue%3Afunction%20_drawBackground(ctx)%7Bif(this.fontOptions.background!%3D%3Dundefined%26%26this.fontOptions.background!%3D%3D%5C%5C%5C%22none%5C%5C%5C%22)%7Bctx.fillStyle%3Dthis.fontOptions.background%3Bvar%20size%3Dthis.getSize()%3Bctx.fillRect(size.left%2Csize.top%2Csize.width%2Csize.height)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_drawText%5C%5C%5C%22%2Cvalue%3Afunction%20_drawText(ctx%2Cx%2Cy)%7Bvar%20baseline%3Darguments.length%3E3%26%26arguments%5B3%5D!%3D%3Dundefined%3Farguments%5B3%5D%3A%5C%5C%5C%22middle%5C%5C%5C%22%3Bvar%20viewFontSize%3Darguments%5B4%5D%3Bvar%20_setAlignment2%3Dthis._setAlignment(ctx%2Cx%2Cy%2Cbaseline)%3Bvar%20_setAlignment3%3D(0%2C_slicedToArray3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(_setAlignment2%2C2)%3Bx%3D_setAlignment3%5B0%5D%3By%3D_setAlignment3%5B1%5D%3Bctx.textAlign%3D%5C%5C%5C%22left%5C%5C%5C%22%3Bx%3Dx-this.size.width%2F2%3Bif(this.fontOptions.valign%26%26this.size.height%3Ethis.size.labelHeight)%7Bif(this.fontOptions.valign%3D%3D%3D%5C%5C%5C%22top%5C%5C%5C%22)%7By-%3D(this.size.height-this.size.labelHeight)%2F2%7Dif(this.fontOptions.valign%3D%3D%3D%5C%5C%5C%22bottom%5C%5C%5C%22)%7By%2B%3D(this.size.height-this.size.labelHeight)%2F2%7D%7Dfor(var%20i%3D0%3Bi%3Cthis.lineCount%3Bi%2B%2B)%7Bvar%20line%3Dthis.lines%5Bi%5D%3Bif(line%26%26line.blocks)%7Bvar%20width%3D0%3Bif(this.isEdgeLabel%7C%7Cthis.fontOptions.align%3D%3D%3D%5C%5C%5C%22center%5C%5C%5C%22)%7Bwidth%2B%3D(this.size.width-line.width)%2F2%7Delse%20if(this.fontOptions.align%3D%3D%3D%5C%5C%5C%22right%5C%5C%5C%22)%7Bwidth%2B%3Dthis.size.width-line.width%7Dfor(var%20j%3D0%3Bj%3Cline.blocks.length%3Bj%2B%2B)%7Bvar%20block%3Dline.blocks%5Bj%5D%3Bctx.font%3Dblock.font%3Bvar%20_getColor2%3Dthis._getColor(block.color%2CviewFontSize%2Cblock.strokeColor)%2C_getColor3%3D(0%2C_slicedToArray3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(_getColor2%2C2)%2CfontColor%3D_getColor3%5B0%5D%2CstrokeColor%3D_getColor3%5B1%5D%3Bif(block.strokeWidth%3E0)%7Bctx.lineWidth%3Dblock.strokeWidth%3Bctx.strokeStyle%3DstrokeColor%3Bctx.lineJoin%3D%5C%5C%5C%22round%5C%5C%5C%22%7Dctx.fillStyle%3DfontColor%3Bif(block.strokeWidth%3E0)%7Bctx.strokeText(block.text%2Cx%2Bwidth%2Cy%2Bblock.vadjust)%7Dctx.fillText(block.text%2Cx%2Bwidth%2Cy%2Bblock.vadjust)%3Bwidth%2B%3Dblock.width%7Dy%2B%3Dline.height%7D%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_setAlignment%5C%5C%5C%22%2Cvalue%3Afunction%20_setAlignment(ctx%2Cx%2Cy%2Cbaseline)%7Bif(this.isEdgeLabel%26%26this.fontOptions.align!%3D%3D%5C%5C%5C%22horizontal%5C%5C%5C%22%26%26this.pointToSelf%3D%3D%3Dfalse)%7Bx%3D0%3By%3D0%3Bvar%20lineMargin%3D2%3Bif(this.fontOptions.align%3D%3D%3D%5C%5C%5C%22top%5C%5C%5C%22)%7Bctx.textBaseline%3D%5C%5C%5C%22alphabetic%5C%5C%5C%22%3By-%3D2*lineMargin%7Delse%20if(this.fontOptions.align%3D%3D%3D%5C%5C%5C%22bottom%5C%5C%5C%22)%7Bctx.textBaseline%3D%5C%5C%5C%22hanging%5C%5C%5C%22%3By%2B%3D2*lineMargin%7Delse%7Bctx.textBaseline%3D%5C%5C%5C%22middle%5C%5C%5C%22%7D%7Delse%7Bctx.textBaseline%3Dbaseline%7Dreturn%5Bx%2Cy%5D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_getColor%5C%5C%5C%22%2Cvalue%3Afunction%20_getColor(color%2CviewFontSize%2CinitialStrokeColor)%7Bvar%20fontColor%3Dcolor%7C%7C%5C%5C%5C%22%23000000%5C%5C%5C%22%3Bvar%20strokeColor%3DinitialStrokeColor%7C%7C%5C%5C%5C%22%23ffffff%5C%5C%5C%22%3Bif(viewFontSize%3C%3Dthis.elementOptions.scaling.label.drawThreshold)%7Bvar%20opacity%3DMath.max(0%2CMath.min(1%2C1-(this.elementOptions.scaling.label.drawThreshold-viewFontSize)))%3BfontColor%3Dutil.overrideOpacity(fontColor%2Copacity)%3BstrokeColor%3Dutil.overrideOpacity(strokeColor%2Copacity)%7Dreturn%5BfontColor%2CstrokeColor%5D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getTextSize%5C%5C%5C%22%2Cvalue%3Afunction%20getTextSize(ctx)%7Bvar%20selected%3Darguments.length%3E1%26%26arguments%5B1%5D!%3D%3Dundefined%3Farguments%5B1%5D%3Afalse%3Bvar%20hover%3Darguments.length%3E2%26%26arguments%5B2%5D!%3D%3Dundefined%3Farguments%5B2%5D%3Afalse%3Bthis._processLabel(ctx%2Cselected%2Chover)%3Breturn%7Bwidth%3Athis.size.width%2Cheight%3Athis.size.height%2ClineCount%3Athis.lineCount%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getSize%5C%5C%5C%22%2Cvalue%3Afunction%20getSize()%7Bvar%20lineMargin%3D2%3Bvar%20x%3Dthis.size.left%3Bvar%20y%3Dthis.size.top-.5*lineMargin%3Bif(this.isEdgeLabel)%7Bvar%20x2%3D-this.size.width*.5%3Bswitch(this.fontOptions.align)%7Bcase%5C%5C%5C%22middle%5C%5C%5C%22%3Ax%3Dx2%3By%3D-this.size.height*.5%3Bbreak%3Bcase%5C%5C%5C%22top%5C%5C%5C%22%3Ax%3Dx2%3By%3D-(this.size.height%2BlineMargin)%3Bbreak%3Bcase%5C%5C%5C%22bottom%5C%5C%5C%22%3Ax%3Dx2%3By%3DlineMargin%3Bbreak%7D%7Dvar%20ret%3D%7Bleft%3Ax%2Ctop%3Ay%2Cwidth%3Athis.size.width%2Cheight%3Athis.size.height%7D%3Breturn%20ret%7D%7D%2C%7Bkey%3A%5C%5C%5C%22calculateLabelSize%5C%5C%5C%22%2Cvalue%3Afunction%20calculateLabelSize(ctx%2Cselected%2Chover)%7Bvar%20x%3Darguments.length%3E3%26%26arguments%5B3%5D!%3D%3Dundefined%3Farguments%5B3%5D%3A0%3Bvar%20y%3Darguments.length%3E4%26%26arguments%5B4%5D!%3D%3Dundefined%3Farguments%5B4%5D%3A0%3Bvar%20baseline%3Darguments.length%3E5%26%26arguments%5B5%5D!%3D%3Dundefined%3Farguments%5B5%5D%3A%5C%5C%5C%22middle%5C%5C%5C%22%3Bthis._processLabel(ctx%2Cselected%2Chover)%3Bthis.size.left%3Dx-this.size.width*.5%3Bthis.size.top%3Dy-this.size.height*.5%3Bthis.size.yLine%3Dy%2B(1-this.lineCount)*.5*this.fontOptions.size%3Bif(baseline%3D%3D%3D%5C%5C%5C%22hanging%5C%5C%5C%22)%7Bthis.size.top%2B%3D.5*this.fontOptions.size%3Bthis.size.top%2B%3D4%3Bthis.size.yLine%2B%3D4%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getFormattingValues%5C%5C%5C%22%2Cvalue%3Afunction%20getFormattingValues(ctx%2Cselected%2Chover%2Cmod)%7Bvar%20getValue%3Dfunction%20getValue(fontOptions%2Cmod%2Coption)%7Bif(mod%3D%3D%3D%5C%5C%5C%22normal%5C%5C%5C%22)%7Bif(option%3D%3D%3D%5C%5C%5C%22mod%5C%5C%5C%22)return%5C%5C%5C%22%5C%5C%5C%22%3Breturn%20fontOptions%5Boption%5D%7Dif(fontOptions%5Bmod%5D%5Boption%5D!%3D%3Dundefined)%7Breturn%20fontOptions%5Bmod%5D%5Boption%5D%7Delse%7Breturn%20fontOptions%5Boption%5D%7D%7D%3Bvar%20values%3D%7Bcolor%3AgetValue(this.fontOptions%2Cmod%2C%5C%5C%5C%22color%5C%5C%5C%22)%2Csize%3AgetValue(this.fontOptions%2Cmod%2C%5C%5C%5C%22size%5C%5C%5C%22)%2Cface%3AgetValue(this.fontOptions%2Cmod%2C%5C%5C%5C%22face%5C%5C%5C%22)%2Cmod%3AgetValue(this.fontOptions%2Cmod%2C%5C%5C%5C%22mod%5C%5C%5C%22)%2Cvadjust%3AgetValue(this.fontOptions%2Cmod%2C%5C%5C%5C%22vadjust%5C%5C%5C%22)%2CstrokeWidth%3Athis.fontOptions.strokeWidth%2CstrokeColor%3Athis.fontOptions.strokeColor%7D%3Bif(selected%7C%7Chover)%7Bif(mod%3D%3D%3D%5C%5C%5C%22normal%5C%5C%5C%22%26%26this.fontOptions.chooser%3D%3D%3Dtrue%26%26this.elementOptions.labelHighlightBold)%7Bvalues.mod%3D%5C%5C%5C%22bold%5C%5C%5C%22%7Delse%7Bif(typeof%20this.fontOptions.chooser%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22)%7Bthis.fontOptions.chooser(values%2Cthis.elementOptions.id%2Cselected%2Chover)%7D%7D%7Dvar%20fontString%3D%5C%5C%5C%22%5C%5C%5C%22%3Bif(values.mod!%3D%3Dundefined%26%26values.mod!%3D%3D%5C%5C%5C%22%5C%5C%5C%22)%7BfontString%2B%3Dvalues.mod%2B%5C%5C%5C%22%20%5C%5C%5C%22%7DfontString%2B%3Dvalues.size%2B%5C%5C%5C%22px%20%5C%5C%5C%22%2Bvalues.face%3Bctx.font%3DfontString.replace(%2F%5C%5C%5C%22%2Fg%2C%5C%5C%5C%22%5C%5C%5C%22)%3Bvalues.font%3Dctx.font%3Bvalues.height%3Dvalues.size%3Breturn%20values%7D%7D%2C%7Bkey%3A%5C%5C%5C%22differentState%5C%5C%5C%22%2Cvalue%3Afunction%20differentState(selected%2Chover)%7Breturn%20selected!%3D%3Dthis.selectedState%7C%7Chover!%3D%3Dthis.hoverState%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_processLabelText%5C%5C%5C%22%2Cvalue%3Afunction%20_processLabelText(ctx%2Cselected%2Chover%2CinText)%7Bvar%20splitter%3Dnew%20LabelSplitter(ctx%2Cthis%2Cselected%2Chover)%3Breturn%20splitter.process(inText)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_processLabel%5C%5C%5C%22%2Cvalue%3Afunction%20_processLabel(ctx%2Cselected%2Chover)%7Bif(this.labelDirty%3D%3D%3Dfalse%26%26!this.differentState(selected%2Chover))return%3Bvar%20state%3Dthis._processLabelText(ctx%2Cselected%2Chover%2Cthis.elementOptions.label)%3Bif(this.fontOptions.minWdt%3E0%26%26state.width%3Cthis.fontOptions.minWdt)%7Bstate.width%3Dthis.fontOptions.minWdt%7Dthis.size.labelHeight%3Dstate.height%3Bif(this.fontOptions.minHgt%3E0%26%26state.height%3Cthis.fontOptions.minHgt)%7Bstate.height%3Dthis.fontOptions.minHgt%7Dthis.lines%3Dstate.lines%3Bthis.lineCount%3Dstate.lines.length%3Bthis.size.width%3Dstate.width%3Bthis.size.height%3Dstate.height%3Bthis.selectedState%3Dselected%3Bthis.hoverState%3Dhover%3Bthis.labelDirty%3Dfalse%7D%7D%2C%7Bkey%3A%5C%5C%5C%22visible%5C%5C%5C%22%2Cvalue%3Afunction%20visible()%7Bif(this.size.width%3D%3D%3D0%7C%7Cthis.size.height%3D%3D%3D0%7C%7Cthis.elementOptions.label%3D%3D%3Dundefined)%7Breturn%20false%7Dvar%20viewFontSize%3Dthis.fontOptions.size*this.body.view.scale%3Bif(viewFontSize%3Cthis.elementOptions.scaling.label.drawThreshold-1)%7Breturn%20false%7Dreturn%20true%7D%7D%5D%2C%5B%7Bkey%3A%5C%5C%5C%22parseFontString%5C%5C%5C%22%2Cvalue%3Afunction%20parseFontString(outOptions%2CinOptions)%7Bif(!inOptions%7C%7Ctypeof%20inOptions!%3D%3D%5C%5C%5C%22string%5C%5C%5C%22)return%20false%3Bvar%20newOptionsArray%3DinOptions.split(%5C%5C%5C%22%20%5C%5C%5C%22)%3BoutOptions.size%3DnewOptionsArray%5B0%5D.replace(%5C%5C%5C%22px%5C%5C%5C%22%2C%5C%5C%5C%22%5C%5C%5C%22)%3BoutOptions.face%3DnewOptionsArray%5B1%5D%3BoutOptions.color%3DnewOptionsArray%5B2%5D%3Breturn%20true%7D%7D%5D)%3Breturn%20Label%7D()%3Bexports%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3DLabel%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_slicedToArray2%3D__webpack_require__(30)%3Bvar%20_slicedToArray3%3D_interopRequireDefault(_slicedToArray2)%3Bvar%20_classCallCheck2%3D__webpack_require__(0)%3Bvar%20_classCallCheck3%3D_interopRequireDefault(_classCallCheck2)%3Bvar%20_createClass2%3D__webpack_require__(1)%3Bvar%20_createClass3%3D_interopRequireDefault(_createClass2)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20util%3D__webpack_require__(2)%3Bvar%20EndPoints%3D__webpack_require__(119)%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3Bvar%20EdgeBase%3Dfunction()%7Bfunction%20EdgeBase(options%2Cbody%2ClabelModule)%7B(0%2C_classCallCheck3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2CEdgeBase)%3Bthis.body%3Dbody%3Bthis.labelModule%3DlabelModule%5C%5Cn%3Bthis.options%3D%7B%7D%3Bthis.setOptions(options)%3Bthis.colorDirty%3Dtrue%3Bthis.color%3D%7B%7D%3Bthis.selectionWidth%3D2%3Bthis.hoverWidth%3D1.5%3Bthis.fromPoint%3Dthis.from%3Bthis.toPoint%3Dthis.to%7D(0%2C_createClass3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(EdgeBase%2C%5B%7Bkey%3A%5C%5C%5C%22connect%5C%5C%5C%22%2Cvalue%3Afunction%20connect()%7Bthis.from%3Dthis.body.nodes%5Bthis.options.from%5D%3Bthis.to%3Dthis.body.nodes%5Bthis.options.to%5D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22cleanup%5C%5C%5C%22%2Cvalue%3Afunction%20cleanup()%7Breturn%20false%7D%7D%2C%7Bkey%3A%5C%5C%5C%22setOptions%5C%5C%5C%22%2Cvalue%3Afunction%20setOptions(options)%7Bthis.options%3Doptions%3Bthis.from%3Dthis.body.nodes%5Bthis.options.from%5D%3Bthis.to%3Dthis.body.nodes%5Bthis.options.to%5D%3Bthis.id%3Dthis.options.id%7D%7D%2C%7Bkey%3A%5C%5C%5C%22drawLine%5C%5C%5C%22%2Cvalue%3Afunction%20drawLine(ctx%2Cvalues%2Cselected%2Chover%2CviaNode)%7Bctx.strokeStyle%3Dthis.getColor(ctx%2Cvalues%2Cselected%2Chover)%3Bctx.lineWidth%3Dvalues.width%3Bif(values.dashes!%3D%3Dfalse)%7Bthis._drawDashedLine(ctx%2Cvalues%2CviaNode)%7Delse%7Bthis._drawLine(ctx%2Cvalues%2CviaNode)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_drawLine%5C%5C%5C%22%2Cvalue%3Afunction%20_drawLine(ctx%2Cvalues%2CviaNode%2CfromPoint%2CtoPoint)%7Bif(this.from!%3Dthis.to)%7Bthis._line(ctx%2Cvalues%2CviaNode%2CfromPoint%2CtoPoint)%7Delse%7Bvar%20_getCircleData2%3Dthis._getCircleData(ctx)%2C_getCircleData3%3D(0%2C_slicedToArray3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(_getCircleData2%2C3)%2Cx%3D_getCircleData3%5B0%5D%2Cy%3D_getCircleData3%5B1%5D%2Cradius%3D_getCircleData3%5B2%5D%3Bthis._circle(ctx%2Cvalues%2Cx%2Cy%2Cradius)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_drawDashedLine%5C%5C%5C%22%2Cvalue%3Afunction%20_drawDashedLine(ctx%2Cvalues%2CviaNode%2CfromPoint%2CtoPoint)%7Bctx.lineCap%3D%5C%5C%5C%22round%5C%5C%5C%22%3Bvar%20pattern%3D%5B5%2C5%5D%3Bif(Array.isArray(values.dashes)%3D%3D%3Dtrue)%7Bpattern%3Dvalues.dashes%7Dif(ctx.setLineDash!%3D%3Dundefined)%7Bctx.save()%3Bctx.setLineDash(pattern)%3Bctx.lineDashOffset%3D0%3Bif(this.from!%3Dthis.to)%7Bthis._line(ctx%2Cvalues%2CviaNode)%7Delse%7Bvar%20_getCircleData4%3Dthis._getCircleData(ctx)%2C_getCircleData5%3D(0%2C_slicedToArray3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(_getCircleData4%2C3)%2Cx%3D_getCircleData5%5B0%5D%2Cy%3D_getCircleData5%5B1%5D%2Cradius%3D_getCircleData5%5B2%5D%3Bthis._circle(ctx%2Cvalues%2Cx%2Cy%2Cradius)%7Dctx.setLineDash(%5B0%5D)%3Bctx.lineDashOffset%3D0%3Bctx.restore()%7Delse%7Bif(this.from!%3Dthis.to)%7Bctx.dashedLine(this.from.x%2Cthis.from.y%2Cthis.to.x%2Cthis.to.y%2Cpattern)%7Delse%7Bvar%20_getCircleData6%3Dthis._getCircleData(ctx)%2C_getCircleData7%3D(0%2C_slicedToArray3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(_getCircleData6%2C3)%2C_x%3D_getCircleData7%5B0%5D%2C_y%3D_getCircleData7%5B1%5D%2C_radius%3D_getCircleData7%5B2%5D%3Bthis._circle(ctx%2Cvalues%2C_x%2C_y%2C_radius)%7Dthis.enableShadow(ctx%2Cvalues)%3Bctx.stroke()%3Bthis.disableShadow(ctx%2Cvalues)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22findBorderPosition%5C%5C%5C%22%2Cvalue%3Afunction%20findBorderPosition(nearNode%2Cctx%2Coptions)%7Bif(this.from!%3Dthis.to)%7Breturn%20this._findBorderPosition(nearNode%2Cctx%2Coptions)%7Delse%7Breturn%20this._findBorderPositionCircle(nearNode%2Cctx%2Coptions)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22findBorderPositions%5C%5C%5C%22%2Cvalue%3Afunction%20findBorderPositions(ctx)%7Bvar%20from%3D%7B%7D%3Bvar%20to%3D%7B%7D%3Bif(this.from!%3Dthis.to)%7Bfrom%3Dthis._findBorderPosition(this.from%2Cctx)%3Bto%3Dthis._findBorderPosition(this.to%2Cctx)%7Delse%7Bvar%20_getCircleData%24slice%3Dthis._getCircleData(ctx).slice(0%2C2)%2C_getCircleData%24slice2%3D(0%2C_slicedToArray3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(_getCircleData%24slice%2C2)%2Cx%3D_getCircleData%24slice2%5B0%5D%2Cy%3D_getCircleData%24slice2%5B1%5D%3Bfrom%3Dthis._findBorderPositionCircle(this.from%2Cctx%2C%7Bx%3Ax%2Cy%3Ay%2Clow%3A.25%2Chigh%3A.6%2Cdirection%3A-1%7D)%3Bto%3Dthis._findBorderPositionCircle(this.from%2Cctx%2C%7Bx%3Ax%2Cy%3Ay%2Clow%3A.6%2Chigh%3A.8%2Cdirection%3A1%7D)%7Dreturn%7Bfrom%3Afrom%2Cto%3Ato%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_getCircleData%5C%5C%5C%22%2Cvalue%3Afunction%20_getCircleData(ctx)%7Bvar%20x%3Dvoid%200%2Cy%3Dvoid%200%3Bvar%20node%3Dthis.from%3Bvar%20radius%3Dthis.options.selfReferenceSize%3Bif(ctx!%3D%3Dundefined)%7Bif(node.shape.width%3D%3D%3Dundefined)%7Bnode.shape.resize(ctx)%7D%7Dif(node.shape.width%3Enode.shape.height)%7Bx%3Dnode.x%2Bnode.shape.width*.5%3By%3Dnode.y-radius%7Delse%7Bx%3Dnode.x%2Bradius%3By%3Dnode.y-node.shape.height*.5%7Dreturn%5Bx%2Cy%2Cradius%5D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_pointOnCircle%5C%5C%5C%22%2Cvalue%3Afunction%20_pointOnCircle(x%2Cy%2Cradius%2Cpercentage)%7Bvar%20angle%3Dpercentage*2*Math.PI%3Breturn%7Bx%3Ax%2Bradius*Math.cos(angle)%2Cy%3Ay-radius*Math.sin(angle)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_findBorderPositionCircle%5C%5C%5C%22%2Cvalue%3Afunction%20_findBorderPositionCircle(node%2Cctx%2Coptions)%7Bvar%20x%3Doptions.x%3Bvar%20y%3Doptions.y%3Bvar%20low%3Doptions.low%3Bvar%20high%3Doptions.high%3Bvar%20direction%3Doptions.direction%3Bvar%20maxIterations%3D10%3Bvar%20iteration%3D0%3Bvar%20radius%3Dthis.options.selfReferenceSize%3Bvar%20pos%3Dvoid%200%2Cangle%3Dvoid%200%2CdistanceToBorder%3Dvoid%200%2CdistanceToPoint%3Dvoid%200%2Cdifference%3Dvoid%200%3Bvar%20threshold%3D.05%3Bvar%20middle%3D(low%2Bhigh)*.5%3Bwhile(low%3C%3Dhigh%26%26iteration%3CmaxIterations)%7Bmiddle%3D(low%2Bhigh)*.5%3Bpos%3Dthis._pointOnCircle(x%2Cy%2Cradius%2Cmiddle)%3Bangle%3DMath.atan2(node.y-pos.y%2Cnode.x-pos.x)%3BdistanceToBorder%3Dnode.distanceToBorder(ctx%2Cangle)%3BdistanceToPoint%3DMath.sqrt(Math.pow(pos.x-node.x%2C2)%2BMath.pow(pos.y-node.y%2C2))%3Bdifference%3DdistanceToBorder-distanceToPoint%3Bif(Math.abs(difference)%3Cthreshold)%7Bbreak%7Delse%20if(difference%3E0)%7Bif(direction%3E0)%7Blow%3Dmiddle%7Delse%7Bhigh%3Dmiddle%7D%7Delse%7Bif(direction%3E0)%7Bhigh%3Dmiddle%7Delse%7Blow%3Dmiddle%7D%7Diteration%2B%2B%7Dpos.t%3Dmiddle%3Breturn%20pos%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getLineWidth%5C%5C%5C%22%2Cvalue%3Afunction%20getLineWidth(selected%2Chover)%7Bif(selected%3D%3D%3Dtrue)%7Breturn%20Math.max(this.selectionWidth%2C.3%2Fthis.body.view.scale)%7Delse%7Bif(hover%3D%3D%3Dtrue)%7Breturn%20Math.max(this.hoverWidth%2C.3%2Fthis.body.view.scale)%7Delse%7Breturn%20Math.max(this.options.width%2C.3%2Fthis.body.view.scale)%7D%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getColor%5C%5C%5C%22%2Cvalue%3Afunction%20getColor(ctx%2Cvalues%2Cselected%2Chover)%7Bif(values.inheritsColor!%3D%3Dfalse)%7Bif(values.inheritsColor%3D%3D%3D%5C%5C%5C%22both%5C%5C%5C%22%26%26this.from.id!%3D%3Dthis.to.id)%7Bvar%20grd%3Dctx.createLinearGradient(this.from.x%2Cthis.from.y%2Cthis.to.x%2Cthis.to.y)%3Bvar%20fromColor%3Dvoid%200%2CtoColor%3Dvoid%200%3BfromColor%3Dthis.from.options.color.highlight.border%3BtoColor%3Dthis.to.options.color.highlight.border%3Bif(this.from.selected%3D%3D%3Dfalse%26%26this.to.selected%3D%3D%3Dfalse)%7BfromColor%3Dutil.overrideOpacity(this.from.options.color.border%2Cvalues.opacity)%3BtoColor%3Dutil.overrideOpacity(this.to.options.color.border%2Cvalues.opacity)%7Delse%20if(this.from.selected%3D%3D%3Dtrue%26%26this.to.selected%3D%3D%3Dfalse)%7BtoColor%3Dthis.to.options.color.border%7Delse%20if(this.from.selected%3D%3D%3Dfalse%26%26this.to.selected%3D%3D%3Dtrue)%7BfromColor%3Dthis.from.options.color.border%7Dgrd.addColorStop(0%2CfromColor)%3Bgrd.addColorStop(1%2CtoColor)%3Breturn%20grd%7Dif(values.inheritsColor%3D%3D%3D%5C%5C%5C%22to%5C%5C%5C%22)%7Breturn%20util.overrideOpacity(this.to.options.color.border%2Cvalues.opacity)%7Delse%7Breturn%20util.overrideOpacity(this.from.options.color.border%2Cvalues.opacity)%7D%7Delse%7Breturn%20util.overrideOpacity(values.color%2Cvalues.opacity)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_circle%5C%5C%5C%22%2Cvalue%3Afunction%20_circle(ctx%2Cvalues%2Cx%2Cy%2Cradius)%7Bthis.enableShadow(ctx%2Cvalues)%3Bctx.beginPath()%3Bctx.arc(x%2Cy%2Cradius%2C0%2C2*Math.PI%2Cfalse)%3Bctx.stroke()%3Bthis.disableShadow(ctx%2Cvalues)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getDistanceToEdge%5C%5C%5C%22%2Cvalue%3Afunction%20getDistanceToEdge(x1%2Cy1%2Cx2%2Cy2%2Cx3%2Cy3%2Cvia%2Cvalues)%7Bvar%20returnValue%3D0%3Bif(this.from!%3Dthis.to)%7BreturnValue%3Dthis._getDistanceToEdge(x1%2Cy1%2Cx2%2Cy2%2Cx3%2Cy3%2Cvia)%7Delse%7Bvar%20_getCircleData8%3Dthis._getCircleData(undefined)%2C_getCircleData9%3D(0%2C_slicedToArray3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(_getCircleData8%2C3)%2Cx%3D_getCircleData9%5B0%5D%2Cy%3D_getCircleData9%5B1%5D%2Cradius%3D_getCircleData9%5B2%5D%3Bvar%20dx%3Dx-x3%3Bvar%20dy%3Dy-y3%3BreturnValue%3DMath.abs(Math.sqrt(dx*dx%2Bdy*dy)-radius)%7Dreturn%20returnValue%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_getDistanceToLine%5C%5C%5C%22%2Cvalue%3Afunction%20_getDistanceToLine(x1%2Cy1%2Cx2%2Cy2%2Cx3%2Cy3)%7Bvar%20px%3Dx2-x1%3Bvar%20py%3Dy2-y1%3Bvar%20something%3Dpx*px%2Bpy*py%3Bvar%20u%3D((x3-x1)*px%2B(y3-y1)*py)%2Fsomething%3Bif(u%3E1)%7Bu%3D1%7Delse%20if(u%3C0)%7Bu%3D0%7Dvar%20x%3Dx1%2Bu*px%3Bvar%20y%3Dy1%2Bu*py%3Bvar%20dx%3Dx-x3%3Bvar%20dy%3Dy-y3%3Breturn%20Math.sqrt(dx*dx%2Bdy*dy)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getArrowData%5C%5C%5C%22%2Cvalue%3Afunction%20getArrowData(ctx%2Cposition%2CviaNode%2Cselected%2Chover%2Cvalues)%7Bvar%20angle%3Dvoid%200%3Bvar%20arrowPoint%3Dvoid%200%3Bvar%20node1%3Dvoid%200%3Bvar%20node2%3Dvoid%200%3Bvar%20guideOffset%3Dvoid%200%3Bvar%20scaleFactor%3Dvoid%200%3Bvar%20type%3Dvoid%200%3Bvar%20lineWidth%3Dvalues.width%3Bif(position%3D%3D%3D%5C%5C%5C%22from%5C%5C%5C%22)%7Bnode1%3Dthis.from%3Bnode2%3Dthis.to%3BguideOffset%3D.1%3BscaleFactor%3Dvalues.fromArrowScale%3Btype%3Dvalues.fromArrowType%7Delse%20if(position%3D%3D%3D%5C%5C%5C%22to%5C%5C%5C%22)%7Bnode1%3Dthis.to%3Bnode2%3Dthis.from%3BguideOffset%3D-.1%3BscaleFactor%3Dvalues.toArrowScale%3Btype%3Dvalues.toArrowType%7Delse%7Bnode1%3Dthis.to%3Bnode2%3Dthis.from%3BscaleFactor%3Dvalues.middleArrowScale%3Btype%3Dvalues.middleArrowType%7Dif(node1!%3Dnode2)%7Bif(position!%3D%3D%5C%5C%5C%22middle%5C%5C%5C%22)%7Bif(this.options.smooth.enabled%3D%3D%3Dtrue)%7BarrowPoint%3Dthis.findBorderPosition(node1%2Cctx%2C%7Bvia%3AviaNode%7D)%3Bvar%20guidePos%3Dthis.getPoint(Math.max(0%2CMath.min(1%2CarrowPoint.t%2BguideOffset))%2CviaNode)%3Bangle%3DMath.atan2(arrowPoint.y-guidePos.y%2CarrowPoint.x-guidePos.x)%7Delse%7Bangle%3DMath.atan2(node1.y-node2.y%2Cnode1.x-node2.x)%3BarrowPoint%3Dthis.findBorderPosition(node1%2Cctx)%7D%7Delse%7Bangle%3DMath.atan2(node1.y-node2.y%2Cnode1.x-node2.x)%3BarrowPoint%3Dthis.getPoint(.5%2CviaNode)%7D%7Delse%7Bvar%20_getCircleData10%3Dthis._getCircleData(ctx)%2C_getCircleData11%3D(0%2C_slicedToArray3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(_getCircleData10%2C3)%2Cx%3D_getCircleData11%5B0%5D%2Cy%3D_getCircleData11%5B1%5D%2Cradius%3D_getCircleData11%5B2%5D%3Bif(position%3D%3D%3D%5C%5C%5C%22from%5C%5C%5C%22)%7BarrowPoint%3Dthis.findBorderPosition(this.from%2Cctx%2C%7Bx%3Ax%2Cy%3Ay%2Clow%3A.25%2Chigh%3A.6%2Cdirection%3A-1%7D)%3Bangle%3DarrowPoint.t*-2*Math.PI%2B1.5*Math.PI%2B.1*Math.PI%7Delse%20if(position%3D%3D%3D%5C%5C%5C%22to%5C%5C%5C%22)%7BarrowPoint%3Dthis.findBorderPosition(this.from%2Cctx%2C%7Bx%3Ax%2Cy%3Ay%2Clow%3A.6%2Chigh%3A1%2Cdirection%3A1%7D)%3Bangle%3DarrowPoint.t*-2*Math.PI%2B1.5*Math.PI-1.1*Math.PI%7Delse%7BarrowPoint%3Dthis._pointOnCircle(x%2Cy%2Cradius%2C.175)%3Bangle%3D3.9269908169872414%7D%7Dif(position%3D%3D%3D%5C%5C%5C%22middle%5C%5C%5C%22%26%26scaleFactor%3C0)lineWidth*%3D-1%3Bvar%20length%3D15*scaleFactor%2B3*lineWidth%3Bvar%20xi%3DarrowPoint.x-length*.9*Math.cos(angle)%3Bvar%20yi%3DarrowPoint.y-length*.9*Math.sin(angle)%3Bvar%20arrowCore%3D%7Bx%3Axi%2Cy%3Ayi%7D%3Breturn%7Bpoint%3AarrowPoint%2Ccore%3AarrowCore%2Cangle%3Aangle%2Clength%3Alength%2Ctype%3Atype%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22drawArrowHead%5C%5C%5C%22%2Cvalue%3Afunction%20drawArrowHead(ctx%2Cvalues%2Cselected%2Chover%2CarrowData)%7Bctx.strokeStyle%3Dthis.getColor(ctx%2Cvalues%2Cselected%2Chover)%3Bctx.fillStyle%3Dctx.strokeStyle%3Bctx.lineWidth%3Dvalues.width%3BEndPoints.draw(ctx%2CarrowData)%3Bthis.enableShadow(ctx%2Cvalues)%3Bctx.fill()%3Bthis.disableShadow(ctx%2Cvalues)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22enableShadow%5C%5C%5C%22%2Cvalue%3Afunction%20enableShadow(ctx%2Cvalues)%7Bif(values.shadow%3D%3D%3Dtrue)%7Bctx.shadowColor%3Dvalues.shadowColor%3Bctx.shadowBlur%3Dvalues.shadowSize%3Bctx.shadowOffsetX%3Dvalues.shadowX%3Bctx.shadowOffsetY%3Dvalues.shadowY%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22disableShadow%5C%5C%5C%22%2Cvalue%3Afunction%20disableShadow(ctx%2Cvalues)%7Bif(values.shadow%3D%3D%3Dtrue)%7Bctx.shadowColor%3D%5C%5C%5C%22rgba(0%2C0%2C0%2C0)%5C%5C%5C%22%3Bctx.shadowBlur%3D0%3Bctx.shadowOffsetX%3D0%3Bctx.shadowOffsetY%3D0%7D%7D%7D%5D)%3Breturn%20EdgeBase%7D()%3Bexports%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3DEdgeBase%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_getPrototypeOf%3D__webpack_require__(3)%3Bvar%20_getPrototypeOf2%3D_interopRequireDefault(_getPrototypeOf)%3Bvar%20_possibleConstructorReturn2%3D__webpack_require__(4)%3Bvar%20_possibleConstructorReturn3%3D_interopRequireDefault(_possibleConstructorReturn2)%3Bvar%20_inherits2%3D__webpack_require__(5)%3Bvar%20_inherits3%3D_interopRequireDefault(_inherits2)%3Bvar%20_classCallCheck2%3D__webpack_require__(0)%3Bvar%20_classCallCheck3%3D_interopRequireDefault(_classCallCheck2)%3Bvar%20_createClass2%3D__webpack_require__(1)%3Bvar%20_createClass3%3D_interopRequireDefault(_createClass2)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20EndPoint%3Dfunction()%7Bfunction%20EndPoint()%7B(0%2C_classCallCheck3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2CEndPoint)%7D(0%2C_createClass3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(EndPoint%2Cnull%2C%5B%7Bkey%3A%5C%5C%5C%22transform%5C%5C%5C%22%2Cvalue%3Afunction%20transform(points%2CarrowData)%7Bif(!(points%20instanceof%20Array))%7Bpoints%3D%5Bpoints%5D%7Dvar%20x%3DarrowData.point.x%3Bvar%20y%3DarrowData.point.y%3Bvar%20angle%3DarrowData.angle%3Bvar%20length%3DarrowData.length%3Bfor(var%20i%3D0%3Bi%3Cpoints.length%3B%2B%2Bi)%7Bvar%20p%3Dpoints%5Bi%5D%3Bvar%20xt%3Dp.x*Math.cos(angle)-p.y*Math.sin(angle)%3Bvar%20yt%3Dp.x*Math.sin(angle)%2Bp.y*Math.cos(angle)%3Bp.x%3Dx%2Blength*xt%3Bp.y%3Dy%2Blength*yt%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22drawPath%5C%5C%5C%22%2Cvalue%3Afunction%20drawPath(ctx%2Cpoints)%7Bctx.beginPath()%3Bctx.moveTo(points%5B0%5D.x%2Cpoints%5B0%5D.y)%3Bfor(var%20i%3D1%3Bi%3Cpoints.length%3B%2B%2Bi)%7Bctx.lineTo(points%5Bi%5D.x%2Cpoints%5Bi%5D.y)%7Dctx.closePath()%7D%7D%5D)%3Breturn%20EndPoint%7D()%3Bvar%20Arrow%3Dfunction(_EndPoint)%7B(0%2C_inherits3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(Arrow%2C_EndPoint)%3Bfunction%20Arrow()%7B(0%2C_classCallCheck3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2CArrow)%3Breturn(0%2C_possibleConstructorReturn3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2C(Arrow.__proto__%7C%7C(0%2C_getPrototypeOf2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(Arrow)).apply(this%2Carguments))%7D(0%2C_createClass3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(Arrow%2Cnull%2C%5B%7Bkey%3A%5C%5C%5C%22draw%5C%5C%5C%22%2Cvalue%3Afunction%20draw(ctx%2CarrowData)%7Bvar%20points%3D%5B%7Bx%3A0%2Cy%3A0%7D%2C%7Bx%3A-1%2Cy%3A.3%7D%2C%7Bx%3A-.9%2Cy%3A0%7D%2C%7Bx%3A-1%2Cy%3A-.3%7D%5D%3BEndPoint.transform(points%2CarrowData)%3BEndPoint.drawPath(ctx%2Cpoints)%7D%7D%5D)%3Breturn%20Arrow%7D(EndPoint)%3Bvar%20Circle%3Dfunction()%7Bfunction%20Circle()%7B(0%2C_classCallCheck3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2CCircle)%7D(0%2C_createClass3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(Circle%2Cnull%2C%5B%7Bkey%3A%5C%5C%5C%22draw%5C%5C%5C%22%2Cvalue%3Afunction%20draw(ctx%2CarrowData)%7Bvar%20point%3D%7Bx%3A-.4%2Cy%3A0%7D%3BEndPoint.transform(point%2CarrowData)%3Bctx.circle(point.x%2Cpoint.y%2CarrowData.length*.4)%7D%7D%5D)%3Breturn%20Circle%7D()%3Bvar%20Bar%3Dfunction()%7Bfunction%20Bar()%7B(0%2C_classCallCheck3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2CBar)%7D(0%2C_createClass3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(Bar%2Cnull%2C%5B%7Bkey%3A%5C%5C%5C%22draw%5C%5C%5C%22%2Cvalue%3Afunction%20draw(ctx%2CarrowData)%7Bvar%20points%3D%5B%7Bx%3A0%2Cy%3A.5%7D%2C%7Bx%3A0%2Cy%3A-.5%7D%2C%7Bx%3A-.15%2Cy%3A-.5%7D%2C%7Bx%3A-.15%2Cy%3A.5%7D%5D%3BEndPoint.transform(points%2CarrowData)%3BEndPoint.drawPath(ctx%2Cpoints)%7D%7D%5D)%3Breturn%20Bar%7D()%3Bvar%20EndPoints%3Dfunction()%7Bfunction%20EndPoints()%7B(0%2C_classCallCheck3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2CEndPoints)%7D(0%2C_createClass3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(EndPoints%2Cnull%2C%5B%7Bkey%3A%5C%5C%5C%22draw%5C%5C%5C%22%2Cvalue%3Afunction%20draw(ctx%2CarrowData)%7Bvar%20type%3Bif(arrowData.type)%7Btype%3DarrowData.type.toLowerCase()%7Dswitch(type)%7Bcase%5C%5C%5C%22circle%5C%5C%5C%22%3ACircle.draw(ctx%2CarrowData)%3Bbreak%3Bcase%5C%5C%5C%22bar%5C%5C%5C%22%3ABar.draw(ctx%2CarrowData)%3Bbreak%3Bcase%5C%5C%5C%22arrow%5C%5C%5C%22%3Adefault%3AArrow.draw(ctx%2CarrowData)%7D%7D%7D%5D)%3Breturn%20EndPoints%7D()%3Bexports%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3DEndPoints%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_classCallCheck2%3D__webpack_require__(0)%3Bvar%20_classCallCheck3%3D_interopRequireDefault(_classCallCheck2)%3Bvar%20_createClass2%3D__webpack_require__(1)%3Bvar%20_createClass3%3D_interopRequireDefault(_createClass2)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20BarnesHutSolver%3Dfunction()%7Bfunction%20BarnesHutSolver(body%2CphysicsBody%2Coptions)%7B(0%2C_classCallCheck3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2CBarnesHutSolver)%3Bthis.body%3Dbody%3Bthis.physicsBody%3DphysicsBody%3Bthis.barnesHutTree%3Bthis.setOptions(options)%3Bthis.randomSeed%3D5%7D(0%2C_createClass3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(BarnesHutSolver%2C%5B%7Bkey%3A%5C%5C%5C%22setOptions%5C%5C%5C%22%2Cvalue%3Afunction%20setOptions(options)%7Bthis.options%3Doptions%3Bthis.thetaInversed%3D1%2Fthis.options.theta%3Bthis.overlapAvoidanceFactor%3D1-Math.max(0%2CMath.min(1%2Cthis.options.avoidOverlap))%7D%7D%2C%7Bkey%3A%5C%5C%5C%22seededRandom%5C%5C%5C%22%2Cvalue%3Afunction%20seededRandom()%7Bvar%20x%3DMath.sin(this.randomSeed%2B%2B)*1e4%3Breturn%20x-Math.floor(x)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22solve%5C%5C%5C%22%2Cvalue%3Afunction%20solve()%7Bif(this.options.gravitationalConstant!%3D%3D0%26%26this.physicsBody.physicsNodeIndices.length%3E0)%7Bvar%20node%3Dvoid%200%3Bvar%20nodes%3Dthis.body.nodes%3Bvar%20nodeIndices%3Dthis.physicsBody.physicsNodeIndices%3Bvar%20nodeCount%3DnodeIndices.length%3Bvar%20barnesHutTree%3Dthis._formBarnesHutTree(nodes%2CnodeIndices)%3Bthis.barnesHutTree%3DbarnesHutTree%3Bfor(var%20i%3D0%3Bi%3CnodeCount%3Bi%2B%2B)%7Bnode%3Dnodes%5BnodeIndices%5Bi%5D%5D%3Bif(node.options.mass%3E0)%7Bthis._getForceContributions(barnesHutTree.root%2Cnode)%7D%7D%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_getForceContributions%5C%5C%5C%22%2Cvalue%3Afunction%20_getForceContributions(parentBranch%2Cnode)%7Bthis._getForceContribution(parentBranch.children.NW%2Cnode)%3Bthis._getForceContribution(parentBranch.children.NE%2Cnode)%3Bthis._getForceContribution(parentBranch.children.SW%2Cnode)%3Bthis._getForceContribution(parentBranch.children.SE%2Cnode)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_getForceContribution%5C%5C%5C%22%2Cvalue%3Afunction%20_getForceContribution(parentBranch%2Cnode)%7Bif(parentBranch.childrenCount%3E0)%7Bvar%20dx%3Dvoid%200%2Cdy%3Dvoid%200%2Cdistance%3Dvoid%200%3Bdx%3DparentBranch.centerOfMass.x-node.x%3Bdy%3DparentBranch.centerOfMass.y-node.y%3Bdistance%3DMath.sqrt(dx*dx%2Bdy*dy)%3Bif(distance*parentBranch.calcSize%3Ethis.thetaInversed)%7Bthis._calculateForces(distance%2Cdx%2Cdy%2Cnode%2CparentBranch)%7Delse%7Bif(parentBranch.childrenCount%3D%3D%3D4)%7Bthis._getForceContributions(parentBranch%2Cnode)%7Delse%7Bif(parentBranch.children.data.id!%3Dnode.id)%7Bthis._calculateForces(distance%2Cdx%2Cdy%2Cnode%2CparentBranch)%7D%7D%7D%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_calculateForces%5C%5C%5C%22%2Cvalue%3Afunction%20_calculateForces(distance%2Cdx%2Cdy%2Cnode%2CparentBranch)%7Bif(distance%3D%3D%3D0)%7Bdistance%3D.1%3Bdx%3Ddistance%7Dif(this.overlapAvoidanceFactor%3C1%26%26node.shape.radius)%7Bdistance%3DMath.max(.1%2Bthis.overlapAvoidanceFactor*node.shape.radius%2Cdistance-node.shape.radius)%7Dvar%20gravityForce%3Dthis.options.gravitationalConstant*parentBranch.mass*node.options.mass%2FMath.pow(distance%2C3)%3Bvar%20fx%3Ddx*gravityForce%3Bvar%20fy%3Ddy*gravityForce%3Bthis.physicsBody.forces%5Bnode.id%5D.x%2B%3Dfx%3Bthis.physicsBody.forces%5Bnode.id%5D.y%2B%3Dfy%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_formBarnesHutTree%5C%5C%5C%22%2Cvalue%3Afunction%20_formBarnesHutTree(nodes%2CnodeIndices)%7Bvar%20node%3Dvoid%200%3Bvar%20nodeCount%3DnodeIndices.length%3Bvar%20minX%3Dnodes%5BnodeIndices%5B0%5D%5D.x%3Bvar%20minY%3Dnodes%5BnodeIndices%5B0%5D%5D.y%3Bvar%20maxX%3Dnodes%5BnodeIndices%5B0%5D%5D.x%3Bvar%20maxY%3Dnodes%5BnodeIndices%5B0%5D%5D.y%3Bfor(var%20i%3D1%3Bi%3CnodeCount%3Bi%2B%2B)%7Bvar%20_node%3Dnodes%5BnodeIndices%5Bi%5D%5D%3Bvar%20x%3D_node.x%3Bvar%20y%3D_node.y%3Bif(_node.options.mass%3E0)%7Bif(x%3CminX)%7BminX%3Dx%7Dif(x%3EmaxX)%7BmaxX%3Dx%7Dif(y%3CminY)%7BminY%3Dy%7Dif(y%3EmaxY)%7BmaxY%3Dy%7D%7D%7Dvar%20sizeDiff%3DMath.abs(maxX-minX)-Math.abs(maxY-minY)%3Bif(sizeDiff%3E0)%7BminY-%3D.5*sizeDiff%3BmaxY%2B%3D.5*sizeDiff%7Delse%7BminX%2B%3D.5*sizeDiff%3BmaxX-%3D.5*sizeDiff%7Dvar%20minimumTreeSize%3D1e-5%3Bvar%20rootSize%3DMath.max(minimumTreeSize%2CMath.abs(maxX-minX))%3Bvar%20halfRootSize%3D.5*rootSize%3Bvar%20centerX%3D.5*(minX%2BmaxX)%2CcenterY%3D.5*(minY%2BmaxY)%3Bvar%20barnesHutTree%3D%7Broot%3A%7BcenterOfMass%3A%7Bx%3A0%2Cy%3A0%7D%2Cmass%3A0%2Crange%3A%7BminX%3AcenterX-halfRootSize%2CmaxX%3AcenterX%2BhalfRootSize%2CminY%3AcenterY-halfRootSize%2CmaxY%3AcenterY%2BhalfRootSize%7D%2Csize%3ArootSize%2CcalcSize%3A1%2FrootSize%2Cchildren%3A%7Bdata%3Anull%7D%2CmaxWidth%3A0%2Clevel%3A0%2CchildrenCount%3A4%7D%7D%3Bthis._splitBranch(barnesHutTree.root)%3Bfor(var%20_i%3D0%3B_i%3CnodeCount%3B_i%2B%2B)%7Bnode%3Dnodes%5BnodeIndices%5B_i%5D%5D%3Bif(node.options.mass%3E0)%7Bthis._placeInTree(barnesHutTree.root%2Cnode)%7D%7Dreturn%20barnesHutTree%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_updateBranchMass%5C%5C%5C%22%2Cvalue%3Afunction%20_updateBranchMass(parentBranch%2Cnode)%7Bvar%20centerOfMass%3DparentBranch.centerOfMass%3Bvar%20totalMass%3DparentBranch.mass%2Bnode.options.mass%3Bvar%20totalMassInv%3D1%2FtotalMass%3BcenterOfMass.x%3DcenterOfMass.x*parentBranch.mass%2Bnode.x*node.options.mass%3BcenterOfMass.x*%3DtotalMassInv%3BcenterOfMass.y%3DcenterOfMass.y*parentBranch.mass%2Bnode.y*node.options.mass%3BcenterOfMass.y*%3DtotalMassInv%3BparentBranch.mass%3DtotalMass%3Bvar%20biggestSize%3DMath.max(Math.max(node.height%2Cnode.radius)%2Cnode.width)%3BparentBranch.maxWidth%3DparentBranch.maxWidth%3CbiggestSize%3FbiggestSize%3AparentBranch.maxWidth%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_placeInTree%5C%5C%5C%22%2Cvalue%3Afunction%20_placeInTree(parentBranch%2Cnode%2CskipMassUpdate)%7Bif(skipMassUpdate!%3Dtrue%7C%7CskipMassUpdate%3D%3D%3Dundefined)%7Bthis._updateBranchMass(parentBranch%2Cnode)%7Dvar%20range%3DparentBranch.children.NW.range%3Bvar%20region%3Dvoid%200%3Bif(range.maxX%3Enode.x)%7Bif(range.maxY%3Enode.y)%7Bregion%3D%5C%5C%5C%22NW%5C%5C%5C%22%7Delse%7Bregion%3D%5C%5C%5C%22SW%5C%5C%5C%22%7D%7Delse%7Bif(range.maxY%3Enode.y)%7Bregion%3D%5C%5C%5C%22NE%5C%5C%5C%22%7Delse%7Bregion%3D%5C%5C%5C%22SE%5C%5C%5C%22%7D%7Dthis._placeInRegion(parentBranch%2Cnode%2Cregion)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_placeInRegion%5C%5C%5C%22%2Cvalue%3Afunction%20_placeInRegion(parentBranch%2Cnode%2Cregion)%7Bvar%20children%3DparentBranch.children%5Bregion%5D%3Bswitch(children.childrenCount)%7Bcase%200%3Achildren.children.data%3Dnode%3Bchildren.childrenCount%3D1%3Bthis._updateBranchMass(children%2Cnode)%3Bbreak%3Bcase%201%3Aif(children.children.data.x%3D%3D%3Dnode.x%26%26children.children.data.y%3D%3D%3Dnode.y)%7Bnode.x%2B%3Dthis.seededRandom()%3Bnode.y%2B%3Dthis.seededRandom()%7Delse%7Bthis._splitBranch(children)%3Bthis._placeInTree(children%2Cnode)%7Dbreak%3Bcase%204%3Athis._placeInTree(children%2Cnode)%3Bbreak%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_splitBranch%5C%5C%5C%22%2Cvalue%3Afunction%20_splitBranch(parentBranch)%7Bvar%20containedNode%3Dnull%3Bif(parentBranch.childrenCount%3D%3D%3D1)%7BcontainedNode%3DparentBranch.children.data%3BparentBranch.mass%3D0%3BparentBranch.centerOfMass.x%3D0%3BparentBranch.centerOfMass.y%3D0%7DparentBranch.childrenCount%3D4%3BparentBranch.children.data%3Dnull%3Bthis._insertRegion(parentBranch%2C%5C%5C%5C%22NW%5C%5C%5C%22)%3Bthis._insertRegion(parentBranch%2C%5C%5C%5C%22NE%5C%5C%5C%22)%3Bthis._insertRegion(parentBranch%2C%5C%5C%5C%22SW%5C%5C%5C%22)%3Bthis._insertRegion(parentBranch%2C%5C%5C%5C%22SE%5C%5C%5C%22)%3Bif(containedNode!%3Dnull)%7Bthis._placeInTree(parentBranch%2CcontainedNode)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_insertRegion%5C%5C%5C%22%2Cvalue%3Afunction%20_insertRegion(parentBranch%2Cregion)%7Bvar%20minX%3Dvoid%200%2CmaxX%3Dvoid%200%2CminY%3Dvoid%200%2CmaxY%3Dvoid%200%3Bvar%20childSize%3D.5*parentBranch.size%3Bswitch(region)%7Bcase%5C%5C%5C%22NW%5C%5C%5C%22%3AminX%3DparentBranch.range.minX%3BmaxX%3DparentBranch.range.minX%2BchildSize%3BminY%3DparentBranch.range.minY%3BmaxY%3DparentBranch.range.minY%2BchildSize%3Bbreak%3Bcase%5C%5C%5C%22NE%5C%5C%5C%22%3AminX%3DparentBranch.range.minX%2BchildSize%3BmaxX%3DparentBranch.range.maxX%3BminY%3DparentBranch.range.minY%3BmaxY%3DparentBranch.range.minY%2BchildSize%3Bbreak%3Bcase%5C%5C%5C%22SW%5C%5C%5C%22%3AminX%3DparentBranch.range.minX%3BmaxX%3DparentBranch.range.minX%2BchildSize%3BminY%3DparentBranch.range.minY%2BchildSize%3BmaxY%3DparentBranch.range.maxY%3Bbreak%3Bcase%5C%5C%5C%22SE%5C%5C%5C%22%3AminX%3DparentBranch.range.minX%2BchildSize%3BmaxX%3DparentBranch.range.maxX%3BminY%3DparentBranch.range.minY%2BchildSize%3BmaxY%3DparentBranch.range.maxY%3Bbreak%7DparentBranch.children%5Bregion%5D%3D%7BcenterOfMass%3A%7Bx%3A0%2Cy%3A0%7D%2Cmass%3A0%2Crange%3A%7BminX%3AminX%2CmaxX%3AmaxX%2CminY%3AminY%2CmaxY%3AmaxY%7D%2Csize%3A.5*parentBranch.size%2CcalcSize%3A2*parentBranch.calcSize%2Cchildren%3A%7Bdata%3Anull%7D%2CmaxWidth%3A0%2Clevel%3AparentBranch.level%2B1%2CchildrenCount%3A0%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_debug%5C%5C%5C%22%2Cvalue%3Afunction%20_debug(ctx%2Ccolor)%7Bif(this.barnesHutTree!%3D%3Dundefined)%7Bctx.lineWidth%3D1%3Bthis._drawBranch(this.barnesHutTree.root%2Cctx%2Ccolor)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_drawBranch%5C%5C%5C%22%2Cvalue%3Afunction%20_drawBranch(branch%2Cctx%2Ccolor)%7Bif(color%3D%3D%3Dundefined)%7Bcolor%3D%5C%5C%5C%22%23FF0000%5C%5C%5C%22%7Dif(branch.childrenCount%3D%3D%3D4)%7Bthis._drawBranch(branch.children.NW%2Cctx)%3Bthis._drawBranch(branch.children.NE%2Cctx)%3Bthis._drawBranch(branch.children.SE%2Cctx)%3Bthis._drawBranch(branch.children.SW%2Cctx)%7Dctx.strokeStyle%3Dcolor%3Bctx.beginPath()%3Bctx.moveTo(branch.range.minX%2Cbranch.range.minY)%3Bctx.lineTo(branch.range.maxX%2Cbranch.range.minY)%3Bctx.stroke()%3Bctx.beginPath()%3Bctx.moveTo(branch.range.maxX%2Cbranch.range.minY)%3Bctx.lineTo(branch.range.maxX%2Cbranch.range.maxY)%3Bctx.stroke()%3Bctx.beginPath()%3Bctx.moveTo(branch.range.maxX%2Cbranch.range.maxY)%3Bctx.lineTo(branch.range.minX%2Cbranch.range.maxY)%3Bctx.stroke()%3Bctx.beginPath()%3Bctx.moveTo(branch.range.minX%2Cbranch.range.maxY)%3Bctx.lineTo(branch.range.minX%2Cbranch.range.minY)%3Bctx.stroke()%7D%7D%5D)%3Breturn%20BarnesHutSolver%7D()%3Bexports%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3DBarnesHutSolver%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_classCallCheck2%3D__webpack_require__(0)%3Bvar%20_classCallCheck3%3D_interopRequireDefault(_classCallCheck2)%3Bvar%20_createClass2%3D__webpack_require__(1)%3Bvar%20_createClass3%3D_interopRequireDefault(_createClass2)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20CentralGravitySolver%3Dfunction()%7Bfunction%20CentralGravitySolver(body%2CphysicsBody%2Coptions)%7B(0%2C_classCallCheck3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2CCentralGravitySolver)%3Bthis.body%3Dbody%3Bthis.physicsBody%3DphysicsBody%3Bthis.setOptions(options)%7D(0%2C_createClass3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(CentralGravitySolver%2C%5B%7Bkey%3A%5C%5C%5C%22setOptions%5C%5C%5C%22%2Cvalue%3Afunction%20setOptions(options)%7Bthis.options%3Doptions%7D%7D%2C%7Bkey%3A%5C%5C%5C%22solve%5C%5C%5C%22%2Cvalue%3Afunction%20solve()%7Bvar%20dx%3Dvoid%200%2Cdy%3Dvoid%200%2Cdistance%3Dvoid%200%2Cnode%3Dvoid%200%3Bvar%20nodes%3Dthis.body.nodes%3Bvar%20nodeIndices%3Dthis.physicsBody.physicsNodeIndices%3Bvar%20forces%3Dthis.physicsBody.forces%3Bfor(var%20i%3D0%3Bi%3CnodeIndices.length%3Bi%2B%2B)%7Bvar%20nodeId%3DnodeIndices%5Bi%5D%3Bnode%3Dnodes%5BnodeId%5D%3Bdx%3D-node.x%3Bdy%3D-node.y%3Bdistance%3DMath.sqrt(dx*dx%2Bdy*dy)%3Bthis._calculateForces(distance%2Cdx%2Cdy%2Cforces%2Cnode)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_calculateForces%5C%5C%5C%22%2Cvalue%3Afunction%20_calculateForces(distance%2Cdx%2Cdy%2Cforces%2Cnode)%7Bvar%20gravityForce%3Ddistance%3D%3D%3D0%3F0%3Athis.options.centralGravity%2Fdistance%3Bforces%5Bnode.id%5D.x%3Ddx*gravityForce%3Bforces%5Bnode.id%5D.y%3Ddy*gravityForce%7D%7D%5D)%3Breturn%20CentralGravitySolver%7D()%3Bexports%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3DCentralGravitySolver%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20string%3D%5C%5C%5C%22string%5C%5C%5C%22%3Bvar%20bool%3D%5C%5C%5C%22boolean%5C%5C%5C%22%3Bvar%20number%3D%5C%5C%5C%22number%5C%5C%5C%22%3Bvar%20array%3D%5C%5C%5C%22array%5C%5C%5C%22%3Bvar%20object%3D%5C%5C%5C%22object%5C%5C%5C%22%3Bvar%20dom%3D%5C%5C%5C%22dom%5C%5C%5C%22%3Bvar%20any%3D%5C%5C%5C%22any%5C%5C%5C%22%3Bvar%20endPoints%3D%5B%5C%5C%5C%22arrow%5C%5C%5C%22%2C%5C%5C%5C%22circle%5C%5C%5C%22%2C%5C%5C%5C%22bar%5C%5C%5C%22%5D%3Bvar%20allOptions%3D%7Bconfigure%3A%7Benabled%3A%7Bboolean%3Abool%7D%2Cfilter%3A%7Bboolean%3Abool%2Cstring%3Astring%2Carray%3Aarray%2Cfunction%3A%5C%5C%5C%22function%5C%5C%5C%22%7D%2Ccontainer%3A%7Bdom%3Adom%7D%2CshowButton%3A%7Bboolean%3Abool%7D%2C__type__%3A%7Bobject%3Aobject%2Cboolean%3Abool%2Cstring%3Astring%2Carray%3Aarray%2Cfunction%3A%5C%5C%5C%22function%5C%5C%5C%22%7D%7D%2Cedges%3A%7Barrows%3A%7Bto%3A%7Benabled%3A%7Bboolean%3Abool%7D%2CscaleFactor%3A%7Bnumber%3Anumber%7D%2Ctype%3A%7Bstring%3AendPoints%7D%2C__type__%3A%7Bobject%3Aobject%2Cboolean%3Abool%7D%7D%2Cmiddle%3A%7Benabled%3A%7Bboolean%3Abool%7D%2CscaleFactor%3A%7Bnumber%3Anumber%7D%2Ctype%3A%7Bstring%3AendPoints%7D%2C__type__%3A%7Bobject%3Aobject%2Cboolean%3Abool%7D%7D%2Cfrom%3A%7Benabled%3A%7Bboolean%3Abool%7D%2CscaleFactor%3A%7Bnumber%3Anumber%7D%2Ctype%3A%7Bstring%3AendPoints%7D%2C__type__%3A%7Bobject%3Aobject%2Cboolean%3Abool%7D%7D%2C__type__%3A%7Bstring%3A%5B%5C%5C%5C%22from%5C%5C%5C%22%2C%5C%5C%5C%22to%5C%5C%5C%22%2C%5C%5C%5C%22middle%5C%5C%5C%22%5D%2Cobject%3Aobject%7D%7D%2CarrowStrikethrough%3A%7Bboolean%3Abool%7D%2Cchosen%3A%7Blabel%3A%7Bboolean%3Abool%2Cfunction%3A%5C%5C%5C%22function%5C%5C%5C%22%7D%2Cedge%3A%7Bboolean%3Abool%2Cfunction%3A%5C%5C%5C%22function%5C%5C%5C%22%7D%2C__type__%3A%7Bobject%3Aobject%2Cboolean%3Abool%7D%7D%2Ccolor%3A%7Bcolor%3A%7Bstring%3Astring%7D%2Chighlight%3A%7Bstring%3Astring%7D%2Chover%3A%7Bstring%3Astring%7D%2Cinherit%3A%7Bstring%3A%5B%5C%5C%5C%22from%5C%5C%5C%22%2C%5C%5C%5C%22to%5C%5C%5C%22%2C%5C%5C%5C%22both%5C%5C%5C%22%5D%2Cboolean%3Abool%7D%2Copacity%3A%7Bnumber%3Anumber%7D%2C__type__%3A%7Bobject%3Aobject%2Cstring%3Astring%7D%7D%2Cdashes%3A%7Bboolean%3Abool%2Carray%3Aarray%7D%2Cfont%3A%7Bcolor%3A%7Bstring%3Astring%7D%2Csize%3A%7Bnumber%3Anumber%7D%2Cface%3A%7Bstring%3Astring%7D%2Cbackground%3A%7Bstring%3Astring%7D%2CstrokeWidth%3A%7Bnumber%3Anumber%7D%2CstrokeColor%3A%7Bstring%3Astring%7D%2Calign%3A%7Bstring%3A%5B%5C%5C%5C%22horizontal%5C%5C%5C%22%2C%5C%5C%5C%22top%5C%5C%5C%22%2C%5C%5C%5C%22middle%5C%5C%5C%22%2C%5C%5C%5C%22bottom%5C%5C%5C%22%5D%7D%2Cvadjust%3A%7Bnumber%3Anumber%7D%2Cmulti%3A%7Bboolean%3Abool%2Cstring%3Astring%7D%2Cbold%3A%7Bcolor%3A%7Bstring%3Astring%7D%2Csize%3A%7Bnumber%3Anumber%7D%2Cface%3A%7Bstring%3Astring%7D%2Cmod%3A%7Bstring%3Astring%7D%2Cvadjust%3A%7Bnumber%3Anumber%7D%2C__type__%3A%7Bobject%3Aobject%2Cstring%3Astring%7D%7D%2Cboldital%3A%7Bcolor%3A%7Bstring%3Astring%7D%2Csize%3A%7Bnumber%3Anumber%7D%2Cface%3A%7Bstring%3Astring%7D%2Cmod%3A%7Bstring%3Astring%7D%2Cvadjust%3A%7Bnumber%3Anumber%7D%2C__type__%3A%7Bobject%3Aobject%2Cstring%3Astring%7D%7D%2Cital%3A%7Bcolor%3A%7Bstring%3Astring%7D%2Csize%3A%7Bnumber%3Anumber%7D%2Cface%3A%7Bstring%3Astring%7D%2Cmod%3A%7Bstring%3Astring%7D%2Cvadjust%3A%7Bnumber%3Anumber%7D%2C__type__%3A%7Bobject%3Aobject%2Cstring%3Astring%7D%7D%2Cmono%3A%7Bcolor%3A%7Bstring%3Astring%7D%2Csize%3A%7Bnumber%3Anumber%7D%2Cface%3A%7Bstring%3Astring%7D%2Cmod%3A%7Bstring%3Astring%7D%2Cvadjust%3A%7Bnumber%3Anumber%7D%2C__type__%3A%7Bobject%3Aobject%2Cstring%3Astring%7D%7D%2C__type__%3A%7Bobject%3Aobject%2Cstring%3Astring%7D%7D%2Chidden%3A%7Bboolean%3Abool%7D%2ChoverWidth%3A%7Bfunction%3A%5C%5C%5C%22function%5C%5C%5C%22%2Cnumber%3Anumber%7D%2Clabel%3A%7Bstring%3Astring%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2ClabelHighlightBold%3A%7Bboolean%3Abool%7D%2Clength%3A%7Bnumber%3Anumber%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2Cphysics%3A%7Bboolean%3Abool%7D%2Cscaling%3A%7Bmin%3A%7Bnumber%3Anumber%7D%2Cmax%3A%7Bnumber%3Anumber%7D%2Clabel%3A%7Benabled%3A%7Bboolean%3Abool%7D%2Cmin%3A%7Bnumber%3Anumber%7D%2Cmax%3A%7Bnumber%3Anumber%7D%2CmaxVisible%3A%7Bnumber%3Anumber%7D%2CdrawThreshold%3A%7Bnumber%3Anumber%7D%2C__type__%3A%7Bobject%3Aobject%2Cboolean%3Abool%7D%7D%2CcustomScalingFunction%3A%7Bfunction%3A%5C%5C%5C%22function%5C%5C%5C%22%7D%2C__type__%3A%7Bobject%3Aobject%7D%7D%2CselectionWidth%3A%7Bfunction%3A%5C%5C%5C%22function%5C%5C%5C%22%2Cnumber%3Anumber%7D%2CselfReferenceSize%3A%7Bnumber%3Anumber%7D%2Cshadow%3A%7Benabled%3A%7Bboolean%3Abool%7D%2Ccolor%3A%7Bstring%3Astring%7D%2Csize%3A%7Bnumber%3Anumber%7D%2Cx%3A%7Bnumber%3Anumber%7D%2Cy%3A%7Bnumber%3Anumber%7D%2C__type__%3A%7Bobject%3Aobject%2Cboolean%3Abool%7D%7D%2Csmooth%3A%7Benabled%3A%7Bboolean%3Abool%7D%2Ctype%3A%7Bstring%3A%5B%5C%5C%5C%22dynamic%5C%5C%5C%22%2C%5C%5C%5C%22continuous%5C%5C%5C%22%2C%5C%5C%5C%22discrete%5C%5C%5C%22%2C%5C%5C%5C%22diagonalCross%5C%5C%5C%22%2C%5C%5C%5C%22straightCross%5C%5C%5C%22%2C%5C%5C%5C%22horizontal%5C%5C%5C%22%2C%5C%5C%5C%22vertical%5C%5C%5C%22%2C%5C%5C%5C%22curvedCW%5C%5C%5C%22%2C%5C%5C%5C%22curvedCCW%5C%5C%5C%22%2C%5C%5C%5C%22cubicBezier%5C%5C%5C%22%5D%7D%2Croundness%3A%7Bnumber%3Anumber%7D%2CforceDirection%3A%7Bstring%3A%5B%5C%5C%5C%22horizontal%5C%5C%5C%22%2C%5C%5C%5C%22vertical%5C%5C%5C%22%2C%5C%5C%5C%22none%5C%5C%5C%22%5D%2Cboolean%3Abool%7D%2C__type__%3A%7Bobject%3Aobject%2Cboolean%3Abool%7D%7D%2Ctitle%3A%7Bstring%3Astring%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2Cwidth%3A%7Bnumber%3Anumber%7D%2CwidthConstraint%3A%7Bmaximum%3A%7Bnumber%3Anumber%7D%2C__type__%3A%7Bobject%3Aobject%2Cboolean%3Abool%2Cnumber%3Anumber%7D%7D%2Cvalue%3A%7Bnumber%3Anumber%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2C__type__%3A%7Bobject%3Aobject%7D%7D%2Cgroups%3A%7BuseDefaultGroups%3A%7Bboolean%3Abool%7D%2C__any__%3A%5C%5C%5C%22get%20from%20nodes%2C%20will%20be%20overwritten%20below%5C%5C%5C%22%2C__type__%3A%7Bobject%3Aobject%7D%7D%2Cinteraction%3A%7BdragNodes%3A%7Bboolean%3Abool%7D%2CdragView%3A%7Bboolean%3Abool%7D%2ChideEdgesOnDrag%3A%7Bboolean%3Abool%7D%2ChideNodesOnDrag%3A%7Bboolean%3Abool%7D%2Chover%3A%7Bboolean%3Abool%7D%2Ckeyboard%3A%7Benabled%3A%7Bboolean%3Abool%7D%2Cspeed%3A%7Bx%3A%7Bnumber%3Anumber%7D%2Cy%3A%7Bnumber%3Anumber%7D%2Czoom%3A%7Bnumber%3Anumber%7D%2C__type__%3A%7Bobject%3Aobject%7D%7D%2CbindToWindow%3A%7Bboolean%3Abool%7D%2C__type__%3A%7Bobject%3Aobject%2Cboolean%3Abool%7D%7D%2Cmultiselect%3A%7Bboolean%3Abool%7D%2CnavigationButtons%3A%7Bboolean%3Abool%7D%2Cselectable%3A%7Bboolean%3Abool%7D%2CselectConnectedEdges%3A%7Bboolean%3Abool%7D%2ChoverConnectedEdges%3A%7Bboolean%3Abool%7D%2CtooltipDelay%3A%7Bnumber%3Anumber%7D%2CzoomView%3A%7Bboolean%3Abool%7D%2C__type__%3A%7Bobject%3Aobject%7D%7D%2Clayout%3A%7BrandomSeed%3A%7Bundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%2Cnumber%3Anumber%7D%2CimprovedLayout%3A%7Bboolean%3Abool%7D%2Chierarchical%3A%7Benabled%3A%7Bboolean%3Abool%7D%2ClevelSeparation%3A%7Bnumber%3Anumber%7D%2CnodeSpacing%3A%7Bnumber%3Anumber%7D%2CtreeSpacing%3A%7Bnumber%3Anumber%7D%2CblockShifting%3A%7Bboolean%3Abool%7D%2CedgeMinimization%3A%7Bboolean%3Abool%7D%2CparentCentralization%3A%7Bboolean%3Abool%7D%2Cdirection%3A%7Bstring%3A%5B%5C%5C%5C%22UD%5C%5C%5C%22%2C%5C%5C%5C%22DU%5C%5C%5C%22%2C%5C%5C%5C%22LR%5C%5C%5C%22%2C%5C%5C%5C%22RL%5C%5C%5C%22%5D%7D%2CsortMethod%3A%7Bstring%3A%5B%5C%5C%5C%22hubsize%5C%5C%5C%22%2C%5C%5C%5C%22directed%5C%5C%5C%22%5D%7D%2C__type__%3A%7Bobject%3Aobject%2Cboolean%3Abool%7D%7D%2C__type__%3A%7Bobject%3Aobject%7D%7D%2Cmanipulation%3A%7Benabled%3A%7Bboolean%3Abool%7D%2CinitiallyActive%3A%7Bboolean%3Abool%7D%2CaddNode%3A%7Bboolean%3Abool%2Cfunction%3A%5C%5C%5C%22function%5C%5C%5C%22%7D%2CaddEdge%3A%7Bboolean%3Abool%2Cfunction%3A%5C%5C%5C%22function%5C%5C%5C%22%7D%2CeditNode%3A%7Bfunction%3A%5C%5C%5C%22function%5C%5C%5C%22%7D%2CeditEdge%3A%7BeditWithoutDrag%3A%7Bfunction%3A%5C%5C%5C%22function%5C%5C%5C%22%7D%2C__type__%3A%7Bobject%3Aobject%2Cboolean%3Abool%2Cfunction%3A%5C%5C%5C%22function%5C%5C%5C%22%7D%7D%2CdeleteNode%3A%7Bboolean%3Abool%2Cfunction%3A%5C%5C%5C%22function%5C%5C%5C%22%7D%2CdeleteEdge%3A%7Bboolean%3Abool%2Cfunction%3A%5C%5C%5C%22function%5C%5C%5C%22%7D%2CcontrolNodeStyle%3A%5C%5C%5C%22get%20from%20nodes%2C%20will%20be%20overwritten%20below%5C%5C%5C%22%2C__type__%3A%7Bobject%3Aobject%2Cboolean%3Abool%7D%7D%2Cnodes%3A%7BborderWidth%3A%7Bnumber%3Anumber%7D%2CborderWidthSelected%3A%7Bnumber%3Anumber%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2CbrokenImage%3A%7Bstring%3Astring%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2Cchosen%3A%7Blabel%3A%7Bboolean%3Abool%2Cfunction%3A%5C%5C%5C%22function%5C%5C%5C%22%7D%2Cnode%3A%7Bboolean%3Abool%2Cfunction%3A%5C%5C%5C%22function%5C%5C%5C%22%7D%2C__type__%3A%7Bobject%3Aobject%2Cboolean%3Abool%7D%7D%2Ccolor%3A%7Bborder%3A%7Bstring%3Astring%7D%2Cbackground%3A%7Bstring%3Astring%7D%2Chighlight%3A%7Bborder%3A%7Bstring%3Astring%7D%2Cbackground%3A%7Bstring%3Astring%7D%2C__type__%3A%7Bobject%3Aobject%2Cstring%3Astring%7D%7D%2Chover%3A%7Bborder%3A%7Bstring%3Astring%7D%2Cbackground%3A%7Bstring%3Astring%7D%2C__type__%3A%7Bobject%3Aobject%2Cstring%3Astring%7D%7D%2C__type__%3A%7Bobject%3Aobject%2Cstring%3Astring%7D%7D%2Cfixed%3A%7Bx%3A%7Bboolean%3Abool%7D%2Cy%3A%7Bboolean%3Abool%7D%2C__type__%3A%7Bobject%3Aobject%2Cboolean%3Abool%7D%7D%2Cfont%3A%7Balign%3A%7Bstring%3Astring%7D%2Ccolor%3A%7Bstring%3Astring%7D%2Csize%3A%7Bnumber%3Anumber%7D%2Cface%3A%7Bstring%3Astring%7D%2Cbackground%3A%7Bstring%3Astring%7D%2CstrokeWidth%3A%7Bnumber%3Anumber%7D%2CstrokeColor%3A%7Bstring%3Astring%7D%2Cvadjust%3A%7Bnumber%3Anumber%7D%2Cmulti%3A%7Bboolean%3Abool%2Cstring%3Astring%7D%2Cbold%3A%7Bcolor%3A%7Bstring%3Astring%7D%2Csize%3A%7Bnumber%3Anumber%7D%2Cface%3A%7Bstring%3Astring%7D%2Cmod%3A%7Bstring%3Astring%7D%2Cvadjust%3A%7Bnumber%3Anumber%7D%2C__type__%3A%7Bobject%3Aobject%2Cstring%3Astring%7D%7D%2Cboldital%3A%7Bcolor%3A%7Bstring%3Astring%7D%2Csize%3A%7Bnumber%3Anumber%7D%2Cface%3A%7Bstring%3Astring%7D%2Cmod%3A%7Bstring%3Astring%7D%2Cvadjust%3A%7Bnumber%3Anumber%7D%2C__type__%3A%7Bobject%3Aobject%2Cstring%3Astring%7D%7D%2Cital%3A%7Bcolor%3A%7Bstring%3Astring%7D%2Csize%3A%7Bnumber%3Anumber%7D%2Cface%3A%7Bstring%3Astring%7D%2Cmod%3A%7Bstring%3Astring%7D%2Cvadjust%3A%7Bnumber%3Anumber%7D%2C__type__%3A%7Bobject%3Aobject%2Cstring%3Astring%7D%7D%2Cmono%3A%7Bcolor%3A%7Bstring%3Astring%7D%2Csize%3A%7Bnumber%3Anumber%7D%2Cface%3A%7Bstring%3Astring%7D%2Cmod%3A%7Bstring%3Astring%7D%2Cvadjust%3A%7Bnumber%3Anumber%7D%2C__type__%3A%7Bobject%3Aobject%2Cstring%3Astring%7D%7D%2C__type__%3A%7Bobject%3Aobject%2Cstring%3Astring%7D%7D%2Cgroup%3A%7Bstring%3Astring%2Cnumber%3Anumber%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2CheightConstraint%3A%7Bminimum%3A%7Bnumber%3Anumber%7D%2Cvalign%3A%7Bstring%3Astring%7D%2C__type__%3A%7Bobject%3Aobject%2Cboolean%3Abool%2Cnumber%3Anumber%7D%7D%2Chidden%3A%7Bboolean%3Abool%7D%2Cicon%3A%7Bface%3A%7Bstring%3Astring%7D%2Ccode%3A%7Bstring%3Astring%7D%2Csize%3A%7Bnumber%3Anumber%7D%2Ccolor%3A%7Bstring%3Astring%7D%2C__type__%3A%7Bobject%3Aobject%7D%7D%2Cid%3A%7Bstring%3Astring%2Cnumber%3Anumber%7D%2Cimage%3A%7Bselected%3A%7Bstring%3Astring%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2Cunselected%3A%7Bstring%3Astring%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2C__type__%3A%7Bobject%3Aobject%2Cstring%3Astring%7D%7D%2Clabel%3A%7Bstring%3Astring%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2ClabelHighlightBold%3A%7Bboolean%3Abool%7D%2Clevel%3A%7Bnumber%3Anumber%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2Cmargin%3A%7Btop%3A%7Bnumber%3Anumber%7D%2Cright%3A%7Bnumber%3Anumber%7D%2Cbottom%3A%7Bnumber%3Anumber%7D%2Cleft%3A%7Bnumber%3Anumber%7D%2C__type__%3A%7Bobject%3Aobject%2Cnumber%3Anumber%7D%7D%2Cmass%3A%7Bnumber%3Anumber%7D%2Cphysics%3A%7Bboolean%3Abool%7D%2Cscaling%3A%7Bmin%3A%7Bnumber%3Anumber%7D%2Cmax%3A%7Bnumber%3Anumber%7D%2Clabel%3A%7Benabled%3A%7Bboolean%3Abool%7D%2Cmin%3A%7Bnumber%3Anumber%7D%2Cmax%3A%7Bnumber%3Anumber%7D%2CmaxVisible%3A%7Bnumber%3Anumber%7D%2CdrawThreshold%3A%7Bnumber%3Anumber%7D%2C__type__%3A%7Bobject%3Aobject%2Cboolean%3Abool%7D%7D%2CcustomScalingFunction%3A%7Bfunction%3A%5C%5C%5C%22function%5C%5C%5C%22%7D%2C__type__%3A%7Bobject%3Aobject%7D%7D%2Cshadow%3A%7Benabled%3A%7Bboolean%3Abool%7D%2Ccolor%3A%7Bstring%3Astring%7D%2Csize%3A%7Bnumber%3Anumber%7D%2Cx%3A%7Bnumber%3Anumber%7D%2Cy%3A%7Bnumber%3Anumber%7D%2C__type__%3A%7Bobject%3Aobject%2Cboolean%3Abool%7D%7D%2Cshape%3A%7Bstring%3A%5B%5C%5C%5C%22ellipse%5C%5C%5C%22%2C%5C%5C%5C%22circle%5C%5C%5C%22%2C%5C%5C%5C%22database%5C%5C%5C%22%2C%5C%5C%5C%22box%5C%5C%5C%22%2C%5C%5C%5C%22text%5C%5C%5C%22%2C%5C%5C%5C%22image%5C%5C%5C%22%2C%5C%5C%5C%22circularImage%5C%5C%5C%22%2C%5C%5C%5C%22diamond%5C%5C%5C%22%2C%5C%5C%5C%22dot%5C%5C%5C%22%2C%5C%5C%5C%22star%5C%5C%5C%22%2C%5C%5C%5C%22triangle%5C%5C%5C%22%2C%5C%5C%5C%22triangleDown%5C%5C%5C%22%2C%5C%5C%5C%22square%5C%5C%5C%22%2C%5C%5C%5C%22icon%5C%5C%5C%22%2C%5C%5C%5C%22hexagon%5C%5C%5C%22%5D%7D%2CshapeProperties%3A%7BborderDashes%3A%7Bboolean%3Abool%2Carray%3Aarray%7D%2CborderRadius%3A%7Bnumber%3Anumber%7D%2Cinterpolation%3A%7Bboolean%3Abool%7D%2CuseImageSize%3A%7Bboolean%3Abool%7D%2CuseBorderWithImage%3A%7Bboolean%3Abool%7D%2C__type__%3A%7Bobject%3Aobject%7D%7D%2Csize%3A%7Bnumber%3Anumber%7D%2Ctitle%3A%7Bstring%3Astring%2Cdom%3Adom%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2Cvalue%3A%7Bnumber%3Anumber%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2CwidthConstraint%3A%7Bminimum%3A%7Bnumber%3Anumber%7D%2Cmaximum%3A%7Bnumber%3Anumber%7D%2C__type__%3A%7Bobject%3Aobject%2Cboolean%3Abool%2Cnumber%3Anumber%7D%7D%2Cx%3A%7Bnumber%3Anumber%7D%2Cy%3A%7Bnumber%3Anumber%7D%2C__type__%3A%7Bobject%3Aobject%7D%7D%2Cphysics%3A%7Benabled%3A%7Bboolean%3Abool%7D%2CbarnesHut%3A%7BgravitationalConstant%3A%7Bnumber%3Anumber%7D%2CcentralGravity%3A%7Bnumber%3Anumber%7D%2CspringLength%3A%7Bnumber%3Anumber%7D%2CspringConstant%3A%7Bnumber%3Anumber%7D%2Cdamping%3A%7Bnumber%3Anumber%7D%2CavoidOverlap%3A%7Bnumber%3Anumber%7D%2C__type__%3A%7Bobject%3Aobject%7D%7D%2CforceAtlas2Based%3A%7BgravitationalConstant%3A%7Bnumber%3Anumber%7D%2CcentralGravity%3A%7Bnumber%3Anumber%7D%2CspringLength%3A%7Bnumber%3Anumber%7D%2CspringConstant%3A%7Bnumber%3Anumber%7D%2Cdamping%3A%7Bnumber%3Anumber%7D%2CavoidOverlap%3A%7Bnumber%3Anumber%7D%2C__type__%3A%7Bobject%3Aobject%7D%7D%2Crepulsion%3A%7BcentralGravity%3A%7Bnumber%3Anumber%7D%2CspringLength%3A%7Bnumber%3Anumber%7D%2CspringConstant%3A%7Bnumber%3Anumber%7D%2CnodeDistance%3A%7Bnumber%3Anumber%7D%2Cdamping%3A%7Bnumber%3Anumber%7D%2C__type__%3A%7Bobject%3Aobject%7D%7D%2ChierarchicalRepulsion%3A%7BcentralGravity%3A%7Bnumber%3Anumber%7D%2CspringLength%3A%7Bnumber%3Anumber%7D%2CspringConstant%3A%7Bnumber%3Anumber%7D%2CnodeDistance%3A%7Bnumber%3Anumber%7D%2Cdamping%3A%7Bnumber%3Anumber%7D%2C__type__%3A%7Bobject%3Aobject%7D%7D%2CmaxVelocity%3A%7Bnumber%3Anumber%7D%2CminVelocity%3A%7Bnumber%3Anumber%7D%2Csolver%3A%7Bstring%3A%5B%5C%5C%5C%22barnesHut%5C%5C%5C%22%2C%5C%5C%5C%22repulsion%5C%5C%5C%22%2C%5C%5C%5C%22hierarchicalRepulsion%5C%5C%5C%22%2C%5C%5C%5C%22forceAtlas2Based%5C%5C%5C%22%5D%7D%2Cstabilization%3A%7Benabled%3A%7Bboolean%3Abool%7D%2Citerations%3A%7Bnumber%3Anumber%7D%2CupdateInterval%3A%7Bnumber%3Anumber%7D%2ConlyDynamicEdges%3A%7Bboolean%3Abool%7D%2C%5C%5Cnfit%3A%7Bboolean%3Abool%7D%2C__type__%3A%7Bobject%3Aobject%2Cboolean%3Abool%7D%7D%2Ctimestep%3A%7Bnumber%3Anumber%7D%2CadaptiveTimestep%3A%7Bboolean%3Abool%7D%2C__type__%3A%7Bobject%3Aobject%2Cboolean%3Abool%7D%7D%2CautoResize%3A%7Bboolean%3Abool%7D%2CclickToUse%3A%7Bboolean%3Abool%7D%2Clocale%3A%7Bstring%3Astring%7D%2Clocales%3A%7B__any__%3A%7Bany%3Aany%7D%2C__type__%3A%7Bobject%3Aobject%7D%7D%2Cheight%3A%7Bstring%3Astring%7D%2Cwidth%3A%7Bstring%3Astring%7D%2C__type__%3A%7Bobject%3Aobject%7D%7D%3BallOptions.groups.__any__%3DallOptions.nodes%3BallOptions.manipulation.controlNodeStyle%3DallOptions.nodes%3Bvar%20configureOptions%3D%7Bnodes%3A%7BborderWidth%3A%5B1%2C0%2C10%2C1%5D%2CborderWidthSelected%3A%5B2%2C0%2C10%2C1%5D%2Ccolor%3A%7Bborder%3A%5B%5C%5C%5C%22color%5C%5C%5C%22%2C%5C%5C%5C%22%232B7CE9%5C%5C%5C%22%5D%2Cbackground%3A%5B%5C%5C%5C%22color%5C%5C%5C%22%2C%5C%5C%5C%22%2397C2FC%5C%5C%5C%22%5D%2Chighlight%3A%7Bborder%3A%5B%5C%5C%5C%22color%5C%5C%5C%22%2C%5C%5C%5C%22%232B7CE9%5C%5C%5C%22%5D%2Cbackground%3A%5B%5C%5C%5C%22color%5C%5C%5C%22%2C%5C%5C%5C%22%23D2E5FF%5C%5C%5C%22%5D%7D%2Chover%3A%7Bborder%3A%5B%5C%5C%5C%22color%5C%5C%5C%22%2C%5C%5C%5C%22%232B7CE9%5C%5C%5C%22%5D%2Cbackground%3A%5B%5C%5C%5C%22color%5C%5C%5C%22%2C%5C%5C%5C%22%23D2E5FF%5C%5C%5C%22%5D%7D%7D%2Cfixed%3A%7Bx%3Afalse%2Cy%3Afalse%7D%2Cfont%3A%7Bcolor%3A%5B%5C%5C%5C%22color%5C%5C%5C%22%2C%5C%5C%5C%22%23343434%5C%5C%5C%22%5D%2Csize%3A%5B14%2C0%2C100%2C1%5D%2Cface%3A%5B%5C%5C%5C%22arial%5C%5C%5C%22%2C%5C%5C%5C%22verdana%5C%5C%5C%22%2C%5C%5C%5C%22tahoma%5C%5C%5C%22%5D%2Cbackground%3A%5B%5C%5C%5C%22color%5C%5C%5C%22%2C%5C%5C%5C%22none%5C%5C%5C%22%5D%2CstrokeWidth%3A%5B0%2C0%2C50%2C1%5D%2CstrokeColor%3A%5B%5C%5C%5C%22color%5C%5C%5C%22%2C%5C%5C%5C%22%23ffffff%5C%5C%5C%22%5D%7D%2Chidden%3Afalse%2ClabelHighlightBold%3Atrue%2Cphysics%3Atrue%2Cscaling%3A%7Bmin%3A%5B10%2C0%2C200%2C1%5D%2Cmax%3A%5B30%2C0%2C200%2C1%5D%2Clabel%3A%7Benabled%3Afalse%2Cmin%3A%5B14%2C0%2C200%2C1%5D%2Cmax%3A%5B30%2C0%2C200%2C1%5D%2CmaxVisible%3A%5B30%2C0%2C200%2C1%5D%2CdrawThreshold%3A%5B5%2C0%2C20%2C1%5D%7D%7D%2Cshadow%3A%7Benabled%3Afalse%2Ccolor%3A%5C%5C%5C%22rgba(0%2C0%2C0%2C0.5)%5C%5C%5C%22%2Csize%3A%5B10%2C0%2C20%2C1%5D%2Cx%3A%5B5%2C-30%2C30%2C1%5D%2Cy%3A%5B5%2C-30%2C30%2C1%5D%7D%2Cshape%3A%5B%5C%5C%5C%22ellipse%5C%5C%5C%22%2C%5C%5C%5C%22box%5C%5C%5C%22%2C%5C%5C%5C%22circle%5C%5C%5C%22%2C%5C%5C%5C%22database%5C%5C%5C%22%2C%5C%5C%5C%22diamond%5C%5C%5C%22%2C%5C%5C%5C%22dot%5C%5C%5C%22%2C%5C%5C%5C%22square%5C%5C%5C%22%2C%5C%5C%5C%22star%5C%5C%5C%22%2C%5C%5C%5C%22text%5C%5C%5C%22%2C%5C%5C%5C%22triangle%5C%5C%5C%22%2C%5C%5C%5C%22triangleDown%5C%5C%5C%22%2C%5C%5C%5C%22hexagon%5C%5C%5C%22%5D%2CshapeProperties%3A%7BborderDashes%3Afalse%2CborderRadius%3A%5B6%2C0%2C20%2C1%5D%2Cinterpolation%3Atrue%2CuseImageSize%3Afalse%7D%2Csize%3A%5B25%2C0%2C200%2C1%5D%7D%2Cedges%3A%7Barrows%3A%7Bto%3A%7Benabled%3Afalse%2CscaleFactor%3A%5B1%2C0%2C3%2C.05%5D%2Ctype%3A%5C%5C%5C%22arrow%5C%5C%5C%22%7D%2Cmiddle%3A%7Benabled%3Afalse%2CscaleFactor%3A%5B1%2C0%2C3%2C.05%5D%2Ctype%3A%5C%5C%5C%22arrow%5C%5C%5C%22%7D%2Cfrom%3A%7Benabled%3Afalse%2CscaleFactor%3A%5B1%2C0%2C3%2C.05%5D%2Ctype%3A%5C%5C%5C%22arrow%5C%5C%5C%22%7D%7D%2CarrowStrikethrough%3Atrue%2Ccolor%3A%7Bcolor%3A%5B%5C%5C%5C%22color%5C%5C%5C%22%2C%5C%5C%5C%22%23848484%5C%5C%5C%22%5D%2Chighlight%3A%5B%5C%5C%5C%22color%5C%5C%5C%22%2C%5C%5C%5C%22%23848484%5C%5C%5C%22%5D%2Chover%3A%5B%5C%5C%5C%22color%5C%5C%5C%22%2C%5C%5C%5C%22%23848484%5C%5C%5C%22%5D%2Cinherit%3A%5B%5C%5C%5C%22from%5C%5C%5C%22%2C%5C%5C%5C%22to%5C%5C%5C%22%2C%5C%5C%5C%22both%5C%5C%5C%22%2Ctrue%2Cfalse%5D%2Copacity%3A%5B1%2C0%2C1%2C.05%5D%7D%2Cdashes%3Afalse%2Cfont%3A%7Bcolor%3A%5B%5C%5C%5C%22color%5C%5C%5C%22%2C%5C%5C%5C%22%23343434%5C%5C%5C%22%5D%2Csize%3A%5B14%2C0%2C100%2C1%5D%2Cface%3A%5B%5C%5C%5C%22arial%5C%5C%5C%22%2C%5C%5C%5C%22verdana%5C%5C%5C%22%2C%5C%5C%5C%22tahoma%5C%5C%5C%22%5D%2Cbackground%3A%5B%5C%5C%5C%22color%5C%5C%5C%22%2C%5C%5C%5C%22none%5C%5C%5C%22%5D%2CstrokeWidth%3A%5B2%2C0%2C50%2C1%5D%2CstrokeColor%3A%5B%5C%5C%5C%22color%5C%5C%5C%22%2C%5C%5C%5C%22%23ffffff%5C%5C%5C%22%5D%2Calign%3A%5B%5C%5C%5C%22horizontal%5C%5C%5C%22%2C%5C%5C%5C%22top%5C%5C%5C%22%2C%5C%5C%5C%22middle%5C%5C%5C%22%2C%5C%5C%5C%22bottom%5C%5C%5C%22%5D%7D%2Chidden%3Afalse%2ChoverWidth%3A%5B1.5%2C0%2C5%2C.1%5D%2ClabelHighlightBold%3Atrue%2Cphysics%3Atrue%2Cscaling%3A%7Bmin%3A%5B1%2C0%2C100%2C1%5D%2Cmax%3A%5B15%2C0%2C100%2C1%5D%2Clabel%3A%7Benabled%3Atrue%2Cmin%3A%5B14%2C0%2C200%2C1%5D%2Cmax%3A%5B30%2C0%2C200%2C1%5D%2CmaxVisible%3A%5B30%2C0%2C200%2C1%5D%2CdrawThreshold%3A%5B5%2C0%2C20%2C1%5D%7D%7D%2CselectionWidth%3A%5B1.5%2C0%2C5%2C.1%5D%2CselfReferenceSize%3A%5B20%2C0%2C200%2C1%5D%2Cshadow%3A%7Benabled%3Afalse%2Ccolor%3A%5C%5C%5C%22rgba(0%2C0%2C0%2C0.5)%5C%5C%5C%22%2Csize%3A%5B10%2C0%2C20%2C1%5D%2Cx%3A%5B5%2C-30%2C30%2C1%5D%2Cy%3A%5B5%2C-30%2C30%2C1%5D%7D%2Csmooth%3A%7Benabled%3Atrue%2Ctype%3A%5B%5C%5C%5C%22dynamic%5C%5C%5C%22%2C%5C%5C%5C%22continuous%5C%5C%5C%22%2C%5C%5C%5C%22discrete%5C%5C%5C%22%2C%5C%5C%5C%22diagonalCross%5C%5C%5C%22%2C%5C%5C%5C%22straightCross%5C%5C%5C%22%2C%5C%5C%5C%22horizontal%5C%5C%5C%22%2C%5C%5C%5C%22vertical%5C%5C%5C%22%2C%5C%5C%5C%22curvedCW%5C%5C%5C%22%2C%5C%5C%5C%22curvedCCW%5C%5C%5C%22%2C%5C%5C%5C%22cubicBezier%5C%5C%5C%22%5D%2CforceDirection%3A%5B%5C%5C%5C%22horizontal%5C%5C%5C%22%2C%5C%5C%5C%22vertical%5C%5C%5C%22%2C%5C%5C%5C%22none%5C%5C%5C%22%5D%2Croundness%3A%5B.5%2C0%2C1%2C.05%5D%7D%2Cwidth%3A%5B1%2C0%2C30%2C1%5D%7D%2Clayout%3A%7Bhierarchical%3A%7Benabled%3Afalse%2ClevelSeparation%3A%5B150%2C20%2C500%2C5%5D%2CnodeSpacing%3A%5B100%2C20%2C500%2C5%5D%2CtreeSpacing%3A%5B200%2C20%2C500%2C5%5D%2CblockShifting%3Atrue%2CedgeMinimization%3Atrue%2CparentCentralization%3Atrue%2Cdirection%3A%5B%5C%5C%5C%22UD%5C%5C%5C%22%2C%5C%5C%5C%22DU%5C%5C%5C%22%2C%5C%5C%5C%22LR%5C%5C%5C%22%2C%5C%5C%5C%22RL%5C%5C%5C%22%5D%2CsortMethod%3A%5B%5C%5C%5C%22hubsize%5C%5C%5C%22%2C%5C%5C%5C%22directed%5C%5C%5C%22%5D%7D%7D%2Cinteraction%3A%7BdragNodes%3Atrue%2CdragView%3Atrue%2ChideEdgesOnDrag%3Afalse%2ChideNodesOnDrag%3Afalse%2Chover%3Afalse%2Ckeyboard%3A%7Benabled%3Afalse%2Cspeed%3A%7Bx%3A%5B10%2C0%2C40%2C1%5D%2Cy%3A%5B10%2C0%2C40%2C1%5D%2Czoom%3A%5B.02%2C0%2C.1%2C.005%5D%7D%2CbindToWindow%3Atrue%7D%2Cmultiselect%3Afalse%2CnavigationButtons%3Afalse%2Cselectable%3Atrue%2CselectConnectedEdges%3Atrue%2ChoverConnectedEdges%3Atrue%2CtooltipDelay%3A%5B300%2C0%2C1e3%2C25%5D%2CzoomView%3Atrue%7D%2Cmanipulation%3A%7Benabled%3Afalse%2CinitiallyActive%3Afalse%7D%2Cphysics%3A%7Benabled%3Atrue%2CbarnesHut%3A%7BgravitationalConstant%3A%5B-2e3%2C-3e4%2C0%2C50%5D%2CcentralGravity%3A%5B.3%2C0%2C10%2C.05%5D%2CspringLength%3A%5B95%2C0%2C500%2C5%5D%2CspringConstant%3A%5B.04%2C0%2C1.2%2C.005%5D%2Cdamping%3A%5B.09%2C0%2C1%2C.01%5D%2CavoidOverlap%3A%5B0%2C0%2C1%2C.01%5D%7D%2CforceAtlas2Based%3A%7BgravitationalConstant%3A%5B-50%2C-500%2C0%2C1%5D%2CcentralGravity%3A%5B.01%2C0%2C1%2C.005%5D%2CspringLength%3A%5B95%2C0%2C500%2C5%5D%2CspringConstant%3A%5B.08%2C0%2C1.2%2C.005%5D%2Cdamping%3A%5B.4%2C0%2C1%2C.01%5D%2CavoidOverlap%3A%5B0%2C0%2C1%2C.01%5D%7D%2Crepulsion%3A%7BcentralGravity%3A%5B.2%2C0%2C10%2C.05%5D%2CspringLength%3A%5B200%2C0%2C500%2C5%5D%2CspringConstant%3A%5B.05%2C0%2C1.2%2C.005%5D%2CnodeDistance%3A%5B100%2C0%2C500%2C5%5D%2Cdamping%3A%5B.09%2C0%2C1%2C.01%5D%7D%2ChierarchicalRepulsion%3A%7BcentralGravity%3A%5B.2%2C0%2C10%2C.05%5D%2CspringLength%3A%5B100%2C0%2C500%2C5%5D%2CspringConstant%3A%5B.01%2C0%2C1.2%2C.005%5D%2CnodeDistance%3A%5B120%2C0%2C500%2C5%5D%2Cdamping%3A%5B.09%2C0%2C1%2C.01%5D%7D%2CmaxVelocity%3A%5B50%2C0%2C150%2C1%5D%2CminVelocity%3A%5B.1%2C.01%2C.5%2C.01%5D%2Csolver%3A%5B%5C%5C%5C%22barnesHut%5C%5C%5C%22%2C%5C%5C%5C%22forceAtlas2Based%5C%5C%5C%22%2C%5C%5C%5C%22repulsion%5C%5C%5C%22%2C%5C%5C%5C%22hierarchicalRepulsion%5C%5C%5C%22%5D%2Ctimestep%3A%5B.5%2C.01%2C1%2C.01%5D%7D%7D%3Bexports.allOptions%3DallOptions%3Bexports.configureOptions%3DconfigureOptions%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bvar%20util%3D__webpack_require__(2)%3Butil.extend(exports%2C__webpack_require__(159))%3Butil.extend(exports%2C__webpack_require__(177))%3Butil.extend(exports%2C__webpack_require__(181))%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B__webpack_require__(49)%3B__webpack_require__(60)%3Bmodule.exports%3D__webpack_require__(136)%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bvar%20addToUnscopables%3D__webpack_require__(126)%3Bvar%20step%3D__webpack_require__(127)%3Bvar%20Iterators%3D__webpack_require__(31)%3Bvar%20toIObject%3D__webpack_require__(25)%3Bmodule.exports%3D__webpack_require__(79)(Array%2C%5C%5C%5C%22Array%5C%5C%5C%22%2Cfunction(iterated%2Ckind)%7Bthis._t%3DtoIObject(iterated)%3Bthis._i%3D0%3Bthis._k%3Dkind%7D%2Cfunction()%7Bvar%20O%3Dthis._t%3Bvar%20kind%3Dthis._k%3Bvar%20index%3Dthis._i%2B%2B%3Bif(!O%7C%7Cindex%3E%3DO.length)%7Bthis._t%3Dundefined%3Breturn%20step(1)%7Dif(kind%3D%3D%5C%5C%5C%22keys%5C%5C%5C%22)return%20step(0%2Cindex)%3Bif(kind%3D%3D%5C%5C%5C%22values%5C%5C%5C%22)return%20step(0%2CO%5Bindex%5D)%3Breturn%20step(0%2C%5Bindex%2CO%5Bindex%5D%5D)%7D%2C%5C%5C%5C%22values%5C%5C%5C%22)%3BIterators.Arguments%3DIterators.Array%3BaddToUnscopables(%5C%5C%5C%22keys%5C%5C%5C%22)%3BaddToUnscopables(%5C%5C%5C%22values%5C%5C%5C%22)%3BaddToUnscopables(%5C%5C%5C%22entries%5C%5C%5C%22)%7D%2Cfunction(module%2Cexports)%7Bmodule.exports%3Dfunction()%7B%7D%7D%2Cfunction(module%2Cexports)%7Bmodule.exports%3Dfunction(done%2Cvalue)%7Breturn%7Bvalue%3Avalue%2Cdone%3A!!done%7D%7D%7D%2Cfunction(module%2Cexports)%7Bmodule.exports%3Dfunction(it)%7Bif(typeof%20it!%3D%5C%5C%5C%22function%5C%5C%5C%22)throw%20TypeError(it%2B%5C%5C%5C%22%20is%20not%20a%20function!%5C%5C%5C%22)%3Breturn%20it%7D%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bvar%20create%3D__webpack_require__(54)%3Bvar%20descriptor%3D__webpack_require__(39)%3Bvar%20setToStringTag%3D__webpack_require__(59)%3Bvar%20IteratorPrototype%3D%7B%7D%3B__webpack_require__(26)(IteratorPrototype%2C__webpack_require__(13)(%5C%5C%5C%22iterator%5C%5C%5C%22)%2Cfunction()%7Breturn%20this%7D)%3Bmodule.exports%3Dfunction(Constructor%2CNAME%2Cnext)%7BConstructor.prototype%3Dcreate(IteratorPrototype%2C%7Bnext%3Adescriptor(1%2Cnext)%7D)%3BsetToStringTag(Constructor%2CNAME%2B%5C%5C%5C%22%20Iterator%5C%5C%5C%22)%7D%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7Bvar%20dP%3D__webpack_require__(20)%3Bvar%20anObject%3D__webpack_require__(27)%3Bvar%20getKeys%3D__webpack_require__(33)%3Bmodule.exports%3D__webpack_require__(21)%3FObject.defineProperties%3Afunction%20defineProperties(O%2CProperties)%7BanObject(O)%3Bvar%20keys%3DgetKeys(Properties)%3Bvar%20length%3Dkeys.length%3Bvar%20i%3D0%3Bvar%20P%3Bwhile(length%3Ei)dP.f(O%2CP%3Dkeys%5Bi%2B%2B%5D%2CProperties%5BP%5D)%3Breturn%20O%7D%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7Bvar%20toIObject%3D__webpack_require__(25)%3Bvar%20toLength%3D__webpack_require__(132)%3Bvar%20toAbsoluteIndex%3D__webpack_require__(133)%3Bmodule.exports%3Dfunction(IS_INCLUDES)%7Breturn%20function(%24this%2Cel%2CfromIndex)%7Bvar%20O%3DtoIObject(%24this)%3Bvar%20length%3DtoLength(O.length)%3Bvar%20index%3DtoAbsoluteIndex(fromIndex%2Clength)%3Bvar%20value%3Bif(IS_INCLUDES%26%26el!%3Del)while(length%3Eindex)%7Bvalue%3DO%5Bindex%2B%2B%5D%3Bif(value!%3Dvalue)return%20true%7Delse%20for(%3Blength%3Eindex%3Bindex%2B%2B)if(IS_INCLUDES%7C%7Cindex%20in%20O)%7Bif(O%5Bindex%5D%3D%3D%3Del)return%20IS_INCLUDES%7C%7Cindex%7C%7C0%7Dreturn!IS_INCLUDES%26%26-1%7D%7D%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7Bvar%20toInteger%3D__webpack_require__(55)%3Bvar%20min%3DMath.min%3Bmodule.exports%3Dfunction(it)%7Breturn%20it%3E0%3Fmin(toInteger(it)%2C9007199254740991)%3A0%7D%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7Bvar%20toInteger%3D__webpack_require__(55)%3Bvar%20max%3DMath.max%3Bvar%20min%3DMath.min%3Bmodule.exports%3Dfunction(index%2Clength)%7Bindex%3DtoInteger(index)%3Breturn%20index%3C0%3Fmax(index%2Blength%2C0)%3Amin(index%2Clength)%7D%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7Bvar%20document%3D__webpack_require__(18).document%3Bmodule.exports%3Ddocument%26%26document.documentElement%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7Bvar%20toInteger%3D__webpack_require__(55)%3Bvar%20defined%3D__webpack_require__(51)%3Bmodule.exports%3Dfunction(TO_STRING)%7Breturn%20function(that%2Cpos)%7Bvar%20s%3DString(defined(that))%3Bvar%20i%3DtoInteger(pos)%3Bvar%20l%3Ds.length%3Bvar%20a%2Cb%3Bif(i%3C0%7C%7Ci%3E%3Dl)return%20TO_STRING%3F%5C%5C%5C%22%5C%5C%5C%22%3Aundefined%3Ba%3Ds.charCodeAt(i)%3Breturn%20a%3C55296%7C%7Ca%3E56319%7C%7Ci%2B1%3D%3D%3Dl%7C%7C(b%3Ds.charCodeAt(i%2B1))%3C56320%7C%7Cb%3E57343%3FTO_STRING%3Fs.charAt(i)%3Aa%3ATO_STRING%3Fs.slice(i%2Ci%2B2)%3A(a-55296%3C%3C10)%2B(b-56320)%2B65536%7D%7D%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7Bvar%20anObject%3D__webpack_require__(27)%3Bvar%20get%3D__webpack_require__(137)%3Bmodule.exports%3D__webpack_require__(7).getIterator%3Dfunction(it)%7Bvar%20iterFn%3Dget(it)%3Bif(typeof%20iterFn!%3D%5C%5C%5C%22function%5C%5C%5C%22)throw%20TypeError(it%2B%5C%5C%5C%22%20is%20not%20iterable!%5C%5C%5C%22)%3Breturn%20anObject(iterFn.call(it))%7D%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7Bvar%20classof%3D__webpack_require__(86)%3Bvar%20ITERATOR%3D__webpack_require__(13)(%5C%5C%5C%22iterator%5C%5C%5C%22)%3Bvar%20Iterators%3D__webpack_require__(31)%3Bmodule.exports%3D__webpack_require__(7).getIteratorMethod%3Dfunction(it)%7Bif(it!%3Dundefined)return%20it%5BITERATOR%5D%7C%7Cit%5B%5C%5C%5C%22%40%40iterator%5C%5C%5C%22%5D%7C%7CIterators%5Bclassof(it)%5D%7D%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B__webpack_require__(139)%3Bvar%20%24Object%3D__webpack_require__(7).Object%3Bmodule.exports%3Dfunction%20create(P%2CD)%7Breturn%20%24Object.create(P%2CD)%7D%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7Bvar%20%24export%3D__webpack_require__(17)%3B%24export(%24export.S%2C%5C%5C%5C%22Object%5C%5C%5C%22%2C%7Bcreate%3A__webpack_require__(54)%7D)%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B__webpack_require__(141)%3Bmodule.exports%3D__webpack_require__(7).Object.keys%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7Bvar%20toObject%3D__webpack_require__(41)%3Bvar%20%24keys%3D__webpack_require__(33)%3B__webpack_require__(87)(%5C%5C%5C%22keys%5C%5C%5C%22%2Cfunction()%7Breturn%20function%20keys(it)%7Breturn%20%24keys(toObject(it))%7D%7D)%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7Bmodule.exports%3D%7Bdefault%3A__webpack_require__(143)%2C__esModule%3Atrue%7D%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B__webpack_require__(60)%3B__webpack_require__(49)%3Bmodule.exports%3D__webpack_require__(61).f(%5C%5C%5C%22iterator%5C%5C%5C%22)%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7Bmodule.exports%3D%7Bdefault%3A__webpack_require__(145)%2C__esModule%3Atrue%7D%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B__webpack_require__(146)%3B__webpack_require__(151)%3B__webpack_require__(152)%3B__webpack_require__(153)%3Bmodule.exports%3D__webpack_require__(7).Symbol%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bvar%20global%3D__webpack_require__(18)%3Bvar%20has%3D__webpack_require__(22)%3Bvar%20DESCRIPTORS%3D__webpack_require__(21)%3Bvar%20%24export%3D__webpack_require__(17)%3Bvar%20redefine%3D__webpack_require__(83)%3Bvar%20META%3D__webpack_require__(147).KEY%3Bvar%20%24fails%3D__webpack_require__(28)%3Bvar%20shared%3D__webpack_require__(57)%3Bvar%20setToStringTag%3D__webpack_require__(59)%3Bvar%20uid%3D__webpack_require__(40)%3Bvar%20wks%3D__webpack_require__(13)%3Bvar%20wksExt%3D__webpack_require__(61)%3Bvar%20wksDefine%3D__webpack_require__(62)%3Bvar%20enumKeys%3D__webpack_require__(148)%3Bvar%20isArray%3D__webpack_require__(149)%3Bvar%20anObject%3D__webpack_require__(27)%3Bvar%20toIObject%3D__webpack_require__(25)%3Bvar%20toPrimitive%3D__webpack_require__(53)%3Bvar%20createDesc%3D__webpack_require__(39)%3Bvar%20_create%3D__webpack_require__(54)%3Bvar%20gOPNExt%3D__webpack_require__(150)%3Bvar%20%24GOPD%3D__webpack_require__(89)%3Bvar%20%24DP%3D__webpack_require__(20)%3Bvar%20%24keys%3D__webpack_require__(33)%3Bvar%20gOPD%3D%24GOPD.f%3Bvar%20dP%3D%24DP.f%3Bvar%20gOPN%3DgOPNExt.f%3Bvar%20%24Symbol%3Dglobal.Symbol%3Bvar%20%24JSON%3Dglobal.JSON%3Bvar%20_stringify%3D%24JSON%26%26%24JSON.stringify%3Bvar%20PROTOTYPE%3D%5C%5C%5C%22prototype%5C%5C%5C%22%3Bvar%20HIDDEN%3Dwks(%5C%5C%5C%22_hidden%5C%5C%5C%22)%3Bvar%20TO_PRIMITIVE%3Dwks(%5C%5C%5C%22toPrimitive%5C%5C%5C%22)%3Bvar%20isEnum%3D%7B%7D.propertyIsEnumerable%3Bvar%20SymbolRegistry%3Dshared(%5C%5C%5C%22symbol-registry%5C%5C%5C%22)%3Bvar%20AllSymbols%3Dshared(%5C%5C%5C%22symbols%5C%5C%5C%22)%3Bvar%20OPSymbols%3Dshared(%5C%5C%5C%22op-symbols%5C%5C%5C%22)%3Bvar%20ObjectProto%3DObject%5BPROTOTYPE%5D%3Bvar%20USE_NATIVE%3Dtypeof%20%24Symbol%3D%3D%5C%5C%5C%22function%5C%5C%5C%22%3Bvar%20QObject%3Dglobal.QObject%3Bvar%20setter%3D!QObject%7C%7C!QObject%5BPROTOTYPE%5D%7C%7C!QObject%5BPROTOTYPE%5D.findChild%3Bvar%20setSymbolDesc%3DDESCRIPTORS%26%26%24fails(function()%7Breturn%20_create(dP(%7B%7D%2C%5C%5C%5C%22a%5C%5C%5C%22%2C%7Bget%3Afunction()%7Breturn%20dP(this%2C%5C%5C%5C%22a%5C%5C%5C%22%2C%7Bvalue%3A7%7D).a%7D%7D)).a!%3D7%7D)%3Ffunction(it%2Ckey%2CD)%7Bvar%20protoDesc%3DgOPD(ObjectProto%2Ckey)%3Bif(protoDesc)delete%20ObjectProto%5Bkey%5D%3BdP(it%2Ckey%2CD)%3Bif(protoDesc%26%26it!%3D%3DObjectProto)dP(ObjectProto%2Ckey%2CprotoDesc)%7D%3AdP%3Bvar%20wrap%3Dfunction(tag)%7Bvar%20sym%3DAllSymbols%5Btag%5D%3D_create(%24Symbol%5BPROTOTYPE%5D)%3Bsym._k%3Dtag%3Breturn%20sym%7D%3Bvar%20isSymbol%3DUSE_NATIVE%26%26typeof%20%24Symbol.iterator%3D%3D%5C%5C%5C%22symbol%5C%5C%5C%22%3Ffunction(it)%7Breturn%20typeof%20it%3D%3D%5C%5C%5C%22symbol%5C%5C%5C%22%7D%3Afunction(it)%7Breturn%20it%20instanceof%20%24Symbol%7D%3Bvar%20%24defineProperty%3Dfunction%20defineProperty(it%2Ckey%2CD)%7Bif(it%3D%3D%3DObjectProto)%24defineProperty(OPSymbols%2Ckey%2CD)%3BanObject(it)%3Bkey%3DtoPrimitive(key%2Ctrue)%3BanObject(D)%3Bif(has(AllSymbols%2Ckey))%7Bif(!D.enumerable)%7Bif(!has(it%2CHIDDEN))dP(it%2CHIDDEN%2CcreateDesc(1%2C%7B%7D))%3Bit%5BHIDDEN%5D%5Bkey%5D%3Dtrue%7Delse%7Bif(has(it%2CHIDDEN)%26%26it%5BHIDDEN%5D%5Bkey%5D)it%5BHIDDEN%5D%5Bkey%5D%3Dfalse%3BD%3D_create(D%2C%7Benumerable%3AcreateDesc(0%2Cfalse)%7D)%7Dreturn%20setSymbolDesc(it%2Ckey%2CD)%7Dreturn%20dP(it%2Ckey%2CD)%7D%3Bvar%20%24defineProperties%3Dfunction%20defineProperties(it%2CP)%7BanObject(it)%3Bvar%20keys%3DenumKeys(P%3DtoIObject(P))%3Bvar%20i%3D0%3Bvar%20l%3Dkeys.length%3Bvar%20key%3Bwhile(l%3Ei)%24defineProperty(it%2Ckey%3Dkeys%5Bi%2B%2B%5D%2CP%5Bkey%5D)%3Breturn%20it%7D%3Bvar%20%24create%3Dfunction%20create(it%2CP)%7Breturn%20P%3D%3D%3Dundefined%3F_create(it)%3A%24defineProperties(_create(it)%2CP)%7D%3Bvar%20%24propertyIsEnumerable%3Dfunction%20propertyIsEnumerable(key)%7Bvar%20E%3DisEnum.call(this%2Ckey%3DtoPrimitive(key%2Ctrue))%3Bif(this%3D%3D%3DObjectProto%26%26has(AllSymbols%2Ckey)%26%26!has(OPSymbols%2Ckey))return%20false%3Breturn%20E%7C%7C!has(this%2Ckey)%7C%7C!has(AllSymbols%2Ckey)%7C%7Chas(this%2CHIDDEN)%26%26this%5BHIDDEN%5D%5Bkey%5D%3FE%3Atrue%7D%3Bvar%20%24getOwnPropertyDescriptor%3Dfunction%20getOwnPropertyDescriptor(it%2Ckey)%7Bit%3DtoIObject(it)%3Bkey%3DtoPrimitive(key%2Ctrue)%3Bif(it%3D%3D%3DObjectProto%26%26has(AllSymbols%2Ckey)%26%26!has(OPSymbols%2Ckey))return%3Bvar%20D%3DgOPD(it%2Ckey)%3Bif(D%26%26has(AllSymbols%2Ckey)%26%26!(has(it%2CHIDDEN)%26%26it%5BHIDDEN%5D%5Bkey%5D))D.enumerable%3Dtrue%3Breturn%20D%7D%3Bvar%20%24getOwnPropertyNames%3Dfunction%20getOwnPropertyNames(it)%7Bvar%20names%3DgOPN(toIObject(it))%3Bvar%20result%3D%5B%5D%3Bvar%20i%3D0%3Bvar%20key%3Bwhile(names.length%3Ei)%7Bif(!has(AllSymbols%2Ckey%3Dnames%5Bi%2B%2B%5D)%26%26key!%3DHIDDEN%26%26key!%3DMETA)result.push(key)%7Dreturn%20result%7D%3Bvar%20%24getOwnPropertySymbols%3Dfunction%20getOwnPropertySymbols(it)%7Bvar%20IS_OP%3Dit%3D%3D%3DObjectProto%3Bvar%20names%3DgOPN(IS_OP%3FOPSymbols%3AtoIObject(it))%3Bvar%20result%3D%5B%5D%3Bvar%20i%3D0%3Bvar%20key%3Bwhile(names.length%3Ei)%7Bif(has(AllSymbols%2Ckey%3Dnames%5Bi%2B%2B%5D)%26%26(IS_OP%3Fhas(ObjectProto%2Ckey)%3Atrue))result.push(AllSymbols%5Bkey%5D)%7Dreturn%20result%7D%3Bif(!USE_NATIVE)%7B%24Symbol%3Dfunction%20Symbol()%7Bif(this%20instanceof%20%24Symbol)throw%20TypeError(%5C%5C%5C%22Symbol%20is%20not%20a%20constructor!%5C%5C%5C%22)%3Bvar%20tag%3Duid(arguments.length%3E0%3Farguments%5B0%5D%3Aundefined)%3Bvar%20%24set%3Dfunction(value)%7Bif(this%3D%3D%3DObjectProto)%24set.call(OPSymbols%2Cvalue)%3Bif(has(this%2CHIDDEN)%26%26has(this%5BHIDDEN%5D%2Ctag))this%5BHIDDEN%5D%5Btag%5D%3Dfalse%3BsetSymbolDesc(this%2Ctag%2CcreateDesc(1%2Cvalue))%7D%3Bif(DESCRIPTORS%26%26setter)setSymbolDesc(ObjectProto%2Ctag%2C%7Bconfigurable%3Atrue%2Cset%3A%24set%7D)%3Breturn%20wrap(tag)%7D%3Bredefine(%24Symbol%5BPROTOTYPE%5D%2C%5C%5C%5C%22toString%5C%5C%5C%22%2Cfunction%20toString()%7Breturn%20this._k%7D)%3B%24GOPD.f%3D%24getOwnPropertyDescriptor%3B%24DP.f%3D%24defineProperty%3B__webpack_require__(88).f%3DgOPNExt.f%3D%24getOwnPropertyNames%3B__webpack_require__(42).f%3D%24propertyIsEnumerable%3B__webpack_require__(63).f%3D%24getOwnPropertySymbols%3Bif(DESCRIPTORS%26%26!__webpack_require__(52))%7Bredefine(ObjectProto%2C%5C%5C%5C%22propertyIsEnumerable%5C%5C%5C%22%2C%24propertyIsEnumerable%2Ctrue)%7DwksExt.f%3Dfunction(name)%7Breturn%20wrap(wks(name))%7D%7D%24export(%24export.G%2B%24export.W%2B%24export.F*!USE_NATIVE%2C%7BSymbol%3A%24Symbol%7D)%3Bfor(var%20es6Symbols%3D%5C%5C%5C%22hasInstance%2CisConcatSpreadable%2Citerator%2Cmatch%2Creplace%2Csearch%2Cspecies%2Csplit%2CtoPrimitive%2CtoStringTag%2Cunscopables%5C%5C%5C%22.split(%5C%5C%5C%22%2C%5C%5C%5C%22)%2Cj%3D0%3Bes6Symbols.length%3Ej%3B)wks(es6Symbols%5Bj%2B%2B%5D)%3Bfor(var%20wellKnownSymbols%3D%24keys(wks.store)%2Ck%3D0%3BwellKnownSymbols.length%3Ek%3B)wksDefine(wellKnownSymbols%5Bk%2B%2B%5D)%3B%24export(%24export.S%2B%24export.F*!USE_NATIVE%2C%5C%5C%5C%22Symbol%5C%5C%5C%22%2C%7Bfor%3Afunction(key)%7Breturn%20has(SymbolRegistry%2Ckey%2B%3D%5C%5C%5C%22%5C%5C%5C%22)%3FSymbolRegistry%5Bkey%5D%3ASymbolRegistry%5Bkey%5D%3D%24Symbol(key)%7D%2CkeyFor%3Afunction%20keyFor(sym)%7Bif(!isSymbol(sym))throw%20TypeError(sym%2B%5C%5C%5C%22%20is%20not%20a%20symbol!%5C%5C%5C%22)%3Bfor(var%20key%20in%20SymbolRegistry)if(SymbolRegistry%5Bkey%5D%3D%3D%3Dsym)return%20key%7D%2CuseSetter%3Afunction()%7Bsetter%3Dtrue%7D%2CuseSimple%3Afunction()%7Bsetter%3Dfalse%7D%7D)%3B%24export(%24export.S%2B%24export.F*!USE_NATIVE%2C%5C%5C%5C%22Object%5C%5C%5C%22%2C%7Bcreate%3A%24create%2CdefineProperty%3A%24defineProperty%2CdefineProperties%3A%24defineProperties%2CgetOwnPropertyDescriptor%3A%24getOwnPropertyDescriptor%2CgetOwnPropertyNames%3A%24getOwnPropertyNames%2CgetOwnPropertySymbols%3A%24getOwnPropertySymbols%7D)%3B%24JSON%26%26%24export(%24export.S%2B%24export.F*(!USE_NATIVE%7C%7C%24fails(function()%7Bvar%20S%3D%24Symbol()%3Breturn%20_stringify(%5BS%5D)!%3D%5C%5C%5C%22%5Bnull%5D%5C%5C%5C%22%7C%7C_stringify(%7Ba%3AS%7D)!%3D%5C%5C%5C%22%7B%7D%5C%5C%5C%22%7C%7C_stringify(Object(S))!%3D%5C%5C%5C%22%7B%7D%5C%5C%5C%22%7D))%2C%5C%5C%5C%22JSON%5C%5C%5C%22%2C%7Bstringify%3Afunction%20stringify(it)%7Bif(it%3D%3D%3Dundefined%7C%7CisSymbol(it))return%3Bvar%20args%3D%5Bit%5D%3Bvar%20i%3D1%3Bvar%20replacer%2C%24replacer%3Bwhile(arguments.length%3Ei)args.push(arguments%5Bi%2B%2B%5D)%3Breplacer%3Dargs%5B1%5D%3Bif(typeof%20replacer%3D%3D%5C%5C%5C%22function%5C%5C%5C%22)%24replacer%3Dreplacer%3Bif(%24replacer%7C%7C!isArray(replacer))replacer%3Dfunction(key%2Cvalue)%7Bif(%24replacer)value%3D%24replacer.call(this%2Ckey%2Cvalue)%3Bif(!isSymbol(value))return%20value%7D%3Bargs%5B1%5D%3Dreplacer%3Breturn%20_stringify.apply(%24JSON%2Cargs)%7D%7D)%3B%24Symbol%5BPROTOTYPE%5D%5BTO_PRIMITIVE%5D%7C%7C__webpack_require__(26)(%24Symbol%5BPROTOTYPE%5D%2CTO_PRIMITIVE%2C%24Symbol%5BPROTOTYPE%5D.valueOf)%3BsetToStringTag(%24Symbol%2C%5C%5C%5C%22Symbol%5C%5C%5C%22)%3BsetToStringTag(Math%2C%5C%5C%5C%22Math%5C%5C%5C%22%2Ctrue)%3BsetToStringTag(global.JSON%2C%5C%5C%5C%22JSON%5C%5C%5C%22%2Ctrue)%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7Bvar%20META%3D__webpack_require__(40)(%5C%5C%5C%22meta%5C%5C%5C%22)%3Bvar%20isObject%3D__webpack_require__(32)%3Bvar%20has%3D__webpack_require__(22)%3Bvar%20setDesc%3D__webpack_require__(20).f%3Bvar%20id%3D0%3Bvar%20isExtensible%3DObject.isExtensible%7C%7Cfunction()%7Breturn%20true%7D%3Bvar%20FREEZE%3D!__webpack_require__(28)(function()%7Breturn%20isExtensible(Object.preventExtensions(%7B%7D))%7D)%3Bvar%20setMeta%3Dfunction(it)%7BsetDesc(it%2CMETA%2C%7Bvalue%3A%7Bi%3A%5C%5C%5C%22O%5C%5C%5C%22%2B%20%2B%2Bid%2Cw%3A%7B%7D%7D%7D)%7D%3Bvar%20fastKey%3Dfunction(it%2Ccreate)%7Bif(!isObject(it))return%20typeof%20it%3D%3D%5C%5C%5C%22symbol%5C%5C%5C%22%3Fit%3A(typeof%20it%3D%3D%5C%5C%5C%22string%5C%5C%5C%22%3F%5C%5C%5C%22S%5C%5C%5C%22%3A%5C%5C%5C%22P%5C%5C%5C%22)%2Bit%3Bif(!has(it%2CMETA))%7Bif(!isExtensible(it))return%5C%5C%5C%22F%5C%5C%5C%22%3Bif(!create)return%5C%5C%5C%22E%5C%5C%5C%22%3BsetMeta(it)%7Dreturn%20it%5BMETA%5D.i%7D%3Bvar%20getWeak%3Dfunction(it%2Ccreate)%7Bif(!has(it%2CMETA))%7Bif(!isExtensible(it))return%20true%3Bif(!create)return%20false%3BsetMeta(it)%7Dreturn%20it%5BMETA%5D.w%7D%3Bvar%20onFreeze%3Dfunction(it)%7Bif(FREEZE%26%26meta.NEED%26%26isExtensible(it)%26%26!has(it%2CMETA))setMeta(it)%3Breturn%20it%7D%3Bvar%20meta%3Dmodule.exports%3D%7BKEY%3AMETA%2CNEED%3Afalse%2CfastKey%3AfastKey%2CgetWeak%3AgetWeak%2ConFreeze%3AonFreeze%7D%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7Bvar%20getKeys%3D__webpack_require__(33)%3Bvar%20gOPS%3D__webpack_require__(63)%3Bvar%20pIE%3D__webpack_require__(42)%3Bmodule.exports%3Dfunction(it)%7Bvar%20result%3DgetKeys(it)%3Bvar%20getSymbols%3DgOPS.f%3Bif(getSymbols)%7Bvar%20symbols%3DgetSymbols(it)%3Bvar%20isEnum%3DpIE.f%3Bvar%20i%3D0%3Bvar%20key%3Bwhile(symbols.length%3Ei)if(isEnum.call(it%2Ckey%3Dsymbols%5Bi%2B%2B%5D))result.push(key)%7Dreturn%20result%7D%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7Bvar%20cof%3D__webpack_require__(50)%3Bmodule.exports%3DArray.isArray%7C%7Cfunction%20isArray(arg)%7Breturn%20cof(arg)%3D%3D%5C%5C%5C%22Array%5C%5C%5C%22%7D%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7Bvar%20toIObject%3D__webpack_require__(25)%3Bvar%20gOPN%3D__webpack_require__(88).f%3Bvar%20toString%3D%7B%7D.toString%3Bvar%20windowNames%3Dtypeof%20window%3D%3D%5C%5C%5C%22object%5C%5C%5C%22%26%26window%26%26Object.getOwnPropertyNames%3FObject.getOwnPropertyNames(window)%3A%5B%5D%3Bvar%20getWindowNames%3Dfunction(it)%7Btry%7Breturn%20gOPN(it)%7Dcatch(e)%7Breturn%20windowNames.slice()%7D%7D%3Bmodule.exports.f%3Dfunction%20getOwnPropertyNames(it)%7Breturn%20windowNames%26%26toString.call(it)%3D%3D%5C%5C%5C%22%5Bobject%20Window%5D%5C%5C%5C%22%3FgetWindowNames(it)%3AgOPN(toIObject(it))%7D%7D%2Cfunction(module%2Cexports)%7B%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B__webpack_require__(62)(%5C%5C%5C%22asyncIterator%5C%5C%5C%22)%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B__webpack_require__(62)(%5C%5C%5C%22observable%5C%5C%5C%22)%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B(function(module)%7Bvar%20require%3B(function(global%2Cfactory)%7Btrue%3Fmodule.exports%3Dfactory()%3Atypeof%20define%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22%26%26define.amd%3Fdefine(factory)%3Aglobal.moment%3Dfactory()%7D)(this%2Cfunction()%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bvar%20hookCallback%3Bfunction%20hooks()%7Breturn%20hookCallback.apply(null%2Carguments)%7Dfunction%20setHookCallback(callback)%7BhookCallback%3Dcallback%7Dfunction%20isArray(input)%7Breturn%20input%20instanceof%20Array%7C%7CObject.prototype.toString.call(input)%3D%3D%3D%5C%5C%5C%22%5Bobject%20Array%5D%5C%5C%5C%22%7Dfunction%20isObject(input)%7Breturn%20input!%3Dnull%26%26Object.prototype.toString.call(input)%3D%3D%3D%5C%5C%5C%22%5Bobject%20Object%5D%5C%5C%5C%22%7Dfunction%20isObjectEmpty(obj)%7Bif(Object.getOwnPropertyNames)%7Breturn%20Object.getOwnPropertyNames(obj).length%3D%3D%3D0%7Delse%7Bvar%20k%3Bfor(k%20in%20obj)%7Bif(obj.hasOwnProperty(k))%7Breturn%20false%7D%7Dreturn%20true%7D%7Dfunction%20isUndefined(input)%7Breturn%20input%3D%3D%3Dvoid%200%7Dfunction%20isNumber(input)%7Breturn%20typeof%20input%3D%3D%3D%5C%5C%5C%22number%5C%5C%5C%22%7C%7CObject.prototype.toString.call(input)%3D%3D%3D%5C%5C%5C%22%5Bobject%20Number%5D%5C%5C%5C%22%7Dfunction%20isDate(input)%7Breturn%20input%20instanceof%20Date%7C%7CObject.prototype.toString.call(input)%3D%3D%3D%5C%5C%5C%22%5Bobject%20Date%5D%5C%5C%5C%22%7Dfunction%20map(arr%2Cfn)%7Bvar%20res%3D%5B%5D%2Ci%3Bfor(i%3D0%3Bi%3Carr.length%3B%2B%2Bi)%7Bres.push(fn(arr%5Bi%5D%2Ci))%7Dreturn%20res%7Dfunction%20hasOwnProp(a%2Cb)%7Breturn%20Object.prototype.hasOwnProperty.call(a%2Cb)%7Dfunction%20extend(a%2Cb)%7Bfor(var%20i%20in%20b)%7Bif(hasOwnProp(b%2Ci))%7Ba%5Bi%5D%3Db%5Bi%5D%7D%7Dif(hasOwnProp(b%2C%5C%5C%5C%22toString%5C%5C%5C%22))%7Ba.toString%3Db.toString%7Dif(hasOwnProp(b%2C%5C%5C%5C%22valueOf%5C%5C%5C%22))%7Ba.valueOf%3Db.valueOf%7Dreturn%20a%7Dfunction%20createUTC(input%2Cformat%2Clocale%2Cstrict)%7Breturn%20createLocalOrUTC(input%2Cformat%2Clocale%2Cstrict%2Ctrue).utc()%7Dfunction%20defaultParsingFlags()%7Breturn%7Bempty%3Afalse%2CunusedTokens%3A%5B%5D%2CunusedInput%3A%5B%5D%2Coverflow%3A-2%2CcharsLeftOver%3A0%2CnullInput%3Afalse%2CinvalidMonth%3Anull%2CinvalidFormat%3Afalse%2CuserInvalidated%3Afalse%2Ciso%3Afalse%2CparsedDateParts%3A%5B%5D%2Cmeridiem%3Anull%2Crfc2822%3Afalse%2CweekdayMismatch%3Afalse%7D%7Dfunction%20getParsingFlags(m)%7Bif(m._pf%3D%3Dnull)%7Bm._pf%3DdefaultParsingFlags()%7Dreturn%20m._pf%7Dvar%20some%3Bif(Array.prototype.some)%7Bsome%3DArray.prototype.some%7Delse%7Bsome%3Dfunction(fun)%7Bvar%20t%3DObject(this)%3Bvar%20len%3Dt.length%3E%3E%3E0%3Bfor(var%20i%3D0%3Bi%3Clen%3Bi%2B%2B)%7Bif(i%20in%20t%26%26fun.call(this%2Ct%5Bi%5D%2Ci%2Ct))%7Breturn%20true%7D%7Dreturn%20false%7D%7Dfunction%20isValid(m)%7Bif(m._isValid%3D%3Dnull)%7Bvar%20flags%3DgetParsingFlags(m)%3Bvar%20parsedParts%3Dsome.call(flags.parsedDateParts%2Cfunction(i)%7Breturn%20i!%3Dnull%7D)%3Bvar%20isNowValid%3D!isNaN(m._d.getTime())%26%26flags.overflow%3C0%26%26!flags.empty%26%26!flags.invalidMonth%26%26!flags.invalidWeekday%26%26!flags.weekdayMismatch%26%26!flags.nullInput%26%26!flags.invalidFormat%26%26!flags.userInvalidated%26%26(!flags.meridiem%7C%7Cflags.meridiem%26%26parsedParts)%3Bif(m._strict)%7BisNowValid%3DisNowValid%26%26flags.charsLeftOver%3D%3D%3D0%26%26flags.unusedTokens.length%3D%3D%3D0%26%26flags.bigHour%3D%3D%3Dundefined%7Dif(Object.isFrozen%3D%3Dnull%7C%7C!Object.isFrozen(m))%7Bm._isValid%3DisNowValid%7Delse%7Breturn%20isNowValid%7D%7Dreturn%20m._isValid%7Dfunction%20createInvalid(flags)%7Bvar%20m%3DcreateUTC(NaN)%3Bif(flags!%3Dnull)%7Bextend(getParsingFlags(m)%2Cflags)%7Delse%7BgetParsingFlags(m).userInvalidated%3Dtrue%7Dreturn%20m%7Dvar%20momentProperties%3Dhooks.momentProperties%3D%5B%5D%3Bfunction%20copyConfig(to%2Cfrom)%7Bvar%20i%2Cprop%2Cval%3Bif(!isUndefined(from._isAMomentObject))%7Bto._isAMomentObject%3Dfrom._isAMomentObject%7Dif(!isUndefined(from._i))%7Bto._i%3Dfrom._i%7Dif(!isUndefined(from._f))%7Bto._f%3Dfrom._f%7Dif(!isUndefined(from._l))%7Bto._l%3Dfrom._l%7Dif(!isUndefined(from._strict))%7Bto._strict%3Dfrom._strict%7Dif(!isUndefined(from._tzm))%7Bto._tzm%3Dfrom._tzm%7Dif(!isUndefined(from._isUTC))%7Bto._isUTC%3Dfrom._isUTC%7Dif(!isUndefined(from._offset))%7Bto._offset%3Dfrom._offset%7Dif(!isUndefined(from._pf))%7Bto._pf%3DgetParsingFlags(from)%7Dif(!isUndefined(from._locale))%7Bto._locale%3Dfrom._locale%7Dif(momentProperties.length%3E0)%7Bfor(i%3D0%3Bi%3CmomentProperties.length%3Bi%2B%2B)%7Bprop%3DmomentProperties%5Bi%5D%3Bval%3Dfrom%5Bprop%5D%3Bif(!isUndefined(val))%7Bto%5Bprop%5D%3Dval%7D%7D%7Dreturn%20to%7Dvar%20updateInProgress%3Dfalse%3Bfunction%20Moment(config)%7BcopyConfig(this%2Cconfig)%3Bthis._d%3Dnew%20Date(config._d!%3Dnull%3Fconfig._d.getTime()%3ANaN)%3Bif(!this.isValid())%7Bthis._d%3Dnew%20Date(NaN)%7Dif(updateInProgress%3D%3D%3Dfalse)%7BupdateInProgress%3Dtrue%3Bhooks.updateOffset(this)%3BupdateInProgress%3Dfalse%7D%7Dfunction%20isMoment(obj)%7Breturn%20obj%20instanceof%20Moment%7C%7Cobj!%3Dnull%26%26obj._isAMomentObject!%3Dnull%7Dfunction%20absFloor(number)%7Bif(number%3C0)%7Breturn%20Math.ceil(number)%7C%7C0%7Delse%7Breturn%20Math.floor(number)%7D%7Dfunction%20toInt(argumentForCoercion)%7Bvar%20coercedNumber%3D%2BargumentForCoercion%2Cvalue%3D0%3Bif(coercedNumber!%3D%3D0%26%26isFinite(coercedNumber))%7Bvalue%3DabsFloor(coercedNumber)%7Dreturn%20value%7Dfunction%20compareArrays(array1%2Carray2%2CdontConvert)%7Bvar%20len%3DMath.min(array1.length%2Carray2.length)%2ClengthDiff%3DMath.abs(array1.length-array2.length)%2Cdiffs%3D0%2Ci%3Bfor(i%3D0%3Bi%3Clen%3Bi%2B%2B)%7Bif(dontConvert%26%26array1%5Bi%5D!%3D%3Darray2%5Bi%5D%7C%7C!dontConvert%26%26toInt(array1%5Bi%5D)!%3D%3DtoInt(array2%5Bi%5D))%7Bdiffs%2B%2B%7D%7Dreturn%20diffs%2BlengthDiff%7Dfunction%20warn(msg)%7Bif(hooks.suppressDeprecationWarnings%3D%3D%3Dfalse%26%26typeof%20console!%3D%3D%5C%5C%5C%22undefined%5C%5C%5C%22%26%26console.warn)%7Bconsole.warn(%5C%5C%5C%22Deprecation%20warning%3A%20%5C%5C%5C%22%2Bmsg)%7D%7Dfunction%20deprecate(msg%2Cfn)%7Bvar%20firstTime%3Dtrue%3Breturn%20extend(function()%7Bif(hooks.deprecationHandler!%3Dnull)%7Bhooks.deprecationHandler(null%2Cmsg)%7Dif(firstTime)%7Bvar%20args%3D%5B%5D%3Bvar%20arg%3Bfor(var%20i%3D0%3Bi%3Carguments.length%3Bi%2B%2B)%7Barg%3D%5C%5C%5C%22%5C%5C%5C%22%3Bif(typeof%20arguments%5Bi%5D%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22)%7Barg%2B%3D%5C%5C%5C%22%5C%5C%5C%5Cn%5B%5C%5C%5C%22%2Bi%2B%5C%5C%5C%22%5D%20%5C%5C%5C%22%3Bfor(var%20key%20in%20arguments%5B0%5D)%7Barg%2B%3Dkey%2B%5C%5C%5C%22%3A%20%5C%5C%5C%22%2Barguments%5B0%5D%5Bkey%5D%2B%5C%5C%5C%22%2C%20%5C%5C%5C%22%7Darg%3Darg.slice(0%2C-2)%7Delse%7Barg%3Darguments%5Bi%5D%7Dargs.push(arg)%7Dwarn(msg%2B%5C%5C%5C%22%5C%5C%5C%5CnArguments%3A%20%5C%5C%5C%22%2BArray.prototype.slice.call(args).join(%5C%5C%5C%22%5C%5C%5C%22)%2B%5C%5C%5C%22%5C%5C%5C%5Cn%5C%5C%5C%22%2B(new%20Error).stack)%3BfirstTime%3Dfalse%7Dreturn%20fn.apply(this%2Carguments)%7D%2Cfn)%7Dvar%20deprecations%3D%7B%7D%3Bfunction%20deprecateSimple(name%2Cmsg)%7Bif(hooks.deprecationHandler!%3Dnull)%7Bhooks.deprecationHandler(name%2Cmsg)%7Dif(!deprecations%5Bname%5D)%7Bwarn(msg)%3Bdeprecations%5Bname%5D%3Dtrue%7D%7Dhooks.suppressDeprecationWarnings%3Dfalse%3Bhooks.deprecationHandler%3Dnull%3Bfunction%20isFunction(input)%7Breturn%20input%20instanceof%20Function%7C%7CObject.prototype.toString.call(input)%3D%3D%3D%5C%5C%5C%22%5Bobject%20Function%5D%5C%5C%5C%22%7Dfunction%20set(config)%7Bvar%20prop%2Ci%3Bfor(i%20in%20config)%7Bprop%3Dconfig%5Bi%5D%3Bif(isFunction(prop))%7Bthis%5Bi%5D%3Dprop%7Delse%7Bthis%5B%5C%5C%5C%22_%5C%5C%5C%22%2Bi%5D%3Dprop%7D%7Dthis._config%3Dconfig%3Bthis._dayOfMonthOrdinalParseLenient%3Dnew%20RegExp((this._dayOfMonthOrdinalParse.source%7C%7Cthis._ordinalParse.source)%2B%5C%5C%5C%22%7C%5C%5C%5C%22%2B%2F%5C%5C%5C%5Cd%7B1%2C2%7D%2F.source)%7Dfunction%20mergeConfigs(parentConfig%2CchildConfig)%7Bvar%20res%3Dextend(%7B%7D%2CparentConfig)%2Cprop%3Bfor(prop%20in%20childConfig)%7Bif(hasOwnProp(childConfig%2Cprop))%7Bif(isObject(parentConfig%5Bprop%5D)%26%26isObject(childConfig%5Bprop%5D))%7Bres%5Bprop%5D%3D%7B%7D%3Bextend(res%5Bprop%5D%2CparentConfig%5Bprop%5D)%3Bextend(res%5Bprop%5D%2CchildConfig%5Bprop%5D)%7Delse%20if(childConfig%5Bprop%5D!%3Dnull)%7Bres%5Bprop%5D%3DchildConfig%5Bprop%5D%7Delse%7Bdelete%20res%5Bprop%5D%7D%7D%7Dfor(prop%20in%20parentConfig)%7Bif(hasOwnProp(parentConfig%2Cprop)%26%26!hasOwnProp(childConfig%2Cprop)%26%26isObject(parentConfig%5Bprop%5D))%7Bres%5Bprop%5D%3Dextend(%7B%7D%2Cres%5Bprop%5D)%7D%7Dreturn%20res%7Dfunction%20Locale(config)%7Bif(config!%3Dnull)%7Bthis.set(config)%7D%7Dvar%20keys%3Bif(Object.keys)%7Bkeys%3DObject.keys%7Delse%7Bkeys%3Dfunction(obj)%7Bvar%20i%2Cres%3D%5B%5D%3Bfor(i%20in%20obj)%7Bif(hasOwnProp(obj%2Ci))%7Bres.push(i)%7D%7Dreturn%20res%7D%7Dvar%20defaultCalendar%3D%7BsameDay%3A%5C%5C%5C%22%5BToday%20at%5D%20LT%5C%5C%5C%22%2CnextDay%3A%5C%5C%5C%22%5BTomorrow%20at%5D%20LT%5C%5C%5C%22%2CnextWeek%3A%5C%5C%5C%22dddd%20%5Bat%5D%20LT%5C%5C%5C%22%2ClastDay%3A%5C%5C%5C%22%5BYesterday%20at%5D%20LT%5C%5C%5C%22%2ClastWeek%3A%5C%5C%5C%22%5BLast%5D%20dddd%20%5Bat%5D%20LT%5C%5C%5C%22%2CsameElse%3A%5C%5C%5C%22L%5C%5C%5C%22%7D%3Bfunction%20calendar(key%2Cmom%2Cnow)%7Bvar%20output%3Dthis._calendar%5Bkey%5D%7C%7Cthis._calendar%5B%5C%5C%5C%22sameElse%5C%5C%5C%22%5D%3Breturn%20isFunction(output)%3Foutput.call(mom%2Cnow)%3Aoutput%7Dvar%20defaultLongDateFormat%3D%7BLTS%3A%5C%5C%5C%22h%3Amm%3Ass%20A%5C%5C%5C%22%2CLT%3A%5C%5C%5C%22h%3Amm%20A%5C%5C%5C%22%2CL%3A%5C%5C%5C%22MM%2FDD%2FYYYY%5C%5C%5C%22%2CLL%3A%5C%5C%5C%22MMMM%20D%2C%20YYYY%5C%5C%5C%22%2CLLL%3A%5C%5C%5C%22MMMM%20D%2C%20YYYY%20h%3Amm%20A%5C%5C%5C%22%2CLLLL%3A%5C%5C%5C%22dddd%2C%20MMMM%20D%2C%20YYYY%20h%3Amm%20A%5C%5C%5C%22%7D%3Bfunction%20longDateFormat(key)%7Bvar%20format%3Dthis._longDateFormat%5Bkey%5D%2CformatUpper%3Dthis._longDateFormat%5Bkey.toUpperCase()%5D%3Bif(format%7C%7C!formatUpper)%7Breturn%20format%7Dthis._longDateFormat%5Bkey%5D%3DformatUpper.replace(%2FMMMM%7CMM%7CDD%7Cdddd%2Fg%2Cfunction(val)%7Breturn%20val.slice(1)%7D)%3Breturn%20this._longDateFormat%5Bkey%5D%7Dvar%20defaultInvalidDate%3D%5C%5C%5C%22Invalid%20date%5C%5C%5C%22%3Bfunction%20invalidDate()%7Breturn%20this._invalidDate%7Dvar%20defaultOrdinal%3D%5C%5C%5C%22%25d%5C%5C%5C%22%3Bvar%20defaultDayOfMonthOrdinalParse%3D%2F%5C%5C%5C%5Cd%7B1%2C2%7D%2F%3Bfunction%20ordinal(number)%7Breturn%20this._ordinal.replace(%5C%5C%5C%22%25d%5C%5C%5C%22%2Cnumber)%7Dvar%20defaultRelativeTime%3D%7Bfuture%3A%5C%5C%5C%22in%20%25s%5C%5C%5C%22%2Cpast%3A%5C%5C%5C%22%25s%20ago%5C%5C%5C%22%2Cs%3A%5C%5C%5C%22a%20few%20seconds%5C%5C%5C%22%2Css%3A%5C%5C%5C%22%25d%20seconds%5C%5C%5C%22%2Cm%3A%5C%5C%5C%22a%20minute%5C%5C%5C%22%2Cmm%3A%5C%5C%5C%22%25d%20minutes%5C%5C%5C%22%2Ch%3A%5C%5C%5C%22an%20hour%5C%5C%5C%22%2Chh%3A%5C%5C%5C%22%25d%20hours%5C%5C%5C%22%2Cd%3A%5C%5C%5C%22a%20day%5C%5C%5C%22%2Cdd%3A%5C%5C%5C%22%25d%20days%5C%5C%5C%22%2CM%3A%5C%5C%5C%22a%20month%5C%5C%5C%22%2CMM%3A%5C%5C%5C%22%25d%20months%5C%5C%5C%22%2Cy%3A%5C%5C%5C%22a%20year%5C%5C%5C%22%2Cyy%3A%5C%5C%5C%22%25d%20years%5C%5C%5C%22%7D%3Bfunction%20relativeTime(number%2CwithoutSuffix%2Cstring%2CisFuture)%7Bvar%20output%3Dthis._relativeTime%5Bstring%5D%3Breturn%20isFunction(output)%3Foutput(number%2CwithoutSuffix%2Cstring%2CisFuture)%3Aoutput.replace(%2F%25d%2Fi%2Cnumber)%7Dfunction%20pastFuture(diff%2Coutput)%7Bvar%20format%3Dthis._relativeTime%5Bdiff%3E0%3F%5C%5C%5C%22future%5C%5C%5C%22%3A%5C%5C%5C%22past%5C%5C%5C%22%5D%3Breturn%20isFunction(format)%3Fformat(output)%3Aformat.replace(%2F%25s%2Fi%2Coutput)%7Dvar%20aliases%3D%7B%7D%3Bfunction%20addUnitAlias(unit%2Cshorthand)%7Bvar%20lowerCase%3Dunit.toLowerCase()%3Baliases%5BlowerCase%5D%3Daliases%5BlowerCase%2B%5C%5C%5C%22s%5C%5C%5C%22%5D%3Daliases%5Bshorthand%5D%3Dunit%7Dfunction%20normalizeUnits(units)%7Breturn%20typeof%20units%3D%3D%3D%5C%5C%5C%22string%5C%5C%5C%22%3Faliases%5Bunits%5D%7C%7Caliases%5Bunits.toLowerCase()%5D%3Aundefined%7Dfunction%20normalizeObjectUnits(inputObject)%7Bvar%20normalizedInput%3D%7B%7D%2CnormalizedProp%2Cprop%3Bfor(prop%20in%20inputObject)%7Bif(hasOwnProp(inputObject%2Cprop))%7BnormalizedProp%3DnormalizeUnits(prop)%3Bif(normalizedProp)%7BnormalizedInput%5BnormalizedProp%5D%3DinputObject%5Bprop%5D%7D%7D%7Dreturn%20normalizedInput%7Dvar%20priorities%3D%7B%7D%3Bfunction%20addUnitPriority(unit%2Cpriority)%7Bpriorities%5Bunit%5D%3Dpriority%7Dfunction%20getPrioritizedUnits(unitsObj)%7Bvar%20units%3D%5B%5D%3Bfor(var%20u%20in%20unitsObj)%7Bunits.push(%7Bunit%3Au%2Cpriority%3Apriorities%5Bu%5D%7D)%7Dunits.sort(function(a%2Cb)%7Breturn%20a.priority-b.priority%7D)%3Breturn%20units%7Dfunction%20zeroFill(number%2CtargetLength%2CforceSign)%7Bvar%20absNumber%3D%5C%5C%5C%22%5C%5C%5C%22%2BMath.abs(number)%2CzerosToFill%3DtargetLength-absNumber.length%2Csign%3Dnumber%3E%3D0%3Breturn(sign%3FforceSign%3F%5C%5C%5C%22%2B%5C%5C%5C%22%3A%5C%5C%5C%22%5C%5C%5C%22%3A%5C%5C%5C%22-%5C%5C%5C%22)%2BMath.pow(10%2CMath.max(0%2CzerosToFill)).toString().substr(1)%2BabsNumber%7Dvar%20formattingTokens%3D%2F(%5C%5C%5C%5C%5B%5B%5E%5C%5C%5C%5C%5B%5D*%5C%5C%5C%5C%5D)%7C(%5C%5C%5C%5C%5C%5C%5C%5C)%3F(%5BHh%5Dmm(ss)%3F%7CMo%7CMM%3FM%3FM%3F%7CDo%7CDDDo%7CDD%3FD%3FD%3F%7Cddd%3Fd%3F%7Cdo%3F%7Cw%5Bo%7Cw%5D%3F%7CW%5Bo%7CW%5D%3F%7CQo%3F%7CYYYYYY%7CYYYYY%7CYYYY%7CYY%7Cgg(ggg%3F)%3F%7CGG(GGG%3F)%3F%7Ce%7CE%7Ca%7CA%7Chh%3F%7CHH%3F%7Ckk%3F%7Cmm%3F%7Css%3F%7CS%7B1%2C9%7D%7Cx%7CX%7Czz%3F%7CZZ%3F%7C.)%2Fg%3Bvar%20localFormattingTokens%3D%2F(%5C%5C%5C%5C%5B%5B%5E%5C%5C%5C%5C%5B%5D*%5C%5C%5C%5C%5D)%7C(%5C%5C%5C%5C%5C%5C%5C%5C)%3F(LTS%7CLT%7CLL%3FL%3FL%3F%7Cl%7B1%2C4%7D)%2Fg%3Bvar%20formatFunctions%3D%7B%7D%3Bvar%20formatTokenFunctions%3D%7B%7D%3Bfunction%20addFormatToken(token%2Cpadded%2Cordinal%2Ccallback)%7Bvar%20func%3Dcallback%3Bif(typeof%20callback%3D%3D%3D%5C%5C%5C%22string%5C%5C%5C%22)%7Bfunc%3Dfunction()%7Breturn%20this%5Bcallback%5D()%7D%7Dif(token)%7BformatTokenFunctions%5Btoken%5D%3Dfunc%7Dif(padded)%7BformatTokenFunctions%5Bpadded%5B0%5D%5D%3Dfunction()%7Breturn%20zeroFill(func.apply(this%2Carguments)%2Cpadded%5B1%5D%2Cpadded%5B2%5D)%7D%7Dif(ordinal)%7BformatTokenFunctions%5Bordinal%5D%3Dfunction()%7Breturn%20this.localeData().ordinal(func.apply(this%2Carguments)%2Ctoken)%7D%7D%7Dfunction%20removeFormattingTokens(input)%7Bif(input.match(%2F%5C%5C%5C%5C%5B%5B%5C%5C%5C%5Cs%5C%5C%5C%5CS%5D%2F))%7Breturn%20input.replace(%2F%5E%5C%5C%5C%5C%5B%7C%5C%5C%5C%5C%5D%24%2Fg%2C%5C%5C%5C%22%5C%5C%5C%22)%7Dreturn%20input.replace(%2F%5C%5C%5C%5C%5C%5C%5C%5C%2Fg%2C%5C%5C%5C%22%5C%5C%5C%22)%7Dfunction%20makeFormatFunction(format)%7Bvar%20array%3Dformat.match(formattingTokens)%2Ci%2Clength%3Bfor(i%3D0%2Clength%3Darray.length%3Bi%3Clength%3Bi%2B%2B)%7Bif(formatTokenFunctions%5Barray%5Bi%5D%5D)%7Barray%5Bi%5D%3DformatTokenFunctions%5Barray%5Bi%5D%5D%7Delse%7Barray%5Bi%5D%3DremoveFormattingTokens(array%5Bi%5D)%7D%7Dreturn%20function(mom)%7Bvar%20output%3D%5C%5C%5C%22%5C%5C%5C%22%2Ci%3Bfor(i%3D0%3Bi%3Clength%3Bi%2B%2B)%7Boutput%2B%3DisFunction(array%5Bi%5D)%3Farray%5Bi%5D.call(mom%2Cformat)%3Aarray%5Bi%5D%7Dreturn%20output%7D%7Dfunction%20formatMoment(m%2Cformat)%7Bif(!m.isValid())%7Breturn%20m.localeData().invalidDate()%7Dformat%3DexpandFormat(format%2Cm.localeData())%3BformatFunctions%5Bformat%5D%3DformatFunctions%5Bformat%5D%7C%7CmakeFormatFunction(format)%3Breturn%20formatFunctions%5Bformat%5D(m)%7Dfunction%20expandFormat(format%2Clocale)%7Bvar%20i%3D5%3Bfunction%20replaceLongDateFormatTokens(input)%7Breturn%20locale.longDateFormat(input)%7C%7Cinput%7DlocalFormattingTokens.lastIndex%3D0%3Bwhile(i%3E%3D0%26%26localFormattingTokens.test(format))%7Bformat%3Dformat.replace(localFormattingTokens%2CreplaceLongDateFormatTokens)%3BlocalFormattingTokens.lastIndex%3D0%3Bi-%3D1%7Dreturn%20format%7Dvar%20match1%3D%2F%5C%5C%5C%5Cd%2F%3Bvar%20match2%3D%2F%5C%5C%5C%5Cd%5C%5C%5C%5Cd%2F%3Bvar%20match3%3D%2F%5C%5C%5C%5Cd%7B3%7D%2F%3Bvar%20match4%3D%2F%5C%5C%5C%5Cd%7B4%7D%2F%3Bvar%20match6%3D%2F%5B%2B-%5D%3F%5C%5C%5C%5Cd%7B6%7D%2F%3Bvar%20match1to2%3D%2F%5C%5C%5C%5Cd%5C%5C%5C%5Cd%3F%2F%3Bvar%20match3to4%3D%2F%5C%5C%5C%5Cd%5C%5C%5C%5Cd%5C%5C%5C%5Cd%5C%5C%5C%5Cd%3F%2F%3Bvar%20match5to6%3D%2F%5C%5C%5C%5Cd%5C%5C%5C%5Cd%5C%5C%5C%5Cd%5C%5C%5C%5Cd%5C%5C%5C%5Cd%5C%5C%5C%5Cd%3F%2F%3Bvar%20match1to3%3D%2F%5C%5C%5C%5Cd%7B1%2C3%7D%2F%3Bvar%20match1to4%3D%2F%5C%5C%5C%5Cd%7B1%2C4%7D%2F%3Bvar%20match1to6%3D%2F%5B%2B-%5D%3F%5C%5C%5C%5Cd%7B1%2C6%7D%2F%3Bvar%20matchUnsigned%3D%2F%5C%5C%5C%5Cd%2B%2F%3Bvar%20matchSigned%3D%2F%5B%2B-%5D%3F%5C%5C%5C%5Cd%2B%2F%3Bvar%20matchOffset%3D%2FZ%7C%5B%2B-%5D%5C%5C%5C%5Cd%5C%5C%5C%5Cd%3A%3F%5C%5C%5C%5Cd%5C%5C%5C%5Cd%2Fgi%3Bvar%20matchShortOffset%3D%2FZ%7C%5B%2B-%5D%5C%5C%5C%5Cd%5C%5C%5C%5Cd(%3F%3A%3A%3F%5C%5C%5C%5Cd%5C%5C%5C%5Cd)%3F%2Fgi%3Bvar%20matchTimestamp%3D%2F%5B%2B-%5D%3F%5C%5C%5C%5Cd%2B(%5C%5C%5C%5C.%5C%5C%5C%5Cd%7B1%2C3%7D)%3F%2F%3Bvar%20matchWord%3D%2F%5B0-9%5D*%5B'a-z%5C%5C%5C%5Cu00A0-%5C%5C%5C%5Cu05FF%5C%5C%5C%5Cu0700-%5C%5C%5C%5CuD7FF%5C%5C%5C%5CuF900-%5C%5C%5C%5CuFDCF%5C%5C%5C%5CuFDF0-%5C%5C%5C%5CuFFEF%5D%2B%7C%5B%5C%5C%5C%5Cu0600-%5C%5C%5C%5Cu06FF%5C%5C%5C%5C%2F%5D%2B(%5C%5C%5C%5Cs*%3F%5B%5C%5C%5C%5Cu0600-%5C%5C%5C%5Cu06FF%5D%2B)%7B1%2C2%7D%2Fi%3Bvar%20regexes%3D%7B%7D%3Bfunction%20addRegexToken(token%2Cregex%2CstrictRegex)%7Bregexes%5Btoken%5D%3DisFunction(regex)%3Fregex%3Afunction(isStrict%2ClocaleData)%7Breturn%20isStrict%26%26strictRegex%3FstrictRegex%3Aregex%7D%7Dfunction%20getParseRegexForToken(token%2Cconfig)%7Bif(!hasOwnProp(regexes%2Ctoken))%7Breturn%20new%20RegExp(unescapeFormat(token))%7Dreturn%20regexes%5Btoken%5D(config._strict%2Cconfig._locale)%7Dfunction%20unescapeFormat(s)%7Breturn%20regexEscape(s.replace(%5C%5C%5C%22%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%22%2C%5C%5C%5C%22%5C%5C%5C%22).replace(%2F%5C%5C%5C%5C%5C%5C%5C%5C(%5C%5C%5C%5C%5B)%7C%5C%5C%5C%5C%5C%5C%5C%5C(%5C%5C%5C%5C%5D)%7C%5C%5C%5C%5C%5B(%5B%5E%5C%5C%5C%5C%5D%5C%5C%5C%5C%5B%5D*)%5C%5C%5C%5C%5D%7C%5C%5C%5C%5C%5C%5C%5C%5C(.)%2Fg%2Cfunction(matched%2Cp1%2Cp2%2Cp3%2Cp4)%7Breturn%20p1%7C%7Cp2%7C%7Cp3%7C%7Cp4%7D))%7Dfunction%20regexEscape(s)%7Breturn%20s.replace(%2F%5B-%5C%5C%5C%5C%2F%5C%5C%5C%5C%5C%5C%5C%5C%5E%24*%2B%3F.()%7C%5B%5C%5C%5C%5C%5D%7B%7D%5D%2Fg%2C%5C%5C%5C%22%5C%5C%5C%5C%5C%5C%5C%5C%24%26%5C%5C%5C%22)%7Dvar%20tokens%3D%7B%7D%3Bfunction%20addParseToken(token%2Ccallback)%7Bvar%20i%2Cfunc%3Dcallback%3Bif(typeof%20token%3D%3D%3D%5C%5C%5C%22string%5C%5C%5C%22)%7Btoken%3D%5Btoken%5D%7Dif(isNumber(callback))%7Bfunc%3Dfunction(input%2Carray)%7Barray%5Bcallback%5D%3DtoInt(input)%7D%7Dfor(i%3D0%3Bi%3Ctoken.length%3Bi%2B%2B)%7Btokens%5Btoken%5Bi%5D%5D%3Dfunc%7D%7Dfunction%20addWeekParseToken(token%2Ccallback)%7BaddParseToken(token%2Cfunction(input%2Carray%2Cconfig%2Ctoken)%7Bconfig._w%3Dconfig._w%7C%7C%7B%7D%3Bcallback(input%2Cconfig._w%2Cconfig%2Ctoken)%7D)%7Dfunction%20addTimeToArrayFromToken(token%2Cinput%2Cconfig)%7Bif(input!%3Dnull%26%26hasOwnProp(tokens%2Ctoken))%7Btokens%5Btoken%5D(input%2Cconfig._a%2Cconfig%2Ctoken)%7D%7Dvar%20YEAR%3D0%3Bvar%20MONTH%3D1%3Bvar%20DATE%3D2%3Bvar%20HOUR%3D3%3Bvar%20MINUTE%3D4%3Bvar%20SECOND%3D5%3Bvar%20MILLISECOND%3D6%3Bvar%20WEEK%3D7%3Bvar%20WEEKDAY%3D8%3BaddFormatToken(%5C%5C%5C%22Y%5C%5C%5C%22%2C0%2C0%2Cfunction()%7Bvar%20y%3Dthis.year()%3Breturn%20y%3C%3D9999%3F%5C%5C%5C%22%5C%5C%5C%22%2By%3A%5C%5C%5C%22%2B%5C%5C%5C%22%2By%7D)%3BaddFormatToken(0%2C%5B%5C%5C%5C%22YY%5C%5C%5C%22%2C2%5D%2C0%2Cfunction()%7Breturn%20this.year()%25100%7D)%3BaddFormatToken(0%2C%5B%5C%5C%5C%22YYYY%5C%5C%5C%22%2C4%5D%2C0%2C%5C%5C%5C%22year%5C%5C%5C%22)%3BaddFormatToken(0%2C%5B%5C%5C%5C%22YYYYY%5C%5C%5C%22%2C5%5D%2C0%2C%5C%5C%5C%22year%5C%5C%5C%22)%3BaddFormatToken(0%2C%5B%5C%5C%5C%22YYYYYY%5C%5C%5C%22%2C6%2Ctrue%5D%2C0%2C%5C%5C%5C%22year%5C%5C%5C%22)%3BaddUnitAlias(%5C%5C%5C%22year%5C%5C%5C%22%2C%5C%5C%5C%22y%5C%5C%5C%22)%3BaddUnitPriority(%5C%5C%5C%22year%5C%5C%5C%22%2C1)%3BaddRegexToken(%5C%5C%5C%22Y%5C%5C%5C%22%2CmatchSigned)%5C%5Cn%3BaddRegexToken(%5C%5C%5C%22YY%5C%5C%5C%22%2Cmatch1to2%2Cmatch2)%3BaddRegexToken(%5C%5C%5C%22YYYY%5C%5C%5C%22%2Cmatch1to4%2Cmatch4)%3BaddRegexToken(%5C%5C%5C%22YYYYY%5C%5C%5C%22%2Cmatch1to6%2Cmatch6)%3BaddRegexToken(%5C%5C%5C%22YYYYYY%5C%5C%5C%22%2Cmatch1to6%2Cmatch6)%3BaddParseToken(%5B%5C%5C%5C%22YYYYY%5C%5C%5C%22%2C%5C%5C%5C%22YYYYYY%5C%5C%5C%22%5D%2CYEAR)%3BaddParseToken(%5C%5C%5C%22YYYY%5C%5C%5C%22%2Cfunction(input%2Carray)%7Barray%5BYEAR%5D%3Dinput.length%3D%3D%3D2%3Fhooks.parseTwoDigitYear(input)%3AtoInt(input)%7D)%3BaddParseToken(%5C%5C%5C%22YY%5C%5C%5C%22%2Cfunction(input%2Carray)%7Barray%5BYEAR%5D%3Dhooks.parseTwoDigitYear(input)%7D)%3BaddParseToken(%5C%5C%5C%22Y%5C%5C%5C%22%2Cfunction(input%2Carray)%7Barray%5BYEAR%5D%3DparseInt(input%2C10)%7D)%3Bfunction%20daysInYear(year)%7Breturn%20isLeapYear(year)%3F366%3A365%7Dfunction%20isLeapYear(year)%7Breturn%20year%254%3D%3D%3D0%26%26year%25100!%3D%3D0%7C%7Cyear%25400%3D%3D%3D0%7Dhooks.parseTwoDigitYear%3Dfunction(input)%7Breturn%20toInt(input)%2B(toInt(input)%3E68%3F1900%3A2e3)%7D%3Bvar%20getSetYear%3DmakeGetSet(%5C%5C%5C%22FullYear%5C%5C%5C%22%2Ctrue)%3Bfunction%20getIsLeapYear()%7Breturn%20isLeapYear(this.year())%7Dfunction%20makeGetSet(unit%2CkeepTime)%7Breturn%20function(value)%7Bif(value!%3Dnull)%7Bset%241(this%2Cunit%2Cvalue)%3Bhooks.updateOffset(this%2CkeepTime)%3Breturn%20this%7Delse%7Breturn%20get(this%2Cunit)%7D%7D%7Dfunction%20get(mom%2Cunit)%7Breturn%20mom.isValid()%3Fmom._d%5B%5C%5C%5C%22get%5C%5C%5C%22%2B(mom._isUTC%3F%5C%5C%5C%22UTC%5C%5C%5C%22%3A%5C%5C%5C%22%5C%5C%5C%22)%2Bunit%5D()%3ANaN%7Dfunction%20set%241(mom%2Cunit%2Cvalue)%7Bif(mom.isValid()%26%26!isNaN(value))%7Bif(unit%3D%3D%3D%5C%5C%5C%22FullYear%5C%5C%5C%22%26%26isLeapYear(mom.year()))%7Bmom._d%5B%5C%5C%5C%22set%5C%5C%5C%22%2B(mom._isUTC%3F%5C%5C%5C%22UTC%5C%5C%5C%22%3A%5C%5C%5C%22%5C%5C%5C%22)%2Bunit%5D(value%2Cmom.month()%2CdaysInMonth(value%2Cmom.month()))%7Delse%7Bmom._d%5B%5C%5C%5C%22set%5C%5C%5C%22%2B(mom._isUTC%3F%5C%5C%5C%22UTC%5C%5C%5C%22%3A%5C%5C%5C%22%5C%5C%5C%22)%2Bunit%5D(value)%7D%7D%7Dfunction%20stringGet(units)%7Bunits%3DnormalizeUnits(units)%3Bif(isFunction(this%5Bunits%5D))%7Breturn%20this%5Bunits%5D()%7Dreturn%20this%7Dfunction%20stringSet(units%2Cvalue)%7Bif(typeof%20units%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22)%7Bunits%3DnormalizeObjectUnits(units)%3Bvar%20prioritized%3DgetPrioritizedUnits(units)%3Bfor(var%20i%3D0%3Bi%3Cprioritized.length%3Bi%2B%2B)%7Bthis%5Bprioritized%5Bi%5D.unit%5D(units%5Bprioritized%5Bi%5D.unit%5D)%7D%7Delse%7Bunits%3DnormalizeUnits(units)%3Bif(isFunction(this%5Bunits%5D))%7Breturn%20this%5Bunits%5D(value)%7D%7Dreturn%20this%7Dfunction%20mod(n%2Cx)%7Breturn(n%25x%2Bx)%25x%7Dvar%20indexOf%3Bif(Array.prototype.indexOf)%7BindexOf%3DArray.prototype.indexOf%7Delse%7BindexOf%3Dfunction(o)%7Bvar%20i%3Bfor(i%3D0%3Bi%3Cthis.length%3B%2B%2Bi)%7Bif(this%5Bi%5D%3D%3D%3Do)%7Breturn%20i%7D%7Dreturn-1%7D%7Dfunction%20daysInMonth(year%2Cmonth)%7Bif(isNaN(year)%7C%7CisNaN(month))%7Breturn%20NaN%7Dvar%20modMonth%3Dmod(month%2C12)%3Byear%2B%3D(month-modMonth)%2F12%3Breturn%20modMonth%3D%3D%3D1%3FisLeapYear(year)%3F29%3A28%3A31-modMonth%257%252%7DaddFormatToken(%5C%5C%5C%22M%5C%5C%5C%22%2C%5B%5C%5C%5C%22MM%5C%5C%5C%22%2C2%5D%2C%5C%5C%5C%22Mo%5C%5C%5C%22%2Cfunction()%7Breturn%20this.month()%2B1%7D)%3BaddFormatToken(%5C%5C%5C%22MMM%5C%5C%5C%22%2C0%2C0%2Cfunction(format)%7Breturn%20this.localeData().monthsShort(this%2Cformat)%7D)%3BaddFormatToken(%5C%5C%5C%22MMMM%5C%5C%5C%22%2C0%2C0%2Cfunction(format)%7Breturn%20this.localeData().months(this%2Cformat)%7D)%3BaddUnitAlias(%5C%5C%5C%22month%5C%5C%5C%22%2C%5C%5C%5C%22M%5C%5C%5C%22)%3BaddUnitPriority(%5C%5C%5C%22month%5C%5C%5C%22%2C8)%3BaddRegexToken(%5C%5C%5C%22M%5C%5C%5C%22%2Cmatch1to2)%3BaddRegexToken(%5C%5C%5C%22MM%5C%5C%5C%22%2Cmatch1to2%2Cmatch2)%3BaddRegexToken(%5C%5C%5C%22MMM%5C%5C%5C%22%2Cfunction(isStrict%2Clocale)%7Breturn%20locale.monthsShortRegex(isStrict)%7D)%3BaddRegexToken(%5C%5C%5C%22MMMM%5C%5C%5C%22%2Cfunction(isStrict%2Clocale)%7Breturn%20locale.monthsRegex(isStrict)%7D)%3BaddParseToken(%5B%5C%5C%5C%22M%5C%5C%5C%22%2C%5C%5C%5C%22MM%5C%5C%5C%22%5D%2Cfunction(input%2Carray)%7Barray%5BMONTH%5D%3DtoInt(input)-1%7D)%3BaddParseToken(%5B%5C%5C%5C%22MMM%5C%5C%5C%22%2C%5C%5C%5C%22MMMM%5C%5C%5C%22%5D%2Cfunction(input%2Carray%2Cconfig%2Ctoken)%7Bvar%20month%3Dconfig._locale.monthsParse(input%2Ctoken%2Cconfig._strict)%3Bif(month!%3Dnull)%7Barray%5BMONTH%5D%3Dmonth%7Delse%7BgetParsingFlags(config).invalidMonth%3Dinput%7D%7D)%3Bvar%20MONTHS_IN_FORMAT%3D%2FD%5BoD%5D%3F(%5C%5C%5C%5C%5B%5B%5E%5C%5C%5C%5C%5B%5C%5C%5C%5C%5D%5D*%5C%5C%5C%5C%5D%7C%5C%5C%5C%5Cs)%2BMMMM%3F%2F%3Bvar%20defaultLocaleMonths%3D%5C%5C%5C%22January_February_March_April_May_June_July_August_September_October_November_December%5C%5C%5C%22.split(%5C%5C%5C%22_%5C%5C%5C%22)%3Bfunction%20localeMonths(m%2Cformat)%7Bif(!m)%7Breturn%20isArray(this._months)%3Fthis._months%3Athis._months%5B%5C%5C%5C%22standalone%5C%5C%5C%22%5D%7Dreturn%20isArray(this._months)%3Fthis._months%5Bm.month()%5D%3Athis._months%5B(this._months.isFormat%7C%7CMONTHS_IN_FORMAT).test(format)%3F%5C%5C%5C%22format%5C%5C%5C%22%3A%5C%5C%5C%22standalone%5C%5C%5C%22%5D%5Bm.month()%5D%7Dvar%20defaultLocaleMonthsShort%3D%5C%5C%5C%22Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec%5C%5C%5C%22.split(%5C%5C%5C%22_%5C%5C%5C%22)%3Bfunction%20localeMonthsShort(m%2Cformat)%7Bif(!m)%7Breturn%20isArray(this._monthsShort)%3Fthis._monthsShort%3Athis._monthsShort%5B%5C%5C%5C%22standalone%5C%5C%5C%22%5D%7Dreturn%20isArray(this._monthsShort)%3Fthis._monthsShort%5Bm.month()%5D%3Athis._monthsShort%5BMONTHS_IN_FORMAT.test(format)%3F%5C%5C%5C%22format%5C%5C%5C%22%3A%5C%5C%5C%22standalone%5C%5C%5C%22%5D%5Bm.month()%5D%7Dfunction%20handleStrictParse(monthName%2Cformat%2Cstrict)%7Bvar%20i%2Cii%2Cmom%2Cllc%3DmonthName.toLocaleLowerCase()%3Bif(!this._monthsParse)%7Bthis._monthsParse%3D%5B%5D%3Bthis._longMonthsParse%3D%5B%5D%3Bthis._shortMonthsParse%3D%5B%5D%3Bfor(i%3D0%3Bi%3C12%3B%2B%2Bi)%7Bmom%3DcreateUTC(%5B2e3%2Ci%5D)%3Bthis._shortMonthsParse%5Bi%5D%3Dthis.monthsShort(mom%2C%5C%5C%5C%22%5C%5C%5C%22).toLocaleLowerCase()%3Bthis._longMonthsParse%5Bi%5D%3Dthis.months(mom%2C%5C%5C%5C%22%5C%5C%5C%22).toLocaleLowerCase()%7D%7Dif(strict)%7Bif(format%3D%3D%3D%5C%5C%5C%22MMM%5C%5C%5C%22)%7Bii%3DindexOf.call(this._shortMonthsParse%2Cllc)%3Breturn%20ii!%3D%3D-1%3Fii%3Anull%7Delse%7Bii%3DindexOf.call(this._longMonthsParse%2Cllc)%3Breturn%20ii!%3D%3D-1%3Fii%3Anull%7D%7Delse%7Bif(format%3D%3D%3D%5C%5C%5C%22MMM%5C%5C%5C%22)%7Bii%3DindexOf.call(this._shortMonthsParse%2Cllc)%3Bif(ii!%3D%3D-1)%7Breturn%20ii%7Dii%3DindexOf.call(this._longMonthsParse%2Cllc)%3Breturn%20ii!%3D%3D-1%3Fii%3Anull%7Delse%7Bii%3DindexOf.call(this._longMonthsParse%2Cllc)%3Bif(ii!%3D%3D-1)%7Breturn%20ii%7Dii%3DindexOf.call(this._shortMonthsParse%2Cllc)%3Breturn%20ii!%3D%3D-1%3Fii%3Anull%7D%7D%7Dfunction%20localeMonthsParse(monthName%2Cformat%2Cstrict)%7Bvar%20i%2Cmom%2Cregex%3Bif(this._monthsParseExact)%7Breturn%20handleStrictParse.call(this%2CmonthName%2Cformat%2Cstrict)%7Dif(!this._monthsParse)%7Bthis._monthsParse%3D%5B%5D%3Bthis._longMonthsParse%3D%5B%5D%3Bthis._shortMonthsParse%3D%5B%5D%7Dfor(i%3D0%3Bi%3C12%3Bi%2B%2B)%7Bmom%3DcreateUTC(%5B2e3%2Ci%5D)%3Bif(strict%26%26!this._longMonthsParse%5Bi%5D)%7Bthis._longMonthsParse%5Bi%5D%3Dnew%20RegExp(%5C%5C%5C%22%5E%5C%5C%5C%22%2Bthis.months(mom%2C%5C%5C%5C%22%5C%5C%5C%22).replace(%5C%5C%5C%22.%5C%5C%5C%22%2C%5C%5C%5C%22%5C%5C%5C%22)%2B%5C%5C%5C%22%24%5C%5C%5C%22%2C%5C%5C%5C%22i%5C%5C%5C%22)%3Bthis._shortMonthsParse%5Bi%5D%3Dnew%20RegExp(%5C%5C%5C%22%5E%5C%5C%5C%22%2Bthis.monthsShort(mom%2C%5C%5C%5C%22%5C%5C%5C%22).replace(%5C%5C%5C%22.%5C%5C%5C%22%2C%5C%5C%5C%22%5C%5C%5C%22)%2B%5C%5C%5C%22%24%5C%5C%5C%22%2C%5C%5C%5C%22i%5C%5C%5C%22)%7Dif(!strict%26%26!this._monthsParse%5Bi%5D)%7Bregex%3D%5C%5C%5C%22%5E%5C%5C%5C%22%2Bthis.months(mom%2C%5C%5C%5C%22%5C%5C%5C%22)%2B%5C%5C%5C%22%7C%5E%5C%5C%5C%22%2Bthis.monthsShort(mom%2C%5C%5C%5C%22%5C%5C%5C%22)%3Bthis._monthsParse%5Bi%5D%3Dnew%20RegExp(regex.replace(%5C%5C%5C%22.%5C%5C%5C%22%2C%5C%5C%5C%22%5C%5C%5C%22)%2C%5C%5C%5C%22i%5C%5C%5C%22)%7Dif(strict%26%26format%3D%3D%3D%5C%5C%5C%22MMMM%5C%5C%5C%22%26%26this._longMonthsParse%5Bi%5D.test(monthName))%7Breturn%20i%7Delse%20if(strict%26%26format%3D%3D%3D%5C%5C%5C%22MMM%5C%5C%5C%22%26%26this._shortMonthsParse%5Bi%5D.test(monthName))%7Breturn%20i%7Delse%20if(!strict%26%26this._monthsParse%5Bi%5D.test(monthName))%7Breturn%20i%7D%7D%7Dfunction%20setMonth(mom%2Cvalue)%7Bvar%20dayOfMonth%3Bif(!mom.isValid())%7Breturn%20mom%7Dif(typeof%20value%3D%3D%3D%5C%5C%5C%22string%5C%5C%5C%22)%7Bif(%2F%5E%5C%5C%5C%5Cd%2B%24%2F.test(value))%7Bvalue%3DtoInt(value)%7Delse%7Bvalue%3Dmom.localeData().monthsParse(value)%3Bif(!isNumber(value))%7Breturn%20mom%7D%7D%7DdayOfMonth%3DMath.min(mom.date()%2CdaysInMonth(mom.year()%2Cvalue))%3Bmom._d%5B%5C%5C%5C%22set%5C%5C%5C%22%2B(mom._isUTC%3F%5C%5C%5C%22UTC%5C%5C%5C%22%3A%5C%5C%5C%22%5C%5C%5C%22)%2B%5C%5C%5C%22Month%5C%5C%5C%22%5D(value%2CdayOfMonth)%3Breturn%20mom%7Dfunction%20getSetMonth(value)%7Bif(value!%3Dnull)%7BsetMonth(this%2Cvalue)%3Bhooks.updateOffset(this%2Ctrue)%3Breturn%20this%7Delse%7Breturn%20get(this%2C%5C%5C%5C%22Month%5C%5C%5C%22)%7D%7Dfunction%20getDaysInMonth()%7Breturn%20daysInMonth(this.year()%2Cthis.month())%7Dvar%20defaultMonthsShortRegex%3DmatchWord%3Bfunction%20monthsShortRegex(isStrict)%7Bif(this._monthsParseExact)%7Bif(!hasOwnProp(this%2C%5C%5C%5C%22_monthsRegex%5C%5C%5C%22))%7BcomputeMonthsParse.call(this)%7Dif(isStrict)%7Breturn%20this._monthsShortStrictRegex%7Delse%7Breturn%20this._monthsShortRegex%7D%7Delse%7Bif(!hasOwnProp(this%2C%5C%5C%5C%22_monthsShortRegex%5C%5C%5C%22))%7Bthis._monthsShortRegex%3DdefaultMonthsShortRegex%7Dreturn%20this._monthsShortStrictRegex%26%26isStrict%3Fthis._monthsShortStrictRegex%3Athis._monthsShortRegex%7D%7Dvar%20defaultMonthsRegex%3DmatchWord%3Bfunction%20monthsRegex(isStrict)%7Bif(this._monthsParseExact)%7Bif(!hasOwnProp(this%2C%5C%5C%5C%22_monthsRegex%5C%5C%5C%22))%7BcomputeMonthsParse.call(this)%7Dif(isStrict)%7Breturn%20this._monthsStrictRegex%7Delse%7Breturn%20this._monthsRegex%7D%7Delse%7Bif(!hasOwnProp(this%2C%5C%5C%5C%22_monthsRegex%5C%5C%5C%22))%7Bthis._monthsRegex%3DdefaultMonthsRegex%7Dreturn%20this._monthsStrictRegex%26%26isStrict%3Fthis._monthsStrictRegex%3Athis._monthsRegex%7D%7Dfunction%20computeMonthsParse()%7Bfunction%20cmpLenRev(a%2Cb)%7Breturn%20b.length-a.length%7Dvar%20shortPieces%3D%5B%5D%2ClongPieces%3D%5B%5D%2CmixedPieces%3D%5B%5D%2Ci%2Cmom%3Bfor(i%3D0%3Bi%3C12%3Bi%2B%2B)%7Bmom%3DcreateUTC(%5B2e3%2Ci%5D)%3BshortPieces.push(this.monthsShort(mom%2C%5C%5C%5C%22%5C%5C%5C%22))%3BlongPieces.push(this.months(mom%2C%5C%5C%5C%22%5C%5C%5C%22))%3BmixedPieces.push(this.months(mom%2C%5C%5C%5C%22%5C%5C%5C%22))%3BmixedPieces.push(this.monthsShort(mom%2C%5C%5C%5C%22%5C%5C%5C%22))%7DshortPieces.sort(cmpLenRev)%3BlongPieces.sort(cmpLenRev)%3BmixedPieces.sort(cmpLenRev)%3Bfor(i%3D0%3Bi%3C12%3Bi%2B%2B)%7BshortPieces%5Bi%5D%3DregexEscape(shortPieces%5Bi%5D)%3BlongPieces%5Bi%5D%3DregexEscape(longPieces%5Bi%5D)%7Dfor(i%3D0%3Bi%3C24%3Bi%2B%2B)%7BmixedPieces%5Bi%5D%3DregexEscape(mixedPieces%5Bi%5D)%7Dthis._monthsRegex%3Dnew%20RegExp(%5C%5C%5C%22%5E(%5C%5C%5C%22%2BmixedPieces.join(%5C%5C%5C%22%7C%5C%5C%5C%22)%2B%5C%5C%5C%22)%5C%5C%5C%22%2C%5C%5C%5C%22i%5C%5C%5C%22)%3Bthis._monthsShortRegex%3Dthis._monthsRegex%3Bthis._monthsStrictRegex%3Dnew%20RegExp(%5C%5C%5C%22%5E(%5C%5C%5C%22%2BlongPieces.join(%5C%5C%5C%22%7C%5C%5C%5C%22)%2B%5C%5C%5C%22)%5C%5C%5C%22%2C%5C%5C%5C%22i%5C%5C%5C%22)%3Bthis._monthsShortStrictRegex%3Dnew%20RegExp(%5C%5C%5C%22%5E(%5C%5C%5C%22%2BshortPieces.join(%5C%5C%5C%22%7C%5C%5C%5C%22)%2B%5C%5C%5C%22)%5C%5C%5C%22%2C%5C%5C%5C%22i%5C%5C%5C%22)%7Dfunction%20createDate(y%2Cm%2Cd%2Ch%2CM%2Cs%2Cms)%7Bvar%20date%3Dnew%20Date(y%2Cm%2Cd%2Ch%2CM%2Cs%2Cms)%3Bif(y%3C100%26%26y%3E%3D0%26%26isFinite(date.getFullYear()))%7Bdate.setFullYear(y)%7Dreturn%20date%7Dfunction%20createUTCDate(y)%7Bvar%20date%3Dnew%20Date(Date.UTC.apply(null%2Carguments))%3Bif(y%3C100%26%26y%3E%3D0%26%26isFinite(date.getUTCFullYear()))%7Bdate.setUTCFullYear(y)%7Dreturn%20date%7Dfunction%20firstWeekOffset(year%2Cdow%2Cdoy)%7Bvar%20fwd%3D7%2Bdow-doy%2Cfwdlw%3D(7%2BcreateUTCDate(year%2C0%2Cfwd).getUTCDay()-dow)%257%3Breturn-fwdlw%2Bfwd-1%7Dfunction%20dayOfYearFromWeeks(year%2Cweek%2Cweekday%2Cdow%2Cdoy)%7Bvar%20localWeekday%3D(7%2Bweekday-dow)%257%2CweekOffset%3DfirstWeekOffset(year%2Cdow%2Cdoy)%2CdayOfYear%3D1%2B7*(week-1)%2BlocalWeekday%2BweekOffset%2CresYear%2CresDayOfYear%3Bif(dayOfYear%3C%3D0)%7BresYear%3Dyear-1%3BresDayOfYear%3DdaysInYear(resYear)%2BdayOfYear%7Delse%20if(dayOfYear%3EdaysInYear(year))%7BresYear%3Dyear%2B1%3BresDayOfYear%3DdayOfYear-daysInYear(year)%7Delse%7BresYear%3Dyear%3BresDayOfYear%3DdayOfYear%7Dreturn%7Byear%3AresYear%2CdayOfYear%3AresDayOfYear%7D%7Dfunction%20weekOfYear(mom%2Cdow%2Cdoy)%7Bvar%20weekOffset%3DfirstWeekOffset(mom.year()%2Cdow%2Cdoy)%2Cweek%3DMath.floor((mom.dayOfYear()-weekOffset-1)%2F7)%2B1%2CresWeek%2CresYear%3Bif(week%3C1)%7BresYear%3Dmom.year()-1%3BresWeek%3Dweek%2BweeksInYear(resYear%2Cdow%2Cdoy)%7Delse%20if(week%3EweeksInYear(mom.year()%2Cdow%2Cdoy))%7BresWeek%3Dweek-weeksInYear(mom.year()%2Cdow%2Cdoy)%3BresYear%3Dmom.year()%2B1%7Delse%7BresYear%3Dmom.year()%3BresWeek%3Dweek%7Dreturn%7Bweek%3AresWeek%2Cyear%3AresYear%7D%7Dfunction%20weeksInYear(year%2Cdow%2Cdoy)%7Bvar%20weekOffset%3DfirstWeekOffset(year%2Cdow%2Cdoy)%2CweekOffsetNext%3DfirstWeekOffset(year%2B1%2Cdow%2Cdoy)%3Breturn(daysInYear(year)-weekOffset%2BweekOffsetNext)%2F7%7DaddFormatToken(%5C%5C%5C%22w%5C%5C%5C%22%2C%5B%5C%5C%5C%22ww%5C%5C%5C%22%2C2%5D%2C%5C%5C%5C%22wo%5C%5C%5C%22%2C%5C%5C%5C%22week%5C%5C%5C%22)%3BaddFormatToken(%5C%5C%5C%22W%5C%5C%5C%22%2C%5B%5C%5C%5C%22WW%5C%5C%5C%22%2C2%5D%2C%5C%5C%5C%22Wo%5C%5C%5C%22%2C%5C%5C%5C%22isoWeek%5C%5C%5C%22)%3BaddUnitAlias(%5C%5C%5C%22week%5C%5C%5C%22%2C%5C%5C%5C%22w%5C%5C%5C%22)%3BaddUnitAlias(%5C%5C%5C%22isoWeek%5C%5C%5C%22%2C%5C%5C%5C%22W%5C%5C%5C%22)%3BaddUnitPriority(%5C%5C%5C%22week%5C%5C%5C%22%2C5)%3BaddUnitPriority(%5C%5C%5C%22isoWeek%5C%5C%5C%22%2C5)%3BaddRegexToken(%5C%5C%5C%22w%5C%5C%5C%22%2Cmatch1to2)%3BaddRegexToken(%5C%5C%5C%22ww%5C%5C%5C%22%2Cmatch1to2%2Cmatch2)%3BaddRegexToken(%5C%5C%5C%22W%5C%5C%5C%22%2Cmatch1to2)%3BaddRegexToken(%5C%5C%5C%22WW%5C%5C%5C%22%2Cmatch1to2%2Cmatch2)%3BaddWeekParseToken(%5B%5C%5C%5C%22w%5C%5C%5C%22%2C%5C%5C%5C%22ww%5C%5C%5C%22%2C%5C%5C%5C%22W%5C%5C%5C%22%2C%5C%5C%5C%22WW%5C%5C%5C%22%5D%2Cfunction(input%2Cweek%2Cconfig%2Ctoken)%7Bweek%5Btoken.substr(0%2C1)%5D%3DtoInt(input)%7D)%3Bfunction%20localeWeek(mom)%7Breturn%20weekOfYear(mom%2Cthis._week.dow%2Cthis._week.doy).week%7Dvar%20defaultLocaleWeek%3D%7Bdow%3A0%2Cdoy%3A6%7D%3Bfunction%20localeFirstDayOfWeek()%7Breturn%20this._week.dow%7Dfunction%20localeFirstDayOfYear()%7Breturn%20this._week.doy%7Dfunction%20getSetWeek(input)%7Bvar%20week%3Dthis.localeData().week(this)%3Breturn%20input%3D%3Dnull%3Fweek%3Athis.add((input-week)*7%2C%5C%5C%5C%22d%5C%5C%5C%22)%7Dfunction%20getSetISOWeek(input)%7Bvar%20week%3DweekOfYear(this%2C1%2C4).week%3Breturn%20input%3D%3Dnull%3Fweek%3Athis.add((input-week)*7%2C%5C%5C%5C%22d%5C%5C%5C%22)%7DaddFormatToken(%5C%5C%5C%22d%5C%5C%5C%22%2C0%2C%5C%5C%5C%22do%5C%5C%5C%22%2C%5C%5C%5C%22day%5C%5C%5C%22)%3BaddFormatToken(%5C%5C%5C%22dd%5C%5C%5C%22%2C0%2C0%2Cfunction(format)%7Breturn%20this.localeData().weekdaysMin(this%2Cformat)%7D)%3BaddFormatToken(%5C%5C%5C%22ddd%5C%5C%5C%22%2C0%2C0%2Cfunction(format)%7Breturn%20this.localeData().weekdaysShort(this%2Cformat)%7D)%3BaddFormatToken(%5C%5C%5C%22dddd%5C%5C%5C%22%2C0%2C0%2Cfunction(format)%7Breturn%20this.localeData().weekdays(this%2Cformat)%7D)%3BaddFormatToken(%5C%5C%5C%22e%5C%5C%5C%22%2C0%2C0%2C%5C%5C%5C%22weekday%5C%5C%5C%22)%3BaddFormatToken(%5C%5C%5C%22E%5C%5C%5C%22%2C0%2C0%2C%5C%5C%5C%22isoWeekday%5C%5C%5C%22)%3BaddUnitAlias(%5C%5C%5C%22day%5C%5C%5C%22%2C%5C%5C%5C%22d%5C%5C%5C%22)%3BaddUnitAlias(%5C%5C%5C%22weekday%5C%5C%5C%22%2C%5C%5C%5C%22e%5C%5C%5C%22)%3BaddUnitAlias(%5C%5C%5C%22isoWeekday%5C%5C%5C%22%2C%5C%5C%5C%22E%5C%5C%5C%22)%3BaddUnitPriority(%5C%5C%5C%22day%5C%5C%5C%22%2C11)%3BaddUnitPriority(%5C%5C%5C%22weekday%5C%5C%5C%22%2C11)%3BaddUnitPriority(%5C%5C%5C%22isoWeekday%5C%5C%5C%22%2C11)%3BaddRegexToken(%5C%5C%5C%22d%5C%5C%5C%22%2Cmatch1to2)%3BaddRegexToken(%5C%5C%5C%22e%5C%5C%5C%22%2Cmatch1to2)%3BaddRegexToken(%5C%5C%5C%22E%5C%5C%5C%22%2Cmatch1to2)%3BaddRegexToken(%5C%5C%5C%22dd%5C%5C%5C%22%2Cfunction(isStrict%2Clocale)%7Breturn%20locale.weekdaysMinRegex(isStrict)%7D)%3BaddRegexToken(%5C%5C%5C%22ddd%5C%5C%5C%22%2Cfunction(isStrict%2Clocale)%7Breturn%20locale.weekdaysShortRegex(isStrict)%7D)%3BaddRegexToken(%5C%5C%5C%22dddd%5C%5C%5C%22%2Cfunction(isStrict%2Clocale)%7Breturn%20locale.weekdaysRegex(isStrict)%7D)%3BaddWeekParseToken(%5B%5C%5C%5C%22dd%5C%5C%5C%22%2C%5C%5C%5C%22ddd%5C%5C%5C%22%2C%5C%5C%5C%22dddd%5C%5C%5C%22%5D%2Cfunction(input%2Cweek%2Cconfig%2Ctoken)%7Bvar%20weekday%3Dconfig._locale.weekdaysParse(input%2Ctoken%2Cconfig._strict)%3Bif(weekday!%3Dnull)%7Bweek.d%3Dweekday%7Delse%7BgetParsingFlags(config).invalidWeekday%3Dinput%7D%7D)%3BaddWeekParseToken(%5B%5C%5C%5C%22d%5C%5C%5C%22%2C%5C%5C%5C%22e%5C%5C%5C%22%2C%5C%5C%5C%22E%5C%5C%5C%22%5D%2Cfunction(input%2Cweek%2Cconfig%2Ctoken)%7Bweek%5Btoken%5D%3DtoInt(input)%7D)%3Bfunction%20parseWeekday(input%2Clocale)%7Bif(typeof%20input!%3D%3D%5C%5C%5C%22string%5C%5C%5C%22)%7Breturn%20input%7Dif(!isNaN(input))%7Breturn%20parseInt(input%2C10)%7Dinput%3Dlocale.weekdaysParse(input)%3Bif(typeof%20input%3D%3D%3D%5C%5C%5C%22number%5C%5C%5C%22)%7Breturn%20input%7Dreturn%20null%7Dfunction%20parseIsoWeekday(input%2Clocale)%7Bif(typeof%20input%3D%3D%3D%5C%5C%5C%22string%5C%5C%5C%22)%7Breturn%20locale.weekdaysParse(input)%257%7C%7C7%7Dreturn%20isNaN(input)%3Fnull%3Ainput%7Dvar%20defaultLocaleWeekdays%3D%5C%5C%5C%22Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday%5C%5C%5C%22.split(%5C%5C%5C%22_%5C%5C%5C%22)%3Bfunction%20localeWeekdays(m%2Cformat)%7Bif(!m)%7Breturn%20isArray(this._weekdays)%3Fthis._weekdays%3Athis._weekdays%5B%5C%5C%5C%22standalone%5C%5C%5C%22%5D%7Dreturn%20isArray(this._weekdays)%3Fthis._weekdays%5Bm.day()%5D%3Athis._weekdays%5Bthis._weekdays.isFormat.test(format)%3F%5C%5C%5C%22format%5C%5C%5C%22%3A%5C%5C%5C%22standalone%5C%5C%5C%22%5D%5Bm.day()%5D%7Dvar%20defaultLocaleWeekdaysShort%3D%5C%5C%5C%22Sun_Mon_Tue_Wed_Thu_Fri_Sat%5C%5C%5C%22.split(%5C%5C%5C%22_%5C%5C%5C%22)%3Bfunction%20localeWeekdaysShort(m)%7Breturn%20m%3Fthis._weekdaysShort%5Bm.day()%5D%3Athis._weekdaysShort%7Dvar%20defaultLocaleWeekdaysMin%3D%5C%5C%5C%22Su_Mo_Tu_We_Th_Fr_Sa%5C%5C%5C%22.split(%5C%5C%5C%22_%5C%5C%5C%22)%3Bfunction%20localeWeekdaysMin(m)%7Breturn%20m%3Fthis._weekdaysMin%5Bm.day()%5D%3Athis._weekdaysMin%7Dfunction%20handleStrictParse%241(weekdayName%2Cformat%2Cstrict)%7Bvar%20i%2Cii%2Cmom%2Cllc%3DweekdayName.toLocaleLowerCase()%3Bif(!this._weekdaysParse)%7Bthis._weekdaysParse%3D%5B%5D%3Bthis._shortWeekdaysParse%3D%5B%5D%3Bthis._minWeekdaysParse%3D%5B%5D%3Bfor(i%3D0%3Bi%3C7%3B%2B%2Bi)%7Bmom%3DcreateUTC(%5B2e3%2C1%5D).day(i)%3Bthis._minWeekdaysParse%5Bi%5D%3Dthis.weekdaysMin(mom%2C%5C%5C%5C%22%5C%5C%5C%22).toLocaleLowerCase()%3Bthis._shortWeekdaysParse%5Bi%5D%3Dthis.weekdaysShort(mom%2C%5C%5C%5C%22%5C%5C%5C%22).toLocaleLowerCase()%3Bthis._weekdaysParse%5Bi%5D%3Dthis.weekdays(mom%2C%5C%5C%5C%22%5C%5C%5C%22).toLocaleLowerCase()%7D%7Dif(strict)%7Bif(format%3D%3D%3D%5C%5C%5C%22dddd%5C%5C%5C%22)%7Bii%3DindexOf.call(this._weekdaysParse%2Cllc)%3Breturn%20ii!%3D%3D-1%3Fii%3Anull%7Delse%20if(format%3D%3D%3D%5C%5C%5C%22ddd%5C%5C%5C%22)%7Bii%3DindexOf.call(this._shortWeekdaysParse%2Cllc)%3Breturn%20ii!%3D%3D-1%3Fii%3Anull%7Delse%7Bii%3DindexOf.call(this._minWeekdaysParse%2Cllc)%3Breturn%20ii!%3D%3D-1%3Fii%3Anull%7D%7Delse%7Bif(format%3D%3D%3D%5C%5C%5C%22dddd%5C%5C%5C%22)%7Bii%3DindexOf.call(this._weekdaysParse%2Cllc)%3Bif(ii!%3D%3D-1)%7Breturn%20ii%7Dii%3DindexOf.call(this._shortWeekdaysParse%2Cllc)%3Bif(ii!%3D%3D-1)%7Breturn%20ii%7Dii%3DindexOf.call(this._minWeekdaysParse%2Cllc)%3Breturn%20ii!%3D%3D-1%3Fii%3Anull%7Delse%20if(format%3D%3D%3D%5C%5C%5C%22ddd%5C%5C%5C%22)%7Bii%3DindexOf.call(this._shortWeekdaysParse%2Cllc)%3Bif(ii!%3D%3D-1)%7Breturn%20ii%7Dii%3DindexOf.call(this._weekdaysParse%2Cllc)%3Bif(ii!%3D%3D-1)%7Breturn%20ii%7Dii%3DindexOf.call(this._minWeekdaysParse%2Cllc)%3Breturn%20ii!%3D%3D-1%3Fii%3Anull%7Delse%7Bii%3DindexOf.call(this._minWeekdaysParse%2Cllc)%3Bif(ii!%3D%3D-1)%7Breturn%20ii%7Dii%3DindexOf.call(this._weekdaysParse%2Cllc)%3Bif(ii!%3D%3D-1)%7Breturn%20ii%7Dii%3DindexOf.call(this._shortWeekdaysParse%2Cllc)%3Breturn%20ii!%3D%3D-1%3Fii%3Anull%7D%7D%7Dfunction%20localeWeekdaysParse(weekdayName%2Cformat%2Cstrict)%7Bvar%20i%2Cmom%2Cregex%3Bif(this._weekdaysParseExact)%7Breturn%20handleStrictParse%241.call(this%2CweekdayName%2Cformat%2Cstrict)%7Dif(!this._weekdaysParse)%7Bthis._weekdaysParse%3D%5B%5D%3Bthis._minWeekdaysParse%3D%5B%5D%3Bthis._shortWeekdaysParse%3D%5B%5D%3Bthis._fullWeekdaysParse%3D%5B%5D%7Dfor(i%3D0%3Bi%3C7%3Bi%2B%2B)%7Bmom%3DcreateUTC(%5B2e3%2C1%5D).day(i)%3Bif(strict%26%26!this._fullWeekdaysParse%5Bi%5D)%7Bthis._fullWeekdaysParse%5Bi%5D%3Dnew%20RegExp(%5C%5C%5C%22%5E%5C%5C%5C%22%2Bthis.weekdays(mom%2C%5C%5C%5C%22%5C%5C%5C%22).replace(%5C%5C%5C%22.%5C%5C%5C%22%2C%5C%5C%5C%22.%3F%5C%5C%5C%22)%2B%5C%5C%5C%22%24%5C%5C%5C%22%2C%5C%5C%5C%22i%5C%5C%5C%22)%3Bthis._shortWeekdaysParse%5Bi%5D%3Dnew%20RegExp(%5C%5C%5C%22%5E%5C%5C%5C%22%2Bthis.weekdaysShort(mom%2C%5C%5C%5C%22%5C%5C%5C%22).replace(%5C%5C%5C%22.%5C%5C%5C%22%2C%5C%5C%5C%22.%3F%5C%5C%5C%22)%2B%5C%5C%5C%22%24%5C%5C%5C%22%2C%5C%5C%5C%22i%5C%5C%5C%22)%3Bthis._minWeekdaysParse%5Bi%5D%3Dnew%20RegExp(%5C%5C%5C%22%5E%5C%5C%5C%22%2Bthis.weekdaysMin(mom%2C%5C%5C%5C%22%5C%5C%5C%22).replace(%5C%5C%5C%22.%5C%5C%5C%22%2C%5C%5C%5C%22.%3F%5C%5C%5C%22)%2B%5C%5C%5C%22%24%5C%5C%5C%22%2C%5C%5C%5C%22i%5C%5C%5C%22)%7Dif(!this._weekdaysParse%5Bi%5D)%7Bregex%3D%5C%5C%5C%22%5E%5C%5C%5C%22%2Bthis.weekdays(mom%2C%5C%5C%5C%22%5C%5C%5C%22)%2B%5C%5C%5C%22%7C%5E%5C%5C%5C%22%2Bthis.weekdaysShort(mom%2C%5C%5C%5C%22%5C%5C%5C%22)%2B%5C%5C%5C%22%7C%5E%5C%5C%5C%22%2Bthis.weekdaysMin(mom%2C%5C%5C%5C%22%5C%5C%5C%22)%3Bthis._weekdaysParse%5Bi%5D%3Dnew%20RegExp(regex.replace(%5C%5C%5C%22.%5C%5C%5C%22%2C%5C%5C%5C%22%5C%5C%5C%22)%2C%5C%5C%5C%22i%5C%5C%5C%22)%7Dif(strict%26%26format%3D%3D%3D%5C%5C%5C%22dddd%5C%5C%5C%22%26%26this._fullWeekdaysParse%5Bi%5D.test(weekdayName))%7Breturn%20i%7Delse%20if(strict%26%26format%3D%3D%3D%5C%5C%5C%22ddd%5C%5C%5C%22%26%26this._shortWeekdaysParse%5Bi%5D.test(weekdayName))%7Breturn%20i%7Delse%20if(strict%26%26format%3D%3D%3D%5C%5C%5C%22dd%5C%5C%5C%22%26%26this._minWeekdaysParse%5Bi%5D.test(weekdayName))%7Breturn%20i%7Delse%20if(!strict%26%26this._weekdaysParse%5Bi%5D.test(weekdayName))%7Breturn%20i%7D%7D%7Dfunction%20getSetDayOfWeek(input)%7Bif(!this.isValid())%7Breturn%20input!%3Dnull%3Fthis%3ANaN%7Dvar%20day%3Dthis._isUTC%3Fthis._d.getUTCDay()%3Athis._d.getDay()%3Bif(input!%3Dnull)%7Binput%3DparseWeekday(input%2Cthis.localeData())%3Breturn%20this.add(input-day%2C%5C%5C%5C%22d%5C%5C%5C%22)%7Delse%7Breturn%20day%7D%7Dfunction%20getSetLocaleDayOfWeek(input)%7Bif(!this.isValid())%7Breturn%20input!%3Dnull%3Fthis%3ANaN%7Dvar%20weekday%3D(this.day()%2B7-this.localeData()._week.dow)%257%3Breturn%20input%3D%3Dnull%3Fweekday%3Athis.add(input-weekday%2C%5C%5C%5C%22d%5C%5C%5C%22)%7Dfunction%20getSetISODayOfWeek(input)%7Bif(!this.isValid())%7Breturn%20input!%3Dnull%3Fthis%3ANaN%7Dif(input!%3Dnull)%7Bvar%20weekday%3DparseIsoWeekday(input%2Cthis.localeData())%3Breturn%20this.day(this.day()%257%3Fweekday%3Aweekday-7)%7Delse%7Breturn%20this.day()%7C%7C7%7D%7Dvar%20defaultWeekdaysRegex%3DmatchWord%3Bfunction%20weekdaysRegex(isStrict)%7Bif(this._weekdaysParseExact)%7Bif(!hasOwnProp(this%2C%5C%5C%5C%22_weekdaysRegex%5C%5C%5C%22))%7BcomputeWeekdaysParse.call(this)%7Dif(isStrict)%7Breturn%20this._weekdaysStrictRegex%7Delse%7Breturn%20this._weekdaysRegex%7D%7Delse%7Bif(!hasOwnProp(this%2C%5C%5C%5C%22_weekdaysRegex%5C%5C%5C%22))%7Bthis._weekdaysRegex%3DdefaultWeekdaysRegex%7Dreturn%20this._weekdaysStrictRegex%26%26isStrict%3Fthis._weekdaysStrictRegex%3Athis._weekdaysRegex%7D%7Dvar%20defaultWeekdaysShortRegex%3DmatchWord%3Bfunction%20weekdaysShortRegex(isStrict)%7Bif(this._weekdaysParseExact)%7Bif(!hasOwnProp(this%2C%5C%5C%5C%22_weekdaysRegex%5C%5C%5C%22))%7BcomputeWeekdaysParse.call(this)%7Dif(isStrict)%7Breturn%20this._weekdaysShortStrictRegex%7Delse%7Breturn%20this._weekdaysShortRegex%7D%7Delse%7Bif(!hasOwnProp(this%2C%5C%5C%5C%22_weekdaysShortRegex%5C%5C%5C%22))%7Bthis._weekdaysShortRegex%3DdefaultWeekdaysShortRegex%7Dreturn%20this._weekdaysShortStrictRegex%26%26isStrict%3Fthis._weekdaysShortStrictRegex%3Athis._weekdaysShortRegex%7D%7Dvar%20defaultWeekdaysMinRegex%3DmatchWord%3Bfunction%20weekdaysMinRegex(isStrict)%7Bif(this._weekdaysParseExact)%7Bif(!hasOwnProp(this%2C%5C%5C%5C%22_weekdaysRegex%5C%5C%5C%22))%7BcomputeWeekdaysParse.call(this)%7Dif(isStrict)%7Breturn%20this._weekdaysMinStrictRegex%7Delse%7Breturn%20this._weekdaysMinRegex%7D%7Delse%7Bif(!hasOwnProp(this%2C%5C%5C%5C%22_weekdaysMinRegex%5C%5C%5C%22))%7Bthis._weekdaysMinRegex%3DdefaultWeekdaysMinRegex%7Dreturn%20this._weekdaysMinStrictRegex%26%26isStrict%3Fthis._weekdaysMinStrictRegex%3Athis._weekdaysMinRegex%7D%7Dfunction%20computeWeekdaysParse()%7Bfunction%20cmpLenRev(a%2Cb)%7Breturn%20b.length-a.length%7Dvar%20minPieces%3D%5B%5D%2CshortPieces%3D%5B%5D%2ClongPieces%3D%5B%5D%2CmixedPieces%3D%5B%5D%2Ci%2Cmom%2Cminp%2Cshortp%2Clongp%3Bfor(i%3D0%3Bi%3C7%3Bi%2B%2B)%7Bmom%3DcreateUTC(%5B2e3%2C1%5D).day(i)%3Bminp%3Dthis.weekdaysMin(mom%2C%5C%5C%5C%22%5C%5C%5C%22)%3Bshortp%3Dthis.weekdaysShort(mom%2C%5C%5C%5C%22%5C%5C%5C%22)%3Blongp%3Dthis.weekdays(mom%2C%5C%5C%5C%22%5C%5C%5C%22)%3BminPieces.push(minp)%3BshortPieces.push(shortp)%3BlongPieces.push(longp)%3BmixedPieces.push(minp)%3BmixedPieces.push(shortp)%3BmixedPieces.push(longp)%7DminPieces.sort(cmpLenRev)%3BshortPieces.sort(cmpLenRev)%3BlongPieces.sort(cmpLenRev)%3BmixedPieces.sort(cmpLenRev)%3Bfor(i%3D0%3Bi%3C7%3Bi%2B%2B)%7BshortPieces%5Bi%5D%3DregexEscape(shortPieces%5Bi%5D)%3BlongPieces%5Bi%5D%3DregexEscape(longPieces%5Bi%5D)%3BmixedPieces%5Bi%5D%3DregexEscape(mixedPieces%5Bi%5D)%7Dthis._weekdaysRegex%3Dnew%20RegExp(%5C%5C%5C%22%5E(%5C%5C%5C%22%2BmixedPieces.join(%5C%5C%5C%22%7C%5C%5C%5C%22)%2B%5C%5C%5C%22)%5C%5C%5C%22%2C%5C%5C%5C%22i%5C%5C%5C%22)%3Bthis._weekdaysShortRegex%3Dthis._weekdaysRegex%3Bthis._weekdaysMinRegex%3Dthis._weekdaysRegex%3Bthis._weekdaysStrictRegex%3Dnew%20RegExp(%5C%5C%5C%22%5E(%5C%5C%5C%22%2BlongPieces.join(%5C%5C%5C%22%7C%5C%5C%5C%22)%2B%5C%5C%5C%22)%5C%5C%5C%22%2C%5C%5C%5C%22i%5C%5C%5C%22)%3Bthis._weekdaysShortStrictRegex%3Dnew%20RegExp(%5C%5C%5C%22%5E(%5C%5C%5C%22%2BshortPieces.join(%5C%5C%5C%22%7C%5C%5C%5C%22)%2B%5C%5C%5C%22)%5C%5C%5C%22%2C%5C%5C%5C%22i%5C%5C%5C%22)%3Bthis._weekdaysMinStrictRegex%3Dnew%20RegExp(%5C%5C%5C%22%5E(%5C%5C%5C%22%2BminPieces.join(%5C%5C%5C%22%7C%5C%5C%5C%22)%2B%5C%5C%5C%22)%5C%5C%5C%22%2C%5C%5C%5C%22i%5C%5C%5C%22)%7Dfunction%20hFormat()%7Breturn%20this.hours()%2512%7C%7C12%7Dfunction%20kFormat()%7Breturn%20this.hours()%7C%7C24%7DaddFormatToken(%5C%5C%5C%22H%5C%5C%5C%22%2C%5B%5C%5C%5C%22HH%5C%5C%5C%22%2C2%5D%2C0%2C%5C%5C%5C%22hour%5C%5C%5C%22)%3BaddFormatToken(%5C%5C%5C%22h%5C%5C%5C%22%2C%5B%5C%5C%5C%22hh%5C%5C%5C%22%2C2%5D%2C0%2ChFormat)%3BaddFormatToken(%5C%5C%5C%22k%5C%5C%5C%22%2C%5B%5C%5C%5C%22kk%5C%5C%5C%22%2C2%5D%2C0%2CkFormat)%3BaddFormatToken(%5C%5C%5C%22hmm%5C%5C%5C%22%2C0%2C0%2Cfunction()%7Breturn%5C%5C%5C%22%5C%5C%5C%22%2BhFormat.apply(this)%2BzeroFill(this.minutes()%2C2)%7D)%3BaddFormatToken(%5C%5C%5C%22hmmss%5C%5C%5C%22%2C0%2C0%2Cfunction()%7Breturn%5C%5C%5C%22%5C%5C%5C%22%2BhFormat.apply(this)%2BzeroFill(this.minutes()%2C2)%2BzeroFill(this.seconds()%2C2)%7D)%3BaddFormatToken(%5C%5C%5C%22Hmm%5C%5C%5C%22%2C0%2C0%2Cfunction()%7Breturn%5C%5C%5C%22%5C%5C%5C%22%2Bthis.hours()%2BzeroFill(this.minutes()%2C2)%7D)%3BaddFormatToken(%5C%5C%5C%22Hmmss%5C%5C%5C%22%2C0%2C0%2Cfunction()%7Breturn%5C%5C%5C%22%5C%5C%5C%22%2Bthis.hours()%2BzeroFill(this.minutes()%2C2)%2BzeroFill(this.seconds()%2C2)%7D)%3Bfunction%20meridiem(token%2Clowercase)%7BaddFormatToken(token%2C0%2C0%2Cfunction()%7Breturn%20this.localeData().meridiem(this.hours()%2Cthis.minutes()%2Clowercase)%7D)%7Dmeridiem(%5C%5C%5C%22a%5C%5C%5C%22%2Ctrue)%3Bmeridiem(%5C%5C%5C%22A%5C%5C%5C%22%2Cfalse)%3BaddUnitAlias(%5C%5C%5C%22hour%5C%5C%5C%22%2C%5C%5C%5C%22h%5C%5C%5C%22)%3BaddUnitPriority(%5C%5C%5C%22hour%5C%5C%5C%22%2C13)%3Bfunction%20matchMeridiem(isStrict%2Clocale)%7Breturn%20locale._meridiemParse%7DaddRegexToken(%5C%5C%5C%22a%5C%5C%5C%22%2CmatchMeridiem)%3BaddRegexToken(%5C%5C%5C%22A%5C%5C%5C%22%2CmatchMeridiem)%3BaddRegexToken(%5C%5C%5C%22H%5C%5C%5C%22%2Cmatch1to2)%3BaddRegexToken(%5C%5C%5C%22h%5C%5C%5C%22%2Cmatch1to2)%3BaddRegexToken(%5C%5C%5C%22k%5C%5C%5C%22%2Cmatch1to2)%3BaddRegexToken(%5C%5C%5C%22HH%5C%5C%5C%22%2Cmatch1to2%2Cmatch2)%3BaddRegexToken(%5C%5C%5C%22hh%5C%5C%5C%22%2Cmatch1to2%2Cmatch2)%3BaddRegexToken(%5C%5C%5C%22kk%5C%5C%5C%22%2Cmatch1to2%2Cmatch2)%3BaddRegexToken(%5C%5C%5C%22hmm%5C%5C%5C%22%2Cmatch3to4)%3BaddRegexToken(%5C%5C%5C%22hmmss%5C%5C%5C%22%2Cmatch5to6)%3BaddRegexToken(%5C%5C%5C%22Hmm%5C%5C%5C%22%2Cmatch3to4)%3BaddRegexToken(%5C%5C%5C%22Hmmss%5C%5C%5C%22%2Cmatch5to6)%3BaddParseToken(%5B%5C%5C%5C%22H%5C%5C%5C%22%2C%5C%5C%5C%22HH%5C%5C%5C%22%5D%2CHOUR)%3BaddParseToken(%5B%5C%5C%5C%22k%5C%5C%5C%22%2C%5C%5C%5C%22kk%5C%5C%5C%22%5D%2Cfunction(input%2Carray%2Cconfig)%7Bvar%20kInput%3DtoInt(input)%3Barray%5BHOUR%5D%3DkInput%3D%3D%3D24%3F0%3AkInput%7D)%3BaddParseToken(%5B%5C%5C%5C%22a%5C%5C%5C%22%2C%5C%5C%5C%22A%5C%5C%5C%22%5D%2Cfunction(input%2Carray%2Cconfig)%7Bconfig._isPm%3Dconfig._locale.isPM(input)%3Bconfig._meridiem%3Dinput%7D)%3BaddParseToken(%5B%5C%5C%5C%22h%5C%5C%5C%22%2C%5C%5C%5C%22hh%5C%5C%5C%22%5D%2Cfunction(input%2Carray%2Cconfig)%7Barray%5BHOUR%5D%3DtoInt(input)%3BgetParsingFlags(config).bigHour%3Dtrue%7D)%3BaddParseToken(%5C%5C%5C%22hmm%5C%5C%5C%22%2Cfunction(input%2Carray%2Cconfig)%7Bvar%20pos%3Dinput.length-2%3Barray%5BHOUR%5D%3DtoInt(input.substr(0%2Cpos))%3Barray%5BMINUTE%5D%3DtoInt(input.substr(pos))%3BgetParsingFlags(config).bigHour%3Dtrue%7D)%3BaddParseToken(%5C%5C%5C%22hmmss%5C%5C%5C%22%2Cfunction(input%2Carray%2Cconfig)%7Bvar%20pos1%3Dinput.length-4%3Bvar%20pos2%3Dinput.length-2%3Barray%5BHOUR%5D%3DtoInt(input.substr(0%2Cpos1))%3Barray%5BMINUTE%5D%3DtoInt(input.substr(pos1%2C2))%3Barray%5BSECOND%5D%3DtoInt(input.substr(pos2))%3BgetParsingFlags(config).bigHour%3Dtrue%7D)%3BaddParseToken(%5C%5C%5C%22Hmm%5C%5C%5C%22%2Cfunction(input%2Carray%2Cconfig)%7Bvar%20pos%3Dinput.length-2%3Barray%5BHOUR%5D%3DtoInt(input.substr(0%2Cpos))%3Barray%5BMINUTE%5D%3DtoInt(input.substr(pos))%7D)%3BaddParseToken(%5C%5C%5C%22Hmmss%5C%5C%5C%22%2Cfunction(input%2Carray%2Cconfig)%7Bvar%20pos1%3Dinput.length-4%3Bvar%20pos2%3Dinput.length-2%3Barray%5BHOUR%5D%3DtoInt(input.substr(0%2Cpos1))%3Barray%5BMINUTE%5D%3DtoInt(input.substr(pos1%2C2))%3Barray%5BSECOND%5D%3DtoInt(input.substr(pos2))%7D)%3Bfunction%20localeIsPM(input)%7Breturn(input%2B%5C%5C%5C%22%5C%5C%5C%22).toLowerCase().charAt(0)%3D%3D%3D%5C%5C%5C%22p%5C%5C%5C%22%7Dvar%20defaultLocaleMeridiemParse%3D%2F%5Bap%5D%5C%5C%5C%5C.%3Fm%3F%5C%5C%5C%5C.%3F%2Fi%3Bfunction%20localeMeridiem(hours%2Cminutes%2CisLower)%7Bif(hours%3E11)%7Breturn%20isLower%3F%5C%5C%5C%22pm%5C%5C%5C%22%3A%5C%5C%5C%22PM%5C%5C%5C%22%7Delse%7Breturn%20isLower%3F%5C%5C%5C%22am%5C%5C%5C%22%3A%5C%5C%5C%22AM%5C%5C%5C%22%7D%7Dvar%20getSetHour%3DmakeGetSet(%5C%5C%5C%22Hours%5C%5C%5C%22%2Ctrue)%3Bvar%20baseConfig%3D%7Bcalendar%3AdefaultCalendar%2ClongDateFormat%3AdefaultLongDateFormat%2CinvalidDate%3AdefaultInvalidDate%2Cordinal%3AdefaultOrdinal%2CdayOfMonthOrdinalParse%3AdefaultDayOfMonthOrdinalParse%2CrelativeTime%3AdefaultRelativeTime%2Cmonths%3AdefaultLocaleMonths%2CmonthsShort%3AdefaultLocaleMonthsShort%2Cweek%3AdefaultLocaleWeek%2Cweekdays%3AdefaultLocaleWeekdays%2CweekdaysMin%3AdefaultLocaleWeekdaysMin%2CweekdaysShort%3AdefaultLocaleWeekdaysShort%2CmeridiemParse%3AdefaultLocaleMeridiemParse%7D%3Bvar%20locales%3D%7B%7D%3Bvar%20localeFamilies%3D%7B%7D%3Bvar%20globalLocale%3Bfunction%20normalizeLocale(key)%7Breturn%20key%3Fkey.toLowerCase().replace(%5C%5C%5C%22_%5C%5C%5C%22%2C%5C%5C%5C%22-%5C%5C%5C%22)%3Akey%7Dfunction%20chooseLocale(names)%7Bvar%20i%3D0%2Cj%2Cnext%2Clocale%2Csplit%3Bwhile(i%3Cnames.length)%7Bsplit%3DnormalizeLocale(names%5Bi%5D).split(%5C%5C%5C%22-%5C%5C%5C%22)%3Bj%3Dsplit.length%3Bnext%3DnormalizeLocale(names%5Bi%2B1%5D)%3Bnext%3Dnext%3Fnext.split(%5C%5C%5C%22-%5C%5C%5C%22)%3Anull%3Bwhile(j%3E0)%7Blocale%3DloadLocale(split.slice(0%2Cj).join(%5C%5C%5C%22-%5C%5C%5C%22))%3Bif(locale)%7Breturn%20locale%7Dif(next%26%26next.length%3E%3Dj%26%26compareArrays(split%2Cnext%2Ctrue)%3E%3Dj-1)%7Bbreak%7Dj--%7Di%2B%2B%7Dreturn%20null%7Dfunction%20loadLocale(name)%7Bvar%20oldLocale%3Dnull%3Bif(!locales%5Bname%5D%26%26typeof%20module!%3D%3D%5C%5C%5C%22undefined%5C%5C%5C%22%26%26module%26%26module.exports)%7Btry%7BoldLocale%3DglobalLocale._abbr%3Bvar%20aliasedRequire%3Drequire%3B!function%20webpackMissingModule()%7Bvar%20e%3Dnew%20Error('Cannot%20find%20module%20%5C%5C%5C%22.%2Flocale%5C%5C%5C%22')%3Be.code%3D%5C%5C%5C%22MODULE_NOT_FOUND%5C%5C%5C%22%3Bthrow%20e%7D()%3BgetSetGlobalLocale(oldLocale)%7Dcatch(e)%7B%7D%7Dreturn%20locales%5Bname%5D%7Dfunction%20getSetGlobalLocale(key%2Cvalues)%7Bvar%20data%3Bif(key)%7Bif(isUndefined(values))%7Bdata%3DgetLocale(key)%7Delse%7Bdata%3DdefineLocale(key%2Cvalues)%7Dif(data)%7BglobalLocale%3Ddata%7D%7Dreturn%20globalLocale._abbr%7Dfunction%20defineLocale(name%2Cconfig)%7Bif(config!%3D%3Dnull)%7Bvar%20parentConfig%3DbaseConfig%3Bconfig.abbr%3Dname%3Bif(locales%5Bname%5D!%3Dnull)%7BdeprecateSimple(%5C%5C%5C%22defineLocaleOverride%5C%5C%5C%22%2C%5C%5C%5C%22use%20moment.updateLocale(localeName%2C%20config)%20to%20change%20%5C%5C%5C%22%2B%5C%5C%5C%22an%20existing%20locale.%20moment.defineLocale(localeName%2C%20%5C%5C%5C%22%2B%5C%5C%5C%22config)%20should%20only%20be%20used%20for%20creating%20a%20new%20locale%20%5C%5C%5C%22%2B%5C%5C%5C%22See%20http%3A%2F%2Fmomentjs.com%2Fguides%2F%23%2Fwarnings%2Fdefine-locale%2F%20for%20more%20info.%5C%5C%5C%22)%3BparentConfig%3Dlocales%5Bname%5D._config%7Delse%20if(config.parentLocale!%3Dnull)%7Bif(locales%5Bconfig.parentLocale%5D!%3Dnull)%7BparentConfig%3Dlocales%5Bconfig.parentLocale%5D._config%7Delse%7Bif(!localeFamilies%5Bconfig.parentLocale%5D)%7BlocaleFamilies%5Bconfig.parentLocale%5D%3D%5B%5D%7DlocaleFamilies%5Bconfig.parentLocale%5D.push(%7Bname%3Aname%2Cconfig%3Aconfig%7D)%3Breturn%20null%7D%7Dlocales%5Bname%5D%3Dnew%20Locale(mergeConfigs(parentConfig%2Cconfig))%3Bif(localeFamilies%5Bname%5D)%7BlocaleFamilies%5Bname%5D.forEach(function(x)%7BdefineLocale(x.name%2Cx.config)%7D)%7DgetSetGlobalLocale(name)%3Breturn%20locales%5Bname%5D%7Delse%7Bdelete%20locales%5Bname%5D%3Breturn%20null%7D%7Dfunction%20updateLocale(name%2Cconfig)%7Bif(config!%3Dnull)%7Bvar%20locale%2CparentConfig%3DbaseConfig%3Bif(locales%5Bname%5D!%3Dnull)%7BparentConfig%3Dlocales%5Bname%5D._config%7Dconfig%3DmergeConfigs(parentConfig%2Cconfig)%3Blocale%3Dnew%20Locale(config)%3Blocale.parentLocale%3Dlocales%5Bname%5D%3Blocales%5Bname%5D%3Dlocale%3BgetSetGlobalLocale(name)%7Delse%7Bif(locales%5Bname%5D!%3Dnull)%7Bif(locales%5Bname%5D.parentLocale!%3Dnull)%7Blocales%5Bname%5D%3Dlocales%5Bname%5D.parentLocale%7Delse%20if(locales%5Bname%5D!%3Dnull)%7Bdelete%20locales%5Bname%5D%7D%7D%7Dreturn%20locales%5Bname%5D%7Dfunction%20getLocale(key)%7Bvar%20locale%3Bif(key%26%26key._locale%26%26key._locale._abbr)%7Bkey%3Dkey._locale._abbr%7Dif(!key)%7Breturn%20globalLocale%7Dif(!isArray(key))%7Blocale%3DloadLocale(key)%3Bif(locale)%7Breturn%20locale%7Dkey%3D%5Bkey%5D%7Dreturn%20chooseLocale(key)%7Dfunction%20listLocales()%7Breturn%20keys(locales)%7Dfunction%20checkOverflow(m)%7Bvar%20overflow%3Bvar%20a%3Dm._a%3Bif(a%26%26getParsingFlags(m).overflow%3D%3D%3D-2)%7Boverflow%3Da%5BMONTH%5D%3C0%7C%7Ca%5BMONTH%5D%3E11%3FMONTH%3Aa%5BDATE%5D%3C1%7C%7Ca%5BDATE%5D%3EdaysInMonth(a%5BYEAR%5D%2Ca%5BMONTH%5D)%3FDATE%3Aa%5BHOUR%5D%3C0%7C%7Ca%5BHOUR%5D%3E24%7C%7Ca%5BHOUR%5D%3D%3D%3D24%26%26(a%5BMINUTE%5D!%3D%3D0%7C%7Ca%5BSECOND%5D!%3D%3D0%7C%7Ca%5BMILLISECOND%5D!%3D%3D0)%3FHOUR%3Aa%5BMINUTE%5D%3C0%7C%7Ca%5BMINUTE%5D%3E59%3FMINUTE%3Aa%5BSECOND%5D%3C0%7C%7Ca%5BSECOND%5D%3E59%3FSECOND%3Aa%5BMILLISECOND%5D%3C0%7C%7Ca%5BMILLISECOND%5D%3E999%3FMILLISECOND%3A-1%3Bif(getParsingFlags(m)._overflowDayOfYear%26%26(overflow%3CYEAR%7C%7Coverflow%3EDATE))%7Boverflow%3DDATE%7Dif(getParsingFlags(m)._overflowWeeks%26%26overflow%3D%3D%3D-1)%7Boverflow%3DWEEK%7Dif(getParsingFlags(m)._overflowWeekday%26%26overflow%3D%3D%3D-1)%7Boverflow%3DWEEKDAY%7DgetParsingFlags(m).overflow%3Doverflow%7Dreturn%20m%7Dfunction%20defaults(a%2Cb%2Cc)%7Bif(a!%3Dnull)%7Breturn%20a%7Dif(b!%3Dnull)%7Breturn%20b%7Dreturn%20c%7Dfunction%20currentDateArray(config)%7Bvar%20nowValue%3Dnew%20Date(hooks.now())%3Bif(config._useUTC)%7Breturn%5BnowValue.getUTCFullYear()%2CnowValue.getUTCMonth()%2CnowValue.getUTCDate()%5D%7Dreturn%5BnowValue.getFullYear()%2CnowValue.getMonth()%2CnowValue.getDate()%5D%7Dfunction%20configFromArray(config)%7Bvar%20i%2Cdate%2Cinput%3D%5B%5D%2CcurrentDate%2CyearToUse%3Bif(config._d)%7Breturn%7DcurrentDate%3DcurrentDateArray(config)%3Bif(config._w%26%26config._a%5BDATE%5D%3D%3Dnull%26%26config._a%5BMONTH%5D%3D%3Dnull)%7BdayOfYearFromWeekInfo(config)%7Dif(config._dayOfYear!%3Dnull)%7ByearToUse%3Ddefaults(config._a%5BYEAR%5D%2CcurrentDate%5BYEAR%5D)%3Bif(config._dayOfYear%3EdaysInYear(yearToUse)%7C%7Cconfig._dayOfYear%3D%3D%3D0)%7BgetParsingFlags(config)._overflowDayOfYear%3Dtrue%7Ddate%3DcreateUTCDate(yearToUse%2C0%2Cconfig._dayOfYear)%3Bconfig._a%5BMONTH%5D%3Ddate.getUTCMonth()%3Bconfig._a%5BDATE%5D%3Ddate.getUTCDate()%7Dfor(i%3D0%3Bi%3C3%26%26config._a%5Bi%5D%3D%3Dnull%3B%2B%2Bi)%7Bconfig._a%5Bi%5D%3Dinput%5Bi%5D%3DcurrentDate%5Bi%5D%7Dfor(%3Bi%3C7%3Bi%2B%2B)%7Bconfig._a%5Bi%5D%3Dinput%5Bi%5D%3Dconfig._a%5Bi%5D%3D%3Dnull%3Fi%3D%3D%3D2%3F1%3A0%3Aconfig._a%5Bi%5D%7Dif(config._a%5BHOUR%5D%3D%3D%3D24%26%26config._a%5BMINUTE%5D%3D%3D%3D0%26%26config._a%5BSECOND%5D%3D%3D%3D0%26%26config._a%5BMILLISECOND%5D%3D%3D%3D0)%7Bconfig._nextDay%3Dtrue%3Bconfig._a%5BHOUR%5D%3D0%7Dconfig._d%3D(config._useUTC%3FcreateUTCDate%3AcreateDate).apply(null%2Cinput)%3Bif(config._tzm!%3Dnull)%7Bconfig._d.setUTCMinutes(config._d.getUTCMinutes()-config._tzm)%7Dif(config._nextDay)%7Bconfig._a%5BHOUR%5D%3D24%7Dif(config._w%26%26typeof%20config._w.d!%3D%3D%5C%5C%5C%22undefined%5C%5C%5C%22%26%26config._w.d!%3D%3Dconfig._d.getDay())%7BgetParsingFlags(config).weekdayMismatch%3Dtrue%7D%7Dfunction%20dayOfYearFromWeekInfo(config)%7Bvar%20w%2CweekYear%2Cweek%2Cweekday%2Cdow%2Cdoy%2Ctemp%2CweekdayOverflow%3Bw%3Dconfig._w%3Bif(w.GG!%3Dnull%7C%7Cw.W!%3Dnull%7C%7Cw.E!%3Dnull)%7Bdow%3D1%3Bdoy%3D4%3BweekYear%3Ddefaults(w.GG%2Cconfig._a%5BYEAR%5D%2CweekOfYear(createLocal()%2C1%2C4).year)%3Bweek%3Ddefaults(w.W%2C1)%3Bweekday%3Ddefaults(w.E%2C1)%3Bif(weekday%3C1%7C%7Cweekday%3E7)%7BweekdayOverflow%3Dtrue%7D%7Delse%7Bdow%3Dconfig._locale._week.dow%3Bdoy%3Dconfig._locale._week.doy%3Bvar%20curWeek%3DweekOfYear(createLocal()%2Cdow%2Cdoy)%3BweekYear%3Ddefaults(w.gg%2Cconfig._a%5BYEAR%5D%2CcurWeek.year)%3Bweek%3Ddefaults(w.w%2CcurWeek.week)%3Bif(w.d!%3Dnull)%7Bweekday%3Dw.d%3Bif(weekday%3C0%7C%7Cweekday%3E6)%7BweekdayOverflow%3Dtrue%7D%7Delse%20if(w.e!%3Dnull)%7Bweekday%3Dw.e%2Bdow%3Bif(w.e%3C0%7C%7Cw.e%3E6)%7BweekdayOverflow%3Dtrue%7D%7Delse%7Bweekday%3Ddow%7D%7Dif(week%3C1%7C%7Cweek%3EweeksInYear(weekYear%2Cdow%2Cdoy))%7BgetParsingFlags(config)._overflowWeeks%3Dtrue%7Delse%20if(weekdayOverflow!%3Dnull)%7BgetParsingFlags(config)._overflowWeekday%3Dtrue%7Delse%7Btemp%3DdayOfYearFromWeeks(weekYear%2Cweek%2Cweekday%2Cdow%2Cdoy)%3Bconfig._a%5BYEAR%5D%3Dtemp.year%3Bconfig._dayOfYear%3Dtemp.dayOfYear%7D%7Dvar%20extendedIsoRegex%3D%2F%5E%5C%5C%5C%5Cs*((%3F%3A%5B%2B-%5D%5C%5C%5C%5Cd%7B6%7D%7C%5C%5C%5C%5Cd%7B4%7D)-(%3F%3A%5C%5C%5C%5Cd%5C%5C%5C%5Cd-%5C%5C%5C%5Cd%5C%5C%5C%5Cd%7CW%5C%5C%5C%5Cd%5C%5C%5C%5Cd-%5C%5C%5C%5Cd%7CW%5C%5C%5C%5Cd%5C%5C%5C%5Cd%7C%5C%5C%5C%5Cd%5C%5C%5C%5Cd%5C%5C%5C%5Cd%7C%5C%5C%5C%5Cd%5C%5C%5C%5Cd))(%3F%3A(T%7C%20)(%5C%5C%5C%5Cd%5C%5C%5C%5Cd(%3F%3A%3A%5C%5C%5C%5Cd%5C%5C%5C%5Cd(%3F%3A%3A%5C%5C%5C%5Cd%5C%5C%5C%5Cd(%3F%3A%5B.%2C%5D%5C%5C%5C%5Cd%2B)%3F)%3F)%3F)(%5B%5C%5C%5C%5C%2B%5C%5C%5C%5C-%5D%5C%5C%5C%5Cd%5C%5C%5C%5Cd(%3F%3A%3A%3F%5C%5C%5C%5Cd%5C%5C%5C%5Cd)%3F%7C%5C%5C%5C%5Cs*Z)%3F)%3F%24%2F%3Bvar%20basicIsoRegex%3D%2F%5E%5C%5C%5C%5Cs*((%3F%3A%5B%2B-%5D%5C%5C%5C%5Cd%7B6%7D%7C%5C%5C%5C%5Cd%7B4%7D)(%3F%3A%5C%5C%5C%5Cd%5C%5C%5C%5Cd%5C%5C%5C%5Cd%5C%5C%5C%5Cd%7CW%5C%5C%5C%5Cd%5C%5C%5C%5Cd%5C%5C%5C%5Cd%7CW%5C%5C%5C%5Cd%5C%5C%5C%5Cd%7C%5C%5C%5C%5Cd%5C%5C%5C%5Cd%5C%5C%5C%5Cd%7C%5C%5C%5C%5Cd%5C%5C%5C%5Cd))(%3F%3A(T%7C%20)(%5C%5C%5C%5Cd%5C%5C%5C%5Cd(%3F%3A%5C%5C%5C%5Cd%5C%5C%5C%5Cd(%3F%3A%5C%5C%5C%5Cd%5C%5C%5C%5Cd(%3F%3A%5B.%2C%5D%5C%5C%5C%5Cd%2B)%3F)%3F)%3F)(%5B%5C%5C%5C%5C%2B%5C%5C%5C%5C-%5D%5C%5C%5C%5Cd%5C%5C%5C%5Cd(%3F%3A%3A%3F%5C%5C%5C%5Cd%5C%5C%5C%5Cd)%3F%7C%5C%5C%5C%5Cs*Z)%3F)%3F%24%2F%3Bvar%20tzRegex%3D%2FZ%7C%5B%2B-%5D%5C%5C%5C%5Cd%5C%5C%5C%5Cd(%3F%3A%3A%3F%5C%5C%5C%5Cd%5C%5C%5C%5Cd)%3F%2F%3Bvar%20isoDates%3D%5B%5B%5C%5C%5C%22YYYYYY-MM-DD%5C%5C%5C%22%2C%2F%5B%2B-%5D%5C%5C%5C%5Cd%7B6%7D-%5C%5C%5C%5Cd%5C%5C%5C%5Cd-%5C%5C%5C%5Cd%5C%5C%5C%5Cd%2F%5D%2C%5B%5C%5C%5C%22YYYY-MM-DD%5C%5C%5C%22%2C%2F%5C%5C%5C%5Cd%7B4%7D-%5C%5C%5C%5Cd%5C%5C%5C%5Cd-%5C%5C%5C%5Cd%5C%5C%5C%5Cd%2F%5D%2C%5B%5C%5C%5C%22GGGG-%5BW%5DWW-E%5C%5C%5C%22%2C%2F%5C%5C%5C%5Cd%7B4%7D-W%5C%5C%5C%5Cd%5C%5C%5C%5Cd-%5C%5C%5C%5Cd%2F%5D%2C%5B%5C%5C%5C%22GGGG-%5BW%5DWW%5C%5C%5C%22%2C%2F%5C%5C%5C%5Cd%7B4%7D-W%5C%5C%5C%5Cd%5C%5C%5C%5Cd%2F%2Cfalse%5D%2C%5B%5C%5C%5C%22YYYY-DDD%5C%5C%5C%22%2C%2F%5C%5C%5C%5Cd%7B4%7D-%5C%5C%5C%5Cd%7B3%7D%2F%5D%2C%5B%5C%5C%5C%22YYYY-MM%5C%5C%5C%22%2C%2F%5C%5C%5C%5Cd%7B4%7D-%5C%5C%5C%5Cd%5C%5C%5C%5Cd%2F%2Cfalse%5D%2C%5B%5C%5C%5C%22YYYYYYMMDD%5C%5C%5C%22%2C%2F%5B%2B-%5D%5C%5C%5C%5Cd%7B10%7D%2F%5D%2C%5B%5C%5C%5C%22YYYYMMDD%5C%5C%5C%22%2C%2F%5C%5C%5C%5Cd%7B8%7D%2F%5D%2C%5B%5C%5C%5C%22GGGG%5BW%5DWWE%5C%5C%5C%22%2C%2F%5C%5C%5C%5Cd%7B4%7DW%5C%5C%5C%5Cd%7B3%7D%2F%5D%2C%5B%5C%5C%5C%22GGGG%5BW%5DWW%5C%5C%5C%22%2C%2F%5C%5C%5C%5Cd%7B4%7DW%5C%5C%5C%5Cd%7B2%7D%2F%2Cfalse%5D%2C%5B%5C%5C%5C%22YYYYDDD%5C%5C%5C%22%2C%2F%5C%5C%5C%5Cd%7B7%7D%2F%5D%5D%3Bvar%20isoTimes%3D%5B%5B%5C%5C%5C%22HH%3Amm%3Ass.SSSS%5C%5C%5C%22%2C%2F%5C%5C%5C%5Cd%5C%5C%5C%5Cd%3A%5C%5C%5C%5Cd%5C%5C%5C%5Cd%3A%5C%5C%5C%5Cd%5C%5C%5C%5Cd%5C%5C%5C%5C.%5C%5C%5C%5Cd%2B%2F%5D%2C%5B%5C%5C%5C%22HH%3Amm%3Ass%2CSSSS%5C%5C%5C%22%2C%2F%5C%5C%5C%5Cd%5C%5C%5C%5Cd%3A%5C%5C%5C%5Cd%5C%5C%5C%5Cd%3A%5C%5C%5C%5Cd%5C%5C%5C%5Cd%2C%5C%5C%5C%5Cd%2B%2F%5D%2C%5B%5C%5C%5C%22HH%3Amm%3Ass%5C%5C%5C%22%2C%2F%5C%5C%5C%5Cd%5C%5C%5C%5Cd%3A%5C%5C%5C%5Cd%5C%5C%5C%5Cd%3A%5C%5C%5C%5Cd%5C%5C%5C%5Cd%2F%5D%2C%5B%5C%5C%5C%22HH%3Amm%5C%5C%5C%22%2C%2F%5C%5C%5C%5Cd%5C%5C%5C%5Cd%3A%5C%5C%5C%5Cd%5C%5C%5C%5Cd%2F%5D%2C%5B%5C%5C%5C%22HHmmss.SSSS%5C%5C%5C%22%2C%2F%5C%5C%5C%5Cd%5C%5C%5C%5Cd%5C%5C%5C%5Cd%5C%5C%5C%5Cd%5C%5C%5C%5Cd%5C%5C%5C%5Cd%5C%5C%5C%5C.%5C%5C%5C%5Cd%2B%2F%5D%2C%5B%5C%5C%5C%22HHmmss%2CSSSS%5C%5C%5C%22%2C%2F%5C%5C%5C%5Cd%5C%5C%5C%5Cd%5C%5C%5C%5Cd%5C%5C%5C%5Cd%5C%5C%5C%5Cd%5C%5C%5C%5Cd%2C%5C%5C%5C%5Cd%2B%2F%5D%2C%5B%5C%5C%5C%22HHmmss%5C%5C%5C%22%2C%2F%5C%5C%5C%5Cd%5C%5C%5C%5Cd%5C%5C%5C%5Cd%5C%5C%5C%5Cd%5C%5C%5C%5Cd%5C%5C%5C%5Cd%2F%5D%2C%5B%5C%5C%5C%22HHmm%5C%5C%5C%22%2C%2F%5C%5C%5C%5Cd%5C%5C%5C%5Cd%5C%5C%5C%5Cd%5C%5C%5C%5Cd%2F%5D%2C%5B%5C%5C%5C%22HH%5C%5C%5C%22%2C%2F%5C%5C%5C%5Cd%5C%5C%5C%5Cd%2F%5D%5D%3Bvar%20aspNetJsonRegex%3D%2F%5E%5C%5C%5C%5C%2F%3FDate%5C%5C%5C%5C((%5C%5C%5C%5C-%3F%5C%5C%5C%5Cd%2B)%2Fi%3Bfunction%20configFromISO(config)%7Bvar%20i%2Cl%2Cstring%3Dconfig._i%2Cmatch%3DextendedIsoRegex.exec(string)%7C%7CbasicIsoRegex.exec(string)%2CallowTime%2CdateFormat%2CtimeFormat%2CtzFormat%3Bif(match)%7BgetParsingFlags(config).iso%3Dtrue%3Bfor(i%3D0%2Cl%3DisoDates.length%3Bi%3Cl%3Bi%2B%2B)%7Bif(isoDates%5Bi%5D%5B1%5D.exec(match%5B1%5D))%7BdateFormat%3DisoDates%5Bi%5D%5B0%5D%3BallowTime%3DisoDates%5Bi%5D%5B2%5D!%3D%3Dfalse%3Bbreak%7D%7Dif(dateFormat%3D%3Dnull)%7Bconfig._isValid%3Dfalse%3Breturn%7Dif(match%5B3%5D)%7Bfor(i%3D0%2Cl%3DisoTimes.length%3Bi%3Cl%3Bi%2B%2B)%7Bif(isoTimes%5Bi%5D%5B1%5D.exec(match%5B3%5D))%7BtimeFormat%3D(match%5B2%5D%7C%7C%5C%5C%5C%22%20%5C%5C%5C%22)%2BisoTimes%5Bi%5D%5B0%5D%3Bbreak%7D%7Dif(timeFormat%3D%3Dnull)%7Bconfig._isValid%3Dfalse%3Breturn%7D%7Dif(!allowTime%26%26timeFormat!%3Dnull)%7Bconfig._isValid%3Dfalse%3Breturn%7Dif(match%5B4%5D)%7Bif(tzRegex.exec(match%5B4%5D))%7BtzFormat%3D%5C%5C%5C%22Z%5C%5C%5C%22%7Delse%7Bconfig._isValid%3Dfalse%3Breturn%7D%7Dconfig._f%3DdateFormat%2B(timeFormat%7C%7C%5C%5C%5C%22%5C%5C%5C%22)%2B(tzFormat%7C%7C%5C%5C%5C%22%5C%5C%5C%22)%3BconfigFromStringAndFormat(config)%7Delse%7Bconfig._isValid%3Dfalse%7D%7Dvar%20rfc2822%3D%2F%5E(%3F%3A(Mon%7CTue%7CWed%7CThu%7CFri%7CSat%7CSun)%2C%3F%5C%5C%5C%5Cs)%3F(%5C%5C%5C%5Cd%7B1%2C2%7D)%5C%5C%5C%5Cs(Jan%7CFeb%7CMar%7CApr%7CMay%7CJun%7CJul%7CAug%7CSep%7COct%7CNov%7CDec)%5C%5C%5C%5Cs(%5C%5C%5C%5Cd%7B2%2C4%7D)%5C%5C%5C%5Cs(%5C%5C%5C%5Cd%5C%5C%5C%5Cd)%3A(%5C%5C%5C%5Cd%5C%5C%5C%5Cd)(%3F%3A%3A(%5C%5C%5C%5Cd%5C%5C%5C%5Cd))%3F%5C%5C%5C%5Cs(%3F%3A(UT%7CGMT%7C%5BECMP%5D%5BSD%5DT)%7C(%5BZz%5D)%7C(%5B%2B-%5D%5C%5C%5C%5Cd%7B4%7D))%24%2F%3Bfunction%20extractFromRFC2822Strings(yearStr%2CmonthStr%2CdayStr%2ChourStr%2CminuteStr%2CsecondStr)%7Bvar%20result%3D%5BuntruncateYear(yearStr)%2CdefaultLocaleMonthsShort.indexOf(monthStr)%2CparseInt(dayStr%2C10)%2CparseInt(hourStr%2C10)%2CparseInt(minuteStr%2C10)%5D%3Bif(secondStr)%7Bresult.push(parseInt(secondStr%2C10))%7Dreturn%20result%7Dfunction%20untruncateYear(yearStr)%7Bvar%20year%3DparseInt(yearStr%2C10)%3Bif(year%3C%3D49)%7Breturn%202e3%2Byear%7Delse%20if(year%3C%3D999)%7Breturn%201900%2Byear%7Dreturn%20year%7Dfunction%20preprocessRFC2822(s)%7Breturn%20s.replace(%2F%5C%5C%5C%5C(%5B%5E)%5D*%5C%5C%5C%5C)%7C%5B%5C%5C%5C%5Cn%5C%5C%5C%5Ct%5D%2Fg%2C%5C%5C%5C%22%20%5C%5C%5C%22).replace(%2F(%5C%5C%5C%5Cs%5C%5C%5C%5Cs%2B)%2Fg%2C%5C%5C%5C%22%20%5C%5C%5C%22).trim()%7Dfunction%20checkWeekday(weekdayStr%2CparsedInput%2Cconfig)%7Bif(weekdayStr)%7Bvar%20weekdayProvided%3DdefaultLocaleWeekdaysShort.indexOf(weekdayStr)%2CweekdayActual%3Dnew%20Date(parsedInput%5B0%5D%2CparsedInput%5B1%5D%2CparsedInput%5B2%5D).getDay()%3Bif(weekdayProvided!%3D%3DweekdayActual)%7BgetParsingFlags(config).weekdayMismatch%3Dtrue%3Bconfig._isValid%3Dfalse%3Breturn%20false%7D%7Dreturn%20true%7Dvar%20obsOffsets%3D%7BUT%3A0%2CGMT%3A0%2CEDT%3A-4*60%2CEST%3A-5*60%2CCDT%3A-5*60%2CCST%3A-6*60%2CMDT%3A-6*60%2CMST%3A-7*60%2CPDT%3A-7*60%2CPST%3A-8*60%7D%3Bfunction%20calculateOffset(obsOffset%2CmilitaryOffset%2CnumOffset)%7Bif(obsOffset)%7Breturn%20obsOffsets%5BobsOffset%5D%7Delse%20if(militaryOffset)%7Breturn%200%7Delse%7Bvar%20hm%3DparseInt(numOffset%2C10)%3Bvar%20m%3Dhm%25100%2Ch%3D(hm-m)%2F100%3Breturn%20h*60%2Bm%7D%7Dfunction%20configFromRFC2822(config)%7Bvar%20match%3Drfc2822.exec(preprocessRFC2822(config._i))%3Bif(match)%7Bvar%20parsedArray%3DextractFromRFC2822Strings(match%5B4%5D%2Cmatch%5B3%5D%2Cmatch%5B2%5D%2Cmatch%5B5%5D%2Cmatch%5B6%5D%2Cmatch%5B7%5D)%3Bif(!checkWeekday(match%5B1%5D%2CparsedArray%2Cconfig))%7Breturn%7Dconfig._a%3DparsedArray%3Bconfig._tzm%3DcalculateOffset(match%5B8%5D%2Cmatch%5B9%5D%2Cmatch%5B10%5D)%3Bconfig._d%3DcreateUTCDate.apply(null%2Cconfig._a)%3Bconfig._d.setUTCMinutes(config._d.getUTCMinutes()-config._tzm)%3BgetParsingFlags(config).rfc2822%3Dtrue%7Delse%7Bconfig._isValid%3Dfalse%7D%7Dfunction%20configFromString(config)%7Bvar%20matched%3DaspNetJsonRegex.exec(config._i)%3Bif(matched!%3D%3Dnull)%7Bconfig._d%3Dnew%20Date(%2Bmatched%5B1%5D)%3Breturn%7DconfigFromISO(config)%3Bif(config._isValid%3D%3D%3Dfalse)%7Bdelete%20config._isValid%7Delse%7Breturn%7DconfigFromRFC2822(config)%3Bif(config._isValid%3D%3D%3Dfalse)%7Bdelete%20config._isValid%7Delse%7Breturn%7Dhooks.createFromInputFallback(config)%7Dhooks.createFromInputFallback%3Ddeprecate(%5C%5C%5C%22value%20provided%20is%20not%20in%20a%20recognized%20RFC2822%20or%20ISO%20format.%20moment%20construction%20falls%20back%20to%20js%20Date()%2C%20%5C%5C%5C%22%2B%5C%5C%5C%22which%20is%20not%20reliable%20across%20all%20browsers%20and%20versions.%20Non%20RFC2822%2FISO%20date%20formats%20are%20%5C%5C%5C%22%2B%5C%5C%5C%22discouraged%20and%20will%20be%20removed%20in%20an%20upcoming%20major%20release.%20Please%20refer%20to%20%5C%5C%5C%22%2B%5C%5C%5C%22http%3A%2F%2Fmomentjs.com%2Fguides%2F%23%2Fwarnings%2Fjs-date%2F%20for%20more%20info.%5C%5C%5C%22%2Cfunction(config)%7Bconfig._d%3Dnew%20Date(config._i%2B(config._useUTC%3F%5C%5C%5C%22%20UTC%5C%5C%5C%22%3A%5C%5C%5C%22%5C%5C%5C%22))%7D)%3Bhooks.ISO_8601%3Dfunction()%7B%7D%3Bhooks.RFC_2822%3Dfunction()%7B%7D%3Bfunction%20configFromStringAndFormat(config)%7Bif(config._f%3D%3D%3Dhooks.ISO_8601)%7BconfigFromISO(config)%3Breturn%7Dif(config._f%3D%3D%3Dhooks.RFC_2822)%7BconfigFromRFC2822(config)%3Breturn%7Dconfig._a%3D%5B%5D%3BgetParsingFlags(config).empty%3Dtrue%5C%5Cn%3Bvar%20string%3D%5C%5C%5C%22%5C%5C%5C%22%2Bconfig._i%2Ci%2CparsedInput%2Ctokens%2Ctoken%2Cskipped%2CstringLength%3Dstring.length%2CtotalParsedInputLength%3D0%3Btokens%3DexpandFormat(config._f%2Cconfig._locale).match(formattingTokens)%7C%7C%5B%5D%3Bfor(i%3D0%3Bi%3Ctokens.length%3Bi%2B%2B)%7Btoken%3Dtokens%5Bi%5D%3BparsedInput%3D(string.match(getParseRegexForToken(token%2Cconfig))%7C%7C%5B%5D)%5B0%5D%3Bif(parsedInput)%7Bskipped%3Dstring.substr(0%2Cstring.indexOf(parsedInput))%3Bif(skipped.length%3E0)%7BgetParsingFlags(config).unusedInput.push(skipped)%7Dstring%3Dstring.slice(string.indexOf(parsedInput)%2BparsedInput.length)%3BtotalParsedInputLength%2B%3DparsedInput.length%7Dif(formatTokenFunctions%5Btoken%5D)%7Bif(parsedInput)%7BgetParsingFlags(config).empty%3Dfalse%7Delse%7BgetParsingFlags(config).unusedTokens.push(token)%7DaddTimeToArrayFromToken(token%2CparsedInput%2Cconfig)%7Delse%20if(config._strict%26%26!parsedInput)%7BgetParsingFlags(config).unusedTokens.push(token)%7D%7DgetParsingFlags(config).charsLeftOver%3DstringLength-totalParsedInputLength%3Bif(string.length%3E0)%7BgetParsingFlags(config).unusedInput.push(string)%7Dif(config._a%5BHOUR%5D%3C%3D12%26%26getParsingFlags(config).bigHour%3D%3D%3Dtrue%26%26config._a%5BHOUR%5D%3E0)%7BgetParsingFlags(config).bigHour%3Dundefined%7DgetParsingFlags(config).parsedDateParts%3Dconfig._a.slice(0)%3BgetParsingFlags(config).meridiem%3Dconfig._meridiem%3Bconfig._a%5BHOUR%5D%3DmeridiemFixWrap(config._locale%2Cconfig._a%5BHOUR%5D%2Cconfig._meridiem)%3BconfigFromArray(config)%3BcheckOverflow(config)%7Dfunction%20meridiemFixWrap(locale%2Chour%2Cmeridiem)%7Bvar%20isPm%3Bif(meridiem%3D%3Dnull)%7Breturn%20hour%7Dif(locale.meridiemHour!%3Dnull)%7Breturn%20locale.meridiemHour(hour%2Cmeridiem)%7Delse%20if(locale.isPM!%3Dnull)%7BisPm%3Dlocale.isPM(meridiem)%3Bif(isPm%26%26hour%3C12)%7Bhour%2B%3D12%7Dif(!isPm%26%26hour%3D%3D%3D12)%7Bhour%3D0%7Dreturn%20hour%7Delse%7Breturn%20hour%7D%7Dfunction%20configFromStringAndArray(config)%7Bvar%20tempConfig%2CbestMoment%2CscoreToBeat%2Ci%2CcurrentScore%3Bif(config._f.length%3D%3D%3D0)%7BgetParsingFlags(config).invalidFormat%3Dtrue%3Bconfig._d%3Dnew%20Date(NaN)%3Breturn%7Dfor(i%3D0%3Bi%3Cconfig._f.length%3Bi%2B%2B)%7BcurrentScore%3D0%3BtempConfig%3DcopyConfig(%7B%7D%2Cconfig)%3Bif(config._useUTC!%3Dnull)%7BtempConfig._useUTC%3Dconfig._useUTC%7DtempConfig._f%3Dconfig._f%5Bi%5D%3BconfigFromStringAndFormat(tempConfig)%3Bif(!isValid(tempConfig))%7Bcontinue%7DcurrentScore%2B%3DgetParsingFlags(tempConfig).charsLeftOver%3BcurrentScore%2B%3DgetParsingFlags(tempConfig).unusedTokens.length*10%3BgetParsingFlags(tempConfig).score%3DcurrentScore%3Bif(scoreToBeat%3D%3Dnull%7C%7CcurrentScore%3CscoreToBeat)%7BscoreToBeat%3DcurrentScore%3BbestMoment%3DtempConfig%7D%7Dextend(config%2CbestMoment%7C%7CtempConfig)%7Dfunction%20configFromObject(config)%7Bif(config._d)%7Breturn%7Dvar%20i%3DnormalizeObjectUnits(config._i)%3Bconfig._a%3Dmap(%5Bi.year%2Ci.month%2Ci.day%7C%7Ci.date%2Ci.hour%2Ci.minute%2Ci.second%2Ci.millisecond%5D%2Cfunction(obj)%7Breturn%20obj%26%26parseInt(obj%2C10)%7D)%3BconfigFromArray(config)%7Dfunction%20createFromConfig(config)%7Bvar%20res%3Dnew%20Moment(checkOverflow(prepareConfig(config)))%3Bif(res._nextDay)%7Bres.add(1%2C%5C%5C%5C%22d%5C%5C%5C%22)%3Bres._nextDay%3Dundefined%7Dreturn%20res%7Dfunction%20prepareConfig(config)%7Bvar%20input%3Dconfig._i%2Cformat%3Dconfig._f%3Bconfig._locale%3Dconfig._locale%7C%7CgetLocale(config._l)%3Bif(input%3D%3D%3Dnull%7C%7Cformat%3D%3D%3Dundefined%26%26input%3D%3D%3D%5C%5C%5C%22%5C%5C%5C%22)%7Breturn%20createInvalid(%7BnullInput%3Atrue%7D)%7Dif(typeof%20input%3D%3D%3D%5C%5C%5C%22string%5C%5C%5C%22)%7Bconfig._i%3Dinput%3Dconfig._locale.preparse(input)%7Dif(isMoment(input))%7Breturn%20new%20Moment(checkOverflow(input))%7Delse%20if(isDate(input))%7Bconfig._d%3Dinput%7Delse%20if(isArray(format))%7BconfigFromStringAndArray(config)%7Delse%20if(format)%7BconfigFromStringAndFormat(config)%7Delse%7BconfigFromInput(config)%7Dif(!isValid(config))%7Bconfig._d%3Dnull%7Dreturn%20config%7Dfunction%20configFromInput(config)%7Bvar%20input%3Dconfig._i%3Bif(isUndefined(input))%7Bconfig._d%3Dnew%20Date(hooks.now())%7Delse%20if(isDate(input))%7Bconfig._d%3Dnew%20Date(input.valueOf())%7Delse%20if(typeof%20input%3D%3D%3D%5C%5C%5C%22string%5C%5C%5C%22)%7BconfigFromString(config)%7Delse%20if(isArray(input))%7Bconfig._a%3Dmap(input.slice(0)%2Cfunction(obj)%7Breturn%20parseInt(obj%2C10)%7D)%3BconfigFromArray(config)%7Delse%20if(isObject(input))%7BconfigFromObject(config)%7Delse%20if(isNumber(input))%7Bconfig._d%3Dnew%20Date(input)%7Delse%7Bhooks.createFromInputFallback(config)%7D%7Dfunction%20createLocalOrUTC(input%2Cformat%2Clocale%2Cstrict%2CisUTC)%7Bvar%20c%3D%7B%7D%3Bif(locale%3D%3D%3Dtrue%7C%7Clocale%3D%3D%3Dfalse)%7Bstrict%3Dlocale%3Blocale%3Dundefined%7Dif(isObject(input)%26%26isObjectEmpty(input)%7C%7CisArray(input)%26%26input.length%3D%3D%3D0)%7Binput%3Dundefined%7Dc._isAMomentObject%3Dtrue%3Bc._useUTC%3Dc._isUTC%3DisUTC%3Bc._l%3Dlocale%3Bc._i%3Dinput%3Bc._f%3Dformat%3Bc._strict%3Dstrict%3Breturn%20createFromConfig(c)%7Dfunction%20createLocal(input%2Cformat%2Clocale%2Cstrict)%7Breturn%20createLocalOrUTC(input%2Cformat%2Clocale%2Cstrict%2Cfalse)%7Dvar%20prototypeMin%3Ddeprecate(%5C%5C%5C%22moment().min%20is%20deprecated%2C%20use%20moment.max%20instead.%20http%3A%2F%2Fmomentjs.com%2Fguides%2F%23%2Fwarnings%2Fmin-max%2F%5C%5C%5C%22%2Cfunction()%7Bvar%20other%3DcreateLocal.apply(null%2Carguments)%3Bif(this.isValid()%26%26other.isValid())%7Breturn%20other%3Cthis%3Fthis%3Aother%7Delse%7Breturn%20createInvalid()%7D%7D)%3Bvar%20prototypeMax%3Ddeprecate(%5C%5C%5C%22moment().max%20is%20deprecated%2C%20use%20moment.min%20instead.%20http%3A%2F%2Fmomentjs.com%2Fguides%2F%23%2Fwarnings%2Fmin-max%2F%5C%5C%5C%22%2Cfunction()%7Bvar%20other%3DcreateLocal.apply(null%2Carguments)%3Bif(this.isValid()%26%26other.isValid())%7Breturn%20other%3Ethis%3Fthis%3Aother%7Delse%7Breturn%20createInvalid()%7D%7D)%3Bfunction%20pickBy(fn%2Cmoments)%7Bvar%20res%2Ci%3Bif(moments.length%3D%3D%3D1%26%26isArray(moments%5B0%5D))%7Bmoments%3Dmoments%5B0%5D%7Dif(!moments.length)%7Breturn%20createLocal()%7Dres%3Dmoments%5B0%5D%3Bfor(i%3D1%3Bi%3Cmoments.length%3B%2B%2Bi)%7Bif(!moments%5Bi%5D.isValid()%7C%7Cmoments%5Bi%5D%5Bfn%5D(res))%7Bres%3Dmoments%5Bi%5D%7D%7Dreturn%20res%7Dfunction%20min()%7Bvar%20args%3D%5B%5D.slice.call(arguments%2C0)%3Breturn%20pickBy(%5C%5C%5C%22isBefore%5C%5C%5C%22%2Cargs)%7Dfunction%20max()%7Bvar%20args%3D%5B%5D.slice.call(arguments%2C0)%3Breturn%20pickBy(%5C%5C%5C%22isAfter%5C%5C%5C%22%2Cargs)%7Dvar%20now%3Dfunction()%7Breturn%20Date.now%3FDate.now()%3A%2Bnew%20Date%7D%3Bvar%20ordering%3D%5B%5C%5C%5C%22year%5C%5C%5C%22%2C%5C%5C%5C%22quarter%5C%5C%5C%22%2C%5C%5C%5C%22month%5C%5C%5C%22%2C%5C%5C%5C%22week%5C%5C%5C%22%2C%5C%5C%5C%22day%5C%5C%5C%22%2C%5C%5C%5C%22hour%5C%5C%5C%22%2C%5C%5C%5C%22minute%5C%5C%5C%22%2C%5C%5C%5C%22second%5C%5C%5C%22%2C%5C%5C%5C%22millisecond%5C%5C%5C%22%5D%3Bfunction%20isDurationValid(m)%7Bfor(var%20key%20in%20m)%7Bif(!(indexOf.call(ordering%2Ckey)!%3D%3D-1%26%26(m%5Bkey%5D%3D%3Dnull%7C%7C!isNaN(m%5Bkey%5D))))%7Breturn%20false%7D%7Dvar%20unitHasDecimal%3Dfalse%3Bfor(var%20i%3D0%3Bi%3Cordering.length%3B%2B%2Bi)%7Bif(m%5Bordering%5Bi%5D%5D)%7Bif(unitHasDecimal)%7Breturn%20false%7Dif(parseFloat(m%5Bordering%5Bi%5D%5D)!%3D%3DtoInt(m%5Bordering%5Bi%5D%5D))%7BunitHasDecimal%3Dtrue%7D%7D%7Dreturn%20true%7Dfunction%20isValid%241()%7Breturn%20this._isValid%7Dfunction%20createInvalid%241()%7Breturn%20createDuration(NaN)%7Dfunction%20Duration(duration)%7Bvar%20normalizedInput%3DnormalizeObjectUnits(duration)%2Cyears%3DnormalizedInput.year%7C%7C0%2Cquarters%3DnormalizedInput.quarter%7C%7C0%2Cmonths%3DnormalizedInput.month%7C%7C0%2Cweeks%3DnormalizedInput.week%7C%7C0%2Cdays%3DnormalizedInput.day%7C%7C0%2Chours%3DnormalizedInput.hour%7C%7C0%2Cminutes%3DnormalizedInput.minute%7C%7C0%2Cseconds%3DnormalizedInput.second%7C%7C0%2Cmilliseconds%3DnormalizedInput.millisecond%7C%7C0%3Bthis._isValid%3DisDurationValid(normalizedInput)%3Bthis._milliseconds%3D%2Bmilliseconds%2Bseconds*1e3%2Bminutes*6e4%2Bhours*1e3*60*60%3Bthis._days%3D%2Bdays%2Bweeks*7%3Bthis._months%3D%2Bmonths%2Bquarters*3%2Byears*12%3Bthis._data%3D%7B%7D%3Bthis._locale%3DgetLocale()%3Bthis._bubble()%7Dfunction%20isDuration(obj)%7Breturn%20obj%20instanceof%20Duration%7Dfunction%20absRound(number)%7Bif(number%3C0)%7Breturn%20Math.round(-1*number)*-1%7Delse%7Breturn%20Math.round(number)%7D%7Dfunction%20offset(token%2Cseparator)%7BaddFormatToken(token%2C0%2C0%2Cfunction()%7Bvar%20offset%3Dthis.utcOffset()%3Bvar%20sign%3D%5C%5C%5C%22%2B%5C%5C%5C%22%3Bif(offset%3C0)%7Boffset%3D-offset%3Bsign%3D%5C%5C%5C%22-%5C%5C%5C%22%7Dreturn%20sign%2BzeroFill(~~(offset%2F60)%2C2)%2Bseparator%2BzeroFill(~~offset%2560%2C2)%7D)%7Doffset(%5C%5C%5C%22Z%5C%5C%5C%22%2C%5C%5C%5C%22%3A%5C%5C%5C%22)%3Boffset(%5C%5C%5C%22ZZ%5C%5C%5C%22%2C%5C%5C%5C%22%5C%5C%5C%22)%3BaddRegexToken(%5C%5C%5C%22Z%5C%5C%5C%22%2CmatchShortOffset)%3BaddRegexToken(%5C%5C%5C%22ZZ%5C%5C%5C%22%2CmatchShortOffset)%3BaddParseToken(%5B%5C%5C%5C%22Z%5C%5C%5C%22%2C%5C%5C%5C%22ZZ%5C%5C%5C%22%5D%2Cfunction(input%2Carray%2Cconfig)%7Bconfig._useUTC%3Dtrue%3Bconfig._tzm%3DoffsetFromString(matchShortOffset%2Cinput)%7D)%3Bvar%20chunkOffset%3D%2F(%5B%5C%5C%5C%5C%2B%5C%5C%5C%5C-%5D%7C%5C%5C%5C%5Cd%5C%5C%5C%5Cd)%2Fgi%3Bfunction%20offsetFromString(matcher%2Cstring)%7Bvar%20matches%3D(string%7C%7C%5C%5C%5C%22%5C%5C%5C%22).match(matcher)%3Bif(matches%3D%3D%3Dnull)%7Breturn%20null%7Dvar%20chunk%3Dmatches%5Bmatches.length-1%5D%7C%7C%5B%5D%3Bvar%20parts%3D(chunk%2B%5C%5C%5C%22%5C%5C%5C%22).match(chunkOffset)%7C%7C%5B%5C%5C%5C%22-%5C%5C%5C%22%2C0%2C0%5D%3Bvar%20minutes%3D%2B(parts%5B1%5D*60)%2BtoInt(parts%5B2%5D)%3Breturn%20minutes%3D%3D%3D0%3F0%3Aparts%5B0%5D%3D%3D%3D%5C%5C%5C%22%2B%5C%5C%5C%22%3Fminutes%3A-minutes%7Dfunction%20cloneWithOffset(input%2Cmodel)%7Bvar%20res%2Cdiff%3Bif(model._isUTC)%7Bres%3Dmodel.clone()%3Bdiff%3D(isMoment(input)%7C%7CisDate(input)%3Finput.valueOf()%3AcreateLocal(input).valueOf())-res.valueOf()%3Bres._d.setTime(res._d.valueOf()%2Bdiff)%3Bhooks.updateOffset(res%2Cfalse)%3Breturn%20res%7Delse%7Breturn%20createLocal(input).local()%7D%7Dfunction%20getDateOffset(m)%7Breturn-Math.round(m._d.getTimezoneOffset()%2F15)*15%7Dhooks.updateOffset%3Dfunction()%7B%7D%3Bfunction%20getSetOffset(input%2CkeepLocalTime%2CkeepMinutes)%7Bvar%20offset%3Dthis._offset%7C%7C0%2ClocalAdjust%3Bif(!this.isValid())%7Breturn%20input!%3Dnull%3Fthis%3ANaN%7Dif(input!%3Dnull)%7Bif(typeof%20input%3D%3D%3D%5C%5C%5C%22string%5C%5C%5C%22)%7Binput%3DoffsetFromString(matchShortOffset%2Cinput)%3Bif(input%3D%3D%3Dnull)%7Breturn%20this%7D%7Delse%20if(Math.abs(input)%3C16%26%26!keepMinutes)%7Binput%3Dinput*60%7Dif(!this._isUTC%26%26keepLocalTime)%7BlocalAdjust%3DgetDateOffset(this)%7Dthis._offset%3Dinput%3Bthis._isUTC%3Dtrue%3Bif(localAdjust!%3Dnull)%7Bthis.add(localAdjust%2C%5C%5C%5C%22m%5C%5C%5C%22)%7Dif(offset!%3D%3Dinput)%7Bif(!keepLocalTime%7C%7Cthis._changeInProgress)%7BaddSubtract(this%2CcreateDuration(input-offset%2C%5C%5C%5C%22m%5C%5C%5C%22)%2C1%2Cfalse)%7Delse%20if(!this._changeInProgress)%7Bthis._changeInProgress%3Dtrue%3Bhooks.updateOffset(this%2Ctrue)%3Bthis._changeInProgress%3Dnull%7D%7Dreturn%20this%7Delse%7Breturn%20this._isUTC%3Foffset%3AgetDateOffset(this)%7D%7Dfunction%20getSetZone(input%2CkeepLocalTime)%7Bif(input!%3Dnull)%7Bif(typeof%20input!%3D%3D%5C%5C%5C%22string%5C%5C%5C%22)%7Binput%3D-input%7Dthis.utcOffset(input%2CkeepLocalTime)%3Breturn%20this%7Delse%7Breturn-this.utcOffset()%7D%7Dfunction%20setOffsetToUTC(keepLocalTime)%7Breturn%20this.utcOffset(0%2CkeepLocalTime)%7Dfunction%20setOffsetToLocal(keepLocalTime)%7Bif(this._isUTC)%7Bthis.utcOffset(0%2CkeepLocalTime)%3Bthis._isUTC%3Dfalse%3Bif(keepLocalTime)%7Bthis.subtract(getDateOffset(this)%2C%5C%5C%5C%22m%5C%5C%5C%22)%7D%7Dreturn%20this%7Dfunction%20setOffsetToParsedOffset()%7Bif(this._tzm!%3Dnull)%7Bthis.utcOffset(this._tzm%2Cfalse%2Ctrue)%7Delse%20if(typeof%20this._i%3D%3D%3D%5C%5C%5C%22string%5C%5C%5C%22)%7Bvar%20tZone%3DoffsetFromString(matchOffset%2Cthis._i)%3Bif(tZone!%3Dnull)%7Bthis.utcOffset(tZone)%7Delse%7Bthis.utcOffset(0%2Ctrue)%7D%7Dreturn%20this%7Dfunction%20hasAlignedHourOffset(input)%7Bif(!this.isValid())%7Breturn%20false%7Dinput%3Dinput%3FcreateLocal(input).utcOffset()%3A0%3Breturn(this.utcOffset()-input)%2560%3D%3D%3D0%7Dfunction%20isDaylightSavingTime()%7Breturn%20this.utcOffset()%3Ethis.clone().month(0).utcOffset()%7C%7Cthis.utcOffset()%3Ethis.clone().month(5).utcOffset()%7Dfunction%20isDaylightSavingTimeShifted()%7Bif(!isUndefined(this._isDSTShifted))%7Breturn%20this._isDSTShifted%7Dvar%20c%3D%7B%7D%3BcopyConfig(c%2Cthis)%3Bc%3DprepareConfig(c)%3Bif(c._a)%7Bvar%20other%3Dc._isUTC%3FcreateUTC(c._a)%3AcreateLocal(c._a)%3Bthis._isDSTShifted%3Dthis.isValid()%26%26compareArrays(c._a%2Cother.toArray())%3E0%7Delse%7Bthis._isDSTShifted%3Dfalse%7Dreturn%20this._isDSTShifted%7Dfunction%20isLocal()%7Breturn%20this.isValid()%3F!this._isUTC%3Afalse%7Dfunction%20isUtcOffset()%7Breturn%20this.isValid()%3Fthis._isUTC%3Afalse%7Dfunction%20isUtc()%7Breturn%20this.isValid()%3Fthis._isUTC%26%26this._offset%3D%3D%3D0%3Afalse%7Dvar%20aspNetRegex%3D%2F%5E(%5C%5C%5C%5C-%7C%5C%5C%5C%5C%2B)%3F(%3F%3A(%5C%5C%5C%5Cd*)%5B.%20%5D)%3F(%5C%5C%5C%5Cd%2B)%5C%5C%5C%5C%3A(%5C%5C%5C%5Cd%2B)(%3F%3A%5C%5C%5C%5C%3A(%5C%5C%5C%5Cd%2B)(%5C%5C%5C%5C.%5C%5C%5C%5Cd*)%3F)%3F%24%2F%3Bvar%20isoRegex%3D%2F%5E(-%7C%5C%5C%5C%5C%2B)%3FP(%3F%3A(%5B-%2B%5D%3F%5B0-9%2C.%5D*)Y)%3F(%3F%3A(%5B-%2B%5D%3F%5B0-9%2C.%5D*)M)%3F(%3F%3A(%5B-%2B%5D%3F%5B0-9%2C.%5D*)W)%3F(%3F%3A(%5B-%2B%5D%3F%5B0-9%2C.%5D*)D)%3F(%3F%3AT(%3F%3A(%5B-%2B%5D%3F%5B0-9%2C.%5D*)H)%3F(%3F%3A(%5B-%2B%5D%3F%5B0-9%2C.%5D*)M)%3F(%3F%3A(%5B-%2B%5D%3F%5B0-9%2C.%5D*)S)%3F)%3F%24%2F%3Bfunction%20createDuration(input%2Ckey)%7Bvar%20duration%3Dinput%2Cmatch%3Dnull%2Csign%2Cret%2CdiffRes%3Bif(isDuration(input))%7Bduration%3D%7Bms%3Ainput._milliseconds%2Cd%3Ainput._days%2CM%3Ainput._months%7D%7Delse%20if(isNumber(input))%7Bduration%3D%7B%7D%3Bif(key)%7Bduration%5Bkey%5D%3Dinput%7Delse%7Bduration.milliseconds%3Dinput%7D%7Delse%20if(!!(match%3DaspNetRegex.exec(input)))%7Bsign%3Dmatch%5B1%5D%3D%3D%3D%5C%5C%5C%22-%5C%5C%5C%22%3F-1%3A1%3Bduration%3D%7By%3A0%2Cd%3AtoInt(match%5BDATE%5D)*sign%2Ch%3AtoInt(match%5BHOUR%5D)*sign%2Cm%3AtoInt(match%5BMINUTE%5D)*sign%2Cs%3AtoInt(match%5BSECOND%5D)*sign%2Cms%3AtoInt(absRound(match%5BMILLISECOND%5D*1e3))*sign%7D%7Delse%20if(!!(match%3DisoRegex.exec(input)))%7Bsign%3Dmatch%5B1%5D%3D%3D%3D%5C%5C%5C%22-%5C%5C%5C%22%3F-1%3Amatch%5B1%5D%3D%3D%3D%5C%5C%5C%22%2B%5C%5C%5C%22%3F1%3A1%3Bduration%3D%7By%3AparseIso(match%5B2%5D%2Csign)%2CM%3AparseIso(match%5B3%5D%2Csign)%2Cw%3AparseIso(match%5B4%5D%2Csign)%2Cd%3AparseIso(match%5B5%5D%2Csign)%2Ch%3AparseIso(match%5B6%5D%2Csign)%2Cm%3AparseIso(match%5B7%5D%2Csign)%2Cs%3AparseIso(match%5B8%5D%2Csign)%7D%7Delse%20if(duration%3D%3Dnull)%7Bduration%3D%7B%7D%7Delse%20if(typeof%20duration%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22%26%26(%5C%5C%5C%22from%5C%5C%5C%22in%20duration%7C%7C%5C%5C%5C%22to%5C%5C%5C%22in%20duration))%7BdiffRes%3DmomentsDifference(createLocal(duration.from)%2CcreateLocal(duration.to))%3Bduration%3D%7B%7D%3Bduration.ms%3DdiffRes.milliseconds%3Bduration.M%3DdiffRes.months%7Dret%3Dnew%20Duration(duration)%3Bif(isDuration(input)%26%26hasOwnProp(input%2C%5C%5C%5C%22_locale%5C%5C%5C%22))%7Bret._locale%3Dinput._locale%7Dreturn%20ret%7DcreateDuration.fn%3DDuration.prototype%3BcreateDuration.invalid%3DcreateInvalid%241%3Bfunction%20parseIso(inp%2Csign)%7Bvar%20res%3Dinp%26%26parseFloat(inp.replace(%5C%5C%5C%22%2C%5C%5C%5C%22%2C%5C%5C%5C%22.%5C%5C%5C%22))%3Breturn(isNaN(res)%3F0%3Ares)*sign%7Dfunction%20positiveMomentsDifference(base%2Cother)%7Bvar%20res%3D%7Bmilliseconds%3A0%2Cmonths%3A0%7D%3Bres.months%3Dother.month()-base.month()%2B(other.year()-base.year())*12%3Bif(base.clone().add(res.months%2C%5C%5C%5C%22M%5C%5C%5C%22).isAfter(other))%7B--res.months%7Dres.milliseconds%3D%2Bother-%2Bbase.clone().add(res.months%2C%5C%5C%5C%22M%5C%5C%5C%22)%3Breturn%20res%7Dfunction%20momentsDifference(base%2Cother)%7Bvar%20res%3Bif(!(base.isValid()%26%26other.isValid()))%7Breturn%7Bmilliseconds%3A0%2Cmonths%3A0%7D%7Dother%3DcloneWithOffset(other%2Cbase)%3Bif(base.isBefore(other))%7Bres%3DpositiveMomentsDifference(base%2Cother)%7Delse%7Bres%3DpositiveMomentsDifference(other%2Cbase)%3Bres.milliseconds%3D-res.milliseconds%3Bres.months%3D-res.months%7Dreturn%20res%7Dfunction%20createAdder(direction%2Cname)%7Breturn%20function(val%2Cperiod)%7Bvar%20dur%2Ctmp%3Bif(period!%3D%3Dnull%26%26!isNaN(%2Bperiod))%7BdeprecateSimple(name%2C%5C%5C%5C%22moment().%5C%5C%5C%22%2Bname%2B%5C%5C%5C%22(period%2C%20number)%20is%20deprecated.%20Please%20use%20moment().%5C%5C%5C%22%2Bname%2B%5C%5C%5C%22(number%2C%20period).%20%5C%5C%5C%22%2B%5C%5C%5C%22See%20http%3A%2F%2Fmomentjs.com%2Fguides%2F%23%2Fwarnings%2Fadd-inverted-param%2F%20for%20more%20info.%5C%5C%5C%22)%3Btmp%3Dval%3Bval%3Dperiod%3Bperiod%3Dtmp%7Dval%3Dtypeof%20val%3D%3D%3D%5C%5C%5C%22string%5C%5C%5C%22%3F%2Bval%3Aval%3Bdur%3DcreateDuration(val%2Cperiod)%3BaddSubtract(this%2Cdur%2Cdirection)%3Breturn%20this%7D%7Dfunction%20addSubtract(mom%2Cduration%2CisAdding%2CupdateOffset)%7Bvar%20milliseconds%3Dduration._milliseconds%2Cdays%3DabsRound(duration._days)%2Cmonths%3DabsRound(duration._months)%3Bif(!mom.isValid())%7Breturn%7DupdateOffset%3DupdateOffset%3D%3Dnull%3Ftrue%3AupdateOffset%3Bif(months)%7BsetMonth(mom%2Cget(mom%2C%5C%5C%5C%22Month%5C%5C%5C%22)%2Bmonths*isAdding)%7Dif(days)%7Bset%241(mom%2C%5C%5C%5C%22Date%5C%5C%5C%22%2Cget(mom%2C%5C%5C%5C%22Date%5C%5C%5C%22)%2Bdays*isAdding)%7Dif(milliseconds)%7Bmom._d.setTime(mom._d.valueOf()%2Bmilliseconds*isAdding)%7Dif(updateOffset)%7Bhooks.updateOffset(mom%2Cdays%7C%7Cmonths)%7D%7Dvar%20add%3DcreateAdder(1%2C%5C%5C%5C%22add%5C%5C%5C%22)%3Bvar%20subtract%3DcreateAdder(-1%2C%5C%5C%5C%22subtract%5C%5C%5C%22)%3Bfunction%20getCalendarFormat(myMoment%2Cnow)%7Bvar%20diff%3DmyMoment.diff(now%2C%5C%5C%5C%22days%5C%5C%5C%22%2Ctrue)%3Breturn%20diff%3C-6%3F%5C%5C%5C%22sameElse%5C%5C%5C%22%3Adiff%3C-1%3F%5C%5C%5C%22lastWeek%5C%5C%5C%22%3Adiff%3C0%3F%5C%5C%5C%22lastDay%5C%5C%5C%22%3Adiff%3C1%3F%5C%5C%5C%22sameDay%5C%5C%5C%22%3Adiff%3C2%3F%5C%5C%5C%22nextDay%5C%5C%5C%22%3Adiff%3C7%3F%5C%5C%5C%22nextWeek%5C%5C%5C%22%3A%5C%5C%5C%22sameElse%5C%5C%5C%22%7Dfunction%20calendar%241(time%2Cformats)%7Bvar%20now%3Dtime%7C%7CcreateLocal()%2Csod%3DcloneWithOffset(now%2Cthis).startOf(%5C%5C%5C%22day%5C%5C%5C%22)%2Cformat%3Dhooks.calendarFormat(this%2Csod)%7C%7C%5C%5C%5C%22sameElse%5C%5C%5C%22%3Bvar%20output%3Dformats%26%26(isFunction(formats%5Bformat%5D)%3Fformats%5Bformat%5D.call(this%2Cnow)%3Aformats%5Bformat%5D)%3Breturn%20this.format(output%7C%7Cthis.localeData().calendar(format%2Cthis%2CcreateLocal(now)))%7Dfunction%20clone()%7Breturn%20new%20Moment(this)%7Dfunction%20isAfter(input%2Cunits)%7Bvar%20localInput%3DisMoment(input)%3Finput%3AcreateLocal(input)%3Bif(!(this.isValid()%26%26localInput.isValid()))%7Breturn%20false%7Dunits%3DnormalizeUnits(!isUndefined(units)%3Funits%3A%5C%5C%5C%22millisecond%5C%5C%5C%22)%3Bif(units%3D%3D%3D%5C%5C%5C%22millisecond%5C%5C%5C%22)%7Breturn%20this.valueOf()%3ElocalInput.valueOf()%7Delse%7Breturn%20localInput.valueOf()%3Cthis.clone().startOf(units).valueOf()%7D%7Dfunction%20isBefore(input%2Cunits)%7Bvar%20localInput%3DisMoment(input)%3Finput%3AcreateLocal(input)%3Bif(!(this.isValid()%26%26localInput.isValid()))%7Breturn%20false%7Dunits%3DnormalizeUnits(!isUndefined(units)%3Funits%3A%5C%5C%5C%22millisecond%5C%5C%5C%22)%3Bif(units%3D%3D%3D%5C%5C%5C%22millisecond%5C%5C%5C%22)%7Breturn%20this.valueOf()%3ClocalInput.valueOf()%7Delse%7Breturn%20this.clone().endOf(units).valueOf()%3ClocalInput.valueOf()%7D%7Dfunction%20isBetween(from%2Cto%2Cunits%2Cinclusivity)%7Binclusivity%3Dinclusivity%7C%7C%5C%5C%5C%22()%5C%5C%5C%22%3Breturn(inclusivity%5B0%5D%3D%3D%3D%5C%5C%5C%22(%5C%5C%5C%22%3Fthis.isAfter(from%2Cunits)%3A!this.isBefore(from%2Cunits))%26%26(inclusivity%5B1%5D%3D%3D%3D%5C%5C%5C%22)%5C%5C%5C%22%3Fthis.isBefore(to%2Cunits)%3A!this.isAfter(to%2Cunits))%7Dfunction%20isSame(input%2Cunits)%7Bvar%20localInput%3DisMoment(input)%3Finput%3AcreateLocal(input)%2CinputMs%3Bif(!(this.isValid()%26%26localInput.isValid()))%7Breturn%20false%7Dunits%3DnormalizeUnits(units%7C%7C%5C%5C%5C%22millisecond%5C%5C%5C%22)%3Bif(units%3D%3D%3D%5C%5C%5C%22millisecond%5C%5C%5C%22)%7Breturn%20this.valueOf()%3D%3D%3DlocalInput.valueOf()%7Delse%7BinputMs%3DlocalInput.valueOf()%3Breturn%20this.clone().startOf(units).valueOf()%3C%3DinputMs%26%26inputMs%3C%3Dthis.clone().endOf(units).valueOf()%7D%7Dfunction%20isSameOrAfter(input%2Cunits)%7Breturn%20this.isSame(input%2Cunits)%7C%7Cthis.isAfter(input%2Cunits)%7Dfunction%20isSameOrBefore(input%2Cunits)%7Breturn%20this.isSame(input%2Cunits)%7C%7Cthis.isBefore(input%2Cunits)%7Dfunction%20diff(input%2Cunits%2CasFloat)%7Bvar%20that%2CzoneDelta%2Cdelta%2Coutput%3Bif(!this.isValid())%7Breturn%20NaN%7Dthat%3DcloneWithOffset(input%2Cthis)%3Bif(!that.isValid())%7Breturn%20NaN%7DzoneDelta%3D(that.utcOffset()-this.utcOffset())*6e4%3Bunits%3DnormalizeUnits(units)%3Bswitch(units)%7Bcase%5C%5C%5C%22year%5C%5C%5C%22%3Aoutput%3DmonthDiff(this%2Cthat)%2F12%3Bbreak%3Bcase%5C%5C%5C%22month%5C%5C%5C%22%3Aoutput%3DmonthDiff(this%2Cthat)%3Bbreak%3Bcase%5C%5C%5C%22quarter%5C%5C%5C%22%3Aoutput%3DmonthDiff(this%2Cthat)%2F3%3Bbreak%3Bcase%5C%5C%5C%22second%5C%5C%5C%22%3Aoutput%3D(this-that)%2F1e3%3Bbreak%3Bcase%5C%5C%5C%22minute%5C%5C%5C%22%3Aoutput%3D(this-that)%2F6e4%3Bbreak%3Bcase%5C%5C%5C%22hour%5C%5C%5C%22%3Aoutput%3D(this-that)%2F36e5%3Bbreak%3Bcase%5C%5C%5C%22day%5C%5C%5C%22%3Aoutput%3D(this-that-zoneDelta)%2F864e5%3Bbreak%3Bcase%5C%5C%5C%22week%5C%5C%5C%22%3Aoutput%3D(this-that-zoneDelta)%2F6048e5%3Bbreak%3Bdefault%3Aoutput%3Dthis-that%7Dreturn%20asFloat%3Foutput%3AabsFloor(output)%7Dfunction%20monthDiff(a%2Cb)%7Bvar%20wholeMonthDiff%3D(b.year()-a.year())*12%2B(b.month()-a.month())%2Canchor%3Da.clone().add(wholeMonthDiff%2C%5C%5C%5C%22months%5C%5C%5C%22)%2Canchor2%2Cadjust%3Bif(b-anchor%3C0)%7Banchor2%3Da.clone().add(wholeMonthDiff-1%2C%5C%5C%5C%22months%5C%5C%5C%22)%3Badjust%3D(b-anchor)%2F(anchor-anchor2)%7Delse%7Banchor2%3Da.clone().add(wholeMonthDiff%2B1%2C%5C%5C%5C%22months%5C%5C%5C%22)%3Badjust%3D(b-anchor)%2F(anchor2-anchor)%7Dreturn-(wholeMonthDiff%2Badjust)%7C%7C0%7Dhooks.defaultFormat%3D%5C%5C%5C%22YYYY-MM-DDTHH%3Amm%3AssZ%5C%5C%5C%22%3Bhooks.defaultFormatUtc%3D%5C%5C%5C%22YYYY-MM-DDTHH%3Amm%3Ass%5BZ%5D%5C%5C%5C%22%3Bfunction%20toString()%7Breturn%20this.clone().locale(%5C%5C%5C%22en%5C%5C%5C%22).format(%5C%5C%5C%22ddd%20MMM%20DD%20YYYY%20HH%3Amm%3Ass%20%5BGMT%5DZZ%5C%5C%5C%22)%7Dfunction%20toISOString()%7Bif(!this.isValid())%7Breturn%20null%7Dvar%20m%3Dthis.clone().utc()%3Bif(m.year()%3C0%7C%7Cm.year()%3E9999)%7Breturn%20formatMoment(m%2C%5C%5C%5C%22YYYYYY-MM-DD%5BT%5DHH%3Amm%3Ass.SSS%5BZ%5D%5C%5C%5C%22)%7Dif(isFunction(Date.prototype.toISOString))%7Breturn%20this.toDate().toISOString()%7Dreturn%20formatMoment(m%2C%5C%5C%5C%22YYYY-MM-DD%5BT%5DHH%3Amm%3Ass.SSS%5BZ%5D%5C%5C%5C%22)%7Dfunction%20inspect()%7Bif(!this.isValid())%7Breturn%5C%5C%5C%22moment.invalid(%2F*%20%5C%5C%5C%22%2Bthis._i%2B%5C%5C%5C%22%20*%2F)%5C%5C%5C%22%7Dvar%20func%3D%5C%5C%5C%22moment%5C%5C%5C%22%3Bvar%20zone%3D%5C%5C%5C%22%5C%5C%5C%22%3Bif(!this.isLocal())%7Bfunc%3Dthis.utcOffset()%3D%3D%3D0%3F%5C%5C%5C%22moment.utc%5C%5C%5C%22%3A%5C%5C%5C%22moment.parseZone%5C%5C%5C%22%3Bzone%3D%5C%5C%5C%22Z%5C%5C%5C%22%7Dvar%20prefix%3D%5C%5C%5C%22%5B%5C%5C%5C%22%2Bfunc%2B'(%5C%5C%5C%22%5D'%3Bvar%20year%3D0%3C%3Dthis.year()%26%26this.year()%3C%3D9999%3F%5C%5C%5C%22YYYY%5C%5C%5C%22%3A%5C%5C%5C%22YYYYYY%5C%5C%5C%22%3Bvar%20datetime%3D%5C%5C%5C%22-MM-DD%5BT%5DHH%3Amm%3Ass.SSS%5C%5C%5C%22%3Bvar%20suffix%3Dzone%2B'%5B%5C%5C%5C%22)%5D'%3Breturn%20this.format(prefix%2Byear%2Bdatetime%2Bsuffix)%7Dfunction%20format(inputString)%7Bif(!inputString)%7BinputString%3Dthis.isUtc()%3Fhooks.defaultFormatUtc%3Ahooks.defaultFormat%7Dvar%20output%3DformatMoment(this%2CinputString)%3Breturn%20this.localeData().postformat(output)%7Dfunction%20from(time%2CwithoutSuffix)%7Bif(this.isValid()%26%26(isMoment(time)%26%26time.isValid()%7C%7CcreateLocal(time).isValid()))%7Breturn%20createDuration(%7Bto%3Athis%2Cfrom%3Atime%7D).locale(this.locale()).humanize(!withoutSuffix)%7Delse%7Breturn%20this.localeData().invalidDate()%7D%7Dfunction%20fromNow(withoutSuffix)%7Breturn%20this.from(createLocal()%2CwithoutSuffix)%7Dfunction%20to(time%2CwithoutSuffix)%7Bif(this.isValid()%26%26(isMoment(time)%26%26time.isValid()%7C%7CcreateLocal(time).isValid()))%7Breturn%20createDuration(%7Bfrom%3Athis%2Cto%3Atime%7D).locale(this.locale()).humanize(!withoutSuffix)%7Delse%7Breturn%20this.localeData().invalidDate()%7D%7Dfunction%20toNow(withoutSuffix)%7Breturn%20this.to(createLocal()%2CwithoutSuffix)%7Dfunction%20locale(key)%7Bvar%20newLocaleData%3Bif(key%3D%3D%3Dundefined)%7Breturn%20this._locale._abbr%7Delse%7BnewLocaleData%3DgetLocale(key)%3Bif(newLocaleData!%3Dnull)%7Bthis._locale%3DnewLocaleData%7Dreturn%20this%7D%7Dvar%20lang%3Ddeprecate(%5C%5C%5C%22moment().lang()%20is%20deprecated.%20Instead%2C%20use%20moment().localeData()%20to%20get%20the%20language%20configuration.%20Use%20moment().locale()%20to%20change%20languages.%5C%5C%5C%22%2Cfunction(key)%7Bif(key%3D%3D%3Dundefined)%7Breturn%20this.localeData()%7Delse%7Breturn%20this.locale(key)%7D%7D)%3Bfunction%20localeData()%7Breturn%20this._locale%7Dfunction%20startOf(units)%7Bunits%3DnormalizeUnits(units)%3Bswitch(units)%7Bcase%5C%5C%5C%22year%5C%5C%5C%22%3Athis.month(0)%3Bcase%5C%5C%5C%22quarter%5C%5C%5C%22%3Acase%5C%5C%5C%22month%5C%5C%5C%22%3Athis.date(1)%3Bcase%5C%5C%5C%22week%5C%5C%5C%22%3Acase%5C%5C%5C%22isoWeek%5C%5C%5C%22%3Acase%5C%5C%5C%22day%5C%5C%5C%22%3Acase%5C%5C%5C%22date%5C%5C%5C%22%3Athis.hours(0)%3Bcase%5C%5C%5C%22hour%5C%5C%5C%22%3Athis.minutes(0)%3Bcase%5C%5C%5C%22minute%5C%5C%5C%22%3Athis.seconds(0)%3Bcase%5C%5C%5C%22second%5C%5C%5C%22%3Athis.milliseconds(0)%7Dif(units%3D%3D%3D%5C%5C%5C%22week%5C%5C%5C%22)%7Bthis.weekday(0)%7Dif(units%3D%3D%3D%5C%5C%5C%22isoWeek%5C%5C%5C%22)%7Bthis.isoWeekday(1)%7Dif(units%3D%3D%3D%5C%5C%5C%22quarter%5C%5C%5C%22)%7Bthis.month(Math.floor(this.month()%2F3)*3)%7Dreturn%20this%7Dfunction%20endOf(units)%7Bunits%3DnormalizeUnits(units)%3Bif(units%3D%3D%3Dundefined%7C%7Cunits%3D%3D%3D%5C%5C%5C%22millisecond%5C%5C%5C%22)%7Breturn%20this%7Dif(units%3D%3D%3D%5C%5C%5C%22date%5C%5C%5C%22)%7Bunits%3D%5C%5C%5C%22day%5C%5C%5C%22%7Dreturn%20this.startOf(units).add(1%2Cunits%3D%3D%3D%5C%5C%5C%22isoWeek%5C%5C%5C%22%3F%5C%5C%5C%22week%5C%5C%5C%22%3Aunits).subtract(1%2C%5C%5C%5C%22ms%5C%5C%5C%22)%7Dfunction%20valueOf()%7Breturn%20this._d.valueOf()-(this._offset%7C%7C0)*6e4%7Dfunction%20unix()%7Breturn%20Math.floor(this.valueOf()%2F1e3)%7Dfunction%20toDate()%7Breturn%20new%20Date(this.valueOf())%7Dfunction%20toArray()%7Bvar%20m%3Dthis%3Breturn%5Bm.year()%2Cm.month()%2Cm.date()%2Cm.hour()%2Cm.minute()%2Cm.second()%2Cm.millisecond()%5D%7Dfunction%20toObject()%7Bvar%20m%3Dthis%3Breturn%7Byears%3Am.year()%2Cmonths%3Am.month()%2Cdate%3Am.date()%2Chours%3Am.hours()%2Cminutes%3Am.minutes()%2Cseconds%3Am.seconds()%2Cmilliseconds%3Am.milliseconds()%7D%7Dfunction%20toJSON()%7Breturn%20this.isValid()%3Fthis.toISOString()%3Anull%7Dfunction%20isValid%242()%7Breturn%20isValid(this)%7Dfunction%20parsingFlags()%7Breturn%20extend(%7B%7D%2CgetParsingFlags(this))%7Dfunction%20invalidAt()%7Breturn%20getParsingFlags(this).overflow%7Dfunction%20creationData()%7Breturn%7Binput%3Athis._i%2Cformat%3Athis._f%2Clocale%3Athis._locale%2CisUTC%3Athis._isUTC%2Cstrict%3Athis._strict%7D%7DaddFormatToken(0%2C%5B%5C%5C%5C%22gg%5C%5C%5C%22%2C2%5D%2C0%2Cfunction()%7Breturn%20this.weekYear()%25100%7D)%3BaddFormatToken(0%2C%5B%5C%5C%5C%22GG%5C%5C%5C%22%2C2%5D%2C0%2Cfunction()%7Breturn%20this.isoWeekYear()%25100%7D)%3Bfunction%20addWeekYearFormatToken(token%2Cgetter)%7BaddFormatToken(0%2C%5Btoken%2Ctoken.length%5D%2C0%2Cgetter)%7DaddWeekYearFormatToken(%5C%5C%5C%22gggg%5C%5C%5C%22%2C%5C%5C%5C%22weekYear%5C%5C%5C%22)%3BaddWeekYearFormatToken(%5C%5C%5C%22ggggg%5C%5C%5C%22%2C%5C%5C%5C%22weekYear%5C%5C%5C%22)%3BaddWeekYearFormatToken(%5C%5C%5C%22GGGG%5C%5C%5C%22%2C%5C%5C%5C%22isoWeekYear%5C%5C%5C%22)%3BaddWeekYearFormatToken(%5C%5C%5C%22GGGGG%5C%5C%5C%22%2C%5C%5C%5C%22isoWeekYear%5C%5C%5C%22)%3BaddUnitAlias(%5C%5C%5C%22weekYear%5C%5C%5C%22%2C%5C%5C%5C%22gg%5C%5C%5C%22)%3BaddUnitAlias(%5C%5C%5C%22isoWeekYear%5C%5C%5C%22%2C%5C%5C%5C%22GG%5C%5C%5C%22)%3BaddUnitPriority(%5C%5C%5C%22weekYear%5C%5C%5C%22%2C1)%3BaddUnitPriority(%5C%5C%5C%22isoWeekYear%5C%5C%5C%22%2C1)%3BaddRegexToken(%5C%5C%5C%22G%5C%5C%5C%22%2CmatchSigned)%3BaddRegexToken(%5C%5C%5C%22g%5C%5C%5C%22%2CmatchSigned)%3BaddRegexToken(%5C%5C%5C%22GG%5C%5C%5C%22%2Cmatch1to2%2Cmatch2)%3BaddRegexToken(%5C%5C%5C%22gg%5C%5C%5C%22%2Cmatch1to2%2Cmatch2)%3BaddRegexToken(%5C%5C%5C%22GGGG%5C%5C%5C%22%2Cmatch1to4%2Cmatch4)%3BaddRegexToken(%5C%5C%5C%22gggg%5C%5C%5C%22%2Cmatch1to4%2Cmatch4)%3BaddRegexToken(%5C%5C%5C%22GGGGG%5C%5C%5C%22%2Cmatch1to6%2Cmatch6)%3BaddRegexToken(%5C%5C%5C%22ggggg%5C%5C%5C%22%2Cmatch1to6%2Cmatch6)%3BaddWeekParseToken(%5B%5C%5C%5C%22gggg%5C%5C%5C%22%2C%5C%5C%5C%22ggggg%5C%5C%5C%22%2C%5C%5C%5C%22GGGG%5C%5C%5C%22%2C%5C%5C%5C%22GGGGG%5C%5C%5C%22%5D%2Cfunction(input%2Cweek%2Cconfig%2Ctoken)%7Bweek%5Btoken.substr(0%2C2)%5D%3DtoInt(input)%7D)%3BaddWeekParseToken(%5B%5C%5C%5C%22gg%5C%5C%5C%22%2C%5C%5C%5C%22GG%5C%5C%5C%22%5D%2Cfunction(input%2Cweek%2Cconfig%2Ctoken)%7Bweek%5Btoken%5D%3Dhooks.parseTwoDigitYear(input)%7D)%3Bfunction%20getSetWeekYear(input)%7Breturn%20getSetWeekYearHelper.call(this%2Cinput%2Cthis.week()%2Cthis.weekday()%2Cthis.localeData()._week.dow%2Cthis.localeData()._week.doy)%7Dfunction%20getSetISOWeekYear(input)%7Breturn%20getSetWeekYearHelper.call(this%2Cinput%2Cthis.isoWeek()%2Cthis.isoWeekday()%2C1%2C4)%7Dfunction%20getISOWeeksInYear()%7Breturn%20weeksInYear(this.year()%2C1%2C4)%7Dfunction%20getWeeksInYear()%7Bvar%20weekInfo%3Dthis.localeData()._week%3Breturn%20weeksInYear(this.year()%2CweekInfo.dow%2CweekInfo.doy)%7Dfunction%20getSetWeekYearHelper(input%2Cweek%2Cweekday%2Cdow%2Cdoy)%7Bvar%20weeksTarget%3Bif(input%3D%3Dnull)%7Breturn%20weekOfYear(this%2Cdow%2Cdoy).year%7Delse%7BweeksTarget%3DweeksInYear(input%2Cdow%2Cdoy)%3Bif(week%3EweeksTarget)%7Bweek%3DweeksTarget%7Dreturn%20setWeekAll.call(this%2Cinput%2Cweek%2Cweekday%2Cdow%2Cdoy)%7D%7Dfunction%20setWeekAll(weekYear%2Cweek%2Cweekday%2Cdow%2Cdoy)%7Bvar%20dayOfYearData%3DdayOfYearFromWeeks(weekYear%2Cweek%2Cweekday%2Cdow%2Cdoy)%2Cdate%3DcreateUTCDate(dayOfYearData.year%2C0%2CdayOfYearData.dayOfYear)%3Bthis.year(date.getUTCFullYear())%3Bthis.month(date.getUTCMonth())%3Bthis.date(date.getUTCDate())%3Breturn%20this%7DaddFormatToken(%5C%5C%5C%22Q%5C%5C%5C%22%2C0%2C%5C%5C%5C%22Qo%5C%5C%5C%22%2C%5C%5C%5C%22quarter%5C%5C%5C%22)%3BaddUnitAlias(%5C%5C%5C%22quarter%5C%5C%5C%22%2C%5C%5C%5C%22Q%5C%5C%5C%22)%3BaddUnitPriority(%5C%5C%5C%22quarter%5C%5C%5C%22%2C7)%3BaddRegexToken(%5C%5C%5C%22Q%5C%5C%5C%22%2Cmatch1)%3BaddParseToken(%5C%5C%5C%22Q%5C%5C%5C%22%2Cfunction(input%2Carray)%7Barray%5BMONTH%5D%3D(toInt(input)-1)*3%7D)%3Bfunction%20getSetQuarter(input)%7Breturn%20input%3D%3Dnull%3FMath.ceil((this.month()%2B1)%2F3)%3Athis.month((input-1)*3%2Bthis.month()%253)%7DaddFormatToken(%5C%5C%5C%22D%5C%5C%5C%22%2C%5B%5C%5C%5C%22DD%5C%5C%5C%22%2C2%5D%2C%5C%5C%5C%22Do%5C%5C%5C%22%2C%5C%5C%5C%22date%5C%5C%5C%22)%3BaddUnitAlias(%5C%5C%5C%22date%5C%5C%5C%22%2C%5C%5C%5C%22D%5C%5C%5C%22)%3BaddUnitPriority(%5C%5C%5C%22date%5C%5C%5C%22%2C9)%3BaddRegexToken(%5C%5C%5C%22D%5C%5C%5C%22%2Cmatch1to2)%3BaddRegexToken(%5C%5C%5C%22DD%5C%5C%5C%22%2Cmatch1to2%2Cmatch2)%3BaddRegexToken(%5C%5C%5C%22Do%5C%5C%5C%22%2Cfunction(isStrict%2Clocale)%7Breturn%20isStrict%3Flocale._dayOfMonthOrdinalParse%7C%7Clocale._ordinalParse%3Alocale._dayOfMonthOrdinalParseLenient%7D)%3BaddParseToken(%5B%5C%5C%5C%22D%5C%5C%5C%22%2C%5C%5C%5C%22DD%5C%5C%5C%22%5D%2CDATE)%3BaddParseToken(%5C%5C%5C%22Do%5C%5C%5C%22%2Cfunction(input%2Carray)%7Barray%5BDATE%5D%3DtoInt(input.match(match1to2)%5B0%5D%2C10)%7D)%3Bvar%20getSetDayOfMonth%3DmakeGetSet(%5C%5C%5C%22Date%5C%5C%5C%22%2Ctrue)%3BaddFormatToken(%5C%5C%5C%22DDD%5C%5C%5C%22%2C%5B%5C%5C%5C%22DDDD%5C%5C%5C%22%2C3%5D%2C%5C%5C%5C%22DDDo%5C%5C%5C%22%2C%5C%5C%5C%22dayOfYear%5C%5C%5C%22)%3BaddUnitAlias(%5C%5C%5C%22dayOfYear%5C%5C%5C%22%2C%5C%5C%5C%22DDD%5C%5C%5C%22)%3BaddUnitPriority(%5C%5C%5C%22dayOfYear%5C%5C%5C%22%2C4)%3BaddRegexToken(%5C%5C%5C%22DDD%5C%5C%5C%22%2Cmatch1to3)%3BaddRegexToken(%5C%5C%5C%22DDDD%5C%5C%5C%22%2Cmatch3)%3BaddParseToken(%5B%5C%5C%5C%22DDD%5C%5C%5C%22%2C%5C%5C%5C%22DDDD%5C%5C%5C%22%5D%2Cfunction(input%2Carray%2Cconfig)%7Bconfig._dayOfYear%3DtoInt(input)%7D)%3Bfunction%20getSetDayOfYear(input)%7Bvar%20dayOfYear%3DMath.round((this.clone().startOf(%5C%5C%5C%22day%5C%5C%5C%22)-this.clone().startOf(%5C%5C%5C%22year%5C%5C%5C%22))%2F864e5)%2B1%3Breturn%20input%3D%3Dnull%3FdayOfYear%3Athis.add(input-dayOfYear%2C%5C%5C%5C%22d%5C%5C%5C%22)%7DaddFormatToken(%5C%5C%5C%22m%5C%5C%5C%22%2C%5B%5C%5C%5C%22mm%5C%5C%5C%22%2C2%5D%2C0%2C%5C%5C%5C%22minute%5C%5C%5C%22)%3BaddUnitAlias(%5C%5C%5C%22minute%5C%5C%5C%22%2C%5C%5C%5C%22m%5C%5C%5C%22)%3BaddUnitPriority(%5C%5C%5C%22minute%5C%5C%5C%22%2C14)%3BaddRegexToken(%5C%5C%5C%22m%5C%5C%5C%22%2Cmatch1to2)%3BaddRegexToken(%5C%5C%5C%22mm%5C%5C%5C%22%2Cmatch1to2%2Cmatch2)%3BaddParseToken(%5B%5C%5C%5C%22m%5C%5C%5C%22%2C%5C%5C%5C%22mm%5C%5C%5C%22%5D%2CMINUTE)%3Bvar%20getSetMinute%3DmakeGetSet(%5C%5C%5C%22Minutes%5C%5C%5C%22%2Cfalse)%3BaddFormatToken(%5C%5C%5C%22s%5C%5C%5C%22%2C%5B%5C%5C%5C%22ss%5C%5C%5C%22%2C2%5D%2C0%2C%5C%5C%5C%22second%5C%5C%5C%22)%3BaddUnitAlias(%5C%5C%5C%22second%5C%5C%5C%22%2C%5C%5C%5C%22s%5C%5C%5C%22)%3BaddUnitPriority(%5C%5C%5C%22second%5C%5C%5C%22%2C15)%3BaddRegexToken(%5C%5C%5C%22s%5C%5C%5C%22%2Cmatch1to2)%3BaddRegexToken(%5C%5C%5C%22ss%5C%5C%5C%22%2Cmatch1to2%2Cmatch2)%3BaddParseToken(%5B%5C%5C%5C%22s%5C%5C%5C%22%2C%5C%5C%5C%22ss%5C%5C%5C%22%5D%2CSECOND)%3Bvar%20getSetSecond%3DmakeGetSet(%5C%5C%5C%22Seconds%5C%5C%5C%22%2Cfalse)%3BaddFormatToken(%5C%5C%5C%22S%5C%5C%5C%22%2C0%2C0%2Cfunction()%7Breturn~~(this.millisecond()%2F100)%7D)%3BaddFormatToken(0%2C%5B%5C%5C%5C%22SS%5C%5C%5C%22%2C2%5D%2C0%2Cfunction()%7Breturn~~(this.millisecond()%2F10)%7D)%3BaddFormatToken(0%2C%5B%5C%5C%5C%22SSS%5C%5C%5C%22%2C3%5D%2C0%2C%5C%5C%5C%22millisecond%5C%5C%5C%22)%3BaddFormatToken(0%2C%5B%5C%5C%5C%22SSSS%5C%5C%5C%22%2C4%5D%2C0%2Cfunction()%7Breturn%20this.millisecond()*10%7D)%3BaddFormatToken(0%2C%5B%5C%5C%5C%22SSSSS%5C%5C%5C%22%2C5%5D%2C0%2Cfunction()%7Breturn%20this.millisecond()*100%7D)%3BaddFormatToken(0%2C%5B%5C%5C%5C%22SSSSSS%5C%5C%5C%22%2C6%5D%2C0%2Cfunction()%7Breturn%20this.millisecond()*1e3%7D)%3BaddFormatToken(0%2C%5B%5C%5C%5C%22SSSSSSS%5C%5C%5C%22%2C7%5D%2C0%2Cfunction()%7Breturn%20this.millisecond()*1e4%7D)%3BaddFormatToken(0%2C%5B%5C%5C%5C%22SSSSSSSS%5C%5C%5C%22%2C8%5D%2C0%2Cfunction()%7Breturn%20this.millisecond()*1e5%7D)%3BaddFormatToken(0%2C%5B%5C%5C%5C%22SSSSSSSSS%5C%5C%5C%22%2C9%5D%2C0%2Cfunction()%7Breturn%20this.millisecond()*1e6%7D)%3BaddUnitAlias(%5C%5C%5C%22millisecond%5C%5C%5C%22%2C%5C%5C%5C%22ms%5C%5C%5C%22)%3BaddUnitPriority(%5C%5C%5C%22millisecond%5C%5C%5C%22%2C16)%3BaddRegexToken(%5C%5C%5C%22S%5C%5C%5C%22%2Cmatch1to3%2Cmatch1)%3BaddRegexToken(%5C%5C%5C%22SS%5C%5C%5C%22%2Cmatch1to3%2Cmatch2)%3BaddRegexToken(%5C%5C%5C%22SSS%5C%5C%5C%22%2Cmatch1to3%2Cmatch3)%3Bvar%20token%3Bfor(token%3D%5C%5C%5C%22SSSS%5C%5C%5C%22%3Btoken.length%3C%3D9%3Btoken%2B%3D%5C%5C%5C%22S%5C%5C%5C%22)%7BaddRegexToken(token%2CmatchUnsigned)%7Dfunction%20parseMs(input%2Carray)%7Barray%5BMILLISECOND%5D%3DtoInt((%5C%5C%5C%220.%5C%5C%5C%22%2Binput)*1e3)%7Dfor(token%3D%5C%5C%5C%22S%5C%5C%5C%22%3Btoken.length%3C%3D9%3Btoken%2B%3D%5C%5C%5C%22S%5C%5C%5C%22)%7BaddParseToken(token%2CparseMs)%7Dvar%20getSetMillisecond%3DmakeGetSet(%5C%5C%5C%22Milliseconds%5C%5C%5C%22%2Cfalse)%3BaddFormatToken(%5C%5C%5C%22z%5C%5C%5C%22%2C0%2C0%2C%5C%5C%5C%22zoneAbbr%5C%5C%5C%22)%3BaddFormatToken(%5C%5C%5C%22zz%5C%5C%5C%22%2C0%2C0%2C%5C%5C%5C%22zoneName%5C%5C%5C%22)%3Bfunction%20getZoneAbbr()%7Breturn%20this._isUTC%3F%5C%5C%5C%22UTC%5C%5C%5C%22%3A%5C%5C%5C%22%5C%5C%5C%22%7Dfunction%20getZoneName()%7Breturn%20this._isUTC%3F%5C%5C%5C%22Coordinated%20Universal%20Time%5C%5C%5C%22%3A%5C%5C%5C%22%5C%5C%5C%22%7Dvar%20proto%3DMoment.prototype%3Bproto.add%3Dadd%3Bproto.calendar%3Dcalendar%241%3Bproto.clone%3Dclone%3Bproto.diff%3Ddiff%3Bproto.endOf%3DendOf%3Bproto.format%3Dformat%3Bproto.from%3Dfrom%3Bproto.fromNow%3DfromNow%3Bproto.to%3Dto%3Bproto.toNow%3DtoNow%3Bproto.get%3DstringGet%3Bproto.invalidAt%3DinvalidAt%3Bproto.isAfter%3DisAfter%3Bproto.isBefore%3DisBefore%3Bproto.isBetween%3DisBetween%3Bproto.isSame%3DisSame%3Bproto.isSameOrAfter%3DisSameOrAfter%3Bproto.isSameOrBefore%3DisSameOrBefore%3Bproto.isValid%3DisValid%242%3Bproto.lang%3Dlang%3Bproto.locale%3Dlocale%3Bproto.localeData%3DlocaleData%3Bproto.max%3DprototypeMax%3Bproto.min%3DprototypeMin%3Bproto.parsingFlags%3DparsingFlags%3Bproto.set%3DstringSet%3Bproto.startOf%3DstartOf%3Bproto.subtract%3Dsubtract%3Bproto.toArray%3DtoArray%3Bproto.toObject%3DtoObject%3Bproto.toDate%3DtoDate%3Bproto.toISOString%3DtoISOString%3Bproto.inspect%3Dinspect%3Bproto.toJSON%3DtoJSON%3Bproto.toString%3DtoString%3Bproto.unix%3Dunix%3Bproto.valueOf%3DvalueOf%3Bproto.creationData%3DcreationData%3Bproto.year%3DgetSetYear%3Bproto.isLeapYear%3DgetIsLeapYear%3Bproto.weekYear%3DgetSetWeekYear%3Bproto.isoWeekYear%3DgetSetISOWeekYear%3Bproto.quarter%3Dproto.quarters%3DgetSetQuarter%3Bproto.month%3DgetSetMonth%3Bproto.daysInMonth%3DgetDaysInMonth%3Bproto.week%3Dproto.weeks%3DgetSetWeek%3Bproto.isoWeek%3Dproto.isoWeeks%3DgetSetISOWeek%3Bproto.weeksInYear%3DgetWeeksInYear%3Bproto.isoWeeksInYear%3DgetISOWeeksInYear%3Bproto.date%3DgetSetDayOfMonth%3Bproto.day%3Dproto.days%3DgetSetDayOfWeek%3Bproto.weekday%3DgetSetLocaleDayOfWeek%3Bproto.isoWeekday%3DgetSetISODayOfWeek%3Bproto.dayOfYear%3DgetSetDayOfYear%3Bproto.hour%3Dproto.hours%3DgetSetHour%3Bproto.minute%3Dproto.minutes%3DgetSetMinute%3Bproto.second%3Dproto.seconds%3DgetSetSecond%3Bproto.millisecond%3Dproto.milliseconds%3DgetSetMillisecond%3Bproto.utcOffset%3DgetSetOffset%3Bproto.utc%3DsetOffsetToUTC%3Bproto.local%3DsetOffsetToLocal%3Bproto.parseZone%3DsetOffsetToParsedOffset%3Bproto.hasAlignedHourOffset%3DhasAlignedHourOffset%3Bproto.isDST%3DisDaylightSavingTime%3Bproto.isLocal%3DisLocal%3Bproto.isUtcOffset%3DisUtcOffset%3Bproto.isUtc%3DisUtc%3Bproto.isUTC%3DisUtc%3Bproto.zoneAbbr%3DgetZoneAbbr%3Bproto.zoneName%3DgetZoneName%3Bproto.dates%3Ddeprecate(%5C%5C%5C%22dates%20accessor%20is%20deprecated.%20Use%20date%20instead.%5C%5C%5C%22%2CgetSetDayOfMonth)%3Bproto.months%3Ddeprecate(%5C%5C%5C%22months%20accessor%20is%20deprecated.%20Use%20month%20instead%5C%5C%5C%22%2CgetSetMonth)%3Bproto.years%3Ddeprecate(%5C%5C%5C%22years%20accessor%20is%20deprecated.%20Use%20year%20instead%5C%5C%5C%22%2CgetSetYear)%3Bproto.zone%3Ddeprecate(%5C%5C%5C%22moment().zone%20is%20deprecated%2C%20use%20moment().utcOffset%20instead.%20http%3A%2F%2Fmomentjs.com%2Fguides%2F%23%2Fwarnings%2Fzone%2F%5C%5C%5C%22%2CgetSetZone)%3Bproto.isDSTShifted%3Ddeprecate(%5C%5C%5C%22isDSTShifted%20is%20deprecated.%20See%20http%3A%2F%2Fmomentjs.com%2Fguides%2F%23%2Fwarnings%2Fdst-shifted%2F%20for%20more%20information%5C%5C%5C%22%2CisDaylightSavingTimeShifted)%3Bfunction%20createUnix(input)%7Breturn%20createLocal(input*1e3)%7Dfunction%20createInZone()%7Breturn%20createLocal.apply(null%2Carguments).parseZone()%7Dfunction%20preParsePostFormat(string)%7Breturn%20string%7Dvar%20proto%241%3DLocale.prototype%3Bproto%241.calendar%3Dcalendar%3Bproto%241.longDateFormat%3DlongDateFormat%3Bproto%241.invalidDate%3DinvalidDate%3Bproto%241.ordinal%3Dordinal%3Bproto%241.preparse%3DpreParsePostFormat%3Bproto%241.postformat%3DpreParsePostFormat%3Bproto%241.relativeTime%3DrelativeTime%3Bproto%241.pastFuture%3DpastFuture%3Bproto%241.set%3Dset%3Bproto%241.months%3DlocaleMonths%3Bproto%241.monthsShort%3DlocaleMonthsShort%3Bproto%241.monthsParse%3DlocaleMonthsParse%3Bproto%241.monthsRegex%3DmonthsRegex%3Bproto%241.monthsShortRegex%3DmonthsShortRegex%3Bproto%241.week%3DlocaleWeek%3Bproto%241.firstDayOfYear%3DlocaleFirstDayOfYear%3Bproto%241.firstDayOfWeek%3DlocaleFirstDayOfWeek%3Bproto%241.weekdays%3DlocaleWeekdays%3Bproto%241.weekdaysMin%3DlocaleWeekdaysMin%3Bproto%241.weekdaysShort%3DlocaleWeekdaysShort%3Bproto%241.weekdaysParse%3DlocaleWeekdaysParse%3Bproto%241.weekdaysRegex%3DweekdaysRegex%3Bproto%241.weekdaysShortRegex%3DweekdaysShortRegex%3Bproto%241.weekdaysMinRegex%3DweekdaysMinRegex%3Bproto%241.isPM%3DlocaleIsPM%3Bproto%241.meridiem%3DlocaleMeridiem%3Bfunction%20get%241(format%2Cindex%2Cfield%2Csetter)%7Bvar%20locale%3DgetLocale()%3Bvar%20utc%3DcreateUTC().set(setter%2Cindex)%3Breturn%20locale%5Bfield%5D(utc%2Cformat)%7Dfunction%20listMonthsImpl(format%2Cindex%2Cfield)%7Bif(isNumber(format))%7Bindex%3Dformat%3Bformat%3Dundefined%7Dformat%3Dformat%7C%7C%5C%5C%5C%22%5C%5C%5C%22%3Bif(index!%3Dnull)%7Breturn%20get%241(format%2Cindex%2Cfield%2C%5C%5C%5C%22month%5C%5C%5C%22)%7Dvar%20i%3Bvar%20out%3D%5B%5D%3Bfor(i%3D0%3Bi%3C12%3Bi%2B%2B)%7Bout%5Bi%5D%3Dget%241(format%2Ci%2Cfield%2C%5C%5C%5C%22month%5C%5C%5C%22)%7Dreturn%20out%7Dfunction%20listWeekdaysImpl(localeSorted%2Cformat%2Cindex%2Cfield)%7Bif(typeof%20localeSorted%3D%3D%3D%5C%5C%5C%22boolean%5C%5C%5C%22)%7Bif(isNumber(format))%7Bindex%3Dformat%3Bformat%3Dundefined%7Dformat%3Dformat%7C%7C%5C%5C%5C%22%5C%5C%5C%22%7Delse%7Bformat%3DlocaleSorted%3Bindex%3Dformat%3BlocaleSorted%3Dfalse%3Bif(isNumber(format))%7Bindex%3Dformat%3Bformat%3Dundefined%7Dformat%3Dformat%7C%7C%5C%5C%5C%22%5C%5C%5C%22%7Dvar%20locale%3DgetLocale()%2Cshift%3DlocaleSorted%3Flocale._week.dow%3A0%3Bif(index!%3Dnull)%7Breturn%20get%241(format%2C(index%2Bshift)%257%2Cfield%2C%5C%5C%5C%22day%5C%5C%5C%22)%7Dvar%20i%3Bvar%20out%3D%5B%5D%3Bfor(i%3D0%3Bi%3C7%3Bi%2B%2B)%7Bout%5Bi%5D%3Dget%241(format%2C(i%2Bshift)%257%2Cfield%2C%5C%5C%5C%22day%5C%5C%5C%22)%7Dreturn%20out%7Dfunction%20listMonths(format%2Cindex)%7Breturn%20listMonthsImpl(format%2Cindex%2C%5C%5C%5C%22months%5C%5C%5C%22)%7Dfunction%20listMonthsShort(format%2Cindex)%7Breturn%20listMonthsImpl(format%2Cindex%2C%5C%5C%5C%22monthsShort%5C%5C%5C%22)%7Dfunction%20listWeekdays(localeSorted%2Cformat%2Cindex)%7Breturn%20listWeekdaysImpl(localeSorted%2Cformat%2Cindex%2C%5C%5C%5C%22weekdays%5C%5C%5C%22)%7Dfunction%20listWeekdaysShort(localeSorted%2Cformat%2Cindex)%7Breturn%20listWeekdaysImpl(localeSorted%2Cformat%2Cindex%2C%5C%5C%5C%22weekdaysShort%5C%5C%5C%22)%7Dfunction%20listWeekdaysMin(localeSorted%2Cformat%2Cindex)%7Breturn%20listWeekdaysImpl(localeSorted%2Cformat%2Cindex%2C%5C%5C%5C%22weekdaysMin%5C%5C%5C%22)%7DgetSetGlobalLocale(%5C%5C%5C%22en%5C%5C%5C%22%2C%7BdayOfMonthOrdinalParse%3A%2F%5C%5C%5C%5Cd%7B1%2C2%7D(th%7Cst%7Cnd%7Crd)%2F%2Cordinal%3Afunction(number)%7Bvar%20b%3Dnumber%2510%2Coutput%3DtoInt(number%25100%2F10)%3D%3D%3D1%3F%5C%5C%5C%22th%5C%5C%5C%22%3Ab%3D%3D%3D1%3F%5C%5C%5C%22st%5C%5C%5C%22%3Ab%3D%3D%3D2%3F%5C%5C%5C%22nd%5C%5C%5C%22%3Ab%3D%3D%3D3%3F%5C%5C%5C%22rd%5C%5C%5C%22%3A%5C%5C%5C%22th%5C%5C%5C%22%3Breturn%20number%2Boutput%7D%7D)%3Bhooks.lang%3Ddeprecate(%5C%5C%5C%22moment.lang%20is%20deprecated.%20Use%20moment.locale%20instead.%5C%5C%5C%22%2CgetSetGlobalLocale)%3Bhooks.langData%3Ddeprecate(%5C%5C%5C%22moment.langData%20is%20deprecated.%20Use%20moment.localeData%20instead.%5C%5C%5C%22%2CgetLocale)%3Bvar%20mathAbs%3DMath.abs%3Bfunction%20abs()%7Bvar%20data%3Dthis._data%3Bthis._milliseconds%3DmathAbs(this._milliseconds)%3Bthis._days%3DmathAbs(this._days)%3Bthis._months%3DmathAbs(this._months)%3Bdata.milliseconds%3DmathAbs(data.milliseconds)%3Bdata.seconds%3DmathAbs(data.seconds)%3Bdata.minutes%3DmathAbs(data.minutes)%3Bdata.hours%3DmathAbs(data.hours)%3Bdata.months%3DmathAbs(data.months)%3Bdata.years%3DmathAbs(data.years)%3Breturn%20this%7Dfunction%20addSubtract%241(duration%2Cinput%2Cvalue%2Cdirection)%7Bvar%20other%3DcreateDuration(input%2Cvalue)%3Bduration._milliseconds%2B%3Ddirection*other._milliseconds%3Bduration._days%2B%3Ddirection*other._days%3Bduration._months%2B%3Ddirection*other._months%3Breturn%20duration._bubble()%7Dfunction%20add%241(input%2Cvalue)%7Breturn%20addSubtract%241(this%2Cinput%2Cvalue%2C1)%7Dfunction%20subtract%241(input%2Cvalue)%7Breturn%20addSubtract%241(this%2Cinput%2Cvalue%2C-1)%7Dfunction%20absCeil(number)%7Bif(number%3C0)%7Breturn%20Math.floor(number)%7Delse%7Breturn%20Math.ceil(number)%7D%7Dfunction%20bubble()%7Bvar%20milliseconds%3Dthis._milliseconds%3Bvar%20days%3Dthis._days%3Bvar%20months%3Dthis._months%3Bvar%20data%3Dthis._data%3Bvar%20seconds%2Cminutes%2Chours%2Cyears%2CmonthsFromDays%3Bif(!(milliseconds%3E%3D0%26%26days%3E%3D0%26%26months%3E%3D0%7C%7Cmilliseconds%3C%3D0%26%26days%3C%3D0%26%26months%3C%3D0))%7Bmilliseconds%2B%3DabsCeil(monthsToDays(months)%2Bdays)*864e5%3Bdays%3D0%3Bmonths%3D0%7Ddata.milliseconds%3Dmilliseconds%251e3%3Bseconds%3DabsFloor(milliseconds%2F1e3)%3Bdata.seconds%3Dseconds%2560%3Bminutes%3DabsFloor(seconds%2F60)%5C%5Cn%3Bdata.minutes%3Dminutes%2560%3Bhours%3DabsFloor(minutes%2F60)%3Bdata.hours%3Dhours%2524%3Bdays%2B%3DabsFloor(hours%2F24)%3BmonthsFromDays%3DabsFloor(daysToMonths(days))%3Bmonths%2B%3DmonthsFromDays%3Bdays-%3DabsCeil(monthsToDays(monthsFromDays))%3Byears%3DabsFloor(months%2F12)%3Bmonths%25%3D12%3Bdata.days%3Ddays%3Bdata.months%3Dmonths%3Bdata.years%3Dyears%3Breturn%20this%7Dfunction%20daysToMonths(days)%7Breturn%20days*4800%2F146097%7Dfunction%20monthsToDays(months)%7Breturn%20months*146097%2F4800%7Dfunction%20as(units)%7Bif(!this.isValid())%7Breturn%20NaN%7Dvar%20days%3Bvar%20months%3Bvar%20milliseconds%3Dthis._milliseconds%3Bunits%3DnormalizeUnits(units)%3Bif(units%3D%3D%3D%5C%5C%5C%22month%5C%5C%5C%22%7C%7Cunits%3D%3D%3D%5C%5C%5C%22year%5C%5C%5C%22)%7Bdays%3Dthis._days%2Bmilliseconds%2F864e5%3Bmonths%3Dthis._months%2BdaysToMonths(days)%3Breturn%20units%3D%3D%3D%5C%5C%5C%22month%5C%5C%5C%22%3Fmonths%3Amonths%2F12%7Delse%7Bdays%3Dthis._days%2BMath.round(monthsToDays(this._months))%3Bswitch(units)%7Bcase%5C%5C%5C%22week%5C%5C%5C%22%3Areturn%20days%2F7%2Bmilliseconds%2F6048e5%3Bcase%5C%5C%5C%22day%5C%5C%5C%22%3Areturn%20days%2Bmilliseconds%2F864e5%3Bcase%5C%5C%5C%22hour%5C%5C%5C%22%3Areturn%20days*24%2Bmilliseconds%2F36e5%3Bcase%5C%5C%5C%22minute%5C%5C%5C%22%3Areturn%20days*1440%2Bmilliseconds%2F6e4%3Bcase%5C%5C%5C%22second%5C%5C%5C%22%3Areturn%20days*86400%2Bmilliseconds%2F1e3%3Bcase%5C%5C%5C%22millisecond%5C%5C%5C%22%3Areturn%20Math.floor(days*864e5)%2Bmilliseconds%3Bdefault%3Athrow%20new%20Error(%5C%5C%5C%22Unknown%20unit%20%5C%5C%5C%22%2Bunits)%7D%7D%7Dfunction%20valueOf%241()%7Bif(!this.isValid())%7Breturn%20NaN%7Dreturn%20this._milliseconds%2Bthis._days*864e5%2Bthis._months%2512*2592e6%2BtoInt(this._months%2F12)*31536e6%7Dfunction%20makeAs(alias)%7Breturn%20function()%7Breturn%20this.as(alias)%7D%7Dvar%20asMilliseconds%3DmakeAs(%5C%5C%5C%22ms%5C%5C%5C%22)%3Bvar%20asSeconds%3DmakeAs(%5C%5C%5C%22s%5C%5C%5C%22)%3Bvar%20asMinutes%3DmakeAs(%5C%5C%5C%22m%5C%5C%5C%22)%3Bvar%20asHours%3DmakeAs(%5C%5C%5C%22h%5C%5C%5C%22)%3Bvar%20asDays%3DmakeAs(%5C%5C%5C%22d%5C%5C%5C%22)%3Bvar%20asWeeks%3DmakeAs(%5C%5C%5C%22w%5C%5C%5C%22)%3Bvar%20asMonths%3DmakeAs(%5C%5C%5C%22M%5C%5C%5C%22)%3Bvar%20asYears%3DmakeAs(%5C%5C%5C%22y%5C%5C%5C%22)%3Bfunction%20clone%241()%7Breturn%20createDuration(this)%7Dfunction%20get%242(units)%7Bunits%3DnormalizeUnits(units)%3Breturn%20this.isValid()%3Fthis%5Bunits%2B%5C%5C%5C%22s%5C%5C%5C%22%5D()%3ANaN%7Dfunction%20makeGetter(name)%7Breturn%20function()%7Breturn%20this.isValid()%3Fthis._data%5Bname%5D%3ANaN%7D%7Dvar%20milliseconds%3DmakeGetter(%5C%5C%5C%22milliseconds%5C%5C%5C%22)%3Bvar%20seconds%3DmakeGetter(%5C%5C%5C%22seconds%5C%5C%5C%22)%3Bvar%20minutes%3DmakeGetter(%5C%5C%5C%22minutes%5C%5C%5C%22)%3Bvar%20hours%3DmakeGetter(%5C%5C%5C%22hours%5C%5C%5C%22)%3Bvar%20days%3DmakeGetter(%5C%5C%5C%22days%5C%5C%5C%22)%3Bvar%20months%3DmakeGetter(%5C%5C%5C%22months%5C%5C%5C%22)%3Bvar%20years%3DmakeGetter(%5C%5C%5C%22years%5C%5C%5C%22)%3Bfunction%20weeks()%7Breturn%20absFloor(this.days()%2F7)%7Dvar%20round%3DMath.round%3Bvar%20thresholds%3D%7Bss%3A44%2Cs%3A45%2Cm%3A45%2Ch%3A22%2Cd%3A26%2CM%3A11%7D%3Bfunction%20substituteTimeAgo(string%2Cnumber%2CwithoutSuffix%2CisFuture%2Clocale)%7Breturn%20locale.relativeTime(number%7C%7C1%2C!!withoutSuffix%2Cstring%2CisFuture)%7Dfunction%20relativeTime%241(posNegDuration%2CwithoutSuffix%2Clocale)%7Bvar%20duration%3DcreateDuration(posNegDuration).abs()%3Bvar%20seconds%3Dround(duration.as(%5C%5C%5C%22s%5C%5C%5C%22))%3Bvar%20minutes%3Dround(duration.as(%5C%5C%5C%22m%5C%5C%5C%22))%3Bvar%20hours%3Dround(duration.as(%5C%5C%5C%22h%5C%5C%5C%22))%3Bvar%20days%3Dround(duration.as(%5C%5C%5C%22d%5C%5C%5C%22))%3Bvar%20months%3Dround(duration.as(%5C%5C%5C%22M%5C%5C%5C%22))%3Bvar%20years%3Dround(duration.as(%5C%5C%5C%22y%5C%5C%5C%22))%3Bvar%20a%3Dseconds%3C%3Dthresholds.ss%26%26%5B%5C%5C%5C%22s%5C%5C%5C%22%2Cseconds%5D%7C%7Cseconds%3Cthresholds.s%26%26%5B%5C%5C%5C%22ss%5C%5C%5C%22%2Cseconds%5D%7C%7Cminutes%3C%3D1%26%26%5B%5C%5C%5C%22m%5C%5C%5C%22%5D%7C%7Cminutes%3Cthresholds.m%26%26%5B%5C%5C%5C%22mm%5C%5C%5C%22%2Cminutes%5D%7C%7Chours%3C%3D1%26%26%5B%5C%5C%5C%22h%5C%5C%5C%22%5D%7C%7Chours%3Cthresholds.h%26%26%5B%5C%5C%5C%22hh%5C%5C%5C%22%2Chours%5D%7C%7Cdays%3C%3D1%26%26%5B%5C%5C%5C%22d%5C%5C%5C%22%5D%7C%7Cdays%3Cthresholds.d%26%26%5B%5C%5C%5C%22dd%5C%5C%5C%22%2Cdays%5D%7C%7Cmonths%3C%3D1%26%26%5B%5C%5C%5C%22M%5C%5C%5C%22%5D%7C%7Cmonths%3Cthresholds.M%26%26%5B%5C%5C%5C%22MM%5C%5C%5C%22%2Cmonths%5D%7C%7Cyears%3C%3D1%26%26%5B%5C%5C%5C%22y%5C%5C%5C%22%5D%7C%7C%5B%5C%5C%5C%22yy%5C%5C%5C%22%2Cyears%5D%3Ba%5B2%5D%3DwithoutSuffix%3Ba%5B3%5D%3D%2BposNegDuration%3E0%3Ba%5B4%5D%3Dlocale%3Breturn%20substituteTimeAgo.apply(null%2Ca)%7Dfunction%20getSetRelativeTimeRounding(roundingFunction)%7Bif(roundingFunction%3D%3D%3Dundefined)%7Breturn%20round%7Dif(typeof%20roundingFunction%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22)%7Bround%3DroundingFunction%3Breturn%20true%7Dreturn%20false%7Dfunction%20getSetRelativeTimeThreshold(threshold%2Climit)%7Bif(thresholds%5Bthreshold%5D%3D%3D%3Dundefined)%7Breturn%20false%7Dif(limit%3D%3D%3Dundefined)%7Breturn%20thresholds%5Bthreshold%5D%7Dthresholds%5Bthreshold%5D%3Dlimit%3Bif(threshold%3D%3D%3D%5C%5C%5C%22s%5C%5C%5C%22)%7Bthresholds.ss%3Dlimit-1%7Dreturn%20true%7Dfunction%20humanize(withSuffix)%7Bif(!this.isValid())%7Breturn%20this.localeData().invalidDate()%7Dvar%20locale%3Dthis.localeData()%3Bvar%20output%3DrelativeTime%241(this%2C!withSuffix%2Clocale)%3Bif(withSuffix)%7Boutput%3Dlocale.pastFuture(%2Bthis%2Coutput)%7Dreturn%20locale.postformat(output)%7Dvar%20abs%241%3DMath.abs%3Bfunction%20sign(x)%7Breturn(x%3E0)-(x%3C0)%7C%7C%2Bx%7Dfunction%20toISOString%241()%7Bif(!this.isValid())%7Breturn%20this.localeData().invalidDate()%7Dvar%20seconds%3Dabs%241(this._milliseconds)%2F1e3%3Bvar%20days%3Dabs%241(this._days)%3Bvar%20months%3Dabs%241(this._months)%3Bvar%20minutes%2Chours%2Cyears%3Bminutes%3DabsFloor(seconds%2F60)%3Bhours%3DabsFloor(minutes%2F60)%3Bseconds%25%3D60%3Bminutes%25%3D60%3Byears%3DabsFloor(months%2F12)%3Bmonths%25%3D12%3Bvar%20Y%3Dyears%3Bvar%20M%3Dmonths%3Bvar%20D%3Ddays%3Bvar%20h%3Dhours%3Bvar%20m%3Dminutes%3Bvar%20s%3Dseconds%3Fseconds.toFixed(3).replace(%2F%5C%5C%5C%5C.%3F0%2B%24%2F%2C%5C%5C%5C%22%5C%5C%5C%22)%3A%5C%5C%5C%22%5C%5C%5C%22%3Bvar%20total%3Dthis.asSeconds()%3Bif(!total)%7Breturn%5C%5C%5C%22P0D%5C%5C%5C%22%7Dvar%20totalSign%3Dtotal%3C0%3F%5C%5C%5C%22-%5C%5C%5C%22%3A%5C%5C%5C%22%5C%5C%5C%22%3Bvar%20ymSign%3Dsign(this._months)!%3D%3Dsign(total)%3F%5C%5C%5C%22-%5C%5C%5C%22%3A%5C%5C%5C%22%5C%5C%5C%22%3Bvar%20daysSign%3Dsign(this._days)!%3D%3Dsign(total)%3F%5C%5C%5C%22-%5C%5C%5C%22%3A%5C%5C%5C%22%5C%5C%5C%22%3Bvar%20hmsSign%3Dsign(this._milliseconds)!%3D%3Dsign(total)%3F%5C%5C%5C%22-%5C%5C%5C%22%3A%5C%5C%5C%22%5C%5C%5C%22%3Breturn%20totalSign%2B%5C%5C%5C%22P%5C%5C%5C%22%2B(Y%3FymSign%2BY%2B%5C%5C%5C%22Y%5C%5C%5C%22%3A%5C%5C%5C%22%5C%5C%5C%22)%2B(M%3FymSign%2BM%2B%5C%5C%5C%22M%5C%5C%5C%22%3A%5C%5C%5C%22%5C%5C%5C%22)%2B(D%3FdaysSign%2BD%2B%5C%5C%5C%22D%5C%5C%5C%22%3A%5C%5C%5C%22%5C%5C%5C%22)%2B(h%7C%7Cm%7C%7Cs%3F%5C%5C%5C%22T%5C%5C%5C%22%3A%5C%5C%5C%22%5C%5C%5C%22)%2B(h%3FhmsSign%2Bh%2B%5C%5C%5C%22H%5C%5C%5C%22%3A%5C%5C%5C%22%5C%5C%5C%22)%2B(m%3FhmsSign%2Bm%2B%5C%5C%5C%22M%5C%5C%5C%22%3A%5C%5C%5C%22%5C%5C%5C%22)%2B(s%3FhmsSign%2Bs%2B%5C%5C%5C%22S%5C%5C%5C%22%3A%5C%5C%5C%22%5C%5C%5C%22)%7Dvar%20proto%242%3DDuration.prototype%3Bproto%242.isValid%3DisValid%241%3Bproto%242.abs%3Dabs%3Bproto%242.add%3Dadd%241%3Bproto%242.subtract%3Dsubtract%241%3Bproto%242.as%3Das%3Bproto%242.asMilliseconds%3DasMilliseconds%3Bproto%242.asSeconds%3DasSeconds%3Bproto%242.asMinutes%3DasMinutes%3Bproto%242.asHours%3DasHours%3Bproto%242.asDays%3DasDays%3Bproto%242.asWeeks%3DasWeeks%3Bproto%242.asMonths%3DasMonths%3Bproto%242.asYears%3DasYears%3Bproto%242.valueOf%3DvalueOf%241%3Bproto%242._bubble%3Dbubble%3Bproto%242.clone%3Dclone%241%3Bproto%242.get%3Dget%242%3Bproto%242.milliseconds%3Dmilliseconds%3Bproto%242.seconds%3Dseconds%3Bproto%242.minutes%3Dminutes%3Bproto%242.hours%3Dhours%3Bproto%242.days%3Ddays%3Bproto%242.weeks%3Dweeks%3Bproto%242.months%3Dmonths%3Bproto%242.years%3Dyears%3Bproto%242.humanize%3Dhumanize%3Bproto%242.toISOString%3DtoISOString%241%3Bproto%242.toString%3DtoISOString%241%3Bproto%242.toJSON%3DtoISOString%241%3Bproto%242.locale%3Dlocale%3Bproto%242.localeData%3DlocaleData%3Bproto%242.toIsoString%3Ddeprecate(%5C%5C%5C%22toIsoString()%20is%20deprecated.%20Please%20use%20toISOString()%20instead%20(notice%20the%20capitals)%5C%5C%5C%22%2CtoISOString%241)%3Bproto%242.lang%3Dlang%3BaddFormatToken(%5C%5C%5C%22X%5C%5C%5C%22%2C0%2C0%2C%5C%5C%5C%22unix%5C%5C%5C%22)%3BaddFormatToken(%5C%5C%5C%22x%5C%5C%5C%22%2C0%2C0%2C%5C%5C%5C%22valueOf%5C%5C%5C%22)%3BaddRegexToken(%5C%5C%5C%22x%5C%5C%5C%22%2CmatchSigned)%3BaddRegexToken(%5C%5C%5C%22X%5C%5C%5C%22%2CmatchTimestamp)%3BaddParseToken(%5C%5C%5C%22X%5C%5C%5C%22%2Cfunction(input%2Carray%2Cconfig)%7Bconfig._d%3Dnew%20Date(parseFloat(input%2C10)*1e3)%7D)%3BaddParseToken(%5C%5C%5C%22x%5C%5C%5C%22%2Cfunction(input%2Carray%2Cconfig)%7Bconfig._d%3Dnew%20Date(toInt(input))%7D)%3Bhooks.version%3D%5C%5C%5C%222.19.1%5C%5C%5C%22%3BsetHookCallback(createLocal)%3Bhooks.fn%3Dproto%3Bhooks.min%3Dmin%3Bhooks.max%3Dmax%3Bhooks.now%3Dnow%3Bhooks.utc%3DcreateUTC%3Bhooks.unix%3DcreateUnix%3Bhooks.months%3DlistMonths%3Bhooks.isDate%3DisDate%3Bhooks.locale%3DgetSetGlobalLocale%3Bhooks.invalid%3DcreateInvalid%3Bhooks.duration%3DcreateDuration%3Bhooks.isMoment%3DisMoment%3Bhooks.weekdays%3DlistWeekdays%3Bhooks.parseZone%3DcreateInZone%3Bhooks.localeData%3DgetLocale%3Bhooks.isDuration%3DisDuration%3Bhooks.monthsShort%3DlistMonthsShort%3Bhooks.weekdaysMin%3DlistWeekdaysMin%3Bhooks.defineLocale%3DdefineLocale%3Bhooks.updateLocale%3DupdateLocale%3Bhooks.locales%3DlistLocales%3Bhooks.weekdaysShort%3DlistWeekdaysShort%3Bhooks.normalizeUnits%3DnormalizeUnits%3Bhooks.relativeTimeRounding%3DgetSetRelativeTimeRounding%3Bhooks.relativeTimeThreshold%3DgetSetRelativeTimeThreshold%3Bhooks.calendarFormat%3DgetCalendarFormat%3Bhooks.prototype%3Dproto%3Breturn%20hooks%7D)%7D).call(exports%2C__webpack_require__(155)(module))%7D%2Cfunction(module%2Cexports)%7Bmodule.exports%3Dfunction(module)%7Bif(!module.webpackPolyfill)%7Bmodule.deprecate%3Dfunction()%7B%7D%3Bmodule.paths%3D%5B%5D%3Bif(!module.children)module.children%3D%5B%5D%3BObject.defineProperty(module%2C%5C%5C%5C%22loaded%5C%5C%5C%22%2C%7Benumerable%3Atrue%2Cget%3Afunction()%7Breturn%20module.l%7D%7D)%3BObject.defineProperty(module%2C%5C%5C%5C%22id%5C%5C%5C%22%2C%7Benumerable%3Atrue%2Cget%3Afunction()%7Breturn%20module.i%7D%7D)%3Bmodule.webpackPolyfill%3D1%7Dreturn%20module%7D%7D%2Cfunction(module%2Cexports)%7Bfunction%20webpackEmptyContext(req)%7Bthrow%20new%20Error(%5C%5C%5C%22Cannot%20find%20module%20'%5C%5C%5C%22%2Breq%2B%5C%5C%5C%22'.%5C%5C%5C%22)%7DwebpackEmptyContext.keys%3Dfunction()%7Breturn%5B%5D%7D%3BwebpackEmptyContext.resolve%3DwebpackEmptyContext%3Bmodule.exports%3DwebpackEmptyContext%3BwebpackEmptyContext.id%3D156%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3B(function(global)%7Bvar%20_rng%3Bvar%20globalVar%3Dtypeof%20window!%3D%3D%5C%5C%5C%22undefined%5C%5C%5C%22%3Fwindow%3Atypeof%20global!%3D%3D%5C%5C%5C%22undefined%5C%5C%5C%22%3Fglobal%3Anull%3Bif(globalVar%26%26globalVar.crypto%26%26crypto.getRandomValues)%7Bvar%20_rnds8%3Dnew%20Uint8Array(16)%3B_rng%3Dfunction%20whatwgRNG()%7Bcrypto.getRandomValues(_rnds8)%3Breturn%20_rnds8%7D%7Dif(!_rng)%7Bvar%20_rnds%3Dnew%20Array(16)%3B_rng%3Dfunction%20_rng()%7Bfor(var%20i%3D0%2Cr%3Bi%3C16%3Bi%2B%2B)%7Bif((i%263)%3D%3D%3D0)r%3DMath.random()*4294967296%3B_rnds%5Bi%5D%3Dr%3E%3E%3E((i%263)%3C%3C3)%26255%7Dreturn%20_rnds%7D%7Dvar%20_byteToHex%3D%5B%5D%3Bvar%20_hexToByte%3D%7B%7D%3Bfor(var%20i%3D0%3Bi%3C256%3Bi%2B%2B)%7B_byteToHex%5Bi%5D%3D(i%2B256).toString(16).substr(1)%3B_hexToByte%5B_byteToHex%5Bi%5D%5D%3Di%7Dfunction%20parse(s%2Cbuf%2Coffset)%7Bvar%20i%3Dbuf%26%26offset%7C%7C0%2Cii%3D0%3Bbuf%3Dbuf%7C%7C%5B%5D%3Bs.toLowerCase().replace(%2F%5B0-9a-f%5D%7B2%7D%2Fg%2Cfunction(oct)%7Bif(ii%3C16)%7Bbuf%5Bi%2Bii%2B%2B%5D%3D_hexToByte%5Boct%5D%7D%7D)%3Bwhile(ii%3C16)%7Bbuf%5Bi%2Bii%2B%2B%5D%3D0%7Dreturn%20buf%7Dfunction%20unparse(buf%2Coffset)%7Bvar%20i%3Doffset%7C%7C0%2Cbth%3D_byteToHex%3Breturn%20bth%5Bbuf%5Bi%2B%2B%5D%5D%2Bbth%5Bbuf%5Bi%2B%2B%5D%5D%2Bbth%5Bbuf%5Bi%2B%2B%5D%5D%2Bbth%5Bbuf%5Bi%2B%2B%5D%5D%2B%5C%5C%5C%22-%5C%5C%5C%22%2Bbth%5Bbuf%5Bi%2B%2B%5D%5D%2Bbth%5Bbuf%5Bi%2B%2B%5D%5D%2B%5C%5C%5C%22-%5C%5C%5C%22%2Bbth%5Bbuf%5Bi%2B%2B%5D%5D%2Bbth%5Bbuf%5Bi%2B%2B%5D%5D%2B%5C%5C%5C%22-%5C%5C%5C%22%2Bbth%5Bbuf%5Bi%2B%2B%5D%5D%2Bbth%5Bbuf%5Bi%2B%2B%5D%5D%2B%5C%5C%5C%22-%5C%5C%5C%22%2Bbth%5Bbuf%5Bi%2B%2B%5D%5D%2Bbth%5Bbuf%5Bi%2B%2B%5D%5D%2Bbth%5Bbuf%5Bi%2B%2B%5D%5D%2Bbth%5Bbuf%5Bi%2B%2B%5D%5D%2Bbth%5Bbuf%5Bi%2B%2B%5D%5D%2Bbth%5Bbuf%5Bi%2B%2B%5D%5D%7Dvar%20_seedBytes%3D_rng()%3Bvar%20_nodeId%3D%5B_seedBytes%5B0%5D%7C1%2C_seedBytes%5B1%5D%2C_seedBytes%5B2%5D%2C_seedBytes%5B3%5D%2C_seedBytes%5B4%5D%2C_seedBytes%5B5%5D%5D%3Bvar%20_clockseq%3D(_seedBytes%5B6%5D%3C%3C8%7C_seedBytes%5B7%5D)%2616383%3Bvar%20_lastMSecs%3D0%2C_lastNSecs%3D0%3Bfunction%20v1(options%2Cbuf%2Coffset)%7Bvar%20i%3Dbuf%26%26offset%7C%7C0%3Bvar%20b%3Dbuf%7C%7C%5B%5D%3Boptions%3Doptions%7C%7C%7B%7D%3Bvar%20clockseq%3Doptions.clockseq!%3D%3Dundefined%3Foptions.clockseq%3A_clockseq%3Bvar%20msecs%3Doptions.msecs!%3D%3Dundefined%3Foptions.msecs%3A(new%20Date).getTime()%3Bvar%20nsecs%3Doptions.nsecs!%3D%3Dundefined%3Foptions.nsecs%3A_lastNSecs%2B1%3Bvar%20dt%3Dmsecs-_lastMSecs%2B(nsecs-_lastNSecs)%2F1e4%3Bif(dt%3C0%26%26options.clockseq%3D%3D%3Dundefined)%7Bclockseq%3Dclockseq%2B1%2616383%7Dif((dt%3C0%7C%7Cmsecs%3E_lastMSecs)%26%26options.nsecs%3D%3D%3Dundefined)%7Bnsecs%3D0%7Dif(nsecs%3E%3D1e4)%7Bthrow%20new%20Error(%5C%5C%5C%22uuid.v1()%3A%20Can't%20create%20more%20than%2010M%20uuids%2Fsec%5C%5C%5C%22)%7D_lastMSecs%3Dmsecs%3B_lastNSecs%3Dnsecs%3B_clockseq%3Dclockseq%3Bmsecs%2B%3D122192928e5%3Bvar%20tl%3D((msecs%26268435455)*1e4%2Bnsecs)%254294967296%3Bb%5Bi%2B%2B%5D%3Dtl%3E%3E%3E24%26255%3Bb%5Bi%2B%2B%5D%3Dtl%3E%3E%3E16%26255%3Bb%5Bi%2B%2B%5D%3Dtl%3E%3E%3E8%26255%3Bb%5Bi%2B%2B%5D%3Dtl%26255%3Bvar%20tmh%3Dmsecs%2F4294967296*1e4%26268435455%3Bb%5Bi%2B%2B%5D%3Dtmh%3E%3E%3E8%26255%3Bb%5Bi%2B%2B%5D%3Dtmh%26255%3Bb%5Bi%2B%2B%5D%3Dtmh%3E%3E%3E24%2615%7C16%3Bb%5Bi%2B%2B%5D%3Dtmh%3E%3E%3E16%26255%3Bb%5Bi%2B%2B%5D%3Dclockseq%3E%3E%3E8%7C128%3Bb%5Bi%2B%2B%5D%3Dclockseq%26255%3Bvar%20node%3Doptions.node%7C%7C_nodeId%3Bfor(var%20n%3D0%3Bn%3C6%3Bn%2B%2B)%7Bb%5Bi%2Bn%5D%3Dnode%5Bn%5D%7Dreturn%20buf%3Fbuf%3Aunparse(b)%7Dfunction%20v4(options%2Cbuf%2Coffset)%7Bvar%20i%3Dbuf%26%26offset%7C%7C0%3Bif(typeof%20options%3D%3D%5C%5C%5C%22string%5C%5C%5C%22)%7Bbuf%3Doptions%3D%3D%5C%5C%5C%22binary%5C%5C%5C%22%3Fnew%20Array(16)%3Anull%3Boptions%3Dnull%7Doptions%3Doptions%7C%7C%7B%7D%3Bvar%20rnds%3Doptions.random%7C%7C(options.rng%7C%7C_rng)()%3Brnds%5B6%5D%3Drnds%5B6%5D%2615%7C64%3Brnds%5B8%5D%3Drnds%5B8%5D%2663%7C128%3Bif(buf)%7Bfor(var%20ii%3D0%3Bii%3C16%3Bii%2B%2B)%7Bbuf%5Bi%2Bii%5D%3Drnds%5Bii%5D%7D%7Dreturn%20buf%7C%7Cunparse(rnds)%7Dvar%20uuid%3Dv4%3Buuid.v1%3Dv1%3Buuid.v4%3Dv4%3Buuid.parse%3Dparse%3Buuid.unparse%3Dunparse%3Bmodule.exports%3Duuid%7D).call(exports%2C__webpack_require__(158))%7D%2Cfunction(module%2Cexports)%7Bvar%20g%3Bg%3Dfunction()%7Breturn%20this%7D()%3Btry%7Bg%3Dg%7C%7CFunction(%5C%5C%5C%22return%20this%5C%5C%5C%22)()%7C%7C(1%2Ceval)(%5C%5C%5C%22this%5C%5C%5C%22)%7Dcatch(e)%7Bif(typeof%20window%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22)g%3Dwindow%7Dmodule.exports%3Dg%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bexports.util%3D__webpack_require__(2)%3Bexports.DOMutil%3D__webpack_require__(14)%3Bexports.DataSet%3D__webpack_require__(11)%3Bexports.DataView%3D__webpack_require__(12)%3Bexports.Queue%3D__webpack_require__(43)%3Bexports.Graph3d%3D__webpack_require__(161)%3Bexports.graph3d%3D%7BCamera%3A__webpack_require__(95)%2CFilter%3A__webpack_require__(96)%2CPoint2d%3A__webpack_require__(91)%2CPoint3d%3A__webpack_require__(34)%2CSlider%3A__webpack_require__(92)%2CStepNumber%3A__webpack_require__(93)%7D%3Bexports.moment%3D__webpack_require__(9)%3Bexports.Hammer%3D__webpack_require__(10)%3Bexports.keycharm%3D__webpack_require__(35)%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7Bvar%20core%3D__webpack_require__(7)%3Bvar%20%24JSON%3Dcore.JSON%7C%7C(core.JSON%3D%7Bstringify%3AJSON.stringify%7D)%3Bmodule.exports%3Dfunction%20stringify(it)%7Breturn%20%24JSON.stringify.apply(%24JSON%2Carguments)%7D%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bvar%20_assign%3D__webpack_require__(90)%3Bvar%20_assign2%3D_interopRequireDefault(_assign)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20Emitter%3D__webpack_require__(44)%3Bvar%20util%3D__webpack_require__(2)%3Bvar%20Point3d%3D__webpack_require__(34)%3Bvar%20Point2d%3D__webpack_require__(91)%3Bvar%20Slider%3D__webpack_require__(92)%3Bvar%20StepNumber%3D__webpack_require__(93)%3Bvar%20Settings%3D__webpack_require__(94)%3Bvar%20Validator%3D__webpack_require__(15)%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3Bvar%20_require%3D__webpack_require__(15)%2CprintStyle%3D_require.printStyle%3Bvar%20_require2%3D__webpack_require__(172)%2CallOptions%3D_require2.allOptions%3Bvar%20DataGroup%3D__webpack_require__(173)%3BGraph3d.STYLE%3DSettings.STYLE%3Bvar%20autoByDefault%3Dundefined%3BGraph3d.DEFAULTS%3D%7Bwidth%3A%5C%5C%5C%22400px%5C%5C%5C%22%2Cheight%3A%5C%5C%5C%22400px%5C%5C%5C%22%2CfilterLabel%3A%5C%5C%5C%22time%5C%5C%5C%22%2ClegendLabel%3A%5C%5C%5C%22value%5C%5C%5C%22%2CxLabel%3A%5C%5C%5C%22x%5C%5C%5C%22%2CyLabel%3A%5C%5C%5C%22y%5C%5C%5C%22%2CzLabel%3A%5C%5C%5C%22z%5C%5C%5C%22%2CxValueLabel%3Afunction%20xValueLabel(v)%7Breturn%20v%7D%2CyValueLabel%3Afunction%20yValueLabel(v)%7Breturn%20v%7D%2CzValueLabel%3Afunction%20zValueLabel(v)%7Breturn%20v%7D%2CshowXAxis%3Atrue%2CshowYAxis%3Atrue%2CshowZAxis%3Atrue%2CshowGrid%3Atrue%2CshowPerspective%3Atrue%2CshowShadow%3Afalse%2CkeepAspectRatio%3Atrue%2CverticalRatio%3A.5%2CdotSizeRatio%3A.02%2CdotSizeMinFraction%3A.5%2CdotSizeMaxFraction%3A2.5%2CshowAnimationControls%3AautoByDefault%2CanimationInterval%3A1e3%2CanimationPreload%3Afalse%2CanimationAutoStart%3AautoByDefault%2CaxisColor%3A%5C%5C%5C%22%234D4D4D%5C%5C%5C%22%2CgridColor%3A%5C%5C%5C%22%23D3D3D3%5C%5C%5C%22%2CxCenter%3A%5C%5C%5C%2255%25%5C%5C%5C%22%2CyCenter%3A%5C%5C%5C%2250%25%5C%5C%5C%22%2Cstyle%3AGraph3d.STYLE.DOT%2Ctooltip%3Afalse%2CtooltipStyle%3A%7Bcontent%3A%7Bpadding%3A%5C%5C%5C%2210px%5C%5C%5C%22%2Cborder%3A%5C%5C%5C%221px%20solid%20%234d4d4d%5C%5C%5C%22%2Ccolor%3A%5C%5C%5C%22%231a1a1a%5C%5C%5C%22%2Cbackground%3A%5C%5C%5C%22rgba(255%2C255%2C255%2C0.7)%5C%5C%5C%22%2CborderRadius%3A%5C%5C%5C%222px%5C%5C%5C%22%2CboxShadow%3A%5C%5C%5C%225px%205px%2010px%20rgba(128%2C128%2C128%2C0.5)%5C%5C%5C%22%7D%2Cline%3A%7Bheight%3A%5C%5C%5C%2240px%5C%5C%5C%22%2Cwidth%3A%5C%5C%5C%220%5C%5C%5C%22%2CborderLeft%3A%5C%5C%5C%221px%20solid%20%234d4d4d%5C%5C%5C%22%7D%2Cdot%3A%7Bheight%3A%5C%5C%5C%220%5C%5C%5C%22%2Cwidth%3A%5C%5C%5C%220%5C%5C%5C%22%2Cborder%3A%5C%5C%5C%225px%20solid%20%234d4d4d%5C%5C%5C%22%2CborderRadius%3A%5C%5C%5C%225px%5C%5C%5C%22%7D%7D%2CdataColor%3A%7Bfill%3A%5C%5C%5C%22%237DC1FF%5C%5C%5C%22%2Cstroke%3A%5C%5C%5C%22%233267D2%5C%5C%5C%22%2CstrokeWidth%3A1%7D%2CcameraPosition%3A%7Bhorizontal%3A1%2Cvertical%3A.5%2Cdistance%3A1.7%7D%2CshowLegend%3AautoByDefault%2CbackgroundColor%3AautoByDefault%2CxBarWidth%3AautoByDefault%2CyBarWidth%3AautoByDefault%2CvalueMin%3AautoByDefault%2CvalueMax%3AautoByDefault%2CxMin%3AautoByDefault%2CxMax%3AautoByDefault%2CxStep%3AautoByDefault%2CyMin%3AautoByDefault%2CyMax%3AautoByDefault%2CyStep%3AautoByDefault%2CzMin%3AautoByDefault%2CzMax%3AautoByDefault%2CzStep%3AautoByDefault%7D%3Bfunction%20Graph3d(container%2Cdata%2Coptions)%7Bif(!(this%20instanceof%20Graph3d))%7Bthrow%20new%20SyntaxError(%5C%5C%5C%22Constructor%20must%20be%20called%20with%20the%20new%20operator%5C%5C%5C%22)%7Dthis.containerElement%3Dcontainer%3Bthis.dataGroup%3Dnew%20DataGroup%3Bthis.dataPoints%3Dnull%3Bthis.create()%3BSettings.setDefaults(Graph3d.DEFAULTS%2Cthis)%3Bthis.colX%3Dundefined%3Bthis.colY%3Dundefined%3Bthis.colZ%3Dundefined%3Bthis.colValue%3Dundefined%3Bthis.setOptions(options)%3Bthis.setData(data)%7DEmitter(Graph3d.prototype)%3BGraph3d.prototype._setScale%3Dfunction()%7Bthis.scale%3Dnew%20Point3d(1%2Fthis.xRange.range()%2C1%2Fthis.yRange.range()%2C1%2Fthis.zRange.range())%3Bif(this.keepAspectRatio)%7Bif(this.scale.x%3Cthis.scale.y)%7Bthis.scale.y%3Dthis.scale.x%7Delse%7Bthis.scale.x%3Dthis.scale.y%7D%7Dthis.scale.z*%3Dthis.verticalRatio%3Bif(this.valueRange!%3D%3Dundefined)%7Bthis.scale.value%3D1%2Fthis.valueRange.range()%7Dvar%20xCenter%3Dthis.xRange.center()*this.scale.x%3Bvar%20yCenter%3Dthis.yRange.center()*this.scale.y%3Bvar%20zCenter%3Dthis.zRange.center()*this.scale.z%3Bthis.camera.setArmLocation(xCenter%2CyCenter%2CzCenter)%7D%3BGraph3d.prototype._convert3Dto2D%3Dfunction(point3d)%7Bvar%20translation%3Dthis._convertPointToTranslation(point3d)%3Breturn%20this._convertTranslationToScreen(translation)%7D%3BGraph3d.prototype._convertPointToTranslation%3Dfunction(point3d)%7Bvar%20cameraLocation%3Dthis.camera.getCameraLocation()%2CcameraRotation%3Dthis.camera.getCameraRotation()%2Cax%3Dpoint3d.x*this.scale.x%2Cay%3Dpoint3d.y*this.scale.y%2Caz%3Dpoint3d.z*this.scale.z%2Ccx%3DcameraLocation.x%2Ccy%3DcameraLocation.y%2Ccz%3DcameraLocation.z%2CsinTx%3DMath.sin(cameraRotation.x)%2CcosTx%3DMath.cos(cameraRotation.x)%2CsinTy%3DMath.sin(cameraRotation.y)%2CcosTy%3DMath.cos(cameraRotation.y)%2CsinTz%3DMath.sin(cameraRotation.z)%2CcosTz%3DMath.cos(cameraRotation.z)%2Cdx%3DcosTy*(sinTz*(ay-cy)%2BcosTz*(ax-cx))-sinTy*(az-cz)%2Cdy%3DsinTx*(cosTy*(az-cz)%2BsinTy*(sinTz*(ay-cy)%2BcosTz*(ax-cx)))%2BcosTx*(cosTz*(ay-cy)-sinTz*(ax-cx))%2Cdz%3DcosTx*(cosTy*(az-cz)%2BsinTy*(sinTz*(ay-cy)%2BcosTz*(ax-cx)))-sinTx*(cosTz*(ay-cy)-sinTz*(ax-cx))%3Breturn%20new%20Point3d(dx%2Cdy%2Cdz)%7D%3BGraph3d.prototype._convertTranslationToScreen%3Dfunction(translation)%7Bvar%20ex%3Dthis.eye.x%2Cey%3Dthis.eye.y%2Cez%3Dthis.eye.z%2Cdx%3Dtranslation.x%2Cdy%3Dtranslation.y%2Cdz%3Dtranslation.z%3Bvar%20bx%3Bvar%20by%3Bif(this.showPerspective)%7Bbx%3D(dx-ex)*(ez%2Fdz)%3Bby%3D(dy-ey)*(ez%2Fdz)%7Delse%7Bbx%3Ddx*-(ez%2Fthis.camera.getArmLength())%3Bby%3Ddy*-(ez%2Fthis.camera.getArmLength())%7Dreturn%20new%20Point2d(this.currentXCenter%2Bbx*this.frame.canvas.clientWidth%2Cthis.currentYCenter-by*this.frame.canvas.clientWidth)%7D%3BGraph3d.prototype._calcTranslations%3Dfunction(points)%7Bfor(var%20i%3D0%3Bi%3Cpoints.length%3Bi%2B%2B)%7Bvar%20point%3Dpoints%5Bi%5D%3Bpoint.trans%3Dthis._convertPointToTranslation(point.point)%3Bpoint.screen%3Dthis._convertTranslationToScreen(point.trans)%3Bvar%20transBottom%3Dthis._convertPointToTranslation(point.bottom)%3Bpoint.dist%3Dthis.showPerspective%3FtransBottom.length()%3A-transBottom.z%7Dvar%20sortDepth%3Dfunction%20sortDepth(a%2Cb)%7Breturn%20b.dist-a.dist%7D%3Bpoints.sort(sortDepth)%7D%3BGraph3d.prototype._initializeRanges%3Dfunction()%7Bvar%20dg%3Dthis.dataGroup%3Bthis.xRange%3Ddg.xRange%3Bthis.yRange%3Ddg.yRange%3Bthis.zRange%3Ddg.zRange%3Bthis.valueRange%3Ddg.valueRange%3Bthis.xStep%3Ddg.xStep%3Bthis.yStep%3Ddg.yStep%3Bthis.zStep%3Ddg.zStep%3Bthis.xBarWidth%3Ddg.xBarWidth%3Bthis.yBarWidth%3Ddg.yBarWidth%3Bthis.colX%3Ddg.colX%3Bthis.colY%3Ddg.colY%3Bthis.colZ%3Ddg.colZ%3Bthis.colValue%3Ddg.colValue%3Bthis._setScale()%7D%3BGraph3d.prototype.getDataPoints%3Dfunction(data)%7Bvar%20dataPoints%3D%5B%5D%3Bfor(var%20i%3D0%3Bi%3Cdata.length%3Bi%2B%2B)%7Bvar%20point%3Dnew%20Point3d%3Bpoint.x%3Ddata%5Bi%5D%5Bthis.colX%5D%7C%7C0%3Bpoint.y%3Ddata%5Bi%5D%5Bthis.colY%5D%7C%7C0%3Bpoint.z%3Ddata%5Bi%5D%5Bthis.colZ%5D%7C%7C0%3Bpoint.data%3Ddata%5Bi%5D%3Bif(this.colValue!%3D%3Dundefined)%7Bpoint.value%3Ddata%5Bi%5D%5Bthis.colValue%5D%7C%7C0%7Dvar%20obj%3D%7B%7D%3Bobj.point%3Dpoint%3Bobj.bottom%3Dnew%20Point3d(point.x%2Cpoint.y%2Cthis.zRange.min)%3Bobj.trans%3Dundefined%3Bobj.screen%3Dundefined%3BdataPoints.push(obj)%7Dreturn%20dataPoints%7D%3BGraph3d.prototype._getDataPoints%3Dfunction(data)%7Bvar%20x%2Cy%2Ci%2Cobj%3Bvar%20dataPoints%3D%5B%5D%3Bif(this.style%3D%3D%3DGraph3d.STYLE.GRID%7C%7Cthis.style%3D%3D%3DGraph3d.STYLE.SURFACE)%7Bvar%20dataX%3Dthis.dataGroup.getDistinctValues(this.colX%2Cdata)%3Bvar%20dataY%3Dthis.dataGroup.getDistinctValues(this.colY%2Cdata)%3BdataPoints%3Dthis.getDataPoints(data)%3Bvar%20dataMatrix%3D%5B%5D%3Bfor(i%3D0%3Bi%3CdataPoints.length%3Bi%2B%2B)%7Bobj%3DdataPoints%5Bi%5D%3Bvar%20xIndex%3DdataX.indexOf(obj.point.x)%3Bvar%20yIndex%3DdataY.indexOf(obj.point.y)%3Bif(dataMatrix%5BxIndex%5D%3D%3D%3Dundefined)%7BdataMatrix%5BxIndex%5D%3D%5B%5D%7DdataMatrix%5BxIndex%5D%5ByIndex%5D%3Dobj%7Dfor(x%3D0%3Bx%3CdataMatrix.length%3Bx%2B%2B)%7Bfor(y%3D0%3By%3CdataMatrix%5Bx%5D.length%3By%2B%2B)%7Bif(dataMatrix%5Bx%5D%5By%5D)%7BdataMatrix%5Bx%5D%5By%5D.pointRight%3Dx%3CdataMatrix.length-1%3FdataMatrix%5Bx%2B1%5D%5By%5D%3Aundefined%3BdataMatrix%5Bx%5D%5By%5D.pointTop%3Dy%3CdataMatrix%5Bx%5D.length-1%3FdataMatrix%5Bx%5D%5By%2B1%5D%3Aundefined%3BdataMatrix%5Bx%5D%5By%5D.pointCross%3Dx%3CdataMatrix.length-1%26%26y%3CdataMatrix%5Bx%5D.length-1%3FdataMatrix%5Bx%2B1%5D%5By%2B1%5D%3Aundefined%7D%7D%7D%7Delse%7Bthis._checkValueField(data)%3BdataPoints%3Dthis.getDataPoints(data)%3Bif(this.style%3D%3D%3DGraph3d.STYLE.LINE)%7Bfor(i%3D0%3Bi%3CdataPoints.length%3Bi%2B%2B)%7Bif(i%3E0)%7BdataPoints%5Bi-1%5D.pointNext%3DdataPoints%5Bi%5D%7D%7D%7D%7Dreturn%20dataPoints%7D%3BGraph3d.prototype.create%3Dfunction()%7Bwhile(this.containerElement.hasChildNodes())%7Bthis.containerElement.removeChild(this.containerElement.firstChild)%7Dthis.frame%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bthis.frame.style.position%3D%5C%5C%5C%22relative%5C%5C%5C%22%3Bthis.frame.style.overflow%3D%5C%5C%5C%22hidden%5C%5C%5C%22%3Bthis.frame.canvas%3Ddocument.createElement(%5C%5C%5C%22canvas%5C%5C%5C%22)%3Bthis.frame.canvas.style.position%3D%5C%5C%5C%22relative%5C%5C%5C%22%3Bthis.frame.appendChild(this.frame.canvas)%3B%7Bvar%20noCanvas%3Ddocument.createElement(%5C%5C%5C%22DIV%5C%5C%5C%22)%3BnoCanvas.style.color%3D%5C%5C%5C%22red%5C%5C%5C%22%3BnoCanvas.style.fontWeight%3D%5C%5C%5C%22bold%5C%5C%5C%22%3BnoCanvas.style.padding%3D%5C%5C%5C%2210px%5C%5C%5C%22%3BnoCanvas.innerHTML%3D%5C%5C%5C%22Error%3A%20your%20browser%20does%20not%20support%20HTML%20canvas%5C%5C%5C%22%3Bthis.frame.canvas.appendChild(noCanvas)%7Dthis.frame.filter%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bthis.frame.filter.style.position%3D%5C%5C%5C%22absolute%5C%5C%5C%22%3Bthis.frame.filter.style.bottom%3D%5C%5C%5C%220px%5C%5C%5C%22%3Bthis.frame.filter.style.left%3D%5C%5C%5C%220px%5C%5C%5C%22%3Bthis.frame.filter.style.width%3D%5C%5C%5C%22100%25%5C%5C%5C%22%3Bthis.frame.appendChild(this.frame.filter)%3Bvar%20me%3Dthis%3Bvar%20onmousedown%3Dfunction%20onmousedown(event)%7Bme._onMouseDown(event)%7D%3Bvar%20ontouchstart%3Dfunction%20ontouchstart(event)%7Bme._onTouchStart(event)%7D%3Bvar%20onmousewheel%3Dfunction%20onmousewheel(event)%7Bme._onWheel(event)%7D%3Bvar%20ontooltip%3Dfunction%20ontooltip(event)%7Bme._onTooltip(event)%7D%3Bvar%20onclick%3Dfunction%20onclick(event)%7Bme._onClick(event)%7D%3Butil.addEventListener(this.frame.canvas%2C%5C%5C%5C%22mousedown%5C%5C%5C%22%2Conmousedown)%3Butil.addEventListener(this.frame.canvas%2C%5C%5C%5C%22touchstart%5C%5C%5C%22%2Contouchstart)%3Butil.addEventListener(this.frame.canvas%2C%5C%5C%5C%22mousewheel%5C%5C%5C%22%2Conmousewheel)%3Butil.addEventListener(this.frame.canvas%2C%5C%5C%5C%22mousemove%5C%5C%5C%22%2Contooltip)%3Butil.addEventListener(this.frame.canvas%2C%5C%5C%5C%22click%5C%5C%5C%22%2Conclick)%3Bthis.containerElement.appendChild(this.frame)%7D%3BGraph3d.prototype._setSize%3Dfunction(width%2Cheight)%7Bthis.frame.style.width%3Dwidth%3Bthis.frame.style.height%3Dheight%3Bthis._resizeCanvas()%7D%3BGraph3d.prototype._resizeCanvas%3Dfunction()%7Bthis.frame.canvas.style.width%3D%5C%5C%5C%22100%25%5C%5C%5C%22%3Bthis.frame.canvas.style.height%3D%5C%5C%5C%22100%25%5C%5C%5C%22%3Bthis.frame.canvas.width%3Dthis.frame.canvas.clientWidth%3Bthis.frame.canvas.height%3Dthis.frame.canvas.clientHeight%3Bthis.frame.filter.style.width%3Dthis.frame.canvas.clientWidth-2*10%2B%5C%5C%5C%22px%5C%5C%5C%22%7D%3BGraph3d.prototype.animationStart%3Dfunction()%7Bif(!this.animationAutoStart%7C%7C!this.dataGroup.dataFilter)return%3Bif(!this.frame.filter%7C%7C!this.frame.filter.slider)throw%20new%20Error(%5C%5C%5C%22No%20animation%20available%5C%5C%5C%22)%3Bthis.frame.filter.slider.play()%7D%3BGraph3d.prototype.animationStop%3Dfunction()%7Bif(!this.frame.filter%7C%7C!this.frame.filter.slider)return%3Bthis.frame.filter.slider.stop()%7D%3BGraph3d.prototype._resizeCenter%3Dfunction()%7Bif(this.xCenter.charAt(this.xCenter.length-1)%3D%3D%3D%5C%5C%5C%22%25%5C%5C%5C%22)%7Bthis.currentXCenter%3DparseFloat(this.xCenter)%2F100*this.frame.canvas.clientWidth%7Delse%7Bthis.currentXCenter%3DparseFloat(this.xCenter)%7Dif(this.yCenter.charAt(this.yCenter.length-1)%3D%3D%3D%5C%5C%5C%22%25%5C%5C%5C%22)%7Bthis.currentYCenter%3DparseFloat(this.yCenter)%2F100*(this.frame.canvas.clientHeight-this.frame.filter.clientHeight)%7Delse%7Bthis.currentYCenter%3DparseFloat(this.yCenter)%7D%7D%3BGraph3d.prototype.getCameraPosition%3Dfunction()%7Bvar%20pos%3Dthis.camera.getArmRotation()%3Bpos.distance%3Dthis.camera.getArmLength()%3Breturn%20pos%7D%3BGraph3d.prototype._readData%3Dfunction(data)%7Bthis.dataPoints%3Dthis.dataGroup.initializeData(this%2Cdata%2Cthis.style)%3Bthis._initializeRanges()%3Bthis._redrawFilter()%7D%3BGraph3d.prototype.setData%3Dfunction(data)%7Bif(data%3D%3D%3Dundefined%7C%7Cdata%3D%3D%3Dnull)return%3Bthis._readData(data)%3Bthis.redraw()%3Bthis.animationStart()%7D%3BGraph3d.prototype.setOptions%3Dfunction(options)%7Bif(options%3D%3D%3Dundefined)return%3Bvar%20errorFound%3DValidator.validate(options%2CallOptions)%3Bif(errorFound%3D%3D%3Dtrue)%7Bconsole.log(%5C%5C%5C%22%25cErrors%20have%20been%20found%20in%20the%20supplied%20options%20object.%5C%5C%5C%22%2CprintStyle)%7Dthis.animationStop()%3BSettings.setOptions(options%2Cthis)%3Bthis.setPointDrawingMethod()%3Bthis._setSize(this.width%2Cthis.height)%3Bthis.setData(this.dataGroup.getDataTable())%3Bthis.animationStart()%7D%3BGraph3d.prototype.setPointDrawingMethod%3Dfunction()%7Bvar%20method%3Dundefined%3Bswitch(this.style)%7Bcase%20Graph3d.STYLE.BAR%3Amethod%3DGraph3d.prototype._redrawBarGraphPoint%3Bbreak%3Bcase%20Graph3d.STYLE.BARCOLOR%3Amethod%3DGraph3d.prototype._redrawBarColorGraphPoint%3Bbreak%3Bcase%20Graph3d.STYLE.BARSIZE%3Amethod%3DGraph3d.prototype._redrawBarSizeGraphPoint%3Bbreak%3Bcase%20Graph3d.STYLE.DOT%3Amethod%3DGraph3d.prototype._redrawDotGraphPoint%3Bbreak%3Bcase%20Graph3d.STYLE.DOTLINE%3Amethod%3DGraph3d.prototype._redrawDotLineGraphPoint%3Bbreak%3Bcase%20Graph3d.STYLE.DOTCOLOR%3Amethod%3DGraph3d.prototype._redrawDotColorGraphPoint%3Bbreak%3Bcase%20Graph3d.STYLE.DOTSIZE%3Amethod%3DGraph3d.prototype._redrawDotSizeGraphPoint%3Bbreak%3Bcase%20Graph3d.STYLE.SURFACE%3Amethod%3DGraph3d.prototype._redrawSurfaceGraphPoint%3Bbreak%3Bcase%20Graph3d.STYLE.GRID%3Amethod%3DGraph3d.prototype._redrawGridGraphPoint%3Bbreak%3Bcase%20Graph3d.STYLE.LINE%3Amethod%3DGraph3d.prototype._redrawLineGraphPoint%3Bbreak%3Bdefault%3Athrow%20new%20Error(%5C%5C%5C%22Can%20not%20determine%20point%20drawing%20method%20%5C%5C%5C%22%2B%5C%5C%5C%22for%20graph%20style%20'%5C%5C%5C%22%2Bthis.style%2B%5C%5C%5C%22'%5C%5C%5C%22)%7Dthis._pointDrawingMethod%3Dmethod%7D%3BGraph3d.prototype.redraw%3Dfunction()%7Bif(this.dataPoints%3D%3D%3Dundefined)%7Bthrow%20new%20Error(%5C%5C%5C%22Graph%20data%20not%20initialized%5C%5C%5C%22)%7Dthis._resizeCanvas()%3Bthis._resizeCenter()%3Bthis._redrawSlider()%3Bthis._redrawClear()%3Bthis._redrawAxis()%3Bthis._redrawDataGraph()%3Bthis._redrawInfo()%3Bthis._redrawLegend()%7D%3BGraph3d.prototype._getContext%3Dfunction()%7Bvar%20canvas%3Dthis.frame.canvas%3Bvar%20ctx%3Dcanvas.getContext(%5C%5C%5C%222d%5C%5C%5C%22)%3Bctx.lineJoin%3D%5C%5C%5C%22round%5C%5C%5C%22%3Bctx.lineCap%3D%5C%5C%5C%22round%5C%5C%5C%22%3Breturn%20ctx%7D%3BGraph3d.prototype._redrawClear%3Dfunction()%7Bvar%20canvas%3Dthis.frame.canvas%3Bvar%20ctx%3Dcanvas.getContext(%5C%5C%5C%222d%5C%5C%5C%22)%3Bctx.clearRect(0%2C0%2Ccanvas.width%2Ccanvas.height)%7D%3BGraph3d.prototype._dotSize%3Dfunction()%7Breturn%20this.frame.clientWidth*this.dotSizeRatio%7D%3BGraph3d.prototype._getLegendWidth%3Dfunction()%7Bvar%20width%3Bif(this.style%3D%3D%3DGraph3d.STYLE.DOTSIZE)%7Bvar%20dotSize%3Dthis._dotSize()%3Bwidth%3DdotSize*this.dotSizeMaxFraction%7Delse%20if(this.style%3D%3D%3DGraph3d.STYLE.BARSIZE)%7Bwidth%3Dthis.xBarWidth%7Delse%7Bwidth%3D20%7Dreturn%20width%7D%3BGraph3d.prototype._redrawLegend%3Dfunction()%7Bif(this.showLegend!%3D%3Dtrue)%7Breturn%7Dif(this.style%3D%3D%3DGraph3d.STYLE.LINE%7C%7Cthis.style%3D%3D%3DGraph3d.STYLE.BARSIZE)%7Breturn%7Dvar%20isSizeLegend%3Dthis.style%3D%3D%3DGraph3d.STYLE.BARSIZE%7C%7Cthis.style%3D%3D%3DGraph3d.STYLE.DOTSIZE%3Bvar%20isValueLegend%3Dthis.style%3D%3D%3DGraph3d.STYLE.DOTSIZE%7C%7Cthis.style%3D%3D%3DGraph3d.STYLE.DOTCOLOR%7C%7Cthis.style%3D%3D%3DGraph3d.STYLE.BARCOLOR%3Bvar%20height%3DMath.max(this.frame.clientHeight*.25%2C100)%3Bvar%20top%3Dthis.margin%3Bvar%20width%3Dthis._getLegendWidth()%3Bvar%20right%3Dthis.frame.clientWidth-this.margin%3Bvar%20left%3Dright-width%3Bvar%20bottom%3Dtop%2Bheight%3Bvar%20ctx%3Dthis._getContext()%3Bctx.lineWidth%3D1%3Bctx.font%3D%5C%5C%5C%2214px%20arial%5C%5C%5C%22%3Bif(isSizeLegend%3D%3D%3Dfalse)%7Bvar%20ymin%3D0%3Bvar%20ymax%3Dheight%3Bvar%20y%3Bfor(y%3Dymin%3By%3Cymax%3By%2B%2B)%7Bvar%20f%3D(y-ymin)%2F(ymax-ymin)%3Bvar%20hue%3Df*240%3Bvar%20color%3Dthis._hsv2rgb(hue%2C1%2C1)%3Bctx.strokeStyle%3Dcolor%3Bctx.beginPath()%3Bctx.moveTo(left%2Ctop%2By)%3Bctx.lineTo(right%2Ctop%2By)%3Bctx.stroke()%7Dctx.strokeStyle%3Dthis.axisColor%3Bctx.strokeRect(left%2Ctop%2Cwidth%2Cheight)%7Delse%7Bvar%20widthMin%3Bif(this.style%3D%3D%3DGraph3d.STYLE.DOTSIZE)%7BwidthMin%3Dwidth*(this.dotSizeMinFraction%2Fthis.dotSizeMaxFraction)%7Delse%20if(this.style%3D%3D%3DGraph3d.STYLE.BARSIZE)%7B%7Dctx.strokeStyle%3Dthis.axisColor%3Bctx.fillStyle%3Dthis.dataColor.fill%3Bctx.beginPath()%3Bctx.moveTo(left%2Ctop)%3Bctx.lineTo(right%2Ctop)%3Bctx.lineTo(left%2BwidthMin%2Cbottom)%3Bctx.lineTo(left%2Cbottom)%3Bctx.closePath()%3Bctx.fill()%3Bctx.stroke()%7Dvar%20gridLineLen%3D5%3Bvar%20legendMin%3DisValueLegend%3Fthis.valueRange.min%3Athis.zRange.min%3Bvar%20legendMax%3DisValueLegend%3Fthis.valueRange.max%3Athis.zRange.max%3Bvar%20step%3Dnew%20StepNumber(legendMin%2ClegendMax%2C(legendMax-legendMin)%2F5%2Ctrue)%3Bstep.start(true)%3Bvar%20from%3Bvar%20to%3Bwhile(!step.end())%7By%3Dbottom-(step.getCurrent()-legendMin)%2F(legendMax-legendMin)*height%3Bfrom%3Dnew%20Point2d(left-gridLineLen%2Cy)%3Bto%3Dnew%20Point2d(left%2Cy)%3Bthis._line(ctx%2Cfrom%2Cto)%3Bctx.textAlign%3D%5C%5C%5C%22right%5C%5C%5C%22%3Bctx.textBaseline%3D%5C%5C%5C%22middle%5C%5C%5C%22%3Bctx.fillStyle%3Dthis.axisColor%3Bctx.fillText(step.getCurrent()%2Cleft-2*gridLineLen%2Cy)%3Bstep.next()%7Dctx.textAlign%3D%5C%5C%5C%22right%5C%5C%5C%22%3Bctx.textBaseline%3D%5C%5C%5C%22top%5C%5C%5C%22%3Bvar%20label%3Dthis.legendLabel%3Bctx.fillText(label%2Cright%2Cbottom%2Bthis.margin)%7D%3BGraph3d.prototype._redrawFilter%3Dfunction()%7Bvar%20dataFilter%3Dthis.dataGroup.dataFilter%3Bvar%20filter%3Dthis.frame.filter%3Bfilter.innerHTML%3D%5C%5C%5C%22%5C%5C%5C%22%3Bif(!dataFilter)%7Bfilter.slider%3Dundefined%3Breturn%7Dvar%20options%3D%7Bvisible%3Athis.showAnimationControls%7D%3Bvar%20slider%3Dnew%20Slider(filter%2Coptions)%3Bfilter.slider%3Dslider%3Bfilter.style.padding%3D%5C%5C%5C%2210px%5C%5C%5C%22%3Bslider.setValues(dataFilter.values)%3Bslider.setPlayInterval(this.animationInterval)%3Bvar%20me%3Dthis%3Bvar%20onchange%3Dfunction%20onchange()%7Bvar%20dataFilter%3Dme.dataGroup.dataFilter%3Bvar%20index%3Dslider.getIndex()%3BdataFilter.selectValue(index)%3Bme.dataPoints%3DdataFilter._getDataPoints()%3Bme.redraw()%7D%3Bslider.setOnChangeCallback(onchange)%7D%3BGraph3d.prototype._redrawSlider%3Dfunction()%7Bif(this.frame.filter.slider!%3D%3Dundefined)%7Bthis.frame.filter.slider.redraw()%7D%7D%3BGraph3d.prototype._redrawInfo%3Dfunction()%7Bvar%20info%3Dthis.dataGroup.getInfo()%3Bif(info%3D%3D%3Dundefined)return%3Bvar%20ctx%3Dthis._getContext()%3Bctx.font%3D%5C%5C%5C%2214px%20arial%5C%5C%5C%22%3Bctx.lineStyle%3D%5C%5C%5C%22gray%5C%5C%5C%22%3Bctx.fillStyle%3D%5C%5C%5C%22gray%5C%5C%5C%22%3Bctx.textAlign%3D%5C%5C%5C%22left%5C%5C%5C%22%3Bctx.textBaseline%3D%5C%5C%5C%22top%5C%5C%5C%22%3Bvar%20x%3Dthis.margin%3Bvar%20y%3Dthis.margin%3Bctx.fillText(info%2Cx%2Cy)%7D%3BGraph3d.prototype._line%3Dfunction(ctx%2Cfrom%2Cto%2CstrokeStyle)%7Bif(strokeStyle!%3D%3Dundefined)%7Bctx.strokeStyle%3DstrokeStyle%7Dctx.beginPath()%3Bctx.moveTo(from.x%2Cfrom.y)%3Bctx.lineTo(to.x%2Cto.y)%3Bctx.stroke()%7D%3BGraph3d.prototype.drawAxisLabelX%3Dfunction(ctx%2Cpoint3d%2Ctext%2CarmAngle%2CyMargin)%7Bif(yMargin%3D%3D%3Dundefined)%7ByMargin%3D0%7Dvar%20point2d%3Dthis._convert3Dto2D(point3d)%3Bif(Math.cos(armAngle*2)%3E0)%7Bctx.textAlign%3D%5C%5C%5C%22center%5C%5C%5C%22%3Bctx.textBaseline%3D%5C%5C%5C%22top%5C%5C%5C%22%3Bpoint2d.y%2B%3DyMargin%7Delse%20if(Math.sin(armAngle*2)%3C0)%7Bctx.textAlign%3D%5C%5C%5C%22right%5C%5C%5C%22%3Bctx.textBaseline%3D%5C%5C%5C%22middle%5C%5C%5C%22%7Delse%7Bctx.textAlign%3D%5C%5C%5C%22left%5C%5C%5C%22%3Bctx.textBaseline%3D%5C%5C%5C%22middle%5C%5C%5C%22%7Dctx.fillStyle%3Dthis.axisColor%3Bctx.fillText(text%2Cpoint2d.x%2Cpoint2d.y)%7D%3BGraph3d.prototype.drawAxisLabelY%3Dfunction(ctx%2Cpoint3d%2Ctext%2CarmAngle%2CyMargin)%7Bif(yMargin%3D%3D%3Dundefined)%7ByMargin%3D0%7Dvar%20point2d%3Dthis._convert3Dto2D(point3d)%3Bif(Math.cos(armAngle*2)%3C0)%7Bctx.textAlign%3D%5C%5C%5C%22center%5C%5C%5C%22%3Bctx.textBaseline%3D%5C%5C%5C%22top%5C%5C%5C%22%3Bpoint2d.y%2B%3DyMargin%7Delse%20if(Math.sin(armAngle*2)%3E0)%7Bctx.textAlign%3D%5C%5C%5C%22right%5C%5C%5C%22%3Bctx.textBaseline%3D%5C%5C%5C%22middle%5C%5C%5C%22%7Delse%7Bctx.textAlign%3D%5C%5C%5C%22left%5C%5C%5C%22%3Bctx.textBaseline%3D%5C%5C%5C%22middle%5C%5C%5C%22%7Dctx.fillStyle%3Dthis.axisColor%3Bctx.fillText(text%2Cpoint2d.x%2Cpoint2d.y)%7D%3BGraph3d.prototype.drawAxisLabelZ%3Dfunction(ctx%2Cpoint3d%2Ctext%2Coffset)%7Bif(offset%3D%3D%3Dundefined)%7Boffset%3D0%7Dvar%20point2d%3Dthis._convert3Dto2D(point3d)%3Bctx.textAlign%3D%5C%5C%5C%22right%5C%5C%5C%22%3Bctx.textBaseline%3D%5C%5C%5C%22middle%5C%5C%5C%22%3Bctx.fillStyle%3Dthis.axisColor%3Bctx.fillText(text%2Cpoint2d.x-offset%2Cpoint2d.y)%7D%3BGraph3d.prototype._line3d%3Dfunction(ctx%2Cfrom%2Cto%2CstrokeStyle)%7Bvar%20from2d%3Dthis._convert3Dto2D(from)%3Bvar%20to2d%3Dthis._convert3Dto2D(to)%3Bthis._line(ctx%2Cfrom2d%2Cto2d%2CstrokeStyle)%7D%3BGraph3d.prototype._redrawAxis%3Dfunction()%7Bvar%20ctx%3Dthis._getContext()%2Cfrom%2Cto%2Cstep%2CprettyStep%2Ctext%2CxText%2CyText%2CzText%2Coffset%2CxOffset%2CyOffset%3Bctx.font%3D24%2Fthis.camera.getArmLength()%2B%5C%5C%5C%22px%20arial%5C%5C%5C%22%3Bvar%20gridLenX%3D.025%2Fthis.scale.x%3Bvar%20gridLenY%3D.025%2Fthis.scale.y%3Bvar%20textMargin%3D5%2Fthis.camera.getArmLength()%3Bvar%20armAngle%3Dthis.camera.getArmRotation().horizontal%3Bvar%20armVector%3Dnew%20Point2d(Math.cos(armAngle)%2CMath.sin(armAngle))%3Bvar%20xRange%3Dthis.xRange%3Bvar%20yRange%3Dthis.yRange%3Bvar%20zRange%3Dthis.zRange%3Bvar%20point3d%3Bctx.lineWidth%3D1%3BprettyStep%3Dthis.defaultXStep%3D%3D%3Dundefined%3Bstep%3Dnew%20StepNumber(xRange.min%2CxRange.max%2Cthis.xStep%2CprettyStep)%3Bstep.start(true)%3Bwhile(!step.end())%7Bvar%20x%3Dstep.getCurrent()%3Bif(this.showGrid)%7Bfrom%3Dnew%20Point3d(x%2CyRange.min%2CzRange.min)%3Bto%3Dnew%20Point3d(x%2CyRange.max%2CzRange.min)%3Bthis._line3d(ctx%2Cfrom%2Cto%2Cthis.gridColor)%7Delse%20if(this.showXAxis)%7Bfrom%3Dnew%20Point3d(x%2CyRange.min%2CzRange.min)%3Bto%3Dnew%20Point3d(x%2CyRange.min%2BgridLenX%2CzRange.min)%3Bthis._line3d(ctx%2Cfrom%2Cto%2Cthis.axisColor)%3Bfrom%3Dnew%20Point3d(x%2CyRange.max%2CzRange.min)%3Bto%3Dnew%20Point3d(x%2CyRange.max-gridLenX%2CzRange.min)%3Bthis._line3d(ctx%2Cfrom%2Cto%2Cthis.axisColor)%7Dif(this.showXAxis)%7ByText%3DarmVector.x%3E0%3FyRange.min%3AyRange.max%3Bpoint3d%3Dnew%20Point3d(x%2CyText%2CzRange.min)%3Bvar%20msg%3D%5C%5C%5C%22%20%20%5C%5C%5C%22%2Bthis.xValueLabel(x)%2B%5C%5C%5C%22%20%20%5C%5C%5C%22%3Bthis.drawAxisLabelX(ctx%2Cpoint3d%2Cmsg%2CarmAngle%2CtextMargin)%7Dstep.next()%7Dctx.lineWidth%3D1%3BprettyStep%3Dthis.defaultYStep%3D%3D%3Dundefined%3Bstep%3Dnew%20StepNumber(yRange.min%2CyRange.max%2Cthis.yStep%2CprettyStep)%3Bstep.start(true)%3Bwhile(!step.end())%7Bvar%20y%3Dstep.getCurrent()%3Bif(this.showGrid)%7Bfrom%3Dnew%20Point3d(xRange.min%2Cy%2CzRange.min)%3Bto%3Dnew%20Point3d(xRange.max%2Cy%2CzRange.min)%3Bthis._line3d(ctx%2Cfrom%2Cto%2Cthis.gridColor)%7Delse%20if(this.showYAxis)%7Bfrom%3Dnew%20Point3d(xRange.min%2Cy%2CzRange.min)%3Bto%3Dnew%20Point3d(xRange.min%2BgridLenY%2Cy%2CzRange.min)%3Bthis._line3d(ctx%2Cfrom%2Cto%2Cthis.axisColor)%3Bfrom%3Dnew%20Point3d(xRange.max%2Cy%2CzRange.min)%3Bto%3Dnew%20Point3d(xRange.max-gridLenY%2Cy%2CzRange.min)%3Bthis._line3d(ctx%2Cfrom%2Cto%2Cthis.axisColor)%7Dif(this.showYAxis)%7BxText%3DarmVector.y%3E0%3FxRange.min%3AxRange.max%3Bpoint3d%3Dnew%20Point3d(xText%2Cy%2CzRange.min)%3Bvar%20_msg%3D%5C%5C%5C%22%20%20%5C%5C%5C%22%2Bthis.yValueLabel(y)%2B%5C%5C%5C%22%20%20%5C%5C%5C%22%3Bthis.drawAxisLabelY(ctx%2Cpoint3d%2C_msg%2CarmAngle%2CtextMargin)%7Dstep.next()%7Dif(this.showZAxis)%7Bctx.lineWidth%3D1%3BprettyStep%3Dthis.defaultZStep%3D%3D%3Dundefined%3Bstep%3Dnew%20StepNumber(zRange.min%2CzRange.max%2Cthis.zStep%2CprettyStep)%3Bstep.start(true)%3BxText%3DarmVector.x%3E0%3FxRange.min%3AxRange.max%3ByText%3DarmVector.y%3C0%3FyRange.min%3AyRange.max%3Bwhile(!step.end())%7Bvar%20z%3Dstep.getCurrent()%3Bvar%20from3d%3Dnew%20Point3d(xText%2CyText%2Cz)%3Bvar%20from2d%3Dthis._convert3Dto2D(from3d)%3Bto%3Dnew%20Point2d(from2d.x-textMargin%2Cfrom2d.y)%3Bthis._line(ctx%2Cfrom2d%2Cto%2Cthis.axisColor)%3Bvar%20_msg2%3Dthis.zValueLabel(z)%2B%5C%5C%5C%22%20%5C%5C%5C%22%3Bthis.drawAxisLabelZ(ctx%2Cfrom3d%2C_msg2%2C5)%3Bstep.next()%7Dctx.lineWidth%3D1%3Bfrom%3Dnew%20Point3d(xText%2CyText%2CzRange.min)%3Bto%3Dnew%20Point3d(xText%2CyText%2CzRange.max)%3Bthis._line3d(ctx%2Cfrom%2Cto%2Cthis.axisColor)%7Dif(this.showXAxis)%7Bvar%20xMin2d%3Bvar%20xMax2d%3Bctx.lineWidth%3D1%3BxMin2d%3Dnew%20Point3d(xRange.min%2CyRange.min%2CzRange.min)%3BxMax2d%3Dnew%20Point3d(xRange.max%2CyRange.min%2CzRange.min)%3Bthis._line3d(ctx%2CxMin2d%2CxMax2d%2Cthis.axisColor)%3BxMin2d%3Dnew%20Point3d(xRange.min%2CyRange.max%2CzRange.min)%3BxMax2d%3Dnew%20Point3d(xRange.max%2CyRange.max%2CzRange.min)%3Bthis._line3d(ctx%2CxMin2d%2CxMax2d%2Cthis.axisColor)%7Dif(this.showYAxis)%7Bctx.lineWidth%3D1%3Bfrom%3Dnew%20Point3d(xRange.min%2CyRange.min%2CzRange.min)%3Bto%3Dnew%20Point3d(xRange.min%2CyRange.max%2CzRange.min)%3Bthis._line3d(ctx%2Cfrom%2Cto%2Cthis.axisColor)%3Bfrom%3Dnew%20Point3d(xRange.max%2CyRange.min%2CzRange.min)%3Bto%3Dnew%20Point3d(xRange.max%2CyRange.max%2CzRange.min)%3Bthis._line3d(ctx%2Cfrom%2Cto%2Cthis.axisColor)%7Dvar%20xLabel%3Dthis.xLabel%3Bif(xLabel.length%3E0%26%26this.showXAxis)%7ByOffset%3D.1%2Fthis.scale.y%3BxText%3D(xRange.max%2B3*xRange.min)%2F4%3ByText%3DarmVector.x%3E0%3FyRange.min-yOffset%3AyRange.max%2ByOffset%5C%5Cn%3Btext%3Dnew%20Point3d(xText%2CyText%2CzRange.min)%3Bthis.drawAxisLabelX(ctx%2Ctext%2CxLabel%2CarmAngle)%7Dvar%20yLabel%3Dthis.yLabel%3Bif(yLabel.length%3E0%26%26this.showYAxis)%7BxOffset%3D.1%2Fthis.scale.x%3BxText%3DarmVector.y%3E0%3FxRange.min-xOffset%3AxRange.max%2BxOffset%3ByText%3D(yRange.max%2B3*yRange.min)%2F4%3Btext%3Dnew%20Point3d(xText%2CyText%2CzRange.min)%3Bthis.drawAxisLabelY(ctx%2Ctext%2CyLabel%2CarmAngle)%7Dvar%20zLabel%3Dthis.zLabel%3Bif(zLabel.length%3E0%26%26this.showZAxis)%7Boffset%3D30%3BxText%3DarmVector.x%3E0%3FxRange.min%3AxRange.max%3ByText%3DarmVector.y%3C0%3FyRange.min%3AyRange.max%3BzText%3D(zRange.max%2B3*zRange.min)%2F4%3Btext%3Dnew%20Point3d(xText%2CyText%2CzText)%3Bthis.drawAxisLabelZ(ctx%2Ctext%2CzLabel%2Coffset)%7D%7D%3BGraph3d.prototype._hsv2rgb%3Dfunction(H%2CS%2CV)%7Bvar%20R%2CG%2CB%2CC%2CHi%2CX%3BC%3DV*S%3BHi%3DMath.floor(H%2F60)%3BX%3DC*(1-Math.abs(H%2F60%252-1))%3Bswitch(Hi)%7Bcase%200%3AR%3DC%3BG%3DX%3BB%3D0%3Bbreak%3Bcase%201%3AR%3DX%3BG%3DC%3BB%3D0%3Bbreak%3Bcase%202%3AR%3D0%3BG%3DC%3BB%3DX%3Bbreak%3Bcase%203%3AR%3D0%3BG%3DX%3BB%3DC%3Bbreak%3Bcase%204%3AR%3DX%3BG%3D0%3BB%3DC%3Bbreak%3Bcase%205%3AR%3DC%3BG%3D0%3BB%3DX%3Bbreak%3Bdefault%3AR%3D0%3BG%3D0%3BB%3D0%3Bbreak%7Dreturn%5C%5C%5C%22RGB(%5C%5C%5C%22%2BparseInt(R*255)%2B%5C%5C%5C%22%2C%5C%5C%5C%22%2BparseInt(G*255)%2B%5C%5C%5C%22%2C%5C%5C%5C%22%2BparseInt(B*255)%2B%5C%5C%5C%22)%5C%5C%5C%22%7D%3BGraph3d.prototype._getStrokeWidth%3Dfunction(point)%7Bif(point!%3D%3Dundefined)%7Bif(this.showPerspective)%7Breturn%201%2F-point.trans.z*this.dataColor.strokeWidth%7Delse%7Breturn-(this.eye.z%2Fthis.camera.getArmLength())*this.dataColor.strokeWidth%7D%7Dreturn%20this.dataColor.strokeWidth%7D%3BGraph3d.prototype._redrawBar%3Dfunction(ctx%2Cpoint%2CxWidth%2CyWidth%2Ccolor%2CborderColor)%7Bvar%20surface%3Bvar%20me%3Dthis%3Bvar%20point3d%3Dpoint.point%3Bvar%20zMin%3Dthis.zRange.min%3Bvar%20top%3D%5B%7Bpoint%3Anew%20Point3d(point3d.x-xWidth%2Cpoint3d.y-yWidth%2Cpoint3d.z)%7D%2C%7Bpoint%3Anew%20Point3d(point3d.x%2BxWidth%2Cpoint3d.y-yWidth%2Cpoint3d.z)%7D%2C%7Bpoint%3Anew%20Point3d(point3d.x%2BxWidth%2Cpoint3d.y%2ByWidth%2Cpoint3d.z)%7D%2C%7Bpoint%3Anew%20Point3d(point3d.x-xWidth%2Cpoint3d.y%2ByWidth%2Cpoint3d.z)%7D%5D%3Bvar%20bottom%3D%5B%7Bpoint%3Anew%20Point3d(point3d.x-xWidth%2Cpoint3d.y-yWidth%2CzMin)%7D%2C%7Bpoint%3Anew%20Point3d(point3d.x%2BxWidth%2Cpoint3d.y-yWidth%2CzMin)%7D%2C%7Bpoint%3Anew%20Point3d(point3d.x%2BxWidth%2Cpoint3d.y%2ByWidth%2CzMin)%7D%2C%7Bpoint%3Anew%20Point3d(point3d.x-xWidth%2Cpoint3d.y%2ByWidth%2CzMin)%7D%5D%3Btop.forEach(function(obj)%7Bobj.screen%3Dme._convert3Dto2D(obj.point)%7D)%3Bbottom.forEach(function(obj)%7Bobj.screen%3Dme._convert3Dto2D(obj.point)%7D)%3Bvar%20surfaces%3D%5B%7Bcorners%3Atop%2Ccenter%3APoint3d.avg(bottom%5B0%5D.point%2Cbottom%5B2%5D.point)%7D%2C%7Bcorners%3A%5Btop%5B0%5D%2Ctop%5B1%5D%2Cbottom%5B1%5D%2Cbottom%5B0%5D%5D%2Ccenter%3APoint3d.avg(bottom%5B1%5D.point%2Cbottom%5B0%5D.point)%7D%2C%7Bcorners%3A%5Btop%5B1%5D%2Ctop%5B2%5D%2Cbottom%5B2%5D%2Cbottom%5B1%5D%5D%2Ccenter%3APoint3d.avg(bottom%5B2%5D.point%2Cbottom%5B1%5D.point)%7D%2C%7Bcorners%3A%5Btop%5B2%5D%2Ctop%5B3%5D%2Cbottom%5B3%5D%2Cbottom%5B2%5D%5D%2Ccenter%3APoint3d.avg(bottom%5B3%5D.point%2Cbottom%5B2%5D.point)%7D%2C%7Bcorners%3A%5Btop%5B3%5D%2Ctop%5B0%5D%2Cbottom%5B0%5D%2Cbottom%5B3%5D%5D%2Ccenter%3APoint3d.avg(bottom%5B0%5D.point%2Cbottom%5B3%5D.point)%7D%5D%3Bpoint.surfaces%3Dsurfaces%3Bfor(var%20j%3D0%3Bj%3Csurfaces.length%3Bj%2B%2B)%7Bsurface%3Dsurfaces%5Bj%5D%3Bvar%20transCenter%3Dthis._convertPointToTranslation(surface.center)%3Bsurface.dist%3Dthis.showPerspective%3FtransCenter.length()%3A-transCenter.z%7Dsurfaces.sort(function(a%2Cb)%7Bvar%20diff%3Db.dist-a.dist%3Bif(diff)return%20diff%3Bif(a.corners%3D%3D%3Dtop)return%201%3Bif(b.corners%3D%3D%3Dtop)return-1%3Breturn%200%7D)%3Bctx.lineWidth%3Dthis._getStrokeWidth(point)%3Bctx.strokeStyle%3DborderColor%3Bctx.fillStyle%3Dcolor%3Bfor(var%20_j%3D2%3B_j%3Csurfaces.length%3B_j%2B%2B)%7Bsurface%3Dsurfaces%5B_j%5D%3Bthis._polygon(ctx%2Csurface.corners)%7D%7D%3BGraph3d.prototype._polygon%3Dfunction(ctx%2Cpoints%2CfillStyle%2CstrokeStyle)%7Bif(points.length%3C2)%7Breturn%7Dif(fillStyle!%3D%3Dundefined)%7Bctx.fillStyle%3DfillStyle%7Dif(strokeStyle!%3D%3Dundefined)%7Bctx.strokeStyle%3DstrokeStyle%7Dctx.beginPath()%3Bctx.moveTo(points%5B0%5D.screen.x%2Cpoints%5B0%5D.screen.y)%3Bfor(var%20i%3D1%3Bi%3Cpoints.length%3B%2B%2Bi)%7Bvar%20point%3Dpoints%5Bi%5D%3Bctx.lineTo(point.screen.x%2Cpoint.screen.y)%7Dctx.closePath()%3Bctx.fill()%3Bctx.stroke()%7D%3BGraph3d.prototype._drawCircle%3Dfunction(ctx%2Cpoint%2Ccolor%2CborderColor%2Csize)%7Bvar%20radius%3Dthis._calcRadius(point%2Csize)%3Bctx.lineWidth%3Dthis._getStrokeWidth(point)%3Bctx.strokeStyle%3DborderColor%3Bctx.fillStyle%3Dcolor%3Bctx.beginPath()%3Bctx.arc(point.screen.x%2Cpoint.screen.y%2Cradius%2C0%2CMath.PI*2%2Ctrue)%3Bctx.fill()%3Bctx.stroke()%7D%3BGraph3d.prototype._getColorsRegular%3Dfunction(point)%7Bvar%20hue%3D(1-(point.point.z-this.zRange.min)*this.scale.z%2Fthis.verticalRatio)*240%3Bvar%20color%3Dthis._hsv2rgb(hue%2C1%2C1)%3Bvar%20borderColor%3Dthis._hsv2rgb(hue%2C1%2C.8)%3Breturn%7Bfill%3Acolor%2Cborder%3AborderColor%7D%7D%3BGraph3d.prototype._getColorsColor%3Dfunction(point)%7Bvar%20color%2CborderColor%3Bif(typeof%20point.point.value%3D%3D%3D%5C%5C%5C%22string%5C%5C%5C%22)%7Bcolor%3Dpoint.point.value%3BborderColor%3Dpoint.point.value%7Delse%7Bvar%20hue%3D(1-(point.point.value-this.valueRange.min)*this.scale.value)*240%3Bcolor%3Dthis._hsv2rgb(hue%2C1%2C1)%3BborderColor%3Dthis._hsv2rgb(hue%2C1%2C.8)%7Dreturn%7Bfill%3Acolor%2Cborder%3AborderColor%7D%7D%3BGraph3d.prototype._getColorsSize%3Dfunction()%7Breturn%7Bfill%3Athis.dataColor.fill%2Cborder%3Athis.dataColor.stroke%7D%7D%3BGraph3d.prototype._calcRadius%3Dfunction(point%2Csize)%7Bif(size%3D%3D%3Dundefined)%7Bsize%3Dthis._dotSize()%7Dvar%20radius%3Bif(this.showPerspective)%7Bradius%3Dsize%2F-point.trans.z%7Delse%7Bradius%3Dsize*-(this.eye.z%2Fthis.camera.getArmLength())%7Dif(radius%3C0)%7Bradius%3D0%7Dreturn%20radius%7D%3BGraph3d.prototype._redrawBarGraphPoint%3Dfunction(ctx%2Cpoint)%7Bvar%20xWidth%3Dthis.xBarWidth%2F2%3Bvar%20yWidth%3Dthis.yBarWidth%2F2%3Bvar%20colors%3Dthis._getColorsRegular(point)%3Bthis._redrawBar(ctx%2Cpoint%2CxWidth%2CyWidth%2Ccolors.fill%2Ccolors.border)%7D%3BGraph3d.prototype._redrawBarColorGraphPoint%3Dfunction(ctx%2Cpoint)%7Bvar%20xWidth%3Dthis.xBarWidth%2F2%3Bvar%20yWidth%3Dthis.yBarWidth%2F2%3Bvar%20colors%3Dthis._getColorsColor(point)%3Bthis._redrawBar(ctx%2Cpoint%2CxWidth%2CyWidth%2Ccolors.fill%2Ccolors.border)%7D%3BGraph3d.prototype._redrawBarSizeGraphPoint%3Dfunction(ctx%2Cpoint)%7Bvar%20fraction%3D(point.point.value-this.valueRange.min)%2Fthis.valueRange.range()%3Bvar%20xWidth%3Dthis.xBarWidth%2F2*(fraction*.8%2B.2)%3Bvar%20yWidth%3Dthis.yBarWidth%2F2*(fraction*.8%2B.2)%3Bvar%20colors%3Dthis._getColorsSize()%3Bthis._redrawBar(ctx%2Cpoint%2CxWidth%2CyWidth%2Ccolors.fill%2Ccolors.border)%7D%3BGraph3d.prototype._redrawDotGraphPoint%3Dfunction(ctx%2Cpoint)%7Bvar%20colors%3Dthis._getColorsRegular(point)%3Bthis._drawCircle(ctx%2Cpoint%2Ccolors.fill%2Ccolors.border)%7D%3BGraph3d.prototype._redrawDotLineGraphPoint%3Dfunction(ctx%2Cpoint)%7Bvar%20from%3Dthis._convert3Dto2D(point.bottom)%3Bctx.lineWidth%3D1%3Bthis._line(ctx%2Cfrom%2Cpoint.screen%2Cthis.gridColor)%3Bthis._redrawDotGraphPoint(ctx%2Cpoint)%7D%3BGraph3d.prototype._redrawDotColorGraphPoint%3Dfunction(ctx%2Cpoint)%7Bvar%20colors%3Dthis._getColorsColor(point)%3Bthis._drawCircle(ctx%2Cpoint%2Ccolors.fill%2Ccolors.border)%7D%3BGraph3d.prototype._redrawDotSizeGraphPoint%3Dfunction(ctx%2Cpoint)%7Bvar%20dotSize%3Dthis._dotSize()%3Bvar%20fraction%3D(point.point.value-this.valueRange.min)%2Fthis.valueRange.range()%3Bvar%20sizeMin%3DdotSize*this.dotSizeMinFraction%3Bvar%20sizeRange%3DdotSize*this.dotSizeMaxFraction-sizeMin%3Bvar%20size%3DsizeMin%2BsizeRange*fraction%3Bvar%20colors%3Dthis._getColorsSize()%3Bthis._drawCircle(ctx%2Cpoint%2Ccolors.fill%2Ccolors.border%2Csize)%7D%3BGraph3d.prototype._redrawSurfaceGraphPoint%3Dfunction(ctx%2Cpoint)%7Bvar%20right%3Dpoint.pointRight%3Bvar%20top%3Dpoint.pointTop%3Bvar%20cross%3Dpoint.pointCross%3Bif(point%3D%3D%3Dundefined%7C%7Cright%3D%3D%3Dundefined%7C%7Ctop%3D%3D%3Dundefined%7C%7Ccross%3D%3D%3Dundefined)%7Breturn%7Dvar%20topSideVisible%3Dtrue%3Bvar%20fillStyle%3Bvar%20strokeStyle%3Bif(this.showGrayBottom%7C%7Cthis.showShadow)%7Bvar%20aDiff%3DPoint3d.subtract(cross.trans%2Cpoint.trans)%3Bvar%20bDiff%3DPoint3d.subtract(top.trans%2Cright.trans)%3Bvar%20crossproduct%3DPoint3d.crossProduct(aDiff%2CbDiff)%3Bvar%20len%3Dcrossproduct.length()%3BtopSideVisible%3Dcrossproduct.z%3E0%7Dif(topSideVisible)%7Bvar%20zAvg%3D(point.point.z%2Bright.point.z%2Btop.point.z%2Bcross.point.z)%2F4%3Bvar%20h%3D(1-(zAvg-this.zRange.min)*this.scale.z%2Fthis.verticalRatio)*240%3Bvar%20s%3D1%3Bvar%20v%3Bif(this.showShadow)%7Bv%3DMath.min(1%2Bcrossproduct.x%2Flen%2F2%2C1)%3BfillStyle%3Dthis._hsv2rgb(h%2Cs%2Cv)%3BstrokeStyle%3DfillStyle%7Delse%7Bv%3D1%3BfillStyle%3Dthis._hsv2rgb(h%2Cs%2Cv)%3BstrokeStyle%3Dthis.axisColor%7D%7Delse%7BfillStyle%3D%5C%5C%5C%22gray%5C%5C%5C%22%3BstrokeStyle%3Dthis.axisColor%7Dctx.lineWidth%3Dthis._getStrokeWidth(point)%3Bvar%20points%3D%5Bpoint%2Cright%2Ccross%2Ctop%5D%3Bthis._polygon(ctx%2Cpoints%2CfillStyle%2CstrokeStyle)%7D%3BGraph3d.prototype._drawGridLine%3Dfunction(ctx%2Cfrom%2Cto)%7Bif(from%3D%3D%3Dundefined%7C%7Cto%3D%3D%3Dundefined)%7Breturn%7Dvar%20zAvg%3D(from.point.z%2Bto.point.z)%2F2%3Bvar%20h%3D(1-(zAvg-this.zRange.min)*this.scale.z%2Fthis.verticalRatio)*240%3Bctx.lineWidth%3Dthis._getStrokeWidth(from)*2%3Bctx.strokeStyle%3Dthis._hsv2rgb(h%2C1%2C1)%3Bthis._line(ctx%2Cfrom.screen%2Cto.screen)%7D%3BGraph3d.prototype._redrawGridGraphPoint%3Dfunction(ctx%2Cpoint)%7Bthis._drawGridLine(ctx%2Cpoint%2Cpoint.pointRight)%3Bthis._drawGridLine(ctx%2Cpoint%2Cpoint.pointTop)%7D%3BGraph3d.prototype._redrawLineGraphPoint%3Dfunction(ctx%2Cpoint)%7Bif(point.pointNext%3D%3D%3Dundefined)%7Breturn%7Dctx.lineWidth%3Dthis._getStrokeWidth(point)%3Bctx.strokeStyle%3Dthis.dataColor.stroke%3Bthis._line(ctx%2Cpoint.screen%2Cpoint.pointNext.screen)%7D%3BGraph3d.prototype._redrawDataGraph%3Dfunction()%7Bvar%20ctx%3Dthis._getContext()%3Bvar%20i%3Bif(this.dataPoints%3D%3D%3Dundefined%7C%7Cthis.dataPoints.length%3C%3D0)return%3Bthis._calcTranslations(this.dataPoints)%3Bfor(i%3D0%3Bi%3Cthis.dataPoints.length%3Bi%2B%2B)%7Bvar%20point%3Dthis.dataPoints%5Bi%5D%3Bthis._pointDrawingMethod.call(this%2Cctx%2Cpoint)%7D%7D%3BGraph3d.prototype._storeMousePosition%3Dfunction(event)%7Bthis.startMouseX%3DgetMouseX(event)%3Bthis.startMouseY%3DgetMouseY(event)%3Bthis._startCameraOffset%3Dthis.camera.getOffset()%7D%3BGraph3d.prototype._onMouseDown%3Dfunction(event)%7Bevent%3Devent%7C%7Cwindow.event%3Bif(this.leftButtonDown)%7Bthis._onMouseUp(event)%7Dthis.leftButtonDown%3Devent.which%3Fevent.which%3D%3D%3D1%3Aevent.button%3D%3D%3D1%3Bif(!this.leftButtonDown%26%26!this.touchDown)return%3Bthis._storeMousePosition(event)%3Bthis.startStart%3Dnew%20Date(this.start)%3Bthis.startEnd%3Dnew%20Date(this.end)%3Bthis.startArmRotation%3Dthis.camera.getArmRotation()%3Bthis.frame.style.cursor%3D%5C%5C%5C%22move%5C%5C%5C%22%3Bvar%20me%3Dthis%3Bthis.onmousemove%3Dfunction(event)%7Bme._onMouseMove(event)%7D%3Bthis.onmouseup%3Dfunction(event)%7Bme._onMouseUp(event)%7D%3Butil.addEventListener(document%2C%5C%5C%5C%22mousemove%5C%5C%5C%22%2Cme.onmousemove)%3Butil.addEventListener(document%2C%5C%5C%5C%22mouseup%5C%5C%5C%22%2Cme.onmouseup)%3Butil.preventDefault(event)%7D%3BGraph3d.prototype._onMouseMove%3Dfunction(event)%7Bthis.moving%3Dtrue%3Bevent%3Devent%7C%7Cwindow.event%3Bvar%20diffX%3DparseFloat(getMouseX(event))-this.startMouseX%3Bvar%20diffY%3DparseFloat(getMouseY(event))-this.startMouseY%3Bif(event%26%26event.ctrlKey%3D%3D%3Dtrue)%7Bvar%20scaleX%3Dthis.frame.clientWidth*.5%3Bvar%20scaleY%3Dthis.frame.clientHeight*.5%3Bvar%20offXNew%3D(this._startCameraOffset.x%7C%7C0)-diffX%2FscaleX*this.camera.armLength*.8%3Bvar%20offYNew%3D(this._startCameraOffset.y%7C%7C0)%2BdiffY%2FscaleY*this.camera.armLength*.8%3Bthis.camera.setOffset(offXNew%2CoffYNew)%3Bthis._storeMousePosition(event)%7Delse%7Bvar%20horizontalNew%3Dthis.startArmRotation.horizontal%2BdiffX%2F200%3Bvar%20verticalNew%3Dthis.startArmRotation.vertical%2BdiffY%2F200%3Bvar%20snapAngle%3D4%3Bvar%20snapValue%3DMath.sin(snapAngle%2F360*2*Math.PI)%3Bif(Math.abs(Math.sin(horizontalNew))%3CsnapValue)%7BhorizontalNew%3DMath.round(horizontalNew%2FMath.PI)*Math.PI-.001%7Dif(Math.abs(Math.cos(horizontalNew))%3CsnapValue)%7BhorizontalNew%3D(Math.round(horizontalNew%2FMath.PI-.5)%2B.5)*Math.PI-.001%7Dif(Math.abs(Math.sin(verticalNew))%3CsnapValue)%7BverticalNew%3DMath.round(verticalNew%2FMath.PI)*Math.PI%7Dif(Math.abs(Math.cos(verticalNew))%3CsnapValue)%7BverticalNew%3D(Math.round(verticalNew%2FMath.PI-.5)%2B.5)*Math.PI%7Dthis.camera.setArmRotation(horizontalNew%2CverticalNew)%7Dthis.redraw()%3Bvar%20parameters%3Dthis.getCameraPosition()%3Bthis.emit(%5C%5C%5C%22cameraPositionChange%5C%5C%5C%22%2Cparameters)%3Butil.preventDefault(event)%7D%3BGraph3d.prototype._onMouseUp%3Dfunction(event)%7Bthis.frame.style.cursor%3D%5C%5C%5C%22auto%5C%5C%5C%22%3Bthis.leftButtonDown%3Dfalse%3Butil.removeEventListener(document%2C%5C%5C%5C%22mousemove%5C%5C%5C%22%2Cthis.onmousemove)%3Butil.removeEventListener(document%2C%5C%5C%5C%22mouseup%5C%5C%5C%22%2Cthis.onmouseup)%3Butil.preventDefault(event)%7D%3BGraph3d.prototype._onClick%3Dfunction(event)%7Bif(!this.onclick_callback)return%3Bif(!this.moving)%7Bvar%20boundingRect%3Dthis.frame.getBoundingClientRect()%3Bvar%20mouseX%3DgetMouseX(event)-boundingRect.left%3Bvar%20mouseY%3DgetMouseY(event)-boundingRect.top%3Bvar%20dataPoint%3Dthis._dataPointFromXY(mouseX%2CmouseY)%3Bif(dataPoint)this.onclick_callback(dataPoint.point.data)%7Delse%7Bthis.moving%3Dfalse%7Dutil.preventDefault(event)%7D%3BGraph3d.prototype._onTooltip%3Dfunction(event)%7Bvar%20delay%3D300%3Bvar%20boundingRect%3Dthis.frame.getBoundingClientRect()%3Bvar%20mouseX%3DgetMouseX(event)-boundingRect.left%3Bvar%20mouseY%3DgetMouseY(event)-boundingRect.top%3Bif(!this.showTooltip)%7Breturn%7Dif(this.tooltipTimeout)%7BclearTimeout(this.tooltipTimeout)%7Dif(this.leftButtonDown)%7Bthis._hideTooltip()%3Breturn%7Dif(this.tooltip%26%26this.tooltip.dataPoint)%7Bvar%20dataPoint%3Dthis._dataPointFromXY(mouseX%2CmouseY)%3Bif(dataPoint!%3D%3Dthis.tooltip.dataPoint)%7Bif(dataPoint)%7Bthis._showTooltip(dataPoint)%7Delse%7Bthis._hideTooltip()%7D%7D%7Delse%7Bvar%20me%3Dthis%3Bthis.tooltipTimeout%3DsetTimeout(function()%7Bme.tooltipTimeout%3Dnull%3Bvar%20dataPoint%3Dme._dataPointFromXY(mouseX%2CmouseY)%3Bif(dataPoint)%7Bme._showTooltip(dataPoint)%7D%7D%2Cdelay)%7D%7D%3BGraph3d.prototype._onTouchStart%3Dfunction(event)%7Bthis.touchDown%3Dtrue%3Bvar%20me%3Dthis%3Bthis.ontouchmove%3Dfunction(event)%7Bme._onTouchMove(event)%7D%3Bthis.ontouchend%3Dfunction(event)%7Bme._onTouchEnd(event)%7D%3Butil.addEventListener(document%2C%5C%5C%5C%22touchmove%5C%5C%5C%22%2Cme.ontouchmove)%3Butil.addEventListener(document%2C%5C%5C%5C%22touchend%5C%5C%5C%22%2Cme.ontouchend)%3Bthis._onMouseDown(event)%7D%3BGraph3d.prototype._onTouchMove%3Dfunction(event)%7Bthis._onMouseMove(event)%7D%3BGraph3d.prototype._onTouchEnd%3Dfunction(event)%7Bthis.touchDown%3Dfalse%3Butil.removeEventListener(document%2C%5C%5C%5C%22touchmove%5C%5C%5C%22%2Cthis.ontouchmove)%3Butil.removeEventListener(document%2C%5C%5C%5C%22touchend%5C%5C%5C%22%2Cthis.ontouchend)%3Bthis._onMouseUp(event)%7D%3BGraph3d.prototype._onWheel%3Dfunction(event)%7Bif(!event)event%3Dwindow.event%3Bvar%20delta%3D0%3Bif(event.wheelDelta)%7Bdelta%3Devent.wheelDelta%2F120%7Delse%20if(event.detail)%7Bdelta%3D-event.detail%2F3%7Dif(delta)%7Bvar%20oldLength%3Dthis.camera.getArmLength()%3Bvar%20newLength%3DoldLength*(1-delta%2F10)%3Bthis.camera.setArmLength(newLength)%3Bthis.redraw()%3Bthis._hideTooltip()%7Dvar%20parameters%3Dthis.getCameraPosition()%3Bthis.emit(%5C%5C%5C%22cameraPositionChange%5C%5C%5C%22%2Cparameters)%3Butil.preventDefault(event)%7D%3BGraph3d.prototype._insideTriangle%3Dfunction(point%2Ctriangle)%7Bvar%20a%3Dtriangle%5B0%5D%2Cb%3Dtriangle%5B1%5D%2Cc%3Dtriangle%5B2%5D%3Bfunction%20sign(x)%7Breturn%20x%3E0%3F1%3Ax%3C0%3F-1%3A0%7Dvar%20as%3Dsign((b.x-a.x)*(point.y-a.y)-(b.y-a.y)*(point.x-a.x))%3Bvar%20bs%3Dsign((c.x-b.x)*(point.y-b.y)-(c.y-b.y)*(point.x-b.x))%3Bvar%20cs%3Dsign((a.x-c.x)*(point.y-c.y)-(a.y-c.y)*(point.x-c.x))%3Breturn(as%3D%3D0%7C%7Cbs%3D%3D0%7C%7Cas%3D%3Dbs)%26%26(bs%3D%3D0%7C%7Ccs%3D%3D0%7C%7Cbs%3D%3Dcs)%26%26(as%3D%3D0%7C%7Ccs%3D%3D0%7C%7Cas%3D%3Dcs)%7D%3BGraph3d.prototype._dataPointFromXY%3Dfunction(x%2Cy)%7Bvar%20i%2CdistMax%3D100%2CdataPoint%3Dnull%2CclosestDataPoint%3Dnull%2CclosestDist%3Dnull%2Ccenter%3Dnew%20Point2d(x%2Cy)%3Bif(this.style%3D%3D%3DGraph3d.STYLE.BAR%7C%7Cthis.style%3D%3D%3DGraph3d.STYLE.BARCOLOR%7C%7Cthis.style%3D%3D%3DGraph3d.STYLE.BARSIZE)%7Bfor(i%3Dthis.dataPoints.length-1%3Bi%3E%3D0%3Bi--)%7BdataPoint%3Dthis.dataPoints%5Bi%5D%3Bvar%20surfaces%3DdataPoint.surfaces%3Bif(surfaces)%7Bfor(var%20s%3Dsurfaces.length-1%3Bs%3E%3D0%3Bs--)%7Bvar%20surface%3Dsurfaces%5Bs%5D%3Bvar%20corners%3Dsurface.corners%3Bvar%20triangle1%3D%5Bcorners%5B0%5D.screen%2Ccorners%5B1%5D.screen%2Ccorners%5B2%5D.screen%5D%3Bvar%20triangle2%3D%5Bcorners%5B2%5D.screen%2Ccorners%5B3%5D.screen%2Ccorners%5B0%5D.screen%5D%3Bif(this._insideTriangle(center%2Ctriangle1)%7C%7Cthis._insideTriangle(center%2Ctriangle2))%7Breturn%20dataPoint%7D%7D%7D%7D%7Delse%7Bfor(i%3D0%3Bi%3Cthis.dataPoints.length%3Bi%2B%2B)%7BdataPoint%3Dthis.dataPoints%5Bi%5D%3Bvar%20point%3DdataPoint.screen%3Bif(point)%7Bvar%20distX%3DMath.abs(x-point.x)%3Bvar%20distY%3DMath.abs(y-point.y)%3Bvar%20dist%3DMath.sqrt(distX*distX%2BdistY*distY)%3Bif((closestDist%3D%3D%3Dnull%7C%7Cdist%3CclosestDist)%26%26dist%3CdistMax)%7BclosestDist%3Ddist%3BclosestDataPoint%3DdataPoint%7D%7D%7D%7Dreturn%20closestDataPoint%7D%3BGraph3d.prototype.hasBars%3Dfunction(style)%7Breturn%20style%3D%3DGraph3d.STYLE.BAR%7C%7Cstyle%3D%3DGraph3d.STYLE.BARCOLOR%7C%7Cstyle%3D%3DGraph3d.STYLE.BARSIZE%7D%3BGraph3d.prototype._showTooltip%3Dfunction(dataPoint)%7Bvar%20content%2Cline%2Cdot%3Bif(!this.tooltip)%7Bcontent%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3B(0%2C_assign2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(content.style%2C%7B%7D%2Cthis.tooltipStyle.content)%3Bcontent.style.position%3D%5C%5C%5C%22absolute%5C%5C%5C%22%3Bline%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3B(0%2C_assign2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(line.style%2C%7B%7D%2Cthis.tooltipStyle.line)%3Bline.style.position%3D%5C%5C%5C%22absolute%5C%5C%5C%22%3Bdot%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3B(0%2C_assign2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(dot.style%2C%7B%7D%2Cthis.tooltipStyle.dot)%3Bdot.style.position%3D%5C%5C%5C%22absolute%5C%5C%5C%22%3Bthis.tooltip%3D%7BdataPoint%3Anull%2Cdom%3A%7Bcontent%3Acontent%2Cline%3Aline%2Cdot%3Adot%7D%7D%7Delse%7Bcontent%3Dthis.tooltip.dom.content%3Bline%3Dthis.tooltip.dom.line%3Bdot%3Dthis.tooltip.dom.dot%7Dthis._hideTooltip()%3Bthis.tooltip.dataPoint%3DdataPoint%3Bif(typeof%20this.showTooltip%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22)%7Bcontent.innerHTML%3Dthis.showTooltip(dataPoint.point)%7Delse%7Bcontent.innerHTML%3D%5C%5C%5C%22%3Ctable%3E%5C%5C%5C%22%2B%5C%5C%5C%22%3Ctr%3E%3Ctd%3E%5C%5C%5C%22%2Bthis.xLabel%2B%5C%5C%5C%22%3A%3C%2Ftd%3E%3Ctd%3E%5C%5C%5C%22%2BdataPoint.point.x%2B%5C%5C%5C%22%3C%2Ftd%3E%3C%2Ftr%3E%5C%5C%5C%22%2B%5C%5C%5C%22%3Ctr%3E%3Ctd%3E%5C%5C%5C%22%2Bthis.yLabel%2B%5C%5C%5C%22%3A%3C%2Ftd%3E%3Ctd%3E%5C%5C%5C%22%2BdataPoint.point.y%2B%5C%5C%5C%22%3C%2Ftd%3E%3C%2Ftr%3E%5C%5C%5C%22%2B%5C%5C%5C%22%3Ctr%3E%3Ctd%3E%5C%5C%5C%22%2Bthis.zLabel%2B%5C%5C%5C%22%3A%3C%2Ftd%3E%3Ctd%3E%5C%5C%5C%22%2BdataPoint.point.z%2B%5C%5C%5C%22%3C%2Ftd%3E%3C%2Ftr%3E%5C%5C%5C%22%2B%5C%5C%5C%22%3C%2Ftable%3E%5C%5C%5C%22%7Dcontent.style.left%3D%5C%5C%5C%220%5C%5C%5C%22%3Bcontent.style.top%3D%5C%5C%5C%220%5C%5C%5C%22%3Bthis.frame.appendChild(content)%3Bthis.frame.appendChild(line)%3Bthis.frame.appendChild(dot)%3Bvar%20contentWidth%3Dcontent.offsetWidth%3Bvar%20contentHeight%3Dcontent.offsetHeight%3Bvar%20lineHeight%3Dline.offsetHeight%3Bvar%20dotWidth%3Ddot.offsetWidth%3Bvar%20dotHeight%3Ddot.offsetHeight%3Bvar%20left%3DdataPoint.screen.x-contentWidth%2F2%3Bleft%3DMath.min(Math.max(left%2C10)%2Cthis.frame.clientWidth-10-contentWidth)%3Bline.style.left%3DdataPoint.screen.x%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bline.style.top%3DdataPoint.screen.y-lineHeight%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bcontent.style.left%3Dleft%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bcontent.style.top%3DdataPoint.screen.y-lineHeight-contentHeight%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bdot.style.left%3DdataPoint.screen.x-dotWidth%2F2%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bdot.style.top%3DdataPoint.screen.y-dotHeight%2F2%2B%5C%5C%5C%22px%5C%5C%5C%22%7D%3BGraph3d.prototype._hideTooltip%3Dfunction()%7Bif(this.tooltip)%7Bthis.tooltip.dataPoint%3Dnull%3Bfor(var%20prop%20in%20this.tooltip.dom)%7Bif(this.tooltip.dom.hasOwnProperty(prop))%7Bvar%20elem%3Dthis.tooltip.dom%5Bprop%5D%3Bif(elem%26%26elem.parentNode)%7Belem.parentNode.removeChild(elem)%7D%7D%7D%7D%7D%3Bfunction%20getMouseX(event)%7Bif(%5C%5C%5C%22clientX%5C%5C%5C%22in%20event)return%20event.clientX%3Breturn%20event.targetTouches%5B0%5D%26%26event.targetTouches%5B0%5D.clientX%7C%7C0%7Dfunction%20getMouseY(event)%7Bif(%5C%5C%5C%22clientY%5C%5C%5C%22in%20event)return%20event.clientY%3Breturn%20event.targetTouches%5B0%5D%26%26event.targetTouches%5B0%5D.clientY%7C%7C0%7DGraph3d.prototype.setCameraPosition%3Dfunction(pos)%7BSettings.setCameraPosition(pos%2Cthis)%3Bthis.redraw()%7D%3BGraph3d.prototype.setSize%3Dfunction(width%2Cheight)%7Bthis._setSize(width%2Cheight)%3Bthis.redraw()%7D%3Bmodule.exports%3DGraph3d%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B__webpack_require__(163)%3Bmodule.exports%3D__webpack_require__(7).Object.assign%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7Bvar%20%24export%3D__webpack_require__(17)%3B%24export(%24export.S%2B%24export.F%2C%5C%5C%5C%22Object%5C%5C%5C%22%2C%7Bassign%3A__webpack_require__(164)%7D)%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bvar%20getKeys%3D__webpack_require__(33)%3Bvar%20gOPS%3D__webpack_require__(63)%3Bvar%20pIE%3D__webpack_require__(42)%3Bvar%20toObject%3D__webpack_require__(41)%3Bvar%20IObject%3D__webpack_require__(78)%3Bvar%20%24assign%3DObject.assign%3Bmodule.exports%3D!%24assign%7C%7C__webpack_require__(28)(function()%7Bvar%20A%3D%7B%7D%3Bvar%20B%3D%7B%7D%3Bvar%20S%3DSymbol()%3Bvar%20K%3D%5C%5C%5C%22abcdefghijklmnopqrst%5C%5C%5C%22%3BA%5BS%5D%3D7%3BK.split(%5C%5C%5C%22%5C%5C%5C%22).forEach(function(k)%7BB%5Bk%5D%3Dk%7D)%3Breturn%20%24assign(%7B%7D%2CA)%5BS%5D!%3D7%7C%7CObject.keys(%24assign(%7B%7D%2CB)).join(%5C%5C%5C%22%5C%5C%5C%22)!%3DK%7D)%3Ffunction%20assign(target%2Csource)%7Bvar%20T%3DtoObject(target)%3Bvar%20aLen%3Darguments.length%3Bvar%20index%3D1%3Bvar%20getSymbols%3DgOPS.f%3Bvar%20isEnum%3DpIE.f%3Bwhile(aLen%3Eindex)%7Bvar%20S%3DIObject(arguments%5Bindex%2B%2B%5D)%3Bvar%20keys%3DgetSymbols%3FgetKeys(S).concat(getSymbols(S))%3AgetKeys(S)%3Bvar%20length%3Dkeys.length%3Bvar%20j%3D0%3Bvar%20key%3Bwhile(length%3Ej)if(isEnum.call(S%2Ckey%3Dkeys%5Bj%2B%2B%5D))T%5Bkey%5D%3DS%5Bkey%5D%7Dreturn%20T%7D%3A%24assign%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7Bmodule.exports%3D%7Bdefault%3A__webpack_require__(166)%2C__esModule%3Atrue%7D%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B__webpack_require__(167)%3Bmodule.exports%3D__webpack_require__(7).Math.sign%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7Bvar%20%24export%3D__webpack_require__(17)%3B%24export(%24export.S%2C%5C%5C%5C%22Math%5C%5C%5C%22%2C%7Bsign%3A__webpack_require__(168)%7D)%7D%2Cfunction(module%2Cexports)%7Bmodule.exports%3DMath.sign%7C%7Cfunction%20sign(x)%7Breturn(x%3D%2Bx)%3D%3D0%7C%7Cx!%3Dx%3Fx%3Ax%3C0%3F-1%3A1%7D%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7Bmodule.exports%3D%7Bdefault%3A__webpack_require__(170)%2C__esModule%3Atrue%7D%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B__webpack_require__(171)%3Bvar%20%24Object%3D__webpack_require__(7).Object%3Bmodule.exports%3Dfunction%20defineProperty(it%2Ckey%2Cdesc)%7Breturn%20%24Object.defineProperty(it%2Ckey%2Cdesc)%7D%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7Bvar%20%24export%3D__webpack_require__(17)%3B%24export(%24export.S%2B%24export.F*!__webpack_require__(21)%2C%5C%5C%5C%22Object%5C%5C%5C%22%2C%7BdefineProperty%3A__webpack_require__(20).f%7D)%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20string%3D%5C%5C%5C%22string%5C%5C%5C%22%3Bvar%20bool%3D%5C%5C%5C%22boolean%5C%5C%5C%22%3Bvar%20number%3D%5C%5C%5C%22number%5C%5C%5C%22%3Bvar%20object%3D%5C%5C%5C%22object%5C%5C%5C%22%3Bvar%20colorOptions%3D%7Bfill%3A%7Bstring%3Astring%7D%2Cstroke%3A%7Bstring%3Astring%7D%2CstrokeWidth%3A%7Bnumber%3Anumber%7D%2C__type__%3A%7Bstring%3Astring%2Cobject%3Aobject%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%7D%3Bvar%20allOptions%3D%7BanimationAutoStart%3A%7Bboolean%3Abool%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2CanimationInterval%3A%7Bnumber%3Anumber%7D%2CanimationPreload%3A%7Bboolean%3Abool%7D%2CaxisColor%3A%7Bstring%3Astring%7D%2CbackgroundColor%3AcolorOptions%2CxBarWidth%3A%7Bnumber%3Anumber%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2CyBarWidth%3A%7Bnumber%3Anumber%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2CcameraPosition%3A%7Bdistance%3A%7Bnumber%3Anumber%7D%2Chorizontal%3A%7Bnumber%3Anumber%7D%2Cvertical%3A%7Bnumber%3Anumber%7D%2C__type__%3A%7Bobject%3Aobject%7D%7D%2CxCenter%3A%7Bstring%3Astring%7D%2CyCenter%3A%7Bstring%3Astring%7D%2CdataColor%3AcolorOptions%2CdotSizeMinFraction%3A%7Bnumber%3Anumber%7D%2CdotSizeMaxFraction%3A%7Bnumber%3Anumber%7D%2CdotSizeRatio%3A%7Bnumber%3Anumber%7D%2CfilterLabel%3A%7Bstring%3Astring%7D%2CgridColor%3A%7Bstring%3Astring%7D%2Conclick%3A%7Bfunction%3A%5C%5C%5C%22function%5C%5C%5C%22%7D%2CkeepAspectRatio%3A%7Bboolean%3Abool%7D%2CxLabel%3A%7Bstring%3Astring%7D%2CyLabel%3A%7Bstring%3Astring%7D%2CzLabel%3A%7Bstring%3Astring%7D%2ClegendLabel%3A%7Bstring%3Astring%7D%2CxMin%3A%7Bnumber%3Anumber%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2CyMin%3A%7Bnumber%3Anumber%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2CzMin%3A%7Bnumber%3Anumber%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2CxMax%3A%7Bnumber%3Anumber%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2CyMax%3A%7Bnumber%3Anumber%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2CzMax%3A%7Bnumber%3Anumber%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2CshowAnimationControls%3A%7Bboolean%3Abool%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2CshowGrid%3A%7Bboolean%3Abool%7D%2CshowLegend%3A%7Bboolean%3Abool%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2CshowPerspective%3A%7Bboolean%3Abool%7D%2CshowShadow%3A%7Bboolean%3Abool%7D%2CshowXAxis%3A%7Bboolean%3Abool%7D%2CshowYAxis%3A%7Bboolean%3Abool%7D%2CshowZAxis%3A%7Bboolean%3Abool%7D%2CxStep%3A%7Bnumber%3Anumber%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2CyStep%3A%7Bnumber%3Anumber%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2CzStep%3A%7Bnumber%3Anumber%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2Cstyle%3A%7Bnumber%3Anumber%2Cstring%3A%5B%5C%5C%5C%22bar%5C%5C%5C%22%2C%5C%5C%5C%22bar-color%5C%5C%5C%22%2C%5C%5C%5C%22bar-size%5C%5C%5C%22%2C%5C%5C%5C%22dot%5C%5C%5C%22%2C%5C%5C%5C%22dot-line%5C%5C%5C%22%2C%5C%5C%5C%22dot-color%5C%5C%5C%22%2C%5C%5C%5C%22dot-size%5C%5C%5C%22%2C%5C%5C%5C%22line%5C%5C%5C%22%2C%5C%5C%5C%22grid%5C%5C%5C%22%2C%5C%5C%5C%22surface%5C%5C%5C%22%5D%7D%2Ctooltip%3A%7Bboolean%3Abool%2Cfunction%3A%5C%5C%5C%22function%5C%5C%5C%22%7D%2CtooltipStyle%3A%7Bcontent%3A%7Bcolor%3A%7Bstring%3Astring%7D%2Cbackground%3A%7Bstring%3Astring%7D%2Cborder%3A%7Bstring%3Astring%7D%2CborderRadius%3A%7Bstring%3Astring%7D%2CboxShadow%3A%7Bstring%3Astring%7D%2Cpadding%3A%7Bstring%3Astring%7D%2C__type__%3A%7Bobject%3Aobject%7D%7D%2Cline%3A%7BborderLeft%3A%7Bstring%3Astring%7D%2Cheight%3A%7Bstring%3Astring%7D%2Cwidth%3A%7Bstring%3Astring%7D%2C__type__%3A%7Bobject%3Aobject%7D%7D%2Cdot%3A%7Bborder%3A%7Bstring%3Astring%7D%2CborderRadius%3A%7Bstring%3Astring%7D%2Cheight%3A%7Bstring%3Astring%7D%2Cwidth%3A%7Bstring%3Astring%7D%2C__type__%3A%7Bobject%3Aobject%7D%7D%2C__type__%3A%7Bobject%3Aobject%7D%7D%2CxValueLabel%3A%7Bfunction%3A%5C%5C%5C%22function%5C%5C%5C%22%7D%2CyValueLabel%3A%7Bfunction%3A%5C%5C%5C%22function%5C%5C%5C%22%7D%2CzValueLabel%3A%7Bfunction%3A%5C%5C%5C%22function%5C%5C%5C%22%7D%2CvalueMax%3A%7Bnumber%3Anumber%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2CvalueMin%3A%7Bnumber%3Anumber%2Cundefined%3A%5C%5C%5C%22undefined%5C%5C%5C%22%7D%2CverticalRatio%3A%7Bnumber%3Anumber%7D%2Cheight%3A%7Bstring%3Astring%7D%2Cwidth%3A%7Bstring%3Astring%7D%2C__type__%3A%7Bobject%3Aobject%7D%7D%3Bexports.allOptions%3DallOptions%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bvar%20DataSet%3D__webpack_require__(11)%3Bvar%20DataView%3D__webpack_require__(12)%3Bvar%20Range%3D__webpack_require__(174)%3Bvar%20Filter%3D__webpack_require__(96)%3Bvar%20Settings%3D__webpack_require__(94)%3Bvar%20Point3d%3D__webpack_require__(34)%3Bfunction%20DataGroup()%7Bthis.dataTable%3Dnull%7DDataGroup.prototype.initializeData%3Dfunction(graph3d%2CrawData%2Cstyle)%7Bif(rawData%3D%3D%3Dundefined)return%3Bif(Array.isArray(rawData))%7BrawData%3Dnew%20DataSet(rawData)%7Dvar%20data%3Bif(rawData%20instanceof%20DataSet%7C%7CrawData%20instanceof%20DataView)%7Bdata%3DrawData.get()%7Delse%7Bthrow%20new%20Error(%5C%5C%5C%22Array%2C%20DataSet%2C%20or%20DataView%20expected%5C%5C%5C%22)%7Dif(data.length%3D%3D0)return%3Bthis.style%3Dstyle%3Bif(this.dataSet)%7Bthis.dataSet.off(%5C%5C%5C%22*%5C%5C%5C%22%2Cthis._onChange)%7Dthis.dataSet%3DrawData%3Bthis.dataTable%3Ddata%3Bvar%20me%3Dthis%3Bthis._onChange%3Dfunction()%7Bgraph3d.setData(me.dataSet)%7D%3Bthis.dataSet.on(%5C%5C%5C%22*%5C%5C%5C%22%2Cthis._onChange)%3Bthis.colX%3D%5C%5C%5C%22x%5C%5C%5C%22%3Bthis.colY%3D%5C%5C%5C%22y%5C%5C%5C%22%3Bthis.colZ%3D%5C%5C%5C%22z%5C%5C%5C%22%3Bvar%20withBars%3Dgraph3d.hasBars(style)%3Bif(withBars)%7Bif(graph3d.defaultXBarWidth!%3D%3Dundefined)%7Bthis.xBarWidth%3Dgraph3d.defaultXBarWidth%7Delse%7Bthis.xBarWidth%3Dthis.getSmallestDifference(data%2Cthis.colX)%7C%7C1%7Dif(graph3d.defaultYBarWidth!%3D%3Dundefined)%7Bthis.yBarWidth%3Dgraph3d.defaultYBarWidth%7Delse%7Bthis.yBarWidth%3Dthis.getSmallestDifference(data%2Cthis.colY)%7C%7C1%7D%7Dthis._initializeRange(data%2Cthis.colX%2Cgraph3d%2CwithBars)%3Bthis._initializeRange(data%2Cthis.colY%2Cgraph3d%2CwithBars)%3Bthis._initializeRange(data%2Cthis.colZ%2Cgraph3d%2Cfalse)%3Bif(data%5B0%5D.hasOwnProperty(%5C%5C%5C%22style%5C%5C%5C%22))%7Bthis.colValue%3D%5C%5C%5C%22style%5C%5C%5C%22%3Bvar%20valueRange%3Dthis.getColumnRange(data%2Cthis.colValue)%3Bthis._setRangeDefaults(valueRange%2Cgraph3d.defaultValueMin%2Cgraph3d.defaultValueMax)%3Bthis.valueRange%3DvalueRange%7Dvar%20table%3Dthis.getDataTable()%3Bif(table%5B0%5D.hasOwnProperty(%5C%5C%5C%22filter%5C%5C%5C%22))%7Bif(this.dataFilter%3D%3D%3Dundefined)%7Bthis.dataFilter%3Dnew%20Filter(this%2C%5C%5C%5C%22filter%5C%5C%5C%22%2Cgraph3d)%3Bthis.dataFilter.setOnLoadCallback(function()%7Bgraph3d.redraw()%7D)%7D%7Dvar%20dataPoints%3Bif(this.dataFilter)%7BdataPoints%3Dthis.dataFilter._getDataPoints()%7Delse%7BdataPoints%3Dthis._getDataPoints(this.getDataTable())%7Dreturn%20dataPoints%7D%3BDataGroup.prototype._collectRangeSettings%3Dfunction(column%2Cgraph3d)%7Bvar%20index%3D%5B%5C%5C%5C%22x%5C%5C%5C%22%2C%5C%5C%5C%22y%5C%5C%5C%22%2C%5C%5C%5C%22z%5C%5C%5C%22%5D.indexOf(column)%3Bif(index%3D%3D-1)%7Bthrow%20new%20Error(%5C%5C%5C%22Column%20'%5C%5C%5C%22%2Bcolumn%2B%5C%5C%5C%22'%20invalid%5C%5C%5C%22)%7Dvar%20upper%3Dcolumn.toUpperCase()%3Breturn%7BbarWidth%3Athis%5Bcolumn%2B%5C%5C%5C%22BarWidth%5C%5C%5C%22%5D%2Cmin%3Agraph3d%5B%5C%5C%5C%22default%5C%5C%5C%22%2Bupper%2B%5C%5C%5C%22Min%5C%5C%5C%22%5D%2Cmax%3Agraph3d%5B%5C%5C%5C%22default%5C%5C%5C%22%2Bupper%2B%5C%5C%5C%22Max%5C%5C%5C%22%5D%2Cstep%3Agraph3d%5B%5C%5C%5C%22default%5C%5C%5C%22%2Bupper%2B%5C%5C%5C%22Step%5C%5C%5C%22%5D%2Crange_label%3Acolumn%2B%5C%5C%5C%22Range%5C%5C%5C%22%2Cstep_label%3Acolumn%2B%5C%5C%5C%22Step%5C%5C%5C%22%7D%7D%3BDataGroup.prototype._initializeRange%3Dfunction(data%2Ccolumn%2Cgraph3d%2CwithBars)%7Bvar%20NUMSTEPS%3D5%3Bvar%20settings%3Dthis._collectRangeSettings(column%2Cgraph3d)%3Bvar%20range%3Dthis.getColumnRange(data%2Ccolumn)%3Bif(withBars%26%26column!%3D%5C%5C%5C%22z%5C%5C%5C%22)%7Brange.expand(settings.barWidth%2F2)%7Dthis._setRangeDefaults(range%2Csettings.min%2Csettings.max)%3Bthis%5Bsettings.range_label%5D%3Drange%3Bthis%5Bsettings.step_label%5D%3Dsettings.step!%3D%3Dundefined%3Fsettings.step%3Arange.range()%2FNUMSTEPS%7D%3BDataGroup.prototype.getDistinctValues%3Dfunction(column%2Cdata)%7Bif(data%3D%3D%3Dundefined)%7Bdata%3Dthis.dataTable%7Dvar%20values%3D%5B%5D%3Bfor(var%20i%3D0%3Bi%3Cdata.length%3Bi%2B%2B)%7Bvar%20value%3Ddata%5Bi%5D%5Bcolumn%5D%7C%7C0%3Bif(values.indexOf(value)%3D%3D%3D-1)%7Bvalues.push(value)%7D%7Dreturn%20values.sort(function(a%2Cb)%7Breturn%20a-b%7D)%7D%3BDataGroup.prototype.getSmallestDifference%3Dfunction(data%2Ccolumn)%7Bvar%20values%3Dthis.getDistinctValues(data%2Ccolumn)%3Bvar%20smallest_diff%3Dnull%3Bfor(var%20i%3D1%3Bi%3Cvalues.length%3Bi%2B%2B)%7Bvar%20diff%3Dvalues%5Bi%5D-values%5Bi-1%5D%3Bif(smallest_diff%3D%3Dnull%7C%7Csmallest_diff%3Ediff)%7Bsmallest_diff%3Ddiff%7D%7Dreturn%20smallest_diff%7D%3BDataGroup.prototype.getColumnRange%3Dfunction(data%2Ccolumn)%7Bvar%20range%3Dnew%20Range%3Bfor(var%20i%3D0%3Bi%3Cdata.length%3Bi%2B%2B)%7Bvar%20item%3Ddata%5Bi%5D%5Bcolumn%5D%3Brange.adjust(item)%7Dreturn%20range%7D%3BDataGroup.prototype.getNumberOfRows%3Dfunction()%7Breturn%20this.dataTable.length%7D%3BDataGroup.prototype._setRangeDefaults%3Dfunction(range%2CdefaultMin%2CdefaultMax)%7Bif(defaultMin!%3D%3Dundefined)%7Brange.min%3DdefaultMin%7Dif(defaultMax!%3D%3Dundefined)%7Brange.max%3DdefaultMax%7Dif(range.max%3C%3Drange.min)range.max%3Drange.min%2B1%7D%3BDataGroup.prototype.getDataTable%3Dfunction()%7Breturn%20this.dataTable%7D%3BDataGroup.prototype.getDataSet%3Dfunction()%7Breturn%20this.dataSet%7D%3BDataGroup.prototype.getDataPoints%3Dfunction(data)%7Bvar%20dataPoints%3D%5B%5D%3Bfor(var%20i%3D0%3Bi%3Cdata.length%3Bi%2B%2B)%7Bvar%20point%3Dnew%20Point3d%3Bpoint.x%3Ddata%5Bi%5D%5Bthis.colX%5D%7C%7C0%3Bpoint.y%3Ddata%5Bi%5D%5Bthis.colY%5D%7C%7C0%3Bpoint.z%3Ddata%5Bi%5D%5Bthis.colZ%5D%7C%7C0%3Bpoint.data%3Ddata%5Bi%5D%3Bif(this.colValue!%3D%3Dundefined)%7Bpoint.value%3Ddata%5Bi%5D%5Bthis.colValue%5D%7C%7C0%7Dvar%20obj%3D%7B%7D%3Bobj.point%3Dpoint%3Bobj.bottom%3Dnew%20Point3d(point.x%2Cpoint.y%2Cthis.zRange.min)%3Bobj.trans%3Dundefined%3Bobj.screen%3Dundefined%3BdataPoints.push(obj)%7Dreturn%20dataPoints%7D%3BDataGroup.prototype.initDataAsMatrix%3Dfunction(data)%7Bvar%20x%2Cy%2Ci%2Cobj%3Bvar%20dataX%3Dthis.getDistinctValues(this.colX%2Cdata)%3Bvar%20dataY%3Dthis.getDistinctValues(this.colY%2Cdata)%3Bvar%20dataPoints%3Dthis.getDataPoints(data)%3Bvar%20dataMatrix%3D%5B%5D%3Bfor(i%3D0%3Bi%3CdataPoints.length%3Bi%2B%2B)%7Bobj%3DdataPoints%5Bi%5D%3Bvar%20xIndex%3DdataX.indexOf(obj.point.x)%3Bvar%20yIndex%3DdataY.indexOf(obj.point.y)%3Bif(dataMatrix%5BxIndex%5D%3D%3D%3Dundefined)%7BdataMatrix%5BxIndex%5D%3D%5B%5D%7DdataMatrix%5BxIndex%5D%5ByIndex%5D%3Dobj%7Dfor(x%3D0%3Bx%3CdataMatrix.length%3Bx%2B%2B)%7Bfor(y%3D0%3By%3CdataMatrix%5Bx%5D.length%3By%2B%2B)%7Bif(dataMatrix%5Bx%5D%5By%5D)%7BdataMatrix%5Bx%5D%5By%5D.pointRight%3Dx%3CdataMatrix.length-1%3FdataMatrix%5Bx%2B1%5D%5By%5D%3Aundefined%3BdataMatrix%5Bx%5D%5By%5D.pointTop%3Dy%3CdataMatrix%5Bx%5D.length-1%3FdataMatrix%5Bx%5D%5By%2B1%5D%3Aundefined%3BdataMatrix%5Bx%5D%5By%5D.pointCross%3Dx%3CdataMatrix.length-1%26%26y%3CdataMatrix%5Bx%5D.length-1%3FdataMatrix%5Bx%2B1%5D%5By%2B1%5D%3Aundefined%7D%7D%7Dreturn%20dataPoints%7D%3BDataGroup.prototype.getInfo%3Dfunction()%7Bvar%20dataFilter%3Dthis.dataFilter%3Bif(!dataFilter)return%20undefined%3Breturn%20dataFilter.getLabel()%2B%5C%5C%5C%22%3A%20%5C%5C%5C%22%2BdataFilter.getSelectedValue()%7D%3BDataGroup.prototype.reload%3Dfunction()%7Bif(this.dataTable)%7Bthis.setData(this.dataTable)%7D%7D%3BDataGroup.prototype._getDataPoints%3Dfunction(data)%7Bvar%20dataPoints%3D%5B%5D%3Bif(this.style%3D%3D%3DSettings.STYLE.GRID%7C%7Cthis.style%3D%3D%3DSettings.STYLE.SURFACE)%7BdataPoints%3Dthis.initDataAsMatrix(data)%7Delse%7Bthis._checkValueField(data)%3BdataPoints%3Dthis.getDataPoints(data)%3Bif(this.style%3D%3D%3DSettings.STYLE.LINE)%7Bfor(var%20i%3D0%3Bi%3CdataPoints.length%3Bi%2B%2B)%7Bif(i%3E0)%7BdataPoints%5Bi-1%5D.pointNext%3DdataPoints%5Bi%5D%7D%7D%7D%7Dreturn%20dataPoints%7D%3BDataGroup.prototype._checkValueField%3Dfunction(data)%7Bvar%20hasValueField%3Dthis.style%3D%3D%3DSettings.STYLE.BARCOLOR%7C%7Cthis.style%3D%3D%3DSettings.STYLE.BARSIZE%7C%7Cthis.style%3D%3D%3DSettings.STYLE.DOTCOLOR%7C%7Cthis.style%3D%3D%3DSettings.STYLE.DOTSIZE%3Bif(!hasValueField)%7Breturn%7Dif(this.colValue%3D%3D%3Dundefined)%7Bthrow%20new%20Error(%5C%5C%5C%22Expected%20data%20to%20have%20%5C%5C%5C%22%2B%5C%5C%5C%22%20field%20'style'%20%5C%5C%5C%22%2B%5C%5C%5C%22%20for%20graph%20style%20'%5C%5C%5C%22%2Bthis.style%2B%5C%5C%5C%22'%5C%5C%5C%22)%7Dif(data%5B0%5D%5Bthis.colValue%5D%3D%3D%3Dundefined)%7Bthrow%20new%20Error(%5C%5C%5C%22Expected%20data%20to%20have%20%5C%5C%5C%22%2B%5C%5C%5C%22%20field%20'%5C%5C%5C%22%2Bthis.colValue%2B%5C%5C%5C%22'%20%5C%5C%5C%22%2B%5C%5C%5C%22%20for%20graph%20style%20'%5C%5C%5C%22%2Bthis.style%2B%5C%5C%5C%22'%5C%5C%5C%22)%7D%7D%3Bmodule.exports%3DDataGroup%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bfunction%20Range()%7Bthis.min%3Dundefined%3Bthis.max%3Dundefined%7DRange.prototype.adjust%3Dfunction(value)%7Bif(value%3D%3D%3Dundefined)return%3Bif(this.min%3D%3D%3Dundefined%7C%7Cthis.min%3Evalue)%7Bthis.min%3Dvalue%7Dif(this.max%3D%3D%3Dundefined%7C%7Cthis.max%3Cvalue)%7Bthis.max%3Dvalue%7D%7D%3BRange.prototype.combine%3Dfunction(range)%7Bthis.add(range.min)%3Bthis.add(range.max)%7D%3BRange.prototype.expand%3Dfunction(val)%7Bif(val%3D%3D%3Dundefined)%7Breturn%7Dvar%20newMin%3Dthis.min-val%3Bvar%20newMax%3Dthis.max%2Bval%3Bif(newMin%3EnewMax)%7Bthrow%20new%20Error(%5C%5C%5C%22Passed%20expansion%20value%20makes%20range%20invalid%5C%5C%5C%22)%7Dthis.min%3DnewMin%3Bthis.max%3DnewMax%7D%3BRange.prototype.range%3Dfunction()%7Breturn%20this.max-this.min%7D%3BRange.prototype.center%3Dfunction()%7Breturn(this.min%2Bthis.max)%2F2%7D%3Bmodule.exports%3DRange%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bvar%20__WEBPACK_AMD_DEFINE_FACTORY__%2C__WEBPACK_AMD_DEFINE_ARRAY__%2C__WEBPACK_AMD_DEFINE_RESULT__%3B(function(factory)%7Bif(true)%7B!(__WEBPACK_AMD_DEFINE_ARRAY__%3D%5B%5D%2C__WEBPACK_AMD_DEFINE_FACTORY__%3Dfactory%2C__WEBPACK_AMD_DEFINE_RESULT__%3Dtypeof%20__WEBPACK_AMD_DEFINE_FACTORY__%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22%3F__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports%2C__WEBPACK_AMD_DEFINE_ARRAY__)%3A__WEBPACK_AMD_DEFINE_FACTORY__%2C__WEBPACK_AMD_DEFINE_RESULT__!%3D%3Dundefined%26%26(module.exports%3D__WEBPACK_AMD_DEFINE_RESULT__))%7Delse%20if(typeof%20exports%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22)%7Bmodule.exports%3Dfactory()%7Delse%7Bwindow.propagating%3Dfactory()%7D%7D)(function()%7Bvar%20_firstTarget%3Dnull%3Breturn%20function%20propagating(hammer%2Coptions)%7Bvar%20_options%3Doptions%7C%7C%7BpreventDefault%3Afalse%7D%3Bif(hammer.Manager)%7Bvar%20Hammer%3Dhammer%3Bvar%20PropagatingHammer%3Dfunction(element%2Coptions)%7Bvar%20o%3DObject.create(_options)%3Bif(options)Hammer.assign(o%2Coptions)%3Breturn%20propagating(new%20Hammer(element%2Co)%2Co)%7D%3BHammer.assign(PropagatingHammer%2CHammer)%3BPropagatingHammer.Manager%3Dfunction(element%2Coptions)%7Bvar%20o%3DObject.create(_options)%3Bif(options)Hammer.assign(o%2Coptions)%3Breturn%20propagating(new%20Hammer.Manager(element%2Co)%2Co)%7D%3Breturn%20PropagatingHammer%7Dvar%20wrapper%3DObject.create(hammer)%3Bvar%20element%3Dhammer.element%3Bif(!element.hammer)element.hammer%3D%5B%5D%3Belement.hammer.push(wrapper)%3Bhammer.on(%5C%5C%5C%22hammer.input%5C%5C%5C%22%2Cfunction(event)%7Bif(_options.preventDefault%3D%3D%3Dtrue%7C%7C_options.preventDefault%3D%3D%3Devent.pointerType)%7Bevent.preventDefault()%7Dif(event.isFirst)%7B_firstTarget%3Devent.target%7D%7D)%3Bwrapper._handlers%3D%7B%7D%3Bwrapper.on%3Dfunction(events%2Chandler)%7Bsplit(events).forEach(function(event)%7Bvar%20_handlers%3Dwrapper._handlers%5Bevent%5D%3Bif(!_handlers)%7Bwrapper._handlers%5Bevent%5D%3D_handlers%3D%5B%5D%3Bhammer.on(event%2CpropagatedHandler)%7D_handlers.push(handler)%7D)%3Breturn%20wrapper%7D%3Bwrapper.off%3Dfunction(events%2Chandler)%7Bsplit(events).forEach(function(event)%7Bvar%20_handlers%3Dwrapper._handlers%5Bevent%5D%3Bif(_handlers)%7B_handlers%3Dhandler%3F_handlers.filter(function(h)%7Breturn%20h!%3D%3Dhandler%7D)%3A%5B%5D%3Bif(_handlers.length%3E0)%7Bwrapper._handlers%5Bevent%5D%3D_handlers%7Delse%7Bhammer.off(event%2CpropagatedHandler)%3Bdelete%20wrapper._handlers%5Bevent%5D%7D%7D%7D)%3Breturn%20wrapper%7D%3Bwrapper.emit%3Dfunction(eventType%2Cevent)%7B_firstTarget%3Devent.target%3Bhammer.emit(eventType%2Cevent)%7D%3Bwrapper.destroy%3Dfunction()%7Bvar%20hammers%3Dhammer.element.hammer%3Bvar%20idx%3Dhammers.indexOf(wrapper)%3Bif(idx!%3D%3D-1)hammers.splice(idx%2C1)%3Bif(!hammers.length)delete%20hammer.element.hammer%3Bwrapper._handlers%3D%7B%7D%3Bhammer.destroy()%7D%3Bfunction%20split(events)%7Breturn%20events.match(%2F%5B%5E%20%5D%2B%2Fg)%7Dfunction%20propagatedHandler(event)%7Bif(event.type!%3D%3D%5C%5C%5C%22hammer.input%5C%5C%5C%22)%7Bif(!event.srcEvent._handled)%7Bevent.srcEvent._handled%3D%7B%7D%7Dif(event.srcEvent._handled%5Bevent.type%5D)%7Breturn%7Delse%7Bevent.srcEvent._handled%5Bevent.type%5D%3Dtrue%7D%7Dvar%20stopped%3Dfalse%5C%5Cn%3Bevent.stopPropagation%3Dfunction()%7Bstopped%3Dtrue%7D%3Bvar%20srcStop%3Devent.srcEvent.stopPropagation.bind(event.srcEvent)%3Bif(typeof%20srcStop%3D%3D%5C%5C%5C%22function%5C%5C%5C%22)%7Bevent.srcEvent.stopPropagation%3Dfunction()%7BsrcStop()%3Bevent.stopPropagation()%7D%7Devent.firstTarget%3D_firstTarget%3Bvar%20elem%3D_firstTarget%3Bwhile(elem%26%26!stopped)%7Bvar%20elemHammer%3Delem.hammer%3Bif(elemHammer)%7Bvar%20_handlers%3Bfor(var%20k%3D0%3Bk%3CelemHammer.length%3Bk%2B%2B)%7B_handlers%3DelemHammer%5Bk%5D._handlers%5Bevent.type%5D%3Bif(_handlers)for(var%20i%3D0%3Bi%3C_handlers.length%26%26!stopped%3Bi%2B%2B)%7B_handlers%5Bi%5D(event)%7D%7D%7Delem%3Delem.parentNode%7D%7Dreturn%20wrapper%7D%7D)%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7Bvar%20__WEBPACK_AMD_DEFINE_RESULT__%3B(function(window%2Cdocument%2CexportName%2Cundefined)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bvar%20VENDOR_PREFIXES%3D%5B%5C%5C%5C%22%5C%5C%5C%22%2C%5C%5C%5C%22webkit%5C%5C%5C%22%2C%5C%5C%5C%22Moz%5C%5C%5C%22%2C%5C%5C%5C%22MS%5C%5C%5C%22%2C%5C%5C%5C%22ms%5C%5C%5C%22%2C%5C%5C%5C%22o%5C%5C%5C%22%5D%3Bvar%20TEST_ELEMENT%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bvar%20TYPE_FUNCTION%3D%5C%5C%5C%22function%5C%5C%5C%22%3Bvar%20round%3DMath.round%3Bvar%20abs%3DMath.abs%3Bvar%20now%3DDate.now%3Bfunction%20setTimeoutContext(fn%2Ctimeout%2Ccontext)%7Breturn%20setTimeout(bindFn(fn%2Ccontext)%2Ctimeout)%7Dfunction%20invokeArrayArg(arg%2Cfn%2Ccontext)%7Bif(Array.isArray(arg))%7Beach(arg%2Ccontext%5Bfn%5D%2Ccontext)%3Breturn%20true%7Dreturn%20false%7Dfunction%20each(obj%2Citerator%2Ccontext)%7Bvar%20i%3Bif(!obj)%7Breturn%7Dif(obj.forEach)%7Bobj.forEach(iterator%2Ccontext)%7Delse%20if(obj.length!%3D%3Dundefined)%7Bi%3D0%3Bwhile(i%3Cobj.length)%7Biterator.call(context%2Cobj%5Bi%5D%2Ci%2Cobj)%3Bi%2B%2B%7D%7Delse%7Bfor(i%20in%20obj)%7Bobj.hasOwnProperty(i)%26%26iterator.call(context%2Cobj%5Bi%5D%2Ci%2Cobj)%7D%7D%7Dfunction%20deprecate(method%2Cname%2Cmessage)%7Bvar%20deprecationMessage%3D%5C%5C%5C%22DEPRECATED%20METHOD%3A%20%5C%5C%5C%22%2Bname%2B%5C%5C%5C%22%5C%5C%5C%5Cn%5C%5C%5C%22%2Bmessage%2B%5C%5C%5C%22%20AT%20%5C%5C%5C%5Cn%5C%5C%5C%22%3Breturn%20function()%7Bvar%20e%3Dnew%20Error(%5C%5C%5C%22get-stack-trace%5C%5C%5C%22)%3Bvar%20stack%3De%26%26e.stack%3Fe.stack.replace(%2F%5E%5B%5E%5C%5C%5C%5C(%5D%2B%3F%5B%5C%5C%5C%5Cn%24%5D%2Fgm%2C%5C%5C%5C%22%5C%5C%5C%22).replace(%2F%5E%5C%5C%5C%5Cs%2Bat%5C%5C%5C%5Cs%2B%2Fgm%2C%5C%5C%5C%22%5C%5C%5C%22).replace(%2F%5EObject.%3Canonymous%3E%5C%5C%5C%5Cs*%5C%5C%5C%5C(%2Fgm%2C%5C%5C%5C%22%7Banonymous%7D()%40%5C%5C%5C%22)%3A%5C%5C%5C%22Unknown%20Stack%20Trace%5C%5C%5C%22%3Bvar%20log%3Dwindow.console%26%26(window.console.warn%7C%7Cwindow.console.log)%3Bif(log)%7Blog.call(window.console%2CdeprecationMessage%2Cstack)%7Dreturn%20method.apply(this%2Carguments)%7D%7Dvar%20assign%3Bif(typeof%20Object.assign!%3D%3D%5C%5C%5C%22function%5C%5C%5C%22)%7Bassign%3Dfunction%20assign(target)%7Bif(target%3D%3D%3Dundefined%7C%7Ctarget%3D%3D%3Dnull)%7Bthrow%20new%20TypeError(%5C%5C%5C%22Cannot%20convert%20undefined%20or%20null%20to%20object%5C%5C%5C%22)%7Dvar%20output%3DObject(target)%3Bfor(var%20index%3D1%3Bindex%3Carguments.length%3Bindex%2B%2B)%7Bvar%20source%3Darguments%5Bindex%5D%3Bif(source!%3D%3Dundefined%26%26source!%3D%3Dnull)%7Bfor(var%20nextKey%20in%20source)%7Bif(source.hasOwnProperty(nextKey))%7Boutput%5BnextKey%5D%3Dsource%5BnextKey%5D%7D%7D%7D%7Dreturn%20output%7D%7Delse%7Bassign%3DObject.assign%7Dvar%20extend%3Ddeprecate(function%20extend(dest%2Csrc%2Cmerge)%7Bvar%20keys%3DObject.keys(src)%3Bvar%20i%3D0%3Bwhile(i%3Ckeys.length)%7Bif(!merge%7C%7Cmerge%26%26dest%5Bkeys%5Bi%5D%5D%3D%3D%3Dundefined)%7Bdest%5Bkeys%5Bi%5D%5D%3Dsrc%5Bkeys%5Bi%5D%5D%7Di%2B%2B%7Dreturn%20dest%7D%2C%5C%5C%5C%22extend%5C%5C%5C%22%2C%5C%5C%5C%22Use%20%60assign%60.%5C%5C%5C%22)%3Bvar%20merge%3Ddeprecate(function%20merge(dest%2Csrc)%7Breturn%20extend(dest%2Csrc%2Ctrue)%7D%2C%5C%5C%5C%22merge%5C%5C%5C%22%2C%5C%5C%5C%22Use%20%60assign%60.%5C%5C%5C%22)%3Bfunction%20inherit(child%2Cbase%2Cproperties)%7Bvar%20baseP%3Dbase.prototype%2CchildP%3BchildP%3Dchild.prototype%3DObject.create(baseP)%3BchildP.constructor%3Dchild%3BchildP._super%3DbaseP%3Bif(properties)%7Bassign(childP%2Cproperties)%7D%7Dfunction%20bindFn(fn%2Ccontext)%7Breturn%20function%20boundFn()%7Breturn%20fn.apply(context%2Carguments)%7D%7Dfunction%20boolOrFn(val%2Cargs)%7Bif(typeof%20val%3D%3DTYPE_FUNCTION)%7Breturn%20val.apply(args%3Fargs%5B0%5D%7C%7Cundefined%3Aundefined%2Cargs)%7Dreturn%20val%7Dfunction%20ifUndefined(val1%2Cval2)%7Breturn%20val1%3D%3D%3Dundefined%3Fval2%3Aval1%7Dfunction%20addEventListeners(target%2Ctypes%2Chandler)%7Beach(splitStr(types)%2Cfunction(type)%7Btarget.addEventListener(type%2Chandler%2Cfalse)%7D)%7Dfunction%20removeEventListeners(target%2Ctypes%2Chandler)%7Beach(splitStr(types)%2Cfunction(type)%7Btarget.removeEventListener(type%2Chandler%2Cfalse)%7D)%7Dfunction%20hasParent(node%2Cparent)%7Bwhile(node)%7Bif(node%3D%3Dparent)%7Breturn%20true%7Dnode%3Dnode.parentNode%7Dreturn%20false%7Dfunction%20inStr(str%2Cfind)%7Breturn%20str.indexOf(find)%3E-1%7Dfunction%20splitStr(str)%7Breturn%20str.trim().split(%2F%5C%5C%5C%5Cs%2B%2Fg)%7Dfunction%20inArray(src%2Cfind%2CfindByKey)%7Bif(src.indexOf%26%26!findByKey)%7Breturn%20src.indexOf(find)%7Delse%7Bvar%20i%3D0%3Bwhile(i%3Csrc.length)%7Bif(findByKey%26%26src%5Bi%5D%5BfindByKey%5D%3D%3Dfind%7C%7C!findByKey%26%26src%5Bi%5D%3D%3D%3Dfind)%7Breturn%20i%7Di%2B%2B%7Dreturn-1%7D%7Dfunction%20toArray(obj)%7Breturn%20Array.prototype.slice.call(obj%2C0)%7Dfunction%20uniqueArray(src%2Ckey%2Csort)%7Bvar%20results%3D%5B%5D%3Bvar%20values%3D%5B%5D%3Bvar%20i%3D0%3Bwhile(i%3Csrc.length)%7Bvar%20val%3Dkey%3Fsrc%5Bi%5D%5Bkey%5D%3Asrc%5Bi%5D%3Bif(inArray(values%2Cval)%3C0)%7Bresults.push(src%5Bi%5D)%7Dvalues%5Bi%5D%3Dval%3Bi%2B%2B%7Dif(sort)%7Bif(!key)%7Bresults%3Dresults.sort()%7Delse%7Bresults%3Dresults.sort(function%20sortUniqueArray(a%2Cb)%7Breturn%20a%5Bkey%5D%3Eb%5Bkey%5D%7D)%7D%7Dreturn%20results%7Dfunction%20prefixed(obj%2Cproperty)%7Bvar%20prefix%2Cprop%3Bvar%20camelProp%3Dproperty%5B0%5D.toUpperCase()%2Bproperty.slice(1)%3Bvar%20i%3D0%3Bwhile(i%3CVENDOR_PREFIXES.length)%7Bprefix%3DVENDOR_PREFIXES%5Bi%5D%3Bprop%3Dprefix%3Fprefix%2BcamelProp%3Aproperty%3Bif(prop%20in%20obj)%7Breturn%20prop%7Di%2B%2B%7Dreturn%20undefined%7Dvar%20_uniqueId%3D1%3Bfunction%20uniqueId()%7Breturn%20_uniqueId%2B%2B%7Dfunction%20getWindowForElement(element)%7Bvar%20doc%3Delement.ownerDocument%7C%7Celement%3Breturn%20doc.defaultView%7C%7Cdoc.parentWindow%7C%7Cwindow%7Dvar%20MOBILE_REGEX%3D%2Fmobile%7Ctablet%7Cip(ad%7Chone%7Cod)%7Candroid%2Fi%3Bvar%20SUPPORT_TOUCH%3D%5C%5C%5C%22ontouchstart%5C%5C%5C%22in%20window%3Bvar%20SUPPORT_POINTER_EVENTS%3Dprefixed(window%2C%5C%5C%5C%22PointerEvent%5C%5C%5C%22)!%3D%3Dundefined%3Bvar%20SUPPORT_ONLY_TOUCH%3DSUPPORT_TOUCH%26%26MOBILE_REGEX.test(navigator.userAgent)%3Bvar%20INPUT_TYPE_TOUCH%3D%5C%5C%5C%22touch%5C%5C%5C%22%3Bvar%20INPUT_TYPE_PEN%3D%5C%5C%5C%22pen%5C%5C%5C%22%3Bvar%20INPUT_TYPE_MOUSE%3D%5C%5C%5C%22mouse%5C%5C%5C%22%3Bvar%20INPUT_TYPE_KINECT%3D%5C%5C%5C%22kinect%5C%5C%5C%22%3Bvar%20COMPUTE_INTERVAL%3D25%3Bvar%20INPUT_START%3D1%3Bvar%20INPUT_MOVE%3D2%3Bvar%20INPUT_END%3D4%3Bvar%20INPUT_CANCEL%3D8%3Bvar%20DIRECTION_NONE%3D1%3Bvar%20DIRECTION_LEFT%3D2%3Bvar%20DIRECTION_RIGHT%3D4%3Bvar%20DIRECTION_UP%3D8%3Bvar%20DIRECTION_DOWN%3D16%3Bvar%20DIRECTION_HORIZONTAL%3DDIRECTION_LEFT%7CDIRECTION_RIGHT%3Bvar%20DIRECTION_VERTICAL%3DDIRECTION_UP%7CDIRECTION_DOWN%3Bvar%20DIRECTION_ALL%3DDIRECTION_HORIZONTAL%7CDIRECTION_VERTICAL%3Bvar%20PROPS_XY%3D%5B%5C%5C%5C%22x%5C%5C%5C%22%2C%5C%5C%5C%22y%5C%5C%5C%22%5D%3Bvar%20PROPS_CLIENT_XY%3D%5B%5C%5C%5C%22clientX%5C%5C%5C%22%2C%5C%5C%5C%22clientY%5C%5C%5C%22%5D%3Bfunction%20Input(manager%2Ccallback)%7Bvar%20self%3Dthis%3Bthis.manager%3Dmanager%3Bthis.callback%3Dcallback%3Bthis.element%3Dmanager.element%3Bthis.target%3Dmanager.options.inputTarget%3Bthis.domHandler%3Dfunction(ev)%7Bif(boolOrFn(manager.options.enable%2C%5Bmanager%5D))%7Bself.handler(ev)%7D%7D%3Bthis.init()%7DInput.prototype%3D%7Bhandler%3Afunction()%7B%7D%2Cinit%3Afunction()%7Bthis.evEl%26%26addEventListeners(this.element%2Cthis.evEl%2Cthis.domHandler)%3Bthis.evTarget%26%26addEventListeners(this.target%2Cthis.evTarget%2Cthis.domHandler)%3Bthis.evWin%26%26addEventListeners(getWindowForElement(this.element)%2Cthis.evWin%2Cthis.domHandler)%7D%2Cdestroy%3Afunction()%7Bthis.evEl%26%26removeEventListeners(this.element%2Cthis.evEl%2Cthis.domHandler)%3Bthis.evTarget%26%26removeEventListeners(this.target%2Cthis.evTarget%2Cthis.domHandler)%3Bthis.evWin%26%26removeEventListeners(getWindowForElement(this.element)%2Cthis.evWin%2Cthis.domHandler)%7D%7D%3Bfunction%20createInputInstance(manager)%7Bvar%20Type%3Bvar%20inputClass%3Dmanager.options.inputClass%3Bif(inputClass)%7BType%3DinputClass%7Delse%20if(SUPPORT_POINTER_EVENTS)%7BType%3DPointerEventInput%7Delse%20if(SUPPORT_ONLY_TOUCH)%7BType%3DTouchInput%7Delse%20if(!SUPPORT_TOUCH)%7BType%3DMouseInput%7Delse%7BType%3DTouchMouseInput%7Dreturn%20new%20Type(manager%2CinputHandler)%7Dfunction%20inputHandler(manager%2CeventType%2Cinput)%7Bvar%20pointersLen%3Dinput.pointers.length%3Bvar%20changedPointersLen%3Dinput.changedPointers.length%3Bvar%20isFirst%3DeventType%26INPUT_START%26%26pointersLen-changedPointersLen%3D%3D%3D0%3Bvar%20isFinal%3DeventType%26(INPUT_END%7CINPUT_CANCEL)%26%26pointersLen-changedPointersLen%3D%3D%3D0%3Binput.isFirst%3D!!isFirst%3Binput.isFinal%3D!!isFinal%3Bif(isFirst)%7Bmanager.session%3D%7B%7D%7Dinput.eventType%3DeventType%3BcomputeInputData(manager%2Cinput)%3Bmanager.emit(%5C%5C%5C%22hammer.input%5C%5C%5C%22%2Cinput)%3Bmanager.recognize(input)%3Bmanager.session.prevInput%3Dinput%7Dfunction%20computeInputData(manager%2Cinput)%7Bvar%20session%3Dmanager.session%3Bvar%20pointers%3Dinput.pointers%3Bvar%20pointersLength%3Dpointers.length%3Bif(!session.firstInput)%7Bsession.firstInput%3DsimpleCloneInputData(input)%7Dif(pointersLength%3E1%26%26!session.firstMultiple)%7Bsession.firstMultiple%3DsimpleCloneInputData(input)%7Delse%20if(pointersLength%3D%3D%3D1)%7Bsession.firstMultiple%3Dfalse%7Dvar%20firstInput%3Dsession.firstInput%3Bvar%20firstMultiple%3Dsession.firstMultiple%3Bvar%20offsetCenter%3DfirstMultiple%3FfirstMultiple.center%3AfirstInput.center%3Bvar%20center%3Dinput.center%3DgetCenter(pointers)%3Binput.timeStamp%3Dnow()%3Binput.deltaTime%3Dinput.timeStamp-firstInput.timeStamp%3Binput.angle%3DgetAngle(offsetCenter%2Ccenter)%3Binput.distance%3DgetDistance(offsetCenter%2Ccenter)%3BcomputeDeltaXY(session%2Cinput)%3Binput.offsetDirection%3DgetDirection(input.deltaX%2Cinput.deltaY)%3Bvar%20overallVelocity%3DgetVelocity(input.deltaTime%2Cinput.deltaX%2Cinput.deltaY)%3Binput.overallVelocityX%3DoverallVelocity.x%3Binput.overallVelocityY%3DoverallVelocity.y%3Binput.overallVelocity%3Dabs(overallVelocity.x)%3Eabs(overallVelocity.y)%3FoverallVelocity.x%3AoverallVelocity.y%3Binput.scale%3DfirstMultiple%3FgetScale(firstMultiple.pointers%2Cpointers)%3A1%3Binput.rotation%3DfirstMultiple%3FgetRotation(firstMultiple.pointers%2Cpointers)%3A0%3Binput.maxPointers%3D!session.prevInput%3Finput.pointers.length%3Ainput.pointers.length%3Esession.prevInput.maxPointers%3Finput.pointers.length%3Asession.prevInput.maxPointers%3BcomputeIntervalInputData(session%2Cinput)%3Bvar%20target%3Dmanager.element%3Bif(hasParent(input.srcEvent.target%2Ctarget))%7Btarget%3Dinput.srcEvent.target%7Dinput.target%3Dtarget%7Dfunction%20computeDeltaXY(session%2Cinput)%7Bvar%20center%3Dinput.center%3Bvar%20offset%3Dsession.offsetDelta%7C%7C%7B%7D%3Bvar%20prevDelta%3Dsession.prevDelta%7C%7C%7B%7D%3Bvar%20prevInput%3Dsession.prevInput%7C%7C%7B%7D%3Bif(input.eventType%3D%3D%3DINPUT_START%7C%7CprevInput.eventType%3D%3D%3DINPUT_END)%7BprevDelta%3Dsession.prevDelta%3D%7Bx%3AprevInput.deltaX%7C%7C0%2Cy%3AprevInput.deltaY%7C%7C0%7D%3Boffset%3Dsession.offsetDelta%3D%7Bx%3Acenter.x%2Cy%3Acenter.y%7D%7Dinput.deltaX%3DprevDelta.x%2B(center.x-offset.x)%3Binput.deltaY%3DprevDelta.y%2B(center.y-offset.y)%7Dfunction%20computeIntervalInputData(session%2Cinput)%7Bvar%20last%3Dsession.lastInterval%7C%7Cinput%2CdeltaTime%3Dinput.timeStamp-last.timeStamp%2Cvelocity%2CvelocityX%2CvelocityY%2Cdirection%3Bif(input.eventType!%3DINPUT_CANCEL%26%26(deltaTime%3ECOMPUTE_INTERVAL%7C%7Clast.velocity%3D%3D%3Dundefined))%7Bvar%20deltaX%3Dinput.deltaX-last.deltaX%3Bvar%20deltaY%3Dinput.deltaY-last.deltaY%3Bvar%20v%3DgetVelocity(deltaTime%2CdeltaX%2CdeltaY)%3BvelocityX%3Dv.x%3BvelocityY%3Dv.y%3Bvelocity%3Dabs(v.x)%3Eabs(v.y)%3Fv.x%3Av.y%3Bdirection%3DgetDirection(deltaX%2CdeltaY)%3Bsession.lastInterval%3Dinput%7Delse%7Bvelocity%3Dlast.velocity%3BvelocityX%3Dlast.velocityX%3BvelocityY%3Dlast.velocityY%3Bdirection%3Dlast.direction%7Dinput.velocity%3Dvelocity%3Binput.velocityX%3DvelocityX%3Binput.velocityY%3DvelocityY%3Binput.direction%3Ddirection%7Dfunction%20simpleCloneInputData(input)%7Bvar%20pointers%3D%5B%5D%3Bvar%20i%3D0%3Bwhile(i%3Cinput.pointers.length)%7Bpointers%5Bi%5D%3D%7BclientX%3Around(input.pointers%5Bi%5D.clientX)%2CclientY%3Around(input.pointers%5Bi%5D.clientY)%7D%3Bi%2B%2B%7Dreturn%7BtimeStamp%3Anow()%2Cpointers%3Apointers%2Ccenter%3AgetCenter(pointers)%2CdeltaX%3Ainput.deltaX%2CdeltaY%3Ainput.deltaY%7D%7Dfunction%20getCenter(pointers)%7Bvar%20pointersLength%3Dpointers.length%3Bif(pointersLength%3D%3D%3D1)%7Breturn%7Bx%3Around(pointers%5B0%5D.clientX)%2Cy%3Around(pointers%5B0%5D.clientY)%7D%7Dvar%20x%3D0%2Cy%3D0%2Ci%3D0%3Bwhile(i%3CpointersLength)%7Bx%2B%3Dpointers%5Bi%5D.clientX%3By%2B%3Dpointers%5Bi%5D.clientY%3Bi%2B%2B%7Dreturn%7Bx%3Around(x%2FpointersLength)%2Cy%3Around(y%2FpointersLength)%7D%7Dfunction%20getVelocity(deltaTime%2Cx%2Cy)%7Breturn%7Bx%3Ax%2FdeltaTime%7C%7C0%2Cy%3Ay%2FdeltaTime%7C%7C0%7D%7Dfunction%20getDirection(x%2Cy)%7Bif(x%3D%3D%3Dy)%7Breturn%20DIRECTION_NONE%7Dif(abs(x)%3E%3Dabs(y))%7Breturn%20x%3C0%3FDIRECTION_LEFT%3ADIRECTION_RIGHT%7Dreturn%20y%3C0%3FDIRECTION_UP%3ADIRECTION_DOWN%7Dfunction%20getDistance(p1%2Cp2%2Cprops)%7Bif(!props)%7Bprops%3DPROPS_XY%7Dvar%20x%3Dp2%5Bprops%5B0%5D%5D-p1%5Bprops%5B0%5D%5D%2Cy%3Dp2%5Bprops%5B1%5D%5D-p1%5Bprops%5B1%5D%5D%3Breturn%20Math.sqrt(x*x%2By*y)%7Dfunction%20getAngle(p1%2Cp2%2Cprops)%7Bif(!props)%7Bprops%3DPROPS_XY%7Dvar%20x%3Dp2%5Bprops%5B0%5D%5D-p1%5Bprops%5B0%5D%5D%2Cy%3Dp2%5Bprops%5B1%5D%5D-p1%5Bprops%5B1%5D%5D%3Breturn%20Math.atan2(y%2Cx)*180%2FMath.PI%7Dfunction%20getRotation(start%2Cend)%7Breturn%20getAngle(end%5B1%5D%2Cend%5B0%5D%2CPROPS_CLIENT_XY)%2BgetAngle(start%5B1%5D%2Cstart%5B0%5D%2CPROPS_CLIENT_XY)%7Dfunction%20getScale(start%2Cend)%7Breturn%20getDistance(end%5B0%5D%2Cend%5B1%5D%2CPROPS_CLIENT_XY)%2FgetDistance(start%5B0%5D%2Cstart%5B1%5D%2CPROPS_CLIENT_XY)%7Dvar%20MOUSE_INPUT_MAP%3D%7Bmousedown%3AINPUT_START%2Cmousemove%3AINPUT_MOVE%2Cmouseup%3AINPUT_END%7D%3Bvar%20MOUSE_ELEMENT_EVENTS%3D%5C%5C%5C%22mousedown%5C%5C%5C%22%3Bvar%20MOUSE_WINDOW_EVENTS%3D%5C%5C%5C%22mousemove%20mouseup%5C%5C%5C%22%3Bfunction%20MouseInput()%7Bthis.evEl%3DMOUSE_ELEMENT_EVENTS%3Bthis.evWin%3DMOUSE_WINDOW_EVENTS%3Bthis.pressed%3Dfalse%3BInput.apply(this%2Carguments)%7Dinherit(MouseInput%2CInput%2C%7Bhandler%3Afunction%20MEhandler(ev)%7Bvar%20eventType%3DMOUSE_INPUT_MAP%5Bev.type%5D%3Bif(eventType%26INPUT_START%26%26ev.button%3D%3D%3D0)%7Bthis.pressed%3Dtrue%7Dif(eventType%26INPUT_MOVE%26%26ev.which!%3D%3D1)%7BeventType%3DINPUT_END%7Dif(!this.pressed)%7Breturn%7Dif(eventType%26INPUT_END)%7Bthis.pressed%3Dfalse%7Dthis.callback(this.manager%2CeventType%2C%7Bpointers%3A%5Bev%5D%2CchangedPointers%3A%5Bev%5D%2CpointerType%3AINPUT_TYPE_MOUSE%2CsrcEvent%3Aev%7D)%7D%7D)%3Bvar%20POINTER_INPUT_MAP%3D%7Bpointerdown%3AINPUT_START%2Cpointermove%3AINPUT_MOVE%2Cpointerup%3AINPUT_END%2Cpointercancel%3AINPUT_CANCEL%2Cpointerout%3AINPUT_CANCEL%7D%3Bvar%20IE10_POINTER_TYPE_ENUM%3D%7B2%3AINPUT_TYPE_TOUCH%2C3%3AINPUT_TYPE_PEN%2C4%3AINPUT_TYPE_MOUSE%2C5%3AINPUT_TYPE_KINECT%7D%3Bvar%20POINTER_ELEMENT_EVENTS%3D%5C%5C%5C%22pointerdown%5C%5C%5C%22%3Bvar%20POINTER_WINDOW_EVENTS%3D%5C%5C%5C%22pointermove%20pointerup%20pointercancel%5C%5C%5C%22%3Bif(window.MSPointerEvent%26%26!window.PointerEvent)%7BPOINTER_ELEMENT_EVENTS%3D%5C%5C%5C%22MSPointerDown%5C%5C%5C%22%3BPOINTER_WINDOW_EVENTS%3D%5C%5C%5C%22MSPointerMove%20MSPointerUp%20MSPointerCancel%5C%5C%5C%22%7Dfunction%20PointerEventInput()%7Bthis.evEl%3DPOINTER_ELEMENT_EVENTS%3Bthis.evWin%3DPOINTER_WINDOW_EVENTS%3BInput.apply(this%2Carguments)%3Bthis.store%3Dthis.manager.session.pointerEvents%3D%5B%5D%7Dinherit(PointerEventInput%2CInput%2C%7Bhandler%3Afunction%20PEhandler(ev)%7Bvar%20store%3Dthis.store%3Bvar%20removePointer%3Dfalse%3Bvar%20eventTypeNormalized%3Dev.type.toLowerCase().replace(%5C%5C%5C%22ms%5C%5C%5C%22%2C%5C%5C%5C%22%5C%5C%5C%22)%3Bvar%20eventType%3DPOINTER_INPUT_MAP%5BeventTypeNormalized%5D%3Bvar%20pointerType%3DIE10_POINTER_TYPE_ENUM%5Bev.pointerType%5D%7C%7Cev.pointerType%3Bvar%20isTouch%3DpointerType%3D%3DINPUT_TYPE_TOUCH%3Bvar%20storeIndex%3DinArray(store%2Cev.pointerId%2C%5C%5C%5C%22pointerId%5C%5C%5C%22)%3Bif(eventType%26INPUT_START%26%26(ev.button%3D%3D%3D0%7C%7CisTouch))%7Bif(storeIndex%3C0)%7Bstore.push(ev)%3BstoreIndex%3Dstore.length-1%7D%7Delse%20if(eventType%26(INPUT_END%7CINPUT_CANCEL))%7BremovePointer%3Dtrue%7Dif(storeIndex%3C0)%7Breturn%7Dstore%5BstoreIndex%5D%3Dev%3Bthis.callback(this.manager%2CeventType%2C%7Bpointers%3Astore%2CchangedPointers%3A%5Bev%5D%2CpointerType%3ApointerType%2CsrcEvent%3Aev%7D)%3Bif(removePointer)%7Bstore.splice(storeIndex%2C1)%7D%7D%7D)%3Bvar%20SINGLE_TOUCH_INPUT_MAP%3D%7Btouchstart%3AINPUT_START%2Ctouchmove%3AINPUT_MOVE%2Ctouchend%3AINPUT_END%2Ctouchcancel%3AINPUT_CANCEL%7D%3Bvar%20SINGLE_TOUCH_TARGET_EVENTS%3D%5C%5C%5C%22touchstart%5C%5C%5C%22%3Bvar%20SINGLE_TOUCH_WINDOW_EVENTS%3D%5C%5C%5C%22touchstart%20touchmove%20touchend%20touchcancel%5C%5C%5C%22%3Bfunction%20SingleTouchInput()%7Bthis.evTarget%3DSINGLE_TOUCH_TARGET_EVENTS%3Bthis.evWin%3DSINGLE_TOUCH_WINDOW_EVENTS%3Bthis.started%3Dfalse%3BInput.apply(this%2Carguments)%7Dinherit(SingleTouchInput%2CInput%2C%7Bhandler%3Afunction%20TEhandler(ev)%7Bvar%20type%3DSINGLE_TOUCH_INPUT_MAP%5Bev.type%5D%3Bif(type%3D%3D%3DINPUT_START)%7Bthis.started%3Dtrue%7Dif(!this.started)%7Breturn%7Dvar%20touches%3DnormalizeSingleTouches.call(this%2Cev%2Ctype)%3Bif(type%26(INPUT_END%7CINPUT_CANCEL)%26%26touches%5B0%5D.length-touches%5B1%5D.length%3D%3D%3D0)%7Bthis.started%3Dfalse%7Dthis.callback(this.manager%2Ctype%2C%7Bpointers%3Atouches%5B0%5D%2CchangedPointers%3Atouches%5B1%5D%2CpointerType%3AINPUT_TYPE_TOUCH%2CsrcEvent%3Aev%7D)%7D%7D)%3Bfunction%20normalizeSingleTouches(ev%2Ctype)%7Bvar%20all%3DtoArray(ev.touches)%3Bvar%20changed%3DtoArray(ev.changedTouches)%3Bif(type%26(INPUT_END%7CINPUT_CANCEL))%7Ball%3DuniqueArray(all.concat(changed)%2C%5C%5C%5C%22identifier%5C%5C%5C%22%2Ctrue)%7Dreturn%5Ball%2Cchanged%5D%7Dvar%20TOUCH_INPUT_MAP%3D%7Btouchstart%3AINPUT_START%2Ctouchmove%3AINPUT_MOVE%2Ctouchend%3AINPUT_END%2Ctouchcancel%3AINPUT_CANCEL%7D%3Bvar%20TOUCH_TARGET_EVENTS%3D%5C%5C%5C%22touchstart%20touchmove%20touchend%20touchcancel%5C%5C%5C%22%3Bfunction%20TouchInput()%7Bthis.evTarget%3DTOUCH_TARGET_EVENTS%3Bthis.targetIds%3D%7B%7D%3BInput.apply(this%2Carguments)%7Dinherit(TouchInput%2CInput%2C%7Bhandler%3Afunction%20MTEhandler(ev)%7Bvar%20type%3DTOUCH_INPUT_MAP%5Bev.type%5D%3Bvar%20touches%3DgetTouches.call(this%2Cev%2Ctype)%3Bif(!touches)%7Breturn%7Dthis.callback(this.manager%2Ctype%2C%7Bpointers%3Atouches%5B0%5D%2CchangedPointers%3Atouches%5B1%5D%2CpointerType%3AINPUT_TYPE_TOUCH%2CsrcEvent%3Aev%7D)%7D%7D)%3Bfunction%20getTouches(ev%2Ctype)%7Bvar%20allTouches%3DtoArray(ev.touches)%3Bvar%20targetIds%3Dthis.targetIds%3Bif(type%26(INPUT_START%7CINPUT_MOVE)%26%26allTouches.length%3D%3D%3D1)%7BtargetIds%5BallTouches%5B0%5D.identifier%5D%3Dtrue%3Breturn%5BallTouches%2CallTouches%5D%7Dvar%20i%2CtargetTouches%2CchangedTouches%3DtoArray(ev.changedTouches)%2CchangedTargetTouches%3D%5B%5D%2Ctarget%3Dthis.target%3BtargetTouches%3DallTouches.filter(function(touch)%7Breturn%20hasParent(touch.target%2Ctarget)%7D)%3Bif(type%3D%3D%3DINPUT_START)%7Bi%3D0%3Bwhile(i%3CtargetTouches.length)%7BtargetIds%5BtargetTouches%5Bi%5D.identifier%5D%3Dtrue%3Bi%2B%2B%7D%7Di%3D0%3Bwhile(i%3CchangedTouches.length)%7Bif(targetIds%5BchangedTouches%5Bi%5D.identifier%5D)%7BchangedTargetTouches.push(changedTouches%5Bi%5D)%7Dif(type%26(INPUT_END%7CINPUT_CANCEL))%7Bdelete%20targetIds%5BchangedTouches%5Bi%5D.identifier%5D%7Di%2B%2B%7Dif(!changedTargetTouches.length)%7Breturn%7Dreturn%5BuniqueArray(targetTouches.concat(changedTargetTouches)%2C%5C%5C%5C%22identifier%5C%5C%5C%22%2Ctrue)%2CchangedTargetTouches%5D%7Dvar%20DEDUP_TIMEOUT%3D2500%3Bvar%20DEDUP_DISTANCE%3D25%3Bfunction%20TouchMouseInput()%7BInput.apply(this%2Carguments)%3Bvar%20handler%3DbindFn(this.handler%2Cthis)%3Bthis.touch%3Dnew%20TouchInput(this.manager%2Chandler)%3Bthis.mouse%3Dnew%20MouseInput(this.manager%2Chandler)%3Bthis.primaryTouch%3Dnull%3Bthis.lastTouches%3D%5B%5D%7Dinherit(TouchMouseInput%2CInput%2C%7Bhandler%3Afunction%20TMEhandler(manager%2CinputEvent%2CinputData)%7Bvar%20isTouch%3DinputData.pointerType%3D%3DINPUT_TYPE_TOUCH%2CisMouse%3DinputData.pointerType%3D%3DINPUT_TYPE_MOUSE%3Bif(isMouse%26%26inputData.sourceCapabilities%26%26inputData.sourceCapabilities.firesTouchEvents)%7Breturn%7Dif(isTouch)%7BrecordTouches.call(this%2CinputEvent%2CinputData)%7Delse%20if(isMouse%26%26isSyntheticEvent.call(this%2CinputData))%7Breturn%7Dthis.callback(manager%2CinputEvent%2CinputData)%7D%2Cdestroy%3Afunction%20destroy()%7Bthis.touch.destroy()%3Bthis.mouse.destroy()%7D%7D)%3Bfunction%20recordTouches(eventType%2CeventData)%7Bif(eventType%26INPUT_START)%7Bthis.primaryTouch%3DeventData.changedPointers%5B0%5D.identifier%3BsetLastTouch.call(this%2CeventData)%7Delse%20if(eventType%26(INPUT_END%7CINPUT_CANCEL))%7BsetLastTouch.call(this%2CeventData)%7D%7Dfunction%20setLastTouch(eventData)%7Bvar%20touch%3DeventData.changedPointers%5B0%5D%3Bif(touch.identifier%3D%3D%3Dthis.primaryTouch)%7Bvar%20lastTouch%3D%7Bx%3Atouch.clientX%2Cy%3Atouch.clientY%7D%3Bthis.lastTouches.push(lastTouch)%3Bvar%20lts%3Dthis.lastTouches%3Bvar%20removeLastTouch%3Dfunction()%7Bvar%20i%3Dlts.indexOf(lastTouch)%3Bif(i%3E-1)%7Blts.splice(i%2C1)%7D%7D%3BsetTimeout(removeLastTouch%2CDEDUP_TIMEOUT)%7D%7Dfunction%20isSyntheticEvent(eventData)%7Bvar%20x%3DeventData.srcEvent.clientX%2Cy%3DeventData.srcEvent.clientY%3Bfor(var%20i%3D0%3Bi%3Cthis.lastTouches.length%3Bi%2B%2B)%7Bvar%20t%3Dthis.lastTouches%5Bi%5D%3Bvar%20dx%3DMath.abs(x-t.x)%2Cdy%3DMath.abs(y-t.y)%3Bif(dx%3C%3DDEDUP_DISTANCE%26%26dy%3C%3DDEDUP_DISTANCE)%7Breturn%20true%7D%7Dreturn%20false%7Dvar%20PREFIXED_TOUCH_ACTION%3Dprefixed(TEST_ELEMENT.style%2C%5C%5C%5C%22touchAction%5C%5C%5C%22)%3Bvar%20NATIVE_TOUCH_ACTION%3DPREFIXED_TOUCH_ACTION!%3D%3Dundefined%3Bvar%20TOUCH_ACTION_COMPUTE%3D%5C%5C%5C%22compute%5C%5C%5C%22%3Bvar%20TOUCH_ACTION_AUTO%3D%5C%5C%5C%22auto%5C%5C%5C%22%3Bvar%20TOUCH_ACTION_MANIPULATION%3D%5C%5C%5C%22manipulation%5C%5C%5C%22%3Bvar%20TOUCH_ACTION_NONE%3D%5C%5C%5C%22none%5C%5C%5C%22%3Bvar%20TOUCH_ACTION_PAN_X%3D%5C%5C%5C%22pan-x%5C%5C%5C%22%3Bvar%20TOUCH_ACTION_PAN_Y%3D%5C%5C%5C%22pan-y%5C%5C%5C%22%3Bvar%20TOUCH_ACTION_MAP%3DgetTouchActionProps()%3Bfunction%20TouchAction(manager%2Cvalue)%7Bthis.manager%3Dmanager%3Bthis.set(value)%7DTouchAction.prototype%3D%7Bset%3Afunction(value)%7Bif(value%3D%3DTOUCH_ACTION_COMPUTE)%7Bvalue%3Dthis.compute()%7Dif(NATIVE_TOUCH_ACTION%26%26this.manager.element.style%26%26TOUCH_ACTION_MAP%5Bvalue%5D)%7Bthis.manager.element.style%5BPREFIXED_TOUCH_ACTION%5D%3Dvalue%7Dthis.actions%3Dvalue.toLowerCase().trim()%7D%2Cupdate%3Afunction()%7Bthis.set(this.manager.options.touchAction)%7D%2Ccompute%3Afunction()%7Bvar%20actions%3D%5B%5D%3Beach(this.manager.recognizers%2Cfunction(recognizer)%7Bif(boolOrFn(recognizer.options.enable%2C%5Brecognizer%5D))%7Bactions%3Dactions.concat(recognizer.getTouchAction())%7D%7D)%3Breturn%20cleanTouchActions(actions.join(%5C%5C%5C%22%20%5C%5C%5C%22))%7D%2CpreventDefaults%3Afunction(input)%7Bvar%20srcEvent%3Dinput.srcEvent%3Bvar%20direction%3Dinput.offsetDirection%3Bif(this.manager.session.prevented)%7BsrcEvent.preventDefault()%3Breturn%7Dvar%20actions%3Dthis.actions%3Bvar%20hasNone%3DinStr(actions%2CTOUCH_ACTION_NONE)%26%26!TOUCH_ACTION_MAP%5BTOUCH_ACTION_NONE%5D%3Bvar%20hasPanY%3DinStr(actions%2CTOUCH_ACTION_PAN_Y)%26%26!TOUCH_ACTION_MAP%5BTOUCH_ACTION_PAN_Y%5D%3Bvar%20hasPanX%3DinStr(actions%2CTOUCH_ACTION_PAN_X)%26%26!TOUCH_ACTION_MAP%5BTOUCH_ACTION_PAN_X%5D%3Bif(hasNone)%7Bvar%20isTapPointer%3Dinput.pointers.length%3D%3D%3D1%3Bvar%20isTapMovement%3Dinput.distance%3C2%3Bvar%20isTapTouchTime%3Dinput.deltaTime%3C250%3Bif(isTapPointer%26%26isTapMovement%26%26isTapTouchTime)%7Breturn%7D%7Dif(hasPanX%26%26hasPanY)%7Breturn%7Dif(hasNone%7C%7ChasPanY%26%26direction%26DIRECTION_HORIZONTAL%7C%7ChasPanX%26%26direction%26DIRECTION_VERTICAL)%7Breturn%20this.preventSrc(srcEvent)%7D%7D%2CpreventSrc%3Afunction(srcEvent)%7Bthis.manager.session.prevented%3Dtrue%3BsrcEvent.preventDefault()%7D%7D%3Bfunction%20cleanTouchActions(actions)%7Bif(inStr(actions%2CTOUCH_ACTION_NONE))%7Breturn%20TOUCH_ACTION_NONE%7Dvar%20hasPanX%3DinStr(actions%2CTOUCH_ACTION_PAN_X)%3Bvar%20hasPanY%3DinStr(actions%2CTOUCH_ACTION_PAN_Y)%3Bif(hasPanX%26%26hasPanY)%7Breturn%20TOUCH_ACTION_NONE%7Dif(hasPanX%7C%7ChasPanY)%7Breturn%20hasPanX%3FTOUCH_ACTION_PAN_X%3ATOUCH_ACTION_PAN_Y%7Dif(inStr(actions%2CTOUCH_ACTION_MANIPULATION))%7Breturn%20TOUCH_ACTION_MANIPULATION%7Dreturn%20TOUCH_ACTION_AUTO%7Dfunction%20getTouchActionProps()%7Bif(!NATIVE_TOUCH_ACTION)%7Breturn%20false%7Dvar%20touchMap%3D%7B%7D%3Bvar%20cssSupports%3Dwindow.CSS%26%26window.CSS.supports%3B%5B%5C%5C%5C%22auto%5C%5C%5C%22%2C%5C%5C%5C%22manipulation%5C%5C%5C%22%2C%5C%5C%5C%22pan-y%5C%5C%5C%22%2C%5C%5C%5C%22pan-x%5C%5C%5C%22%2C%5C%5C%5C%22pan-x%20pan-y%5C%5C%5C%22%2C%5C%5C%5C%22none%5C%5C%5C%22%5D.forEach(function(val)%7BtouchMap%5Bval%5D%3DcssSupports%3Fwindow.CSS.supports(%5C%5C%5C%22touch-action%5C%5C%5C%22%2Cval)%3Atrue%7D)%3Breturn%20touchMap%7Dvar%20STATE_POSSIBLE%3D1%3Bvar%20STATE_BEGAN%3D2%3Bvar%20STATE_CHANGED%3D4%3Bvar%20STATE_ENDED%3D8%3Bvar%20STATE_RECOGNIZED%3DSTATE_ENDED%3Bvar%20STATE_CANCELLED%3D16%3Bvar%20STATE_FAILED%3D32%3Bfunction%20Recognizer(options)%7Bthis.options%3Dassign(%7B%7D%2Cthis.defaults%2Coptions%7C%7C%7B%7D)%3Bthis.id%3DuniqueId()%3Bthis.manager%3Dnull%3Bthis.options.enable%3DifUndefined(this.options.enable%2Ctrue)%3Bthis.state%3DSTATE_POSSIBLE%3Bthis.simultaneous%3D%7B%7D%3Bthis.requireFail%3D%5B%5D%7DRecognizer.prototype%3D%7Bdefaults%3A%7B%7D%2Cset%3Afunction(options)%7Bassign(this.options%2Coptions)%3Bthis.manager%26%26this.manager.touchAction.update()%3Breturn%20this%7D%2CrecognizeWith%3Afunction(otherRecognizer)%7Bif(invokeArrayArg(otherRecognizer%2C%5C%5C%5C%22recognizeWith%5C%5C%5C%22%2Cthis))%7Breturn%20this%7Dvar%20simultaneous%3Dthis.simultaneous%3BotherRecognizer%3DgetRecognizerByNameIfManager(otherRecognizer%2Cthis)%3Bif(!simultaneous%5BotherRecognizer.id%5D)%7Bsimultaneous%5BotherRecognizer.id%5D%3DotherRecognizer%3BotherRecognizer.recognizeWith(this)%7Dreturn%20this%7D%2CdropRecognizeWith%3Afunction(otherRecognizer)%7Bif(invokeArrayArg(otherRecognizer%2C%5C%5C%5C%22dropRecognizeWith%5C%5C%5C%22%2Cthis))%7Breturn%20this%7DotherRecognizer%3DgetRecognizerByNameIfManager(otherRecognizer%2Cthis)%3Bdelete%20this.simultaneous%5BotherRecognizer.id%5D%3Breturn%20this%7D%2CrequireFailure%3Afunction(otherRecognizer)%7Bif(invokeArrayArg(otherRecognizer%2C%5C%5C%5C%22requireFailure%5C%5C%5C%22%2Cthis))%7Breturn%20this%7Dvar%20requireFail%3Dthis.requireFail%3BotherRecognizer%3DgetRecognizerByNameIfManager(otherRecognizer%2Cthis)%3Bif(inArray(requireFail%2CotherRecognizer)%3D%3D%3D-1)%7BrequireFail.push(otherRecognizer)%3BotherRecognizer.requireFailure(this)%7Dreturn%20this%7D%2CdropRequireFailure%3Afunction(otherRecognizer)%7Bif(invokeArrayArg(otherRecognizer%2C%5C%5C%5C%22dropRequireFailure%5C%5C%5C%22%2Cthis))%7Breturn%20this%7DotherRecognizer%3DgetRecognizerByNameIfManager(otherRecognizer%2Cthis)%3Bvar%20index%3DinArray(this.requireFail%2CotherRecognizer)%3Bif(index%3E-1)%7Bthis.requireFail.splice(index%2C1)%7Dreturn%20this%7D%2ChasRequireFailures%3Afunction()%7Breturn%20this.requireFail.length%3E0%7D%2CcanRecognizeWith%3Afunction(otherRecognizer)%7Breturn!!this.simultaneous%5BotherRecognizer.id%5D%7D%2Cemit%3Afunction(input)%7Bvar%20self%3Dthis%3Bvar%20state%3Dthis.state%3Bfunction%20emit(event)%7Bself.manager.emit(event%2Cinput)%7Dif(state%3CSTATE_ENDED)%7Bemit(self.options.event%2BstateStr(state))%7Demit(self.options.event)%3Bif(input.additionalEvent)%7Bemit(input.additionalEvent)%7Dif(state%3E%3DSTATE_ENDED)%7Bemit(self.options.event%2BstateStr(state))%7D%7D%2CtryEmit%3Afunction(input)%7Bif(this.canEmit())%7Breturn%20this.emit(input)%7Dthis.state%3DSTATE_FAILED%7D%2CcanEmit%3Afunction()%7Bvar%20i%3D0%3Bwhile(i%3Cthis.requireFail.length)%7Bif(!(this.requireFail%5Bi%5D.state%26(STATE_FAILED%7CSTATE_POSSIBLE)))%7Breturn%20false%7Di%2B%2B%7Dreturn%20true%7D%2Crecognize%3Afunction(inputData)%7Bvar%20inputDataClone%3Dassign(%7B%7D%2CinputData)%3Bif(!boolOrFn(this.options.enable%2C%5Bthis%2CinputDataClone%5D))%7Bthis.reset()%3Bthis.state%3DSTATE_FAILED%3Breturn%7Dif(this.state%26(STATE_RECOGNIZED%7CSTATE_CANCELLED%7CSTATE_FAILED))%7Bthis.state%3DSTATE_POSSIBLE%7Dthis.state%3Dthis.process(inputDataClone)%3Bif(this.state%26(STATE_BEGAN%7CSTATE_CHANGED%7CSTATE_ENDED%7CSTATE_CANCELLED))%7Bthis.tryEmit(inputDataClone)%7D%7D%2Cprocess%3Afunction(inputData)%7B%7D%2CgetTouchAction%3Afunction()%7B%7D%2Creset%3Afunction()%7B%7D%7D%3Bfunction%20stateStr(state)%7Bif(state%26STATE_CANCELLED)%7Breturn%5C%5C%5C%22cancel%5C%5C%5C%22%7Delse%20if(state%26STATE_ENDED)%7Breturn%5C%5C%5C%22end%5C%5C%5C%22%7Delse%20if(state%26STATE_CHANGED)%7Breturn%5C%5C%5C%22move%5C%5C%5C%22%7Delse%20if(state%26STATE_BEGAN)%7Breturn%5C%5C%5C%22start%5C%5C%5C%22%7Dreturn%5C%5C%5C%22%5C%5C%5C%22%7Dfunction%20directionStr(direction)%7Bif(direction%3D%3DDIRECTION_DOWN)%7Breturn%5C%5C%5C%22down%5C%5C%5C%22%7Delse%20if(direction%3D%3DDIRECTION_UP)%7Breturn%5C%5C%5C%22up%5C%5C%5C%22%7Delse%20if(direction%3D%3DDIRECTION_LEFT)%7Breturn%5C%5C%5C%22left%5C%5C%5C%22%7Delse%20if(direction%3D%3DDIRECTION_RIGHT)%7Breturn%5C%5C%5C%22right%5C%5C%5C%22%7Dreturn%5C%5C%5C%22%5C%5C%5C%22%7Dfunction%20getRecognizerByNameIfManager(otherRecognizer%2Crecognizer)%7Bvar%20manager%3Drecognizer.manager%3Bif(manager)%7Breturn%20manager.get(otherRecognizer)%7Dreturn%20otherRecognizer%7Dfunction%20AttrRecognizer()%7BRecognizer.apply(this%2Carguments)%7Dinherit(AttrRecognizer%2CRecognizer%2C%7Bdefaults%3A%7Bpointers%3A1%7D%2CattrTest%3Afunction(input)%7Bvar%20optionPointers%3Dthis.options.pointers%3Breturn%20optionPointers%3D%3D%3D0%7C%7Cinput.pointers.length%3D%3D%3DoptionPointers%7D%2Cprocess%3Afunction(input)%7Bvar%20state%3Dthis.state%3Bvar%20eventType%3Dinput.eventType%3Bvar%20isRecognized%3Dstate%26(STATE_BEGAN%7CSTATE_CHANGED)%3Bvar%20isValid%3Dthis.attrTest(input)%3Bif(isRecognized%26%26(eventType%26INPUT_CANCEL%7C%7C!isValid))%7Breturn%20state%7CSTATE_CANCELLED%7Delse%20if(isRecognized%7C%7CisValid)%7Bif(eventType%26INPUT_END)%7Breturn%20state%7CSTATE_ENDED%7Delse%20if(!(state%26STATE_BEGAN))%7Breturn%20STATE_BEGAN%7Dreturn%20state%7CSTATE_CHANGED%7Dreturn%20STATE_FAILED%7D%7D)%3Bfunction%20PanRecognizer()%7BAttrRecognizer.apply(this%2Carguments)%3Bthis.pX%3Dnull%3Bthis.pY%3Dnull%7Dinherit(PanRecognizer%2CAttrRecognizer%2C%7Bdefaults%3A%7Bevent%3A%5C%5C%5C%22pan%5C%5C%5C%22%2Cthreshold%3A10%2Cpointers%3A1%2Cdirection%3ADIRECTION_ALL%7D%2CgetTouchAction%3Afunction()%7Bvar%20direction%3Dthis.options.direction%3Bvar%20actions%3D%5B%5D%3Bif(direction%26DIRECTION_HORIZONTAL)%7Bactions.push(TOUCH_ACTION_PAN_Y)%7Dif(direction%26DIRECTION_VERTICAL)%7Bactions.push(TOUCH_ACTION_PAN_X)%7Dreturn%20actions%7D%2CdirectionTest%3Afunction(input)%7Bvar%20options%3Dthis.options%3Bvar%20hasMoved%3Dtrue%3Bvar%20distance%3Dinput.distance%3Bvar%20direction%3Dinput.direction%3Bvar%20x%3Dinput.deltaX%3Bvar%20y%3Dinput.deltaY%3Bif(!(direction%26options.direction))%7Bif(options.direction%26DIRECTION_HORIZONTAL)%7Bdirection%3Dx%3D%3D%3D0%3FDIRECTION_NONE%3Ax%3C0%3FDIRECTION_LEFT%3ADIRECTION_RIGHT%3BhasMoved%3Dx!%3Dthis.pX%3Bdistance%3DMath.abs(input.deltaX)%7Delse%7Bdirection%3Dy%3D%3D%3D0%3FDIRECTION_NONE%3Ay%3C0%3FDIRECTION_UP%3ADIRECTION_DOWN%3BhasMoved%3Dy!%3Dthis.pY%3Bdistance%3DMath.abs(input.deltaY)%7D%7Dinput.direction%3Ddirection%3Breturn%20hasMoved%26%26distance%3Eoptions.threshold%26%26direction%26options.direction%7D%2CattrTest%3Afunction(input)%7Breturn%20AttrRecognizer.prototype.attrTest.call(this%2Cinput)%26%26(this.state%26STATE_BEGAN%7C%7C!(this.state%26STATE_BEGAN)%26%26this.directionTest(input))%7D%2Cemit%3Afunction(input)%7Bthis.pX%3Dinput.deltaX%3Bthis.pY%3Dinput.deltaY%3Bvar%20direction%3DdirectionStr(input.direction)%3Bif(direction)%7Binput.additionalEvent%3Dthis.options.event%2Bdirection%7Dthis._super.emit.call(this%2Cinput)%7D%7D)%3Bfunction%20PinchRecognizer()%7BAttrRecognizer.apply(this%2Carguments)%7Dinherit(PinchRecognizer%2CAttrRecognizer%2C%7Bdefaults%3A%7Bevent%3A%5C%5C%5C%22pinch%5C%5C%5C%22%2Cthreshold%3A0%2Cpointers%3A2%7D%2CgetTouchAction%3Afunction()%7Breturn%5BTOUCH_ACTION_NONE%5D%7D%2CattrTest%3Afunction(input)%7Breturn%20this._super.attrTest.call(this%2Cinput)%26%26(Math.abs(input.scale-1)%3Ethis.options.threshold%7C%7Cthis.state%26STATE_BEGAN)%7D%2Cemit%3Afunction(input)%7Bif(input.scale!%3D%3D1)%7Bvar%20inOut%3Dinput.scale%3C1%3F%5C%5C%5C%22in%5C%5C%5C%22%3A%5C%5C%5C%22out%5C%5C%5C%22%3Binput.additionalEvent%3Dthis.options.event%2BinOut%7Dthis._super.emit.call(this%2Cinput)%7D%7D)%3Bfunction%20PressRecognizer()%7BRecognizer.apply(this%2Carguments)%3Bthis._timer%3Dnull%3Bthis._input%3Dnull%7Dinherit(PressRecognizer%2CRecognizer%2C%7Bdefaults%3A%7Bevent%3A%5C%5C%5C%22press%5C%5C%5C%22%2Cpointers%3A1%2Ctime%3A251%2Cthreshold%3A9%7D%2CgetTouchAction%3Afunction()%7Breturn%5BTOUCH_ACTION_AUTO%5D%7D%2Cprocess%3Afunction(input)%7Bvar%20options%3Dthis.options%3Bvar%20validPointers%3Dinput.pointers.length%3D%3D%3Doptions.pointers%3Bvar%20validMovement%3Dinput.distance%3Coptions.threshold%3Bvar%20validTime%3Dinput.deltaTime%3Eoptions.time%3Bthis._input%3Dinput%3Bif(!validMovement%7C%7C!validPointers%7C%7Cinput.eventType%26(INPUT_END%7CINPUT_CANCEL)%26%26!validTime)%7Bthis.reset()%7Delse%20if(input.eventType%26INPUT_START)%7Bthis.reset()%3Bthis._timer%3DsetTimeoutContext(function()%7Bthis.state%3DSTATE_RECOGNIZED%3Bthis.tryEmit()%7D%2Coptions.time%2Cthis)%7Delse%20if(input.eventType%26INPUT_END)%7Breturn%20STATE_RECOGNIZED%7Dreturn%20STATE_FAILED%7D%2Creset%3Afunction()%7BclearTimeout(this._timer)%7D%2Cemit%3Afunction(input)%7Bif(this.state!%3D%3DSTATE_RECOGNIZED)%7Breturn%7Dif(input%26%26input.eventType%26INPUT_END)%7Bthis.manager.emit(this.options.event%2B%5C%5C%5C%22up%5C%5C%5C%22%2Cinput)%7Delse%7Bthis._input.timeStamp%3Dnow()%3Bthis.manager.emit(this.options.event%2Cthis._input)%7D%7D%7D)%3Bfunction%20RotateRecognizer()%7BAttrRecognizer.apply(this%2Carguments)%7Dinherit(RotateRecognizer%2CAttrRecognizer%2C%7Bdefaults%3A%7Bevent%3A%5C%5C%5C%22rotate%5C%5C%5C%22%2Cthreshold%3A0%2Cpointers%3A2%7D%2CgetTouchAction%3Afunction()%7Breturn%5BTOUCH_ACTION_NONE%5D%7D%2CattrTest%3Afunction(input)%7Breturn%20this._super.attrTest.call(this%2Cinput)%26%26(Math.abs(input.rotation)%3Ethis.options.threshold%7C%7Cthis.state%26STATE_BEGAN)%7D%7D)%3Bfunction%20SwipeRecognizer()%7BAttrRecognizer.apply(this%2Carguments)%7Dinherit(SwipeRecognizer%2CAttrRecognizer%2C%7Bdefaults%3A%7Bevent%3A%5C%5C%5C%22swipe%5C%5C%5C%22%2Cthreshold%3A10%2Cvelocity%3A.3%2Cdirection%3ADIRECTION_HORIZONTAL%7CDIRECTION_VERTICAL%2Cpointers%3A1%7D%2CgetTouchAction%3Afunction()%7Breturn%20PanRecognizer.prototype.getTouchAction.call(this)%7D%2CattrTest%3Afunction(input)%7Bvar%20direction%3Dthis.options.direction%3Bvar%20velocity%3Bif(direction%26(DIRECTION_HORIZONTAL%7CDIRECTION_VERTICAL))%7Bvelocity%3Dinput.overallVelocity%7Delse%20if(direction%26DIRECTION_HORIZONTAL)%7Bvelocity%3Dinput.overallVelocityX%7Delse%20if(direction%26DIRECTION_VERTICAL)%7Bvelocity%3Dinput.overallVelocityY%7Dreturn%20this._super.attrTest.call(this%2Cinput)%26%26direction%26input.offsetDirection%26%26input.distance%3Ethis.options.threshold%26%26input.maxPointers%3D%3Dthis.options.pointers%26%26abs(velocity)%3Ethis.options.velocity%26%26input.eventType%26INPUT_END%7D%2Cemit%3Afunction(input)%7Bvar%20direction%3DdirectionStr(input.offsetDirection)%3Bif(direction)%7Bthis.manager.emit(this.options.event%2Bdirection%2Cinput)%7Dthis.manager.emit(this.options.event%2Cinput)%7D%7D)%3Bfunction%20TapRecognizer()%7BRecognizer.apply(this%2Carguments)%3Bthis.pTime%3Dfalse%3Bthis.pCenter%3Dfalse%3Bthis._timer%3Dnull%3Bthis._input%3Dnull%3Bthis.count%3D0%7Dinherit(TapRecognizer%2CRecognizer%2C%7Bdefaults%3A%7Bevent%3A%5C%5C%5C%22tap%5C%5C%5C%22%2Cpointers%3A1%2Ctaps%3A1%2Cinterval%3A300%2Ctime%3A250%2Cthreshold%3A9%2CposThreshold%3A10%7D%2CgetTouchAction%3Afunction()%7Breturn%5BTOUCH_ACTION_MANIPULATION%5D%7D%2Cprocess%3Afunction(input)%7Bvar%20options%3Dthis.options%3Bvar%20validPointers%3Dinput.pointers.length%3D%3D%3Doptions.pointers%3Bvar%20validMovement%3Dinput.distance%3Coptions.threshold%3Bvar%20validTouchTime%3Dinput.deltaTime%3Coptions.time%3Bthis.reset()%3Bif(input.eventType%26INPUT_START%26%26this.count%3D%3D%3D0)%7Breturn%20this.failTimeout()%7Dif(validMovement%26%26validTouchTime%26%26validPointers)%7Bif(input.eventType!%3DINPUT_END)%7Breturn%20this.failTimeout()%7Dvar%20validInterval%3Dthis.pTime%3Finput.timeStamp-this.pTime%3Coptions.interval%3Atrue%3Bvar%20validMultiTap%3D!this.pCenter%7C%7CgetDistance(this.pCenter%2Cinput.center)%3Coptions.posThreshold%3Bthis.pTime%3Dinput.timeStamp%3Bthis.pCenter%3Dinput.center%3Bif(!validMultiTap%7C%7C!validInterval)%7Bthis.count%3D1%7Delse%7Bthis.count%2B%3D1%7Dthis._input%3Dinput%3Bvar%20tapCount%3Dthis.count%25options.taps%3Bif(tapCount%3D%3D%3D0)%7Bif(!this.hasRequireFailures())%7Breturn%20STATE_RECOGNIZED%7Delse%7Bthis._timer%3DsetTimeoutContext(function()%7Bthis.state%3DSTATE_RECOGNIZED%3Bthis.tryEmit()%7D%2Coptions.interval%2Cthis)%3Breturn%20STATE_BEGAN%7D%7D%7Dreturn%20STATE_FAILED%7D%2CfailTimeout%3Afunction()%7Bthis._timer%3DsetTimeoutContext(function()%7Bthis.state%3DSTATE_FAILED%7D%2Cthis.options.interval%2Cthis)%3Breturn%20STATE_FAILED%7D%2Creset%3Afunction()%7BclearTimeout(this._timer)%7D%2Cemit%3Afunction()%7Bif(this.state%3D%3DSTATE_RECOGNIZED)%7Bthis._input.tapCount%3Dthis.count%3Bthis.manager.emit(this.options.event%2Cthis._input)%7D%7D%7D)%3Bfunction%20Hammer(element%2Coptions)%7Boptions%3Doptions%7C%7C%7B%7D%3Boptions.recognizers%3DifUndefined(options.recognizers%2CHammer.defaults.preset)%3Breturn%20new%20Manager(element%2Coptions)%7DHammer.VERSION%3D%5C%5C%5C%222.0.7%5C%5C%5C%22%3BHammer.defaults%3D%7BdomEvents%3Afalse%2CtouchAction%3ATOUCH_ACTION_COMPUTE%2Cenable%3Atrue%2CinputTarget%3Anull%2CinputClass%3Anull%2Cpreset%3A%5B%5BRotateRecognizer%2C%7Benable%3Afalse%7D%5D%2C%5BPinchRecognizer%2C%7Benable%3Afalse%7D%2C%5B%5C%5C%5C%22rotate%5C%5C%5C%22%5D%5D%2C%5BSwipeRecognizer%2C%7Bdirection%3ADIRECTION_HORIZONTAL%7D%5D%2C%5BPanRecognizer%2C%7Bdirection%3ADIRECTION_HORIZONTAL%7D%2C%5B%5C%5C%5C%22swipe%5C%5C%5C%22%5D%5D%2C%5BTapRecognizer%5D%2C%5BTapRecognizer%2C%7Bevent%3A%5C%5C%5C%22doubletap%5C%5C%5C%22%2Ctaps%3A2%7D%2C%5B%5C%5C%5C%22tap%5C%5C%5C%22%5D%5D%2C%5BPressRecognizer%5D%5D%2CcssProps%3A%7BuserSelect%3A%5C%5C%5C%22none%5C%5C%5C%22%2CtouchSelect%3A%5C%5C%5C%22none%5C%5C%5C%22%2CtouchCallout%3A%5C%5C%5C%22none%5C%5C%5C%22%2CcontentZooming%3A%5C%5C%5C%22none%5C%5C%5C%22%2CuserDrag%3A%5C%5C%5C%22none%5C%5C%5C%22%2CtapHighlightColor%3A%5C%5C%5C%22rgba(0%2C0%2C0%2C0)%5C%5C%5C%22%7D%7D%3Bvar%20STOP%3D1%3Bvar%20FORCED_STOP%3D2%3Bfunction%20Manager(element%2Coptions)%7Bthis.options%3Dassign(%7B%7D%2CHammer.defaults%2Coptions%7C%7C%7B%7D)%3Bthis.options.inputTarget%3Dthis.options.inputTarget%7C%7Celement%3Bthis.handlers%3D%7B%7D%3Bthis.session%3D%7B%7D%3Bthis.recognizers%3D%5B%5D%3Bthis.oldCssProps%3D%7B%7D%3Bthis.element%3Delement%3Bthis.input%3DcreateInputInstance(this)%3Bthis.touchAction%3Dnew%20TouchAction(this%2Cthis.options.touchAction)%3BtoggleCssProps(this%2Ctrue)%3Beach(this.options.recognizers%2Cfunction(item)%7Bvar%20recognizer%3Dthis.add(new%20item%5B0%5D(item%5B1%5D))%3Bitem%5B2%5D%26%26recognizer.recognizeWith(item%5B2%5D)%3Bitem%5B3%5D%26%26recognizer.requireFailure(item%5B3%5D)%7D%2Cthis)%7DManager.prototype%3D%7Bset%3Afunction(options)%7Bassign(this.options%2Coptions)%3Bif(options.touchAction)%7Bthis.touchAction.update()%7Dif(options.inputTarget)%7Bthis.input.destroy()%3Bthis.input.target%3Doptions.inputTarget%3Bthis.input.init()%7Dreturn%20this%7D%2Cstop%3Afunction(force)%7Bthis.session.stopped%3Dforce%3FFORCED_STOP%3ASTOP%7D%2Crecognize%3Afunction(inputData)%7Bvar%20session%3Dthis.session%3Bif(session.stopped)%7Breturn%7Dthis.touchAction.preventDefaults(inputData)%5C%5Cn%3Bvar%20recognizer%3Bvar%20recognizers%3Dthis.recognizers%3Bvar%20curRecognizer%3Dsession.curRecognizer%3Bif(!curRecognizer%7C%7CcurRecognizer%26%26curRecognizer.state%26STATE_RECOGNIZED)%7BcurRecognizer%3Dsession.curRecognizer%3Dnull%7Dvar%20i%3D0%3Bwhile(i%3Crecognizers.length)%7Brecognizer%3Drecognizers%5Bi%5D%3Bif(session.stopped!%3D%3DFORCED_STOP%26%26(!curRecognizer%7C%7Crecognizer%3D%3DcurRecognizer%7C%7Crecognizer.canRecognizeWith(curRecognizer)))%7Brecognizer.recognize(inputData)%7Delse%7Brecognizer.reset()%7Dif(!curRecognizer%26%26recognizer.state%26(STATE_BEGAN%7CSTATE_CHANGED%7CSTATE_ENDED))%7BcurRecognizer%3Dsession.curRecognizer%3Drecognizer%7Di%2B%2B%7D%7D%2Cget%3Afunction(recognizer)%7Bif(recognizer%20instanceof%20Recognizer)%7Breturn%20recognizer%7Dvar%20recognizers%3Dthis.recognizers%3Bfor(var%20i%3D0%3Bi%3Crecognizers.length%3Bi%2B%2B)%7Bif(recognizers%5Bi%5D.options.event%3D%3Drecognizer)%7Breturn%20recognizers%5Bi%5D%7D%7Dreturn%20null%7D%2Cadd%3Afunction(recognizer)%7Bif(invokeArrayArg(recognizer%2C%5C%5C%5C%22add%5C%5C%5C%22%2Cthis))%7Breturn%20this%7Dvar%20existing%3Dthis.get(recognizer.options.event)%3Bif(existing)%7Bthis.remove(existing)%7Dthis.recognizers.push(recognizer)%3Brecognizer.manager%3Dthis%3Bthis.touchAction.update()%3Breturn%20recognizer%7D%2Cremove%3Afunction(recognizer)%7Bif(invokeArrayArg(recognizer%2C%5C%5C%5C%22remove%5C%5C%5C%22%2Cthis))%7Breturn%20this%7Drecognizer%3Dthis.get(recognizer)%3Bif(recognizer)%7Bvar%20recognizers%3Dthis.recognizers%3Bvar%20index%3DinArray(recognizers%2Crecognizer)%3Bif(index!%3D%3D-1)%7Brecognizers.splice(index%2C1)%3Bthis.touchAction.update()%7D%7Dreturn%20this%7D%2Con%3Afunction(events%2Chandler)%7Bif(events%3D%3D%3Dundefined)%7Breturn%7Dif(handler%3D%3D%3Dundefined)%7Breturn%7Dvar%20handlers%3Dthis.handlers%3Beach(splitStr(events)%2Cfunction(event)%7Bhandlers%5Bevent%5D%3Dhandlers%5Bevent%5D%7C%7C%5B%5D%3Bhandlers%5Bevent%5D.push(handler)%7D)%3Breturn%20this%7D%2Coff%3Afunction(events%2Chandler)%7Bif(events%3D%3D%3Dundefined)%7Breturn%7Dvar%20handlers%3Dthis.handlers%3Beach(splitStr(events)%2Cfunction(event)%7Bif(!handler)%7Bdelete%20handlers%5Bevent%5D%7Delse%7Bhandlers%5Bevent%5D%26%26handlers%5Bevent%5D.splice(inArray(handlers%5Bevent%5D%2Chandler)%2C1)%7D%7D)%3Breturn%20this%7D%2Cemit%3Afunction(event%2Cdata)%7Bif(this.options.domEvents)%7BtriggerDomEvent(event%2Cdata)%7Dvar%20handlers%3Dthis.handlers%5Bevent%5D%26%26this.handlers%5Bevent%5D.slice()%3Bif(!handlers%7C%7C!handlers.length)%7Breturn%7Ddata.type%3Devent%3Bdata.preventDefault%3Dfunction()%7Bdata.srcEvent.preventDefault()%7D%3Bvar%20i%3D0%3Bwhile(i%3Chandlers.length)%7Bhandlers%5Bi%5D(data)%3Bi%2B%2B%7D%7D%2Cdestroy%3Afunction()%7Bthis.element%26%26toggleCssProps(this%2Cfalse)%3Bthis.handlers%3D%7B%7D%3Bthis.session%3D%7B%7D%3Bthis.input.destroy()%3Bthis.element%3Dnull%7D%7D%3Bfunction%20toggleCssProps(manager%2Cadd)%7Bvar%20element%3Dmanager.element%3Bif(!element.style)%7Breturn%7Dvar%20prop%3Beach(manager.options.cssProps%2Cfunction(value%2Cname)%7Bprop%3Dprefixed(element.style%2Cname)%3Bif(add)%7Bmanager.oldCssProps%5Bprop%5D%3Delement.style%5Bprop%5D%3Belement.style%5Bprop%5D%3Dvalue%7Delse%7Belement.style%5Bprop%5D%3Dmanager.oldCssProps%5Bprop%5D%7C%7C%5C%5C%5C%22%5C%5C%5C%22%7D%7D)%3Bif(!add)%7Bmanager.oldCssProps%3D%7B%7D%7D%7Dfunction%20triggerDomEvent(event%2Cdata)%7Bvar%20gestureEvent%3Ddocument.createEvent(%5C%5C%5C%22Event%5C%5C%5C%22)%3BgestureEvent.initEvent(event%2Ctrue%2Ctrue)%3BgestureEvent.gesture%3Ddata%3Bdata.target.dispatchEvent(gestureEvent)%7Dassign(Hammer%2C%7BINPUT_START%3AINPUT_START%2CINPUT_MOVE%3AINPUT_MOVE%2CINPUT_END%3AINPUT_END%2CINPUT_CANCEL%3AINPUT_CANCEL%2CSTATE_POSSIBLE%3ASTATE_POSSIBLE%2CSTATE_BEGAN%3ASTATE_BEGAN%2CSTATE_CHANGED%3ASTATE_CHANGED%2CSTATE_ENDED%3ASTATE_ENDED%2CSTATE_RECOGNIZED%3ASTATE_RECOGNIZED%2CSTATE_CANCELLED%3ASTATE_CANCELLED%2CSTATE_FAILED%3ASTATE_FAILED%2CDIRECTION_NONE%3ADIRECTION_NONE%2CDIRECTION_LEFT%3ADIRECTION_LEFT%2CDIRECTION_RIGHT%3ADIRECTION_RIGHT%2CDIRECTION_UP%3ADIRECTION_UP%2CDIRECTION_DOWN%3ADIRECTION_DOWN%2CDIRECTION_HORIZONTAL%3ADIRECTION_HORIZONTAL%2CDIRECTION_VERTICAL%3ADIRECTION_VERTICAL%2CDIRECTION_ALL%3ADIRECTION_ALL%2CManager%3AManager%2CInput%3AInput%2CTouchAction%3ATouchAction%2CTouchInput%3ATouchInput%2CMouseInput%3AMouseInput%2CPointerEventInput%3APointerEventInput%2CTouchMouseInput%3ATouchMouseInput%2CSingleTouchInput%3ASingleTouchInput%2CRecognizer%3ARecognizer%2CAttrRecognizer%3AAttrRecognizer%2CTap%3ATapRecognizer%2CPan%3APanRecognizer%2CSwipe%3ASwipeRecognizer%2CPinch%3APinchRecognizer%2CRotate%3ARotateRecognizer%2CPress%3APressRecognizer%2Con%3AaddEventListeners%2Coff%3AremoveEventListeners%2Ceach%3Aeach%2Cmerge%3Amerge%2Cextend%3Aextend%2Cassign%3Aassign%2Cinherit%3Ainherit%2CbindFn%3AbindFn%2Cprefixed%3Aprefixed%7D)%3Bvar%20freeGlobal%3Dtypeof%20window!%3D%3D%5C%5C%5C%22undefined%5C%5C%5C%22%3Fwindow%3Atypeof%20self!%3D%3D%5C%5C%5C%22undefined%5C%5C%5C%22%3Fself%3A%7B%7D%3BfreeGlobal.Hammer%3DHammer%3Bif(true)%7B!(__WEBPACK_AMD_DEFINE_RESULT__%3Dfunction()%7Breturn%20Hammer%7D.call(exports%2C__webpack_require__%2Cexports%2Cmodule)%2C__WEBPACK_AMD_DEFINE_RESULT__!%3D%3Dundefined%26%26(module.exports%3D__WEBPACK_AMD_DEFINE_RESULT__))%7Delse%20if(typeof%20module!%3D%5C%5C%5C%22undefined%5C%5C%5C%22%26%26module.exports)%7Bmodule.exports%3DHammer%7Delse%7Bwindow%5BexportName%5D%3DHammer%7D%7D)(window%2Cdocument%2C%5C%5C%5C%22Hammer%5C%5C%5C%22)%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bexports.util%3D__webpack_require__(2)%3Bexports.DOMutil%3D__webpack_require__(14)%3Bexports.DataSet%3D__webpack_require__(11)%3Bexports.DataView%3D__webpack_require__(12)%3Bexports.Queue%3D__webpack_require__(43)%3Bexports.Timeline%3D__webpack_require__(178)%3Bexports.Graph2d%3D__webpack_require__(180)%3Bexports.timeline%3D%7BCore%3A__webpack_require__(65)%2CDateUtil%3A__webpack_require__(36)%2CRange%3A__webpack_require__(64)%2Cstack%3A__webpack_require__(100)%2CTimeStep%3A__webpack_require__(66)%2Ccomponents%3A%7Bitems%3A%7BItem%3A__webpack_require__(38)%2CBackgroundItem%3A__webpack_require__(103)%2CBoxItem%3A__webpack_require__(101)%2CPointItem%3A__webpack_require__(102)%2CRangeItem%3A__webpack_require__(70)%7D%2CBackgroundGroup%3A__webpack_require__(69)%2CComponent%3A__webpack_require__(16)%2CCurrentTime%3A__webpack_require__(67)%2CCustomTime%3A__webpack_require__(46)%2CDataAxis%3A__webpack_require__(107)%2CDataScale%3A__webpack_require__(108)%2CGraphGroup%3A__webpack_require__(109)%2CGroup%3A__webpack_require__(68)%2CItemSet%3A__webpack_require__(99)%2CLegend%3A__webpack_require__(112)%2CLineGraph%3A__webpack_require__(106)%2CTimeAxis%3A__webpack_require__(45)%7D%7D%3Bexports.moment%3D__webpack_require__(9)%3Bexports.Hammer%3D__webpack_require__(10)%3Bexports.keycharm%3D__webpack_require__(35)%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bvar%20moment%3D__webpack_require__(9)%3Bvar%20util%3D__webpack_require__(2)%3Bvar%20DataSet%3D__webpack_require__(11)%3Bvar%20DataView%3D__webpack_require__(12)%3Bvar%20Range%3D__webpack_require__(64)%3Bvar%20Core%3D__webpack_require__(65)%3Bvar%20TimeAxis%3D__webpack_require__(45)%3Bvar%20CurrentTime%3D__webpack_require__(67)%3Bvar%20CustomTime%3D__webpack_require__(46)%3Bvar%20ItemSet%3D__webpack_require__(99)%3Bvar%20printStyle%3D__webpack_require__(15).printStyle%3Bvar%20allOptions%3D__webpack_require__(105).allOptions%3Bvar%20configureOptions%3D__webpack_require__(105).configureOptions%3Bvar%20Configurator%3D__webpack_require__(71)%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3Bvar%20Validator%3D__webpack_require__(15)%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3Bfunction%20Timeline(container%2Citems%2Cgroups%2Coptions)%7Bif(!(this%20instanceof%20Timeline))%7Bthrow%20new%20SyntaxError(%5C%5C%5C%22Constructor%20must%20be%20called%20with%20the%20new%20operator%5C%5C%5C%22)%7Dif(!(Array.isArray(groups)%7C%7Cgroups%20instanceof%20DataSet%7C%7Cgroups%20instanceof%20DataView)%26%26groups%20instanceof%20Object)%7Bvar%20forthArgument%3Doptions%3Boptions%3Dgroups%3Bgroups%3DforthArgument%7Dif(options%26%26options.throttleRedraw)%7Bconsole.warn('Timeline%20option%20%5C%5C%5C%22throttleRedraw%5C%5C%5C%22%20is%20DEPRICATED%20and%20no%20longer%20supported.%20It%20will%20be%20removed%20in%20the%20next%20MAJOR%20release.')%7Dvar%20me%3Dthis%3Bthis.defaultOptions%3D%7Bstart%3Anull%2Cend%3Anull%2CautoResize%3Atrue%2Corientation%3A%7Baxis%3A%5C%5C%5C%22bottom%5C%5C%5C%22%2Citem%3A%5C%5C%5C%22bottom%5C%5C%5C%22%7D%2Cmoment%3Amoment%2Cwidth%3Anull%2Cheight%3Anull%2CmaxHeight%3Anull%2CminHeight%3Anull%7D%3Bthis.options%3Dutil.deepExtend(%7B%7D%2Cthis.defaultOptions)%3Bthis._create(container)%3Bif(!options%7C%7Coptions%26%26typeof%20options.rtl%3D%3D%5C%5C%5C%22undefined%5C%5C%5C%22)%7Bthis.dom.root.style.visibility%3D%5C%5C%5C%22hidden%5C%5C%5C%22%3Bvar%20directionFromDom%2CdomNode%3Dthis.dom.root%3Bwhile(!directionFromDom%26%26domNode)%7BdirectionFromDom%3Dwindow.getComputedStyle(domNode%2Cnull).direction%3BdomNode%3DdomNode.parentElement%7Dthis.options.rtl%3DdirectionFromDom%26%26directionFromDom.toLowerCase()%3D%3D%5C%5C%5C%22rtl%5C%5C%5C%22%7Delse%7Bthis.options.rtl%3Doptions.rtl%7Dthis.options.rollingMode%3Doptions%26%26options.rollingMode%3Bthis.options.onInitialDrawComplete%3Doptions%26%26options.onInitialDrawComplete%3Bthis.components%3D%5B%5D%3Bthis.body%3D%7Bdom%3Athis.dom%2CdomProps%3Athis.props%2Cemitter%3A%7Bon%3Athis.on.bind(this)%2Coff%3Athis.off.bind(this)%2Cemit%3Athis.emit.bind(this)%7D%2ChiddenDates%3A%5B%5D%2Cutil%3A%7BgetScale%3Afunction%20getScale()%7Breturn%20me.timeAxis.step.scale%7D%2CgetStep%3Afunction%20getStep()%7Breturn%20me.timeAxis.step.step%7D%2CtoScreen%3Ame._toScreen.bind(me)%2CtoGlobalScreen%3Ame._toGlobalScreen.bind(me)%2CtoTime%3Ame._toTime.bind(me)%2CtoGlobalTime%3Ame._toGlobalTime.bind(me)%7D%7D%3Bthis.range%3Dnew%20Range(this.body%2Cthis.options)%3Bthis.components.push(this.range)%3Bthis.body.range%3Dthis.range%3Bthis.timeAxis%3Dnew%20TimeAxis(this.body%2Cthis.options)%3Bthis.timeAxis2%3Dnull%3Bthis.components.push(this.timeAxis)%3Bthis.currentTime%3Dnew%20CurrentTime(this.body%2Cthis.options)%3Bthis.components.push(this.currentTime)%3Bthis.itemSet%3Dnew%20ItemSet(this.body%2Cthis.options)%3Bthis.components.push(this.itemSet)%3Bthis.itemsData%3Dnull%3Bthis.groupsData%3Dnull%3Bthis.dom.root.onclick%3Dfunction(event)%7Bme.emit(%5C%5C%5C%22click%5C%5C%5C%22%2Cme.getEventProperties(event))%7D%3Bthis.dom.root.ondblclick%3Dfunction(event)%7Bme.emit(%5C%5C%5C%22doubleClick%5C%5C%5C%22%2Cme.getEventProperties(event))%7D%3Bthis.dom.root.oncontextmenu%3Dfunction(event)%7Bme.emit(%5C%5C%5C%22contextmenu%5C%5C%5C%22%2Cme.getEventProperties(event))%7D%3Bthis.dom.root.onmouseover%3Dfunction(event)%7Bme.emit(%5C%5C%5C%22mouseOver%5C%5C%5C%22%2Cme.getEventProperties(event))%7D%3Bif(window.PointerEvent)%7Bthis.dom.root.onpointerdown%3Dfunction(event)%7Bme.emit(%5C%5C%5C%22mouseDown%5C%5C%5C%22%2Cme.getEventProperties(event))%7D%3Bthis.dom.root.onpointermove%3Dfunction(event)%7Bme.emit(%5C%5C%5C%22mouseMove%5C%5C%5C%22%2Cme.getEventProperties(event))%7D%3Bthis.dom.root.onpointerup%3Dfunction(event)%7Bme.emit(%5C%5C%5C%22mouseUp%5C%5C%5C%22%2Cme.getEventProperties(event))%7D%7Delse%7Bthis.dom.root.onmousemove%3Dfunction(event)%7Bme.emit(%5C%5C%5C%22mouseMove%5C%5C%5C%22%2Cme.getEventProperties(event))%7D%3Bthis.dom.root.onmousedown%3Dfunction(event)%7Bme.emit(%5C%5C%5C%22mouseDown%5C%5C%5C%22%2Cme.getEventProperties(event))%7D%3Bthis.dom.root.onmouseup%3Dfunction(event)%7Bme.emit(%5C%5C%5C%22mouseUp%5C%5C%5C%22%2Cme.getEventProperties(event))%7D%7Dthis.initialFitDone%3Dfalse%3Bthis.on(%5C%5C%5C%22changed%5C%5C%5C%22%2Cfunction()%7Bif(this.itemsData%3D%3Dnull%7C%7Cthis.options.rollingMode)return%3Bif(!me.initialFitDone)%7Bme.initialFitDone%3Dtrue%3Bif(me.options.start!%3Dundefined%7C%7Cme.options.end!%3Dundefined)%7Bif(me.options.start%3D%3Dundefined%7C%7Cme.options.end%3D%3Dundefined)%7Bvar%20range%3Dme.getItemRange()%7Dvar%20start%3Dme.options.start!%3Dundefined%3Fme.options.start%3Arange.min%3Bvar%20end%3Dme.options.end!%3Dundefined%3Fme.options.end%3Arange.max%3Bme.setWindow(start%2Cend%2C%7Banimation%3Afalse%7D)%7Delse%7Bme.fit(%7Banimation%3Afalse%7D)%7D%7Dif(!me.initialDrawDone%26%26me.initialRangeChangeDone)%7Bme.initialDrawDone%3Dtrue%3Bme.dom.root.style.visibility%3D%5C%5C%5C%22visible%5C%5C%5C%22%3Bif(me.options.onInitialDrawComplete)%7BsetTimeout(function()%7Breturn%20me.options.onInitialDrawComplete()%7D%2C0)%7D%7D%7D)%3Bif(options)%7Bthis.setOptions(options)%7Dif(groups)%7Bthis.setGroups(groups)%7Dif(items)%7Bthis.setItems(items)%7Dthis._redraw()%7DTimeline.prototype%3Dnew%20Core%3BTimeline.prototype._createConfigurator%3Dfunction()%7Breturn%20new%20Configurator(this%2Cthis.dom.container%2CconfigureOptions)%7D%3BTimeline.prototype.redraw%3Dfunction()%7Bthis.itemSet%26%26this.itemSet.markDirty(%7BrefreshItems%3Atrue%7D)%3Bthis._redraw()%7D%3BTimeline.prototype.setOptions%3Dfunction(options)%7Bvar%20errorFound%3DValidator.validate(options%2CallOptions)%3Bif(errorFound%3D%3D%3Dtrue)%7Bconsole.log(%5C%5C%5C%22%25cErrors%20have%20been%20found%20in%20the%20supplied%20options%20object.%5C%5C%5C%22%2CprintStyle)%7DCore.prototype.setOptions.call(this%2Coptions)%3Bif(%5C%5C%5C%22type%5C%5C%5C%22in%20options)%7Bif(options.type!%3D%3Dthis.options.type)%7Bthis.options.type%3Doptions.type%3Bvar%20itemsData%3Dthis.itemsData%3Bif(itemsData)%7Bvar%20selection%3Dthis.getSelection()%3Bthis.setItems(null)%3Bthis.setItems(itemsData)%3Bthis.setSelection(selection)%7D%7D%7D%7D%3BTimeline.prototype.setItems%3Dfunction(items)%7Bvar%20newDataSet%3Bif(!items)%7BnewDataSet%3Dnull%7Delse%20if(items%20instanceof%20DataSet%7C%7Citems%20instanceof%20DataView)%7BnewDataSet%3Ditems%7Delse%7BnewDataSet%3Dnew%20DataSet(items%2C%7Btype%3A%7Bstart%3A%5C%5C%5C%22Date%5C%5C%5C%22%2Cend%3A%5C%5C%5C%22Date%5C%5C%5C%22%7D%7D)%7Dthis.itemsData%3DnewDataSet%3Bthis.itemSet%26%26this.itemSet.setItems(newDataSet)%7D%3BTimeline.prototype.setGroups%3Dfunction(groups)%7Bvar%20newDataSet%3Bif(!groups)%7BnewDataSet%3Dnull%7Delse%7Bvar%20filter%3Dfunction%20filter(group)%7Breturn%20group.visible!%3D%3Dfalse%7D%3Bif(groups%20instanceof%20DataSet%7C%7Cgroups%20instanceof%20DataView)%7BnewDataSet%3Dnew%20DataView(groups%2C%7Bfilter%3Afilter%7D)%7Delse%7BnewDataSet%3Dnew%20DataSet(groups.filter(filter))%7D%7Dthis.groupsData%3DnewDataSet%3Bthis.itemSet.setGroups(newDataSet)%7D%3BTimeline.prototype.setData%3Dfunction(data)%7Bif(data%26%26data.groups)%7Bthis.setGroups(data.groups)%7Dif(data%26%26data.items)%7Bthis.setItems(data.items)%7D%7D%3BTimeline.prototype.setSelection%3Dfunction(ids%2Coptions)%7Bthis.itemSet%26%26this.itemSet.setSelection(ids)%3Bif(options%26%26options.focus)%7Bthis.focus(ids%2Coptions)%7D%7D%3BTimeline.prototype.getSelection%3Dfunction()%7Breturn%20this.itemSet%26%26this.itemSet.getSelection()%7C%7C%5B%5D%7D%3BTimeline.prototype.focus%3Dfunction(id%2Coptions)%7Bif(!this.itemsData%7C%7Cid%3D%3Dundefined)return%3Bvar%20ids%3DArray.isArray(id)%3Fid%3A%5Bid%5D%3Bvar%20itemsData%3Dthis.itemsData.getDataSet().get(ids%2C%7Btype%3A%7Bstart%3A%5C%5C%5C%22Date%5C%5C%5C%22%2Cend%3A%5C%5C%5C%22Date%5C%5C%5C%22%7D%7D)%3Bvar%20start%3Dnull%3Bvar%20end%3Dnull%3BitemsData.forEach(function(itemData)%7Bvar%20s%3DitemData.start.valueOf()%3Bvar%20e%3D%5C%5C%5C%22end%5C%5C%5C%22in%20itemData%3FitemData.end.valueOf()%3AitemData.start.valueOf()%3Bif(start%3D%3D%3Dnull%7C%7Cs%3Cstart)%7Bstart%3Ds%7Dif(end%3D%3D%3Dnull%7C%7Ce%3Eend)%7Bend%3De%7D%7D)%3Bif(start!%3D%3Dnull%26%26end!%3D%3Dnull)%7Bvar%20me%3Dthis%3Bvar%20item%3Dthis.itemSet.items%5Bids%5B0%5D%5D%3Bvar%20startPos%3Dthis._getScrollTop()*-1%3Bvar%20initialVerticalScroll%3Dnull%3Bvar%20verticalAnimationFrame%3Dfunction%20verticalAnimationFrame(ease%2CwillDraw%2Cdone)%7Bvar%20verticalScroll%3DgetItemVerticalScroll(me%2Citem)%3Bif(!initialVerticalScroll)%7BinitialVerticalScroll%3DverticalScroll%7Dif(initialVerticalScroll.itemTop%3D%3DverticalScroll.itemTop%26%26!initialVerticalScroll.shouldScroll)%7Breturn%7Delse%20if(initialVerticalScroll.itemTop!%3DverticalScroll.itemTop%26%26verticalScroll.shouldScroll)%7BinitialVerticalScroll%3DverticalScroll%3BstartPos%3Dme._getScrollTop()*-1%7Dvar%20from%3DstartPos%3Bvar%20to%3DinitialVerticalScroll.scrollOffset%3Bvar%20scrollTop%3Ddone%3Fto%3Afrom%2B(to-from)*ease%3Bme._setScrollTop(-scrollTop)%3Bif(!willDraw)%7Bme._redraw()%7D%7D%3Bvar%20setFinalVerticalPosition%3Dfunction%20setFinalVerticalPosition()%7Bvar%20finalVerticalScroll%3DgetItemVerticalScroll(me%2Citem)%3Bif(finalVerticalScroll.shouldScroll%26%26finalVerticalScroll.itemTop!%3DinitialVerticalScroll.itemTop)%7Bme._setScrollTop(-finalVerticalScroll.scrollOffset)%3Bme._redraw()%7D%7D%3Bvar%20finalVerticalCallback%3Dfunction%20finalVerticalCallback()%7BsetFinalVerticalPosition()%3BsetTimeout(setFinalVerticalPosition%2C100)%7D%3Bvar%20middle%3D(start%2Bend)%2F2%3Bvar%20interval%3DMath.max(this.range.end-this.range.start%2C(end-start)*1.1)%3Bvar%20animation%3Doptions%26%26options.animation!%3D%3Dundefined%3Foptions.animation%3Atrue%3Bif(!animation)%7BinitialVerticalScroll%3D%7BshouldScroll%3Afalse%2CscrollOffset%3A-1%2CitemTop%3A-1%7D%7Dthis.range.setRange(middle-interval%2F2%2Cmiddle%2Binterval%2F2%2C%7Banimation%3Aanimation%7D%2CfinalVerticalCallback%2CverticalAnimationFrame)%7D%7D%3BTimeline.prototype.fit%3Dfunction(options%2Ccallback)%7Bvar%20animation%3Doptions%26%26options.animation!%3D%3Dundefined%3Foptions.animation%3Atrue%3Bvar%20range%3Bvar%20dataset%3Dthis.itemsData%26%26this.itemsData.getDataSet()%3Bif(dataset.length%3D%3D%3D1%26%26dataset.get()%5B0%5D.end%3D%3D%3Dundefined)%7Brange%3Dthis.getDataRange()%3Bthis.moveTo(range.min.valueOf()%2C%7Banimation%3Aanimation%7D%2Ccallback)%7Delse%7Brange%3Dthis.getItemRange()%3Bthis.range.setRange(range.min%2Crange.max%2C%7Banimation%3Aanimation%7D%2Ccallback)%7D%7D%3Bfunction%20getStart(item)%7Breturn%20util.convert(item.data.start%2C%5C%5C%5C%22Date%5C%5C%5C%22).valueOf()%7Dfunction%20getEnd(item)%7Bvar%20end%3Ditem.data.end!%3Dundefined%3Fitem.data.end%3Aitem.data.start%3Breturn%20util.convert(end%2C%5C%5C%5C%22Date%5C%5C%5C%22).valueOf()%7Dfunction%20getItemVerticalScroll(timeline%2Citem)%7Bvar%20leftHeight%3Dtimeline.props.leftContainer.height%3Bvar%20contentHeight%3Dtimeline.props.left.height%3Bvar%20group%3Ditem.parent%3Bvar%20offset%3Dgroup.top%3Bvar%20shouldScroll%3Dtrue%3Bvar%20orientation%3Dtimeline.timeAxis.options.orientation.axis%3Bvar%20itemTop%3Dfunction%20itemTop()%7Bif(orientation%3D%3D%5C%5C%5C%22bottom%5C%5C%5C%22)%7Breturn%20group.height-item.top-item.height%7Delse%7Breturn%20item.top%7D%7D%3Bvar%20currentScrollHeight%3Dtimeline._getScrollTop()*-1%3Bvar%20targetOffset%3Doffset%2BitemTop()%3Bvar%20height%3Ditem.height%3Bif(targetOffset%3CcurrentScrollHeight)%7Bif(offset%2BleftHeight%3C%3Doffset%2BitemTop()%2Bheight)%7Boffset%2B%3DitemTop()-timeline.itemSet.options.margin.item.vertical%7D%7Delse%20if(targetOffset%2Bheight%3EcurrentScrollHeight%2BleftHeight)%7Boffset%2B%3DitemTop()%2Bheight-leftHeight%2Btimeline.itemSet.options.margin.item.vertical%7Delse%7BshouldScroll%3Dfalse%7Doffset%3DMath.min(offset%2CcontentHeight-leftHeight)%3Breturn%7BshouldScroll%3AshouldScroll%2CscrollOffset%3Aoffset%2CitemTop%3AtargetOffset%7D%7DTimeline.prototype.getItemRange%3Dfunction()%7Bvar%20range%3Dthis.getDataRange()%3Bvar%20min%3Drange.min!%3D%3Dnull%3Frange.min.valueOf()%3Anull%3Bvar%20max%3Drange.max!%3D%3Dnull%3Frange.max.valueOf()%3Anull%3Bvar%20minItem%3Dnull%3Bvar%20maxItem%3Dnull%3Bif(min!%3Dnull%26%26max!%3Dnull)%7Bvar%20interval%3Dmax-min%3Bif(interval%3C%3D0)%7Binterval%3D10%7Dvar%20factor%3Dinterval%2Fthis.props.center.width%3Bvar%20redrawQueue%3D%7B%7D%3Bvar%20redrawQueueLength%3D0%3Butil.forEach(this.itemSet.items%2Cfunction(item%2Ckey)%7Bif(item.groupShowing)%7Bvar%20returnQueue%3Dtrue%3BredrawQueue%5Bkey%5D%3Ditem.redraw(returnQueue)%3BredrawQueueLength%3DredrawQueue%5Bkey%5D.length%7D%7D)%3Bvar%20needRedraw%3DredrawQueueLength%3E0%3Bif(needRedraw)%7Bfor(var%20i%3D0%3Bi%3CredrawQueueLength%3Bi%2B%2B)%7Butil.forEach(redrawQueue%2Cfunction(fns)%7Bfns%5Bi%5D()%7D)%7D%7Dutil.forEach(this.itemSet.items%2Cfunction(item)%7Bvar%20start%3DgetStart(item)%3Bvar%20end%3DgetEnd(item)%3Bvar%20startSide%3Bvar%20endSide%3Bif(this.options.rtl)%7BstartSide%3Dstart-(item.getWidthRight()%2B10)*factor%3BendSide%3Dend%2B(item.getWidthLeft()%2B10)*factor%7Delse%7BstartSide%3Dstart-(item.getWidthLeft()%2B10)*factor%3BendSide%3Dend%2B(item.getWidthRight()%2B10)*factor%7Dif(startSide%3Cmin)%7Bmin%3DstartSide%3BminItem%3Ditem%7Dif(endSide%3Emax)%7Bmax%3DendSide%3BmaxItem%3Ditem%7D%7D.bind(this))%3Bif(minItem%26%26maxItem)%7Bvar%20lhs%3DminItem.getWidthLeft()%2B10%3Bvar%20rhs%3DmaxItem.getWidthRight()%2B10%3Bvar%20delta%3Dthis.props.center.width-lhs-rhs%3Bif(delta%3E0)%7Bif(this.options.rtl)%7Bmin%3DgetStart(minItem)-rhs*interval%2Fdelta%3Bmax%3DgetEnd(maxItem)%2Blhs*interval%2Fdelta%7Delse%7Bmin%3DgetStart(minItem)-lhs*interval%2Fdelta%3Bmax%3DgetEnd(maxItem)%2Brhs*interval%2Fdelta%7D%7D%7D%7Dreturn%7Bmin%3Amin!%3Dnull%3Fnew%20Date(min)%3Anull%2Cmax%3Amax!%3Dnull%3Fnew%20Date(max)%3Anull%7D%7D%3BTimeline.prototype.getDataRange%3Dfunction()%7Bvar%20min%3Dnull%3Bvar%20max%3Dnull%3Bvar%20dataset%3Dthis.itemsData%26%26this.itemsData.getDataSet()%3Bif(dataset)%7Bdataset.forEach(function(item)%7Bvar%20start%3Dutil.convert(item.start%2C%5C%5C%5C%22Date%5C%5C%5C%22).valueOf()%3Bvar%20end%3Dutil.convert(item.end!%3Dundefined%3Fitem.end%3Aitem.start%2C%5C%5C%5C%22Date%5C%5C%5C%22).valueOf()%3Bif(min%3D%3D%3Dnull%7C%7Cstart%3Cmin)%7Bmin%3Dstart%7Dif(max%3D%3D%3Dnull%7C%7Cend%3Emax)%7Bmax%3Dend%7D%7D)%7Dreturn%7Bmin%3Amin!%3Dnull%3Fnew%20Date(min)%3Anull%2Cmax%3Amax!%3Dnull%3Fnew%20Date(max)%3Anull%7D%7D%3BTimeline.prototype.getEventProperties%3Dfunction(event)%7Bvar%20clientX%3Devent.center%3Fevent.center.x%3Aevent.clientX%3Bvar%20clientY%3Devent.center%3Fevent.center.y%3Aevent.clientY%3Bvar%20x%3Bif(this.options.rtl)%7Bx%3Dutil.getAbsoluteRight(this.dom.centerContainer)-clientX%7Delse%7Bx%3DclientX-util.getAbsoluteLeft(this.dom.centerContainer)%7Dvar%20y%3DclientY-util.getAbsoluteTop(this.dom.centerContainer)%3Bvar%20item%3Dthis.itemSet.itemFromTarget(event)%3Bvar%20group%3Dthis.itemSet.groupFromTarget(event)%3Bvar%20customTime%3DCustomTime.customTimeFromTarget(event)%3Bvar%20snap%3Dthis.itemSet.options.snap%7C%7Cnull%3Bvar%20scale%3Dthis.body.util.getScale()%3Bvar%20step%3Dthis.body.util.getStep()%3Bvar%20time%3Dthis._toTime(x)%3Bvar%20snappedTime%3Dsnap%3Fsnap(time%2Cscale%2Cstep)%3Atime%3Bvar%20element%3Dutil.getTarget(event)%3Bvar%20what%3Dnull%3Bif(item!%3Dnull)%7Bwhat%3D%5C%5C%5C%22item%5C%5C%5C%22%7Delse%20if(customTime!%3Dnull)%7Bwhat%3D%5C%5C%5C%22custom-time%5C%5C%5C%22%7Delse%20if(util.hasParent(element%2Cthis.timeAxis.dom.foreground))%7Bwhat%3D%5C%5C%5C%22axis%5C%5C%5C%22%7Delse%20if(this.timeAxis2%26%26util.hasParent(element%2Cthis.timeAxis2.dom.foreground))%7Bwhat%3D%5C%5C%5C%22axis%5C%5C%5C%22%7Delse%20if(util.hasParent(element%2Cthis.itemSet.dom.labelSet))%7Bwhat%3D%5C%5C%5C%22group-label%5C%5C%5C%22%7Delse%20if(util.hasParent(element%2Cthis.currentTime.bar))%7Bwhat%3D%5C%5C%5C%22current-time%5C%5C%5C%22%7Delse%20if(util.hasParent(element%2Cthis.dom.center))%7Bwhat%3D%5C%5C%5C%22background%5C%5C%5C%22%7Dreturn%7Bevent%3Aevent%2Citem%3Aitem%3Fitem.id%3Anull%2Cgroup%3Agroup%3Fgroup.groupId%3Anull%2Cwhat%3Awhat%2CpageX%3Aevent.srcEvent%3Fevent.srcEvent.pageX%3Aevent.pageX%2CpageY%3Aevent.srcEvent%3Fevent.srcEvent.pageY%3Aevent.pageY%2Cx%3Ax%2Cy%3Ay%2Ctime%3Atime%2CsnappedTime%3AsnappedTime%7D%7D%3BTimeline.prototype.toggleRollingMode%3Dfunction()%7Bif(this.range.rolling)%7Bthis.range.stopRolling()%7Delse%7Bif(this.options.rollingMode%3D%3Dundefined)%7Bthis.setOptions(this.options)%7Dthis.range.startRolling()%7D%7D%3Bmodule.exports%3DTimeline%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_stringify%3D__webpack_require__(19)%3Bvar%20_stringify2%3D_interopRequireDefault(_stringify)%3Bvar%20_classCallCheck2%3D__webpack_require__(0)%3Bvar%20_classCallCheck3%3D_interopRequireDefault(_classCallCheck2)%3Bvar%20_createClass2%3D__webpack_require__(1)%3Bvar%20_createClass3%3D_interopRequireDefault(_createClass2)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20Hammer%3D__webpack_require__(10)%3Bvar%20hammerUtil%3D__webpack_require__(37)%3Bvar%20util%3D__webpack_require__(2)%3Bvar%20ColorPicker%3Dfunction()%7Bfunction%20ColorPicker()%7Bvar%20pixelRatio%3Darguments.length%3E0%26%26arguments%5B0%5D!%3D%3Dundefined%3Farguments%5B0%5D%3A1%3B(0%2C_classCallCheck3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2CColorPicker)%3Bthis.pixelRatio%3DpixelRatio%3Bthis.generated%3Dfalse%3Bthis.centerCoordinates%3D%7Bx%3A289%2F2%2Cy%3A289%2F2%7D%3Bthis.r%3D289*.49%3Bthis.color%3D%7Br%3A255%2Cg%3A255%2Cb%3A255%2Ca%3A1%7D%3Bthis.hueCircle%3Dundefined%3Bthis.initialColor%3D%7Br%3A255%2Cg%3A255%2Cb%3A255%2Ca%3A1%7D%3Bthis.previousColor%3Dundefined%3Bthis.applied%3Dfalse%3Bthis.updateCallback%3Dfunction()%7B%7D%3Bthis.closeCallback%3Dfunction()%7B%7D%3Bthis._create()%7D(0%2C_createClass3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(ColorPicker%2C%5B%7Bkey%3A%5C%5C%5C%22insertTo%5C%5C%5C%22%2Cvalue%3Afunction%20insertTo(container)%7Bif(this.hammer!%3D%3Dundefined)%7Bthis.hammer.destroy()%3Bthis.hammer%3Dundefined%7Dthis.container%3Dcontainer%3Bthis.container.appendChild(this.frame)%3Bthis._bindHammer()%3Bthis._setSize()%7D%7D%2C%7Bkey%3A%5C%5C%5C%22setUpdateCallback%5C%5C%5C%22%2Cvalue%3Afunction%20setUpdateCallback(callback)%7Bif(typeof%20callback%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22)%7Bthis.updateCallback%3Dcallback%7Delse%7Bthrow%20new%20Error(%5C%5C%5C%22Function%20attempted%20to%20set%20as%20colorPicker%20update%20callback%20is%20not%20a%20function.%5C%5C%5C%22)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22setCloseCallback%5C%5C%5C%22%2Cvalue%3Afunction%20setCloseCallback(callback)%7Bif(typeof%20callback%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22)%7Bthis.closeCallback%3Dcallback%7Delse%7Bthrow%20new%20Error(%5C%5C%5C%22Function%20attempted%20to%20set%20as%20colorPicker%20closing%20callback%20is%20not%20a%20function.%5C%5C%5C%22)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_isColorString%5C%5C%5C%22%2Cvalue%3Afunction%20_isColorString(color)%7Bvar%20htmlColors%3D%7Bblack%3A%5C%5C%5C%22%23000000%5C%5C%5C%22%2Cnavy%3A%5C%5C%5C%22%23000080%5C%5C%5C%22%2Cdarkblue%3A%5C%5C%5C%22%2300008B%5C%5C%5C%22%2Cmediumblue%3A%5C%5C%5C%22%230000CD%5C%5C%5C%22%2Cblue%3A%5C%5C%5C%22%230000FF%5C%5C%5C%22%2Cdarkgreen%3A%5C%5C%5C%22%23006400%5C%5C%5C%22%2Cgreen%3A%5C%5C%5C%22%23008000%5C%5C%5C%22%2Cteal%3A%5C%5C%5C%22%23008080%5C%5C%5C%22%2Cdarkcyan%3A%5C%5C%5C%22%23008B8B%5C%5C%5C%22%2Cdeepskyblue%3A%5C%5C%5C%22%2300BFFF%5C%5C%5C%22%2Cdarkturquoise%3A%5C%5C%5C%22%2300CED1%5C%5C%5C%22%2Cmediumspringgreen%3A%5C%5C%5C%22%2300FA9A%5C%5C%5C%22%2Clime%3A%5C%5C%5C%22%2300FF00%5C%5C%5C%22%2Cspringgreen%3A%5C%5C%5C%22%2300FF7F%5C%5C%5C%22%2Caqua%3A%5C%5C%5C%22%2300FFFF%5C%5C%5C%22%2Ccyan%3A%5C%5C%5C%22%2300FFFF%5C%5C%5C%22%2Cmidnightblue%3A%5C%5C%5C%22%23191970%5C%5C%5C%22%2Cdodgerblue%3A%5C%5C%5C%22%231E90FF%5C%5C%5C%22%2Clightseagreen%3A%5C%5C%5C%22%2320B2AA%5C%5C%5C%22%2Cforestgreen%3A%5C%5C%5C%22%23228B22%5C%5C%5C%22%2Cseagreen%3A%5C%5C%5C%22%232E8B57%5C%5C%5C%22%2Cdarkslategray%3A%5C%5C%5C%22%232F4F4F%5C%5C%5C%22%2Climegreen%3A%5C%5C%5C%22%2332CD32%5C%5C%5C%22%2Cmediumseagreen%3A%5C%5C%5C%22%233CB371%5C%5C%5C%22%2Cturquoise%3A%5C%5C%5C%22%2340E0D0%5C%5C%5C%22%2Croyalblue%3A%5C%5C%5C%22%234169E1%5C%5C%5C%22%2Csteelblue%3A%5C%5C%5C%22%234682B4%5C%5C%5C%22%2Cdarkslateblue%3A%5C%5C%5C%22%23483D8B%5C%5C%5C%22%2Cmediumturquoise%3A%5C%5C%5C%22%2348D1CC%5C%5C%5C%22%2Cindigo%3A%5C%5C%5C%22%234B0082%5C%5C%5C%22%2Cdarkolivegreen%3A%5C%5C%5C%22%23556B2F%5C%5C%5C%22%2Ccadetblue%3A%5C%5C%5C%22%235F9EA0%5C%5C%5C%22%2Ccornflowerblue%3A%5C%5C%5C%22%236495ED%5C%5C%5C%22%2Cmediumaquamarine%3A%5C%5C%5C%22%2366CDAA%5C%5C%5C%22%2Cdimgray%3A%5C%5C%5C%22%23696969%5C%5C%5C%22%2Cslateblue%3A%5C%5C%5C%22%236A5ACD%5C%5C%5C%22%2Colivedrab%3A%5C%5C%5C%22%236B8E23%5C%5C%5C%22%2Cslategray%3A%5C%5C%5C%22%23708090%5C%5C%5C%22%2Clightslategray%3A%5C%5C%5C%22%23778899%5C%5C%5C%22%2Cmediumslateblue%3A%5C%5C%5C%22%237B68EE%5C%5C%5C%22%2Clawngreen%3A%5C%5C%5C%22%237CFC00%5C%5C%5C%22%2Cchartreuse%3A%5C%5C%5C%22%237FFF00%5C%5C%5C%22%2Caquamarine%3A%5C%5C%5C%22%237FFFD4%5C%5C%5C%22%2Cmaroon%3A%5C%5C%5C%22%23800000%5C%5C%5C%22%2Cpurple%3A%5C%5C%5C%22%23800080%5C%5C%5C%22%2Colive%3A%5C%5C%5C%22%23808000%5C%5C%5C%22%2Cgray%3A%5C%5C%5C%22%23808080%5C%5C%5C%22%2Cskyblue%3A%5C%5C%5C%22%2387CEEB%5C%5C%5C%22%2Clightskyblue%3A%5C%5C%5C%22%2387CEFA%5C%5C%5C%22%2Cblueviolet%3A%5C%5C%5C%22%238A2BE2%5C%5C%5C%22%2Cdarkred%3A%5C%5C%5C%22%238B0000%5C%5C%5C%22%2Cdarkmagenta%3A%5C%5C%5C%22%238B008B%5C%5C%5C%22%2Csaddlebrown%3A%5C%5C%5C%22%238B4513%5C%5C%5C%22%2Cdarkseagreen%3A%5C%5C%5C%22%238FBC8F%5C%5C%5C%22%2Clightgreen%3A%5C%5C%5C%22%2390EE90%5C%5C%5C%22%2Cmediumpurple%3A%5C%5C%5C%22%239370D8%5C%5C%5C%22%2Cdarkviolet%3A%5C%5C%5C%22%239400D3%5C%5C%5C%22%2Cpalegreen%3A%5C%5C%5C%22%2398FB98%5C%5C%5C%22%2Cdarkorchid%3A%5C%5C%5C%22%239932CC%5C%5C%5C%22%2Cyellowgreen%3A%5C%5C%5C%22%239ACD32%5C%5C%5C%22%2Csienna%3A%5C%5C%5C%22%23A0522D%5C%5C%5C%22%2Cbrown%3A%5C%5C%5C%22%23A52A2A%5C%5C%5C%22%2Cdarkgray%3A%5C%5C%5C%22%23A9A9A9%5C%5C%5C%22%2Clightblue%3A%5C%5C%5C%22%23ADD8E6%5C%5C%5C%22%2Cgreenyellow%3A%5C%5C%5C%22%23ADFF2F%5C%5C%5C%22%2Cpaleturquoise%3A%5C%5C%5C%22%23AFEEEE%5C%5C%5C%22%2Clightsteelblue%3A%5C%5C%5C%22%23B0C4DE%5C%5C%5C%22%2Cpowderblue%3A%5C%5C%5C%22%23B0E0E6%5C%5C%5C%22%2Cfirebrick%3A%5C%5C%5C%22%23B22222%5C%5C%5C%22%2Cdarkgoldenrod%3A%5C%5C%5C%22%23B8860B%5C%5C%5C%22%2Cmediumorchid%3A%5C%5C%5C%22%23BA55D3%5C%5C%5C%22%2Crosybrown%3A%5C%5C%5C%22%23BC8F8F%5C%5C%5C%22%2Cdarkkhaki%3A%5C%5C%5C%22%23BDB76B%5C%5C%5C%22%2Csilver%3A%5C%5C%5C%22%23C0C0C0%5C%5C%5C%22%2Cmediumvioletred%3A%5C%5C%5C%22%23C71585%5C%5C%5C%22%2Cindianred%3A%5C%5C%5C%22%23CD5C5C%5C%5C%5C%22%2Cperu%3A%5C%5C%5C%22%23CD853F%5C%5C%5C%22%2Cchocolate%3A%5C%5C%5C%22%23D2691E%5C%5C%5C%22%2Ctan%3A%5C%5C%5C%22%23D2B48C%5C%5C%5C%22%2Clightgrey%3A%5C%5C%5C%22%23D3D3D3%5C%5C%5C%22%2Cpalevioletred%3A%5C%5C%5C%22%23D87093%5C%5C%5C%22%2Cthistle%3A%5C%5C%5C%22%23D8BFD8%5C%5C%5C%22%2Corchid%3A%5C%5C%5C%22%23DA70D6%5C%5C%5C%22%2Cgoldenrod%3A%5C%5C%5C%22%23DAA520%5C%5C%5C%22%2Ccrimson%3A%5C%5C%5C%22%23DC143C%5C%5C%5C%22%2Cgainsboro%3A%5C%5C%5C%22%23DCDCDC%5C%5C%5C%22%2Cplum%3A%5C%5C%5C%22%23DDA0DD%5C%5C%5C%22%2Cburlywood%3A%5C%5C%5C%22%23DEB887%5C%5C%5C%22%2Clightcyan%3A%5C%5C%5C%22%23E0FFFF%5C%5C%5C%22%2Clavender%3A%5C%5C%5C%22%23E6E6FA%5C%5C%5C%22%2Cdarksalmon%3A%5C%5C%5C%22%23E9967A%5C%5C%5C%22%2Cviolet%3A%5C%5C%5C%22%23EE82EE%5C%5C%5C%22%2Cpalegoldenrod%3A%5C%5C%5C%22%23EEE8AA%5C%5C%5C%22%2Clightcoral%3A%5C%5C%5C%22%23F08080%5C%5C%5C%22%2Ckhaki%3A%5C%5C%5C%22%23F0E68C%5C%5C%5C%22%2Caliceblue%3A%5C%5C%5C%22%23F0F8FF%5C%5C%5C%22%2Choneydew%3A%5C%5C%5C%22%23F0FFF0%5C%5C%5C%22%2Cazure%3A%5C%5C%5C%22%23F0FFFF%5C%5C%5C%22%2Csandybrown%3A%5C%5C%5C%22%23F4A460%5C%5C%5C%22%2Cwheat%3A%5C%5C%5C%22%23F5DEB3%5C%5C%5C%22%2Cbeige%3A%5C%5C%5C%22%23F5F5DC%5C%5C%5C%22%2Cwhitesmoke%3A%5C%5C%5C%22%23F5F5F5%5C%5C%5C%22%2Cmintcream%3A%5C%5C%5C%22%23F5FFFA%5C%5C%5C%22%2Cghostwhite%3A%5C%5C%5C%22%23F8F8FF%5C%5C%5C%22%2Csalmon%3A%5C%5C%5C%22%23FA8072%5C%5C%5C%22%2Cantiquewhite%3A%5C%5C%5C%22%23FAEBD7%5C%5C%5C%22%2Clinen%3A%5C%5C%5C%22%23FAF0E6%5C%5C%5C%22%2Clightgoldenrodyellow%3A%5C%5C%5C%22%23FAFAD2%5C%5C%5C%22%2Coldlace%3A%5C%5C%5C%22%23FDF5E6%5C%5C%5C%22%2Cred%3A%5C%5C%5C%22%23FF0000%5C%5C%5C%22%2Cfuchsia%3A%5C%5C%5C%22%23FF00FF%5C%5C%5C%22%2Cmagenta%3A%5C%5C%5C%22%23FF00FF%5C%5C%5C%22%2Cdeeppink%3A%5C%5C%5C%22%23FF1493%5C%5C%5C%22%2Corangered%3A%5C%5C%5C%22%23FF4500%5C%5C%5C%22%2Ctomato%3A%5C%5C%5C%22%23FF6347%5C%5C%5C%22%2Chotpink%3A%5C%5C%5C%22%23FF69B4%5C%5C%5C%22%2Ccoral%3A%5C%5C%5C%22%23FF7F50%5C%5C%5C%22%2Cdarkorange%3A%5C%5C%5C%22%23FF8C00%5C%5C%5C%22%2Clightsalmon%3A%5C%5C%5C%22%23FFA07A%5C%5C%5C%22%2Corange%3A%5C%5C%5C%22%23FFA500%5C%5C%5C%22%2Clightpink%3A%5C%5C%5C%22%23FFB6C1%5C%5C%5C%22%2Cpink%3A%5C%5C%5C%22%23FFC0CB%5C%5C%5C%22%2Cgold%3A%5C%5C%5C%22%23FFD700%5C%5C%5C%22%2Cpeachpuff%3A%5C%5C%5C%22%23FFDAB9%5C%5C%5C%22%2Cnavajowhite%3A%5C%5C%5C%22%23FFDEAD%5C%5C%5C%22%2Cmoccasin%3A%5C%5C%5C%22%23FFE4B5%5C%5C%5C%22%2Cbisque%3A%5C%5C%5C%22%23FFE4C4%5C%5C%5C%22%2Cmistyrose%3A%5C%5C%5C%22%23FFE4E1%5C%5C%5C%22%2Cblanchedalmond%3A%5C%5C%5C%22%23FFEBCD%5C%5C%5C%22%2Cpapayawhip%3A%5C%5C%5C%22%23FFEFD5%5C%5C%5C%22%2Clavenderblush%3A%5C%5C%5C%22%23FFF0F5%5C%5C%5C%22%2Cseashell%3A%5C%5C%5C%22%23FFF5EE%5C%5C%5C%22%2Ccornsilk%3A%5C%5C%5C%22%23FFF8DC%5C%5C%5C%22%2Clemonchiffon%3A%5C%5C%5C%22%23FFFACD%5C%5C%5C%22%2Cfloralwhite%3A%5C%5C%5C%22%23FFFAF0%5C%5C%5C%22%2Csnow%3A%5C%5C%5C%22%23FFFAFA%5C%5C%5C%22%2Cyellow%3A%5C%5C%5C%22%23FFFF00%5C%5C%5C%22%2Clightyellow%3A%5C%5C%5C%22%23FFFFE0%5C%5C%5C%22%2Civory%3A%5C%5C%5C%22%23FFFFF0%5C%5C%5C%22%2Cwhite%3A%5C%5C%5C%22%23FFFFFF%5C%5C%5C%22%7D%3Bif(typeof%20color%3D%3D%3D%5C%5C%5C%22string%5C%5C%5C%22)%7Breturn%20htmlColors%5Bcolor%5D%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22setColor%5C%5C%5C%22%2Cvalue%3Afunction%20setColor(color)%7Bvar%20setInitial%3Darguments.length%3E1%26%26arguments%5B1%5D!%3D%3Dundefined%3Farguments%5B1%5D%3Atrue%3Bif(color%3D%3D%3D%5C%5C%5C%22none%5C%5C%5C%22)%7Breturn%7Dvar%20rgba%3Dvoid%200%3Bvar%20htmlColor%3Dthis._isColorString(color)%3Bif(htmlColor!%3D%3Dundefined)%7Bcolor%3DhtmlColor%7Dif(util.isString(color)%3D%3D%3Dtrue)%7Bif(util.isValidRGB(color)%3D%3D%3Dtrue)%7Bvar%20rgbaArray%3Dcolor.substr(4).substr(0%2Ccolor.length-5).split(%5C%5C%5C%22%2C%5C%5C%5C%22)%3Brgba%3D%7Br%3ArgbaArray%5B0%5D%2Cg%3ArgbaArray%5B1%5D%2Cb%3ArgbaArray%5B2%5D%2Ca%3A1%7D%7Delse%20if(util.isValidRGBA(color)%3D%3D%3Dtrue)%7Bvar%20_rgbaArray%3Dcolor.substr(5).substr(0%2Ccolor.length-6).split(%5C%5C%5C%22%2C%5C%5C%5C%22)%3Brgba%3D%7Br%3A_rgbaArray%5B0%5D%2Cg%3A_rgbaArray%5B1%5D%2Cb%3A_rgbaArray%5B2%5D%2Ca%3A_rgbaArray%5B3%5D%7D%7Delse%20if(util.isValidHex(color)%3D%3D%3Dtrue)%7Bvar%20rgbObj%3Dutil.hexToRGB(color)%3Brgba%3D%7Br%3ArgbObj.r%2Cg%3ArgbObj.g%2Cb%3ArgbObj.b%2Ca%3A1%7D%7D%7Delse%7Bif(color%20instanceof%20Object)%7Bif(color.r!%3D%3Dundefined%26%26color.g!%3D%3Dundefined%26%26color.b!%3D%3Dundefined)%7Bvar%20alpha%3Dcolor.a!%3D%3Dundefined%3Fcolor.a%3A%5C%5C%5C%221.0%5C%5C%5C%22%3Brgba%3D%7Br%3Acolor.r%2Cg%3Acolor.g%2Cb%3Acolor.b%2Ca%3Aalpha%7D%7D%7D%7Dif(rgba%3D%3D%3Dundefined)%7Bthrow%20new%20Error(%5C%5C%5C%22Unknown%20color%20passed%20to%20the%20colorPicker.%20Supported%20are%20strings%3A%20rgb%2C%20hex%2C%20rgba.%20Object%3A%20rgb%20(%7Br%3Ar%2Cg%3Ag%2Cb%3Ab%2C%5Ba%3Aa%5D%7D).%20Supplied%3A%20%5C%5C%5C%22%2B(0%2C_stringify2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(color))%7Delse%7Bthis._setColor(rgba%2CsetInitial)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22show%5C%5C%5C%22%2Cvalue%3Afunction%20show()%7Bif(this.closeCallback!%3D%3Dundefined)%7Bthis.closeCallback()%3Bthis.closeCallback%3Dundefined%7Dthis.applied%3Dfalse%3Bthis.frame.style.display%3D%5C%5C%5C%22block%5C%5C%5C%22%3Bthis._generateHueCircle()%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_hide%5C%5C%5C%22%2Cvalue%3Afunction%20_hide()%7Bvar%20_this%3Dthis%3Bvar%20storePrevious%3Darguments.length%3E0%26%26arguments%5B0%5D!%3D%3Dundefined%3Farguments%5B0%5D%3Atrue%3Bif(storePrevious%3D%3D%3Dtrue)%7Bthis.previousColor%3Dutil.extend(%7B%7D%2Cthis.color)%7Dif(this.applied%3D%3D%3Dtrue)%7Bthis.updateCallback(this.initialColor)%7Dthis.frame.style.display%3D%5C%5C%5C%22none%5C%5C%5C%22%3BsetTimeout(function()%7Bif(_this.closeCallback!%3D%3Dundefined)%7B_this.closeCallback()%3B_this.closeCallback%3Dundefined%7D%7D%2C0)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_save%5C%5C%5C%22%2Cvalue%3Afunction%20_save()%7Bthis.updateCallback(this.color)%3Bthis.applied%3Dfalse%3Bthis._hide()%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_apply%5C%5C%5C%22%2Cvalue%3Afunction%20_apply()%7Bthis.applied%3Dtrue%3Bthis.updateCallback(this.color)%3Bthis._updatePicker(this.color)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_loadLast%5C%5C%5C%22%2Cvalue%3Afunction%20_loadLast()%7Bif(this.previousColor!%3D%3Dundefined)%7Bthis.setColor(this.previousColor%2Cfalse)%7Delse%7Balert(%5C%5C%5C%22There%20is%20no%20last%20color%20to%20load...%5C%5C%5C%22)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_setColor%5C%5C%5C%22%2Cvalue%3Afunction%20_setColor(rgba)%7Bvar%20setInitial%3Darguments.length%3E1%26%26arguments%5B1%5D!%3D%3Dundefined%3Farguments%5B1%5D%3Atrue%3Bif(setInitial%3D%3D%3Dtrue)%7Bthis.initialColor%3Dutil.extend(%7B%7D%2Crgba)%7Dthis.color%3Drgba%3Bvar%20hsv%3Dutil.RGBToHSV(rgba.r%2Crgba.g%2Crgba.b)%3Bvar%20angleConvert%3D2*Math.PI%3Bvar%20radius%3Dthis.r*hsv.s%3Bvar%20x%3Dthis.centerCoordinates.x%2Bradius*Math.sin(angleConvert*hsv.h)%3Bvar%20y%3Dthis.centerCoordinates.y%2Bradius*Math.cos(angleConvert*hsv.h)%3Bthis.colorPickerSelector.style.left%3Dx-.5*this.colorPickerSelector.clientWidth%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bthis.colorPickerSelector.style.top%3Dy-.5*this.colorPickerSelector.clientHeight%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bthis._updatePicker(rgba)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_setOpacity%5C%5C%5C%22%2Cvalue%3Afunction%20_setOpacity(value)%7Bthis.color.a%3Dvalue%2F100%3Bthis._updatePicker(this.color)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_setBrightness%5C%5C%5C%22%2Cvalue%3Afunction%20_setBrightness(value)%7Bvar%20hsv%3Dutil.RGBToHSV(this.color.r%2Cthis.color.g%2Cthis.color.b)%3Bhsv.v%3Dvalue%2F100%3Bvar%20rgba%3Dutil.HSVToRGB(hsv.h%2Chsv.s%2Chsv.v)%3Brgba%5B%5C%5C%5C%22a%5C%5C%5C%22%5D%3Dthis.color.a%3Bthis.color%3Drgba%3Bthis._updatePicker()%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_updatePicker%5C%5C%5C%22%2Cvalue%3Afunction%20_updatePicker()%7Bvar%20rgba%3Darguments.length%3E0%26%26arguments%5B0%5D!%3D%3Dundefined%3Farguments%5B0%5D%3Athis.color%3Bvar%20hsv%3Dutil.RGBToHSV(rgba.r%2Crgba.g%2Crgba.b)%3Bvar%20ctx%3Dthis.colorPickerCanvas.getContext(%5C%5C%5C%222d%5C%5C%5C%22)%3Bif(this.pixelRation%3D%3D%3Dundefined)%7Bthis.pixelRatio%3D(window.devicePixelRatio%7C%7C1)%2F(ctx.webkitBackingStorePixelRatio%7C%7Cctx.mozBackingStorePixelRatio%7C%7Cctx.msBackingStorePixelRatio%7C%7Cctx.oBackingStorePixelRatio%7C%7Cctx.backingStorePixelRatio%7C%7C1)%7Dctx.setTransform(this.pixelRatio%2C0%2C0%2Cthis.pixelRatio%2C0%2C0)%3Bvar%20w%3Dthis.colorPickerCanvas.clientWidth%3Bvar%20h%3Dthis.colorPickerCanvas.clientHeight%3Bctx.clearRect(0%2C0%2Cw%2Ch)%3Bctx.putImageData(this.hueCircle%2C0%2C0)%3Bctx.fillStyle%3D%5C%5C%5C%22rgba(0%2C0%2C0%2C%5C%5C%5C%22%2B(1-hsv.v)%2B%5C%5C%5C%22)%5C%5C%5C%22%3Bctx.circle(this.centerCoordinates.x%2Cthis.centerCoordinates.y%2Cthis.r)%3Bctx.fill()%3Bthis.brightnessRange.value%3D100*hsv.v%3Bthis.opacityRange.value%3D100*rgba.a%3Bthis.initialColorDiv.style.backgroundColor%3D%5C%5C%5C%22rgba(%5C%5C%5C%22%2Bthis.initialColor.r%2B%5C%5C%5C%22%2C%5C%5C%5C%22%2Bthis.initialColor.g%2B%5C%5C%5C%22%2C%5C%5C%5C%22%2Bthis.initialColor.b%2B%5C%5C%5C%22%2C%5C%5C%5C%22%2Bthis.initialColor.a%2B%5C%5C%5C%22)%5C%5C%5C%22%3Bthis.newColorDiv.style.backgroundColor%3D%5C%5C%5C%22rgba(%5C%5C%5C%22%2Bthis.color.r%2B%5C%5C%5C%22%2C%5C%5C%5C%22%2Bthis.color.g%2B%5C%5C%5C%22%2C%5C%5C%5C%22%2Bthis.color.b%2B%5C%5C%5C%22%2C%5C%5C%5C%22%2Bthis.color.a%2B%5C%5C%5C%22)%5C%5C%5C%22%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_setSize%5C%5C%5C%22%2Cvalue%3Afunction%20_setSize()%7Bthis.colorPickerCanvas.style.width%3D%5C%5C%5C%22100%25%5C%5C%5C%22%3Bthis.colorPickerCanvas.style.height%3D%5C%5C%5C%22100%25%5C%5C%5C%22%3Bthis.colorPickerCanvas.width%3D289*this.pixelRatio%3Bthis.colorPickerCanvas.height%3D289*this.pixelRatio%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_create%5C%5C%5C%22%2Cvalue%3Afunction%20_create()%7Bthis.frame%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bthis.frame.className%3D%5C%5C%5C%22vis-color-picker%5C%5C%5C%22%3Bthis.colorPickerDiv%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bthis.colorPickerSelector%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bthis.colorPickerSelector.className%3D%5C%5C%5C%22vis-selector%5C%5C%5C%22%3Bthis.colorPickerDiv.appendChild(this.colorPickerSelector)%3Bthis.colorPickerCanvas%3Ddocument.createElement(%5C%5C%5C%22canvas%5C%5C%5C%22)%3Bthis.colorPickerDiv.appendChild(this.colorPickerCanvas)%3Bif(!this.colorPickerCanvas.getContext)%7Bvar%20noCanvas%3Ddocument.createElement(%5C%5C%5C%22DIV%5C%5C%5C%22)%3BnoCanvas.style.color%3D%5C%5C%5C%22red%5C%5C%5C%22%3BnoCanvas.style.fontWeight%3D%5C%5C%5C%22bold%5C%5C%5C%22%3BnoCanvas.style.padding%3D%5C%5C%5C%2210px%5C%5C%5C%22%3BnoCanvas.innerHTML%3D%5C%5C%5C%22Error%3A%20your%20browser%20does%20not%20support%20HTML%20canvas%5C%5C%5C%22%3Bthis.colorPickerCanvas.appendChild(noCanvas)%7Delse%7Bvar%20ctx%3Dthis.colorPickerCanvas.getContext(%5C%5C%5C%222d%5C%5C%5C%22)%3Bthis.pixelRatio%3D(window.devicePixelRatio%7C%7C1)%2F(ctx.webkitBackingStorePixelRatio%7C%7Cctx.mozBackingStorePixelRatio%7C%7Cctx.msBackingStorePixelRatio%7C%7Cctx.oBackingStorePixelRatio%7C%7Cctx.backingStorePixelRatio%7C%7C1)%3Bthis.colorPickerCanvas.getContext(%5C%5C%5C%222d%5C%5C%5C%22).setTransform(this.pixelRatio%2C0%2C0%2Cthis.pixelRatio%2C0%2C0)%7Dthis.colorPickerDiv.className%3D%5C%5C%5C%22vis-color%5C%5C%5C%22%3Bthis.opacityDiv%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bthis.opacityDiv.className%3D%5C%5C%5C%22vis-opacity%5C%5C%5C%22%3Bthis.brightnessDiv%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bthis.brightnessDiv.className%3D%5C%5C%5C%22vis-brightness%5C%5C%5C%22%3Bthis.arrowDiv%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bthis.arrowDiv.className%3D%5C%5C%5C%22vis-arrow%5C%5C%5C%22%3Bthis.opacityRange%3Ddocument.createElement(%5C%5C%5C%22input%5C%5C%5C%22)%3Btry%7Bthis.opacityRange.type%3D%5C%5C%5C%22range%5C%5C%5C%22%3Bthis.opacityRange.min%3D%5C%5C%5C%220%5C%5C%5C%22%3Bthis.opacityRange.max%3D%5C%5C%5C%22100%5C%5C%5C%22%7Dcatch(err)%7B%7Dthis.opacityRange.value%3D%5C%5C%5C%22100%5C%5C%5C%22%3Bthis.opacityRange.className%3D%5C%5C%5C%22vis-range%5C%5C%5C%22%3Bthis.brightnessRange%3Ddocument.createElement(%5C%5C%5C%22input%5C%5C%5C%22)%3Btry%7Bthis.brightnessRange.type%3D%5C%5C%5C%22range%5C%5C%5C%22%3Bthis.brightnessRange.min%3D%5C%5C%5C%220%5C%5C%5C%22%3Bthis.brightnessRange.max%3D%5C%5C%5C%22100%5C%5C%5C%22%7Dcatch(err)%7B%7Dthis.brightnessRange.value%3D%5C%5C%5C%22100%5C%5C%5C%22%3Bthis.brightnessRange.className%3D%5C%5C%5C%22vis-range%5C%5C%5C%22%3Bthis.opacityDiv.appendChild(this.opacityRange)%3Bthis.brightnessDiv.appendChild(this.brightnessRange)%3Bvar%20me%3Dthis%3Bthis.opacityRange.onchange%3Dfunction()%7Bme._setOpacity(this.value)%7D%3Bthis.opacityRange.oninput%3Dfunction()%7Bme._setOpacity(this.value)%7D%3Bthis.brightnessRange.onchange%3Dfunction()%7Bme._setBrightness(this.value)%7D%3Bthis.brightnessRange.oninput%3Dfunction()%7Bme._setBrightness(this.value)%7D%3Bthis.brightnessLabel%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bthis.brightnessLabel.className%3D%5C%5C%5C%22vis-label%20vis-brightness%5C%5C%5C%22%3Bthis.brightnessLabel.innerHTML%3D%5C%5C%5C%22brightness%3A%5C%5C%5C%22%3Bthis.opacityLabel%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bthis.opacityLabel.className%3D%5C%5C%5C%22vis-label%20vis-opacity%5C%5C%5C%22%3Bthis.opacityLabel.innerHTML%3D%5C%5C%5C%22opacity%3A%5C%5C%5C%22%3Bthis.newColorDiv%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bthis.newColorDiv.className%3D%5C%5C%5C%22vis-new-color%5C%5C%5C%22%3Bthis.newColorDiv.innerHTML%3D%5C%5C%5C%22new%5C%5C%5C%22%3Bthis.initialColorDiv%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bthis.initialColorDiv.className%3D%5C%5C%5C%22vis-initial-color%5C%5C%5C%22%3Bthis.initialColorDiv.innerHTML%3D%5C%5C%5C%22initial%5C%5C%5C%22%3Bthis.cancelButton%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bthis.cancelButton.className%3D%5C%5C%5C%22vis-button%20vis-cancel%5C%5C%5C%22%3Bthis.cancelButton.innerHTML%3D%5C%5C%5C%22cancel%5C%5C%5C%22%3Bthis.cancelButton.onclick%3Dthis._hide.bind(this%2Cfalse)%3Bthis.applyButton%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bthis.applyButton.className%3D%5C%5C%5C%22vis-button%20vis-apply%5C%5C%5C%22%3Bthis.applyButton.innerHTML%3D%5C%5C%5C%22apply%5C%5C%5C%22%3Bthis.applyButton.onclick%3Dthis._apply.bind(this)%3Bthis.saveButton%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bthis.saveButton.className%3D%5C%5C%5C%22vis-button%20vis-save%5C%5C%5C%22%3Bthis.saveButton.innerHTML%3D%5C%5C%5C%22save%5C%5C%5C%22%3Bthis.saveButton.onclick%3Dthis._save.bind(this)%3Bthis.loadButton%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bthis.loadButton.className%3D%5C%5C%5C%22vis-button%20vis-load%5C%5C%5C%22%3Bthis.loadButton.innerHTML%3D%5C%5C%5C%22load%20last%5C%5C%5C%22%3Bthis.loadButton.onclick%3Dthis._loadLast.bind(this)%5C%5Cn%3Bthis.frame.appendChild(this.colorPickerDiv)%3Bthis.frame.appendChild(this.arrowDiv)%3Bthis.frame.appendChild(this.brightnessLabel)%3Bthis.frame.appendChild(this.brightnessDiv)%3Bthis.frame.appendChild(this.opacityLabel)%3Bthis.frame.appendChild(this.opacityDiv)%3Bthis.frame.appendChild(this.newColorDiv)%3Bthis.frame.appendChild(this.initialColorDiv)%3Bthis.frame.appendChild(this.cancelButton)%3Bthis.frame.appendChild(this.applyButton)%3Bthis.frame.appendChild(this.saveButton)%3Bthis.frame.appendChild(this.loadButton)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_bindHammer%5C%5C%5C%22%2Cvalue%3Afunction%20_bindHammer()%7Bvar%20_this2%3Dthis%3Bthis.drag%3D%7B%7D%3Bthis.pinch%3D%7B%7D%3Bthis.hammer%3Dnew%20Hammer(this.colorPickerCanvas)%3Bthis.hammer.get(%5C%5C%5C%22pinch%5C%5C%5C%22).set(%7Benable%3Atrue%7D)%3BhammerUtil.onTouch(this.hammer%2Cfunction(event)%7B_this2._moveSelector(event)%7D)%3Bthis.hammer.on(%5C%5C%5C%22tap%5C%5C%5C%22%2Cfunction(event)%7B_this2._moveSelector(event)%7D)%3Bthis.hammer.on(%5C%5C%5C%22panstart%5C%5C%5C%22%2Cfunction(event)%7B_this2._moveSelector(event)%7D)%3Bthis.hammer.on(%5C%5C%5C%22panmove%5C%5C%5C%22%2Cfunction(event)%7B_this2._moveSelector(event)%7D)%3Bthis.hammer.on(%5C%5C%5C%22panend%5C%5C%5C%22%2Cfunction(event)%7B_this2._moveSelector(event)%7D)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_generateHueCircle%5C%5C%5C%22%2Cvalue%3Afunction%20_generateHueCircle()%7Bif(this.generated%3D%3D%3Dfalse)%7Bvar%20ctx%3Dthis.colorPickerCanvas.getContext(%5C%5C%5C%222d%5C%5C%5C%22)%3Bif(this.pixelRation%3D%3D%3Dundefined)%7Bthis.pixelRatio%3D(window.devicePixelRatio%7C%7C1)%2F(ctx.webkitBackingStorePixelRatio%7C%7Cctx.mozBackingStorePixelRatio%7C%7Cctx.msBackingStorePixelRatio%7C%7Cctx.oBackingStorePixelRatio%7C%7Cctx.backingStorePixelRatio%7C%7C1)%7Dctx.setTransform(this.pixelRatio%2C0%2C0%2Cthis.pixelRatio%2C0%2C0)%3Bvar%20w%3Dthis.colorPickerCanvas.clientWidth%3Bvar%20h%3Dthis.colorPickerCanvas.clientHeight%3Bctx.clearRect(0%2C0%2Cw%2Ch)%3Bvar%20x%3Dvoid%200%2Cy%3Dvoid%200%2Chue%3Dvoid%200%2Csat%3Dvoid%200%3Bthis.centerCoordinates%3D%7Bx%3Aw*.5%2Cy%3Ah*.5%7D%3Bthis.r%3D.49*w%3Bvar%20angleConvert%3D2*Math.PI%2F360%3Bvar%20hfac%3D1%2F360%3Bvar%20sfac%3D1%2Fthis.r%3Bvar%20rgb%3Dvoid%200%3Bfor(hue%3D0%3Bhue%3C360%3Bhue%2B%2B)%7Bfor(sat%3D0%3Bsat%3Cthis.r%3Bsat%2B%2B)%7Bx%3Dthis.centerCoordinates.x%2Bsat*Math.sin(angleConvert*hue)%3By%3Dthis.centerCoordinates.y%2Bsat*Math.cos(angleConvert*hue)%3Brgb%3Dutil.HSVToRGB(hue*hfac%2Csat*sfac%2C1)%3Bctx.fillStyle%3D%5C%5C%5C%22rgb(%5C%5C%5C%22%2Brgb.r%2B%5C%5C%5C%22%2C%5C%5C%5C%22%2Brgb.g%2B%5C%5C%5C%22%2C%5C%5C%5C%22%2Brgb.b%2B%5C%5C%5C%22)%5C%5C%5C%22%3Bctx.fillRect(x-.5%2Cy-.5%2C2%2C2)%7D%7Dctx.strokeStyle%3D%5C%5C%5C%22rgba(0%2C0%2C0%2C1)%5C%5C%5C%22%3Bctx.circle(this.centerCoordinates.x%2Cthis.centerCoordinates.y%2Cthis.r)%3Bctx.stroke()%3Bthis.hueCircle%3Dctx.getImageData(0%2C0%2Cw%2Ch)%7Dthis.generated%3Dtrue%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_moveSelector%5C%5C%5C%22%2Cvalue%3Afunction%20_moveSelector(event)%7Bvar%20rect%3Dthis.colorPickerDiv.getBoundingClientRect()%3Bvar%20left%3Devent.center.x-rect.left%3Bvar%20top%3Devent.center.y-rect.top%3Bvar%20centerY%3D.5*this.colorPickerDiv.clientHeight%3Bvar%20centerX%3D.5*this.colorPickerDiv.clientWidth%3Bvar%20x%3Dleft-centerX%3Bvar%20y%3Dtop-centerY%3Bvar%20angle%3DMath.atan2(x%2Cy)%3Bvar%20radius%3D.98*Math.min(Math.sqrt(x*x%2By*y)%2CcenterX)%3Bvar%20newTop%3DMath.cos(angle)*radius%2BcenterY%3Bvar%20newLeft%3DMath.sin(angle)*radius%2BcenterX%3Bthis.colorPickerSelector.style.top%3DnewTop-.5*this.colorPickerSelector.clientHeight%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bthis.colorPickerSelector.style.left%3DnewLeft-.5*this.colorPickerSelector.clientWidth%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bvar%20h%3Dangle%2F(2*Math.PI)%3Bh%3Dh%3C0%3Fh%2B1%3Ah%3Bvar%20s%3Dradius%2Fthis.r%3Bvar%20hsv%3Dutil.RGBToHSV(this.color.r%2Cthis.color.g%2Cthis.color.b)%3Bhsv.h%3Dh%3Bhsv.s%3Ds%3Bvar%20rgba%3Dutil.HSVToRGB(hsv.h%2Chsv.s%2Chsv.v)%3Brgba%5B%5C%5C%5C%22a%5C%5C%5C%22%5D%3Dthis.color.a%3Bthis.color%3Drgba%3Bthis.initialColorDiv.style.backgroundColor%3D%5C%5C%5C%22rgba(%5C%5C%5C%22%2Bthis.initialColor.r%2B%5C%5C%5C%22%2C%5C%5C%5C%22%2Bthis.initialColor.g%2B%5C%5C%5C%22%2C%5C%5C%5C%22%2Bthis.initialColor.b%2B%5C%5C%5C%22%2C%5C%5C%5C%22%2Bthis.initialColor.a%2B%5C%5C%5C%22)%5C%5C%5C%22%3Bthis.newColorDiv.style.backgroundColor%3D%5C%5C%5C%22rgba(%5C%5C%5C%22%2Bthis.color.r%2B%5C%5C%5C%22%2C%5C%5C%5C%22%2Bthis.color.g%2B%5C%5C%5C%22%2C%5C%5C%5C%22%2Bthis.color.b%2B%5C%5C%5C%22%2C%5C%5C%5C%22%2Bthis.color.a%2B%5C%5C%5C%22)%5C%5C%5C%22%7D%7D%5D)%3Breturn%20ColorPicker%7D()%3Bexports%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3DColorPicker%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bvar%20moment%3D__webpack_require__(9)%3Bvar%20util%3D__webpack_require__(2)%3Bvar%20DataSet%3D__webpack_require__(11)%3Bvar%20DataView%3D__webpack_require__(12)%3Bvar%20Range%3D__webpack_require__(64)%3Bvar%20Core%3D__webpack_require__(65)%3Bvar%20TimeAxis%3D__webpack_require__(45)%3Bvar%20CurrentTime%3D__webpack_require__(67)%3Bvar%20CustomTime%3D__webpack_require__(46)%3Bvar%20LineGraph%3D__webpack_require__(106)%3Bvar%20printStyle%3D__webpack_require__(15).printStyle%3Bvar%20allOptions%3D__webpack_require__(113).allOptions%3Bvar%20configureOptions%3D__webpack_require__(113).configureOptions%3Bvar%20Configurator%3D__webpack_require__(71)%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3Bvar%20Validator%3D__webpack_require__(15)%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3Bfunction%20Graph2d(container%2Citems%2Cgroups%2Coptions)%7Bif(!(Array.isArray(groups)%7C%7Cgroups%20instanceof%20DataSet%7C%7Cgroups%20instanceof%20DataView)%26%26groups%20instanceof%20Object)%7Bvar%20forthArgument%3Doptions%3Boptions%3Dgroups%3Bgroups%3DforthArgument%7Dif(options%26%26options.throttleRedraw)%7Bconsole.warn('Graph2d%20option%20%5C%5C%5C%22throttleRedraw%5C%5C%5C%22%20is%20DEPRICATED%20and%20no%20longer%20supported.%20It%20will%20be%20removed%20in%20the%20next%20MAJOR%20release.')%7Dvar%20me%3Dthis%3Bthis.defaultOptions%3D%7Bstart%3Anull%2Cend%3Anull%2CautoResize%3Atrue%2Corientation%3A%7Baxis%3A%5C%5C%5C%22bottom%5C%5C%5C%22%2Citem%3A%5C%5C%5C%22bottom%5C%5C%5C%22%7D%2Cmoment%3Amoment%2Cwidth%3Anull%2Cheight%3Anull%2CmaxHeight%3Anull%2CminHeight%3Anull%7D%3Bthis.options%3Dutil.deepExtend(%7B%7D%2Cthis.defaultOptions)%3Bthis._create(container)%3Bthis.components%3D%5B%5D%3Bthis.body%3D%7Bdom%3Athis.dom%2CdomProps%3Athis.props%2Cemitter%3A%7Bon%3Athis.on.bind(this)%2Coff%3Athis.off.bind(this)%2Cemit%3Athis.emit.bind(this)%7D%2ChiddenDates%3A%5B%5D%2Cutil%3A%7BtoScreen%3Ame._toScreen.bind(me)%2CtoGlobalScreen%3Ame._toGlobalScreen.bind(me)%2CtoTime%3Ame._toTime.bind(me)%2CtoGlobalTime%3Ame._toGlobalTime.bind(me)%7D%7D%3Bthis.range%3Dnew%20Range(this.body)%3Bthis.components.push(this.range)%3Bthis.body.range%3Dthis.range%3Bthis.timeAxis%3Dnew%20TimeAxis(this.body)%3Bthis.components.push(this.timeAxis)%3Bthis.currentTime%3Dnew%20CurrentTime(this.body)%3Bthis.components.push(this.currentTime)%3Bthis.linegraph%3Dnew%20LineGraph(this.body)%3Bthis.components.push(this.linegraph)%3Bthis.itemsData%3Dnull%3Bthis.groupsData%3Dnull%3Bthis.on(%5C%5C%5C%22tap%5C%5C%5C%22%2Cfunction(event)%7Bme.emit(%5C%5C%5C%22click%5C%5C%5C%22%2Cme.getEventProperties(event))%7D)%3Bthis.on(%5C%5C%5C%22doubletap%5C%5C%5C%22%2Cfunction(event)%7Bme.emit(%5C%5C%5C%22doubleClick%5C%5C%5C%22%2Cme.getEventProperties(event))%7D)%3Bthis.dom.root.oncontextmenu%3Dfunction(event)%7Bme.emit(%5C%5C%5C%22contextmenu%5C%5C%5C%22%2Cme.getEventProperties(event))%7D%3Bif(options)%7Bthis.setOptions(options)%7Dif(groups)%7Bthis.setGroups(groups)%7Dif(items)%7Bthis.setItems(items)%7Dthis._redraw()%7DGraph2d.prototype%3Dnew%20Core%3BGraph2d.prototype.setOptions%3Dfunction(options)%7Bvar%20errorFound%3DValidator.validate(options%2CallOptions)%3Bif(errorFound%3D%3D%3Dtrue)%7Bconsole.log(%5C%5C%5C%22%25cErrors%20have%20been%20found%20in%20the%20supplied%20options%20object.%5C%5C%5C%22%2CprintStyle)%7DCore.prototype.setOptions.call(this%2Coptions)%7D%3BGraph2d.prototype.setItems%3Dfunction(items)%7Bvar%20initialLoad%3Dthis.itemsData%3D%3Dnull%3Bvar%20newDataSet%3Bif(!items)%7BnewDataSet%3Dnull%7Delse%20if(items%20instanceof%20DataSet%7C%7Citems%20instanceof%20DataView)%7BnewDataSet%3Ditems%7Delse%7BnewDataSet%3Dnew%20DataSet(items%2C%7Btype%3A%7Bstart%3A%5C%5C%5C%22Date%5C%5C%5C%22%2Cend%3A%5C%5C%5C%22Date%5C%5C%5C%22%7D%7D)%7Dthis.itemsData%3DnewDataSet%3Bthis.linegraph%26%26this.linegraph.setItems(newDataSet)%3Bif(initialLoad)%7Bif(this.options.start!%3Dundefined%7C%7Cthis.options.end!%3Dundefined)%7Bvar%20start%3Dthis.options.start!%3Dundefined%3Fthis.options.start%3Anull%3Bvar%20end%3Dthis.options.end!%3Dundefined%3Fthis.options.end%3Anull%3Bthis.setWindow(start%2Cend%2C%7Banimation%3Afalse%7D)%7Delse%7Bthis.fit(%7Banimation%3Afalse%7D)%7D%7D%7D%3BGraph2d.prototype.setGroups%3Dfunction(groups)%7Bvar%20newDataSet%3Bif(!groups)%7BnewDataSet%3Dnull%7Delse%20if(groups%20instanceof%20DataSet%7C%7Cgroups%20instanceof%20DataView)%7BnewDataSet%3Dgroups%7Delse%7BnewDataSet%3Dnew%20DataSet(groups)%7Dthis.groupsData%3DnewDataSet%3Bthis.linegraph.setGroups(newDataSet)%7D%3BGraph2d.prototype.getLegend%3Dfunction(groupId%2Cwidth%2Cheight)%7Bif(width%3D%3D%3Dundefined)%7Bwidth%3D15%7Dif(height%3D%3D%3Dundefined)%7Bheight%3D15%7Dif(this.linegraph.groups%5BgroupId%5D!%3D%3Dundefined)%7Breturn%20this.linegraph.groups%5BgroupId%5D.getLegend(width%2Cheight)%7Delse%7Breturn%5C%5C%5C%22cannot%20find%20group%3A'%5C%5C%5C%22%2BgroupId%2B%5C%5C%5C%22'%5C%5C%5C%22%7D%7D%3BGraph2d.prototype.isGroupVisible%3Dfunction(groupId)%7Bif(this.linegraph.groups%5BgroupId%5D!%3D%3Dundefined)%7Breturn%20this.linegraph.groups%5BgroupId%5D.visible%26%26(this.linegraph.options.groups.visibility%5BgroupId%5D%3D%3D%3Dundefined%7C%7Cthis.linegraph.options.groups.visibility%5BgroupId%5D%3D%3Dtrue)%7Delse%7Breturn%20false%7D%7D%3BGraph2d.prototype.getDataRange%3Dfunction()%7Bvar%20min%3Dnull%3Bvar%20max%3Dnull%3Bfor(var%20groupId%20in%20this.linegraph.groups)%7Bif(this.linegraph.groups.hasOwnProperty(groupId))%7Bif(this.linegraph.groups%5BgroupId%5D.visible%3D%3Dtrue)%7Bfor(var%20i%3D0%3Bi%3Cthis.linegraph.groups%5BgroupId%5D.itemsData.length%3Bi%2B%2B)%7Bvar%20item%3Dthis.linegraph.groups%5BgroupId%5D.itemsData%5Bi%5D%3Bvar%20value%3Dutil.convert(item.x%2C%5C%5C%5C%22Date%5C%5C%5C%22).valueOf()%3Bmin%3Dmin%3D%3Dnull%3Fvalue%3Amin%3Evalue%3Fvalue%3Amin%3Bmax%3Dmax%3D%3Dnull%3Fvalue%3Amax%3Cvalue%3Fvalue%3Amax%7D%7D%7D%7Dreturn%7Bmin%3Amin!%3Dnull%3Fnew%20Date(min)%3Anull%2Cmax%3Amax!%3Dnull%3Fnew%20Date(max)%3Anull%7D%7D%3BGraph2d.prototype.getEventProperties%3Dfunction(event)%7Bvar%20clientX%3Devent.center%3Fevent.center.x%3Aevent.clientX%3Bvar%20clientY%3Devent.center%3Fevent.center.y%3Aevent.clientY%3Bvar%20x%3DclientX-util.getAbsoluteLeft(this.dom.centerContainer)%3Bvar%20y%3DclientY-util.getAbsoluteTop(this.dom.centerContainer)%3Bvar%20time%3Dthis._toTime(x)%3Bvar%20customTime%3DCustomTime.customTimeFromTarget(event)%3Bvar%20element%3Dutil.getTarget(event)%3Bvar%20what%3Dnull%3Bif(util.hasParent(element%2Cthis.timeAxis.dom.foreground))%7Bwhat%3D%5C%5C%5C%22axis%5C%5C%5C%22%7Delse%20if(this.timeAxis2%26%26util.hasParent(element%2Cthis.timeAxis2.dom.foreground))%7Bwhat%3D%5C%5C%5C%22axis%5C%5C%5C%22%7Delse%20if(util.hasParent(element%2Cthis.linegraph.yAxisLeft.dom.frame))%7Bwhat%3D%5C%5C%5C%22data-axis%5C%5C%5C%22%7Delse%20if(util.hasParent(element%2Cthis.linegraph.yAxisRight.dom.frame))%7Bwhat%3D%5C%5C%5C%22data-axis%5C%5C%5C%22%7Delse%20if(util.hasParent(element%2Cthis.linegraph.legendLeft.dom.frame))%7Bwhat%3D%5C%5C%5C%22legend%5C%5C%5C%22%7Delse%20if(util.hasParent(element%2Cthis.linegraph.legendRight.dom.frame))%7Bwhat%3D%5C%5C%5C%22legend%5C%5C%5C%22%7Delse%20if(customTime!%3Dnull)%7Bwhat%3D%5C%5C%5C%22custom-time%5C%5C%5C%22%7Delse%20if(util.hasParent(element%2Cthis.currentTime.bar))%7Bwhat%3D%5C%5C%5C%22current-time%5C%5C%5C%22%7Delse%20if(util.hasParent(element%2Cthis.dom.center))%7Bwhat%3D%5C%5C%5C%22background%5C%5C%5C%22%7Dvar%20value%3D%5B%5D%3Bvar%20yAxisLeft%3Dthis.linegraph.yAxisLeft%3Bvar%20yAxisRight%3Dthis.linegraph.yAxisRight%3Bif(!yAxisLeft.hidden%26%26this.itemsData.length%3E0)%7Bvalue.push(yAxisLeft.screenToValue(y))%7Dif(!yAxisRight.hidden%26%26this.itemsData.length%3E0)%7Bvalue.push(yAxisRight.screenToValue(y))%7Dreturn%7Bevent%3Aevent%2Cwhat%3Awhat%2CpageX%3Aevent.srcEvent%3Fevent.srcEvent.pageX%3Aevent.pageX%2CpageY%3Aevent.srcEvent%3Fevent.srcEvent.pageY%3Aevent.pageY%2Cx%3Ax%2Cy%3Ay%2Ctime%3Atime%2Cvalue%3Avalue%7D%7D%3BGraph2d.prototype._createConfigurator%3Dfunction()%7Breturn%20new%20Configurator(this%2Cthis.dom.container%2CconfigureOptions)%7D%3Bmodule.exports%3DGraph2d%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bexports.util%3D__webpack_require__(2)%3Bexports.DOMutil%3D__webpack_require__(14)%3Bexports.DataSet%3D__webpack_require__(11)%3Bexports.DataView%3D__webpack_require__(12)%3Bexports.Queue%3D__webpack_require__(43)%3Bexports.Network%3D__webpack_require__(182)%3Bexports.network%3D%7BImages%3A__webpack_require__(116)%2Cdotparser%3A__webpack_require__(114)%2CgephiParser%3A__webpack_require__(115)%2CallOptions%3A__webpack_require__(122)%7D%3Bexports.network.convertDot%3Dfunction(input)%7Breturn%20exports.network.dotparser.DOTToGraph(input)%7D%3Bexports.network.convertGephi%3Dfunction(input%2Coptions)%7Breturn%20exports.network.gephiParser.parseGephi(input%2Coptions)%7D%3Bexports.moment%3D__webpack_require__(9)%3Bexports.Hammer%3D__webpack_require__(10)%3Bexports.keycharm%3D__webpack_require__(35)%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3B__webpack_require__(183)%3Bvar%20Emitter%3D__webpack_require__(44)%3Bvar%20util%3D__webpack_require__(2)%3Bvar%20dotparser%3D__webpack_require__(114)%3Bvar%20gephiParser%3D__webpack_require__(115)%3Bvar%20Activator%3D__webpack_require__(97)%3Bvar%20locales%3D__webpack_require__(184)%3Bvar%20Images%3D__webpack_require__(116)%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3Bvar%20Groups%3D__webpack_require__(186)%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3Bvar%20NodesHandler%3D__webpack_require__(187)%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3Bvar%20EdgesHandler%3D__webpack_require__(214)%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3Bvar%20PhysicsEngine%3D__webpack_require__(220)%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3Bvar%20ClusterEngine%3D__webpack_require__(227)%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3Bvar%20CanvasRenderer%3D__webpack_require__(229)%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3Bvar%20Canvas%3D__webpack_require__(230)%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3Bvar%20View%3D__webpack_require__(231)%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3Bvar%20InteractionHandler%3D__webpack_require__(232)%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3Bvar%20SelectionHandler%3D__webpack_require__(234)%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3Bvar%20LayoutEngine%3D__webpack_require__(235)%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3Bvar%20ManipulationSystem%3D__webpack_require__(237)%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3Bvar%20Configurator%3D__webpack_require__(71)%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3Bvar%20Validator%3D__webpack_require__(15)%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3Bvar%20_require%3D__webpack_require__(15)%2CprintStyle%3D_require.printStyle%3Bvar%20_require2%3D__webpack_require__(122)%2CallOptions%3D_require2.allOptions%2CconfigureOptions%3D_require2.configureOptions%3Bvar%20KamadaKawai%3D__webpack_require__(238)%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3Bfunction%20Network(container%2Cdata%2Coptions)%7Bvar%20_this%3Dthis%3Bif(!(this%20instanceof%20Network))%7Bthrow%20new%20SyntaxError(%5C%5C%5C%22Constructor%20must%20be%20called%20with%20the%20new%20operator%5C%5C%5C%22)%7Dthis.options%3D%7B%7D%3Bthis.defaultOptions%3D%7Blocale%3A%5C%5C%5C%22en%5C%5C%5C%22%2Clocales%3Alocales%2CclickToUse%3Afalse%7D%3Butil.extend(this.options%2Cthis.defaultOptions)%3Bthis.body%3D%7Bcontainer%3Acontainer%2Cnodes%3A%7B%7D%2CnodeIndices%3A%5B%5D%2Cedges%3A%7B%7D%2CedgeIndices%3A%5B%5D%2Cemitter%3A%7Bon%3Athis.on.bind(this)%2Coff%3Athis.off.bind(this)%2Cemit%3Athis.emit.bind(this)%2Conce%3Athis.once.bind(this)%7D%2CeventListeners%3A%7BonTap%3Afunction%20onTap()%7B%7D%2ConTouch%3Afunction%20onTouch()%7B%7D%2ConDoubleTap%3Afunction%20onDoubleTap()%7B%7D%2ConHold%3Afunction%20onHold()%7B%7D%2ConDragStart%3Afunction%20onDragStart()%7B%7D%2ConDrag%3Afunction%20onDrag()%7B%7D%2ConDragEnd%3Afunction%20onDragEnd()%7B%7D%2ConMouseWheel%3Afunction%20onMouseWheel()%7B%7D%2ConPinch%3Afunction%20onPinch()%7B%7D%2ConMouseMove%3Afunction%20onMouseMove()%7B%7D%2ConRelease%3Afunction%20onRelease()%7B%7D%2ConContext%3Afunction%20onContext()%7B%7D%7D%2Cdata%3A%7Bnodes%3Anull%2Cedges%3Anull%7D%2Cfunctions%3A%7BcreateNode%3Afunction%20createNode()%7B%7D%2CcreateEdge%3Afunction%20createEdge()%7B%7D%2CgetPointer%3Afunction%20getPointer()%7B%7D%7D%2Cmodules%3A%7B%7D%2Cview%3A%7Bscale%3A1%2Ctranslation%3A%7Bx%3A0%2Cy%3A0%7D%7D%7D%3Bthis.bindEventListeners()%3Bthis.images%3Dnew%20Images(function()%7Breturn%20_this.body.emitter.emit(%5C%5C%5C%22_requestRedraw%5C%5C%5C%22)%7D)%3Bthis.groups%3Dnew%20Groups%3Bthis.canvas%3Dnew%20Canvas(this.body)%3Bthis.selectionHandler%3Dnew%20SelectionHandler(this.body%2Cthis.canvas)%3Bthis.interactionHandler%3Dnew%20InteractionHandler(this.body%2Cthis.canvas%2Cthis.selectionHandler)%3Bthis.view%3Dnew%20View(this.body%2Cthis.canvas)%3Bthis.renderer%3Dnew%20CanvasRenderer(this.body%2Cthis.canvas)%3Bthis.physics%3Dnew%20PhysicsEngine(this.body)%3Bthis.layoutEngine%3Dnew%20LayoutEngine(this.body)%3Bthis.clustering%3Dnew%20ClusterEngine(this.body)%3Bthis.manipulation%3Dnew%20ManipulationSystem(this.body%2Cthis.canvas%2Cthis.selectionHandler)%3Bthis.nodesHandler%3Dnew%20NodesHandler(this.body%2Cthis.images%2Cthis.groups%2Cthis.layoutEngine)%3Bthis.edgesHandler%3Dnew%20EdgesHandler(this.body%2Cthis.images%2Cthis.groups)%3Bthis.body.modules%5B%5C%5C%5C%22kamadaKawai%5C%5C%5C%22%5D%3Dnew%20KamadaKawai(this.body%2C150%2C.05)%3Bthis.body.modules%5B%5C%5C%5C%22clustering%5C%5C%5C%22%5D%3Dthis.clustering%3Bthis.canvas._create()%3Bthis.setOptions(options)%3Bthis.setData(data)%7DEmitter(Network.prototype)%3BNetwork.prototype.setOptions%3Dfunction(options)%7Bvar%20_this2%3Dthis%3Bif(options!%3D%3Dundefined)%7Bvar%20errorFound%3DValidator.validate(options%2CallOptions)%3Bif(errorFound%3D%3D%3Dtrue)%7Bconsole.log(%5C%5C%5C%22%25cErrors%20have%20been%20found%20in%20the%20supplied%20options%20object.%5C%5C%5C%22%2CprintStyle)%7Dvar%20fields%3D%5B%5C%5C%5C%22locale%5C%5C%5C%22%2C%5C%5C%5C%22locales%5C%5C%5C%22%2C%5C%5C%5C%22clickToUse%5C%5C%5C%22%5D%3Butil.selectiveDeepExtend(fields%2Cthis.options%2Coptions)%3Boptions%3Dthis.layoutEngine.setOptions(options.layout%2Coptions)%3Bthis.canvas.setOptions(options)%3Bthis.groups.setOptions(options.groups)%3Bthis.nodesHandler.setOptions(options.nodes)%3Bthis.edgesHandler.setOptions(options.edges)%3Bthis.physics.setOptions(options.physics)%3Bthis.manipulation.setOptions(options.manipulation%2Coptions%2Cthis.options)%3Bthis.interactionHandler.setOptions(options.interaction)%3Bthis.renderer.setOptions(options.interaction)%3Bthis.selectionHandler.setOptions(options.interaction)%3Bif(options.groups!%3D%3Dundefined)%7Bthis.body.emitter.emit(%5C%5C%5C%22refreshNodes%5C%5C%5C%22)%7Dif(%5C%5C%5C%22configure%5C%5C%5C%22in%20options)%7Bif(!this.configurator)%7Bthis.configurator%3Dnew%20Configurator(this%2Cthis.body.container%2CconfigureOptions%2Cthis.canvas.pixelRatio)%7Dthis.configurator.setOptions(options.configure)%7Dif(this.configurator%26%26this.configurator.options.enabled%3D%3D%3Dtrue)%7Bvar%20networkOptions%3D%7Bnodes%3A%7B%7D%2Cedges%3A%7B%7D%2Clayout%3A%7B%7D%2Cinteraction%3A%7B%7D%2Cmanipulation%3A%7B%7D%2Cphysics%3A%7B%7D%2Cglobal%3A%7B%7D%7D%3Butil.deepExtend(networkOptions.nodes%2Cthis.nodesHandler.options)%3Butil.deepExtend(networkOptions.edges%2Cthis.edgesHandler.options)%3Butil.deepExtend(networkOptions.layout%2Cthis.layoutEngine.options)%3Butil.deepExtend(networkOptions.interaction%2Cthis.selectionHandler.options)%3Butil.deepExtend(networkOptions.interaction%2Cthis.renderer.options)%3Butil.deepExtend(networkOptions.interaction%2Cthis.interactionHandler.options)%3Butil.deepExtend(networkOptions.manipulation%2Cthis.manipulation.options)%3Butil.deepExtend(networkOptions.physics%2Cthis.physics.options)%3Butil.deepExtend(networkOptions.global%2Cthis.canvas.options)%3Butil.deepExtend(networkOptions.global%2Cthis.options)%3Bthis.configurator.setModuleOptions(networkOptions)%7Dif(options.clickToUse!%3D%3Dundefined)%7Bif(options.clickToUse%3D%3D%3Dtrue)%7Bif(this.activator%3D%3D%3Dundefined)%7Bthis.activator%3Dnew%20Activator(this.canvas.frame)%3Bthis.activator.on(%5C%5C%5C%22change%5C%5C%5C%22%2Cfunction()%7B_this2.body.emitter.emit(%5C%5C%5C%22activate%5C%5C%5C%22)%7D)%7D%7Delse%7Bif(this.activator!%3D%3Dundefined)%7Bthis.activator.destroy()%3Bdelete%20this.activator%7Dthis.body.emitter.emit(%5C%5C%5C%22activate%5C%5C%5C%22)%7D%7Delse%7Bthis.body.emitter.emit(%5C%5C%5C%22activate%5C%5C%5C%22)%7Dthis.canvas.setSize()%3Bthis.body.emitter.emit(%5C%5C%5C%22startSimulation%5C%5C%5C%22)%7D%7D%3BNetwork.prototype._updateVisibleIndices%3Dfunction()%7Bvar%20nodes%3Dthis.body.nodes%3Bvar%20edges%3Dthis.body.edges%3Bthis.body.nodeIndices%3D%5B%5D%3Bthis.body.edgeIndices%3D%5B%5D%3Bfor(var%20nodeId%20in%20nodes)%7Bif(nodes.hasOwnProperty(nodeId))%7Bif(!this.clustering._isClusteredNode(nodeId)%26%26nodes%5BnodeId%5D.options.hidden%3D%3D%3Dfalse)%7Bthis.body.nodeIndices.push(nodes%5BnodeId%5D.id)%7D%7D%7Dfor(var%20edgeId%20in%20edges)%7Bif(edges.hasOwnProperty(edgeId))%7Bvar%20edge%3Dedges%5BedgeId%5D%3Bvar%20fromNode%3Dnodes%5Bedge.fromId%5D%3Bvar%20toNode%3Dnodes%5Bedge.toId%5D%3Bvar%20edgeNodesPresent%3DfromNode!%3D%3Dundefined%26%26toNode!%3D%3Dundefined%3Bvar%20isVisible%3D!this.clustering._isClusteredEdge(edgeId)%26%26edge.options.hidden%3D%3D%3Dfalse%26%26edgeNodesPresent%26%26fromNode.options.hidden%3D%3D%3Dfalse%26%26toNode.options.hidden%3D%3D%3Dfalse%3Bif(isVisible)%7Bthis.body.edgeIndices.push(edge.id)%7D%7D%7D%7D%3BNetwork.prototype.bindEventListeners%3Dfunction()%7Bvar%20_this3%3Dthis%3Bthis.body.emitter.on(%5C%5C%5C%22_dataChanged%5C%5C%5C%22%2Cfunction()%7B_this3.edgesHandler._updateState()%3B_this3.body.emitter.emit(%5C%5C%5C%22_dataUpdated%5C%5C%5C%22)%7D)%3Bthis.body.emitter.on(%5C%5C%5C%22_dataUpdated%5C%5C%5C%22%2Cfunction()%7B_this3.clustering._updateState()%3B_this3._updateVisibleIndices()%3B_this3._updateValueRange(_this3.body.nodes)%3B_this3._updateValueRange(_this3.body.edges)%3B_this3.body.emitter.emit(%5C%5C%5C%22startSimulation%5C%5C%5C%22)%3B_this3.body.emitter.emit(%5C%5C%5C%22_requestRedraw%5C%5C%5C%22)%7D)%7D%3BNetwork.prototype.setData%3Dfunction(data)%7Bthis.body.emitter.emit(%5C%5C%5C%22resetPhysics%5C%5C%5C%22)%3Bthis.body.emitter.emit(%5C%5C%5C%22_resetData%5C%5C%5C%22)%3Bthis.selectionHandler.unselectAll()%3Bif(data%26%26data.dot%26%26(data.nodes%7C%7Cdata.edges))%7Bthrow%20new%20SyntaxError('Data%20must%20contain%20either%20parameter%20%5C%5C%5C%22dot%5C%5C%5C%22%20or%20'%2B'%20parameter%20pair%20%5C%5C%5C%22nodes%5C%5C%5C%22%20and%20%5C%5C%5C%22edges%5C%5C%5C%22%2C%20but%20not%20both.')%7Dthis.setOptions(data%26%26data.options)%3Bif(data%26%26data.dot)%7Bconsole.log(%5C%5C%5C%22The%20dot%20property%20has%20been%20deprecated.%20Please%20use%20the%20static%20convertDot%20method%20to%20convert%20DOT%20into%20vis.network%20format%20and%20use%20the%20normal%20data%20format%20with%20nodes%20and%20edges.%20This%20converter%20is%20used%20like%20this%3A%20var%20data%20%3D%20vis.network.convertDot(dotString)%3B%5C%5C%5C%22)%3Bvar%20dotData%3Ddotparser.DOTToGraph(data.dot)%3Bthis.setData(dotData)%3Breturn%7Delse%20if(data%26%26data.gephi)%7Bconsole.log(%5C%5C%5C%22The%20gephi%20property%20has%20been%20deprecated.%20Please%20use%20the%20static%20convertGephi%20method%20to%20convert%20gephi%20into%20vis.network%20format%20and%20use%20the%20normal%20data%20format%20with%20nodes%20and%20edges.%20This%20converter%20is%20used%20like%20this%3A%20var%20data%20%3D%20vis.network.convertGephi(gephiJson)%3B%5C%5C%5C%22)%3Bvar%20gephiData%3DgephiParser.parseGephi(data.gephi)%3Bthis.setData(gephiData)%3Breturn%7Delse%7Bthis.nodesHandler.setData(data%26%26data.nodes%2Ctrue)%3Bthis.edgesHandler.setData(data%26%26data.edges%2Ctrue)%7Dthis.body.emitter.emit(%5C%5C%5C%22_dataChanged%5C%5C%5C%22)%3Bthis.body.emitter.emit(%5C%5C%5C%22_dataLoaded%5C%5C%5C%22)%3Bthis.body.emitter.emit(%5C%5C%5C%22initPhysics%5C%5C%5C%22)%7D%3BNetwork.prototype.destroy%3Dfunction()%7Bthis.body.emitter.emit(%5C%5C%5C%22destroy%5C%5C%5C%22)%3Bthis.body.emitter.off()%3Bthis.off()%3Bdelete%20this.groups%3Bdelete%20this.canvas%3Bdelete%20this.selectionHandler%3Bdelete%20this.interactionHandler%3Bdelete%20this.view%3Bdelete%20this.renderer%3Bdelete%20this.physics%3Bdelete%20this.layoutEngine%3Bdelete%20this.clustering%3Bdelete%20this.manipulation%3Bdelete%20this.nodesHandler%3Bdelete%20this.edgesHandler%3Bdelete%20this.configurator%3Bdelete%20this.images%3Bfor(var%20nodeId%20in%20this.body.nodes)%7Bif(!this.body.nodes.hasOwnProperty(nodeId))continue%3Bdelete%20this.body.nodes%5BnodeId%5D%7Dfor(var%20edgeId%20in%20this.body.edges)%7Bif(!this.body.edges.hasOwnProperty(edgeId))continue%3Bdelete%20this.body.edges%5BedgeId%5D%7Dutil.recursiveDOMDelete(this.body.container)%7D%3BNetwork.prototype._updateValueRange%3Dfunction(obj)%7Bvar%20id%3Bvar%20valueMin%3Dundefined%3Bvar%20valueMax%3Dundefined%3Bvar%20valueTotal%3D0%3Bfor(id%20in%20obj)%7Bif(obj.hasOwnProperty(id))%7Bvar%20value%3Dobj%5Bid%5D.getValue()%3Bif(value!%3D%3Dundefined)%7BvalueMin%3DvalueMin%3D%3D%3Dundefined%3Fvalue%3AMath.min(value%2CvalueMin)%3BvalueMax%3DvalueMax%3D%3D%3Dundefined%3Fvalue%3AMath.max(value%2CvalueMax)%3BvalueTotal%2B%3Dvalue%7D%7D%7Dif(valueMin!%3D%3Dundefined%26%26valueMax!%3D%3Dundefined)%7Bfor(id%20in%20obj)%7Bif(obj.hasOwnProperty(id))%7Bobj%5Bid%5D.setValueRange(valueMin%2CvalueMax%2CvalueTotal)%7D%7D%7D%7D%3BNetwork.prototype.isActive%3Dfunction()%7Breturn!this.activator%7C%7Cthis.activator.active%7D%3BNetwork.prototype.setSize%3Dfunction()%7Breturn%20this.canvas.setSize.apply(this.canvas%2Carguments)%7D%3BNetwork.prototype.canvasToDOM%3Dfunction()%7Breturn%20this.canvas.canvasToDOM.apply(this.canvas%2Carguments)%7D%3BNetwork.prototype.DOMtoCanvas%3Dfunction()%7Breturn%20this.canvas.DOMtoCanvas.apply(this.canvas%2Carguments)%7D%3BNetwork.prototype.findNode%3Dfunction()%7Breturn%20this.clustering.findNode.apply(this.clustering%2Carguments)%7D%3BNetwork.prototype.isCluster%3Dfunction()%7Breturn%20this.clustering.isCluster.apply(this.clustering%2Carguments)%7D%3BNetwork.prototype.openCluster%3Dfunction()%7Breturn%20this.clustering.openCluster.apply(this.clustering%2Carguments)%7D%3BNetwork.prototype.cluster%3Dfunction()%7Breturn%20this.clustering.cluster.apply(this.clustering%2Carguments)%7D%3BNetwork.prototype.getNodesInCluster%3Dfunction()%7Breturn%20this.clustering.getNodesInCluster.apply(this.clustering%2Carguments)%7D%3BNetwork.prototype.clusterByConnection%3Dfunction()%7Breturn%20this.clustering.clusterByConnection.apply(this.clustering%2Carguments)%7D%3BNetwork.prototype.clusterByHubsize%3Dfunction()%7Breturn%20this.clustering.clusterByHubsize.apply(this.clustering%2Carguments)%7D%3BNetwork.prototype.clusterOutliers%3Dfunction()%7Breturn%20this.clustering.clusterOutliers.apply(this.clustering%2Carguments)%7D%3BNetwork.prototype.getSeed%3Dfunction()%7Breturn%20this.layoutEngine.getSeed.apply(this.layoutEngine%2Carguments)%7D%3BNetwork.prototype.enableEditMode%3Dfunction()%7Breturn%20this.manipulation.enableEditMode.apply(this.manipulation%2Carguments)%7D%3BNetwork.prototype.disableEditMode%3Dfunction()%7Breturn%20this.manipulation.disableEditMode.apply(this.manipulation%2Carguments)%7D%3BNetwork.prototype.addNodeMode%3Dfunction()%7Breturn%20this.manipulation.addNodeMode.apply(this.manipulation%2Carguments)%7D%3BNetwork.prototype.editNode%3Dfunction()%7Breturn%20this.manipulation.editNode.apply(this.manipulation%2Carguments)%7D%3BNetwork.prototype.editNodeMode%3Dfunction()%7Bconsole.log(%5C%5C%5C%22Deprecated%3A%20Please%20use%20editNode%20instead%20of%20editNodeMode.%5C%5C%5C%22)%3Breturn%20this.manipulation.editNode.apply(this.manipulation%2Carguments)%7D%3BNetwork.prototype.addEdgeMode%3Dfunction()%7Breturn%20this.manipulation.addEdgeMode.apply(this.manipulation%2Carguments)%7D%3BNetwork.prototype.editEdgeMode%3Dfunction()%7Breturn%20this.manipulation.editEdgeMode.apply(this.manipulation%2Carguments)%7D%3BNetwork.prototype.deleteSelected%3Dfunction()%7Breturn%20this.manipulation.deleteSelected.apply(this.manipulation%2Carguments)%7D%3BNetwork.prototype.getPositions%3Dfunction()%7Breturn%20this.nodesHandler.getPositions.apply(this.nodesHandler%2Carguments)%7D%3BNetwork.prototype.storePositions%3Dfunction()%7Breturn%20this.nodesHandler.storePositions.apply(this.nodesHandler%2Carguments)%7D%3BNetwork.prototype.moveNode%3Dfunction()%7Breturn%20this.nodesHandler.moveNode.apply(this.nodesHandler%2Carguments)%7D%3BNetwork.prototype.getBoundingBox%3Dfunction()%7Breturn%20this.nodesHandler.getBoundingBox.apply(this.nodesHandler%2Carguments)%7D%3BNetwork.prototype.getConnectedNodes%3Dfunction(objectId)%7Bif(this.body.nodes%5BobjectId%5D!%3D%3Dundefined)%7Breturn%20this.nodesHandler.getConnectedNodes.apply(this.nodesHandler%2Carguments)%7Delse%7Breturn%20this.edgesHandler.getConnectedNodes.apply(this.edgesHandler%2Carguments)%7D%7D%3BNetwork.prototype.getConnectedEdges%3Dfunction()%7Breturn%20this.nodesHandler.getConnectedEdges.apply(this.nodesHandler%2Carguments)%7D%3BNetwork.prototype.startSimulation%3Dfunction()%7Breturn%20this.physics.startSimulation.apply(this.physics%2Carguments)%7D%3BNetwork.prototype.stopSimulation%3Dfunction()%7Breturn%20this.physics.stopSimulation.apply(this.physics%2Carguments)%7D%3BNetwork.prototype.stabilize%3Dfunction()%7Breturn%20this.physics.stabilize.apply(this.physics%2Carguments)%7D%3BNetwork.prototype.getSelection%3Dfunction()%7Breturn%20this.selectionHandler.getSelection.apply(this.selectionHandler%2Carguments)%7D%3BNetwork.prototype.setSelection%3Dfunction()%7Breturn%20this.selectionHandler.setSelection.apply(this.selectionHandler%2Carguments)%7D%3BNetwork.prototype.getSelectedNodes%3Dfunction()%7Breturn%20this.selectionHandler.getSelectedNodes.apply(this.selectionHandler%2Carguments)%7D%3BNetwork.prototype.getSelectedEdges%3Dfunction()%7Breturn%20this.selectionHandler.getSelectedEdges.apply(this.selectionHandler%2Carguments)%7D%3BNetwork.prototype.getNodeAt%3Dfunction()%7Bvar%20node%3Dthis.selectionHandler.getNodeAt.apply(this.selectionHandler%2Carguments)%3Bif(node!%3D%3Dundefined%26%26node.id!%3D%3Dundefined)%7Breturn%20node.id%7Dreturn%20node%7D%3BNetwork.prototype.getEdgeAt%3Dfunction()%7Bvar%20edge%3Dthis.selectionHandler.getEdgeAt.apply(this.selectionHandler%2Carguments)%3Bif(edge!%3D%3Dundefined%26%26edge.id!%3D%3Dundefined)%7Breturn%20edge.id%7Dreturn%20edge%7D%3BNetwork.prototype.selectNodes%3Dfunction()%7Breturn%20this.selectionHandler.selectNodes.apply(this.selectionHandler%2Carguments)%7D%3BNetwork.prototype.selectEdges%3Dfunction()%7Breturn%20this.selectionHandler.selectEdges.apply(this.selectionHandler%2Carguments)%7D%3BNetwork.prototype.unselectAll%3Dfunction()%7Bthis.selectionHandler.unselectAll.apply(this.selectionHandler%2Carguments)%3Bthis.redraw()%7D%3BNetwork.prototype.redraw%3Dfunction()%7Breturn%20this.renderer.redraw.apply(this.renderer%2Carguments)%7D%3BNetwork.prototype.getScale%3Dfunction()%7Breturn%20this.view.getScale.apply(this.view%2Carguments)%7D%3BNetwork.prototype.getViewPosition%3Dfunction()%7Breturn%20this.view.getViewPosition.apply(this.view%2Carguments)%7D%3BNetwork.prototype.fit%3Dfunction()%7Breturn%20this.view.fit.apply(this.view%2Carguments)%7D%3BNetwork.prototype.moveTo%3Dfunction()%7Breturn%20this.view.moveTo.apply(this.view%2Carguments)%7D%3BNetwork.prototype.focus%3Dfunction()%7Breturn%20this.view.focus.apply(this.view%2Carguments)%7D%3BNetwork.prototype.releaseNode%3Dfunction()%7Breturn%20this.view.releaseNode.apply(this.view%2Carguments)%7D%3BNetwork.prototype.getOptionsFromConfigurator%3Dfunction()%7Bvar%20options%3D%7B%7D%3Bif(this.configurator)%7Boptions%3Dthis.configurator.getOptions.apply(this.configurator)%7Dreturn%20options%7D%3Bmodule.exports%3DNetwork%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bif(typeof%20CanvasRenderingContext2D!%3D%3D%5C%5C%5C%22undefined%5C%5C%5C%22)%7BCanvasRenderingContext2D.prototype.circle%3Dfunction(x%2Cy%2Cr)%7Bthis.beginPath()%3Bthis.arc(x%2Cy%2Cr%2C0%2C2*Math.PI%2Cfalse)%3Bthis.closePath()%7D%3BCanvasRenderingContext2D.prototype.square%3Dfunction(x%2Cy%2Cr)%7Bthis.beginPath()%3Bthis.rect(x-r%2Cy-r%2Cr*2%2Cr*2)%3Bthis.closePath()%7D%3BCanvasRenderingContext2D.prototype.triangle%3Dfunction(x%2Cy%2Cr)%7Bthis.beginPath()%3Br*%3D1.15%3By%2B%3D.275*r%3Bvar%20s%3Dr*2%3Bvar%20s2%3Ds%2F2%3Bvar%20ir%3DMath.sqrt(3)%2F6*s%3Bvar%20h%3DMath.sqrt(s*s-s2*s2)%3Bthis.moveTo(x%2Cy-(h-ir))%3Bthis.lineTo(x%2Bs2%2Cy%2Bir)%3Bthis.lineTo(x-s2%2Cy%2Bir)%3Bthis.lineTo(x%2Cy-(h-ir))%3Bthis.closePath()%7D%3BCanvasRenderingContext2D.prototype.triangleDown%3Dfunction(x%2Cy%2Cr)%7Bthis.beginPath()%3Br*%3D1.15%3By-%3D.275*r%3Bvar%20s%3Dr*2%3Bvar%20s2%3Ds%2F2%3Bvar%20ir%3DMath.sqrt(3)%2F6*s%3Bvar%20h%3DMath.sqrt(s*s-s2*s2)%3Bthis.moveTo(x%2Cy%2B(h-ir))%3Bthis.lineTo(x%2Bs2%2Cy-ir)%3Bthis.lineTo(x-s2%2Cy-ir)%3Bthis.lineTo(x%2Cy%2B(h-ir))%3Bthis.closePath()%7D%3BCanvasRenderingContext2D.prototype.star%3Dfunction(x%2Cy%2Cr)%7Bthis.beginPath()%3Br*%3D.82%3By%2B%3D.1*r%3Bfor(var%20n%3D0%3Bn%3C10%3Bn%2B%2B)%7Bvar%20radius%3Dn%252%3D%3D%3D0%3Fr*1.3%3Ar*.5%3Bthis.lineTo(x%2Bradius*Math.sin(n*2*Math.PI%2F10)%2Cy-radius*Math.cos(n*2*Math.PI%2F10))%7Dthis.closePath()%7D%3BCanvasRenderingContext2D.prototype.diamond%3Dfunction(x%2Cy%2Cr)%7Bthis.beginPath()%3Bthis.lineTo(x%2Cy%2Br)%3Bthis.lineTo(x%2Br%2Cy)%3Bthis.lineTo(x%2Cy-r)%3Bthis.lineTo(x-r%2Cy)%3Bthis.closePath()%7D%3BCanvasRenderingContext2D.prototype.roundRect%3Dfunction(x%2Cy%2Cw%2Ch%2Cr)%7Bvar%20r2d%3DMath.PI%2F180%3Bif(w-2*r%3C0)%7Br%3Dw%2F2%7Dif(h-2*r%3C0)%7Br%3Dh%2F2%7Dthis.beginPath()%3Bthis.moveTo(x%2Br%2Cy)%3Bthis.lineTo(x%2Bw-r%2Cy)%3Bthis.arc(x%2Bw-r%2Cy%2Br%2Cr%2Cr2d*270%2Cr2d*360%2Cfalse)%3Bthis.lineTo(x%2Bw%2Cy%2Bh-r)%3Bthis.arc(x%2Bw-r%2Cy%2Bh-r%2Cr%2C0%2Cr2d*90%2Cfalse)%3Bthis.lineTo(x%2Br%2Cy%2Bh)%3Bthis.arc(x%2Br%2Cy%2Bh-r%2Cr%2Cr2d*90%2Cr2d*180%2Cfalse)%3Bthis.lineTo(x%2Cy%2Br)%3Bthis.arc(x%2Br%2Cy%2Br%2Cr%2Cr2d*180%2Cr2d*270%2Cfalse)%3Bthis.closePath()%7D%3BCanvasRenderingContext2D.prototype.ellipse_vis%3Dfunction(x%2Cy%2Cw%2Ch)%7Bvar%20kappa%3D.5522848%2Cox%3Dw%2F2*kappa%2Coy%3Dh%2F2*kappa%2Cxe%3Dx%2Bw%2Cye%3Dy%2Bh%2Cxm%3Dx%2Bw%2F2%2Cym%3Dy%2Bh%2F2%3Bthis.beginPath()%3Bthis.moveTo(x%2Cym)%3Bthis.bezierCurveTo(x%2Cym-oy%2Cxm-ox%2Cy%2Cxm%2Cy)%3Bthis.bezierCurveTo(xm%2Box%2Cy%2Cxe%2Cym-oy%2Cxe%2Cym)%3Bthis.bezierCurveTo(xe%2Cym%2Boy%2Cxm%2Box%2Cye%2Cxm%2Cye)%3Bthis.bezierCurveTo(xm-ox%2Cye%2Cx%2Cym%2Boy%2Cx%2Cym)%3Bthis.closePath()%7D%3BCanvasRenderingContext2D.prototype.database%3Dfunction(x%2Cy%2Cw%2Ch)%7Bvar%20f%3D1%2F3%3Bvar%20wEllipse%3Dw%3Bvar%20hEllipse%3Dh*f%3Bvar%20kappa%3D.5522848%2Cox%3DwEllipse%2F2*kappa%2Coy%3DhEllipse%2F2*kappa%2Cxe%3Dx%2BwEllipse%2Cye%3Dy%2BhEllipse%2Cxm%3Dx%2BwEllipse%2F2%2Cym%3Dy%2BhEllipse%2F2%2Cymb%3Dy%2B(h-hEllipse%2F2)%2Cyeb%3Dy%2Bh%3Bthis.beginPath()%3Bthis.moveTo(xe%2Cym)%3Bthis.bezierCurveTo(xe%2Cym%2Boy%2Cxm%2Box%2Cye%2Cxm%2Cye)%3Bthis.bezierCurveTo(xm-ox%2Cye%2Cx%2Cym%2Boy%2Cx%2Cym)%3Bthis.bezierCurveTo(x%2Cym-oy%2Cxm-ox%2Cy%2Cxm%2Cy)%3Bthis.bezierCurveTo(xm%2Box%2Cy%2Cxe%2Cym-oy%2Cxe%2Cym)%3Bthis.lineTo(xe%2Cymb)%3Bthis.bezierCurveTo(xe%2Cymb%2Boy%2Cxm%2Box%2Cyeb%2Cxm%2Cyeb)%3Bthis.bezierCurveTo(xm-ox%2Cyeb%2Cx%2Cymb%2Boy%2Cx%2Cymb)%3Bthis.lineTo(x%2Cym)%7D%3BCanvasRenderingContext2D.prototype.dashedLine%3Dfunction(x%2Cy%2Cx2%2Cy2%2Cpattern)%7Bthis.beginPath()%3Bthis.moveTo(x%2Cy)%3Bvar%20patternLength%3Dpattern.length%3Bvar%20dx%3Dx2-x%3Bvar%20dy%3Dy2-y%3Bvar%20slope%3Ddy%2Fdx%3Bvar%20distRemaining%3DMath.sqrt(dx*dx%2Bdy*dy)%3Bvar%20patternIndex%3D0%3Bvar%20draw%3Dtrue%3Bvar%20xStep%3D0%3Bvar%20dashLength%3Dpattern%5B0%5D%3Bwhile(distRemaining%3E%3D.1)%7BdashLength%3Dpattern%5BpatternIndex%2B%2B%25patternLength%5D%3Bif(dashLength%3EdistRemaining)%7BdashLength%3DdistRemaining%7DxStep%3DMath.sqrt(dashLength*dashLength%2F(1%2Bslope*slope))%3BxStep%3Ddx%3C0%3F-xStep%3AxStep%3Bx%2B%3DxStep%3By%2B%3Dslope*xStep%3Bif(draw%3D%3D%3Dtrue)%7Bthis.lineTo(x%2Cy)%7Delse%7Bthis.moveTo(x%2Cy)%7DdistRemaining-%3DdashLength%3Bdraw%3D!draw%7D%7D%3BCanvasRenderingContext2D.prototype.hexagon%3Dfunction(x%2Cy%2Cr)%7Bthis.beginPath()%3Bvar%20sides%3D6%3Bvar%20a%3DMath.PI*2%2Fsides%3Bthis.moveTo(x%2Br%2Cy)%3Bfor(var%20i%3D1%3Bi%3Csides%3Bi%2B%2B)%7Bthis.lineTo(x%2Br*Math.cos(a*i)%2Cy%2Br*Math.sin(a*i))%7Dthis.closePath()%7D%7D%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bexports%5B%5C%5C%5C%22en%5C%5C%5C%22%5D%3D%7Bedit%3A%5C%5C%5C%22Edit%5C%5C%5C%22%2Cdel%3A%5C%5C%5C%22Delete%20selected%5C%5C%5C%22%2Cback%3A%5C%5C%5C%22Back%5C%5C%5C%22%2CaddNode%3A%5C%5C%5C%22Add%20Node%5C%5C%5C%22%2CaddEdge%3A%5C%5C%5C%22Add%20Edge%5C%5C%5C%22%2CeditNode%3A%5C%5C%5C%22Edit%20Node%5C%5C%5C%22%2CeditEdge%3A%5C%5C%5C%22Edit%20Edge%5C%5C%5C%22%2CaddDescription%3A%5C%5C%5C%22Click%20in%20an%20empty%20space%20to%20place%20a%20new%20node.%5C%5C%5C%22%2CedgeDescription%3A%5C%5C%5C%22Click%20on%20a%20node%20and%20drag%20the%20edge%20to%20another%20node%20to%20connect%20them.%5C%5C%5C%22%2CeditEdgeDescription%3A%5C%5C%5C%22Click%20on%20the%20control%20points%20and%20drag%20them%20to%20a%20node%20to%20connect%20to%20it.%5C%5C%5C%22%2CcreateEdgeError%3A%5C%5C%5C%22Cannot%20link%20edges%20to%20a%20cluster.%5C%5C%5C%22%2CdeleteClusterError%3A%5C%5C%5C%22Clusters%20cannot%20be%20deleted.%5C%5C%5C%22%2CeditClusterError%3A%5C%5C%5C%22Clusters%20cannot%20be%20edited.%5C%5C%5C%22%7D%3Bexports%5B%5C%5C%5C%22en_EN%5C%5C%5C%22%5D%3Dexports%5B%5C%5C%5C%22en%5C%5C%5C%22%5D%3Bexports%5B%5C%5C%5C%22en_US%5C%5C%5C%22%5D%3Dexports%5B%5C%5C%5C%22en%5C%5C%5C%22%5D%3Bexports%5B%5C%5C%5C%22de%5C%5C%5C%22%5D%3D%7Bedit%3A%5C%5C%5C%22Editieren%5C%5C%5C%22%2Cdel%3A%5C%5C%5C%22L%C3%B6sche%20Auswahl%5C%5C%5C%22%2Cback%3A%5C%5C%5C%22Zur%C3%BCck%5C%5C%5C%22%2CaddNode%3A%5C%5C%5C%22Knoten%20hinzuf%C3%BCgen%5C%5C%5C%22%2CaddEdge%3A%5C%5C%5C%22Kante%20hinzuf%C3%BCgen%5C%5C%5C%22%2CeditNode%3A%5C%5C%5C%22Knoten%20editieren%5C%5C%5C%22%2CeditEdge%3A%5C%5C%5C%22Kante%20editieren%5C%5C%5C%22%2CaddDescription%3A%5C%5C%5C%22Klicke%20auf%20eine%20freie%20Stelle%2C%20um%20einen%20neuen%20Knoten%20zu%20plazieren.%5C%5C%5C%22%2CedgeDescription%3A%5C%5C%5C%22Klicke%20auf%20einen%20Knoten%20und%20ziehe%20die%20Kante%20zu%20einem%20anderen%20Knoten%2C%20um%20diese%20zu%20verbinden.%5C%5C%5C%22%2CeditEdgeDescription%3A%5C%5C%5C%22Klicke%20auf%20die%20Verbindungspunkte%20und%20ziehe%20diese%20auf%20einen%20Knoten%2C%20um%20sie%20zu%20verbinden.%5C%5C%5C%22%2CcreateEdgeError%3A%5C%5C%5C%22Es%20ist%20nicht%20m%C3%B6glich%2C%20Kanten%20mit%20Clustern%20zu%20verbinden.%5C%5C%5C%22%2CdeleteClusterError%3A%5C%5C%5C%22Cluster%20k%C3%B6nnen%20nicht%20gel%C3%B6scht%20werden.%5C%5C%5C%22%2CeditClusterError%3A%5C%5C%5C%22Cluster%20k%C3%B6nnen%20nicht%20editiert%20werden.%5C%5C%5C%22%7D%3Bexports%5B%5C%5C%5C%22de_DE%5C%5C%5C%22%5D%3Dexports%5B%5C%5C%5C%22de%5C%5C%5C%22%5D%3Bexports%5B%5C%5C%5C%22es%5C%5C%5C%22%5D%3D%7Bedit%3A%5C%5C%5C%22Editar%5C%5C%5C%22%2Cdel%3A%5C%5C%5C%22Eliminar%20selecci%C3%B3n%5C%5C%5C%22%2Cback%3A%5C%5C%5C%22%C3%81tras%5C%5C%5C%22%2CaddNode%3A%5C%5C%5C%22A%C3%B1adir%20nodo%5C%5C%5C%22%2CaddEdge%3A%5C%5C%5C%22A%C3%B1adir%20arista%5C%5C%5C%22%2CeditNode%3A%5C%5C%5C%22Editar%20nodo%5C%5C%5C%22%2CeditEdge%3A%5C%5C%5C%22Editar%20arista%5C%5C%5C%22%2CaddDescription%3A%5C%5C%5C%22Haga%20clic%20en%20un%20lugar%20vac%C3%ADo%20para%20colocar%20un%20nuevo%20nodo.%5C%5C%5C%22%2CedgeDescription%3A%5C%5C%5C%22Haga%20clic%20en%20un%20nodo%20y%20arrastre%20la%20arista%20hacia%20otro%20nodo%20para%20conectarlos.%5C%5C%5C%22%2CeditEdgeDescription%3A%5C%5C%5C%22Haga%20clic%20en%20un%20punto%20de%20control%20y%20arrastrelo%20a%20un%20nodo%20para%20conectarlo.%5C%5C%5C%22%2CcreateEdgeError%3A%5C%5C%5C%22No%20se%20puede%20conectar%20una%20arista%20a%20un%20grupo.%5C%5C%5C%22%2CdeleteClusterError%3A%5C%5C%5C%22No%20es%20posible%20eliminar%20grupos.%5C%5C%5C%22%2CeditClusterError%3A%5C%5C%5C%22No%20es%20posible%20editar%20grupos.%5C%5C%5C%22%7D%3Bexports%5B%5C%5C%5C%22es_ES%5C%5C%5C%22%5D%3Dexports%5B%5C%5C%5C%22es%5C%5C%5C%22%5D%3Bexports%5B%5C%5C%5C%22it%5C%5C%5C%22%5D%3D%7Bedit%3A%5C%5C%5C%22Modifica%5C%5C%5C%22%2Cdel%3A%5C%5C%5C%22Cancella%20la%20selezione%5C%5C%5C%22%2Cback%3A%5C%5C%5C%22Indietro%5C%5C%5C%22%2CaddNode%3A%5C%5C%5C%22Aggiungi%20un%20nodo%5C%5C%5C%22%2CaddEdge%3A%5C%5C%5C%22Aggiungi%20un%20vertice%5C%5C%5C%22%2CeditNode%3A%5C%5C%5C%22Modifica%20il%20nodo%5C%5C%5C%22%2CeditEdge%3A%5C%5C%5C%22Modifica%20il%20vertice%5C%5C%5C%22%2CaddDescription%3A%5C%5C%5C%22Clicca%20per%20aggiungere%20un%20nuovo%20nodo%5C%5C%5C%22%2CedgeDescription%3A%5C%5C%5C%22Clicca%20su%20un%20nodo%20e%20trascinalo%20ad%20un%20altro%20nodo%20per%20connetterli.%5C%5C%5C%22%2CeditEdgeDescription%3A%5C%5C%5C%22Clicca%20sui%20Punti%20di%20controllo%20e%20trascinali%20ad%20un%20nodo%20per%20connetterli.%5C%5C%5C%22%2CcreateEdgeError%3A%5C%5C%5C%22Non%20si%20possono%20collegare%20vertici%20ad%20un%20cluster%5C%5C%5C%22%2CdeleteClusterError%3A%5C%5C%5C%22I%20cluster%20non%20possono%20essere%20cancellati%5C%5C%5C%22%2CeditClusterError%3A%5C%5C%5C%22I%20clusters%20non%20possono%20essere%20modificati.%5C%5C%5C%22%7D%3Bexports%5B%5C%5C%5C%22it_IT%5C%5C%5C%22%5D%3Dexports%5B%5C%5C%5C%22it%5C%5C%5C%22%5D%3Bexports%5B%5C%5C%5C%22nl%5C%5C%5C%22%5D%3D%7Bedit%3A%5C%5C%5C%22Wijzigen%5C%5C%5C%22%2Cdel%3A%5C%5C%5C%22Selectie%20verwijderen%5C%5C%5C%22%2C%5C%5Cnback%3A%5C%5C%5C%22Terug%5C%5C%5C%22%2CaddNode%3A%5C%5C%5C%22Node%20toevoegen%5C%5C%5C%22%2CaddEdge%3A%5C%5C%5C%22Link%20toevoegen%5C%5C%5C%22%2CeditNode%3A%5C%5C%5C%22Node%20wijzigen%5C%5C%5C%22%2CeditEdge%3A%5C%5C%5C%22Link%20wijzigen%5C%5C%5C%22%2CaddDescription%3A%5C%5C%5C%22Klik%20op%20een%20leeg%20gebied%20om%20een%20nieuwe%20node%20te%20maken.%5C%5C%5C%22%2CedgeDescription%3A%5C%5C%5C%22Klik%20op%20een%20node%20en%20sleep%20de%20link%20naar%20een%20andere%20node%20om%20ze%20te%20verbinden.%5C%5C%5C%22%2CeditEdgeDescription%3A%5C%5C%5C%22Klik%20op%20de%20verbindingspunten%20en%20sleep%20ze%20naar%20een%20node%20om%20daarmee%20te%20verbinden.%5C%5C%5C%22%2CcreateEdgeError%3A%5C%5C%5C%22Kan%20geen%20link%20maken%20naar%20een%20cluster.%5C%5C%5C%22%2CdeleteClusterError%3A%5C%5C%5C%22Clusters%20kunnen%20niet%20worden%20verwijderd.%5C%5C%5C%22%2CeditClusterError%3A%5C%5C%5C%22Clusters%20kunnen%20niet%20worden%20aangepast.%5C%5C%5C%22%7D%3Bexports%5B%5C%5C%5C%22nl_NL%5C%5C%5C%22%5D%3Dexports%5B%5C%5C%5C%22nl%5C%5C%5C%22%5D%3Bexports%5B%5C%5C%5C%22nl_BE%5C%5C%5C%22%5D%3Dexports%5B%5C%5C%5C%22nl%5C%5C%5C%22%5D%3Bexports%5B%5C%5C%5C%22pt-br%5C%5C%5C%22%5D%3D%7Bedit%3A%5C%5C%5C%22Editar%5C%5C%5C%22%2Cdel%3A%5C%5C%5C%22Remover%20selecionado%5C%5C%5C%22%2Cback%3A%5C%5C%5C%22Voltar%5C%5C%5C%22%2CaddNode%3A%5C%5C%5C%22Adicionar%20n%C3%B3%5C%5C%5C%22%2CaddEdge%3A%5C%5C%5C%22Adicionar%20aresta%5C%5C%5C%22%2CeditNode%3A%5C%5C%5C%22Editar%20n%C3%B3%5C%5C%5C%22%2CeditEdge%3A%5C%5C%5C%22Editar%20aresta%5C%5C%5C%22%2CaddDescription%3A%5C%5C%5C%22Clique%20em%20um%20espa%C3%A7o%20em%20branco%20para%20adicionar%20um%20novo%20n%C3%B3%5C%5C%5C%22%2CedgeDescription%3A%5C%5C%5C%22Clique%20em%20um%20n%C3%B3%20e%20arraste%20a%20aresta%20at%C3%A9%20outro%20n%C3%B3%20para%20conect%C3%A1-los%5C%5C%5C%22%2CeditEdgeDescription%3A%5C%5C%5C%22Clique%20nos%20pontos%20de%20controle%20e%20os%20arraste%20para%20um%20n%C3%B3%20para%20conect%C3%A1-los%5C%5C%5C%22%2CcreateEdgeError%3A%5C%5C%5C%22N%C3%A3o%20foi%20poss%C3%ADvel%20linkar%20arestas%20a%20um%20cluster.%5C%5C%5C%22%2CdeleteClusterError%3A%5C%5C%5C%22Clusters%20n%C3%A3o%20puderam%20ser%20removidos.%5C%5C%5C%22%2CeditClusterError%3A%5C%5C%5C%22Clusters%20n%C3%A3o%20puderam%20ser%20editados.%5C%5C%5C%22%7D%3Bexports%5B%5C%5C%5C%22pt-BR%5C%5C%5C%22%5D%3Dexports%5B%5C%5C%5C%22pt-br%5C%5C%5C%22%5D%3Bexports%5B%5C%5C%5C%22pt_BR%5C%5C%5C%22%5D%3Dexports%5B%5C%5C%5C%22pt-br%5C%5C%5C%22%5D%3Bexports%5B%5C%5C%5C%22pt_br%5C%5C%5C%22%5D%3Dexports%5B%5C%5C%5C%22pt-br%5C%5C%5C%22%5D%3Bexports%5B%5C%5C%5C%22ru%5C%5C%5C%22%5D%3D%7Bedit%3A%5C%5C%5C%22%D0%A0%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D1%8C%5C%5C%5C%22%2Cdel%3A%5C%5C%5C%22%D0%A3%D0%B4%D0%B0%D0%BB%D0%B8%D1%82%D1%8C%20%D0%B2%D1%8B%D0%B1%D1%80%D0%B0%D0%BD%D0%BD%D0%BE%D0%B5%5C%5C%5C%22%2Cback%3A%5C%5C%5C%22%D0%9D%D0%B0%D0%B7%D0%B0%D0%B4%5C%5C%5C%22%2CaddNode%3A%5C%5C%5C%22%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%B8%D1%82%D1%8C%20%D1%83%D0%B7%D0%B5%D0%BB%5C%5C%5C%22%2CaddEdge%3A%5C%5C%5C%22%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%B8%D1%82%D1%8C%20%D1%80%D0%B5%D0%B1%D1%80%D0%BE%5C%5C%5C%22%2CeditNode%3A%5C%5C%5C%22%D0%A0%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D1%8C%20%D1%83%D0%B7%D0%B5%D0%BB%5C%5C%5C%22%2CeditEdge%3A%5C%5C%5C%22%D0%A0%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D1%8C%20%D1%80%D0%B5%D0%B1%D1%80%D0%BE%5C%5C%5C%22%2CaddDescription%3A%5C%5C%5C%22%D0%9A%D0%BB%D0%B8%D0%BA%D0%BD%D0%B8%D1%82%D0%B5%20%D0%B2%20%D1%81%D0%B2%D0%BE%D0%B1%D0%BE%D0%B4%D0%BD%D0%BE%D0%B5%20%D0%BC%D0%B5%D1%81%D1%82%D0%BE%2C%20%D1%87%D1%82%D0%BE%D0%B1%D1%8B%20%D0%B4%D0%BE%D0%B1%D0%B0%D0%B2%D0%B8%D1%82%D1%8C%20%D0%BD%D0%BE%D0%B2%D1%8B%D0%B9%20%D1%83%D0%B7%D0%B5%D0%BB.%5C%5C%5C%22%2CedgeDescription%3A%5C%5C%5C%22%D0%9A%D0%BB%D0%B8%D0%BA%D0%BD%D0%B8%D1%82%D0%B5%20%D0%BD%D0%B0%20%D1%83%D0%B7%D0%B5%D0%BB%20%D0%B8%20%D0%BF%D1%80%D0%BE%D1%82%D1%8F%D0%BD%D0%B8%D1%82%D0%B5%20%D1%80%D0%B5%D0%B1%D1%80%D0%BE%20%D0%BA%20%D0%B4%D1%80%D1%83%D0%B3%D0%BE%D0%BC%D1%83%20%D1%83%D0%B7%D0%BB%D1%83%2C%20%D1%87%D1%82%D0%BE%D0%B1%D1%8B%20%D1%81%D0%BE%D0%B5%D0%B4%D0%B8%D0%BD%D0%B8%D1%82%D1%8C%20%D0%B8%D1%85.%5C%5C%5C%22%2CeditEdgeDescription%3A%5C%5C%5C%22%D0%9A%D0%BB%D0%B8%D0%BA%D0%BD%D0%B8%D1%82%D0%B5%20%D0%BD%D0%B0%20%D0%BA%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5%20%D1%82%D0%BE%D1%87%D0%BA%D0%B8%20%D0%B8%20%D0%BF%D0%B5%D1%80%D0%B5%D1%82%D0%B0%D1%89%D0%B8%D1%82%D0%B5%20%D0%B8%D1%85%20%D0%B2%20%D1%83%D0%B7%D0%B5%D0%BB%2C%20%D1%87%D1%82%D0%BE%D0%B1%D1%8B%20%D0%BF%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B8%D1%82%D1%8C%D1%81%D1%8F%20%D0%BA%20%D0%BD%D0%B5%D0%BC%D1%83.%5C%5C%5C%22%2CcreateEdgeError%3A%5C%5C%5C%22%D0%9D%D0%B5%D0%B2%D0%BE%D0%B7%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE%20%D1%81%D0%BE%D0%B5%D0%B4%D0%B8%D0%BD%D0%B8%D1%82%D1%8C%20%D1%80%D0%B5%D0%B1%D1%80%D0%B0%20%D0%B2%20%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80.%5C%5C%5C%22%2CdeleteClusterError%3A%5C%5C%5C%22%D0%9A%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D1%8B%20%D0%BD%D0%B5%20%D0%BC%D0%BE%D0%B3%D1%83%D1%82%20%D0%B1%D1%8B%D1%82%D1%8C%20%D1%83%D0%B4%D0%B0%D0%BB%D0%B5%D0%BD%D1%8B%5C%5C%5C%22%2CeditClusterError%3A%5C%5C%5C%22%D0%9A%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D1%8B%20%D0%BD%D0%B5%D0%B4%D0%BE%D1%81%D1%82%D1%83%D0%BF%D0%BD%D1%8B%20%D0%B4%D0%BB%D1%8F%20%D1%80%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F.%5C%5C%5C%22%7D%3Bexports%5B%5C%5C%5C%22ru_RU%5C%5C%5C%22%5D%3Dexports%5B%5C%5C%5C%22ru%5C%5C%5C%22%5D%3Bexports%5B%5C%5C%5C%22cn%5C%5C%5C%22%5D%3D%7Bedit%3A%5C%5C%5C%22%E7%BC%96%E8%BE%91%5C%5C%5C%22%2Cdel%3A%5C%5C%5C%22%E5%88%A0%E9%99%A4%E9%80%89%E5%AE%9A%5C%5C%5C%22%2Cback%3A%5C%5C%5C%22%E8%BF%94%E5%9B%9E%5C%5C%5C%22%2CaddNode%3A%5C%5C%5C%22%E6%B7%BB%E5%8A%A0%E8%8A%82%E7%82%B9%5C%5C%5C%22%2CaddEdge%3A%5C%5C%5C%22%E6%B7%BB%E5%8A%A0%E8%BF%9E%E6%8E%A5%E7%BA%BF%5C%5C%5C%22%2CeditNode%3A%5C%5C%5C%22%E7%BC%96%E8%BE%91%E8%8A%82%E7%82%B9%5C%5C%5C%22%2CeditEdge%3A%5C%5C%5C%22%E7%BC%96%E8%BE%91%E8%BF%9E%E6%8E%A5%E7%BA%BF%5C%5C%5C%22%2CaddDescription%3A%5C%5C%5C%22%E5%8D%95%E5%87%BB%E7%A9%BA%E7%99%BD%E5%A4%84%E6%94%BE%E7%BD%AE%E6%96%B0%E8%8A%82%E7%82%B9%E3%80%82%5C%5C%5C%22%2CedgeDescription%3A%5C%5C%5C%22%E5%8D%95%E5%87%BB%E6%9F%90%E4%B8%AA%E8%8A%82%E7%82%B9%E5%B9%B6%E5%B0%86%E8%AF%A5%E8%BF%9E%E6%8E%A5%E7%BA%BF%E6%8B%96%E5%8A%A8%E5%88%B0%E5%8F%A6%E4%B8%80%E4%B8%AA%E8%8A%82%E7%82%B9%E4%BB%A5%E8%BF%9E%E6%8E%A5%E5%AE%83%E4%BB%AC%E3%80%82%5C%5C%5C%22%2CeditEdgeDescription%3A%5C%5C%5C%22%E5%8D%95%E5%87%BB%E6%8E%A7%E5%88%B6%E8%8A%82%E7%82%B9%E5%B9%B6%E5%B0%86%E5%AE%83%E4%BB%AC%E6%8B%96%E5%88%B0%E8%8A%82%E7%82%B9%E4%B8%8A%E8%BF%9E%E6%8E%A5%E3%80%82%5C%5C%5C%22%2CcreateEdgeError%3A%5C%5C%5C%22%E6%97%A0%E6%B3%95%E5%B0%86%E8%BF%9E%E6%8E%A5%E7%BA%BF%E8%BF%9E%E6%8E%A5%E5%88%B0%E7%BE%A4%E9%9B%86%E3%80%82%5C%5C%5C%22%2CdeleteClusterError%3A%5C%5C%5C%22%E6%97%A0%E6%B3%95%E5%88%A0%E9%99%A4%E7%BE%A4%E9%9B%86%E3%80%82%5C%5C%5C%22%2CeditClusterError%3A%5C%5C%5C%22%E6%97%A0%E6%B3%95%E7%BC%96%E8%BE%91%E7%BE%A4%E9%9B%86%E3%80%82%5C%5C%5C%22%7D%3Bexports%5B%5C%5C%5C%22zh_CN%5C%5C%5C%22%5D%3Dexports%5B%5C%5C%5C%22cn%5C%5C%5C%22%5D%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_classCallCheck2%3D__webpack_require__(0)%3Bvar%20_classCallCheck3%3D_interopRequireDefault(_classCallCheck2)%3Bvar%20_createClass2%3D__webpack_require__(1)%3Bvar%20_createClass3%3D_interopRequireDefault(_createClass2)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20CachedImage%3Dfunction()%7Bfunction%20CachedImage()%7B(0%2C_classCallCheck3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2CCachedImage)%3Bthis.NUM_ITERATIONS%3D4%3Bthis.image%3Dnew%20Image%3Bthis.canvas%3Ddocument.createElement(%5C%5C%5C%22canvas%5C%5C%5C%22)%7D(0%2C_createClass3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(CachedImage%2C%5B%7Bkey%3A%5C%5C%5C%22init%5C%5C%5C%22%2Cvalue%3Afunction%20init()%7Bif(this.initialized())return%3Bthis.src%3Dthis.image.src%3Bvar%20w%3Dthis.image.width%3Bvar%20h%3Dthis.image.height%3Bthis.width%3Dw%3Bthis.height%3Dh%3Bvar%20h2%3DMath.floor(h%2F2)%3Bvar%20h4%3DMath.floor(h%2F4)%3Bvar%20h8%3DMath.floor(h%2F8)%3Bvar%20h16%3DMath.floor(h%2F16)%3Bvar%20w2%3DMath.floor(w%2F2)%3Bvar%20w4%3DMath.floor(w%2F4)%3Bvar%20w8%3DMath.floor(w%2F8)%3Bvar%20w16%3DMath.floor(w%2F16)%3Bthis.canvas.width%3D3*w4%3Bthis.canvas.height%3Dh2%3Bthis.coordinates%3D%5B%5B0%2C0%2Cw2%2Ch2%5D%2C%5Bw2%2C0%2Cw4%2Ch4%5D%2C%5Bw2%2Ch4%2Cw8%2Ch8%5D%2C%5B5*w8%2Ch4%2Cw16%2Ch16%5D%5D%3Bthis._fillMipMap()%7D%7D%2C%7Bkey%3A%5C%5C%5C%22initialized%5C%5C%5C%22%2Cvalue%3Afunction%20initialized()%7Breturn%20this.coordinates!%3D%3Dundefined%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_fillMipMap%5C%5C%5C%22%2Cvalue%3Afunction%20_fillMipMap()%7Bvar%20ctx%3Dthis.canvas.getContext(%5C%5C%5C%222d%5C%5C%5C%22)%3Bvar%20to%3Dthis.coordinates%5B0%5D%3Bctx.drawImage(this.image%2Cto%5B0%5D%2Cto%5B1%5D%2Cto%5B2%5D%2Cto%5B3%5D)%3Bfor(var%20iterations%3D1%3Biterations%3Cthis.NUM_ITERATIONS%3Biterations%2B%2B)%7Bvar%20from%3Dthis.coordinates%5Biterations-1%5D%3Bvar%20_to%3Dthis.coordinates%5Biterations%5D%3Bctx.drawImage(this.canvas%2Cfrom%5B0%5D%2Cfrom%5B1%5D%2Cfrom%5B2%5D%2Cfrom%5B3%5D%2C_to%5B0%5D%2C_to%5B1%5D%2C_to%5B2%5D%2C_to%5B3%5D)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22drawImageAtPosition%5C%5C%5C%22%2Cvalue%3Afunction%20drawImageAtPosition(ctx%2Cfactor%2Cleft%2Ctop%2Cwidth%2Cheight)%7Bif(!this.initialized())return%3Bif(factor%3E2)%7Bfactor*%3D.5%3Bvar%20iterations%3D0%3Bwhile(factor%3E2%26%26iterations%3Cthis.NUM_ITERATIONS)%7Bfactor*%3D.5%3Biterations%2B%3D1%7Dif(iterations%3E%3Dthis.NUM_ITERATIONS)%7Biterations%3Dthis.NUM_ITERATIONS-1%7Dvar%20from%3Dthis.coordinates%5Biterations%5D%3Bctx.drawImage(this.canvas%2Cfrom%5B0%5D%2Cfrom%5B1%5D%2Cfrom%5B2%5D%2Cfrom%5B3%5D%2Cleft%2Ctop%2Cwidth%2Cheight)%7Delse%7Bctx.drawImage(this.image%2Cleft%2Ctop%2Cwidth%2Cheight)%7D%7D%7D%5D)%3Breturn%20CachedImage%7D()%3Bexports%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3DCachedImage%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_classCallCheck2%3D__webpack_require__(0)%3Bvar%20_classCallCheck3%3D_interopRequireDefault(_classCallCheck2)%3Bvar%20_createClass2%3D__webpack_require__(1)%3Bvar%20_createClass3%3D_interopRequireDefault(_createClass2)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20util%3D__webpack_require__(2)%3Bvar%20Groups%3Dfunction()%7Bfunction%20Groups()%7B(0%2C_classCallCheck3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2CGroups)%3Bthis.clear()%3Bthis.defaultIndex%3D0%3Bthis.groupsArray%3D%5B%5D%3Bthis.groupIndex%3D0%3Bthis.defaultGroups%3D%5B%7Bborder%3A%5C%5C%5C%22%232B7CE9%5C%5C%5C%22%2Cbackground%3A%5C%5C%5C%22%2397C2FC%5C%5C%5C%22%2Chighlight%3A%7Bborder%3A%5C%5C%5C%22%232B7CE9%5C%5C%5C%22%2Cbackground%3A%5C%5C%5C%22%23D2E5FF%5C%5C%5C%22%7D%2Chover%3A%7Bborder%3A%5C%5C%5C%22%232B7CE9%5C%5C%5C%22%2Cbackground%3A%5C%5C%5C%22%23D2E5FF%5C%5C%5C%22%7D%7D%2C%7Bborder%3A%5C%5C%5C%22%23FFA500%5C%5C%5C%22%2Cbackground%3A%5C%5C%5C%22%23FFFF00%5C%5C%5C%22%2Chighlight%3A%7Bborder%3A%5C%5C%5C%22%23FFA500%5C%5C%5C%22%2Cbackground%3A%5C%5C%5C%22%23FFFFA3%5C%5C%5C%22%7D%2Chover%3A%7Bborder%3A%5C%5C%5C%22%23FFA500%5C%5C%5C%22%2Cbackground%3A%5C%5C%5C%22%23FFFFA3%5C%5C%5C%22%7D%7D%2C%7Bborder%3A%5C%5C%5C%22%23FA0A10%5C%5C%5C%22%2Cbackground%3A%5C%5C%5C%22%23FB7E81%5C%5C%5C%22%2Chighlight%3A%7Bborder%3A%5C%5C%5C%22%23FA0A10%5C%5C%5C%22%2Cbackground%3A%5C%5C%5C%22%23FFAFB1%5C%5C%5C%22%7D%2Chover%3A%7Bborder%3A%5C%5C%5C%22%23FA0A10%5C%5C%5C%22%2Cbackground%3A%5C%5C%5C%22%23FFAFB1%5C%5C%5C%22%7D%7D%2C%7Bborder%3A%5C%5C%5C%22%2341A906%5C%5C%5C%22%2Cbackground%3A%5C%5C%5C%22%237BE141%5C%5C%5C%22%2Chighlight%3A%7Bborder%3A%5C%5C%5C%22%2341A906%5C%5C%5C%22%2Cbackground%3A%5C%5C%5C%22%23A1EC76%5C%5C%5C%22%7D%2Chover%3A%7Bborder%3A%5C%5C%5C%22%2341A906%5C%5C%5C%22%2Cbackground%3A%5C%5C%5C%22%23A1EC76%5C%5C%5C%22%7D%7D%2C%7Bborder%3A%5C%5C%5C%22%23E129F0%5C%5C%5C%22%2Cbackground%3A%5C%5C%5C%22%23EB7DF4%5C%5C%5C%22%2Chighlight%3A%7Bborder%3A%5C%5C%5C%22%23E129F0%5C%5C%5C%22%2Cbackground%3A%5C%5C%5C%22%23F0B3F5%5C%5C%5C%22%7D%2Chover%3A%7Bborder%3A%5C%5C%5C%22%23E129F0%5C%5C%5C%22%2Cbackground%3A%5C%5C%5C%22%23F0B3F5%5C%5C%5C%22%7D%7D%2C%7Bborder%3A%5C%5C%5C%22%237C29F0%5C%5C%5C%22%2Cbackground%3A%5C%5C%5C%22%23AD85E4%5C%5C%5C%22%2Chighlight%3A%7Bborder%3A%5C%5C%5C%22%237C29F0%5C%5C%5C%22%2Cbackground%3A%5C%5C%5C%22%23D3BDF0%5C%5C%5C%22%7D%2Chover%3A%7Bborder%3A%5C%5C%5C%22%237C29F0%5C%5C%5C%22%2Cbackground%3A%5C%5C%5C%22%23D3BDF0%5C%5C%5C%22%7D%7D%2C%7Bborder%3A%5C%5C%5C%22%23C37F00%5C%5C%5C%22%2Cbackground%3A%5C%5C%5C%22%23FFA807%5C%5C%5C%22%2Chighlight%3A%7Bborder%3A%5C%5C%5C%22%23C37F00%5C%5C%5C%22%2Cbackground%3A%5C%5C%5C%22%23FFCA66%5C%5C%5C%22%7D%2Chover%3A%7Bborder%3A%5C%5C%5C%22%23C37F00%5C%5C%5C%22%2Cbackground%3A%5C%5C%5C%22%23FFCA66%5C%5C%5C%22%7D%7D%2C%7Bborder%3A%5C%5C%5C%22%234220FB%5C%5C%5C%22%2Cbackground%3A%5C%5C%5C%22%236E6EFD%5C%5C%5C%22%2Chighlight%3A%7Bborder%3A%5C%5C%5C%22%234220FB%5C%5C%5C%22%2Cbackground%3A%5C%5C%5C%22%239B9BFD%5C%5C%5C%22%7D%2Chover%3A%7Bborder%3A%5C%5C%5C%22%234220FB%5C%5C%5C%22%2Cbackground%3A%5C%5C%5C%22%239B9BFD%5C%5C%5C%22%7D%7D%2C%7Bborder%3A%5C%5C%5C%22%23FD5A77%5C%5C%5C%22%2Cbackground%3A%5C%5C%5C%22%23FFC0CB%5C%5C%5C%22%2Chighlight%3A%7Bborder%3A%5C%5C%5C%22%23FD5A77%5C%5C%5C%22%2Cbackground%3A%5C%5C%5C%22%23FFD1D9%5C%5C%5C%22%7D%2Chover%3A%7Bborder%3A%5C%5C%5C%22%23FD5A77%5C%5C%5C%22%2Cbackground%3A%5C%5C%5C%22%23FFD1D9%5C%5C%5C%22%7D%7D%2C%7Bborder%3A%5C%5C%5C%22%234AD63A%5C%5C%5C%22%2Cbackground%3A%5C%5C%5C%22%23C2FABC%5C%5C%5C%22%2Chighlight%3A%7Bborder%3A%5C%5C%5C%22%234AD63A%5C%5C%5C%22%2Cbackground%3A%5C%5C%5C%22%23E6FFE3%5C%5C%5C%22%7D%2Chover%3A%7Bborder%3A%5C%5C%5C%22%234AD63A%5C%5C%5C%22%2Cbackground%3A%5C%5C%5C%22%23E6FFE3%5C%5C%5C%22%7D%7D%2C%7Bborder%3A%5C%5C%5C%22%23990000%5C%5C%5C%22%2Cbackground%3A%5C%5C%5C%22%23EE0000%5C%5C%5C%22%2Chighlight%3A%7Bborder%3A%5C%5C%5C%22%23BB0000%5C%5C%5C%22%2Cbackground%3A%5C%5C%5C%22%23FF3333%5C%5C%5C%22%7D%2Chover%3A%7Bborder%3A%5C%5C%5C%22%23BB0000%5C%5C%5C%22%2Cbackground%3A%5C%5C%5C%22%23FF3333%5C%5C%5C%22%7D%7D%2C%7Bborder%3A%5C%5C%5C%22%23FF6000%5C%5C%5C%22%2Cbackground%3A%5C%5C%5C%22%23FF6000%5C%5C%5C%22%2Chighlight%3A%7Bborder%3A%5C%5C%5C%22%23FF6000%5C%5C%5C%22%2Cbackground%3A%5C%5C%5C%22%23FF6000%5C%5C%5C%22%7D%2Chover%3A%7Bborder%3A%5C%5C%5C%22%23FF6000%5C%5C%5C%22%2Cbackground%3A%5C%5C%5C%22%23FF6000%5C%5C%5C%22%7D%7D%2C%7Bborder%3A%5C%5C%5C%22%2397C2FC%5C%5C%5C%22%2Cbackground%3A%5C%5C%5C%22%232B7CE9%5C%5C%5C%22%2Chighlight%3A%7Bborder%3A%5C%5C%5C%22%23D2E5FF%5C%5C%5C%22%2Cbackground%3A%5C%5C%5C%22%232B7CE9%5C%5C%5C%22%7D%2Chover%3A%7Bborder%3A%5C%5C%5C%22%23D2E5FF%5C%5C%5C%22%2Cbackground%3A%5C%5C%5C%22%232B7CE9%5C%5C%5C%22%7D%7D%2C%7Bborder%3A%5C%5C%5C%22%23399605%5C%5C%5C%22%2Cbackground%3A%5C%5C%5C%22%23255C03%5C%5C%5C%22%2Chighlight%3A%7Bborder%3A%5C%5C%5C%22%23399605%5C%5C%5C%22%2Cbackground%3A%5C%5C%5C%22%23255C03%5C%5C%5C%22%7D%2Chover%3A%7Bborder%3A%5C%5C%5C%22%23399605%5C%5C%5C%22%2Cbackground%3A%5C%5C%5C%22%23255C03%5C%5C%5C%22%7D%7D%2C%7Bborder%3A%5C%5C%5C%22%23B70054%5C%5C%5C%22%2Cbackground%3A%5C%5C%5C%22%23FF007E%5C%5C%5C%22%2Chighlight%3A%7Bborder%3A%5C%5C%5C%22%23B70054%5C%5C%5C%22%2Cbackground%3A%5C%5C%5C%22%23FF007E%5C%5C%5C%22%7D%2Chover%3A%7Bborder%3A%5C%5C%5C%22%23B70054%5C%5C%5C%22%2Cbackground%3A%5C%5C%5C%22%23FF007E%5C%5C%5C%22%7D%7D%2C%7Bborder%3A%5C%5C%5C%22%23AD85E4%5C%5C%5C%22%2Cbackground%3A%5C%5C%5C%22%237C29F0%5C%5C%5C%22%2Chighlight%3A%7Bborder%3A%5C%5C%5C%22%23D3BDF0%5C%5C%5C%22%2Cbackground%3A%5C%5C%5C%22%237C29F0%5C%5C%5C%22%7D%2Chover%3A%7Bborder%3A%5C%5C%5C%22%23D3BDF0%5C%5C%5C%22%2Cbackground%3A%5C%5C%5C%22%237C29F0%5C%5C%5C%22%7D%7D%2C%7Bborder%3A%5C%5C%5C%22%234557FA%5C%5C%5C%22%2Cbackground%3A%5C%5C%5C%22%23000EA1%5C%5C%5C%22%2Chighlight%3A%7Bborder%3A%5C%5C%5C%22%236E6EFD%5C%5C%5C%22%2Cbackground%3A%5C%5C%5C%22%23000EA1%5C%5C%5C%22%7D%2Chover%3A%7Bborder%3A%5C%5C%5C%22%236E6EFD%5C%5C%5C%22%2Cbackground%3A%5C%5C%5C%22%23000EA1%5C%5C%5C%22%7D%7D%2C%7Bborder%3A%5C%5C%5C%22%23FFC0CB%5C%5C%5C%22%2Cbackground%3A%5C%5C%5C%22%23FD5A77%5C%5C%5C%22%2Chighlight%3A%7Bborder%3A%5C%5C%5C%22%23FFD1D9%5C%5C%5C%22%2Cbackground%3A%5C%5C%5C%22%23FD5A77%5C%5C%5C%22%7D%2Chover%3A%7Bborder%3A%5C%5C%5C%22%23FFD1D9%5C%5C%5C%22%2Cbackground%3A%5C%5C%5C%22%23FD5A77%5C%5C%5C%22%7D%7D%2C%7Bborder%3A%5C%5C%5C%22%23C2FABC%5C%5C%5C%22%2Cbackground%3A%5C%5C%5C%22%2374D66A%5C%5C%5C%22%2Chighlight%3A%7Bborder%3A%5C%5C%5C%22%23E6FFE3%5C%5C%5C%22%2Cbackground%3A%5C%5C%5C%22%2374D66A%5C%5C%5C%22%7D%2Chover%3A%7Bborder%3A%5C%5C%5C%22%23E6FFE3%5C%5C%5C%22%2Cbackground%3A%5C%5C%5C%22%2374D66A%5C%5C%5C%22%7D%7D%2C%7Bborder%3A%5C%5C%5C%22%23EE0000%5C%5C%5C%22%2Cbackground%3A%5C%5C%5C%22%23990000%5C%5C%5C%22%2Chighlight%3A%7Bborder%3A%5C%5C%5C%22%23FF3333%5C%5C%5C%22%2Cbackground%3A%5C%5C%5C%22%23BB0000%5C%5C%5C%22%7D%2Chover%3A%7Bborder%3A%5C%5C%5C%22%23FF3333%5C%5C%5C%22%2Cbackground%3A%5C%5C%5C%22%23BB0000%5C%5C%5C%22%7D%7D%5D%3Bthis.options%3D%7B%7D%3Bthis.defaultOptions%3D%7BuseDefaultGroups%3Atrue%7D%3Butil.extend(this.options%2Cthis.defaultOptions)%7D(0%2C_createClass3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(Groups%2C%5B%7Bkey%3A%5C%5C%5C%22setOptions%5C%5C%5C%22%2Cvalue%3Afunction%20setOptions(options)%7Bvar%20optionFields%3D%5B%5C%5C%5C%22useDefaultGroups%5C%5C%5C%22%5D%3Bif(options!%3D%3Dundefined)%7Bfor(var%20groupName%20in%20options)%7Bif(options.hasOwnProperty(groupName))%7Bif(optionFields.indexOf(groupName)%3D%3D%3D-1)%7Bvar%20group%3Doptions%5BgroupName%5D%3Bthis.add(groupName%2Cgroup)%7D%7D%7D%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22clear%5C%5C%5C%22%2Cvalue%3Afunction%20clear()%7Bthis.groups%3D%7B%7D%3Bthis.groupsArray%3D%5B%5D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22get%5C%5C%5C%22%2Cvalue%3Afunction%20get(groupname)%7Bvar%20shouldCreate%3Darguments.length%3E1%26%26arguments%5B1%5D!%3D%3Dundefined%3Farguments%5B1%5D%3Atrue%3Bvar%20group%3Dthis.groups%5Bgroupname%5D%3Bif(group%3D%3D%3Dundefined%26%26shouldCreate)%7Bif(this.options.useDefaultGroups%3D%3D%3Dfalse%26%26this.groupsArray.length%3E0)%7Bvar%20index%3Dthis.groupIndex%25this.groupsArray.length%3Bthis.groupIndex%2B%2B%3Bgroup%3D%7B%7D%3Bgroup.color%3Dthis.groups%5Bthis.groupsArray%5Bindex%5D%5D%3Bthis.groups%5Bgroupname%5D%3Dgroup%7Delse%7Bvar%20_index%3Dthis.defaultIndex%25this.defaultGroups.length%3Bthis.defaultIndex%2B%2B%3Bgroup%3D%7B%7D%3Bgroup.color%3Dthis.defaultGroups%5B_index%5D%3Bthis.groups%5Bgroupname%5D%3Dgroup%7D%7Dreturn%20group%7D%7D%2C%7Bkey%3A%5C%5C%5C%22add%5C%5C%5C%22%2Cvalue%3Afunction%20add(groupName%2Cstyle)%7Bthis.groups%5BgroupName%5D%3Dstyle%3Bthis.groupsArray.push(groupName)%3Breturn%20style%7D%7D%5D)%3Breturn%20Groups%7D()%3Bexports%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3DGroups%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_classCallCheck2%3D__webpack_require__(0)%3Bvar%20_classCallCheck3%3D_interopRequireDefault(_classCallCheck2)%3Bvar%20_createClass2%3D__webpack_require__(1)%3Bvar%20_createClass3%3D_interopRequireDefault(_createClass2)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20util%3D__webpack_require__(2)%3Bvar%20DataSet%3D__webpack_require__(11)%3Bvar%20DataView%3D__webpack_require__(12)%3Bvar%20Node%3D__webpack_require__(47)%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3Bvar%20NodesHandler%3Dfunction()%7Bfunction%20NodesHandler(body%2Cimages%2Cgroups%2ClayoutEngine)%7Bvar%20_this%3Dthis%3B(0%2C_classCallCheck3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2CNodesHandler)%3Bthis.body%3Dbody%3Bthis.images%3Dimages%3Bthis.groups%3Dgroups%3Bthis.layoutEngine%3DlayoutEngine%3Bthis.body.functions.createNode%3Dthis.create.bind(this)%3Bthis.nodesListeners%3D%7Badd%3Afunction%20add(event%2Cparams)%7B_this.add(params.items)%7D%2Cupdate%3Afunction%20update(event%2Cparams)%7B_this.update(params.items%2Cparams.data%2Cparams.oldData)%7D%2Cremove%3Afunction%20remove(event%2Cparams)%7B_this.remove(params.items)%7D%7D%3Bthis.defaultOptions%3D%7BborderWidth%3A1%2CborderWidthSelected%3A2%2CbrokenImage%3Aundefined%2Ccolor%3A%7Bborder%3A%5C%5C%5C%22%232B7CE9%5C%5C%5C%22%2Cbackground%3A%5C%5C%5C%22%2397C2FC%5C%5C%5C%22%2Chighlight%3A%7Bborder%3A%5C%5C%5C%22%232B7CE9%5C%5C%5C%22%2Cbackground%3A%5C%5C%5C%22%23D2E5FF%5C%5C%5C%22%7D%2Chover%3A%7Bborder%3A%5C%5C%5C%22%232B7CE9%5C%5C%5C%22%2Cbackground%3A%5C%5C%5C%22%23D2E5FF%5C%5C%5C%22%7D%7D%2Cfixed%3A%7Bx%3Afalse%2Cy%3Afalse%7D%2Cfont%3A%7Bcolor%3A%5C%5C%5C%22%23343434%5C%5C%5C%22%2Csize%3A14%2Cface%3A%5C%5C%5C%22arial%5C%5C%5C%22%2Cbackground%3A%5C%5C%5C%22none%5C%5C%5C%22%2CstrokeWidth%3A0%2CstrokeColor%3A%5C%5C%5C%22%23ffffff%5C%5C%5C%22%2Calign%3A%5C%5C%5C%22center%5C%5C%5C%22%2Cvadjust%3A0%2Cmulti%3Afalse%2Cbold%3A%7Bmod%3A%5C%5C%5C%22bold%5C%5C%5C%22%7D%2Cboldital%3A%7Bmod%3A%5C%5C%5C%22bold%20italic%5C%5C%5C%22%7D%2Cital%3A%7Bmod%3A%5C%5C%5C%22italic%5C%5C%5C%22%7D%2Cmono%3A%7Bmod%3A%5C%5C%5C%22%5C%5C%5C%22%2Csize%3A15%2Cface%3A%5C%5C%5C%22monospace%5C%5C%5C%22%2Cvadjust%3A2%7D%7D%2Cgroup%3Aundefined%2Chidden%3Afalse%2Cicon%3A%7Bface%3A%5C%5C%5C%22FontAwesome%5C%5C%5C%22%2Ccode%3Aundefined%2Csize%3A50%2Ccolor%3A%5C%5C%5C%22%232B7CE9%5C%5C%5C%22%7D%2Cimage%3Aundefined%2Clabel%3Aundefined%2ClabelHighlightBold%3Atrue%2Clevel%3Aundefined%2Cmargin%3A%7Btop%3A5%2Cright%3A5%2Cbottom%3A5%2Cleft%3A5%7D%2Cmass%3A1%2Cphysics%3Atrue%2Cscaling%3A%7Bmin%3A10%2Cmax%3A30%2Clabel%3A%7Benabled%3Afalse%2Cmin%3A14%2Cmax%3A30%2CmaxVisible%3A30%2CdrawThreshold%3A5%7D%2CcustomScalingFunction%3Afunction%20customScalingFunction(min%2Cmax%2Ctotal%2Cvalue)%7Bif(max%3D%3D%3Dmin)%7Breturn.5%7Delse%7Bvar%20scale%3D1%2F(max-min)%3Breturn%20Math.max(0%2C(value-min)*scale)%7D%7D%7D%2Cshadow%3A%7Benabled%3Afalse%2Ccolor%3A%5C%5C%5C%22rgba(0%2C0%2C0%2C0.5)%5C%5C%5C%22%2Csize%3A10%2Cx%3A5%2Cy%3A5%7D%2Cshape%3A%5C%5C%5C%22ellipse%5C%5C%5C%22%2CshapeProperties%3A%7BborderDashes%3Afalse%2CborderRadius%3A6%2Cinterpolation%3Atrue%2CuseImageSize%3Afalse%2CuseBorderWithImage%3Afalse%7D%2Csize%3A25%2Ctitle%3Aundefined%2Cvalue%3Aundefined%2Cx%3Aundefined%2Cy%3Aundefined%7D%3Bif(this.defaultOptions.mass%3C%3D0)%7Bthrow%5C%5C%5C%22Internal%20error%3A%20mass%20in%20defaultOptions%20of%20NodesHandler%20may%20not%20be%20zero%20or%20negative%5C%5C%5C%22%7Dthis.options%3Dutil.bridgeObject(this.defaultOptions)%3Bthis.bindEventListeners()%7D(0%2C_createClass3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(NodesHandler%2C%5B%7Bkey%3A%5C%5C%5C%22bindEventListeners%5C%5C%5C%22%2Cvalue%3Afunction%20bindEventListeners()%7Bvar%20_this2%3Dthis%3Bthis.body.emitter.on(%5C%5C%5C%22refreshNodes%5C%5C%5C%22%2Cthis.refresh.bind(this))%3Bthis.body.emitter.on(%5C%5C%5C%22refresh%5C%5C%5C%22%2Cthis.refresh.bind(this))%3Bthis.body.emitter.on(%5C%5C%5C%22destroy%5C%5C%5C%22%2Cfunction()%7Butil.forEach(_this2.nodesListeners%2Cfunction(callback%2Cevent)%7Bif(_this2.body.data.nodes)_this2.body.data.nodes.off(event%2Ccallback)%7D)%3Bdelete%20_this2.body.functions.createNode%3Bdelete%20_this2.nodesListeners.add%3Bdelete%20_this2.nodesListeners.update%3Bdelete%20_this2.nodesListeners.remove%3Bdelete%20_this2.nodesListeners%7D)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22setOptions%5C%5C%5C%22%2Cvalue%3Afunction%20setOptions(options)%7Bif(options!%3D%3Dundefined)%7BNode.parseOptions(this.options%2Coptions)%3Bif(options.shape!%3D%3Dundefined)%7Bfor(var%20nodeId%20in%20this.body.nodes)%7Bif(this.body.nodes.hasOwnProperty(nodeId))%7Bthis.body.nodes%5BnodeId%5D.updateShape()%7D%7D%7Dif(options.font!%3D%3Dundefined)%7Bfor(var%20_nodeId%20in%20this.body.nodes)%7Bif(this.body.nodes.hasOwnProperty(_nodeId))%7Bthis.body.nodes%5B_nodeId%5D.updateLabelModule()%3Bthis.body.nodes%5B_nodeId%5D.needsRefresh()%7D%7D%7Dif(options.size!%3D%3Dundefined)%7Bfor(var%20_nodeId2%20in%20this.body.nodes)%7Bif(this.body.nodes.hasOwnProperty(_nodeId2))%7Bthis.body.nodes%5B_nodeId2%5D.needsRefresh()%7D%7D%7Dif(options.hidden!%3D%3Dundefined%7C%7Coptions.physics!%3D%3Dundefined)%7Bthis.body.emitter.emit(%5C%5C%5C%22_dataChanged%5C%5C%5C%22)%7D%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22setData%5C%5C%5C%22%2Cvalue%3Afunction%20setData(nodes)%7Bvar%20doNotEmit%3Darguments.length%3E1%26%26arguments%5B1%5D!%3D%3Dundefined%3Farguments%5B1%5D%3Afalse%3Bvar%20oldNodesData%3Dthis.body.data.nodes%3Bif(nodes%20instanceof%20DataSet%7C%7Cnodes%20instanceof%20DataView)%7Bthis.body.data.nodes%3Dnodes%7Delse%20if(Array.isArray(nodes))%7Bthis.body.data.nodes%3Dnew%20DataSet%3Bthis.body.data.nodes.add(nodes)%7Delse%20if(!nodes)%7Bthis.body.data.nodes%3Dnew%20DataSet%7Delse%7Bthrow%20new%20TypeError(%5C%5C%5C%22Array%20or%20DataSet%20expected%5C%5C%5C%22)%7Dif(oldNodesData)%7Butil.forEach(this.nodesListeners%2Cfunction(callback%2Cevent)%7BoldNodesData.off(event%2Ccallback)%7D)%7Dthis.body.nodes%3D%7B%7D%3Bif(this.body.data.nodes)%7Bvar%20me%3Dthis%3Butil.forEach(this.nodesListeners%2Cfunction(callback%2Cevent)%7Bme.body.data.nodes.on(event%2Ccallback)%7D)%3Bvar%20ids%3Dthis.body.data.nodes.getIds()%3Bthis.add(ids%2Ctrue)%7Dif(doNotEmit%3D%3D%3Dfalse)%7Bthis.body.emitter.emit(%5C%5C%5C%22_dataChanged%5C%5C%5C%22)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22add%5C%5C%5C%22%2Cvalue%3Afunction%20add(ids)%7Bvar%20doNotEmit%3Darguments.length%3E1%26%26arguments%5B1%5D!%3D%3Dundefined%3Farguments%5B1%5D%3Afalse%3Bvar%20id%3Dvoid%200%3Bvar%20newNodes%3D%5B%5D%3Bfor(var%20i%3D0%3Bi%3Cids.length%3Bi%2B%2B)%7Bid%3Dids%5Bi%5D%3Bvar%20properties%3Dthis.body.data.nodes.get(id)%3Bvar%20node%3Dthis.create(properties)%3BnewNodes.push(node)%3Bthis.body.nodes%5Bid%5D%3Dnode%7Dthis.layoutEngine.positionInitially(newNodes)%3Bif(doNotEmit%3D%3D%3Dfalse)%7Bthis.body.emitter.emit(%5C%5C%5C%22_dataChanged%5C%5C%5C%22)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22update%5C%5C%5C%22%2Cvalue%3Afunction%20update(ids%2CchangedData%2ColdData)%7Bvar%20nodes%3Dthis.body.nodes%3Bvar%20dataChanged%3Dfalse%3Bfor(var%20i%3D0%3Bi%3Cids.length%3Bi%2B%2B)%7Bvar%20id%3Dids%5Bi%5D%3Bvar%20node%3Dnodes%5Bid%5D%3Bvar%20data%3DchangedData%5Bi%5D%3Bif(node!%3D%3Dundefined)%7Bif(node.setOptions(data))%7BdataChanged%3Dtrue%7D%7Delse%7BdataChanged%3Dtrue%3Bnode%3Dthis.create(data)%3Bnodes%5Bid%5D%3Dnode%7D%7Dif(!dataChanged%26%26oldData!%3D%3Dundefined)%7BdataChanged%3DchangedData.some(function(newValue%2Cindex)%7Bvar%20oldValue%3DoldData%5Bindex%5D%3Breturn%20oldValue%26%26oldValue.level!%3D%3DnewValue.level%7D)%7Dif(dataChanged%3D%3D%3Dtrue)%7Bthis.body.emitter.emit(%5C%5C%5C%22_dataChanged%5C%5C%5C%22)%7Delse%7Bthis.body.emitter.emit(%5C%5C%5C%22_dataUpdated%5C%5C%5C%22)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22remove%5C%5C%5C%22%2Cvalue%3Afunction%20remove(ids)%7Bvar%20nodes%3Dthis.body.nodes%3Bfor(var%20i%3D0%3Bi%3Cids.length%3Bi%2B%2B)%7Bvar%20id%3Dids%5Bi%5D%3Bdelete%20nodes%5Bid%5D%7Dthis.body.emitter.emit(%5C%5C%5C%22_dataChanged%5C%5C%5C%22)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22create%5C%5C%5C%22%2Cvalue%3Afunction%20create(properties)%7Bvar%20constructorClass%3Darguments.length%3E1%26%26arguments%5B1%5D!%3D%3Dundefined%3Farguments%5B1%5D%3ANode%3Breturn%20new%20constructorClass(properties%2Cthis.body%2Cthis.images%2Cthis.groups%2Cthis.options%2Cthis.defaultOptions)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22refresh%5C%5C%5C%22%2Cvalue%3Afunction%20refresh()%7Bvar%20_this3%3Dthis%3Bvar%20clearPositions%3Darguments.length%3E0%26%26arguments%5B0%5D!%3D%3Dundefined%3Farguments%5B0%5D%3Afalse%3Butil.forEach(this.body.nodes%2Cfunction(node%2CnodeId)%7Bvar%20data%3D_this3.body.data.nodes.get(nodeId)%3Bif(data!%3D%3Dundefined)%7Bif(clearPositions%3D%3D%3Dtrue)%7Bnode.setOptions(%7Bx%3Anull%2Cy%3Anull%7D)%7Dnode.setOptions(%7Bfixed%3Afalse%7D)%3Bnode.setOptions(data)%7D%7D)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getPositions%5C%5C%5C%22%2Cvalue%3Afunction%20getPositions(ids)%7Bvar%20dataArray%3D%7B%7D%3Bif(ids!%3D%3Dundefined)%7Bif(Array.isArray(ids)%3D%3D%3Dtrue)%7Bfor(var%20i%3D0%3Bi%3Cids.length%3Bi%2B%2B)%7Bif(this.body.nodes%5Bids%5Bi%5D%5D!%3D%3Dundefined)%7Bvar%20node%3Dthis.body.nodes%5Bids%5Bi%5D%5D%3BdataArray%5Bids%5Bi%5D%5D%3D%7Bx%3AMath.round(node.x)%2Cy%3AMath.round(node.y)%7D%7D%7D%7Delse%7Bif(this.body.nodes%5Bids%5D!%3D%3Dundefined)%7Bvar%20_node%3Dthis.body.nodes%5Bids%5D%3BdataArray%5Bids%5D%3D%7Bx%3AMath.round(_node.x)%2Cy%3AMath.round(_node.y)%7D%7D%7D%7Delse%7Bfor(var%20_i%3D0%3B_i%3Cthis.body.nodeIndices.length%3B_i%2B%2B)%7Bvar%20_node2%3Dthis.body.nodes%5Bthis.body.nodeIndices%5B_i%5D%5D%3BdataArray%5Bthis.body.nodeIndices%5B_i%5D%5D%3D%7Bx%3AMath.round(_node2.x)%2Cy%3AMath.round(_node2.y)%7D%7D%7Dreturn%20dataArray%7D%7D%2C%7Bkey%3A%5C%5C%5C%22storePositions%5C%5C%5C%22%2Cvalue%3Afunction%20storePositions()%7Bvar%20dataArray%3D%5B%5D%3Bvar%20dataset%3Dthis.body.data.nodes.getDataSet()%3Bfor(var%20nodeId%20in%20dataset._data)%7Bif(dataset._data.hasOwnProperty(nodeId))%7Bvar%20node%3Dthis.body.nodes%5BnodeId%5D%3Bif(dataset._data%5BnodeId%5D.x!%3DMath.round(node.x)%7C%7Cdataset._data%5BnodeId%5D.y!%3DMath.round(node.y))%7BdataArray.push(%7Bid%3Anode.id%2Cx%3AMath.round(node.x)%2Cy%3AMath.round(node.y)%7D)%7D%7D%7Ddataset.update(dataArray)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getBoundingBox%5C%5C%5C%22%2Cvalue%3Afunction%20getBoundingBox(nodeId)%7Bif(this.body.nodes%5BnodeId%5D!%3D%3Dundefined)%7Breturn%20this.body.nodes%5BnodeId%5D.shape.boundingBox%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getConnectedNodes%5C%5C%5C%22%2Cvalue%3Afunction%20getConnectedNodes(nodeId%2Cdirection)%7Bvar%20nodeList%3D%5B%5D%3Bif(this.body.nodes%5BnodeId%5D!%3D%3Dundefined)%7Bvar%20node%3Dthis.body.nodes%5BnodeId%5D%3Bvar%20nodeObj%3D%7B%7D%3Bfor(var%20i%3D0%3Bi%3Cnode.edges.length%3Bi%2B%2B)%7Bvar%20edge%3Dnode.edges%5Bi%5D%3Bif(direction!%3D%3D%5C%5C%5C%22to%5C%5C%5C%22%26%26edge.toId%3D%3Dnode.id)%7Bif(nodeObj%5Bedge.fromId%5D%3D%3D%3Dundefined)%7BnodeList.push(edge.fromId)%3BnodeObj%5Bedge.fromId%5D%3Dtrue%7D%7Delse%20if(direction!%3D%3D%5C%5C%5C%22from%5C%5C%5C%22%26%26edge.fromId%3D%3Dnode.id)%7Bif(nodeObj%5Bedge.toId%5D%3D%3D%3Dundefined)%7BnodeList.push(edge.toId)%3BnodeObj%5Bedge.toId%5D%3Dtrue%7D%7D%7D%7Dreturn%20nodeList%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getConnectedEdges%5C%5C%5C%22%2Cvalue%3Afunction%20getConnectedEdges(nodeId)%7Bvar%20edgeList%3D%5B%5D%3Bif(this.body.nodes%5BnodeId%5D!%3D%3Dundefined)%7Bvar%20node%3Dthis.body.nodes%5BnodeId%5D%3Bfor(var%20i%3D0%3Bi%3Cnode.edges.length%3Bi%2B%2B)%7BedgeList.push(node.edges%5Bi%5D.id)%7D%7Delse%7Bconsole.log(%5C%5C%5C%22NodeId%20provided%20for%20getConnectedEdges%20does%20not%20exist.%20Provided%3A%20%5C%5C%5C%22%2CnodeId)%7Dreturn%20edgeList%7D%7D%2C%7Bkey%3A%5C%5C%5C%22moveNode%5C%5C%5C%22%2Cvalue%3Afunction%20moveNode(nodeId%2Cx%2Cy)%7Bvar%20_this4%3Dthis%3Bif(this.body.nodes%5BnodeId%5D!%3D%3Dundefined)%7Bthis.body.nodes%5BnodeId%5D.x%3DNumber(x)%3Bthis.body.nodes%5BnodeId%5D.y%3DNumber(y)%3BsetTimeout(function()%7B_this4.body.emitter.emit(%5C%5C%5C%22startSimulation%5C%5C%5C%22)%7D%2C0)%7Delse%7Bconsole.log(%5C%5C%5C%22Node%20id%20supplied%20to%20moveNode%20does%20not%20exist.%20Provided%3A%20%5C%5C%5C%22%2CnodeId)%7D%7D%7D%5D)%3Breturn%20NodesHandler%7D()%3Bexports%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3DNodesHandler%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7Bmodule.exports%3D%7Bdefault%3A__webpack_require__(189)%2C__esModule%3Atrue%7D%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B__webpack_require__(49)%3B__webpack_require__(60)%3Bmodule.exports%3D__webpack_require__(190)%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7Bvar%20classof%3D__webpack_require__(86)%3Bvar%20ITERATOR%3D__webpack_require__(13)(%5C%5C%5C%22iterator%5C%5C%5C%22)%3Bvar%20Iterators%3D__webpack_require__(31)%3Bmodule.exports%3D__webpack_require__(7).isIterable%3Dfunction(it)%7Bvar%20O%3DObject(it)%3Breturn%20O%5BITERATOR%5D!%3D%3Dundefined%7C%7C%5C%5C%5C%22%40%40iterator%5C%5C%5C%22in%20O%7C%7CIterators.hasOwnProperty(classof(O))%7D%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_classCallCheck2%3D__webpack_require__(0)%3Bvar%20_classCallCheck3%3D_interopRequireDefault(_classCallCheck2)%3Bvar%20_createClass2%3D__webpack_require__(1)%3Bvar%20_createClass3%3D_interopRequireDefault(_createClass2)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20LabelAccumulator%3D__webpack_require__(192)%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3Bvar%20ComponentUtil%3D__webpack_require__(48)%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3Bvar%20LabelSplitter%3Dfunction()%7Bfunction%20LabelSplitter(ctx%2Cparent%2Cselected%2Chover)%7Bvar%20_this%3Dthis%3B(0%2C_classCallCheck3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2CLabelSplitter)%3Bthis.ctx%3Dctx%3Bthis.parent%3Dparent%3Bvar%20textWidth%3Dfunction%20textWidth(text%2Cmod)%7Bif(text%3D%3D%3Dundefined)return%200%3Bvar%20values%3D_this.parent.getFormattingValues(ctx%2Cselected%2Chover%2Cmod)%3Bvar%20width%3D0%3Bif(text!%3D%3D%5C%5C%5C%22%5C%5C%5C%22)%7Bvar%20measure%3D_this.ctx.measureText(text)%3Bwidth%3Dmeasure.width%7Dreturn%7Bwidth%3Awidth%2Cvalues%3Avalues%7D%7D%3Bthis.lines%3Dnew%20LabelAccumulator(textWidth)%7D(0%2C_createClass3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(LabelSplitter%2C%5B%7Bkey%3A%5C%5C%5C%22process%5C%5C%5C%22%2Cvalue%3Afunction%20process(text)%7Bif(!ComponentUtil.isValidLabel(text))%7Breturn%20this.lines.finalize()%7Dvar%20font%3Dthis.parent.fontOptions%3Btext%3Dtext.replace(%2F%5C%5C%5C%5Cr%5C%5C%5C%5Cn%2Fg%2C%5C%5C%5C%22%5C%5C%5C%5Cn%5C%5C%5C%22)%3Btext%3Dtext.replace(%2F%5C%5C%5C%5Cr%2Fg%2C%5C%5C%5C%22%5C%5C%5C%5Cn%5C%5C%5C%22)%3Bvar%20nlLines%3DString(text).split(%5C%5C%5C%22%5C%5C%5C%5Cn%5C%5C%5C%22)%3Bvar%20lineCount%3DnlLines.length%3Bif(font.multi)%7Bfor(var%20i%3D0%3Bi%3ClineCount%3Bi%2B%2B)%7Bvar%20blocks%3Dthis.splitBlocks(nlLines%5Bi%5D%2Cfont.multi)%3Bif(blocks%3D%3D%3Dundefined)continue%3Bif(blocks.length%3D%3D%3D0)%7Bthis.lines.newLine(%5C%5C%5C%22%5C%5C%5C%22)%3Bcontinue%7Dif(font.maxWdt%3E0)%7Bfor(var%20j%3D0%3Bj%3Cblocks.length%3Bj%2B%2B)%7Bvar%20mod%3Dblocks%5Bj%5D.mod%3Bvar%20_text%3Dblocks%5Bj%5D.text%3Bthis.splitStringIntoLines(_text%2Cmod%2Ctrue)%7D%7Delse%7Bfor(var%20_j%3D0%3B_j%3Cblocks.length%3B_j%2B%2B)%7Bvar%20_mod%3Dblocks%5B_j%5D.mod%3Bvar%20_text2%3Dblocks%5B_j%5D.text%3Bthis.lines.append(_text2%2C_mod)%7D%7Dthis.lines.newLine()%7D%7Delse%7Bif(font.maxWdt%3E0)%7Bfor(var%20_i%3D0%3B_i%3ClineCount%3B_i%2B%2B)%7Bthis.splitStringIntoLines(nlLines%5B_i%5D)%7D%7Delse%7Bfor(var%20_i2%3D0%3B_i2%3ClineCount%3B_i2%2B%2B)%7Bthis.lines.newLine(nlLines%5B_i2%5D)%7D%7D%7Dreturn%20this.lines.finalize()%7D%7D%2C%7Bkey%3A%5C%5C%5C%22decodeMarkupSystem%5C%5C%5C%22%2Cvalue%3Afunction%20decodeMarkupSystem(markupSystem)%7Bvar%20system%3D%5C%5C%5C%22none%5C%5C%5C%22%3Bif(markupSystem%3D%3D%3D%5C%5C%5C%22markdown%5C%5C%5C%22%7C%7CmarkupSystem%3D%3D%3D%5C%5C%5C%22md%5C%5C%5C%22)%7Bsystem%3D%5C%5C%5C%22markdown%5C%5C%5C%22%7Delse%20if(markupSystem%3D%3D%3Dtrue%7C%7CmarkupSystem%3D%3D%3D%5C%5C%5C%22html%5C%5C%5C%22)%7Bsystem%3D%5C%5C%5C%22html%5C%5C%5C%22%7Dreturn%20system%7D%7D%2C%7Bkey%3A%5C%5C%5C%22splitHtmlBlocks%5C%5C%5C%22%2Cvalue%3Afunction%20splitHtmlBlocks(text)%7Bvar%20blocks%3D%5B%5D%3Bvar%20s%3D%7Bbold%3Afalse%2Cital%3Afalse%2Cmono%3Afalse%2Cspacing%3Afalse%2Cposition%3A0%2Cbuffer%3A%5C%5C%5C%22%5C%5C%5C%22%2CmodStack%3A%5B%5D%7D%3Bs.mod%3Dfunction()%7Breturn%20this.modStack.length%3D%3D%3D0%3F%5C%5C%5C%22normal%5C%5C%5C%22%3Athis.modStack%5B0%5D%7D%3Bs.modName%3Dfunction()%7Bif(this.modStack.length%3D%3D%3D0)return%5C%5C%5C%22normal%5C%5C%5C%22%3Belse%20if(this.modStack%5B0%5D%3D%3D%3D%5C%5C%5C%22mono%5C%5C%5C%22)return%5C%5C%5C%22mono%5C%5C%5C%22%3Belse%7Bif(s.bold%26%26s.ital)%7Breturn%5C%5C%5C%22boldital%5C%5C%5C%22%7Delse%20if(s.bold)%7Breturn%5C%5C%5C%22bold%5C%5C%5C%22%7Delse%20if(s.ital)%7Breturn%5C%5C%5C%22ital%5C%5C%5C%22%7D%7D%7D%3Bs.emitBlock%3Dfunction()%7Bvar%20override%3Darguments.length%3E0%26%26arguments%5B0%5D!%3D%3Dundefined%3Farguments%5B0%5D%3Afalse%3Bif(this.spacing)%7Bthis.add(%5C%5C%5C%22%20%5C%5C%5C%22)%3Bthis.spacing%3Dfalse%7Dif(this.buffer.length%3E0)%7Bblocks.push(%7Btext%3Athis.buffer%2Cmod%3Athis.modName()%7D)%3Bthis.buffer%3D%5C%5C%5C%22%5C%5C%5C%22%7D%7D%3Bs.add%3Dfunction(text)%7Bif(text%3D%3D%3D%5C%5C%5C%22%20%5C%5C%5C%22)%7Bs.spacing%3Dtrue%7Dif(s.spacing)%7Bthis.buffer%2B%3D%5C%5C%5C%22%20%5C%5C%5C%22%3Bthis.spacing%3Dfalse%7Dif(text!%3D%5C%5C%5C%22%20%5C%5C%5C%22)%7Bthis.buffer%2B%3Dtext%7D%7D%3Bwhile(s.position%3Ctext.length)%7Bvar%20ch%3Dtext.charAt(s.position)%3Bif(%2F%5B%20%5C%5C%5C%5Ct%5D%2F.test(ch))%7Bif(!s.mono)%7Bs.spacing%3Dtrue%7Delse%7Bs.add(ch)%7D%7Delse%20if(%2F%3C%2F.test(ch))%7Bif(!s.mono%26%26!s.bold%26%26%2F%3Cb%3E%2F.test(text.substr(s.position%2C3)))%7Bs.emitBlock()%3Bs.bold%3Dtrue%3Bs.modStack.unshift(%5C%5C%5C%22bold%5C%5C%5C%22)%3Bs.position%2B%3D2%7Delse%20if(!s.mono%26%26!s.ital%26%26%2F%3Ci%3E%2F.test(text.substr(s.position%2C3)))%7Bs.emitBlock()%3Bs.ital%3Dtrue%3Bs.modStack.unshift(%5C%5C%5C%22ital%5C%5C%5C%22)%3Bs.position%2B%3D2%7Delse%20if(!s.mono%26%26%2F%3Ccode%3E%2F.test(text.substr(s.position%2C6)))%7Bs.emitBlock()%3Bs.mono%3Dtrue%3Bs.modStack.unshift(%5C%5C%5C%22mono%5C%5C%5C%22)%3Bs.position%2B%3D5%7Delse%20if(!s.mono%26%26s.mod()%3D%3D%3D%5C%5C%5C%22bold%5C%5C%5C%22%26%26%2F%3C%5C%5C%5C%5C%2Fb%3E%2F.test(text.substr(s.position%2C4)))%7Bs.emitBlock()%3Bs.bold%3Dfalse%3Bs.modStack.shift()%3Bs.position%2B%3D3%7Delse%20if(!s.mono%26%26s.mod()%3D%3D%3D%5C%5C%5C%22ital%5C%5C%5C%22%26%26%2F%3C%5C%5C%5C%5C%2Fi%3E%2F.test(text.substr(s.position%2C4)))%7Bs.emitBlock()%3Bs.ital%3Dfalse%3Bs.modStack.shift()%3Bs.position%2B%3D3%7Delse%20if(s.mod()%3D%3D%3D%5C%5C%5C%22mono%5C%5C%5C%22%26%26%2F%3C%5C%5C%5C%5C%2Fcode%3E%2F.test(text.substr(s.position%2C7)))%7Bs.emitBlock()%3Bs.mono%3Dfalse%3Bs.modStack.shift()%3Bs.position%2B%3D6%7Delse%7Bs.add(ch)%7D%7Delse%20if(%2F%26%2F.test(ch))%7Bif(%2F%26lt%3B%2F.test(text.substr(s.position%2C4)))%7Bs.add(%5C%5C%5C%22%3C%5C%5C%5C%22)%3Bs.position%2B%3D3%7Delse%20if(%2F%26amp%3B%2F.test(text.substr(s.position%2C5)))%7Bs.add(%5C%5C%5C%22%26%5C%5C%5C%22)%3Bs.position%2B%3D4%7Delse%7Bs.add(%5C%5C%5C%22%26%5C%5C%5C%22)%7D%7Delse%7Bs.add(ch)%7Ds.position%2B%2B%7Ds.emitBlock()%3Breturn%20blocks%7D%7D%2C%7Bkey%3A%5C%5C%5C%22splitMarkdownBlocks%5C%5C%5C%22%2Cvalue%3Afunction%20splitMarkdownBlocks(text)%7Bvar%20blocks%3D%5B%5D%3Bvar%20s%3D%7Bbold%3Afalse%2Cital%3Afalse%2Cmono%3Afalse%2Cbeginable%3Atrue%2Cspacing%3Afalse%2Cposition%3A0%2Cbuffer%3A%5C%5C%5C%22%5C%5C%5C%22%2CmodStack%3A%5B%5D%7D%3Bs.mod%3Dfunction()%7Breturn%20this.modStack.length%3D%3D%3D0%3F%5C%5C%5C%22normal%5C%5C%5C%22%3Athis.modStack%5B0%5D%7D%3Bs.modName%3Dfunction()%7Bif(this.modStack.length%3D%3D%3D0)return%5C%5C%5C%22normal%5C%5C%5C%22%3Belse%20if(this.modStack%5B0%5D%3D%3D%3D%5C%5C%5C%22mono%5C%5C%5C%22)return%5C%5C%5C%22mono%5C%5C%5C%22%3Belse%7Bif(s.bold%26%26s.ital)%7Breturn%5C%5C%5C%22boldital%5C%5C%5C%22%7Delse%20if(s.bold)%7Breturn%5C%5C%5C%22bold%5C%5C%5C%22%7Delse%20if(s.ital)%7Breturn%5C%5C%5C%22ital%5C%5C%5C%22%7D%7D%7D%3Bs.emitBlock%3Dfunction()%7Bvar%20override%3Darguments.length%3E0%26%26arguments%5B0%5D!%3D%3Dundefined%3Farguments%5B0%5D%3Afalse%3Bif(this.spacing)%7Bthis.add(%5C%5C%5C%22%20%5C%5C%5C%22)%3Bthis.spacing%3Dfalse%7Dif(this.buffer.length%3E0)%7Bblocks.push(%7Btext%3Athis.buffer%2Cmod%3Athis.modName()%7D)%3Bthis.buffer%3D%5C%5C%5C%22%5C%5C%5C%22%7D%7D%3Bs.add%3Dfunction(text)%7Bif(text%3D%3D%3D%5C%5C%5C%22%20%5C%5C%5C%22)%7Bs.spacing%3Dtrue%7Dif(s.spacing)%7Bthis.buffer%2B%3D%5C%5C%5C%22%20%5C%5C%5C%22%3Bthis.spacing%3Dfalse%7Dif(text!%3D%5C%5C%5C%22%20%5C%5C%5C%22)%7Bthis.buffer%2B%3Dtext%7D%7D%3Bwhile(s.position%3Ctext.length)%7Bvar%20ch%3Dtext.charAt(s.position)%3Bif(%2F%5B%20%5C%5C%5C%5Ct%5D%2F.test(ch))%7Bif(!s.mono)%7Bs.spacing%3Dtrue%7Delse%7Bs.add(ch)%7Ds.beginable%3Dtrue%7Delse%20if(%2F%5C%5C%5C%5C%5C%5C%5C%5C%2F.test(ch))%7Bif(s.position%3Ctext.length%2B1)%7Bs.position%2B%2B%3Bch%3Dtext.charAt(s.position)%3Bif(%2F%20%5C%5C%5C%5Ct%2F.test(ch))%7Bs.spacing%3Dtrue%7Delse%7Bs.add(ch)%3Bs.beginable%3Dfalse%7D%7D%7Delse%20if(!s.mono%26%26!s.bold%26%26(s.beginable%7C%7Cs.spacing)%26%26%2F%5C%5C%5C%5C*%2F.test(ch))%7Bs.emitBlock()%3Bs.bold%3Dtrue%3Bs.modStack.unshift(%5C%5C%5C%22bold%5C%5C%5C%22)%7Delse%20if(!s.mono%26%26!s.ital%26%26(s.beginable%7C%7Cs.spacing)%26%26%2F%5C%5C%5C%5C_%2F.test(ch))%7Bs.emitBlock()%3Bs.ital%3Dtrue%3Bs.modStack.unshift(%5C%5C%5C%22ital%5C%5C%5C%22)%7Delse%20if(!s.mono%26%26(s.beginable%7C%7Cs.spacing)%26%26%2F%60%2F.test(ch))%7Bs.emitBlock()%3Bs.mono%3Dtrue%3Bs.modStack.unshift(%5C%5C%5C%22mono%5C%5C%5C%22)%7Delse%20if(!s.mono%26%26s.mod()%3D%3D%3D%5C%5C%5C%22bold%5C%5C%5C%22%26%26%2F%5C%5C%5C%5C*%2F.test(ch))%7Bif(s.position%3D%3D%3Dtext.length-1%7C%7C%2F%5B.%2C_%60%20%5C%5C%5C%5Ct%5C%5C%5C%5Cn%5D%2F.test(text.charAt(s.position%2B1)))%7Bs.emitBlock()%3Bs.bold%3Dfalse%3Bs.modStack.shift()%7Delse%7Bs.add(ch)%7D%7Delse%20if(!s.mono%26%26s.mod()%3D%3D%3D%5C%5C%5C%22ital%5C%5C%5C%22%26%26%2F%5C%5C%5C%5C_%2F.test(ch))%7Bif(s.position%3D%3D%3Dtext.length-1%7C%7C%2F%5B.%2C*%60%20%5C%5C%5C%5Ct%5C%5C%5C%5Cn%5D%2F.test(text.charAt(s.position%2B1)))%7Bs.emitBlock()%3Bs.ital%3Dfalse%3Bs.modStack.shift()%7Delse%7Bs.add(ch)%7D%7Delse%20if(s.mono%26%26s.mod()%3D%3D%3D%5C%5C%5C%22mono%5C%5C%5C%22%26%26%2F%60%2F.test(ch))%7Bif(s.position%3D%3D%3Dtext.length-1%7C%7C%2F%5B.%2C*_%20%5C%5C%5C%5Ct%5C%5C%5C%5Cn%5D%2F.test(text.charAt(s.position%2B1)))%7Bs.emitBlock()%3Bs.mono%3Dfalse%3Bs.modStack.shift()%7Delse%7Bs.add(ch)%7D%7Delse%7Bs.add(ch)%3Bs.beginable%3Dfalse%7Ds.position%2B%2B%7Ds.emitBlock()%3Breturn%20blocks%7D%7D%2C%7Bkey%3A%5C%5C%5C%22splitBlocks%5C%5C%5C%22%2Cvalue%3Afunction%20splitBlocks(text%2CmarkupSystem)%7Bvar%20system%3Dthis.decodeMarkupSystem(markupSystem)%3Bif(system%3D%3D%3D%5C%5C%5C%22none%5C%5C%5C%22)%7Breturn%5B%7Btext%3Atext%2Cmod%3A%5C%5C%5C%22normal%5C%5C%5C%22%7D%5D%7Delse%20if(system%3D%3D%3D%5C%5C%5C%22markdown%5C%5C%5C%22)%7Breturn%20this.splitMarkdownBlocks(text)%7Delse%20if(system%3D%3D%3D%5C%5C%5C%22html%5C%5C%5C%22)%7Breturn%20this.splitHtmlBlocks(text)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22overMaxWidth%5C%5C%5C%22%2Cvalue%3Afunction%20overMaxWidth(text)%7Bvar%20width%3Dthis.ctx.measureText(text).width%3Breturn%20this.lines.curWidth()%2Bwidth%3Ethis.parent.fontOptions.maxWdt%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getLongestFit%5C%5C%5C%22%2Cvalue%3Afunction%20getLongestFit(words)%7Bvar%20text%3D%5C%5C%5C%22%5C%5C%5C%22%3Bvar%20w%3D0%3Bwhile(w%3Cwords.length)%7Bvar%20pre%3Dtext%3D%3D%3D%5C%5C%5C%22%5C%5C%5C%22%3F%5C%5C%5C%22%5C%5C%5C%22%3A%5C%5C%5C%22%20%5C%5C%5C%22%3Bvar%20newText%3Dtext%2Bpre%2Bwords%5Bw%5D%3Bif(this.overMaxWidth(newText))break%3Btext%3DnewText%3Bw%2B%2B%7Dreturn%20w%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getLongestFitWord%5C%5C%5C%22%2Cvalue%3Afunction%20getLongestFitWord(words)%7Bvar%20w%3D0%3Bwhile(w%3Cwords.length)%7Bif(this.overMaxWidth(words.slice(0%2Cw)))break%3Bw%2B%2B%7Dreturn%20w%7D%7D%2C%7Bkey%3A%5C%5C%5C%22splitStringIntoLines%5C%5C%5C%22%2Cvalue%3Afunction%20splitStringIntoLines(str)%7Bvar%20mod%3Darguments.length%3E1%26%26arguments%5B1%5D!%3D%3Dundefined%3Farguments%5B1%5D%3A%5C%5C%5C%22normal%5C%5C%5C%22%3Bvar%20appendLast%3Darguments.length%3E2%26%26arguments%5B2%5D!%3D%3Dundefined%3Farguments%5B2%5D%3Afalse%3Bstr%3Dstr.replace(%2F%5E(%20%2B)%2Fg%2C%5C%5C%5C%22%241%5C%5C%5C%5Cr%5C%5C%5C%22)%3Bstr%3Dstr.replace(%2F(%5B%5E%5C%5C%5C%5Cr%5D%5B%5E%20%5D*)(%20%2B)%2Fg%2C%5C%5C%5C%22%241%5C%5C%5C%5Cr%242%5C%5C%5C%5Cr%5C%5C%5C%22)%3Bvar%20words%3Dstr.split(%5C%5C%5C%22%5C%5C%5C%5Cr%5C%5C%5C%22)%3Bwhile(words.length%3E0)%7Bvar%20w%3Dthis.getLongestFit(words)%3Bif(w%3D%3D%3D0)%7Bvar%20word%3Dwords%5B0%5D%3Bvar%20x%3Dthis.getLongestFitWord(word)%3Bthis.lines.newLine(word.slice(0%2Cx)%2Cmod)%3Bwords%5B0%5D%3Dword.slice(x)%7Delse%7Bvar%20newW%3Dw%3Bif(words%5Bw-1%5D%3D%3D%3D%5C%5C%5C%22%20%5C%5C%5C%22)%7Bw--%7Delse%20if(words%5BnewW%5D%3D%3D%3D%5C%5C%5C%22%20%5C%5C%5C%22)%7BnewW%2B%2B%7Dvar%20text%3Dwords.slice(0%2Cw).join(%5C%5C%5C%22%5C%5C%5C%22)%3Bif(w%3D%3Dwords.length%26%26appendLast)%7Bthis.lines.append(text%2Cmod)%7Delse%7Bthis.lines.newLine(text%2Cmod)%7Dwords%3Dwords.slice(newW)%7D%7D%7D%7D%5D)%3Breturn%20LabelSplitter%7D()%3Bexports%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3DLabelSplitter%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_assign%3D__webpack_require__(90)%3Bvar%20_assign2%3D_interopRequireDefault(_assign)%3Bvar%20_classCallCheck2%3D__webpack_require__(0)%3Bvar%20_classCallCheck3%3D_interopRequireDefault(_classCallCheck2)%3Bvar%20_createClass2%3D__webpack_require__(1)%3Bvar%20_createClass3%3D_interopRequireDefault(_createClass2)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20LabelAccumulator%3Dfunction()%7Bfunction%20LabelAccumulator(measureText)%7B(0%2C_classCallCheck3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2CLabelAccumulator)%3Bthis.measureText%3DmeasureText%3Bthis.current%3D0%3Bthis.width%3D0%3Bthis.height%3D0%3Bthis.lines%3D%5B%5D%7D(0%2C_createClass3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(LabelAccumulator%2C%5B%7Bkey%3A%5C%5C%5C%22_add%5C%5C%5C%22%2Cvalue%3Afunction%20_add(l%2Ctext)%7Bvar%20mod%3Darguments.length%3E2%26%26arguments%5B2%5D!%3D%3Dundefined%3Farguments%5B2%5D%3A%5C%5C%5C%22normal%5C%5C%5C%22%3Bif(this.lines%5Bl%5D%3D%3D%3Dundefined)%7Bthis.lines%5Bl%5D%3D%7Bwidth%3A0%2Cheight%3A0%2Cblocks%3A%5B%5D%7D%7Dvar%20tmpText%3Dtext%3Bif(text%3D%3D%3Dundefined%7C%7Ctext%3D%3D%3D%5C%5C%5C%22%5C%5C%5C%22)tmpText%3D%5C%5C%5C%22%20%5C%5C%5C%22%3Bvar%20result%3Dthis.measureText(tmpText%2Cmod)%3Bvar%20block%3D(0%2C_assign2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(%7B%7D%2Cresult.values)%3Bblock.text%3Dtext%3Bblock.width%3Dresult.width%3Bblock.mod%3Dmod%3Bif(text%3D%3D%3Dundefined%7C%7Ctext%3D%3D%3D%5C%5C%5C%22%5C%5C%5C%22)%7Bblock.width%3D0%7Dthis.lines%5Bl%5D.blocks.push(block)%3Bthis.lines%5Bl%5D.width%2B%3Dblock.width%7D%7D%2C%7Bkey%3A%5C%5C%5C%22curWidth%5C%5C%5C%22%2Cvalue%3Afunction%20curWidth()%7Bvar%20line%3Dthis.lines%5Bthis.current%5D%3Bif(line%3D%3D%3Dundefined)return%200%3Breturn%20line.width%7D%7D%2C%7Bkey%3A%5C%5C%5C%22append%5C%5C%5C%22%2Cvalue%3Afunction%20append(text)%7Bvar%20mod%3Darguments.length%3E1%26%26arguments%5B1%5D!%3D%3Dundefined%3Farguments%5B1%5D%3A%5C%5C%5C%22normal%5C%5C%5C%22%3Bthis._add(this.current%2Ctext%2Cmod)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22newLine%5C%5C%5C%22%2Cvalue%3Afunction%20newLine(text)%7Bvar%20mod%3Darguments.length%3E1%26%26arguments%5B1%5D!%3D%3Dundefined%3Farguments%5B1%5D%3A%5C%5C%5C%22normal%5C%5C%5C%22%3Bthis._add(this.current%2Ctext%2Cmod)%3Bthis.current%2B%2B%7D%7D%2C%7Bkey%3A%5C%5C%5C%22determineLineHeights%5C%5C%5C%22%2Cvalue%3Afunction%20determineLineHeights()%7Bfor(var%20k%3D0%3Bk%3Cthis.lines.length%3Bk%2B%2B)%7Bvar%20line%3Dthis.lines%5Bk%5D%3Bvar%20height%3D0%3Bif(line.blocks!%3D%3Dundefined)%7Bfor(var%20l%3D0%3Bl%3Cline.blocks.length%3Bl%2B%2B)%7Bvar%20block%3Dline.blocks%5Bl%5D%3Bif(height%3Cblock.height)%7Bheight%3Dblock.height%7D%7D%7Dline.height%3Dheight%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22determineLabelSize%5C%5C%5C%22%2Cvalue%3Afunction%20determineLabelSize()%7Bvar%20width%3D0%3Bvar%20height%3D0%3Bfor(var%20k%3D0%3Bk%3Cthis.lines.length%3Bk%2B%2B)%7Bvar%20line%3Dthis.lines%5Bk%5D%3Bif(line.width%3Ewidth)%7Bwidth%3Dline.width%7Dheight%2B%3Dline.height%7Dthis.width%3Dwidth%3Bthis.height%3Dheight%7D%7D%2C%7Bkey%3A%5C%5C%5C%22removeEmptyBlocks%5C%5C%5C%22%2Cvalue%3Afunction%20removeEmptyBlocks()%7Bvar%20tmpLines%3D%5B%5D%3Bfor(var%20k%3D0%3Bk%3Cthis.lines.length%3Bk%2B%2B)%7Bvar%20line%3Dthis.lines%5Bk%5D%3Bif(line.blocks.length%3D%3D%3D0)continue%3Bif(k%3D%3D%3Dthis.lines.length-1)%7Bif(line.width%3D%3D%3D0)continue%7Dvar%20tmpLine%3D%7B%7D%3B(0%2C_assign2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(tmpLine%2Cline)%3BtmpLine.blocks%3D%5B%5D%3Bvar%20firstEmptyBlock%3Dvoid%200%3Bvar%20tmpBlocks%3D%5B%5D%3Bfor(var%20l%3D0%3Bl%3Cline.blocks.length%3Bl%2B%2B)%7Bvar%20block%3Dline.blocks%5Bl%5D%3Bif(block.width!%3D%3D0)%7BtmpBlocks.push(block)%7Delse%7Bif(firstEmptyBlock%3D%3D%3Dundefined)%7BfirstEmptyBlock%3Dblock%7D%7D%7Dif(tmpBlocks.length%3D%3D%3D0%26%26firstEmptyBlock!%3D%3Dundefined)%7BtmpBlocks.push(firstEmptyBlock)%7DtmpLine.blocks%3DtmpBlocks%3BtmpLines.push(tmpLine)%7Dreturn%20tmpLines%7D%7D%2C%7Bkey%3A%5C%5C%5C%22finalize%5C%5C%5C%22%2Cvalue%3Afunction%20finalize()%7Bthis.determineLineHeights()%3Bthis.determineLabelSize()%3Bvar%20tmpLines%3Dthis.removeEmptyBlocks()%3Breturn%7Bwidth%3Athis.width%2Cheight%3Athis.height%2Clines%3AtmpLines%7D%7D%7D%5D)%3Breturn%20LabelAccumulator%7D()%3Bexports%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3DLabelAccumulator%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_getPrototypeOf%3D__webpack_require__(3)%3Bvar%20_getPrototypeOf2%3D_interopRequireDefault(_getPrototypeOf)%3Bvar%20_classCallCheck2%3D__webpack_require__(0)%3Bvar%20_classCallCheck3%3D_interopRequireDefault(_classCallCheck2)%3Bvar%20_createClass2%3D__webpack_require__(1)%3Bvar%20_createClass3%3D_interopRequireDefault(_createClass2)%3Bvar%20_possibleConstructorReturn2%3D__webpack_require__(4)%3Bvar%20_possibleConstructorReturn3%3D_interopRequireDefault(_possibleConstructorReturn2)%3Bvar%20_inherits2%3D__webpack_require__(5)%3Bvar%20_inherits3%3D_interopRequireDefault(_inherits2)%3Bvar%20_NodeBase2%3D__webpack_require__(23)%3Bvar%20_NodeBase3%3D_interopRequireDefault(_NodeBase2)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20Box%3Dfunction(_NodeBase)%7B(0%2C_inherits3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(Box%2C_NodeBase)%3Bfunction%20Box(options%2Cbody%2ClabelModule)%7B(0%2C_classCallCheck3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2CBox)%3Bvar%20_this%3D(0%2C_possibleConstructorReturn3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2C(Box.__proto__%7C%7C(0%2C_getPrototypeOf2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(Box)).call(this%2Coptions%2Cbody%2ClabelModule))%3B_this._setMargins(labelModule)%3Breturn%20_this%7D(0%2C_createClass3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(Box%2C%5B%7Bkey%3A%5C%5C%5C%22resize%5C%5C%5C%22%2Cvalue%3Afunction%20resize(ctx)%7Bvar%20selected%3Darguments.length%3E1%26%26arguments%5B1%5D!%3D%3Dundefined%3Farguments%5B1%5D%3Athis.selected%3Bvar%20hover%3Darguments.length%3E2%26%26arguments%5B2%5D!%3D%3Dundefined%3Farguments%5B2%5D%3Athis.hover%3Bif(this.needsRefresh(selected%2Chover))%7Bvar%20dimensions%3Dthis.getDimensionsFromLabel(ctx%2Cselected%2Chover)%3Bthis.width%3Ddimensions.width%2Bthis.margin.right%2Bthis.margin.left%3Bthis.height%3Ddimensions.height%2Bthis.margin.top%2Bthis.margin.bottom%3Bthis.radius%3Dthis.width%2F2%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22draw%5C%5C%5C%22%2Cvalue%3Afunction%20draw(ctx%2Cx%2Cy%2Cselected%2Chover%2Cvalues)%7Bthis.resize(ctx%2Cselected%2Chover)%3Bthis.left%3Dx-this.width%2F2%3Bthis.top%3Dy-this.height%2F2%3Bthis.initContextForDraw(ctx%2Cvalues)%3Bctx.roundRect(this.left%2Cthis.top%2Cthis.width%2Cthis.height%2Cvalues.borderRadius)%3Bthis.performFill(ctx%2Cvalues)%3Bthis.updateBoundingBox(x%2Cy%2Cctx%2Cselected%2Chover)%3Bthis.labelModule.draw(ctx%2Cthis.left%2Bthis.textSize.width%2F2%2Bthis.margin.left%2Cthis.top%2Bthis.textSize.height%2F2%2Bthis.margin.top%2Cselected%2Chover)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22updateBoundingBox%5C%5C%5C%22%2Cvalue%3Afunction%20updateBoundingBox(x%2Cy%2Cctx%2Cselected%2Chover)%7Bthis._updateBoundingBox(x%2Cy%2Cctx%2Cselected%2Chover)%5C%5Cn%3Bvar%20borderRadius%3Dthis.options.shapeProperties.borderRadius%3Bthis._addBoundingBoxMargin(borderRadius)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22distanceToBorder%5C%5C%5C%22%2Cvalue%3Afunction%20distanceToBorder(ctx%2Cangle)%7Bthis.resize(ctx)%3Bvar%20borderWidth%3Dthis.options.borderWidth%3Breturn%20Math.min(Math.abs(this.width%2F2%2FMath.cos(angle))%2CMath.abs(this.height%2F2%2FMath.sin(angle)))%2BborderWidth%7D%7D%5D)%3Breturn%20Box%7D(_NodeBase3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)%3Bexports%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3DBox%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B__webpack_require__(195)%3Bmodule.exports%3D__webpack_require__(7).Object.getPrototypeOf%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7Bvar%20toObject%3D__webpack_require__(41)%3Bvar%20%24getPrototypeOf%3D__webpack_require__(85)%3B__webpack_require__(87)(%5C%5C%5C%22getPrototypeOf%5C%5C%5C%22%2Cfunction()%7Breturn%20function%20getPrototypeOf(it)%7Breturn%20%24getPrototypeOf(toObject(it))%7D%7D)%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7Bmodule.exports%3D%7Bdefault%3A__webpack_require__(197)%2C__esModule%3Atrue%7D%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B__webpack_require__(198)%3Bmodule.exports%3D__webpack_require__(7).Object.setPrototypeOf%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7Bvar%20%24export%3D__webpack_require__(17)%3B%24export(%24export.S%2C%5C%5C%5C%22Object%5C%5C%5C%22%2C%7BsetPrototypeOf%3A__webpack_require__(199).set%7D)%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7Bvar%20isObject%3D__webpack_require__(32)%3Bvar%20anObject%3D__webpack_require__(27)%3Bvar%20check%3Dfunction(O%2Cproto)%7BanObject(O)%3Bif(!isObject(proto)%26%26proto!%3D%3Dnull)throw%20TypeError(proto%2B%5C%5C%5C%22%3A%20can't%20set%20as%20prototype!%5C%5C%5C%22)%7D%3Bmodule.exports%3D%7Bset%3AObject.setPrototypeOf%7C%7C(%5C%5C%5C%22__proto__%5C%5C%5C%22in%7B%7D%3Ffunction(test%2Cbuggy%2Cset)%7Btry%7Bset%3D__webpack_require__(80)(Function.call%2C__webpack_require__(89).f(Object.prototype%2C%5C%5C%5C%22__proto__%5C%5C%5C%22).set%2C2)%3Bset(test%2C%5B%5D)%3Bbuggy%3D!(test%20instanceof%20Array)%7Dcatch(e)%7Bbuggy%3Dtrue%7Dreturn%20function%20setPrototypeOf(O%2Cproto)%7Bcheck(O%2Cproto)%3Bif(buggy)O.__proto__%3Dproto%3Belse%20set(O%2Cproto)%3Breturn%20O%7D%7D(%7B%7D%2Cfalse)%3Aundefined)%2Ccheck%3Acheck%7D%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_getPrototypeOf%3D__webpack_require__(3)%3Bvar%20_getPrototypeOf2%3D_interopRequireDefault(_getPrototypeOf)%3Bvar%20_classCallCheck2%3D__webpack_require__(0)%3Bvar%20_classCallCheck3%3D_interopRequireDefault(_classCallCheck2)%3Bvar%20_createClass2%3D__webpack_require__(1)%3Bvar%20_createClass3%3D_interopRequireDefault(_createClass2)%3Bvar%20_possibleConstructorReturn2%3D__webpack_require__(4)%3Bvar%20_possibleConstructorReturn3%3D_interopRequireDefault(_possibleConstructorReturn2)%3Bvar%20_inherits2%3D__webpack_require__(5)%3Bvar%20_inherits3%3D_interopRequireDefault(_inherits2)%3Bvar%20_CircleImageBase2%3D__webpack_require__(73)%3Bvar%20_CircleImageBase3%3D_interopRequireDefault(_CircleImageBase2)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20Circle%3Dfunction(_CircleImageBase)%7B(0%2C_inherits3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(Circle%2C_CircleImageBase)%3Bfunction%20Circle(options%2Cbody%2ClabelModule)%7B(0%2C_classCallCheck3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2CCircle)%3Bvar%20_this%3D(0%2C_possibleConstructorReturn3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2C(Circle.__proto__%7C%7C(0%2C_getPrototypeOf2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(Circle)).call(this%2Coptions%2Cbody%2ClabelModule))%3B_this._setMargins(labelModule)%3Breturn%20_this%7D(0%2C_createClass3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(Circle%2C%5B%7Bkey%3A%5C%5C%5C%22resize%5C%5C%5C%22%2Cvalue%3Afunction%20resize(ctx)%7Bvar%20selected%3Darguments.length%3E1%26%26arguments%5B1%5D!%3D%3Dundefined%3Farguments%5B1%5D%3Athis.selected%3Bvar%20hover%3Darguments.length%3E2%26%26arguments%5B2%5D!%3D%3Dundefined%3Farguments%5B2%5D%3Athis.hover%3Bif(this.needsRefresh(selected%2Chover))%7Bvar%20dimensions%3Dthis.getDimensionsFromLabel(ctx%2Cselected%2Chover)%3Bvar%20diameter%3DMath.max(dimensions.width%2Bthis.margin.right%2Bthis.margin.left%2Cdimensions.height%2Bthis.margin.top%2Bthis.margin.bottom)%3Bthis.options.size%3Ddiameter%2F2%3Bthis.width%3Ddiameter%3Bthis.height%3Ddiameter%3Bthis.radius%3Dthis.width%2F2%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22draw%5C%5C%5C%22%2Cvalue%3Afunction%20draw(ctx%2Cx%2Cy%2Cselected%2Chover%2Cvalues)%7Bthis.resize(ctx%2Cselected%2Chover)%3Bthis.left%3Dx-this.width%2F2%3Bthis.top%3Dy-this.height%2F2%3Bthis._drawRawCircle(ctx%2Cx%2Cy%2Cvalues)%3Bthis.updateBoundingBox(x%2Cy)%3Bthis.labelModule.draw(ctx%2Cthis.left%2Bthis.textSize.width%2F2%2Bthis.margin.left%2Cy%2Cselected%2Chover)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22updateBoundingBox%5C%5C%5C%22%2Cvalue%3Afunction%20updateBoundingBox(x%2Cy)%7Bthis.boundingBox.top%3Dy-this.options.size%3Bthis.boundingBox.left%3Dx-this.options.size%3Bthis.boundingBox.right%3Dx%2Bthis.options.size%3Bthis.boundingBox.bottom%3Dy%2Bthis.options.size%7D%7D%2C%7Bkey%3A%5C%5C%5C%22distanceToBorder%5C%5C%5C%22%2Cvalue%3Afunction%20distanceToBorder(ctx%2Cangle)%7Bthis.resize(ctx)%3Breturn%20this.width*.5%7D%7D%5D)%3Breturn%20Circle%7D(_CircleImageBase3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)%3Bexports%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3DCircle%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_getPrototypeOf%3D__webpack_require__(3)%3Bvar%20_getPrototypeOf2%3D_interopRequireDefault(_getPrototypeOf)%3Bvar%20_classCallCheck2%3D__webpack_require__(0)%3Bvar%20_classCallCheck3%3D_interopRequireDefault(_classCallCheck2)%3Bvar%20_createClass2%3D__webpack_require__(1)%3Bvar%20_createClass3%3D_interopRequireDefault(_createClass2)%3Bvar%20_possibleConstructorReturn2%3D__webpack_require__(4)%3Bvar%20_possibleConstructorReturn3%3D_interopRequireDefault(_possibleConstructorReturn2)%3Bvar%20_inherits2%3D__webpack_require__(5)%3Bvar%20_inherits3%3D_interopRequireDefault(_inherits2)%3Bvar%20_CircleImageBase2%3D__webpack_require__(73)%3Bvar%20_CircleImageBase3%3D_interopRequireDefault(_CircleImageBase2)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20CircularImage%3Dfunction(_CircleImageBase)%7B(0%2C_inherits3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(CircularImage%2C_CircleImageBase)%3Bfunction%20CircularImage(options%2Cbody%2ClabelModule%2CimageObj%2CimageObjAlt)%7B(0%2C_classCallCheck3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2CCircularImage)%3Bvar%20_this%3D(0%2C_possibleConstructorReturn3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2C(CircularImage.__proto__%7C%7C(0%2C_getPrototypeOf2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(CircularImage)).call(this%2Coptions%2Cbody%2ClabelModule))%3B_this.setImages(imageObj%2CimageObjAlt)%3Breturn%20_this%7D(0%2C_createClass3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(CircularImage%2C%5B%7Bkey%3A%5C%5C%5C%22resize%5C%5C%5C%22%2Cvalue%3Afunction%20resize(ctx)%7Bvar%20selected%3Darguments.length%3E1%26%26arguments%5B1%5D!%3D%3Dundefined%3Farguments%5B1%5D%3Athis.selected%3Bvar%20hover%3Darguments.length%3E2%26%26arguments%5B2%5D!%3D%3Dundefined%3Farguments%5B2%5D%3Athis.hover%3Bvar%20imageAbsent%3Dthis.imageObj.src%3D%3D%3Dundefined%7C%7Cthis.imageObj.width%3D%3D%3Dundefined%7C%7Cthis.imageObj.height%3D%3D%3Dundefined%3Bif(imageAbsent)%7Bvar%20diameter%3Dthis.options.size*2%3Bthis.width%3Ddiameter%3Bthis.height%3Ddiameter%3Bthis.radius%3D.5*this.width%3Breturn%7Dif(this.needsRefresh(selected%2Chover))%7Bthis._resizeImage()%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22draw%5C%5C%5C%22%2Cvalue%3Afunction%20draw(ctx%2Cx%2Cy%2Cselected%2Chover%2Cvalues)%7Bthis.switchImages(selected)%3Bthis.resize()%3Bthis.left%3Dx-this.width%2F2%3Bthis.top%3Dy-this.height%2F2%3Bthis._drawRawCircle(ctx%2Cx%2Cy%2Cvalues)%3Bctx.save()%3Bctx.clip()%3Bthis._drawImageAtPosition(ctx%2Cvalues)%3Bctx.restore()%3Bthis._drawImageLabel(ctx%2Cx%2Cy%2Cselected%2Chover)%3Bthis.updateBoundingBox(x%2Cy)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22updateBoundingBox%5C%5C%5C%22%2Cvalue%3Afunction%20updateBoundingBox(x%2Cy)%7Bthis.boundingBox.top%3Dy-this.options.size%3Bthis.boundingBox.left%3Dx-this.options.size%3Bthis.boundingBox.right%3Dx%2Bthis.options.size%3Bthis.boundingBox.bottom%3Dy%2Bthis.options.size%3Bthis.boundingBox.left%3DMath.min(this.boundingBox.left%2Cthis.labelModule.size.left)%3Bthis.boundingBox.right%3DMath.max(this.boundingBox.right%2Cthis.labelModule.size.left%2Bthis.labelModule.size.width)%3Bthis.boundingBox.bottom%3DMath.max(this.boundingBox.bottom%2Cthis.boundingBox.bottom%2Bthis.labelOffset)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22distanceToBorder%5C%5C%5C%22%2Cvalue%3Afunction%20distanceToBorder(ctx%2Cangle)%7Bthis.resize(ctx)%3Breturn%20this.width*.5%7D%7D%5D)%3Breturn%20CircularImage%7D(_CircleImageBase3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)%3Bexports%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3DCircularImage%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_getPrototypeOf%3D__webpack_require__(3)%3Bvar%20_getPrototypeOf2%3D_interopRequireDefault(_getPrototypeOf)%3Bvar%20_classCallCheck2%3D__webpack_require__(0)%3Bvar%20_classCallCheck3%3D_interopRequireDefault(_classCallCheck2)%3Bvar%20_createClass2%3D__webpack_require__(1)%3Bvar%20_createClass3%3D_interopRequireDefault(_createClass2)%3Bvar%20_possibleConstructorReturn2%3D__webpack_require__(4)%3Bvar%20_possibleConstructorReturn3%3D_interopRequireDefault(_possibleConstructorReturn2)%3Bvar%20_inherits2%3D__webpack_require__(5)%3Bvar%20_inherits3%3D_interopRequireDefault(_inherits2)%3Bvar%20_NodeBase2%3D__webpack_require__(23)%3Bvar%20_NodeBase3%3D_interopRequireDefault(_NodeBase2)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20Database%3Dfunction(_NodeBase)%7B(0%2C_inherits3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(Database%2C_NodeBase)%3Bfunction%20Database(options%2Cbody%2ClabelModule)%7B(0%2C_classCallCheck3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2CDatabase)%3Bvar%20_this%3D(0%2C_possibleConstructorReturn3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2C(Database.__proto__%7C%7C(0%2C_getPrototypeOf2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(Database)).call(this%2Coptions%2Cbody%2ClabelModule))%3B_this._setMargins(labelModule)%3Breturn%20_this%7D(0%2C_createClass3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(Database%2C%5B%7Bkey%3A%5C%5C%5C%22resize%5C%5C%5C%22%2Cvalue%3Afunction%20resize(ctx%2Cselected%2Chover)%7Bif(this.needsRefresh(selected%2Chover))%7Bvar%20dimensions%3Dthis.getDimensionsFromLabel(ctx%2Cselected%2Chover)%3Bvar%20size%3Ddimensions.width%2Bthis.margin.right%2Bthis.margin.left%3Bthis.width%3Dsize%3Bthis.height%3Dsize%3Bthis.radius%3Dthis.width%2F2%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22draw%5C%5C%5C%22%2Cvalue%3Afunction%20draw(ctx%2Cx%2Cy%2Cselected%2Chover%2Cvalues)%7Bthis.resize(ctx%2Cselected%2Chover)%3Bthis.left%3Dx-this.width%2F2%3Bthis.top%3Dy-this.height%2F2%3Bthis.initContextForDraw(ctx%2Cvalues)%3Bctx.database(x-this.width%2F2%2Cy-this.height%2F2%2Cthis.width%2Cthis.height)%3Bthis.performFill(ctx%2Cvalues)%3Bthis.updateBoundingBox(x%2Cy%2Cctx%2Cselected%2Chover)%3Bthis.labelModule.draw(ctx%2Cthis.left%2Bthis.textSize.width%2F2%2Bthis.margin.left%2Cthis.top%2Bthis.textSize.height%2F2%2Bthis.margin.top%2Cselected%2Chover)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22distanceToBorder%5C%5C%5C%22%2Cvalue%3Afunction%20distanceToBorder(ctx%2Cangle)%7Breturn%20this._distanceToBorder(ctx%2Cangle)%7D%7D%5D)%3Breturn%20Database%7D(_NodeBase3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)%3Bexports%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3DDatabase%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_getPrototypeOf%3D__webpack_require__(3)%3Bvar%20_getPrototypeOf2%3D_interopRequireDefault(_getPrototypeOf)%3Bvar%20_classCallCheck2%3D__webpack_require__(0)%3Bvar%20_classCallCheck3%3D_interopRequireDefault(_classCallCheck2)%3Bvar%20_createClass2%3D__webpack_require__(1)%3Bvar%20_createClass3%3D_interopRequireDefault(_createClass2)%3Bvar%20_possibleConstructorReturn2%3D__webpack_require__(4)%3Bvar%20_possibleConstructorReturn3%3D_interopRequireDefault(_possibleConstructorReturn2)%3Bvar%20_inherits2%3D__webpack_require__(5)%3Bvar%20_inherits3%3D_interopRequireDefault(_inherits2)%3Bvar%20_ShapeBase2%3D__webpack_require__(24)%3Bvar%20_ShapeBase3%3D_interopRequireDefault(_ShapeBase2)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20Diamond%3Dfunction(_ShapeBase)%7B(0%2C_inherits3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(Diamond%2C_ShapeBase)%3Bfunction%20Diamond(options%2Cbody%2ClabelModule)%7B(0%2C_classCallCheck3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2CDiamond)%3Breturn(0%2C_possibleConstructorReturn3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2C(Diamond.__proto__%7C%7C(0%2C_getPrototypeOf2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(Diamond)).call(this%2Coptions%2Cbody%2ClabelModule))%7D(0%2C_createClass3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(Diamond%2C%5B%7Bkey%3A%5C%5C%5C%22draw%5C%5C%5C%22%2Cvalue%3Afunction%20draw(ctx%2Cx%2Cy%2Cselected%2Chover%2Cvalues)%7Bthis._drawShape(ctx%2C%5C%5C%5C%22diamond%5C%5C%5C%22%2C4%2Cx%2Cy%2Cselected%2Chover%2Cvalues)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22distanceToBorder%5C%5C%5C%22%2Cvalue%3Afunction%20distanceToBorder(ctx%2Cangle)%7Breturn%20this._distanceToBorder(ctx%2Cangle)%7D%7D%5D)%3Breturn%20Diamond%7D(_ShapeBase3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)%3Bexports%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3DDiamond%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_getPrototypeOf%3D__webpack_require__(3)%3Bvar%20_getPrototypeOf2%3D_interopRequireDefault(_getPrototypeOf)%3Bvar%20_classCallCheck2%3D__webpack_require__(0)%3Bvar%20_classCallCheck3%3D_interopRequireDefault(_classCallCheck2)%3Bvar%20_createClass2%3D__webpack_require__(1)%3Bvar%20_createClass3%3D_interopRequireDefault(_createClass2)%3Bvar%20_possibleConstructorReturn2%3D__webpack_require__(4)%3Bvar%20_possibleConstructorReturn3%3D_interopRequireDefault(_possibleConstructorReturn2)%3Bvar%20_inherits2%3D__webpack_require__(5)%3Bvar%20_inherits3%3D_interopRequireDefault(_inherits2)%3Bvar%20_ShapeBase2%3D__webpack_require__(24)%3Bvar%20_ShapeBase3%3D_interopRequireDefault(_ShapeBase2)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20Dot%3Dfunction(_ShapeBase)%7B(0%2C_inherits3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(Dot%2C_ShapeBase)%3Bfunction%20Dot(options%2Cbody%2ClabelModule)%7B(0%2C_classCallCheck3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2CDot)%3Breturn(0%2C_possibleConstructorReturn3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2C(Dot.__proto__%7C%7C(0%2C_getPrototypeOf2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(Dot)).call(this%2Coptions%2Cbody%2ClabelModule))%7D(0%2C_createClass3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(Dot%2C%5B%7Bkey%3A%5C%5C%5C%22draw%5C%5C%5C%22%2Cvalue%3Afunction%20draw(ctx%2Cx%2Cy%2Cselected%2Chover%2Cvalues)%7Bthis._drawShape(ctx%2C%5C%5C%5C%22circle%5C%5C%5C%22%2C2%2Cx%2Cy%2Cselected%2Chover%2Cvalues)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22distanceToBorder%5C%5C%5C%22%2Cvalue%3Afunction%20distanceToBorder(ctx%2Cangle)%7Bthis.resize(ctx)%3Breturn%20this.options.size%7D%7D%5D)%3Breturn%20Dot%7D(_ShapeBase3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)%3Bexports%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3DDot%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_getPrototypeOf%3D__webpack_require__(3)%3Bvar%20_getPrototypeOf2%3D_interopRequireDefault(_getPrototypeOf)%3Bvar%20_classCallCheck2%3D__webpack_require__(0)%3Bvar%20_classCallCheck3%3D_interopRequireDefault(_classCallCheck2)%3Bvar%20_createClass2%3D__webpack_require__(1)%3Bvar%20_createClass3%3D_interopRequireDefault(_createClass2)%3Bvar%20_possibleConstructorReturn2%3D__webpack_require__(4)%3Bvar%20_possibleConstructorReturn3%3D_interopRequireDefault(_possibleConstructorReturn2)%3Bvar%20_inherits2%3D__webpack_require__(5)%3Bvar%20_inherits3%3D_interopRequireDefault(_inherits2)%3Bvar%20_NodeBase2%3D__webpack_require__(23)%3Bvar%20_NodeBase3%3D_interopRequireDefault(_NodeBase2)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20Ellipse%3Dfunction(_NodeBase)%7B(0%2C_inherits3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(Ellipse%2C_NodeBase)%3Bfunction%20Ellipse(options%2Cbody%2ClabelModule)%7B(0%2C_classCallCheck3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2CEllipse)%3Breturn(0%2C_possibleConstructorReturn3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2C(Ellipse.__proto__%7C%7C(0%2C_getPrototypeOf2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(Ellipse)).call(this%2Coptions%2Cbody%2ClabelModule))%7D(0%2C_createClass3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(Ellipse%2C%5B%7Bkey%3A%5C%5C%5C%22resize%5C%5C%5C%22%2Cvalue%3Afunction%20resize(ctx)%7Bvar%20selected%3Darguments.length%3E1%26%26arguments%5B1%5D!%3D%3Dundefined%3Farguments%5B1%5D%3Athis.selected%3Bvar%20hover%3Darguments.length%3E2%26%26arguments%5B2%5D!%3D%3Dundefined%3Farguments%5B2%5D%3Athis.hover%3Bif(this.needsRefresh(selected%2Chover))%7Bvar%20dimensions%3Dthis.getDimensionsFromLabel(ctx%2Cselected%2Chover)%3Bthis.height%3Ddimensions.height*2%3Bthis.width%3Ddimensions.width%2Bdimensions.height%3Bthis.radius%3D.5*this.width%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22draw%5C%5C%5C%22%2Cvalue%3Afunction%20draw(ctx%2Cx%2Cy%2Cselected%2Chover%2Cvalues)%7Bthis.resize(ctx%2Cselected%2Chover)%3Bthis.left%3Dx-this.width*.5%3Bthis.top%3Dy-this.height*.5%3Bthis.initContextForDraw(ctx%2Cvalues)%3Bctx.ellipse_vis(this.left%2Cthis.top%2Cthis.width%2Cthis.height)%3Bthis.performFill(ctx%2Cvalues)%3Bthis.updateBoundingBox(x%2Cy%2Cctx%2Cselected%2Chover)%3Bthis.labelModule.draw(ctx%2Cx%2Cy%2Cselected%2Chover)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22distanceToBorder%5C%5C%5C%22%2Cvalue%3Afunction%20distanceToBorder(ctx%2Cangle)%7Bthis.resize(ctx)%3Bvar%20a%3Dthis.width*.5%3Bvar%20b%3Dthis.height*.5%3Bvar%20w%3DMath.sin(angle)*a%3Bvar%20h%3DMath.cos(angle)*b%3Breturn%20a*b%2FMath.sqrt(w*w%2Bh*h)%7D%7D%5D)%3Breturn%20Ellipse%7D(_NodeBase3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)%3Bexports%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3DEllipse%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_getPrototypeOf%3D__webpack_require__(3)%3Bvar%20_getPrototypeOf2%3D_interopRequireDefault(_getPrototypeOf)%3Bvar%20_classCallCheck2%3D__webpack_require__(0)%3Bvar%20_classCallCheck3%3D_interopRequireDefault(_classCallCheck2)%3Bvar%20_createClass2%3D__webpack_require__(1)%3Bvar%20_createClass3%3D_interopRequireDefault(_createClass2)%3Bvar%20_possibleConstructorReturn2%3D__webpack_require__(4)%3Bvar%20_possibleConstructorReturn3%3D_interopRequireDefault(_possibleConstructorReturn2)%3Bvar%20_inherits2%3D__webpack_require__(5)%3Bvar%20_inherits3%3D_interopRequireDefault(_inherits2)%3Bvar%20_NodeBase2%3D__webpack_require__(23)%3Bvar%20_NodeBase3%3D_interopRequireDefault(_NodeBase2)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20Icon%3Dfunction(_NodeBase)%7B(0%2C_inherits3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(Icon%2C_NodeBase)%3Bfunction%20Icon(options%2Cbody%2ClabelModule)%7B(0%2C_classCallCheck3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2CIcon)%3Bvar%20_this%3D(0%2C_possibleConstructorReturn3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2C(Icon.__proto__%7C%7C(0%2C_getPrototypeOf2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(Icon)).call(this%2Coptions%2Cbody%2ClabelModule))%3B_this._setMargins(labelModule)%3Breturn%20_this%7D(0%2C_createClass3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(Icon%2C%5B%7Bkey%3A%5C%5C%5C%22resize%5C%5C%5C%22%2Cvalue%3Afunction%20resize(ctx%2Cselected%2Chover)%7Bif(this.needsRefresh(selected%2Chover))%7Bthis.iconSize%3D%7Bwidth%3ANumber(this.options.icon.size)%2Cheight%3ANumber(this.options.icon.size)%7D%3Bthis.width%3Dthis.iconSize.width%2Bthis.margin.right%2Bthis.margin.left%3Bthis.height%3Dthis.iconSize.height%2Bthis.margin.top%2Bthis.margin.bottom%3Bthis.radius%3D.5*this.width%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22draw%5C%5C%5C%22%2Cvalue%3Afunction%20draw(ctx%2Cx%2Cy%2Cselected%2Chover%2Cvalues)%7Bthis.resize(ctx%2Cselected%2Chover)%3Bthis.options.icon.size%3Dthis.options.icon.size%7C%7C50%3Bthis.left%3Dx-this.width%2F2%3Bthis.top%3Dy-this.height%2F2%3Bthis._icon(ctx%2Cx%2Cy%2Cselected%2Chover%2Cvalues)%3Bif(this.options.label!%3D%3Dundefined)%7Bvar%20iconTextSpacing%3D5%3Bthis.labelModule.draw(ctx%2Cthis.left%2Bthis.iconSize.width%2F2%2Bthis.margin.left%2Cy%2Bthis.height%2F2%2BiconTextSpacing%2Cselected)%7Dthis.updateBoundingBox(x%2Cy)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22updateBoundingBox%5C%5C%5C%22%2Cvalue%3Afunction%20updateBoundingBox(x%2Cy)%7Bthis.boundingBox.top%3Dy-this.options.icon.size*.5%3Bthis.boundingBox.left%3Dx-this.options.icon.size*.5%3Bthis.boundingBox.right%3Dx%2Bthis.options.icon.size*.5%3Bthis.boundingBox.bottom%3Dy%2Bthis.options.icon.size*.5%3Bif(this.options.label!%3D%3Dundefined%26%26this.labelModule.size.width%3E0)%7Bvar%20iconTextSpacing%3D5%3Bthis.boundingBox.left%3DMath.min(this.boundingBox.left%2Cthis.labelModule.size.left)%3Bthis.boundingBox.right%3DMath.max(this.boundingBox.right%2Cthis.labelModule.size.left%2Bthis.labelModule.size.width)%3Bthis.boundingBox.bottom%3DMath.max(this.boundingBox.bottom%2Cthis.boundingBox.bottom%2Bthis.labelModule.size.height%2BiconTextSpacing)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_icon%5C%5C%5C%22%2Cvalue%3Afunction%20_icon(ctx%2Cx%2Cy%2Cselected%2Chover%2Cvalues)%7Bvar%20iconSize%3DNumber(this.options.icon.size)%3Bif(this.options.icon.code!%3D%3Dundefined)%7Bctx.font%3D(selected%3F%5C%5C%5C%22bold%20%5C%5C%5C%22%3A%5C%5C%5C%22%5C%5C%5C%22)%2BiconSize%2B%5C%5C%5C%22px%20%5C%5C%5C%22%2Bthis.options.icon.face%3Bctx.fillStyle%3Dthis.options.icon.color%7C%7C%5C%5C%5C%22black%5C%5C%5C%22%3Bctx.textAlign%3D%5C%5C%5C%22center%5C%5C%5C%22%3Bctx.textBaseline%3D%5C%5C%5C%22middle%5C%5C%5C%22%3Bthis.enableShadow(ctx%2Cvalues)%3Bctx.fillText(this.options.icon.code%2Cx%2Cy)%3Bthis.disableShadow(ctx%2Cvalues)%7Delse%7Bconsole.error(%5C%5C%5C%22When%20using%20the%20icon%20shape%2C%20you%20need%20to%20define%20the%20code%20in%20the%20icon%20options%20object.%20This%20can%20be%20done%20per%20node%20or%20globally.%5C%5C%5C%22)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22distanceToBorder%5C%5C%5C%22%2Cvalue%3Afunction%20distanceToBorder(ctx%2Cangle)%7Breturn%20this._distanceToBorder(ctx%2Cangle)%7D%7D%5D)%3Breturn%20Icon%7D(_NodeBase3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)%3Bexports%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3DIcon%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_getPrototypeOf%3D__webpack_require__(3)%3Bvar%20_getPrototypeOf2%3D_interopRequireDefault(_getPrototypeOf)%3Bvar%20_classCallCheck2%3D__webpack_require__(0)%3Bvar%20_classCallCheck3%3D_interopRequireDefault(_classCallCheck2)%3Bvar%20_createClass2%3D__webpack_require__(1)%3Bvar%20_createClass3%3D_interopRequireDefault(_createClass2)%3Bvar%20_possibleConstructorReturn2%3D__webpack_require__(4)%3Bvar%20_possibleConstructorReturn3%3D_interopRequireDefault(_possibleConstructorReturn2)%3Bvar%20_inherits2%3D__webpack_require__(5)%3Bvar%20_inherits3%3D_interopRequireDefault(_inherits2)%3Bvar%20_CircleImageBase2%3D__webpack_require__(73)%3Bvar%20_CircleImageBase3%3D_interopRequireDefault(_CircleImageBase2)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20Image%3Dfunction(_CircleImageBase)%7B(0%2C_inherits3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(Image%2C_CircleImageBase)%3Bfunction%20Image(options%2Cbody%2ClabelModule%2CimageObj%2CimageObjAlt)%7B(0%2C_classCallCheck3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2CImage)%3Bvar%20_this%3D(0%2C_possibleConstructorReturn3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2C(Image.__proto__%7C%7C(0%2C_getPrototypeOf2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(Image)).call(this%2Coptions%2Cbody%2ClabelModule))%3B_this.setImages(imageObj%2CimageObjAlt)%3Breturn%20_this%7D(0%2C_createClass3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(Image%2C%5B%7Bkey%3A%5C%5C%5C%22resize%5C%5C%5C%22%2Cvalue%3Afunction%20resize(ctx)%7Bvar%20selected%3Darguments.length%3E1%26%26arguments%5B1%5D!%3D%3Dundefined%3Farguments%5B1%5D%3Athis.selected%3Bvar%20hover%3Darguments.length%3E2%26%26arguments%5B2%5D!%3D%3Dundefined%3Farguments%5B2%5D%3Athis.hover%3Bvar%20imageAbsent%3Dthis.imageObj.src%3D%3D%3Dundefined%7C%7Cthis.imageObj.width%3D%3D%3Dundefined%7C%7Cthis.imageObj.height%3D%3D%3Dundefined%3Bif(imageAbsent)%7Bvar%20side%3Dthis.options.size*2%3Bthis.width%3Dside%3Bthis.height%3Dside%3Breturn%7Dif(this.needsRefresh(selected%2Chover))%7Bthis._resizeImage()%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22draw%5C%5C%5C%22%2Cvalue%3Afunction%20draw(ctx%2Cx%2Cy%2Cselected%2Chover%2Cvalues)%7Bthis.switchImages(selected)%3Bthis.resize()%3Bthis.left%3Dx-this.width%2F2%3Bthis.top%3Dy-this.height%2F2%3Bif(this.options.shapeProperties.useBorderWithImage%3D%3D%3Dtrue)%7Bvar%20neutralborderWidth%3Dthis.options.borderWidth%3Bvar%20selectionLineWidth%3Dthis.options.borderWidthSelected%7C%7C2*this.options.borderWidth%3Bvar%20borderWidth%3D(selected%3FselectionLineWidth%3AneutralborderWidth)%2Fthis.body.view.scale%3Bctx.lineWidth%3DMath.min(this.width%2CborderWidth)%3Bctx.beginPath()%3Bctx.strokeStyle%3Dselected%3Fthis.options.color.highlight.border%3Ahover%3Fthis.options.color.hover.border%3Athis.options.color.border%3Bctx.fillStyle%3Dselected%3Fthis.options.color.highlight.background%3Ahover%3Fthis.options.color.hover.background%3Athis.options.color.background%3Bctx.rect(this.left-.5*ctx.lineWidth%2Cthis.top-.5*ctx.lineWidth%2Cthis.width%2Bctx.lineWidth%2Cthis.height%2Bctx.lineWidth)%3Bctx.fill()%3Bthis.performStroke(ctx%2Cvalues)%3Bctx.closePath()%7Dthis._drawImageAtPosition(ctx%2Cvalues)%3Bthis._drawImageLabel(ctx%2Cx%2Cy%2Cselected%2Chover)%3Bthis.updateBoundingBox(x%2Cy)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22updateBoundingBox%5C%5C%5C%22%2Cvalue%3Afunction%20updateBoundingBox(x%2Cy)%7Bthis.resize()%3Bthis._updateBoundingBox(x%2Cy)%3Bif(this.options.label!%3D%3Dundefined%26%26this.labelModule.size.width%3E0)%7Bthis.boundingBox.left%3DMath.min(this.boundingBox.left%2Cthis.labelModule.size.left)%3Bthis.boundingBox.right%3DMath.max(this.boundingBox.right%2Cthis.labelModule.size.left%2Bthis.labelModule.size.width)%3Bthis.boundingBox.bottom%3DMath.max(this.boundingBox.bottom%2Cthis.boundingBox.bottom%2Bthis.labelOffset)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22distanceToBorder%5C%5C%5C%22%2Cvalue%3Afunction%20distanceToBorder(ctx%2Cangle)%7Breturn%20this._distanceToBorder(ctx%2Cangle)%7D%7D%5D)%3Breturn%20Image%7D(_CircleImageBase3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)%3Bexports%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3DImage%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_getPrototypeOf%3D__webpack_require__(3)%3Bvar%20_getPrototypeOf2%3D_interopRequireDefault(_getPrototypeOf)%3Bvar%20_classCallCheck2%3D__webpack_require__(0)%3Bvar%20_classCallCheck3%3D_interopRequireDefault(_classCallCheck2)%3Bvar%20_createClass2%3D__webpack_require__(1)%3Bvar%20_createClass3%3D_interopRequireDefault(_createClass2)%3Bvar%20_possibleConstructorReturn2%3D__webpack_require__(4)%3Bvar%20_possibleConstructorReturn3%3D_interopRequireDefault(_possibleConstructorReturn2)%3Bvar%20_inherits2%3D__webpack_require__(5)%3Bvar%20_inherits3%3D_interopRequireDefault(_inherits2)%3Bvar%20_ShapeBase2%3D__webpack_require__(24)%3Bvar%20_ShapeBase3%3D_interopRequireDefault(_ShapeBase2)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20Square%3Dfunction(_ShapeBase)%7B(0%2C_inherits3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(Square%2C_ShapeBase)%3Bfunction%20Square(options%2Cbody%2ClabelModule)%7B(0%2C_classCallCheck3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2CSquare)%3Breturn(0%2C_possibleConstructorReturn3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2C(Square.__proto__%7C%7C(0%2C_getPrototypeOf2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(Square)).call(this%2Coptions%2Cbody%2ClabelModule))%7D(0%2C_createClass3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(Square%2C%5B%7Bkey%3A%5C%5C%5C%22draw%5C%5C%5C%22%2Cvalue%3Afunction%20draw(ctx%2Cx%2Cy%2Cselected%2Chover%2Cvalues)%7Bthis._drawShape(ctx%2C%5C%5C%5C%22square%5C%5C%5C%22%2C2%2Cx%2Cy%2Cselected%2Chover%2Cvalues)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22distanceToBorder%5C%5C%5C%22%2Cvalue%3Afunction%20distanceToBorder(ctx%2Cangle)%7Breturn%20this._distanceToBorder(ctx%2Cangle)%7D%7D%5D)%3Breturn%20Square%7D(_ShapeBase3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)%3Bexports%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3DSquare%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_getPrototypeOf%3D__webpack_require__(3)%3Bvar%20_getPrototypeOf2%3D_interopRequireDefault(_getPrototypeOf)%3Bvar%20_classCallCheck2%3D__webpack_require__(0)%3Bvar%20_classCallCheck3%3D_interopRequireDefault(_classCallCheck2)%3Bvar%20_createClass2%3D__webpack_require__(1)%3Bvar%20_createClass3%3D_interopRequireDefault(_createClass2)%3Bvar%20_possibleConstructorReturn2%3D__webpack_require__(4)%3Bvar%20_possibleConstructorReturn3%3D_interopRequireDefault(_possibleConstructorReturn2)%3Bvar%20_inherits2%3D__webpack_require__(5)%3Bvar%20_inherits3%3D_interopRequireDefault(_inherits2)%3Bvar%20_ShapeBase2%3D__webpack_require__(24)%3Bvar%20_ShapeBase3%3D_interopRequireDefault(_ShapeBase2)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20Hexagon%3Dfunction(_ShapeBase)%7B(0%2C_inherits3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(Hexagon%2C_ShapeBase)%3Bfunction%20Hexagon(options%2Cbody%2ClabelModule)%7B(0%2C_classCallCheck3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2CHexagon)%3Breturn(0%2C_possibleConstructorReturn3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2C(Hexagon.__proto__%7C%7C(0%2C_getPrototypeOf2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(Hexagon)).call(this%2Coptions%2Cbody%2ClabelModule))%7D(0%2C_createClass3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(Hexagon%2C%5B%7Bkey%3A%5C%5C%5C%22draw%5C%5C%5C%22%2Cvalue%3Afunction%20draw(ctx%2Cx%2Cy%2Cselected%2Chover%2Cvalues)%7Bthis._drawShape(ctx%2C%5C%5C%5C%22hexagon%5C%5C%5C%22%2C4%2Cx%2Cy%2Cselected%2Chover%2Cvalues)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22distanceToBorder%5C%5C%5C%22%2Cvalue%3Afunction%20distanceToBorder(ctx%2Cangle)%7Breturn%20this._distanceToBorder(ctx%2Cangle)%7D%7D%5D)%3Breturn%20Hexagon%7D(_ShapeBase3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)%3Bexports%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3DHexagon%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_getPrototypeOf%3D__webpack_require__(3)%3Bvar%20_getPrototypeOf2%3D_interopRequireDefault(_getPrototypeOf)%3Bvar%20_classCallCheck2%3D__webpack_require__(0)%3Bvar%20_classCallCheck3%3D_interopRequireDefault(_classCallCheck2)%3Bvar%20_createClass2%3D__webpack_require__(1)%3Bvar%20_createClass3%3D_interopRequireDefault(_createClass2)%3Bvar%20_possibleConstructorReturn2%3D__webpack_require__(4)%3Bvar%20_possibleConstructorReturn3%3D_interopRequireDefault(_possibleConstructorReturn2)%3Bvar%20_inherits2%3D__webpack_require__(5)%3Bvar%20_inherits3%3D_interopRequireDefault(_inherits2)%3Bvar%20_ShapeBase2%3D__webpack_require__(24)%3Bvar%20_ShapeBase3%3D_interopRequireDefault(_ShapeBase2)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20Star%3Dfunction(_ShapeBase)%7B(0%2C_inherits3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(Star%2C_ShapeBase)%3Bfunction%20Star(options%2Cbody%2ClabelModule)%7B(0%2C_classCallCheck3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2CStar)%3Breturn(0%2C_possibleConstructorReturn3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2C(Star.__proto__%7C%7C(0%2C_getPrototypeOf2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(Star)).call(this%2Coptions%2Cbody%2ClabelModule))%7D(0%2C_createClass3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(Star%2C%5B%7Bkey%3A%5C%5C%5C%22draw%5C%5C%5C%22%2Cvalue%3Afunction%20draw(ctx%2Cx%2Cy%2Cselected%2Chover%2Cvalues)%7Bthis._drawShape(ctx%2C%5C%5C%5C%22star%5C%5C%5C%22%2C4%2Cx%2Cy%2Cselected%2Chover%2Cvalues)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22distanceToBorder%5C%5C%5C%22%2Cvalue%3Afunction%20distanceToBorder(ctx%2Cangle)%7Breturn%20this._distanceToBorder(ctx%2Cangle)%7D%7D%5D)%3Breturn%20Star%7D(_ShapeBase3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)%3Bexports%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3DStar%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_getPrototypeOf%3D__webpack_require__(3)%3Bvar%20_getPrototypeOf2%3D_interopRequireDefault(_getPrototypeOf)%3Bvar%20_classCallCheck2%3D__webpack_require__(0)%3Bvar%20_classCallCheck3%3D_interopRequireDefault(_classCallCheck2)%3Bvar%20_createClass2%3D__webpack_require__(1)%3Bvar%20_createClass3%3D_interopRequireDefault(_createClass2)%3Bvar%20_possibleConstructorReturn2%3D__webpack_require__(4)%3Bvar%20_possibleConstructorReturn3%3D_interopRequireDefault(_possibleConstructorReturn2)%3Bvar%20_inherits2%3D__webpack_require__(5)%3Bvar%20_inherits3%3D_interopRequireDefault(_inherits2)%3Bvar%20_NodeBase2%3D__webpack_require__(23)%3Bvar%20_NodeBase3%3D_interopRequireDefault(_NodeBase2)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20Text%3Dfunction(_NodeBase)%7B(0%2C_inherits3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(Text%2C_NodeBase)%3Bfunction%20Text(options%2Cbody%2ClabelModule)%7B(0%2C_classCallCheck3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2CText)%3Bvar%20_this%3D(0%2C_possibleConstructorReturn3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2C(Text.__proto__%7C%7C(0%2C_getPrototypeOf2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(Text)).call(this%2Coptions%2Cbody%2ClabelModule))%3B_this._setMargins(labelModule)%3Breturn%20_this%7D(0%2C_createClass3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(Text%2C%5B%7Bkey%3A%5C%5C%5C%22resize%5C%5C%5C%22%2Cvalue%3Afunction%20resize(ctx%2Cselected%2Chover)%7Bif(this.needsRefresh(selected%2Chover))%7Bthis.textSize%3Dthis.labelModule.getTextSize(ctx%2Cselected%2Chover)%3Bthis.width%3Dthis.textSize.width%2Bthis.margin.right%2Bthis.margin.left%3Bthis.height%3Dthis.textSize.height%2Bthis.margin.top%2Bthis.margin.bottom%3Bthis.radius%3D.5*this.width%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22draw%5C%5C%5C%22%2Cvalue%3Afunction%20draw(ctx%2Cx%2Cy%2Cselected%2Chover%2Cvalues)%7Bthis.resize(ctx%2Cselected%2Chover)%3Bthis.left%3Dx-this.width%2F2%3Bthis.top%3Dy-this.height%2F2%3Bthis.enableShadow(ctx%2Cvalues)%3Bthis.labelModule.draw(ctx%2Cthis.left%2Bthis.textSize.width%2F2%2Bthis.margin.left%2Cthis.top%2Bthis.textSize.height%2F2%2Bthis.margin.top%2Cselected%2Chover)%3Bthis.disableShadow(ctx%2Cvalues)%3Bthis.updateBoundingBox(x%2Cy%2Cctx%2Cselected%2Chover)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22distanceToBorder%5C%5C%5C%22%2Cvalue%3Afunction%20distanceToBorder(ctx%2Cangle)%7Breturn%20this._distanceToBorder(ctx%2Cangle)%7D%7D%5D)%3Breturn%20Text%7D(_NodeBase3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)%3Bexports%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3DText%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_getPrototypeOf%3D__webpack_require__(3)%3Bvar%20_getPrototypeOf2%3D_interopRequireDefault(_getPrototypeOf)%3Bvar%20_classCallCheck2%3D__webpack_require__(0)%3Bvar%20_classCallCheck3%3D_interopRequireDefault(_classCallCheck2)%3Bvar%20_createClass2%3D__webpack_require__(1)%3Bvar%20_createClass3%3D_interopRequireDefault(_createClass2)%3Bvar%20_possibleConstructorReturn2%3D__webpack_require__(4)%3Bvar%20_possibleConstructorReturn3%3D_interopRequireDefault(_possibleConstructorReturn2)%3Bvar%20_inherits2%3D__webpack_require__(5)%3Bvar%20_inherits3%3D_interopRequireDefault(_inherits2)%3Bvar%20_ShapeBase2%3D__webpack_require__(24)%3Bvar%20_ShapeBase3%3D_interopRequireDefault(_ShapeBase2)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20Triangle%3Dfunction(_ShapeBase)%7B(0%2C_inherits3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(Triangle%2C_ShapeBase)%3Bfunction%20Triangle(options%2Cbody%2ClabelModule)%7B(0%2C_classCallCheck3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2CTriangle)%3Breturn(0%2C_possibleConstructorReturn3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2C(Triangle.__proto__%7C%7C(0%2C_getPrototypeOf2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(Triangle)).call(this%2Coptions%2Cbody%2ClabelModule))%7D(0%2C_createClass3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(Triangle%2C%5B%7Bkey%3A%5C%5C%5C%22draw%5C%5C%5C%22%2Cvalue%3Afunction%20draw(ctx%2Cx%2Cy%2Cselected%2Chover%2Cvalues)%7Bthis._drawShape(ctx%2C%5C%5C%5C%22triangle%5C%5C%5C%22%2C3%2Cx%2Cy%2Cselected%2Chover%2Cvalues)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22distanceToBorder%5C%5C%5C%22%2Cvalue%3Afunction%20distanceToBorder(ctx%2Cangle)%7Breturn%20this._distanceToBorder(ctx%2Cangle)%7D%7D%5D)%3Breturn%20Triangle%7D(_ShapeBase3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)%3Bexports%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3DTriangle%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_getPrototypeOf%3D__webpack_require__(3)%3Bvar%20_getPrototypeOf2%3D_interopRequireDefault(_getPrototypeOf)%3Bvar%20_classCallCheck2%3D__webpack_require__(0)%3Bvar%20_classCallCheck3%3D_interopRequireDefault(_classCallCheck2)%3Bvar%20_createClass2%3D__webpack_require__(1)%3Bvar%20_createClass3%3D_interopRequireDefault(_createClass2)%3Bvar%20_possibleConstructorReturn2%3D__webpack_require__(4)%3Bvar%20_possibleConstructorReturn3%3D_interopRequireDefault(_possibleConstructorReturn2)%3Bvar%20_inherits2%3D__webpack_require__(5)%3Bvar%20_inherits3%3D_interopRequireDefault(_inherits2)%3Bvar%20_ShapeBase2%3D__webpack_require__(24)%3Bvar%20_ShapeBase3%3D_interopRequireDefault(_ShapeBase2)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20TriangleDown%3Dfunction(_ShapeBase)%7B(0%2C_inherits3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(TriangleDown%2C_ShapeBase)%3Bfunction%20TriangleDown(options%2Cbody%2ClabelModule)%7B(0%2C_classCallCheck3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2CTriangleDown)%3Breturn(0%2C_possibleConstructorReturn3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2C(TriangleDown.__proto__%7C%7C(0%2C_getPrototypeOf2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(TriangleDown)).call(this%2Coptions%2Cbody%2ClabelModule))%7D(0%2C_createClass3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(TriangleDown%2C%5B%7Bkey%3A%5C%5C%5C%22draw%5C%5C%5C%22%2Cvalue%3Afunction%20draw(ctx%2Cx%2Cy%2Cselected%2Chover%2Cvalues)%7Bthis._drawShape(ctx%2C%5C%5C%5C%22triangleDown%5C%5C%5C%22%2C3%2Cx%2Cy%2Cselected%2Chover%2Cvalues)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22distanceToBorder%5C%5C%5C%22%2Cvalue%3Afunction%20distanceToBorder(ctx%2Cangle)%7Breturn%20this._distanceToBorder(ctx%2Cangle)%7D%7D%5D)%3Breturn%20TriangleDown%7D(_ShapeBase3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)%3Bexports%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3DTriangleDown%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_classCallCheck2%3D__webpack_require__(0)%3Bvar%20_classCallCheck3%3D_interopRequireDefault(_classCallCheck2)%3Bvar%20_createClass2%3D__webpack_require__(1)%3Bvar%20_createClass3%3D_interopRequireDefault(_createClass2)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20util%3D__webpack_require__(2)%3Bvar%20DataSet%3D__webpack_require__(11)%3Bvar%20DataView%3D__webpack_require__(12)%3Bvar%20Edge%3D__webpack_require__(74)%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3Bvar%20EdgesHandler%3Dfunction()%7Bfunction%20EdgesHandler(body%2Cimages%2Cgroups)%7Bvar%20_this%3Dthis%3B(0%2C_classCallCheck3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2CEdgesHandler)%3Bthis.body%3Dbody%3Bthis.images%3Dimages%3Bthis.groups%3Dgroups%3Bthis.body.functions.createEdge%3Dthis.create.bind(this)%3Bthis.edgesListeners%3D%7Badd%3Afunction%20add(event%2Cparams)%7B_this.add(params.items)%7D%2Cupdate%3Afunction%20update(event%2Cparams)%7B_this.update(params.items)%7D%2Cremove%3Afunction%20remove(event%2Cparams)%7B_this.remove(params.items)%7D%7D%3Bthis.options%3D%7B%7D%3Bthis.defaultOptions%3D%7Barrows%3A%7Bto%3A%7Benabled%3Afalse%2C%5C%5CnscaleFactor%3A1%2Ctype%3A%5C%5C%5C%22arrow%5C%5C%5C%22%7D%2Cmiddle%3A%7Benabled%3Afalse%2CscaleFactor%3A1%2Ctype%3A%5C%5C%5C%22arrow%5C%5C%5C%22%7D%2Cfrom%3A%7Benabled%3Afalse%2CscaleFactor%3A1%2Ctype%3A%5C%5C%5C%22arrow%5C%5C%5C%22%7D%7D%2CarrowStrikethrough%3Atrue%2Ccolor%3A%7Bcolor%3A%5C%5C%5C%22%23848484%5C%5C%5C%22%2Chighlight%3A%5C%5C%5C%22%23848484%5C%5C%5C%22%2Chover%3A%5C%5C%5C%22%23848484%5C%5C%5C%22%2Cinherit%3A%5C%5C%5C%22from%5C%5C%5C%22%2Copacity%3A1%7D%2Cdashes%3Afalse%2Cfont%3A%7Bcolor%3A%5C%5C%5C%22%23343434%5C%5C%5C%22%2Csize%3A14%2Cface%3A%5C%5C%5C%22arial%5C%5C%5C%22%2Cbackground%3A%5C%5C%5C%22none%5C%5C%5C%22%2CstrokeWidth%3A2%2CstrokeColor%3A%5C%5C%5C%22%23ffffff%5C%5C%5C%22%2Calign%3A%5C%5C%5C%22horizontal%5C%5C%5C%22%2Cmulti%3Afalse%2Cvadjust%3A0%2Cbold%3A%7Bmod%3A%5C%5C%5C%22bold%5C%5C%5C%22%7D%2Cboldital%3A%7Bmod%3A%5C%5C%5C%22bold%20italic%5C%5C%5C%22%7D%2Cital%3A%7Bmod%3A%5C%5C%5C%22italic%5C%5C%5C%22%7D%2Cmono%3A%7Bmod%3A%5C%5C%5C%22%5C%5C%5C%22%2Csize%3A15%2Cface%3A%5C%5C%5C%22courier%20new%5C%5C%5C%22%2Cvadjust%3A2%7D%7D%2Chidden%3Afalse%2ChoverWidth%3A1.5%2Clabel%3Aundefined%2ClabelHighlightBold%3Atrue%2Clength%3Aundefined%2Cphysics%3Atrue%2Cscaling%3A%7Bmin%3A1%2Cmax%3A15%2Clabel%3A%7Benabled%3Atrue%2Cmin%3A14%2Cmax%3A30%2CmaxVisible%3A30%2CdrawThreshold%3A5%7D%2CcustomScalingFunction%3Afunction%20customScalingFunction(min%2Cmax%2Ctotal%2Cvalue)%7Bif(max%3D%3D%3Dmin)%7Breturn.5%7Delse%7Bvar%20scale%3D1%2F(max-min)%3Breturn%20Math.max(0%2C(value-min)*scale)%7D%7D%7D%2CselectionWidth%3A1.5%2CselfReferenceSize%3A20%2Cshadow%3A%7Benabled%3Afalse%2Ccolor%3A%5C%5C%5C%22rgba(0%2C0%2C0%2C0.5)%5C%5C%5C%22%2Csize%3A10%2Cx%3A5%2Cy%3A5%7D%2Csmooth%3A%7Benabled%3Atrue%2Ctype%3A%5C%5C%5C%22dynamic%5C%5C%5C%22%2CforceDirection%3A%5C%5C%5C%22none%5C%5C%5C%22%2Croundness%3A.5%7D%2Ctitle%3Aundefined%2Cwidth%3A1%2Cvalue%3Aundefined%7D%3Butil.deepExtend(this.options%2Cthis.defaultOptions)%3Bthis.bindEventListeners()%7D(0%2C_createClass3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(EdgesHandler%2C%5B%7Bkey%3A%5C%5C%5C%22bindEventListeners%5C%5C%5C%22%2Cvalue%3Afunction%20bindEventListeners()%7Bvar%20_this2%3Dthis%3Bthis.body.emitter.on(%5C%5C%5C%22_forceDisableDynamicCurves%5C%5C%5C%22%2Cfunction(type)%7Bvar%20emit%3Darguments.length%3E1%26%26arguments%5B1%5D!%3D%3Dundefined%3Farguments%5B1%5D%3Atrue%3Bif(type%3D%3D%3D%5C%5C%5C%22dynamic%5C%5C%5C%22)%7Btype%3D%5C%5C%5C%22continuous%5C%5C%5C%22%7Dvar%20dataChanged%3Dfalse%3Bfor(var%20edgeId%20in%20_this2.body.edges)%7Bif(_this2.body.edges.hasOwnProperty(edgeId))%7Bvar%20edge%3D_this2.body.edges%5BedgeId%5D%3Bvar%20edgeData%3D_this2.body.data.edges._data%5BedgeId%5D%3Bif(edgeData!%3D%3Dundefined)%7Bvar%20smoothOptions%3DedgeData.smooth%3Bif(smoothOptions!%3D%3Dundefined)%7Bif(smoothOptions.enabled%3D%3D%3Dtrue%26%26smoothOptions.type%3D%3D%3D%5C%5C%5C%22dynamic%5C%5C%5C%22)%7Bif(type%3D%3D%3Dundefined)%7Bedge.setOptions(%7Bsmooth%3Afalse%7D)%7Delse%7Bedge.setOptions(%7Bsmooth%3A%7Btype%3Atype%7D%7D)%7DdataChanged%3Dtrue%7D%7D%7D%7D%7Dif(emit%3D%3D%3Dtrue%26%26dataChanged%3D%3D%3Dtrue)%7B_this2.body.emitter.emit(%5C%5C%5C%22_dataChanged%5C%5C%5C%22)%7D%7D)%3Bthis.body.emitter.on(%5C%5C%5C%22_dataUpdated%5C%5C%5C%22%2Cfunction()%7B_this2.reconnectEdges()%7D)%3Bthis.body.emitter.on(%5C%5C%5C%22refreshEdges%5C%5C%5C%22%2Cthis.refresh.bind(this))%3Bthis.body.emitter.on(%5C%5C%5C%22refresh%5C%5C%5C%22%2Cthis.refresh.bind(this))%3Bthis.body.emitter.on(%5C%5C%5C%22destroy%5C%5C%5C%22%2Cfunction()%7Butil.forEach(_this2.edgesListeners%2Cfunction(callback%2Cevent)%7Bif(_this2.body.data.edges)_this2.body.data.edges.off(event%2Ccallback)%7D)%3Bdelete%20_this2.body.functions.createEdge%3Bdelete%20_this2.edgesListeners.add%3Bdelete%20_this2.edgesListeners.update%3Bdelete%20_this2.edgesListeners.remove%3Bdelete%20_this2.edgesListeners%7D)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22setOptions%5C%5C%5C%22%2Cvalue%3Afunction%20setOptions(options)%7Bif(options!%3D%3Dundefined)%7BEdge.parseOptions(this.options%2Coptions%2Ctrue%2Cthis.defaultOptions%2Ctrue)%3Bvar%20dataChanged%3Dfalse%3Bif(options.smooth!%3D%3Dundefined)%7Bfor(var%20edgeId%20in%20this.body.edges)%7Bif(this.body.edges.hasOwnProperty(edgeId))%7BdataChanged%3Dthis.body.edges%5BedgeId%5D.updateEdgeType()%7C%7CdataChanged%7D%7D%7Dif(options.font!%3D%3Dundefined)%7Bfor(var%20_edgeId%20in%20this.body.edges)%7Bif(this.body.edges.hasOwnProperty(_edgeId))%7Bthis.body.edges%5B_edgeId%5D.updateLabelModule()%7D%7D%7Dif(options.hidden!%3D%3Dundefined%7C%7Coptions.physics!%3D%3Dundefined%7C%7CdataChanged%3D%3D%3Dtrue)%7Bthis.body.emitter.emit(%5C%5C%5C%22_dataChanged%5C%5C%5C%22)%7D%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22setData%5C%5C%5C%22%2Cvalue%3Afunction%20setData(edges)%7Bvar%20_this3%3Dthis%3Bvar%20doNotEmit%3Darguments.length%3E1%26%26arguments%5B1%5D!%3D%3Dundefined%3Farguments%5B1%5D%3Afalse%3Bvar%20oldEdgesData%3Dthis.body.data.edges%3Bif(edges%20instanceof%20DataSet%7C%7Cedges%20instanceof%20DataView)%7Bthis.body.data.edges%3Dedges%7Delse%20if(Array.isArray(edges))%7Bthis.body.data.edges%3Dnew%20DataSet%3Bthis.body.data.edges.add(edges)%7Delse%20if(!edges)%7Bthis.body.data.edges%3Dnew%20DataSet%7Delse%7Bthrow%20new%20TypeError(%5C%5C%5C%22Array%20or%20DataSet%20expected%5C%5C%5C%22)%7Dif(oldEdgesData)%7Butil.forEach(this.edgesListeners%2Cfunction(callback%2Cevent)%7BoldEdgesData.off(event%2Ccallback)%7D)%7Dthis.body.edges%3D%7B%7D%3Bif(this.body.data.edges)%7Butil.forEach(this.edgesListeners%2Cfunction(callback%2Cevent)%7B_this3.body.data.edges.on(event%2Ccallback)%7D)%3Bvar%20ids%3Dthis.body.data.edges.getIds()%3Bthis.add(ids%2Ctrue)%7Dthis.body.emitter.emit(%5C%5C%5C%22_adjustEdgesForHierarchicalLayout%5C%5C%5C%22)%3Bif(doNotEmit%3D%3D%3Dfalse)%7Bthis.body.emitter.emit(%5C%5C%5C%22_dataChanged%5C%5C%5C%22)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22add%5C%5C%5C%22%2Cvalue%3Afunction%20add(ids)%7Bvar%20doNotEmit%3Darguments.length%3E1%26%26arguments%5B1%5D!%3D%3Dundefined%3Farguments%5B1%5D%3Afalse%3Bvar%20edges%3Dthis.body.edges%3Bvar%20edgesData%3Dthis.body.data.edges%3Bfor(var%20i%3D0%3Bi%3Cids.length%3Bi%2B%2B)%7Bvar%20id%3Dids%5Bi%5D%3Bvar%20oldEdge%3Dedges%5Bid%5D%3Bif(oldEdge)%7BoldEdge.disconnect()%7Dvar%20data%3DedgesData.get(id%2C%7BshowInternalIds%3Atrue%7D)%3Bedges%5Bid%5D%3Dthis.create(data)%7Dthis.body.emitter.emit(%5C%5C%5C%22_adjustEdgesForHierarchicalLayout%5C%5C%5C%22)%3Bif(doNotEmit%3D%3D%3Dfalse)%7Bthis.body.emitter.emit(%5C%5C%5C%22_dataChanged%5C%5C%5C%22)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22update%5C%5C%5C%22%2Cvalue%3Afunction%20update(ids)%7Bvar%20edges%3Dthis.body.edges%3Bvar%20edgesData%3Dthis.body.data.edges%3Bvar%20dataChanged%3Dfalse%3Bfor(var%20i%3D0%3Bi%3Cids.length%3Bi%2B%2B)%7Bvar%20id%3Dids%5Bi%5D%3Bvar%20data%3DedgesData.get(id)%3Bvar%20edge%3Dedges%5Bid%5D%3Bif(edge!%3D%3Dundefined)%7Bedge.disconnect()%3BdataChanged%3Dedge.setOptions(data)%7C%7CdataChanged%3Bedge.connect()%7Delse%7Bthis.body.edges%5Bid%5D%3Dthis.create(data)%3BdataChanged%3Dtrue%7D%7Dif(dataChanged%3D%3D%3Dtrue)%7Bthis.body.emitter.emit(%5C%5C%5C%22_adjustEdgesForHierarchicalLayout%5C%5C%5C%22)%3Bthis.body.emitter.emit(%5C%5C%5C%22_dataChanged%5C%5C%5C%22)%7Delse%7Bthis.body.emitter.emit(%5C%5C%5C%22_dataUpdated%5C%5C%5C%22)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22remove%5C%5C%5C%22%2Cvalue%3Afunction%20remove(ids)%7Bvar%20emit%3Darguments.length%3E1%26%26arguments%5B1%5D!%3D%3Dundefined%3Farguments%5B1%5D%3Atrue%3Bif(ids.length%3D%3D%3D0)return%3Bvar%20edges%3Dthis.body.edges%3Butil.forEach(ids%2Cfunction(id)%7Bvar%20edge%3Dedges%5Bid%5D%3Bif(edge!%3D%3Dundefined)%7Bedge.remove()%7D%7D)%3Bif(emit)%7Bthis.body.emitter.emit(%5C%5C%5C%22_dataChanged%5C%5C%5C%22)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22refresh%5C%5C%5C%22%2Cvalue%3Afunction%20refresh()%7Bvar%20_this4%3Dthis%3Butil.forEach(this.body.edges%2Cfunction(edge%2CedgeId)%7Bvar%20data%3D_this4.body.data.edges._data%5BedgeId%5D%3Bif(data!%3D%3Dundefined)%7Bedge.setOptions(data)%7D%7D)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22create%5C%5C%5C%22%2Cvalue%3Afunction%20create(properties)%7Breturn%20new%20Edge(properties%2Cthis.body%2Cthis.options%2Cthis.defaultOptions)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22reconnectEdges%5C%5C%5C%22%2Cvalue%3Afunction%20reconnectEdges()%7Bvar%20id%3Bvar%20nodes%3Dthis.body.nodes%3Bvar%20edges%3Dthis.body.edges%3Bfor(id%20in%20nodes)%7Bif(nodes.hasOwnProperty(id))%7Bnodes%5Bid%5D.edges%3D%5B%5D%7D%7Dfor(id%20in%20edges)%7Bif(edges.hasOwnProperty(id))%7Bvar%20edge%3Dedges%5Bid%5D%3Bedge.from%3Dnull%3Bedge.to%3Dnull%3Bedge.connect()%7D%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getConnectedNodes%5C%5C%5C%22%2Cvalue%3Afunction%20getConnectedNodes(edgeId)%7Bvar%20nodeList%3D%5B%5D%3Bif(this.body.edges%5BedgeId%5D!%3D%3Dundefined)%7Bvar%20edge%3Dthis.body.edges%5BedgeId%5D%3Bif(edge.fromId!%3D%3Dundefined)%7BnodeList.push(edge.fromId)%7Dif(edge.toId!%3D%3Dundefined)%7BnodeList.push(edge.toId)%7D%7Dreturn%20nodeList%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_updateState%5C%5C%5C%22%2Cvalue%3Afunction%20_updateState()%7Bthis._addMissingEdges()%3Bthis._removeInvalidEdges()%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_removeInvalidEdges%5C%5C%5C%22%2Cvalue%3Afunction%20_removeInvalidEdges()%7Bvar%20_this5%3Dthis%3Bvar%20edgesToDelete%3D%5B%5D%3Butil.forEach(this.body.edges%2Cfunction(edge%2Cid)%7Bvar%20toNode%3D_this5.body.nodes%5Bedge.toId%5D%3Bvar%20fromNode%3D_this5.body.nodes%5Bedge.fromId%5D%3Bif(toNode!%3D%3Dundefined%26%26toNode.isCluster%3D%3D%3Dtrue%7C%7CfromNode!%3D%3Dundefined%26%26fromNode.isCluster%3D%3D%3Dtrue)%7Breturn%7Dif(toNode%3D%3D%3Dundefined%7C%7CfromNode%3D%3D%3Dundefined)%7BedgesToDelete.push(id)%7D%7D)%3Bthis.remove(edgesToDelete%2Cfalse)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_addMissingEdges%5C%5C%5C%22%2Cvalue%3Afunction%20_addMissingEdges()%7Bvar%20edges%3Dthis.body.edges%3Bvar%20edgesData%3Dthis.body.data.edges%3Bvar%20addIds%3D%5B%5D%3BedgesData.forEach(function(edgeData%2CedgeId)%7Bvar%20edge%3Dedges%5BedgeId%5D%3Bif(edge%3D%3D%3Dundefined)%7BaddIds.push(edgeId)%7D%7D)%3Bthis.add(addIds%2Ctrue)%7D%7D%5D)%3Breturn%20EdgesHandler%7D()%3Bexports%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3DEdgesHandler%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_slicedToArray2%3D__webpack_require__(30)%3Bvar%20_slicedToArray3%3D_interopRequireDefault(_slicedToArray2)%3Bvar%20_getPrototypeOf%3D__webpack_require__(3)%3Bvar%20_getPrototypeOf2%3D_interopRequireDefault(_getPrototypeOf)%3Bvar%20_classCallCheck2%3D__webpack_require__(0)%3Bvar%20_classCallCheck3%3D_interopRequireDefault(_classCallCheck2)%3Bvar%20_createClass2%3D__webpack_require__(1)%3Bvar%20_createClass3%3D_interopRequireDefault(_createClass2)%3Bvar%20_possibleConstructorReturn2%3D__webpack_require__(4)%3Bvar%20_possibleConstructorReturn3%3D_interopRequireDefault(_possibleConstructorReturn2)%3Bvar%20_inherits2%3D__webpack_require__(5)%3Bvar%20_inherits3%3D_interopRequireDefault(_inherits2)%3Bvar%20_CubicBezierEdgeBase2%3D__webpack_require__(216)%3Bvar%20_CubicBezierEdgeBase3%3D_interopRequireDefault(_CubicBezierEdgeBase2)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20CubicBezierEdge%3Dfunction(_CubicBezierEdgeBase)%7B(0%2C_inherits3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(CubicBezierEdge%2C_CubicBezierEdgeBase)%3Bfunction%20CubicBezierEdge(options%2Cbody%2ClabelModule)%7B(0%2C_classCallCheck3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2CCubicBezierEdge)%3Breturn(0%2C_possibleConstructorReturn3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2C(CubicBezierEdge.__proto__%7C%7C(0%2C_getPrototypeOf2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(CubicBezierEdge)).call(this%2Coptions%2Cbody%2ClabelModule))%7D(0%2C_createClass3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(CubicBezierEdge%2C%5B%7Bkey%3A%5C%5C%5C%22_line%5C%5C%5C%22%2Cvalue%3Afunction%20_line(ctx%2Cvalues%2CviaNodes)%7Bvar%20via1%3DviaNodes%5B0%5D%3Bvar%20via2%3DviaNodes%5B1%5D%3Bthis._bezierCurve(ctx%2Cvalues%2Cvia1%2Cvia2)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_getViaCoordinates%5C%5C%5C%22%2Cvalue%3Afunction%20_getViaCoordinates()%7Bvar%20dx%3Dthis.from.x-this.to.x%3Bvar%20dy%3Dthis.from.y-this.to.y%3Bvar%20x1%3Dvoid%200%2Cy1%3Dvoid%200%2Cx2%3Dvoid%200%2Cy2%3Dvoid%200%3Bvar%20roundness%3Dthis.options.smooth.roundness%3Bif((Math.abs(dx)%3EMath.abs(dy)%7C%7Cthis.options.smooth.forceDirection%3D%3D%3Dtrue%7C%7Cthis.options.smooth.forceDirection%3D%3D%3D%5C%5C%5C%22horizontal%5C%5C%5C%22)%26%26this.options.smooth.forceDirection!%3D%3D%5C%5C%5C%22vertical%5C%5C%5C%22)%7By1%3Dthis.from.y%3By2%3Dthis.to.y%3Bx1%3Dthis.from.x-roundness*dx%3Bx2%3Dthis.to.x%2Broundness*dx%7Delse%7By1%3Dthis.from.y-roundness*dy%3By2%3Dthis.to.y%2Broundness*dy%3Bx1%3Dthis.from.x%3Bx2%3Dthis.to.x%7Dreturn%5B%7Bx%3Ax1%2Cy%3Ay1%7D%2C%7Bx%3Ax2%2Cy%3Ay2%7D%5D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getViaNode%5C%5C%5C%22%2Cvalue%3Afunction%20getViaNode()%7Breturn%20this._getViaCoordinates()%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_findBorderPosition%5C%5C%5C%22%2Cvalue%3Afunction%20_findBorderPosition(nearNode%2Cctx)%7Breturn%20this._findBorderPositionBezier(nearNode%2Cctx)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_getDistanceToEdge%5C%5C%5C%22%2Cvalue%3Afunction%20_getDistanceToEdge(x1%2Cy1%2Cx2%2Cy2%2Cx3%2Cy3)%7Bvar%20_ref%3Darguments.length%3E6%26%26arguments%5B6%5D!%3D%3Dundefined%3Farguments%5B6%5D%3Athis._getViaCoordinates()%2C_ref2%3D(0%2C_slicedToArray3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(_ref%2C2)%2Cvia1%3D_ref2%5B0%5D%2Cvia2%3D_ref2%5B1%5D%3Breturn%20this._getDistanceToBezierEdge(x1%2Cy1%2Cx2%2Cy2%2Cx3%2Cy3%2Cvia1%2Cvia2)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getPoint%5C%5C%5C%22%2Cvalue%3Afunction%20getPoint(percentage)%7Bvar%20_ref3%3Darguments.length%3E1%26%26arguments%5B1%5D!%3D%3Dundefined%3Farguments%5B1%5D%3Athis._getViaCoordinates()%2C_ref4%3D(0%2C_slicedToArray3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(_ref3%2C2)%2Cvia1%3D_ref4%5B0%5D%2Cvia2%3D_ref4%5B1%5D%3Bvar%20t%3Dpercentage%3Bvar%20vec%3D%5B%5D%3Bvec%5B0%5D%3DMath.pow(1-t%2C3)%3Bvec%5B1%5D%3D3*t*Math.pow(1-t%2C2)%3Bvec%5B2%5D%3D3*Math.pow(t%2C2)*(1-t)%3Bvec%5B3%5D%3DMath.pow(t%2C3)%3Bvar%20x%3Dvec%5B0%5D*this.fromPoint.x%2Bvec%5B1%5D*via1.x%2Bvec%5B2%5D*via2.x%2Bvec%5B3%5D*this.toPoint.x%3Bvar%20y%3Dvec%5B0%5D*this.fromPoint.y%2Bvec%5B1%5D*via1.y%2Bvec%5B2%5D*via2.y%2Bvec%5B3%5D*this.toPoint.y%3Breturn%7Bx%3Ax%2Cy%3Ay%7D%7D%7D%5D)%3Breturn%20CubicBezierEdge%7D(_CubicBezierEdgeBase3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)%3Bexports%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3DCubicBezierEdge%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_getPrototypeOf%3D__webpack_require__(3)%3Bvar%20_getPrototypeOf2%3D_interopRequireDefault(_getPrototypeOf)%3Bvar%20_classCallCheck2%3D__webpack_require__(0)%3Bvar%20_classCallCheck3%3D_interopRequireDefault(_classCallCheck2)%3Bvar%20_createClass2%3D__webpack_require__(1)%3Bvar%20_createClass3%3D_interopRequireDefault(_createClass2)%3Bvar%20_possibleConstructorReturn2%3D__webpack_require__(4)%3Bvar%20_possibleConstructorReturn3%3D_interopRequireDefault(_possibleConstructorReturn2)%3Bvar%20_inherits2%3D__webpack_require__(5)%3Bvar%20_inherits3%3D_interopRequireDefault(_inherits2)%3Bvar%20_BezierEdgeBase2%3D__webpack_require__(75)%3Bvar%20_BezierEdgeBase3%3D_interopRequireDefault(_BezierEdgeBase2)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20CubicBezierEdgeBase%3Dfunction(_BezierEdgeBase)%7B(0%2C_inherits3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(CubicBezierEdgeBase%2C_BezierEdgeBase)%3Bfunction%20CubicBezierEdgeBase(options%2Cbody%2ClabelModule)%7B(0%2C_classCallCheck3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2CCubicBezierEdgeBase)%3Breturn(0%2C_possibleConstructorReturn3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2C(CubicBezierEdgeBase.__proto__%7C%7C(0%2C_getPrototypeOf2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(CubicBezierEdgeBase)).call(this%2Coptions%2Cbody%2ClabelModule))%7D(0%2C_createClass3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(CubicBezierEdgeBase%2C%5B%7Bkey%3A%5C%5C%5C%22_getDistanceToBezierEdge%5C%5C%5C%22%2Cvalue%3Afunction%20_getDistanceToBezierEdge(x1%2Cy1%2Cx2%2Cy2%2Cx3%2Cy3%2Cvia1%2Cvia2)%7Bvar%20minDistance%3D1e9%3Bvar%20distance%3Dvoid%200%3Bvar%20i%3Dvoid%200%2Ct%3Dvoid%200%2Cx%3Dvoid%200%2Cy%3Dvoid%200%3Bvar%20lastX%3Dx1%3Bvar%20lastY%3Dy1%3Bvar%20vec%3D%5B0%2C0%2C0%2C0%5D%3Bfor(i%3D1%3Bi%3C10%3Bi%2B%2B)%7Bt%3D.1*i%3Bvec%5B0%5D%3DMath.pow(1-t%2C3)%3Bvec%5B1%5D%3D3*t*Math.pow(1-t%2C2)%3Bvec%5B2%5D%3D3*Math.pow(t%2C2)*(1-t)%3Bvec%5B3%5D%3DMath.pow(t%2C3)%3Bx%3Dvec%5B0%5D*x1%2Bvec%5B1%5D*via1.x%2Bvec%5B2%5D*via2.x%2Bvec%5B3%5D*x2%3By%3Dvec%5B0%5D*y1%2Bvec%5B1%5D*via1.y%2Bvec%5B2%5D*via2.y%2Bvec%5B3%5D*y2%3Bif(i%3E0)%7Bdistance%3Dthis._getDistanceToLine(lastX%2ClastY%2Cx%2Cy%2Cx3%2Cy3)%3BminDistance%3Ddistance%3CminDistance%3Fdistance%3AminDistance%7DlastX%3Dx%3BlastY%3Dy%7Dreturn%20minDistance%7D%7D%5D)%3Breturn%20CubicBezierEdgeBase%7D(_BezierEdgeBase3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)%3Bexports%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3DCubicBezierEdgeBase%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_slicedToArray2%3D__webpack_require__(30)%3Bvar%20_slicedToArray3%3D_interopRequireDefault(_slicedToArray2)%3Bvar%20_getPrototypeOf%3D__webpack_require__(3)%3Bvar%20_getPrototypeOf2%3D_interopRequireDefault(_getPrototypeOf)%3Bvar%20_classCallCheck2%3D__webpack_require__(0)%3Bvar%20_classCallCheck3%3D_interopRequireDefault(_classCallCheck2)%3Bvar%20_createClass2%3D__webpack_require__(1)%3Bvar%20_createClass3%3D_interopRequireDefault(_createClass2)%3Bvar%20_possibleConstructorReturn2%3D__webpack_require__(4)%3Bvar%20_possibleConstructorReturn3%3D_interopRequireDefault(_possibleConstructorReturn2)%3Bvar%20_inherits2%3D__webpack_require__(5)%3Bvar%20_inherits3%3D_interopRequireDefault(_inherits2)%3Bvar%20_BezierEdgeBase2%3D__webpack_require__(75)%3Bvar%20_BezierEdgeBase3%3D_interopRequireDefault(_BezierEdgeBase2)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20BezierEdgeDynamic%3Dfunction(_BezierEdgeBase)%7B(0%2C_inherits3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(BezierEdgeDynamic%2C_BezierEdgeBase)%3Bfunction%20BezierEdgeDynamic(options%2Cbody%2ClabelModule)%7B(0%2C_classCallCheck3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2CBezierEdgeDynamic)%3Bvar%20_this%3D(0%2C_possibleConstructorReturn3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2C(BezierEdgeDynamic.__proto__%7C%7C(0%2C_getPrototypeOf2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(BezierEdgeDynamic)).call(this%2Coptions%2Cbody%2ClabelModule))%3B_this._boundFunction%3Dfunction()%7B_this.positionBezierNode()%7D%3B_this.body.emitter.on(%5C%5C%5C%22_repositionBezierNodes%5C%5C%5C%22%2C_this._boundFunction)%3Breturn%20_this%7D(0%2C_createClass3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(BezierEdgeDynamic%2C%5B%7Bkey%3A%5C%5C%5C%22setOptions%5C%5C%5C%22%2Cvalue%3Afunction%20setOptions(options)%7Bvar%20physicsChange%3Dfalse%3Bif(this.options.physics!%3D%3Doptions.physics)%7BphysicsChange%3Dtrue%7Dthis.options%3Doptions%3Bthis.id%3Dthis.options.id%3Bthis.from%3Dthis.body.nodes%5Bthis.options.from%5D%3Bthis.to%3Dthis.body.nodes%5Bthis.options.to%5D%3Bthis.setupSupportNode()%3Bthis.connect()%3Bif(physicsChange%3D%3D%3Dtrue)%7Bthis.via.setOptions(%7Bphysics%3Athis.options.physics%7D)%3Bthis.positionBezierNode()%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22connect%5C%5C%5C%22%2Cvalue%3Afunction%20connect()%7Bthis.from%3Dthis.body.nodes%5Bthis.options.from%5D%3Bthis.to%3Dthis.body.nodes%5Bthis.options.to%5D%3Bif(this.from%3D%3D%3Dundefined%7C%7Cthis.to%3D%3D%3Dundefined%7C%7Cthis.options.physics%3D%3D%3Dfalse)%7Bthis.via.setOptions(%7Bphysics%3Afalse%7D)%7Delse%7Bif(this.from.id%3D%3D%3Dthis.to.id)%7Bthis.via.setOptions(%7Bphysics%3Afalse%7D)%7Delse%7Bthis.via.setOptions(%7Bphysics%3Atrue%7D)%7D%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22cleanup%5C%5C%5C%22%2Cvalue%3Afunction%20cleanup()%7Bthis.body.emitter.off(%5C%5C%5C%22_repositionBezierNodes%5C%5C%5C%22%2Cthis._boundFunction)%3Bif(this.via!%3D%3Dundefined)%7Bdelete%20this.body.nodes%5Bthis.via.id%5D%3Bthis.via%3Dundefined%3Breturn%20true%7Dreturn%20false%7D%7D%2C%7Bkey%3A%5C%5C%5C%22setupSupportNode%5C%5C%5C%22%2Cvalue%3Afunction%20setupSupportNode()%7Bif(this.via%3D%3D%3Dundefined)%7Bvar%20nodeId%3D%5C%5C%5C%22edgeId%3A%5C%5C%5C%22%2Bthis.id%3Bvar%20node%3Dthis.body.functions.createNode(%7Bid%3AnodeId%2Cshape%3A%5C%5C%5C%22circle%5C%5C%5C%22%2Cphysics%3Atrue%2Chidden%3Atrue%7D)%3Bthis.body.nodes%5BnodeId%5D%3Dnode%3Bthis.via%3Dnode%3Bthis.via.parentEdgeId%3Dthis.id%3Bthis.positionBezierNode()%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22positionBezierNode%5C%5C%5C%22%2Cvalue%3Afunction%20positionBezierNode()%7Bif(this.via!%3D%3Dundefined%26%26this.from!%3D%3Dundefined%26%26this.to!%3D%3Dundefined)%7Bthis.via.x%3D.5*(this.from.x%2Bthis.to.x)%3Bthis.via.y%3D.5*(this.from.y%2Bthis.to.y)%7Delse%20if(this.via!%3D%3Dundefined)%7Bthis.via.x%3D0%3Bthis.via.y%3D0%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_line%5C%5C%5C%22%2Cvalue%3Afunction%20_line(ctx%2Cvalues%2CviaNode)%7Bthis._bezierCurve(ctx%2Cvalues%2CviaNode)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getViaNode%5C%5C%5C%22%2Cvalue%3Afunction%20getViaNode()%7Breturn%20this.via%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getPoint%5C%5C%5C%22%2Cvalue%3Afunction%20getPoint(percentage)%7Bvar%20viaNode%3Darguments.length%3E1%26%26arguments%5B1%5D!%3D%3Dundefined%3Farguments%5B1%5D%3Athis.via%3Bvar%20t%3Dpercentage%3Bvar%20x%3Dvoid%200%2Cy%3Dvoid%200%3Bif(this.from%3D%3D%3Dthis.to)%7Bvar%20_getCircleData%3Dthis._getCircleData(this.from)%2C_getCircleData2%3D(0%2C_slicedToArray3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(_getCircleData%2C3)%2Ccx%3D_getCircleData2%5B0%5D%2Ccy%3D_getCircleData2%5B1%5D%2Ccr%3D_getCircleData2%5B2%5D%3Bvar%20a%3D2*Math.PI*(1-t)%3Bx%3Dcx%2Bcr*Math.sin(a)%3By%3Dcy%2Bcr-cr*(1-Math.cos(a))%7Delse%7Bx%3DMath.pow(1-t%2C2)*this.fromPoint.x%2B2*t*(1-t)*viaNode.x%2BMath.pow(t%2C2)*this.toPoint.x%3By%3DMath.pow(1-t%2C2)*this.fromPoint.y%2B2*t*(1-t)*viaNode.y%2BMath.pow(t%2C2)*this.toPoint.y%7Dreturn%7Bx%3Ax%2Cy%3Ay%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_findBorderPosition%5C%5C%5C%22%2Cvalue%3Afunction%20_findBorderPosition(nearNode%2Cctx)%7Breturn%20this._findBorderPositionBezier(nearNode%2Cctx%2Cthis.via)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_getDistanceToEdge%5C%5C%5C%22%2Cvalue%3Afunction%20_getDistanceToEdge(x1%2Cy1%2Cx2%2Cy2%2Cx3%2Cy3)%7Breturn%20this._getDistanceToBezierEdge(x1%2Cy1%2Cx2%2Cy2%2Cx3%2Cy3%2Cthis.via)%7D%7D%5D)%3Breturn%20BezierEdgeDynamic%7D(_BezierEdgeBase3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)%3Bexports%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3DBezierEdgeDynamic%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_getPrototypeOf%3D__webpack_require__(3)%3Bvar%20_getPrototypeOf2%3D_interopRequireDefault(_getPrototypeOf)%3Bvar%20_classCallCheck2%3D__webpack_require__(0)%3Bvar%20_classCallCheck3%3D_interopRequireDefault(_classCallCheck2)%3Bvar%20_createClass2%3D__webpack_require__(1)%3Bvar%20_createClass3%3D_interopRequireDefault(_createClass2)%3Bvar%20_possibleConstructorReturn2%3D__webpack_require__(4)%3Bvar%20_possibleConstructorReturn3%3D_interopRequireDefault(_possibleConstructorReturn2)%3Bvar%20_inherits2%3D__webpack_require__(5)%3Bvar%20_inherits3%3D_interopRequireDefault(_inherits2)%3Bvar%20_BezierEdgeBase2%3D__webpack_require__(75)%3Bvar%20_BezierEdgeBase3%3D_interopRequireDefault(_BezierEdgeBase2)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20BezierEdgeStatic%3Dfunction(_BezierEdgeBase)%7B(0%2C_inherits3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(BezierEdgeStatic%2C_BezierEdgeBase)%3Bfunction%20BezierEdgeStatic(options%2Cbody%2ClabelModule)%7B(0%2C_classCallCheck3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2CBezierEdgeStatic)%3Breturn(0%2C_possibleConstructorReturn3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2C(BezierEdgeStatic.__proto__%7C%7C(0%2C_getPrototypeOf2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(BezierEdgeStatic)).call(this%2Coptions%2Cbody%2ClabelModule))%7D(0%2C_createClass3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(BezierEdgeStatic%2C%5B%7Bkey%3A%5C%5C%5C%22_line%5C%5C%5C%22%2Cvalue%3Afunction%20_line(ctx%2Cvalues%2CviaNode)%7Bthis._bezierCurve(ctx%2Cvalues%2CviaNode)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getViaNode%5C%5C%5C%22%2Cvalue%3Afunction%20getViaNode()%7Breturn%20this._getViaCoordinates()%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_getViaCoordinates%5C%5C%5C%22%2Cvalue%3Afunction%20_getViaCoordinates()%7Bvar%20xVia%3Dundefined%3Bvar%20yVia%3Dundefined%3Bvar%20factor%3Dthis.options.smooth.roundness%3Bvar%20type%3Dthis.options.smooth.type%3Bvar%20dx%3DMath.abs(this.from.x-this.to.x)%3Bvar%20dy%3DMath.abs(this.from.y-this.to.y)%3Bif(type%3D%3D%3D%5C%5C%5C%22discrete%5C%5C%5C%22%7C%7Ctype%3D%3D%3D%5C%5C%5C%22diagonalCross%5C%5C%5C%22)%7Bvar%20stepX%3Dvoid%200%3Bvar%20stepY%3Dvoid%200%3Bif(dx%3C%3Ddy)%7BstepX%3DstepY%3Dfactor*dy%7Delse%7BstepX%3DstepY%3Dfactor*dx%7Dif(this.from.x%3Ethis.to.x)stepX%3D-stepX%3Bif(this.from.y%3E%3Dthis.to.y)stepY%3D-stepY%3BxVia%3Dthis.from.x%2BstepX%3ByVia%3Dthis.from.y%2BstepY%3Bif(type%3D%3D%3D%5C%5C%5C%22discrete%5C%5C%5C%22)%7Bif(dx%3C%3Ddy)%7BxVia%3Ddx%3Cfactor*dy%3Fthis.from.x%3AxVia%7Delse%7ByVia%3Ddy%3Cfactor*dx%3Fthis.from.y%3AyVia%7D%7D%7Delse%20if(type%3D%3D%3D%5C%5C%5C%22straightCross%5C%5C%5C%22)%7Bvar%20_stepX%3D(1-factor)*dx%3Bvar%20_stepY%3D(1-factor)*dy%3Bif(dx%3C%3Ddy)%7B_stepX%3D0%3Bif(this.from.y%3Cthis.to.y)_stepY%3D-_stepY%7Delse%7Bif(this.from.x%3Cthis.to.x)_stepX%3D-_stepX%3B_stepY%3D0%7DxVia%3Dthis.to.x%2B_stepX%3ByVia%3Dthis.to.y%2B_stepY%7Delse%20if(type%3D%3D%3D%5C%5C%5C%22horizontal%5C%5C%5C%22)%7Bvar%20_stepX2%3D(1-factor)*dx%3Bif(this.from.x%3Cthis.to.x)_stepX2%3D-_stepX2%3BxVia%3Dthis.to.x%2B_stepX2%3ByVia%3Dthis.from.y%7Delse%20if(type%3D%3D%3D%5C%5C%5C%22vertical%5C%5C%5C%22)%7Bvar%20_stepY2%3D(1-factor)*dy%3Bif(this.from.y%3Cthis.to.y)_stepY2%3D-_stepY2%3BxVia%3Dthis.from.x%3ByVia%3Dthis.to.y%2B_stepY2%7Delse%20if(type%3D%3D%3D%5C%5C%5C%22curvedCW%5C%5C%5C%22)%7Bdx%3Dthis.to.x-this.from.x%3Bdy%3Dthis.from.y-this.to.y%3Bvar%20radius%3DMath.sqrt(dx*dx%2Bdy*dy)%3Bvar%20pi%3DMath.PI%3Bvar%20originalAngle%3DMath.atan2(dy%2Cdx)%3Bvar%20myAngle%3D(originalAngle%2B(factor*.5%2B.5)*pi)%25(2*pi)%3BxVia%3Dthis.from.x%2B(factor*.5%2B.5)*radius*Math.sin(myAngle)%3ByVia%3Dthis.from.y%2B(factor*.5%2B.5)*radius*Math.cos(myAngle)%7Delse%20if(type%3D%3D%3D%5C%5C%5C%22curvedCCW%5C%5C%5C%22)%7Bdx%3Dthis.to.x-this.from.x%3Bdy%3Dthis.from.y-this.to.y%3Bvar%20_radius%3DMath.sqrt(dx*dx%2Bdy*dy)%3Bvar%20_pi%3DMath.PI%3Bvar%20_originalAngle%3DMath.atan2(dy%2Cdx)%3Bvar%20_myAngle%3D(_originalAngle%2B(-factor*.5%2B.5)*_pi)%25(2*_pi)%3BxVia%3Dthis.from.x%2B(factor*.5%2B.5)*_radius*Math.sin(_myAngle)%3ByVia%3Dthis.from.y%2B(factor*.5%2B.5)*_radius*Math.cos(_myAngle)%7Delse%7Bvar%20_stepX3%3Dvoid%200%3Bvar%20_stepY3%3Dvoid%200%3Bif(dx%3C%3Ddy)%7B_stepX3%3D_stepY3%3Dfactor*dy%7Delse%7B_stepX3%3D_stepY3%3Dfactor*dx%7Dif(this.from.x%3Ethis.to.x)_stepX3%3D-_stepX3%3Bif(this.from.y%3E%3Dthis.to.y)_stepY3%3D-_stepY3%3BxVia%3Dthis.from.x%2B_stepX3%3ByVia%3Dthis.from.y%2B_stepY3%3Bif(dx%3C%3Ddy)%7Bif(this.from.x%3C%3Dthis.to.x)%7BxVia%3Dthis.to.x%3CxVia%3Fthis.to.x%3AxVia%7Delse%7BxVia%3Dthis.to.x%3ExVia%3Fthis.to.x%3AxVia%7D%7Delse%7Bif(this.from.y%3E%3Dthis.to.y)%7ByVia%3Dthis.to.y%3EyVia%3Fthis.to.y%3AyVia%7Delse%7ByVia%3Dthis.to.y%3CyVia%3Fthis.to.y%3AyVia%7D%7D%7Dreturn%7Bx%3AxVia%2Cy%3AyVia%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_findBorderPosition%5C%5C%5C%22%2Cvalue%3Afunction%20_findBorderPosition(nearNode%2Cctx)%7Bvar%20options%3Darguments.length%3E2%26%26arguments%5B2%5D!%3D%3Dundefined%3Farguments%5B2%5D%3A%7B%7D%3Breturn%20this._findBorderPositionBezier(nearNode%2Cctx%2Coptions.via)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_getDistanceToEdge%5C%5C%5C%22%2Cvalue%3Afunction%20_getDistanceToEdge(x1%2Cy1%2Cx2%2Cy2%2Cx3%2Cy3)%7Bvar%20viaNode%3Darguments.length%3E6%26%26arguments%5B6%5D!%3D%3Dundefined%3Farguments%5B6%5D%3Athis._getViaCoordinates()%3Breturn%20this._getDistanceToBezierEdge(x1%2Cy1%2Cx2%2Cy2%2Cx3%2Cy3%2CviaNode)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getPoint%5C%5C%5C%22%2Cvalue%3Afunction%20getPoint(percentage)%7Bvar%20viaNode%3Darguments.length%3E1%26%26arguments%5B1%5D!%3D%3Dundefined%3Farguments%5B1%5D%3Athis._getViaCoordinates()%3Bvar%20t%3Dpercentage%3Bvar%20x%3DMath.pow(1-t%2C2)*this.fromPoint.x%2B2*t*(1-t)*viaNode.x%2BMath.pow(t%2C2)*this.toPoint.x%3Bvar%20y%3DMath.pow(1-t%2C2)*this.fromPoint.y%2B2*t*(1-t)*viaNode.y%2BMath.pow(t%2C2)*this.toPoint.y%3Breturn%7Bx%3Ax%2Cy%3Ay%7D%7D%7D%5D)%3Breturn%20BezierEdgeStatic%7D(_BezierEdgeBase3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)%3Bexports%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3DBezierEdgeStatic%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_getPrototypeOf%3D__webpack_require__(3)%3Bvar%20_getPrototypeOf2%3D_interopRequireDefault(_getPrototypeOf)%3Bvar%20_classCallCheck2%3D__webpack_require__(0)%3Bvar%20_classCallCheck3%3D_interopRequireDefault(_classCallCheck2)%3Bvar%20_createClass2%3D__webpack_require__(1)%3Bvar%20_createClass3%3D_interopRequireDefault(_createClass2)%3Bvar%20_possibleConstructorReturn2%3D__webpack_require__(4)%3Bvar%20_possibleConstructorReturn3%3D_interopRequireDefault(_possibleConstructorReturn2)%3Bvar%20_inherits2%3D__webpack_require__(5)%3Bvar%20_inherits3%3D_interopRequireDefault(_inherits2)%3Bvar%20_EdgeBase2%3D__webpack_require__(118)%3Bvar%20_EdgeBase3%3D_interopRequireDefault(_EdgeBase2)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20StraightEdge%3Dfunction(_EdgeBase)%7B(0%2C_inherits3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(StraightEdge%2C_EdgeBase)%3Bfunction%20StraightEdge(options%2Cbody%2ClabelModule)%7B(0%2C_classCallCheck3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2CStraightEdge)%3Breturn(0%2C_possibleConstructorReturn3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2C(StraightEdge.__proto__%7C%7C(0%2C_getPrototypeOf2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(StraightEdge)).call(this%2Coptions%2Cbody%2ClabelModule))%7D(0%2C_createClass3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(StraightEdge%2C%5B%7Bkey%3A%5C%5C%5C%22_line%5C%5C%5C%22%2Cvalue%3Afunction%20_line(ctx%2Cvalues)%7Bctx.beginPath()%3Bctx.moveTo(this.fromPoint.x%2Cthis.fromPoint.y)%3Bctx.lineTo(this.toPoint.x%2Cthis.toPoint.y)%3Bthis.enableShadow(ctx%2Cvalues)%3Bctx.stroke()%3Bthis.disableShadow(ctx%2Cvalues)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getViaNode%5C%5C%5C%22%2Cvalue%3Afunction%20getViaNode()%7Breturn%20undefined%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getPoint%5C%5C%5C%22%2Cvalue%3Afunction%20getPoint(percentage)%7Breturn%7Bx%3A(1-percentage)*this.fromPoint.x%2Bpercentage*this.toPoint.x%2Cy%3A(1-percentage)*this.fromPoint.y%2Bpercentage*this.toPoint.y%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_findBorderPosition%5C%5C%5C%22%2Cvalue%3Afunction%20_findBorderPosition(nearNode%2Cctx)%7Bvar%20node1%3Dthis.to%3Bvar%20node2%3Dthis.from%3Bif(nearNode.id%3D%3D%3Dthis.from.id)%7Bnode1%3Dthis.from%3Bnode2%3Dthis.to%7Dvar%20angle%3DMath.atan2(node1.y-node2.y%2Cnode1.x-node2.x)%3Bvar%20dx%3Dnode1.x-node2.x%3Bvar%20dy%3Dnode1.y-node2.y%3Bvar%20edgeSegmentLength%3DMath.sqrt(dx*dx%2Bdy*dy)%3Bvar%20toBorderDist%3DnearNode.distanceToBorder(ctx%2Cangle)%3Bvar%20toBorderPoint%3D(edgeSegmentLength-toBorderDist)%2FedgeSegmentLength%3Bvar%20borderPos%3D%7B%7D%3BborderPos.x%3D(1-toBorderPoint)*node2.x%2BtoBorderPoint*node1.x%3BborderPos.y%3D(1-toBorderPoint)*node2.y%2BtoBorderPoint*node1.y%3Breturn%20borderPos%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_getDistanceToEdge%5C%5C%5C%22%2Cvalue%3Afunction%20_getDistanceToEdge(x1%2Cy1%2Cx2%2Cy2%2Cx3%2Cy3)%7Breturn%20this._getDistanceToLine(x1%2Cy1%2Cx2%2Cy2%2Cx3%2Cy3)%7D%7D%5D)%3Breturn%20StraightEdge%7D(_EdgeBase3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)%3Bexports%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3DStraightEdge%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_keys%3D__webpack_require__(8)%3Bvar%20_keys2%3D_interopRequireDefault(_keys)%3Bvar%20_classCallCheck2%3D__webpack_require__(0)%3Bvar%20_classCallCheck3%3D_interopRequireDefault(_classCallCheck2)%3Bvar%20_createClass2%3D__webpack_require__(1)%3Bvar%20_createClass3%3D_interopRequireDefault(_createClass2)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20BarnesHutSolver%3D__webpack_require__(120)%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3Bvar%20Repulsion%3D__webpack_require__(221)%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3Bvar%20HierarchicalRepulsion%3D__webpack_require__(222)%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3Bvar%20SpringSolver%3D__webpack_require__(223)%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3Bvar%20HierarchicalSpringSolver%3D__webpack_require__(224)%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3Bvar%20CentralGravitySolver%3D__webpack_require__(121)%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3Bvar%20ForceAtlas2BasedRepulsionSolver%3D__webpack_require__(225)%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3Bvar%20ForceAtlas2BasedCentralGravitySolver%3D__webpack_require__(226)%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3Bvar%20util%3D__webpack_require__(2)%3Bvar%20EndPoints%3D__webpack_require__(119)%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3Bvar%20PhysicsEngine%3Dfunction()%7Bfunction%20PhysicsEngine(body)%7B(0%2C_classCallCheck3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2CPhysicsEngine)%3Bthis.body%3Dbody%3Bthis.physicsBody%3D%7BphysicsNodeIndices%3A%5B%5D%2CphysicsEdgeIndices%3A%5B%5D%2Cforces%3A%7B%7D%2Cvelocities%3A%7B%7D%7D%3Bthis.physicsEnabled%3Dtrue%3Bthis.simulationInterval%3D1e3%2F60%3Bthis.requiresTimeout%3Dtrue%3Bthis.previousStates%3D%7B%7D%3Bthis.referenceState%3D%7B%7D%3Bthis.freezeCache%3D%7B%7D%3Bthis.renderTimer%3Dundefined%3Bthis.adaptiveTimestep%3Dfalse%3Bthis.adaptiveTimestepEnabled%3Dfalse%3Bthis.adaptiveCounter%3D0%3Bthis.adaptiveInterval%3D3%3Bthis.stabilized%3Dfalse%3Bthis.startedStabilization%3Dfalse%3Bthis.stabilizationIterations%3D0%3Bthis.ready%3Dfalse%3Bthis.options%3D%7B%7D%3Bthis.defaultOptions%3D%7Benabled%3Atrue%2CbarnesHut%3A%7Btheta%3A.5%2CgravitationalConstant%3A-2e3%2CcentralGravity%3A.3%2CspringLength%3A95%2CspringConstant%3A.04%2Cdamping%3A.09%2CavoidOverlap%3A0%7D%2CforceAtlas2Based%3A%7Btheta%3A.5%2CgravitationalConstant%3A-50%2CcentralGravity%3A.01%2CspringConstant%3A.08%2CspringLength%3A100%2Cdamping%3A.4%2CavoidOverlap%3A0%7D%2Crepulsion%3A%7BcentralGravity%3A.2%2CspringLength%3A200%2CspringConstant%3A.05%2CnodeDistance%3A100%2Cdamping%3A.09%2CavoidOverlap%3A0%7D%2ChierarchicalRepulsion%3A%7BcentralGravity%3A0%2CspringLength%3A100%2CspringConstant%3A.01%2CnodeDistance%3A120%2Cdamping%3A.09%7D%2CmaxVelocity%3A50%2CminVelocity%3A.75%2Csolver%3A%5C%5C%5C%22barnesHut%5C%5C%5C%22%2Cstabilization%3A%7Benabled%3Atrue%2Citerations%3A1e3%2CupdateInterval%3A50%2ConlyDynamicEdges%3Afalse%2Cfit%3Atrue%7D%2Ctimestep%3A.5%2CadaptiveTimestep%3Atrue%7D%3Butil.extend(this.options%2Cthis.defaultOptions)%3Bthis.timestep%3D.5%3Bthis.layoutFailed%3Dfalse%3Bthis.bindEventListeners()%7D(0%2C_createClass3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(PhysicsEngine%2C%5B%7Bkey%3A%5C%5C%5C%22bindEventListeners%5C%5C%5C%22%2Cvalue%3Afunction%20bindEventListeners()%7Bvar%20_this%3Dthis%3Bthis.body.emitter.on(%5C%5C%5C%22initPhysics%5C%5C%5C%22%2Cfunction()%7B_this.initPhysics()%7D)%3Bthis.body.emitter.on(%5C%5C%5C%22_layoutFailed%5C%5C%5C%22%2Cfunction()%7B_this.layoutFailed%3Dtrue%7D)%3Bthis.body.emitter.on(%5C%5C%5C%22resetPhysics%5C%5C%5C%22%2Cfunction()%7B_this.stopSimulation()%3B_this.ready%3Dfalse%7D)%3Bthis.body.emitter.on(%5C%5C%5C%22disablePhysics%5C%5C%5C%22%2Cfunction()%7B_this.physicsEnabled%3Dfalse%3B_this.stopSimulation()%7D)%3Bthis.body.emitter.on(%5C%5C%5C%22restorePhysics%5C%5C%5C%22%2Cfunction()%7B_this.setOptions(_this.options)%3Bif(_this.ready%3D%3D%3Dtrue)%7B_this.startSimulation()%7D%7D)%3Bthis.body.emitter.on(%5C%5C%5C%22startSimulation%5C%5C%5C%22%2Cfunction()%7Bif(_this.ready%3D%3D%3Dtrue)%7B_this.startSimulation()%7D%7D)%3Bthis.body.emitter.on(%5C%5C%5C%22stopSimulation%5C%5C%5C%22%2Cfunction()%7B_this.stopSimulation()%7D)%3Bthis.body.emitter.on(%5C%5C%5C%22destroy%5C%5C%5C%22%2Cfunction()%7B_this.stopSimulation(false)%3B_this.body.emitter.off()%7D)%3Bthis.body.emitter.on(%5C%5C%5C%22_dataChanged%5C%5C%5C%22%2Cfunction()%7B_this.updatePhysicsData()%7D)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22setOptions%5C%5C%5C%22%2Cvalue%3Afunction%20setOptions(options)%7Bif(options!%3D%3Dundefined)%7Bif(options%3D%3D%3Dfalse)%7Bthis.options.enabled%3Dfalse%3Bthis.physicsEnabled%3Dfalse%3Bthis.stopSimulation()%7Delse%20if(options%3D%3D%3Dtrue)%7Bthis.options.enabled%3Dtrue%3Bthis.physicsEnabled%3Dtrue%3Bthis.startSimulation()%7Delse%7Bthis.physicsEnabled%3Dtrue%3Butil.selectiveNotDeepExtend(%5B%5C%5C%5C%22stabilization%5C%5C%5C%22%5D%2Cthis.options%2Coptions)%3Butil.mergeOptions(this.options%2Coptions%2C%5C%5C%5C%22stabilization%5C%5C%5C%22)%3Bif(options.enabled%3D%3D%3Dundefined)%7Bthis.options.enabled%3Dtrue%7Dif(this.options.enabled%3D%3D%3Dfalse)%7Bthis.physicsEnabled%3Dfalse%3Bthis.stopSimulation()%7Dthis.timestep%3Dthis.options.timestep%7D%7Dthis.init()%7D%7D%2C%7Bkey%3A%5C%5C%5C%22init%5C%5C%5C%22%2Cvalue%3Afunction%20init()%7Bvar%20options%3Bif(this.options.solver%3D%3D%3D%5C%5C%5C%22forceAtlas2Based%5C%5C%5C%22)%7Boptions%3Dthis.options.forceAtlas2Based%3Bthis.nodesSolver%3Dnew%20ForceAtlas2BasedRepulsionSolver(this.body%2Cthis.physicsBody%2Coptions)%3Bthis.edgesSolver%3Dnew%20SpringSolver(this.body%2Cthis.physicsBody%2Coptions)%3Bthis.gravitySolver%3Dnew%20ForceAtlas2BasedCentralGravitySolver(this.body%2Cthis.physicsBody%2Coptions)%7Delse%20if(this.options.solver%3D%3D%3D%5C%5C%5C%22repulsion%5C%5C%5C%22)%7Boptions%3Dthis.options.repulsion%3Bthis.nodesSolver%3Dnew%20Repulsion(this.body%2Cthis.physicsBody%2Coptions)%3Bthis.edgesSolver%3Dnew%20SpringSolver(this.body%2Cthis.physicsBody%2Coptions)%3Bthis.gravitySolver%3Dnew%20CentralGravitySolver(this.body%2Cthis.physicsBody%2Coptions)%7Delse%20if(this.options.solver%3D%3D%3D%5C%5C%5C%22hierarchicalRepulsion%5C%5C%5C%22)%7Boptions%3Dthis.options.hierarchicalRepulsion%3Bthis.nodesSolver%3Dnew%20HierarchicalRepulsion(this.body%2Cthis.physicsBody%2Coptions)%3Bthis.edgesSolver%3Dnew%20HierarchicalSpringSolver(this.body%2Cthis.physicsBody%2Coptions)%3Bthis.gravitySolver%3Dnew%20CentralGravitySolver(this.body%2Cthis.physicsBody%2Coptions)%7Delse%7Boptions%3Dthis.options.barnesHut%3Bthis.nodesSolver%3Dnew%20BarnesHutSolver(this.body%2Cthis.physicsBody%2Coptions)%3Bthis.edgesSolver%3Dnew%20SpringSolver(this.body%2Cthis.physicsBody%2Coptions)%3Bthis.gravitySolver%3Dnew%20CentralGravitySolver(this.body%2Cthis.physicsBody%2Coptions)%7Dthis.modelOptions%3Doptions%7D%7D%2C%7Bkey%3A%5C%5C%5C%22initPhysics%5C%5C%5C%22%2Cvalue%3Afunction%20initPhysics()%7Bif(this.physicsEnabled%3D%3D%3Dtrue%26%26this.options.enabled%3D%3D%3Dtrue)%7Bif(this.options.stabilization.enabled%3D%3D%3Dtrue)%7Bthis.stabilize()%7Delse%7Bthis.stabilized%3Dfalse%3Bthis.ready%3Dtrue%3Bthis.body.emitter.emit(%5C%5C%5C%22fit%5C%5C%5C%22%2C%7B%7D%2Cthis.layoutFailed)%3Bthis.startSimulation()%7D%7Delse%7Bthis.ready%3Dtrue%3Bthis.body.emitter.emit(%5C%5C%5C%22fit%5C%5C%5C%22)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22startSimulation%5C%5C%5C%22%2Cvalue%3Afunction%20startSimulation()%7Bif(this.physicsEnabled%3D%3D%3Dtrue%26%26this.options.enabled%3D%3D%3Dtrue)%7Bthis.stabilized%3Dfalse%3Bthis.adaptiveTimestep%3Dfalse%3Bthis.body.emitter.emit(%5C%5C%5C%22_resizeNodes%5C%5C%5C%22)%3Bif(this.viewFunction%3D%3D%3Dundefined)%7Bthis.viewFunction%3Dthis.simulationStep.bind(this)%3Bthis.body.emitter.on(%5C%5C%5C%22initRedraw%5C%5C%5C%22%2Cthis.viewFunction)%3Bthis.body.emitter.emit(%5C%5C%5C%22_startRendering%5C%5C%5C%22)%7D%7Delse%7Bthis.body.emitter.emit(%5C%5C%5C%22_redraw%5C%5C%5C%22)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22stopSimulation%5C%5C%5C%22%2Cvalue%3Afunction%20stopSimulation()%7Bvar%20emit%3Darguments.length%3E0%26%26arguments%5B0%5D!%3D%3Dundefined%3Farguments%5B0%5D%3Atrue%3Bthis.stabilized%3Dtrue%3Bif(emit%3D%3D%3Dtrue)%7Bthis._emitStabilized()%7Dif(this.viewFunction!%3D%3Dundefined)%7Bthis.body.emitter.off(%5C%5C%5C%22initRedraw%5C%5C%5C%22%2Cthis.viewFunction)%3Bthis.viewFunction%3Dundefined%3Bif(emit%3D%3D%3Dtrue)%7Bthis.body.emitter.emit(%5C%5C%5C%22_stopRendering%5C%5C%5C%22)%7D%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22simulationStep%5C%5C%5C%22%2Cvalue%3Afunction%20simulationStep()%7Bvar%20startTime%3DDate.now()%3Bthis.physicsTick()%3Bvar%20physicsTime%3DDate.now()-startTime%3Bif((physicsTime%3C.4*this.simulationInterval%7C%7Cthis.runDoubleSpeed%3D%3D%3Dtrue)%26%26this.stabilized%3D%3D%3Dfalse)%7Bthis.physicsTick()%3Bthis.runDoubleSpeed%3Dtrue%7Dif(this.stabilized%3D%3D%3Dtrue)%7Bthis.stopSimulation()%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_emitStabilized%5C%5C%5C%22%2Cvalue%3Afunction%20_emitStabilized()%7Bvar%20_this2%3Dthis%3Bvar%20amountOfIterations%3Darguments.length%3E0%26%26arguments%5B0%5D!%3D%3Dundefined%3Farguments%5B0%5D%3Athis.stabilizationIterations%3Bif(this.stabilizationIterations%3E1%7C%7Cthis.startedStabilization%3D%3D%3Dtrue)%7BsetTimeout(function()%7B_this2.body.emitter.emit(%5C%5C%5C%22stabilized%5C%5C%5C%22%2C%7Biterations%3AamountOfIterations%7D)%3B_this2.startedStabilization%3Dfalse%3B_this2.stabilizationIterations%3D0%7D%2C0)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22physicsStep%5C%5C%5C%22%2Cvalue%3Afunction%20physicsStep()%7Bthis.gravitySolver.solve()%3Bthis.nodesSolver.solve()%3Bthis.edgesSolver.solve()%3Bthis.moveNodes()%7D%7D%2C%7Bkey%3A%5C%5C%5C%22adjustTimeStep%5C%5C%5C%22%2Cvalue%3Afunction%20adjustTimeStep()%7Bvar%20factor%3D1.2%3Bif(this._evaluateStepQuality()%3D%3D%3Dtrue)%7Bthis.timestep%3Dfactor*this.timestep%7Delse%7Bif(this.timestep%2Ffactor%3Cthis.options.timestep)%7Bthis.timestep%3Dthis.options.timestep%7Delse%7Bthis.adaptiveCounter%3D-1%3Bthis.timestep%3DMath.max(this.options.timestep%2Cthis.timestep%2Ffactor)%7D%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22physicsTick%5C%5C%5C%22%2Cvalue%3Afunction%20physicsTick()%7Bthis._startStabilizing()%3Bif(this.stabilized%3D%3D%3Dtrue)return%3Bif(this.adaptiveTimestep%3D%3D%3Dtrue%26%26this.adaptiveTimestepEnabled%3D%3D%3Dtrue)%7Bvar%20doAdaptive%3Dthis.adaptiveCounter%25this.adaptiveInterval%3D%3D%3D0%3Bif(doAdaptive)%7Bthis.timestep%3D2*this.timestep%3Bthis.physicsStep()%3Bthis.revert()%3Bthis.timestep%3D.5*this.timestep%3Bthis.physicsStep()%3Bthis.physicsStep()%3Bthis.adjustTimeStep()%7Delse%7Bthis.physicsStep()%7Dthis.adaptiveCounter%2B%3D1%7Delse%7Bthis.timestep%3Dthis.options.timestep%3Bthis.physicsStep()%7D%5C%5Cnif(this.stabilized%3D%3D%3Dtrue)this.revert()%3Bthis.stabilizationIterations%2B%2B%7D%7D%2C%7Bkey%3A%5C%5C%5C%22updatePhysicsData%5C%5C%5C%22%2Cvalue%3Afunction%20updatePhysicsData()%7Bthis.physicsBody.forces%3D%7B%7D%3Bthis.physicsBody.physicsNodeIndices%3D%5B%5D%3Bthis.physicsBody.physicsEdgeIndices%3D%5B%5D%3Bvar%20nodes%3Dthis.body.nodes%3Bvar%20edges%3Dthis.body.edges%3Bfor(var%20nodeId%20in%20nodes)%7Bif(nodes.hasOwnProperty(nodeId))%7Bif(nodes%5BnodeId%5D.options.physics%3D%3D%3Dtrue)%7Bthis.physicsBody.physicsNodeIndices.push(nodes%5BnodeId%5D.id)%7D%7D%7Dfor(var%20edgeId%20in%20edges)%7Bif(edges.hasOwnProperty(edgeId))%7Bif(edges%5BedgeId%5D.options.physics%3D%3D%3Dtrue)%7Bthis.physicsBody.physicsEdgeIndices.push(edges%5BedgeId%5D.id)%7D%7D%7Dfor(var%20i%3D0%3Bi%3Cthis.physicsBody.physicsNodeIndices.length%3Bi%2B%2B)%7Bvar%20_nodeId%3Dthis.physicsBody.physicsNodeIndices%5Bi%5D%3Bthis.physicsBody.forces%5B_nodeId%5D%3D%7Bx%3A0%2Cy%3A0%7D%3Bif(this.physicsBody.velocities%5B_nodeId%5D%3D%3D%3Dundefined)%7Bthis.physicsBody.velocities%5B_nodeId%5D%3D%7Bx%3A0%2Cy%3A0%7D%7D%7Dfor(var%20_nodeId2%20in%20this.physicsBody.velocities)%7Bif(nodes%5B_nodeId2%5D%3D%3D%3Dundefined)%7Bdelete%20this.physicsBody.velocities%5B_nodeId2%5D%7D%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22revert%5C%5C%5C%22%2Cvalue%3Afunction%20revert()%7Bvar%20nodeIds%3D(0%2C_keys2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this.previousStates)%3Bvar%20nodes%3Dthis.body.nodes%3Bvar%20velocities%3Dthis.physicsBody.velocities%3Bthis.referenceState%3D%7B%7D%3Bfor(var%20i%3D0%3Bi%3CnodeIds.length%3Bi%2B%2B)%7Bvar%20nodeId%3DnodeIds%5Bi%5D%3Bif(nodes%5BnodeId%5D!%3D%3Dundefined)%7Bif(nodes%5BnodeId%5D.options.physics%3D%3D%3Dtrue)%7Bthis.referenceState%5BnodeId%5D%3D%7Bpositions%3A%7Bx%3Anodes%5BnodeId%5D.x%2Cy%3Anodes%5BnodeId%5D.y%7D%7D%3Bvelocities%5BnodeId%5D.x%3Dthis.previousStates%5BnodeId%5D.vx%3Bvelocities%5BnodeId%5D.y%3Dthis.previousStates%5BnodeId%5D.vy%3Bnodes%5BnodeId%5D.x%3Dthis.previousStates%5BnodeId%5D.x%3Bnodes%5BnodeId%5D.y%3Dthis.previousStates%5BnodeId%5D.y%7D%7Delse%7Bdelete%20this.previousStates%5BnodeId%5D%7D%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_evaluateStepQuality%5C%5C%5C%22%2Cvalue%3Afunction%20_evaluateStepQuality()%7Bvar%20dx%3Dvoid%200%2Cdy%3Dvoid%200%2Cdpos%3Dvoid%200%3Bvar%20nodes%3Dthis.body.nodes%3Bvar%20reference%3Dthis.referenceState%3Bvar%20posThreshold%3D.3%3Bfor(var%20nodeId%20in%20this.referenceState)%7Bif(this.referenceState.hasOwnProperty(nodeId)%26%26nodes%5BnodeId%5D!%3D%3Dundefined)%7Bdx%3Dnodes%5BnodeId%5D.x-reference%5BnodeId%5D.positions.x%3Bdy%3Dnodes%5BnodeId%5D.y-reference%5BnodeId%5D.positions.y%3Bdpos%3DMath.sqrt(Math.pow(dx%2C2)%2BMath.pow(dy%2C2))%3Bif(dpos%3EposThreshold)%7Breturn%20false%7D%7D%7Dreturn%20true%7D%7D%2C%7Bkey%3A%5C%5C%5C%22moveNodes%5C%5C%5C%22%2Cvalue%3Afunction%20moveNodes()%7Bvar%20nodeIndices%3Dthis.physicsBody.physicsNodeIndices%3Bvar%20maxNodeVelocity%3D0%3Bvar%20averageNodeVelocity%3D0%3Bvar%20velocityAdaptiveThreshold%3D5%3Bfor(var%20i%3D0%3Bi%3CnodeIndices.length%3Bi%2B%2B)%7Bvar%20nodeId%3DnodeIndices%5Bi%5D%3Bvar%20nodeVelocity%3Dthis._performStep(nodeId)%3BmaxNodeVelocity%3DMath.max(maxNodeVelocity%2CnodeVelocity)%3BaverageNodeVelocity%2B%3DnodeVelocity%7Dthis.adaptiveTimestepEnabled%3DaverageNodeVelocity%2FnodeIndices.length%3CvelocityAdaptiveThreshold%3Bthis.stabilized%3DmaxNodeVelocity%3Cthis.options.minVelocity%7D%7D%2C%7Bkey%3A%5C%5C%5C%22calculateComponentVelocity%5C%5C%5C%22%2Cvalue%3Afunction%20calculateComponentVelocity(v%2Cf%2Cm)%7Bvar%20df%3Dthis.modelOptions.damping*v%3Bvar%20a%3D(f-df)%2Fm%3Bv%2B%3Da*this.timestep%3Bvar%20maxV%3Dthis.options.maxVelocity%7C%7C1e9%3Bif(Math.abs(v)%3EmaxV)%7Bv%3Dv%3E0%3FmaxV%3A-maxV%7Dreturn%20v%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_performStep%5C%5C%5C%22%2Cvalue%3Afunction%20_performStep(nodeId)%7Bvar%20node%3Dthis.body.nodes%5BnodeId%5D%3Bvar%20force%3Dthis.physicsBody.forces%5BnodeId%5D%3Bvar%20velocity%3Dthis.physicsBody.velocities%5BnodeId%5D%3Bthis.previousStates%5BnodeId%5D%3D%7Bx%3Anode.x%2Cy%3Anode.y%2Cvx%3Avelocity.x%2Cvy%3Avelocity.y%7D%3Bif(node.options.fixed.x%3D%3D%3Dfalse)%7Bvelocity.x%3Dthis.calculateComponentVelocity(velocity.x%2Cforce.x%2Cnode.options.mass)%3Bnode.x%2B%3Dvelocity.x*this.timestep%7Delse%7Bforce.x%3D0%3Bvelocity.x%3D0%7Dif(node.options.fixed.y%3D%3D%3Dfalse)%7Bvelocity.y%3Dthis.calculateComponentVelocity(velocity.y%2Cforce.y%2Cnode.options.mass)%3Bnode.y%2B%3Dvelocity.y*this.timestep%7Delse%7Bforce.y%3D0%3Bvelocity.y%3D0%7Dvar%20totalVelocity%3DMath.sqrt(Math.pow(velocity.x%2C2)%2BMath.pow(velocity.y%2C2))%3Breturn%20totalVelocity%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_freezeNodes%5C%5C%5C%22%2Cvalue%3Afunction%20_freezeNodes()%7Bvar%20nodes%3Dthis.body.nodes%3Bfor(var%20id%20in%20nodes)%7Bif(nodes.hasOwnProperty(id))%7Bif(nodes%5Bid%5D.x%26%26nodes%5Bid%5D.y)%7Bvar%20fixed%3Dnodes%5Bid%5D.options.fixed%3Bthis.freezeCache%5Bid%5D%3D%7Bx%3Afixed.x%2Cy%3Afixed.y%7D%3Bfixed.x%3Dtrue%3Bfixed.y%3Dtrue%7D%7D%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_restoreFrozenNodes%5C%5C%5C%22%2Cvalue%3Afunction%20_restoreFrozenNodes()%7Bvar%20nodes%3Dthis.body.nodes%3Bfor(var%20id%20in%20nodes)%7Bif(nodes.hasOwnProperty(id))%7Bif(this.freezeCache%5Bid%5D!%3D%3Dundefined)%7Bnodes%5Bid%5D.options.fixed.x%3Dthis.freezeCache%5Bid%5D.x%3Bnodes%5Bid%5D.options.fixed.y%3Dthis.freezeCache%5Bid%5D.y%7D%7D%7Dthis.freezeCache%3D%7B%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22stabilize%5C%5C%5C%22%2Cvalue%3Afunction%20stabilize()%7Bvar%20_this3%3Dthis%3Bvar%20iterations%3Darguments.length%3E0%26%26arguments%5B0%5D!%3D%3Dundefined%3Farguments%5B0%5D%3Athis.options.stabilization.iterations%3Bif(typeof%20iterations!%3D%3D%5C%5C%5C%22number%5C%5C%5C%22)%7Biterations%3Dthis.options.stabilization.iterations%3Bconsole.log(%5C%5C%5C%22The%20stabilize%20method%20needs%20a%20numeric%20amount%20of%20iterations.%20Switching%20to%20default%3A%20%5C%5C%5C%22%2Citerations)%7Dif(this.physicsBody.physicsNodeIndices.length%3D%3D%3D0)%7Bthis.ready%3Dtrue%3Breturn%7Dthis.adaptiveTimestep%3Dtrue%26%26this.options.adaptiveTimestep%3Bthis.body.emitter.emit(%5C%5C%5C%22_resizeNodes%5C%5C%5C%22)%3Bthis.stopSimulation()%3Bthis.stabilized%3Dfalse%3Bthis.body.emitter.emit(%5C%5C%5C%22_blockRedraw%5C%5C%5C%22)%3Bthis.targetIterations%3Diterations%3Bif(this.options.stabilization.onlyDynamicEdges%3D%3D%3Dtrue)%7Bthis._freezeNodes()%7Dthis.stabilizationIterations%3D0%3BsetTimeout(function()%7Breturn%20_this3._stabilizationBatch()%7D%2C0)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_startStabilizing%5C%5C%5C%22%2Cvalue%3Afunction%20_startStabilizing()%7Bif(this.startedStabilization%3D%3D%3Dtrue)return%20false%3Bthis.body.emitter.emit(%5C%5C%5C%22startStabilizing%5C%5C%5C%22)%3Bthis.startedStabilization%3Dtrue%3Breturn%20true%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_stabilizationBatch%5C%5C%5C%22%2Cvalue%3Afunction%20_stabilizationBatch()%7Bvar%20_this4%3Dthis%3Bvar%20running%3Dfunction%20running()%7Breturn%20_this4.stabilized%3D%3D%3Dfalse%26%26_this4.stabilizationIterations%3C_this4.targetIterations%7D%3Bvar%20sendProgress%3Dfunction%20sendProgress()%7B_this4.body.emitter.emit(%5C%5C%5C%22stabilizationProgress%5C%5C%5C%22%2C%7Biterations%3A_this4.stabilizationIterations%2Ctotal%3A_this4.targetIterations%7D)%7D%3Bif(this._startStabilizing())%7BsendProgress()%7Dvar%20count%3D0%3Bwhile(running()%26%26count%3Cthis.options.stabilization.updateInterval)%7Bthis.physicsTick()%3Bcount%2B%2B%7DsendProgress()%3Bif(running())%7BsetTimeout(this._stabilizationBatch.bind(this)%2C0)%7Delse%7Bthis._finalizeStabilization()%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_finalizeStabilization%5C%5C%5C%22%2Cvalue%3Afunction%20_finalizeStabilization()%7Bthis.body.emitter.emit(%5C%5C%5C%22_allowRedraw%5C%5C%5C%22)%3Bif(this.options.stabilization.fit%3D%3D%3Dtrue)%7Bthis.body.emitter.emit(%5C%5C%5C%22fit%5C%5C%5C%22)%7Dif(this.options.stabilization.onlyDynamicEdges%3D%3D%3Dtrue)%7Bthis._restoreFrozenNodes()%7Dthis.body.emitter.emit(%5C%5C%5C%22stabilizationIterationsDone%5C%5C%5C%22)%3Bthis.body.emitter.emit(%5C%5C%5C%22_requestRedraw%5C%5C%5C%22)%3Bif(this.stabilized%3D%3D%3Dtrue)%7Bthis._emitStabilized()%7Delse%7Bthis.startSimulation()%7Dthis.ready%3Dtrue%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_drawForces%5C%5C%5C%22%2Cvalue%3Afunction%20_drawForces(ctx)%7Bfor(var%20i%3D0%3Bi%3Cthis.physicsBody.physicsNodeIndices.length%3Bi%2B%2B)%7Bvar%20index%3Dthis.physicsBody.physicsNodeIndices%5Bi%5D%3Bvar%20node%3Dthis.body.nodes%5Bindex%5D%3Bvar%20force%3Dthis.physicsBody.forces%5Bindex%5D%3Bvar%20factor%3D20%3Bvar%20colorFactor%3D.03%3Bvar%20forceSize%3DMath.sqrt(Math.pow(force.x%2C2)%2BMath.pow(force.x%2C2))%3Bvar%20size%3DMath.min(Math.max(5%2CforceSize)%2C15)%3Bvar%20arrowSize%3D3*size%3Bvar%20color%3Dutil.HSVToHex((180-Math.min(1%2CMath.max(0%2CcolorFactor*forceSize))*180)%2F360%2C1%2C1)%3Bvar%20point%3D%7Bx%3Anode.x%2Bfactor*force.x%2Cy%3Anode.y%2Bfactor*force.y%7D%3Bctx.lineWidth%3Dsize%3Bctx.strokeStyle%3Dcolor%3Bctx.beginPath()%3Bctx.moveTo(node.x%2Cnode.y)%3Bctx.lineTo(point.x%2Cpoint.y)%3Bctx.stroke()%3Bvar%20angle%3DMath.atan2(force.y%2Cforce.x)%3Bctx.fillStyle%3Dcolor%3BEndPoints.draw(ctx%2C%7Btype%3A%5C%5C%5C%22arrow%5C%5C%5C%22%2Cpoint%3Apoint%2Cangle%3Aangle%2Clength%3AarrowSize%7D)%3Bctx.fill()%7D%7D%7D%5D)%3Breturn%20PhysicsEngine%7D()%3Bexports%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3DPhysicsEngine%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_classCallCheck2%3D__webpack_require__(0)%3Bvar%20_classCallCheck3%3D_interopRequireDefault(_classCallCheck2)%3Bvar%20_createClass2%3D__webpack_require__(1)%3Bvar%20_createClass3%3D_interopRequireDefault(_createClass2)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20RepulsionSolver%3Dfunction()%7Bfunction%20RepulsionSolver(body%2CphysicsBody%2Coptions)%7B(0%2C_classCallCheck3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2CRepulsionSolver)%3Bthis.body%3Dbody%3Bthis.physicsBody%3DphysicsBody%3Bthis.setOptions(options)%7D(0%2C_createClass3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(RepulsionSolver%2C%5B%7Bkey%3A%5C%5C%5C%22setOptions%5C%5C%5C%22%2Cvalue%3Afunction%20setOptions(options)%7Bthis.options%3Doptions%7D%7D%2C%7Bkey%3A%5C%5C%5C%22solve%5C%5C%5C%22%2Cvalue%3Afunction%20solve()%7Bvar%20dx%2Cdy%2Cdistance%2Cfx%2Cfy%2CrepulsingForce%2Cnode1%2Cnode2%3Bvar%20nodes%3Dthis.body.nodes%3Bvar%20nodeIndices%3Dthis.physicsBody.physicsNodeIndices%3Bvar%20forces%3Dthis.physicsBody.forces%3Bvar%20nodeDistance%3Dthis.options.nodeDistance%3Bvar%20a%3D-2%2F3%2FnodeDistance%3Bvar%20b%3D4%2F3%3Bfor(var%20i%3D0%3Bi%3CnodeIndices.length-1%3Bi%2B%2B)%7Bnode1%3Dnodes%5BnodeIndices%5Bi%5D%5D%3Bfor(var%20j%3Di%2B1%3Bj%3CnodeIndices.length%3Bj%2B%2B)%7Bnode2%3Dnodes%5BnodeIndices%5Bj%5D%5D%3Bdx%3Dnode2.x-node1.x%3Bdy%3Dnode2.y-node1.y%3Bdistance%3DMath.sqrt(dx*dx%2Bdy*dy)%3Bif(distance%3D%3D%3D0)%7Bdistance%3D.1*Math.random()%3Bdx%3Ddistance%7Dif(distance%3C2*nodeDistance)%7Bif(distance%3C.5*nodeDistance)%7BrepulsingForce%3D1%7Delse%7BrepulsingForce%3Da*distance%2Bb%7DrepulsingForce%3DrepulsingForce%2Fdistance%3Bfx%3Ddx*repulsingForce%3Bfy%3Ddy*repulsingForce%3Bforces%5Bnode1.id%5D.x-%3Dfx%3Bforces%5Bnode1.id%5D.y-%3Dfy%3Bforces%5Bnode2.id%5D.x%2B%3Dfx%3Bforces%5Bnode2.id%5D.y%2B%3Dfy%7D%7D%7D%7D%7D%5D)%3Breturn%20RepulsionSolver%7D()%3Bexports%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3DRepulsionSolver%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_classCallCheck2%3D__webpack_require__(0)%3Bvar%20_classCallCheck3%3D_interopRequireDefault(_classCallCheck2)%3Bvar%20_createClass2%3D__webpack_require__(1)%3Bvar%20_createClass3%3D_interopRequireDefault(_createClass2)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20HierarchicalRepulsionSolver%3Dfunction()%7Bfunction%20HierarchicalRepulsionSolver(body%2CphysicsBody%2Coptions)%7B(0%2C_classCallCheck3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2CHierarchicalRepulsionSolver)%3Bthis.body%3Dbody%3Bthis.physicsBody%3DphysicsBody%3Bthis.setOptions(options)%7D(0%2C_createClass3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(HierarchicalRepulsionSolver%2C%5B%7Bkey%3A%5C%5C%5C%22setOptions%5C%5C%5C%22%2Cvalue%3Afunction%20setOptions(options)%7Bthis.options%3Doptions%7D%7D%2C%7Bkey%3A%5C%5C%5C%22solve%5C%5C%5C%22%2Cvalue%3Afunction%20solve()%7Bvar%20dx%2Cdy%2Cdistance%2Cfx%2Cfy%2CrepulsingForce%2Cnode1%2Cnode2%2Ci%2Cj%3Bvar%20nodes%3Dthis.body.nodes%3Bvar%20nodeIndices%3Dthis.physicsBody.physicsNodeIndices%3Bvar%20forces%3Dthis.physicsBody.forces%3Bvar%20nodeDistance%3Dthis.options.nodeDistance%3Bfor(i%3D0%3Bi%3CnodeIndices.length-1%3Bi%2B%2B)%7Bnode1%3Dnodes%5BnodeIndices%5Bi%5D%5D%3Bfor(j%3Di%2B1%3Bj%3CnodeIndices.length%3Bj%2B%2B)%7Bnode2%3Dnodes%5BnodeIndices%5Bj%5D%5D%3Bif(node1.level%3D%3D%3Dnode2.level)%7Bdx%3Dnode2.x-node1.x%3Bdy%3Dnode2.y-node1.y%3Bdistance%3DMath.sqrt(dx*dx%2Bdy*dy)%3Bvar%20steepness%3D.05%3Bif(distance%3CnodeDistance)%7BrepulsingForce%3D-Math.pow(steepness*distance%2C2)%2BMath.pow(steepness*nodeDistance%2C2)%7Delse%7BrepulsingForce%3D0%7Dif(distance%3D%3D%3D0)%7Bdistance%3D.01%7Delse%7BrepulsingForce%3DrepulsingForce%2Fdistance%7Dfx%3Ddx*repulsingForce%3Bfy%3Ddy*repulsingForce%3Bforces%5Bnode1.id%5D.x-%3Dfx%3Bforces%5Bnode1.id%5D.y-%3Dfy%3Bforces%5Bnode2.id%5D.x%2B%3Dfx%3Bforces%5Bnode2.id%5D.y%2B%3Dfy%7D%7D%7D%7D%7D%5D)%3Breturn%20HierarchicalRepulsionSolver%7D()%3Bexports%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3DHierarchicalRepulsionSolver%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_classCallCheck2%3D__webpack_require__(0)%3Bvar%20_classCallCheck3%3D_interopRequireDefault(_classCallCheck2)%3Bvar%20_createClass2%3D__webpack_require__(1)%3Bvar%20_createClass3%3D_interopRequireDefault(_createClass2)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20SpringSolver%3Dfunction()%7Bfunction%20SpringSolver(body%2CphysicsBody%2Coptions)%7B(0%2C_classCallCheck3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2CSpringSolver)%3Bthis.body%3Dbody%3Bthis.physicsBody%3DphysicsBody%3Bthis.setOptions(options)%7D(0%2C_createClass3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(SpringSolver%2C%5B%7Bkey%3A%5C%5C%5C%22setOptions%5C%5C%5C%22%2Cvalue%3Afunction%20setOptions(options)%7Bthis.options%3Doptions%7D%7D%2C%7Bkey%3A%5C%5C%5C%22solve%5C%5C%5C%22%2Cvalue%3Afunction%20solve()%7Bvar%20edgeLength%3Dvoid%200%2Cedge%3Dvoid%200%3Bvar%20edgeIndices%3Dthis.physicsBody.physicsEdgeIndices%3Bvar%20edges%3Dthis.body.edges%3Bvar%20node1%3Dvoid%200%2Cnode2%3Dvoid%200%2Cnode3%3Dvoid%200%3Bfor(var%20i%3D0%3Bi%3CedgeIndices.length%3Bi%2B%2B)%7Bedge%3Dedges%5BedgeIndices%5Bi%5D%5D%3Bif(edge.connected%3D%3D%3Dtrue%26%26edge.toId!%3D%3Dedge.fromId)%7Bif(this.body.nodes%5Bedge.toId%5D!%3D%3Dundefined%26%26this.body.nodes%5Bedge.fromId%5D!%3D%3Dundefined)%7Bif(edge.edgeType.via!%3D%3Dundefined)%7BedgeLength%3Dedge.options.length%3D%3D%3Dundefined%3Fthis.options.springLength%3Aedge.options.length%3Bnode1%3Dedge.to%3Bnode2%3Dedge.edgeType.via%3Bnode3%3Dedge.from%3Bthis._calculateSpringForce(node1%2Cnode2%2C.5*edgeLength)%3Bthis._calculateSpringForce(node2%2Cnode3%2C.5*edgeLength)%7Delse%7BedgeLength%3Dedge.options.length%3D%3D%3Dundefined%3Fthis.options.springLength*1.5%3Aedge.options.length%3Bthis._calculateSpringForce(edge.from%2Cedge.to%2CedgeLength)%7D%7D%7D%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_calculateSpringForce%5C%5C%5C%22%2Cvalue%3Afunction%20_calculateSpringForce(node1%2Cnode2%2CedgeLength)%7Bvar%20dx%3Dnode1.x-node2.x%3Bvar%20dy%3Dnode1.y-node2.y%3Bvar%20distance%3DMath.max(Math.sqrt(dx*dx%2Bdy*dy)%2C.01)%3Bvar%20springForce%3Dthis.options.springConstant*(edgeLength-distance)%2Fdistance%3Bvar%20fx%3Ddx*springForce%3Bvar%20fy%3Ddy*springForce%3Bif(this.physicsBody.forces%5Bnode1.id%5D!%3D%3Dundefined)%7Bthis.physicsBody.forces%5Bnode1.id%5D.x%2B%3Dfx%3Bthis.physicsBody.forces%5Bnode1.id%5D.y%2B%3Dfy%7Dif(this.physicsBody.forces%5Bnode2.id%5D!%3D%3Dundefined)%7Bthis.physicsBody.forces%5Bnode2.id%5D.x-%3Dfx%3Bthis.physicsBody.forces%5Bnode2.id%5D.y-%3Dfy%7D%7D%7D%5D)%3Breturn%20SpringSolver%7D()%3Bexports%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3DSpringSolver%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_classCallCheck2%3D__webpack_require__(0)%3Bvar%20_classCallCheck3%3D_interopRequireDefault(_classCallCheck2)%3Bvar%20_createClass2%3D__webpack_require__(1)%3Bvar%20_createClass3%3D_interopRequireDefault(_createClass2)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20HierarchicalSpringSolver%3Dfunction()%7Bfunction%20HierarchicalSpringSolver(body%2CphysicsBody%2Coptions)%7B(0%2C_classCallCheck3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2CHierarchicalSpringSolver)%3Bthis.body%3Dbody%3Bthis.physicsBody%3DphysicsBody%3Bthis.setOptions(options)%7D(0%2C_createClass3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(HierarchicalSpringSolver%2C%5B%7Bkey%3A%5C%5C%5C%22setOptions%5C%5C%5C%22%2Cvalue%3Afunction%20setOptions(options)%7Bthis.options%3Doptions%7D%7D%2C%7Bkey%3A%5C%5C%5C%22solve%5C%5C%5C%22%2Cvalue%3Afunction%20solve()%7Bvar%20edgeLength%2Cedge%3Bvar%20dx%2Cdy%2Cfx%2Cfy%2CspringForce%2Cdistance%3Bvar%20edges%3Dthis.body.edges%3Bvar%20factor%3D.5%3Bvar%20edgeIndices%3Dthis.physicsBody.physicsEdgeIndices%3Bvar%20nodeIndices%3Dthis.physicsBody.physicsNodeIndices%3Bvar%20forces%3Dthis.physicsBody.forces%3Bfor(var%20i%3D0%3Bi%3CnodeIndices.length%3Bi%2B%2B)%7Bvar%20nodeId%3DnodeIndices%5Bi%5D%3Bforces%5BnodeId%5D.springFx%3D0%3Bforces%5BnodeId%5D.springFy%3D0%7Dfor(var%20_i%3D0%3B_i%3CedgeIndices.length%3B_i%2B%2B)%7Bedge%3Dedges%5BedgeIndices%5B_i%5D%5D%3Bif(edge.connected%3D%3D%3Dtrue)%7BedgeLength%3Dedge.options.length%3D%3D%3Dundefined%3Fthis.options.springLength%3Aedge.options.length%3Bdx%3Dedge.from.x-edge.to.x%3Bdy%3Dedge.from.y-edge.to.y%3Bdistance%3DMath.sqrt(dx*dx%2Bdy*dy)%3Bdistance%3Ddistance%3D%3D%3D0%3F.01%3Adistance%3BspringForce%3Dthis.options.springConstant*(edgeLength-distance)%2Fdistance%3Bfx%3Ddx*springForce%3Bfy%3Ddy*springForce%3Bif(edge.to.level!%3Dedge.from.level)%7Bif(forces%5Bedge.toId%5D!%3D%3Dundefined)%7Bforces%5Bedge.toId%5D.springFx-%3Dfx%3Bforces%5Bedge.toId%5D.springFy-%3Dfy%7Dif(forces%5Bedge.fromId%5D!%3D%3Dundefined)%7Bforces%5Bedge.fromId%5D.springFx%2B%3Dfx%3Bforces%5Bedge.fromId%5D.springFy%2B%3Dfy%7D%7Delse%7Bif(forces%5Bedge.toId%5D!%3D%3Dundefined)%7Bforces%5Bedge.toId%5D.x-%3Dfactor*fx%3Bforces%5Bedge.toId%5D.y-%3Dfactor*fy%7Dif(forces%5Bedge.fromId%5D!%3D%3Dundefined)%7Bforces%5Bedge.fromId%5D.x%2B%3Dfactor*fx%3Bforces%5Bedge.fromId%5D.y%2B%3Dfactor*fy%7D%7D%7D%7DspringForce%3D1%3Bvar%20springFx%2CspringFy%3Bfor(var%20_i2%3D0%3B_i2%3CnodeIndices.length%3B_i2%2B%2B)%7Bvar%20_nodeId%3DnodeIndices%5B_i2%5D%3BspringFx%3DMath.min(springForce%2CMath.max(-springForce%2Cforces%5B_nodeId%5D.springFx))%3BspringFy%3DMath.min(springForce%2CMath.max(-springForce%2Cforces%5B_nodeId%5D.springFy))%3Bforces%5B_nodeId%5D.x%2B%3DspringFx%3Bforces%5B_nodeId%5D.y%2B%3DspringFy%7Dvar%20totalFx%3D0%3Bvar%20totalFy%3D0%3Bfor(var%20_i3%3D0%3B_i3%3CnodeIndices.length%3B_i3%2B%2B)%7Bvar%20_nodeId2%3DnodeIndices%5B_i3%5D%3BtotalFx%2B%3Dforces%5B_nodeId2%5D.x%3BtotalFy%2B%3Dforces%5B_nodeId2%5D.y%7Dvar%20correctionFx%3DtotalFx%2FnodeIndices.length%3Bvar%20correctionFy%3DtotalFy%2FnodeIndices.length%3Bfor(var%20_i4%3D0%3B_i4%3CnodeIndices.length%3B_i4%2B%2B)%7Bvar%20_nodeId3%3DnodeIndices%5B_i4%5D%3Bforces%5B_nodeId3%5D.x-%3DcorrectionFx%3Bforces%5B_nodeId3%5D.y-%3DcorrectionFy%7D%7D%7D%5D)%3Breturn%20HierarchicalSpringSolver%7D()%3Bexports%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3DHierarchicalSpringSolver%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_getPrototypeOf%3D__webpack_require__(3)%3Bvar%20_getPrototypeOf2%3D_interopRequireDefault(_getPrototypeOf)%3Bvar%20_classCallCheck2%3D__webpack_require__(0)%3Bvar%20_classCallCheck3%3D_interopRequireDefault(_classCallCheck2)%3Bvar%20_createClass2%3D__webpack_require__(1)%3Bvar%20_createClass3%3D_interopRequireDefault(_createClass2)%3Bvar%20_possibleConstructorReturn2%3D__webpack_require__(4)%3Bvar%20_possibleConstructorReturn3%3D_interopRequireDefault(_possibleConstructorReturn2)%3Bvar%20_inherits2%3D__webpack_require__(5)%3Bvar%20_inherits3%3D_interopRequireDefault(_inherits2)%3Bvar%20_BarnesHutSolver2%3D__webpack_require__(120)%3Bvar%20_BarnesHutSolver3%3D_interopRequireDefault(_BarnesHutSolver2)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20ForceAtlas2BasedRepulsionSolver%3Dfunction(_BarnesHutSolver)%7B(0%2C_inherits3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(ForceAtlas2BasedRepulsionSolver%2C_BarnesHutSolver)%3Bfunction%20ForceAtlas2BasedRepulsionSolver(body%2CphysicsBody%2Coptions)%7B(0%2C_classCallCheck3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2CForceAtlas2BasedRepulsionSolver)%3Breturn(0%2C_possibleConstructorReturn3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2C(ForceAtlas2BasedRepulsionSolver.__proto__%7C%7C(0%2C_getPrototypeOf2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(ForceAtlas2BasedRepulsionSolver)).call(this%2Cbody%2CphysicsBody%2Coptions))%7D(0%2C_createClass3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(ForceAtlas2BasedRepulsionSolver%2C%5B%7Bkey%3A%5C%5C%5C%22_calculateForces%5C%5C%5C%22%2Cvalue%3Afunction%20_calculateForces(distance%2Cdx%2Cdy%2Cnode%2CparentBranch)%7Bif(distance%3D%3D%3D0)%7Bdistance%3D.1*Math.random()%3Bdx%3Ddistance%7Dif(this.overlapAvoidanceFactor%3C1%26%26node.shape.radius)%7Bdistance%3DMath.max(.1%2Bthis.overlapAvoidanceFactor*node.shape.radius%2Cdistance-node.shape.radius)%7Dvar%20degree%3Dnode.edges.length%2B1%3Bvar%20gravityForce%3Dthis.options.gravitationalConstant*parentBranch.mass*node.options.mass*degree%2FMath.pow(distance%2C2)%3Bvar%20fx%3Ddx*gravityForce%3Bvar%20fy%3Ddy*gravityForce%3Bthis.physicsBody.forces%5Bnode.id%5D.x%2B%3Dfx%3Bthis.physicsBody.forces%5Bnode.id%5D.y%2B%3Dfy%7D%7D%5D)%3Breturn%20ForceAtlas2BasedRepulsionSolver%7D(_BarnesHutSolver3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)%3Bexports%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3DForceAtlas2BasedRepulsionSolver%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_getPrototypeOf%3D__webpack_require__(3)%3Bvar%20_getPrototypeOf2%3D_interopRequireDefault(_getPrototypeOf)%3Bvar%20_classCallCheck2%3D__webpack_require__(0)%3Bvar%20_classCallCheck3%3D_interopRequireDefault(_classCallCheck2)%3Bvar%20_createClass2%3D__webpack_require__(1)%3Bvar%20_createClass3%3D_interopRequireDefault(_createClass2)%3Bvar%20_possibleConstructorReturn2%3D__webpack_require__(4)%3Bvar%20_possibleConstructorReturn3%3D_interopRequireDefault(_possibleConstructorReturn2)%3Bvar%20_inherits2%3D__webpack_require__(5)%3Bvar%20_inherits3%3D_interopRequireDefault(_inherits2)%3Bvar%20_CentralGravitySolver2%3D__webpack_require__(121)%3Bvar%20_CentralGravitySolver3%3D_interopRequireDefault(_CentralGravitySolver2)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20ForceAtlas2BasedCentralGravitySolver%3Dfunction(_CentralGravitySolver)%7B(0%2C_inherits3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(ForceAtlas2BasedCentralGravitySolver%2C_CentralGravitySolver)%3Bfunction%20ForceAtlas2BasedCentralGravitySolver(body%2CphysicsBody%2Coptions)%7B(0%2C_classCallCheck3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2CForceAtlas2BasedCentralGravitySolver)%3Breturn(0%2C_possibleConstructorReturn3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2C(ForceAtlas2BasedCentralGravitySolver.__proto__%7C%7C(0%2C_getPrototypeOf2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(ForceAtlas2BasedCentralGravitySolver)).call(this%2Cbody%2CphysicsBody%2Coptions))%7D(0%2C_createClass3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(ForceAtlas2BasedCentralGravitySolver%2C%5B%7Bkey%3A%5C%5C%5C%22_calculateForces%5C%5C%5C%22%2Cvalue%3Afunction%20_calculateForces(distance%2Cdx%2Cdy%2Cforces%2Cnode)%7Bif(distance%3E0)%7Bvar%20degree%3Dnode.edges.length%2B1%3Bvar%20gravityForce%3Dthis.options.centralGravity*degree*node.options.mass%3Bforces%5Bnode.id%5D.x%3Ddx*gravityForce%3Bforces%5Bnode.id%5D.y%3Ddy*gravityForce%7D%7D%7D%5D)%3Breturn%20ForceAtlas2BasedCentralGravitySolver%7D(_CentralGravitySolver3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)%3Bexports%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3DForceAtlas2BasedCentralGravitySolver%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_keys%3D__webpack_require__(8)%3Bvar%20_keys2%3D_interopRequireDefault(_keys)%3Bvar%20_typeof2%3D__webpack_require__(6)%3Bvar%20_typeof3%3D_interopRequireDefault(_typeof2)%3Bvar%20_classCallCheck2%3D__webpack_require__(0)%3Bvar%20_classCallCheck3%3D_interopRequireDefault(_classCallCheck2)%3Bvar%20_createClass2%3D__webpack_require__(1)%3Bvar%20_createClass3%3D_interopRequireDefault(_createClass2)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20util%3D__webpack_require__(2)%3Bvar%20NetworkUtil%3D__webpack_require__(76)%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3Bvar%20Cluster%3D__webpack_require__(228)%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3Bvar%20Edge%3D__webpack_require__(74)%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3Bvar%20Node%3D__webpack_require__(47)%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3Bvar%20ClusterEngine%3Dfunction()%7Bfunction%20ClusterEngine(body)%7Bvar%20_this%3Dthis%3B(0%2C_classCallCheck3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2CClusterEngine)%3Bthis.body%3Dbody%3Bthis.clusteredNodes%3D%7B%7D%3Bthis.clusteredEdges%3D%7B%7D%3Bthis.options%3D%7B%7D%3Bthis.defaultOptions%3D%7B%7D%3Butil.extend(this.options%2Cthis.defaultOptions)%3Bthis.body.emitter.on(%5C%5C%5C%22_resetData%5C%5C%5C%22%2Cfunction()%7B_this.clusteredNodes%3D%7B%7D%3B_this.clusteredEdges%3D%7B%7D%7D)%7D(0%2C_createClass3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(ClusterEngine%2C%5B%7Bkey%3A%5C%5C%5C%22clusterByHubsize%5C%5C%5C%22%2Cvalue%3Afunction%20clusterByHubsize(hubsize%2Coptions)%7Bif(hubsize%3D%3D%3Dundefined)%7Bhubsize%3Dthis._getHubSize()%7Delse%20if((typeof%20hubsize%3D%3D%3D%5C%5C%5C%22undefined%5C%5C%5C%22%3F%5C%5C%5C%22undefined%5C%5C%5C%22%3A(0%2C_typeof3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(hubsize))%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22)%7Boptions%3Dthis._checkOptions(hubsize)%3Bhubsize%3Dthis._getHubSize()%7Dvar%20nodesToCluster%3D%5B%5D%3Bfor(var%20i%3D0%3Bi%3Cthis.body.nodeIndices.length%3Bi%2B%2B)%7Bvar%20node%3Dthis.body.nodes%5Bthis.body.nodeIndices%5Bi%5D%5D%3Bif(node.edges.length%3E%3Dhubsize)%7BnodesToCluster.push(node.id)%7D%7Dfor(var%20_i%3D0%3B_i%3CnodesToCluster.length%3B_i%2B%2B)%7Bthis.clusterByConnection(nodesToCluster%5B_i%5D%2Coptions%2Ctrue)%7Dthis.body.emitter.emit(%5C%5C%5C%22_dataChanged%5C%5C%5C%22)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22cluster%5C%5C%5C%22%2Cvalue%3Afunction%20cluster()%7Bvar%20_this2%3Dthis%3Bvar%20options%3Darguments.length%3E0%26%26arguments%5B0%5D!%3D%3Dundefined%3Farguments%5B0%5D%3A%7B%7D%3Bvar%20refreshData%3Darguments.length%3E1%26%26arguments%5B1%5D!%3D%3Dundefined%3Farguments%5B1%5D%3Atrue%3Bif(options.joinCondition%3D%3D%3Dundefined)%7Bthrow%20new%20Error(%5C%5C%5C%22Cannot%20call%20clusterByNodeData%20without%20a%20joinCondition%20function%20in%20the%20options.%5C%5C%5C%22)%7Doptions%3Dthis._checkOptions(options)%3Bvar%20childNodesObj%3D%7B%7D%3Bvar%20childEdgesObj%3D%7B%7D%3Butil.forEach(this.body.nodes%2Cfunction(node%2CnodeId)%7Bvar%20clonedOptions%3DNetworkUtil.cloneOptions(node)%3Bif(options.joinCondition(clonedOptions)%3D%3D%3Dtrue)%7BchildNodesObj%5BnodeId%5D%3Dnode%3Butil.forEach(node.edges%2Cfunction(edge)%7Bif(_this2.clusteredEdges%5Bedge.id%5D%3D%3D%3Dundefined)%7BchildEdgesObj%5Bedge.id%5D%3Dedge%7D%7D)%7D%7D)%3Bthis._cluster(childNodesObj%2CchildEdgesObj%2Coptions%2CrefreshData)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22clusterByEdgeCount%5C%5C%5C%22%2Cvalue%3Afunction%20clusterByEdgeCount(edgeCount%2Coptions)%7Bvar%20_this3%3Dthis%3Bvar%20refreshData%3Darguments.length%3E2%26%26arguments%5B2%5D!%3D%3Dundefined%3Farguments%5B2%5D%3Atrue%3Boptions%3Dthis._checkOptions(options)%3Bvar%20clusters%3D%5B%5D%3Bvar%20usedNodes%3D%7B%7D%3Bvar%20edge%3Dvoid%200%2Cedges%3Dvoid%200%2CrelevantEdgeCount%3Dvoid%200%3Bvar%20_loop%3Dfunction%20_loop(i)%7Bvar%20childNodesObj%3D%7B%7D%3Bvar%20childEdgesObj%3D%7B%7D%3Bvar%20nodeId%3D_this3.body.nodeIndices%5Bi%5D%3Bvar%20node%3D_this3.body.nodes%5BnodeId%5D%3Bif(usedNodes%5BnodeId%5D%3D%3D%3Dundefined)%7BrelevantEdgeCount%3D0%3Bedges%3D%5B%5D%3Bfor(var%20j%3D0%3Bj%3Cnode.edges.length%3Bj%2B%2B)%7Bedge%3Dnode.edges%5Bj%5D%3Bif(_this3.clusteredEdges%5Bedge.id%5D%3D%3D%3Dundefined)%7Bif(edge.toId!%3D%3Dedge.fromId)%7BrelevantEdgeCount%2B%2B%7Dedges.push(edge)%7D%7Dif(relevantEdgeCount%3D%3D%3DedgeCount)%7BcheckJoinCondition%3Dfunction%20checkJoinCondition(node)%7Bif(options.joinCondition%3D%3D%3Dundefined%7C%7Coptions.joinCondition%3D%3D%3Dnull)%7Breturn%20true%7Dvar%20clonedOptions%3DNetworkUtil.cloneOptions(node)%3Breturn%20options.joinCondition(clonedOptions)%7D%3Bvar%20gatheringSuccessful%3Dtrue%3Bfor(var%20_j%3D0%3B_j%3Cedges.length%3B_j%2B%2B)%7Bedge%3Dedges%5B_j%5D%3Bvar%20childNodeId%3D_this3._getConnectedId(edge%2CnodeId)%3Bif(checkJoinCondition(node))%7BchildEdgesObj%5Bedge.id%5D%3Dedge%3BchildNodesObj%5BnodeId%5D%3Dnode%3BchildNodesObj%5BchildNodeId%5D%3D_this3.body.nodes%5BchildNodeId%5D%3BusedNodes%5BnodeId%5D%3Dtrue%7Delse%7BgatheringSuccessful%3Dfalse%3Bbreak%7D%7Dif((0%2C_keys2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(childNodesObj).length%3E0%26%26(0%2C_keys2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(childEdgesObj).length%3E0%26%26gatheringSuccessful%3D%3D%3Dtrue)%7BfindClusterData%3Dfunction%20findClusterData()%7Bfor(var%20n%3D0%3Bn%3Cclusters.length%3B%2B%2Bn)%7Bfor(var%20m%20in%20childNodesObj)%7Bif(clusters%5Bn%5D.nodes%5Bm%5D!%3D%3Dundefined)%7Breturn%20clusters%5Bn%5D%7D%7D%7Dreturn%20undefined%7D%3BfoundCluster%3DfindClusterData()%3Bif(foundCluster!%3D%3Dundefined)%7Bfor(var%20m%20in%20childNodesObj)%7Bif(foundCluster.nodes%5Bm%5D%3D%3D%3Dundefined)%7BfoundCluster.nodes%5Bm%5D%3DchildNodesObj%5Bm%5D%7D%7Dfor(var%20_m%20in%20childEdgesObj)%7Bif(foundCluster.edges%5B_m%5D%3D%3D%3Dundefined)%7BfoundCluster.edges%5B_m%5D%3DchildEdgesObj%5B_m%5D%7D%7D%7Delse%7Bclusters.push(%7Bnodes%3AchildNodesObj%2Cedges%3AchildEdgesObj%7D)%7D%7D%7D%7D%7D%3Bfor(var%20i%3D0%3Bi%3Cthis.body.nodeIndices.length%3Bi%2B%2B)%7Bvar%20checkJoinCondition%3Bvar%20findClusterData%3Bvar%20foundCluster%3B_loop(i)%7Dfor(var%20i%3D0%3Bi%3Cclusters.length%3Bi%2B%2B)%7Bthis._cluster(clusters%5Bi%5D.nodes%2Cclusters%5Bi%5D.edges%2Coptions%2Cfalse)%7Dif(refreshData%3D%3D%3Dtrue)%7Bthis.body.emitter.emit(%5C%5C%5C%22_dataChanged%5C%5C%5C%22)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22clusterOutliers%5C%5C%5C%22%2Cvalue%3Afunction%20clusterOutliers(options)%7Bvar%20refreshData%3Darguments.length%3E1%26%26arguments%5B1%5D!%3D%3Dundefined%3Farguments%5B1%5D%3Atrue%3Bthis.clusterByEdgeCount(1%2Coptions%2CrefreshData)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22clusterBridges%5C%5C%5C%22%2Cvalue%3Afunction%20clusterBridges(options)%7Bvar%20refreshData%3Darguments.length%3E1%26%26arguments%5B1%5D!%3D%3Dundefined%3Farguments%5B1%5D%3Atrue%3Bthis.clusterByEdgeCount(2%2Coptions%2CrefreshData)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22clusterByConnection%5C%5C%5C%22%2Cvalue%3Afunction%20clusterByConnection(nodeId%2Coptions)%7Bvar%20refreshData%3Darguments.length%3E2%26%26arguments%5B2%5D!%3D%3Dundefined%3Farguments%5B2%5D%3Atrue%3Bif(nodeId%3D%3D%3Dundefined)%7Bthrow%20new%20Error(%5C%5C%5C%22No%20nodeId%20supplied%20to%20clusterByConnection!%5C%5C%5C%22)%7Dif(this.body.nodes%5BnodeId%5D%3D%3D%3Dundefined)%7Bthrow%20new%20Error(%5C%5C%5C%22The%20nodeId%20given%20to%20clusterByConnection%20does%20not%20exist!%5C%5C%5C%22)%7Dvar%20node%3Dthis.body.nodes%5BnodeId%5D%3Boptions%3Dthis._checkOptions(options%2Cnode)%3Bif(options.clusterNodeProperties.x%3D%3D%3Dundefined)%7Boptions.clusterNodeProperties.x%3Dnode.x%7Dif(options.clusterNodeProperties.y%3D%3D%3Dundefined)%7Boptions.clusterNodeProperties.y%3Dnode.y%7Dif(options.clusterNodeProperties.fixed%3D%3D%3Dundefined)%7Boptions.clusterNodeProperties.fixed%3D%7B%7D%3Boptions.clusterNodeProperties.fixed.x%3Dnode.options.fixed.x%3Boptions.clusterNodeProperties.fixed.y%3Dnode.options.fixed.y%7Dvar%20childNodesObj%3D%7B%7D%3Bvar%20childEdgesObj%3D%7B%7D%3Bvar%20parentNodeId%3Dnode.id%3Bvar%20parentClonedOptions%3DNetworkUtil.cloneOptions(node)%3BchildNodesObj%5BparentNodeId%5D%3Dnode%3Bfor(var%20i%3D0%3Bi%3Cnode.edges.length%3Bi%2B%2B)%7Bvar%20edge%3Dnode.edges%5Bi%5D%3Bif(this.clusteredEdges%5Bedge.id%5D%3D%3D%3Dundefined)%7Bvar%20childNodeId%3Dthis._getConnectedId(edge%2CparentNodeId)%3Bif(this.clusteredNodes%5BchildNodeId%5D%3D%3D%3Dundefined)%7Bif(childNodeId!%3D%3DparentNodeId)%7Bif(options.joinCondition%3D%3D%3Dundefined)%7BchildEdgesObj%5Bedge.id%5D%3Dedge%3BchildNodesObj%5BchildNodeId%5D%3Dthis.body.nodes%5BchildNodeId%5D%7Delse%7Bvar%20childClonedOptions%3DNetworkUtil.cloneOptions(this.body.nodes%5BchildNodeId%5D)%3Bif(options.joinCondition(parentClonedOptions%2CchildClonedOptions)%3D%3D%3Dtrue)%7BchildEdgesObj%5Bedge.id%5D%3Dedge%3BchildNodesObj%5BchildNodeId%5D%3Dthis.body.nodes%5BchildNodeId%5D%7D%7D%7Delse%7BchildEdgesObj%5Bedge.id%5D%3Dedge%7D%7D%7D%7Dvar%20childNodeIDs%3D(0%2C_keys2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(childNodesObj).map(function(childNode)%7Breturn%20childNodesObj%5BchildNode%5D.id%7D)%3Bfor(childNode%20in%20childNodesObj)%7Bif(!childNodesObj.hasOwnProperty(childNode))continue%3Bvar%20childNode%3DchildNodesObj%5BchildNode%5D%3Bfor(var%20y%3D0%3By%3CchildNode.edges.length%3By%2B%2B)%7Bvar%20childEdge%3DchildNode.edges%5By%5D%3Bif(childNodeIDs.indexOf(this._getConnectedId(childEdge%2CchildNode.id))%3E-1)%7BchildEdgesObj%5BchildEdge.id%5D%3DchildEdge%7D%7D%7Dthis._cluster(childNodesObj%2CchildEdgesObj%2Coptions%2CrefreshData)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_createClusterEdges%5C%5C%5C%22%2Cvalue%3Afunction%20_createClusterEdges(childNodesObj%2CchildEdgesObj%2CclusterNodeProperties%2CclusterEdgeProperties)%7Bvar%20edge%3Dvoid%200%2CchildNodeId%3Dvoid%200%2CchildNode%3Dvoid%200%2CtoId%3Dvoid%200%2CfromId%3Dvoid%200%2CotherNodeId%3Dvoid%200%3Bvar%20childKeys%3D(0%2C_keys2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(childNodesObj)%3Bvar%20createEdges%3D%5B%5D%3Bfor(var%20i%3D0%3Bi%3CchildKeys.length%3Bi%2B%2B)%7BchildNodeId%3DchildKeys%5Bi%5D%3BchildNode%3DchildNodesObj%5BchildNodeId%5D%3Bfor(var%20j%3D0%3Bj%3CchildNode.edges.length%3Bj%2B%2B)%7Bedge%3DchildNode.edges%5Bj%5D%3Bif(this.clusteredEdges%5Bedge.id%5D%3D%3D%3Dundefined)%7Bif(edge.toId%3D%3Dedge.fromId)%7BchildEdgesObj%5Bedge.id%5D%3Dedge%7Delse%7Bif(edge.toId%3D%3DchildNodeId)%7BtoId%3DclusterNodeProperties.id%3BfromId%3Dedge.fromId%3BotherNodeId%3DfromId%7Delse%7BtoId%3Dedge.toId%3BfromId%3DclusterNodeProperties.id%3BotherNodeId%3DtoId%7D%7Dif(childNodesObj%5BotherNodeId%5D%3D%3D%3Dundefined)%7BcreateEdges.push(%7Bedge%3Aedge%2CfromId%3AfromId%2CtoId%3AtoId%7D)%7D%7D%7D%7Dvar%20newEdges%3D%5B%5D%3Bvar%20getNewEdge%3Dfunction%20getNewEdge(createdEdge)%7Bfor(var%20_j2%3D0%3B_j2%3CnewEdges.length%3B_j2%2B%2B)%7Bvar%20newEdge%3DnewEdges%5B_j2%5D%3Bvar%20matchToDirection%3DcreatedEdge.fromId%3D%3D%3DnewEdge.fromId%26%26createdEdge.toId%3D%3D%3DnewEdge.toId%3Bvar%20matchFromDirection%3DcreatedEdge.fromId%3D%3D%3DnewEdge.toId%26%26createdEdge.toId%3D%3D%3DnewEdge.fromId%3Bif(matchToDirection%7C%7CmatchFromDirection)%7Breturn%20newEdge%7D%7Dreturn%20null%7D%3Bfor(var%20_j3%3D0%3B_j3%3CcreateEdges.length%3B_j3%2B%2B)%7Bvar%20createdEdge%3DcreateEdges%5B_j3%5D%3Bvar%20_edge%3DcreatedEdge.edge%3Bvar%20newEdge%3DgetNewEdge(createdEdge)%3Bif(newEdge%3D%3D%3Dnull)%7BnewEdge%3Dthis._createClusteredEdge(createdEdge.fromId%2CcreatedEdge.toId%2C_edge%2CclusterEdgeProperties)%3BnewEdges.push(newEdge)%7Delse%7BnewEdge.clusteringEdgeReplacingIds.push(_edge.id)%7Dthis.body.edges%5B_edge.id%5D.edgeReplacedById%3DnewEdge.id%3Bthis._backupEdgeOptions(_edge)%3B_edge.setOptions(%7Bphysics%3Afalse%7D)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_checkOptions%5C%5C%5C%22%2Cvalue%3Afunction%20_checkOptions()%7Bvar%20options%3Darguments.length%3E0%26%26arguments%5B0%5D!%3D%3Dundefined%3Farguments%5B0%5D%3A%7B%7D%3Bif(options.clusterEdgeProperties%3D%3D%3Dundefined)%7Boptions.clusterEdgeProperties%3D%7B%7D%7Dif(options.clusterNodeProperties%3D%3D%3Dundefined)%7Boptions.clusterNodeProperties%3D%7B%7D%7Dreturn%20options%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_cluster%5C%5C%5C%22%2Cvalue%3Afunction%20_cluster(childNodesObj%2CchildEdgesObj%2Coptions)%7Bvar%20refreshData%3Darguments.length%3E3%26%26arguments%5B3%5D!%3D%3Dundefined%3Farguments%5B3%5D%3Atrue%3Bvar%20tmpNodesToRemove%3D%5B%5D%3Bfor(var%20_nodeId%20in%20childNodesObj)%7Bif(childNodesObj.hasOwnProperty(_nodeId))%7Bif(this.clusteredNodes%5B_nodeId%5D!%3D%3Dundefined)%7BtmpNodesToRemove.push(_nodeId)%7D%7D%7Dfor(var%20n%3D0%3Bn%3CtmpNodesToRemove.length%3B%2B%2Bn)%7Bdelete%20childNodesObj%5BtmpNodesToRemove%5Bn%5D%5D%7Dif((0%2C_keys2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(childNodesObj).length%3D%3D0)%7Breturn%7Dif((0%2C_keys2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(childNodesObj).length%3D%3D1%26%26options.clusterNodeProperties.allowSingleNodeCluster!%3Dtrue)%7Breturn%7Dvar%20clusterNodeProperties%3Dutil.deepExtend(%7B%7D%2Coptions.clusterNodeProperties)%3Bif(options.processProperties!%3D%3Dundefined)%7Bvar%20childNodesOptions%3D%5B%5D%3Bfor(var%20_nodeId2%20in%20childNodesObj)%7Bif(childNodesObj.hasOwnProperty(_nodeId2))%7Bvar%20clonedOptions%3DNetworkUtil.cloneOptions(childNodesObj%5B_nodeId2%5D)%3BchildNodesOptions.push(clonedOptions)%7D%7Dvar%20childEdgesOptions%3D%5B%5D%3Bfor(var%20edgeId%20in%20childEdgesObj)%7Bif(childEdgesObj.hasOwnProperty(edgeId))%7Bif(edgeId.substr(0%2C12)!%3D%3D%5C%5C%5C%22clusterEdge%3A%5C%5C%5C%22)%7Bvar%20_clonedOptions%3DNetworkUtil.cloneOptions(childEdgesObj%5BedgeId%5D%2C%5C%5C%5C%22edge%5C%5C%5C%22)%3BchildEdgesOptions.push(_clonedOptions)%7D%7D%7DclusterNodeProperties%3Doptions.processProperties(clusterNodeProperties%2CchildNodesOptions%2CchildEdgesOptions)%3Bif(!clusterNodeProperties)%7Bthrow%20new%20Error(%5C%5C%5C%22The%20processProperties%20function%20does%20not%20return%20properties!%5C%5C%5C%22)%7D%7Dif(clusterNodeProperties.id%3D%3D%3Dundefined)%7BclusterNodeProperties.id%3D%5C%5C%5C%22cluster%3A%5C%5C%5C%22%2Butil.randomUUID()%7Dvar%20clusterId%3DclusterNodeProperties.id%3Bif(clusterNodeProperties.label%3D%3D%3Dundefined)%7BclusterNodeProperties.label%3D%5C%5C%5C%22cluster%5C%5C%5C%22%7Dvar%20pos%3Dundefined%3Bif(clusterNodeProperties.x%3D%3D%3Dundefined)%7Bpos%3Dthis._getClusterPosition(childNodesObj)%3BclusterNodeProperties.x%3Dpos.x%7Dif(clusterNodeProperties.y%3D%3D%3Dundefined)%7Bif(pos%3D%3D%3Dundefined)%7Bpos%3Dthis._getClusterPosition(childNodesObj)%7DclusterNodeProperties.y%3Dpos.y%7DclusterNodeProperties.id%3DclusterId%3Bvar%20clusterNode%3Dthis.body.functions.createNode(clusterNodeProperties%2CCluster)%3BclusterNode.containedNodes%3DchildNodesObj%3BclusterNode.containedEdges%3DchildEdgesObj%3BclusterNode.clusterEdgeProperties%3Doptions.clusterEdgeProperties%3Bthis.body.nodes%5BclusterNodeProperties.id%5D%3DclusterNode%3Bthis._clusterEdges(childNodesObj%2CchildEdgesObj%2CclusterNodeProperties%2Coptions.clusterEdgeProperties)%3BclusterNodeProperties.id%3Dundefined%3Bif(refreshData%3D%3D%3Dtrue)%7Bthis.body.emitter.emit(%5C%5C%5C%22_dataChanged%5C%5C%5C%22)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_backupEdgeOptions%5C%5C%5C%22%2Cvalue%3Afunction%20_backupEdgeOptions(edge)%7Bif(this.clusteredEdges%5Bedge.id%5D%3D%3D%3Dundefined)%7Bthis.clusteredEdges%5Bedge.id%5D%3D%7Bphysics%3Aedge.options.physics%7D%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_restoreEdge%5C%5C%5C%22%2Cvalue%3Afunction%20_restoreEdge(edge)%7Bvar%20originalOptions%3Dthis.clusteredEdges%5Bedge.id%5D%3Bif(originalOptions!%3D%3Dundefined)%7Bedge.setOptions(%7Bphysics%3AoriginalOptions.physics%7D)%3Bdelete%20this.clusteredEdges%5Bedge.id%5D%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22isCluster%5C%5C%5C%22%2Cvalue%3Afunction%20isCluster(nodeId)%7Bif(this.body.nodes%5BnodeId%5D!%3D%3Dundefined)%7Breturn%20this.body.nodes%5BnodeId%5D.isCluster%3D%3D%3Dtrue%7Delse%7Bconsole.log(%5C%5C%5C%22Node%20does%20not%20exist.%5C%5C%5C%22)%3Breturn%20false%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_getClusterPosition%5C%5C%5C%22%2Cvalue%3Afunction%20_getClusterPosition(childNodesObj)%7Bvar%20childKeys%3D(0%2C_keys2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(childNodesObj)%3Bvar%20minX%3DchildNodesObj%5BchildKeys%5B0%5D%5D.x%3Bvar%20maxX%3DchildNodesObj%5BchildKeys%5B0%5D%5D.x%3Bvar%20minY%3DchildNodesObj%5BchildKeys%5B0%5D%5D.y%3Bvar%20maxY%3DchildNodesObj%5BchildKeys%5B0%5D%5D.y%3Bvar%20node%3Dvoid%200%3Bfor(var%20i%3D1%3Bi%3CchildKeys.length%3Bi%2B%2B)%7Bnode%3DchildNodesObj%5BchildKeys%5Bi%5D%5D%3BminX%3Dnode.x%3CminX%3Fnode.x%3AminX%3BmaxX%3Dnode.x%3EmaxX%3Fnode.x%3AmaxX%5C%5Cn%3BminY%3Dnode.y%3CminY%3Fnode.y%3AminY%3BmaxY%3Dnode.y%3EmaxY%3Fnode.y%3AmaxY%7Dreturn%7Bx%3A.5*(minX%2BmaxX)%2Cy%3A.5*(minY%2BmaxY)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22openCluster%5C%5C%5C%22%2Cvalue%3Afunction%20openCluster(clusterNodeId%2Coptions)%7Bvar%20refreshData%3Darguments.length%3E2%26%26arguments%5B2%5D!%3D%3Dundefined%3Farguments%5B2%5D%3Atrue%3Bif(clusterNodeId%3D%3D%3Dundefined)%7Bthrow%20new%20Error(%5C%5C%5C%22No%20clusterNodeId%20supplied%20to%20openCluster.%5C%5C%5C%22)%7Dvar%20clusterNode%3Dthis.body.nodes%5BclusterNodeId%5D%3Bif(clusterNode%3D%3D%3Dundefined)%7Bthrow%20new%20Error(%5C%5C%5C%22The%20clusterNodeId%20supplied%20to%20openCluster%20does%20not%20exist.%5C%5C%5C%22)%7Dif(clusterNode.isCluster!%3D%3Dtrue%7C%7CclusterNode.containedNodes%3D%3D%3Dundefined%7C%7CclusterNode.containedEdges%3D%3D%3Dundefined)%7Bthrow%20new%20Error(%5C%5C%5C%22The%20node%3A%5C%5C%5C%22%2BclusterNodeId%2B%5C%5C%5C%22%20is%20not%20a%20valid%20cluster.%5C%5C%5C%22)%7Dvar%20stack%3Dthis.findNode(clusterNodeId)%3Bvar%20parentIndex%3Dstack.indexOf(clusterNodeId)-1%3Bif(parentIndex%3E%3D0)%7Bvar%20parentClusterNodeId%3Dstack%5BparentIndex%5D%3Bvar%20parentClusterNode%3Dthis.body.nodes%5BparentClusterNodeId%5D%3BparentClusterNode._openChildCluster(clusterNodeId)%3Bdelete%20this.body.nodes%5BclusterNodeId%5D%3Bif(refreshData%3D%3D%3Dtrue)%7Bthis.body.emitter.emit(%5C%5C%5C%22_dataChanged%5C%5C%5C%22)%7Dreturn%7Dvar%20containedNodes%3DclusterNode.containedNodes%3Bvar%20containedEdges%3DclusterNode.containedEdges%3Bif(options!%3D%3Dundefined%26%26options.releaseFunction!%3D%3Dundefined%26%26typeof%20options.releaseFunction%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22)%7Bvar%20positions%3D%7B%7D%3Bvar%20clusterPosition%3D%7Bx%3AclusterNode.x%2Cy%3AclusterNode.y%7D%3Bfor(var%20_nodeId3%20in%20containedNodes)%7Bif(containedNodes.hasOwnProperty(_nodeId3))%7Bvar%20containedNode%3Dthis.body.nodes%5B_nodeId3%5D%3Bpositions%5B_nodeId3%5D%3D%7Bx%3AcontainedNode.x%2Cy%3AcontainedNode.y%7D%7D%7Dvar%20newPositions%3Doptions.releaseFunction(clusterPosition%2Cpositions)%3Bfor(var%20_nodeId4%20in%20containedNodes)%7Bif(containedNodes.hasOwnProperty(_nodeId4))%7Bvar%20_containedNode%3Dthis.body.nodes%5B_nodeId4%5D%3Bif(newPositions%5B_nodeId4%5D!%3D%3Dundefined)%7B_containedNode.x%3DnewPositions%5B_nodeId4%5D.x%3D%3D%3Dundefined%3FclusterNode.x%3AnewPositions%5B_nodeId4%5D.x%3B_containedNode.y%3DnewPositions%5B_nodeId4%5D.y%3D%3D%3Dundefined%3FclusterNode.y%3AnewPositions%5B_nodeId4%5D.y%7D%7D%7D%7Delse%7Butil.forEach(containedNodes%2Cfunction(containedNode)%7Bif(containedNode.options.fixed.x%3D%3D%3Dfalse)%7BcontainedNode.x%3DclusterNode.x%7Dif(containedNode.options.fixed.y%3D%3D%3Dfalse)%7BcontainedNode.y%3DclusterNode.y%7D%7D)%7Dfor(var%20_nodeId5%20in%20containedNodes)%7Bif(containedNodes.hasOwnProperty(_nodeId5))%7Bvar%20_containedNode2%3Dthis.body.nodes%5B_nodeId5%5D%3B_containedNode2.vx%3DclusterNode.vx%3B_containedNode2.vy%3DclusterNode.vy%3B_containedNode2.setOptions(%7Bphysics%3Atrue%7D)%3Bdelete%20this.clusteredNodes%5B_nodeId5%5D%7D%7Dvar%20edgesToBeDeleted%3D%5B%5D%3Bfor(var%20i%3D0%3Bi%3CclusterNode.edges.length%3Bi%2B%2B)%7BedgesToBeDeleted.push(clusterNode.edges%5Bi%5D)%7Dfor(var%20_i2%3D0%3B_i2%3CedgesToBeDeleted.length%3B_i2%2B%2B)%7Bvar%20edge%3DedgesToBeDeleted%5B_i2%5D%3Bvar%20otherNodeId%3Dthis._getConnectedId(edge%2CclusterNodeId)%3Bvar%20otherNode%3Dthis.clusteredNodes%5BotherNodeId%5D%3Bfor(var%20j%3D0%3Bj%3Cedge.clusteringEdgeReplacingIds.length%3Bj%2B%2B)%7Bvar%20transferId%3Dedge.clusteringEdgeReplacingIds%5Bj%5D%3Bvar%20transferEdge%3Dthis.body.edges%5BtransferId%5D%3Bif(transferEdge%3D%3D%3Dundefined)continue%3Bif(otherNode!%3D%3Dundefined)%7Bvar%20otherCluster%3Dthis.body.nodes%5BotherNode.clusterId%5D%3BotherCluster.containedEdges%5BtransferEdge.id%5D%3DtransferEdge%3Bdelete%20containedEdges%5BtransferEdge.id%5D%3Bvar%20fromId%3DtransferEdge.fromId%3Bvar%20toId%3DtransferEdge.toId%3Bif(transferEdge.toId%3D%3DotherNodeId)%7BtoId%3DotherNode.clusterId%7Delse%7BfromId%3DotherNode.clusterId%7Dthis._createClusteredEdge(fromId%2CtoId%2CtransferEdge%2CotherCluster.clusterEdgeProperties%2C%7Bhidden%3Afalse%2Cphysics%3Atrue%7D)%7Delse%7Bthis._restoreEdge(transferEdge)%7D%7Dedge.remove()%7Dfor(var%20edgeId%20in%20containedEdges)%7Bif(containedEdges.hasOwnProperty(edgeId))%7Bthis._restoreEdge(containedEdges%5BedgeId%5D)%7D%7Ddelete%20this.body.nodes%5BclusterNodeId%5D%3Bif(refreshData%3D%3D%3Dtrue)%7Bthis.body.emitter.emit(%5C%5C%5C%22_dataChanged%5C%5C%5C%22)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getNodesInCluster%5C%5C%5C%22%2Cvalue%3Afunction%20getNodesInCluster(clusterId)%7Bvar%20nodesArray%3D%5B%5D%3Bif(this.isCluster(clusterId)%3D%3D%3Dtrue)%7Bvar%20containedNodes%3Dthis.body.nodes%5BclusterId%5D.containedNodes%3Bfor(var%20_nodeId6%20in%20containedNodes)%7Bif(containedNodes.hasOwnProperty(_nodeId6))%7BnodesArray.push(this.body.nodes%5B_nodeId6%5D.id)%7D%7D%7Dreturn%20nodesArray%7D%7D%2C%7Bkey%3A%5C%5C%5C%22findNode%5C%5C%5C%22%2Cvalue%3Afunction%20findNode(nodeId)%7Bvar%20stack%3D%5B%5D%3Bvar%20max%3D100%3Bvar%20counter%3D0%3Bvar%20node%3Dvoid%200%3Bwhile(this.clusteredNodes%5BnodeId%5D!%3D%3Dundefined%26%26counter%3Cmax)%7Bnode%3Dthis.body.nodes%5BnodeId%5D%3Bif(node%3D%3D%3Dundefined)return%5B%5D%3Bstack.push(node.id)%3BnodeId%3Dthis.clusteredNodes%5BnodeId%5D.clusterId%3Bcounter%2B%2B%7Dnode%3Dthis.body.nodes%5BnodeId%5D%3Bif(node%3D%3D%3Dundefined)return%5B%5D%3Bstack.push(node.id)%3Bstack.reverse()%3Breturn%20stack%7D%7D%2C%7Bkey%3A%5C%5C%5C%22updateClusteredNode%5C%5C%5C%22%2Cvalue%3Afunction%20updateClusteredNode(clusteredNodeId%2CnewOptions)%7Bif(clusteredNodeId%3D%3D%3Dundefined)%7Bthrow%20new%20Error(%5C%5C%5C%22No%20clusteredNodeId%20supplied%20to%20updateClusteredNode.%5C%5C%5C%22)%7Dif(newOptions%3D%3D%3Dundefined)%7Bthrow%20new%20Error(%5C%5C%5C%22No%20newOptions%20supplied%20to%20updateClusteredNode.%5C%5C%5C%22)%7Dif(this.body.nodes%5BclusteredNodeId%5D%3D%3D%3Dundefined)%7Bthrow%20new%20Error(%5C%5C%5C%22The%20clusteredNodeId%20supplied%20to%20updateClusteredNode%20does%20not%20exist.%5C%5C%5C%22)%7Dthis.body.nodes%5BclusteredNodeId%5D.setOptions(newOptions)%3Bthis.body.emitter.emit(%5C%5C%5C%22_dataChanged%5C%5C%5C%22)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22updateEdge%5C%5C%5C%22%2Cvalue%3Afunction%20updateEdge(startEdgeId%2CnewOptions)%7Bif(startEdgeId%3D%3D%3Dundefined)%7Bthrow%20new%20Error(%5C%5C%5C%22No%20startEdgeId%20supplied%20to%20updateEdge.%5C%5C%5C%22)%7Dif(newOptions%3D%3D%3Dundefined)%7Bthrow%20new%20Error(%5C%5C%5C%22No%20newOptions%20supplied%20to%20updateEdge.%5C%5C%5C%22)%7Dif(this.body.edges%5BstartEdgeId%5D%3D%3D%3Dundefined)%7Bthrow%20new%20Error(%5C%5C%5C%22The%20startEdgeId%20supplied%20to%20updateEdge%20does%20not%20exist.%5C%5C%5C%22)%7Dvar%20allEdgeIds%3Dthis.getClusteredEdges(startEdgeId)%3Bfor(var%20i%3D0%3Bi%3CallEdgeIds.length%3Bi%2B%2B)%7Bvar%20edge%3Dthis.body.edges%5BallEdgeIds%5Bi%5D%5D%3Bedge.setOptions(newOptions)%7Dthis.body.emitter.emit(%5C%5C%5C%22_dataChanged%5C%5C%5C%22)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getClusteredEdges%5C%5C%5C%22%2Cvalue%3Afunction%20getClusteredEdges(edgeId)%7Bvar%20stack%3D%5B%5D%3Bvar%20max%3D100%3Bvar%20counter%3D0%3Bwhile(edgeId!%3D%3Dundefined%26%26this.body.edges%5BedgeId%5D!%3D%3Dundefined%26%26counter%3Cmax)%7Bstack.push(this.body.edges%5BedgeId%5D.id)%3BedgeId%3Dthis.body.edges%5BedgeId%5D.edgeReplacedById%3Bcounter%2B%2B%7Dstack.reverse()%3Breturn%20stack%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getBaseEdge%5C%5C%5C%22%2Cvalue%3Afunction%20getBaseEdge(clusteredEdgeId)%7Breturn%20this.getBaseEdges(clusteredEdgeId)%5B0%5D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getBaseEdges%5C%5C%5C%22%2Cvalue%3Afunction%20getBaseEdges(clusteredEdgeId)%7Bvar%20IdsToHandle%3D%5BclusteredEdgeId%5D%3Bvar%20doneIds%3D%5B%5D%3Bvar%20foundIds%3D%5B%5D%3Bvar%20max%3D100%3Bvar%20counter%3D0%3Bwhile(IdsToHandle.length%3E0%26%26counter%3Cmax)%7Bvar%20nextId%3DIdsToHandle.pop()%3Bif(nextId%3D%3D%3Dundefined)continue%3Bvar%20nextEdge%3Dthis.body.edges%5BnextId%5D%3Bif(nextEdge%3D%3D%3Dundefined)continue%3Bcounter%2B%2B%3Bvar%20replacingIds%3DnextEdge.clusteringEdgeReplacingIds%3Bif(replacingIds%3D%3D%3Dundefined)%7BfoundIds.push(nextId)%7Delse%7Bfor(var%20i%3D0%3Bi%3CreplacingIds.length%3B%2B%2Bi)%7Bvar%20replacingId%3DreplacingIds%5Bi%5D%3Bif(IdsToHandle.indexOf(replacingIds)!%3D%3D-1%7C%7CdoneIds.indexOf(replacingIds)!%3D%3D-1)%7Bcontinue%7DIdsToHandle.push(replacingId)%7D%7DdoneIds.push(nextId)%7Dreturn%20foundIds%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_getConnectedId%5C%5C%5C%22%2Cvalue%3Afunction%20_getConnectedId(edge%2CnodeId)%7Bif(edge.toId!%3DnodeId)%7Breturn%20edge.toId%7Delse%20if(edge.fromId!%3DnodeId)%7Breturn%20edge.fromId%7Delse%7Breturn%20edge.fromId%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_getHubSize%5C%5C%5C%22%2Cvalue%3Afunction%20_getHubSize()%7Bvar%20average%3D0%3Bvar%20averageSquared%3D0%3Bvar%20hubCounter%3D0%3Bvar%20largestHub%3D0%3Bfor(var%20i%3D0%3Bi%3Cthis.body.nodeIndices.length%3Bi%2B%2B)%7Bvar%20_node%3Dthis.body.nodes%5Bthis.body.nodeIndices%5Bi%5D%5D%3Bif(_node.edges.length%3ElargestHub)%7BlargestHub%3D_node.edges.length%7Daverage%2B%3D_node.edges.length%3BaverageSquared%2B%3DMath.pow(_node.edges.length%2C2)%3BhubCounter%2B%3D1%7Daverage%3Daverage%2FhubCounter%3BaverageSquared%3DaverageSquared%2FhubCounter%3Bvar%20variance%3DaverageSquared-Math.pow(average%2C2)%3Bvar%20standardDeviation%3DMath.sqrt(variance)%3Bvar%20hubThreshold%3DMath.floor(average%2B2*standardDeviation)%3Bif(hubThreshold%3ElargestHub)%7BhubThreshold%3DlargestHub%7Dreturn%20hubThreshold%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_createClusteredEdge%5C%5C%5C%22%2Cvalue%3Afunction%20_createClusteredEdge(fromId%2CtoId%2CbaseEdge%2CclusterEdgeProperties%2CextraOptions)%7Bvar%20clonedOptions%3DNetworkUtil.cloneOptions(baseEdge%2C%5C%5C%5C%22edge%5C%5C%5C%22)%3Butil.deepExtend(clonedOptions%2CclusterEdgeProperties)%3BclonedOptions.from%3DfromId%3BclonedOptions.to%3DtoId%3BclonedOptions.id%3D%5C%5C%5C%22clusterEdge%3A%5C%5C%5C%22%2Butil.randomUUID()%3Bif(extraOptions!%3D%3Dundefined)%7Butil.deepExtend(clonedOptions%2CextraOptions)%7Dvar%20newEdge%3Dthis.body.functions.createEdge(clonedOptions)%3BnewEdge.clusteringEdgeReplacingIds%3D%5BbaseEdge.id%5D%3BnewEdge.connect()%3Bthis.body.edges%5BnewEdge.id%5D%3DnewEdge%3Breturn%20newEdge%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_clusterEdges%5C%5C%5C%22%2Cvalue%3Afunction%20_clusterEdges(childNodes%2CchildEdges%2CclusterNode%2CclusterEdgeProperties)%7Bif(childEdges%20instanceof%20Edge)%7Bvar%20edge%3DchildEdges%3Bvar%20obj%3D%7B%7D%3Bobj%5Bedge.id%5D%3Dedge%3BchildEdges%3Dobj%7Dif(childNodes%20instanceof%20Node)%7Bvar%20_node2%3DchildNodes%3Bvar%20_obj%3D%7B%7D%3B_obj%5B_node2.id%5D%3D_node2%3BchildNodes%3D_obj%7Dif(clusterNode%3D%3D%3Dundefined%7C%7CclusterNode%3D%3D%3Dnull)%7Bthrow%20new%20Error(%5C%5C%5C%22_clusterEdges%3A%20parameter%20clusterNode%20required%5C%5C%5C%22)%7Dif(clusterEdgeProperties%3D%3D%3Dundefined)%7BclusterEdgeProperties%3DclusterNode.clusterEdgeProperties%7Dthis._createClusterEdges(childNodes%2CchildEdges%2CclusterNode%2CclusterEdgeProperties)%3Bfor(var%20edgeId%20in%20childEdges)%7Bif(childEdges.hasOwnProperty(edgeId))%7Bif(this.body.edges%5BedgeId%5D!%3D%3Dundefined)%7Bvar%20_edge2%3Dthis.body.edges%5BedgeId%5D%3Bthis._backupEdgeOptions(_edge2)%3B_edge2.setOptions(%7Bphysics%3Afalse%7D)%7D%7D%7Dfor(var%20_nodeId7%20in%20childNodes)%7Bif(childNodes.hasOwnProperty(_nodeId7))%7Bthis.clusteredNodes%5B_nodeId7%5D%3D%7BclusterId%3AclusterNode.id%2Cnode%3Athis.body.nodes%5B_nodeId7%5D%7D%3Bthis.body.nodes%5B_nodeId7%5D.setOptions(%7Bphysics%3Afalse%7D)%7D%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_getClusterNodeForNode%5C%5C%5C%22%2Cvalue%3Afunction%20_getClusterNodeForNode(nodeId)%7Bif(nodeId%3D%3D%3Dundefined)return%20undefined%3Bvar%20clusteredNode%3Dthis.clusteredNodes%5BnodeId%5D%3Bif(clusteredNode%3D%3D%3Dundefined)return%20undefined%3Bvar%20clusterId%3DclusteredNode.clusterId%3Bif(clusterId%3D%3D%3Dundefined)return%20undefined%3Breturn%20this.body.nodes%5BclusterId%5D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_filter%5C%5C%5C%22%2Cvalue%3Afunction%20_filter(arr%2Ccallback)%7Bvar%20ret%3D%5B%5D%3Butil.forEach(arr%2Cfunction(item)%7Bif(callback(item))%7Bret.push(item)%7D%7D)%3Breturn%20ret%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_updateState%5C%5C%5C%22%2Cvalue%3Afunction%20_updateState()%7Bvar%20_this4%3Dthis%3Bvar%20nodeId%3Dvoid%200%3Bvar%20deletedNodeIds%3D%5B%5D%3Bvar%20deletedEdgeIds%3D%5B%5D%3Bvar%20eachClusterNode%3Dfunction%20eachClusterNode(callback)%7Butil.forEach(_this4.body.nodes%2Cfunction(node)%7Bif(node.isCluster%3D%3D%3Dtrue)%7Bcallback(node)%7D%7D)%7D%3Bfor(nodeId%20in%20this.clusteredNodes)%7Bif(!this.clusteredNodes.hasOwnProperty(nodeId))continue%3Bvar%20_node3%3Dthis.body.nodes%5BnodeId%5D%3Bif(_node3%3D%3D%3Dundefined)%7BdeletedNodeIds.push(nodeId)%7D%7DeachClusterNode(function(clusterNode)%7Bfor(var%20n%3D0%3Bn%3CdeletedNodeIds.length%3Bn%2B%2B)%7Bdelete%20clusterNode.containedNodes%5BdeletedNodeIds%5Bn%5D%5D%7D%7D)%3Bfor(var%20n%3D0%3Bn%3CdeletedNodeIds.length%3Bn%2B%2B)%7Bdelete%20this.clusteredNodes%5BdeletedNodeIds%5Bn%5D%5D%7Dutil.forEach(this.clusteredEdges%2Cfunction(edgeId)%7Bvar%20edge%3D_this4.body.edges%5BedgeId%5D%3Bif(edge%3D%3D%3Dundefined%7C%7C!edge.endPointsValid())%7BdeletedEdgeIds.push(edgeId)%7D%7D)%3BeachClusterNode(function(clusterNode)%7Butil.forEach(clusterNode.containedEdges%2Cfunction(edge%2CedgeId)%7Bif(!edge.endPointsValid()%26%26deletedEdgeIds.indexOf(edgeId)%3D%3D%3D-1)%7BdeletedEdgeIds.push(edgeId)%7D%7D)%7D)%3Butil.forEach(this.body.edges%2Cfunction(edge%2CedgeId)%7Bvar%20isValid%3Dtrue%3Bvar%20replacedIds%3Dedge.clusteringEdgeReplacingIds%3Bif(replacedIds!%3D%3Dundefined)%7Bvar%20numValid%3D0%3Butil.forEach(replacedIds%2Cfunction(containedEdgeId)%7Bvar%20containedEdge%3D_this4.body.edges%5BcontainedEdgeId%5D%3Bif(containedEdge!%3D%3Dundefined%26%26containedEdge.endPointsValid())%7BnumValid%2B%3D1%7D%7D)%3BisValid%3DnumValid%3E0%7Dif(!edge.endPointsValid()%7C%7C!isValid)%7BdeletedEdgeIds.push(edgeId)%7D%7D)%3BeachClusterNode(function(clusterNode)%7Butil.forEach(deletedEdgeIds%2Cfunction(deletedEdgeId)%7Bdelete%20clusterNode.containedEdges%5BdeletedEdgeId%5D%3Butil.forEach(clusterNode.edges%2Cfunction(edge%2Cm)%7Bif(edge.id%3D%3D%3DdeletedEdgeId)%7BclusterNode.edges%5Bm%5D%3Dnull%3Breturn%7Dedge.clusteringEdgeReplacingIds%3D_this4._filter(edge.clusteringEdgeReplacingIds%2Cfunction(id)%7Breturn%20deletedEdgeIds.indexOf(id)%3D%3D%3D-1%7D)%7D)%3BclusterNode.edges%3D_this4._filter(clusterNode.edges%2Cfunction(item)%7Breturn%20item!%3D%3Dnull%7D)%7D)%7D)%3Butil.forEach(deletedEdgeIds%2Cfunction(edgeId)%7Bdelete%20_this4.clusteredEdges%5BedgeId%5D%7D)%3Butil.forEach(deletedEdgeIds%2Cfunction(edgeId)%7Bdelete%20_this4.body.edges%5BedgeId%5D%7D)%3Bvar%20ids%3D(0%2C_keys2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this.body.edges)%3Butil.forEach(ids%2Cfunction(edgeId)%7Bvar%20edge%3D_this4.body.edges%5BedgeId%5D%3Bvar%20shouldBeClustered%3D_this4._isClusteredNode(edge.fromId)%7C%7C_this4._isClusteredNode(edge.toId)%3Bif(shouldBeClustered%3D%3D%3D_this4._isClusteredEdge(edge.id))%7Breturn%7Dif(shouldBeClustered)%7Bvar%20clusterFrom%3D_this4._getClusterNodeForNode(edge.fromId)%3Bif(clusterFrom!%3D%3Dundefined)%7B_this4._clusterEdges(_this4.body.nodes%5Bedge.fromId%5D%2Cedge%2CclusterFrom)%7Dvar%20clusterTo%3D_this4._getClusterNodeForNode(edge.toId)%3Bif(clusterTo!%3D%3Dundefined)%7B_this4._clusterEdges(_this4.body.nodes%5Bedge.toId%5D%2Cedge%2CclusterTo)%7D%7Delse%7Bthrow%20new%20Error(%5C%5C%5C%22remove%20edge%20from%20clustering%20not%20implemented!%5C%5C%5C%22)%7D%7D)%3Bvar%20changed%3Dfalse%3Bvar%20continueLoop%3Dtrue%3Bvar%20_loop2%3Dfunction%20_loop2()%7Bvar%20clustersToOpen%3D%5B%5D%3BeachClusterNode(function(clusterNode)%7Bvar%20numNodes%3D(0%2C_keys2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(clusterNode.containedNodes).length%3Bvar%20allowSingle%3DclusterNode.options.allowSingleNodeCluster%3D%3D%3Dtrue%3Bif(allowSingle%26%26numNodes%3C1%7C%7C!allowSingle%26%26numNodes%3C2)%7BclustersToOpen.push(clusterNode.id)%7D%7D)%3Bfor(var%20_n%3D0%3B_n%3CclustersToOpen.length%3B%2B%2B_n)%7B_this4.openCluster(clustersToOpen%5B_n%5D%2C%7B%7D%2Cfalse)%7DcontinueLoop%3DclustersToOpen.length%3E0%3Bchanged%3Dchanged%7C%7CcontinueLoop%7D%3Bwhile(continueLoop)%7B_loop2()%7Dif(changed)%7Bthis._updateState()%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_isClusteredNode%5C%5C%5C%22%2Cvalue%3Afunction%20_isClusteredNode(nodeId)%7Breturn%20this.clusteredNodes%5BnodeId%5D!%3D%3Dundefined%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_isClusteredEdge%5C%5C%5C%22%2Cvalue%3Afunction%20_isClusteredEdge(edgeId)%7Breturn%20this.clusteredEdges%5BedgeId%5D!%3D%3Dundefined%7D%7D%5D)%3Breturn%20ClusterEngine%7D()%3Bexports%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3DClusterEngine%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_getPrototypeOf%3D__webpack_require__(3)%3Bvar%20_getPrototypeOf2%3D_interopRequireDefault(_getPrototypeOf)%3Bvar%20_classCallCheck2%3D__webpack_require__(0)%3Bvar%20_classCallCheck3%3D_interopRequireDefault(_classCallCheck2)%3Bvar%20_createClass2%3D__webpack_require__(1)%3Bvar%20_createClass3%3D_interopRequireDefault(_createClass2)%3Bvar%20_possibleConstructorReturn2%3D__webpack_require__(4)%3Bvar%20_possibleConstructorReturn3%3D_interopRequireDefault(_possibleConstructorReturn2)%3Bvar%20_inherits2%3D__webpack_require__(5)%3Bvar%20_inherits3%3D_interopRequireDefault(_inherits2)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20util%3D__webpack_require__(2)%3Bvar%20Node%3D__webpack_require__(47)%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3Bvar%20Cluster%3Dfunction(_Node)%7B(0%2C_inherits3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(Cluster%2C_Node)%3Bfunction%20Cluster(options%2Cbody%2Cimagelist%2Cgrouplist%2CglobalOptions%2CdefaultOptions)%7B(0%2C_classCallCheck3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2CCluster)%3Bvar%20_this%3D(0%2C_possibleConstructorReturn3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2C(Cluster.__proto__%7C%7C(0%2C_getPrototypeOf2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(Cluster)).call(this%2Coptions%2Cbody%2Cimagelist%2Cgrouplist%2CglobalOptions%2CdefaultOptions))%3B_this.isCluster%3Dtrue%3B_this.containedNodes%3D%7B%7D%3B_this.containedEdges%3D%7B%7D%3Breturn%20_this%7D(0%2C_createClass3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(Cluster%2C%5B%7Bkey%3A%5C%5C%5C%22_openChildCluster%5C%5C%5C%22%2Cvalue%3Afunction%20_openChildCluster(childClusterId)%7Bvar%20_this2%3Dthis%3Bvar%20childCluster%3Dthis.body.nodes%5BchildClusterId%5D%3Bif(this.containedNodes%5BchildClusterId%5D%3D%3D%3Dundefined)%7Bthrow%20new%20Error(%5C%5C%5C%22node%20with%20id%3A%20%5C%5C%5C%22%2BchildClusterId%2B%5C%5C%5C%22%20not%20in%20current%20cluster%5C%5C%5C%22)%7Dif(!childCluster.isCluster)%7Bthrow%20new%20Error(%5C%5C%5C%22node%20with%20id%3A%20%5C%5C%5C%22%2BchildClusterId%2B%5C%5C%5C%22%20is%20not%20a%20cluster%5C%5C%5C%22)%7Ddelete%20this.containedNodes%5BchildClusterId%5D%3Butil.forEach(childCluster.edges%2Cfunction(edge)%7Bdelete%20_this2.containedEdges%5Bedge.id%5D%7D)%3Butil.forEach(childCluster.containedNodes%2Cfunction(node%2CnodeId)%7B_this2.containedNodes%5BnodeId%5D%3Dnode%7D)%3BchildCluster.containedNodes%3D%7B%7D%3Butil.forEach(childCluster.containedEdges%2Cfunction(edge%2CedgeId)%7B_this2.containedEdges%5BedgeId%5D%3Dedge%7D)%3BchildCluster.containedEdges%3D%7B%7D%3Butil.forEach(childCluster.edges%2Cfunction(clusterEdge)%7Butil.forEach(_this2.edges%2Cfunction(parentClusterEdge)%7Bvar%20index%3DparentClusterEdge.clusteringEdgeReplacingIds.indexOf(clusterEdge.id)%3Bif(index%3D%3D%3D-1)return%3Butil.forEach(clusterEdge.clusteringEdgeReplacingIds%2Cfunction(srcId)%7BparentClusterEdge.clusteringEdgeReplacingIds.push(srcId)%3B_this2.body.edges%5BsrcId%5D.edgeReplacedById%3DparentClusterEdge.id%7D)%3BparentClusterEdge.clusteringEdgeReplacingIds.splice(index%2C1)%7D)%7D)%3BchildCluster.edges%3D%5B%5D%7D%7D%5D)%3Breturn%20Cluster%7D(Node)%3Bexports%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3DCluster%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_classCallCheck2%3D__webpack_require__(0)%3Bvar%20_classCallCheck3%3D_interopRequireDefault(_classCallCheck2)%3Bvar%20_createClass2%3D__webpack_require__(1)%3Bvar%20_createClass3%3D_interopRequireDefault(_createClass2)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dfunction%20_initRequestAnimationFrame()%7Bvar%20func%3Bif(window!%3D%3Dundefined)%7Bfunc%3Dwindow.requestAnimationFrame%7C%7Cwindow.mozRequestAnimationFrame%7C%7Cwindow.webkitRequestAnimationFrame%7C%7Cwindow.msRequestAnimationFrame%7Dif(func%3D%3D%3Dundefined)%7Bwindow.requestAnimationFrame%3Dfunction(callback)%7Bcallback()%7D%7Delse%7Bwindow.requestAnimationFrame%3Dfunc%7D%7Dvar%20util%3D__webpack_require__(2)%3Bvar%20CanvasRenderer%3Dfunction()%7Bfunction%20CanvasRenderer(body%2Ccanvas)%7B(0%2C_classCallCheck3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2CCanvasRenderer)%3B_initRequestAnimationFrame()%3Bthis.body%3Dbody%3Bthis.canvas%3Dcanvas%3Bthis.redrawRequested%3Dfalse%3Bthis.renderTimer%3Dundefined%3Bthis.requiresTimeout%3Dtrue%3Bthis.renderingActive%3Dfalse%3Bthis.renderRequests%3D0%3Bthis.allowRedraw%3Dtrue%3Bthis.dragging%3Dfalse%3Bthis.options%3D%7B%7D%3Bthis.defaultOptions%3D%7BhideEdgesOnDrag%3Afalse%2ChideNodesOnDrag%3Afalse%7D%3Butil.extend(this.options%2Cthis.defaultOptions)%3Bthis._determineBrowserMethod()%3Bthis.bindEventListeners()%7D(0%2C_createClass3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(CanvasRenderer%2C%5B%7Bkey%3A%5C%5C%5C%22bindEventListeners%5C%5C%5C%22%2Cvalue%3Afunction%20bindEventListeners()%7Bvar%20_this%3Dthis%3Bthis.body.emitter.on(%5C%5C%5C%22dragStart%5C%5C%5C%22%2Cfunction()%7B_this.dragging%3Dtrue%7D)%3Bthis.body.emitter.on(%5C%5C%5C%22dragEnd%5C%5C%5C%22%2Cfunction()%7B_this.dragging%3Dfalse%7D)%3Bthis.body.emitter.on(%5C%5C%5C%22_resizeNodes%5C%5C%5C%22%2Cfunction()%7B_this._resizeNodes()%7D)%3Bthis.body.emitter.on(%5C%5C%5C%22_redraw%5C%5C%5C%22%2Cfunction()%7Bif(_this.renderingActive%3D%3D%3Dfalse)%7B_this._redraw()%7D%7D)%3Bthis.body.emitter.on(%5C%5C%5C%22_blockRedraw%5C%5C%5C%22%2Cfunction()%7B_this.allowRedraw%3Dfalse%7D)%3Bthis.body.emitter.on(%5C%5C%5C%22_allowRedraw%5C%5C%5C%22%2Cfunction()%7B_this.allowRedraw%3Dtrue%3B_this.redrawRequested%3Dfalse%7D)%3Bthis.body.emitter.on(%5C%5C%5C%22_requestRedraw%5C%5C%5C%22%2Cthis._requestRedraw.bind(this))%3Bthis.body.emitter.on(%5C%5C%5C%22_startRendering%5C%5C%5C%22%2Cfunction()%7B_this.renderRequests%2B%3D1%3B_this.renderingActive%3Dtrue%3B_this._startRendering()%7D)%3Bthis.body.emitter.on(%5C%5C%5C%22_stopRendering%5C%5C%5C%22%2Cfunction()%7B_this.renderRequests-%3D1%3B_this.renderingActive%3D_this.renderRequests%3E0%3B_this.renderTimer%3Dundefined%7D)%3Bthis.body.emitter.on(%5C%5C%5C%22destroy%5C%5C%5C%22%2Cfunction()%7B_this.renderRequests%3D0%3B_this.allowRedraw%3Dfalse%3B_this.renderingActive%3Dfalse%3Bif(_this.requiresTimeout%3D%3D%3Dtrue)%7BclearTimeout(_this.renderTimer)%7Delse%7Bwindow.cancelAnimationFrame(_this.renderTimer)%7D_this.body.emitter.off()%7D)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22setOptions%5C%5C%5C%22%2Cvalue%3Afunction%20setOptions(options)%7Bif(options!%3D%3Dundefined)%7Bvar%20fields%3D%5B%5C%5C%5C%22hideEdgesOnDrag%5C%5C%5C%22%2C%5C%5C%5C%22hideNodesOnDrag%5C%5C%5C%22%5D%3Butil.selectiveDeepExtend(fields%2Cthis.options%2Coptions)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_requestNextFrame%5C%5C%5C%22%2Cvalue%3Afunction%20_requestNextFrame(callback%2Cdelay)%7Bif(typeof%20window%3D%3D%3D%5C%5C%5C%22undefined%5C%5C%5C%22)return%3Bvar%20timer%3Dvoid%200%3Bvar%20myWindow%3Dwindow%3Bif(this.requiresTimeout%3D%3D%3Dtrue)%7Btimer%3DmyWindow.setTimeout(callback%2Cdelay)%7Delse%7Bif(myWindow.requestAnimationFrame)%7Btimer%3DmyWindow.requestAnimationFrame(callback)%7D%7Dreturn%20timer%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_startRendering%5C%5C%5C%22%2Cvalue%3Afunction%20_startRendering()%7Bif(this.renderingActive%3D%3D%3Dtrue)%7Bif(this.renderTimer%3D%3D%3Dundefined)%7Bthis.renderTimer%3Dthis._requestNextFrame(this._renderStep.bind(this)%2Cthis.simulationInterval)%7D%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_renderStep%5C%5C%5C%22%2Cvalue%3Afunction%20_renderStep()%7Bif(this.renderingActive%3D%3D%3Dtrue)%7Bthis.renderTimer%3Dundefined%3Bif(this.requiresTimeout%3D%3D%3Dtrue)%7Bthis._startRendering()%7Dthis._redraw()%3Bif(this.requiresTimeout%3D%3D%3Dfalse)%7Bthis._startRendering()%7D%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22redraw%5C%5C%5C%22%2Cvalue%3Afunction%20redraw()%7Bthis.body.emitter.emit(%5C%5C%5C%22setSize%5C%5C%5C%22)%3Bthis._redraw()%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_requestRedraw%5C%5C%5C%22%2Cvalue%3Afunction%20_requestRedraw()%7Bvar%20_this2%3Dthis%3Bif(this.redrawRequested!%3D%3Dtrue%26%26this.renderingActive%3D%3D%3Dfalse%26%26this.allowRedraw%3D%3D%3Dtrue)%7Bthis.redrawRequested%3Dtrue%3Bthis._requestNextFrame(function()%7B_this2._redraw(false)%7D%2C0)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_redraw%5C%5C%5C%22%2Cvalue%3Afunction%20_redraw()%7Bvar%20hidden%3Darguments.length%3E0%26%26arguments%5B0%5D!%3D%3Dundefined%3Farguments%5B0%5D%3Afalse%3Bif(this.allowRedraw%3D%3D%3Dtrue)%7Bthis.body.emitter.emit(%5C%5C%5C%22initRedraw%5C%5C%5C%22)%3Bthis.redrawRequested%3Dfalse%3Bif(this.canvas.frame.canvas.width%3D%3D%3D0%7C%7Cthis.canvas.frame.canvas.height%3D%3D%3D0)%7Bthis.canvas.setSize()%7Dthis.canvas.setTransform()%3Bvar%20ctx%3Dthis.canvas.getContext()%3Bvar%20w%3Dthis.canvas.frame.canvas.clientWidth%3Bvar%20h%3Dthis.canvas.frame.canvas.clientHeight%3Bctx.clearRect(0%2C0%2Cw%2Ch)%3Bif(this.canvas.frame.clientWidth%3D%3D%3D0)%7Breturn%7Dctx.save()%3Bctx.translate(this.body.view.translation.x%2Cthis.body.view.translation.y)%3Bctx.scale(this.body.view.scale%2Cthis.body.view.scale)%3Bctx.beginPath()%3Bthis.body.emitter.emit(%5C%5C%5C%22beforeDrawing%5C%5C%5C%22%2Cctx)%3Bctx.closePath()%3Bif(hidden%3D%3D%3Dfalse)%7Bif(this.dragging%3D%3D%3Dfalse%7C%7Cthis.dragging%3D%3D%3Dtrue%26%26this.options.hideEdgesOnDrag%3D%3D%3Dfalse)%7Bthis._drawEdges(ctx)%7D%7Dif(this.dragging%3D%3D%3Dfalse%7C%7Cthis.dragging%3D%3D%3Dtrue%26%26this.options.hideNodesOnDrag%3D%3D%3Dfalse)%7Bthis._drawNodes(ctx%2Chidden)%7Dctx.beginPath()%3Bthis.body.emitter.emit(%5C%5C%5C%22afterDrawing%5C%5C%5C%22%2Cctx)%3Bctx.closePath()%3Bctx.restore()%3Bif(hidden%3D%3D%3Dtrue)%7Bctx.clearRect(0%2C0%2Cw%2Ch)%7D%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_resizeNodes%5C%5C%5C%22%2Cvalue%3Afunction%20_resizeNodes()%7Bthis.canvas.setTransform()%3Bvar%20ctx%3Dthis.canvas.getContext()%3Bctx.save()%3Bctx.translate(this.body.view.translation.x%2Cthis.body.view.translation.y)%3Bctx.scale(this.body.view.scale%2Cthis.body.view.scale)%3Bvar%20nodes%3Dthis.body.nodes%3Bvar%20node%3Dvoid%200%3Bfor(var%20nodeId%20in%20nodes)%7Bif(nodes.hasOwnProperty(nodeId))%7Bnode%3Dnodes%5BnodeId%5D%3Bnode.resize(ctx)%3Bnode.updateBoundingBox(ctx%2Cnode.selected)%7D%7Dctx.restore()%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_drawNodes%5C%5C%5C%22%2Cvalue%3Afunction%20_drawNodes(ctx)%7Bvar%20alwaysShow%3Darguments.length%3E1%26%26arguments%5B1%5D!%3D%3Dundefined%3Farguments%5B1%5D%3Afalse%3Bvar%20nodes%3Dthis.body.nodes%3Bvar%20nodeIndices%3Dthis.body.nodeIndices%3Bvar%20node%3Dvoid%200%3Bvar%20selected%3D%5B%5D%3Bvar%20margin%3D20%3Bvar%20topLeft%3Dthis.canvas.DOMtoCanvas(%7Bx%3A-margin%2Cy%3A-margin%7D)%3Bvar%20bottomRight%3Dthis.canvas.DOMtoCanvas(%7Bx%3Athis.canvas.frame.canvas.clientWidth%2Bmargin%2Cy%3Athis.canvas.frame.canvas.clientHeight%2Bmargin%7D)%3Bvar%20viewableArea%3D%7Btop%3AtopLeft.y%2Cleft%3AtopLeft.x%2Cbottom%3AbottomRight.y%2Cright%3AbottomRight.x%7D%3Bfor(var%20i%3D0%3Bi%3CnodeIndices.length%3Bi%2B%2B)%7Bnode%3Dnodes%5BnodeIndices%5Bi%5D%5D%3Bif(node.isSelected())%7Bselected.push(nodeIndices%5Bi%5D)%7Delse%7Bif(alwaysShow%3D%3D%3Dtrue)%7Bnode.draw(ctx)%7Delse%20if(node.isBoundingBoxOverlappingWith(viewableArea)%3D%3D%3Dtrue)%7Bnode.draw(ctx)%7Delse%7Bnode.updateBoundingBox(ctx%2Cnode.selected)%7D%7D%7Dfor(var%20_i%3D0%3B_i%3Cselected.length%3B_i%2B%2B)%7Bnode%3Dnodes%5Bselected%5B_i%5D%5D%3Bnode.draw(ctx)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_drawEdges%5C%5C%5C%22%2Cvalue%3Afunction%20_drawEdges(ctx)%7Bvar%20edges%3Dthis.body.edges%3Bvar%20edgeIndices%3Dthis.body.edgeIndices%3Bvar%20edge%3Dvoid%200%3Bfor(var%20i%3D0%3Bi%3CedgeIndices.length%3Bi%2B%2B)%7Bedge%3Dedges%5BedgeIndices%5Bi%5D%5D%3Bif(edge.connected%3D%3D%3Dtrue)%7Bedge.draw(ctx)%7D%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_determineBrowserMethod%5C%5C%5C%22%2Cvalue%3Afunction%20_determineBrowserMethod()%7Bif(typeof%20window!%3D%3D%5C%5C%5C%22undefined%5C%5C%5C%22)%7Bvar%20browserType%3Dnavigator.userAgent.toLowerCase()%3Bthis.requiresTimeout%3Dfalse%3Bif(browserType.indexOf(%5C%5C%5C%22msie%209.0%5C%5C%5C%22)!%3D-1)%7Bthis.requiresTimeout%3Dtrue%7Delse%20if(browserType.indexOf(%5C%5C%5C%22safari%5C%5C%5C%22)!%3D-1)%7Bif(browserType.indexOf(%5C%5C%5C%22chrome%5C%5C%5C%22)%3C%3D-1)%7Bthis.requiresTimeout%3Dtrue%7D%7D%7Delse%7Bthis.requiresTimeout%3Dtrue%7D%7D%7D%5D)%3Breturn%20CanvasRenderer%7D()%3Bexports%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3DCanvasRenderer%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_classCallCheck2%3D__webpack_require__(0)%3Bvar%20_classCallCheck3%3D_interopRequireDefault(_classCallCheck2)%3Bvar%20_createClass2%3D__webpack_require__(1)%3Bvar%20_createClass3%3D_interopRequireDefault(_createClass2)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20Hammer%3D__webpack_require__(10)%3Bvar%20hammerUtil%3D__webpack_require__(37)%3Bvar%20util%3D__webpack_require__(2)%3Bvar%20Canvas%3Dfunction()%7Bfunction%20Canvas(body)%7B(0%2C_classCallCheck3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2CCanvas)%3Bthis.body%3Dbody%3Bthis.pixelRatio%3D1%3Bthis.resizeTimer%3Dundefined%3Bthis.resizeFunction%3Dthis._onResize.bind(this)%3Bthis.cameraState%3D%7B%7D%3Bthis.initialized%3Dfalse%3Bthis.canvasViewCenter%3D%7B%7D%3Bthis.options%3D%7B%7D%3Bthis.defaultOptions%3D%7BautoResize%3Atrue%2Cheight%3A%5C%5C%5C%22100%25%5C%5C%5C%22%2Cwidth%3A%5C%5C%5C%22100%25%5C%5C%5C%22%7D%3Butil.extend(this.options%2Cthis.defaultOptions)%3Bthis.bindEventListeners()%7D(0%2C_createClass3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(Canvas%2C%5B%7Bkey%3A%5C%5C%5C%22bindEventListeners%5C%5C%5C%22%2Cvalue%3Afunction%20bindEventListeners()%7Bvar%20_this%3Dthis%3Bthis.body.emitter.once(%5C%5C%5C%22resize%5C%5C%5C%22%2Cfunction(obj)%7Bif(obj.width!%3D%3D0)%7B_this.body.view.translation.x%3Dobj.width*.5%7Dif(obj.height!%3D%3D0)%7B_this.body.view.translation.y%3Dobj.height*.5%7D%7D)%3Bthis.body.emitter.on(%5C%5C%5C%22setSize%5C%5C%5C%22%2Cthis.setSize.bind(this))%3Bthis.body.emitter.on(%5C%5C%5C%22destroy%5C%5C%5C%22%2Cfunction()%7B_this.hammerFrame.destroy()%3B_this.hammer.destroy()%3B_this._cleanUp()%7D)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22setOptions%5C%5C%5C%22%2Cvalue%3Afunction%20setOptions(options)%7Bvar%20_this2%3Dthis%3Bif(options!%3D%3Dundefined)%7Bvar%20fields%3D%5B%5C%5C%5C%22width%5C%5C%5C%22%2C%5C%5C%5C%22height%5C%5C%5C%22%2C%5C%5C%5C%22autoResize%5C%5C%5C%22%5D%3Butil.selectiveDeepExtend(fields%2Cthis.options%2Coptions)%7Dif(this.options.autoResize%3D%3D%3Dtrue)%7Bthis._cleanUp()%3Bthis.resizeTimer%3DsetInterval(function()%7Bvar%20changed%3D_this2.setSize()%3Bif(changed%3D%3D%3Dtrue)%7B_this2.body.emitter.emit(%5C%5C%5C%22_requestRedraw%5C%5C%5C%22)%7D%7D%2C1e3)%3Bthis.resizeFunction%3Dthis._onResize.bind(this)%3Butil.addEventListener(window%2C%5C%5C%5C%22resize%5C%5C%5C%22%2Cthis.resizeFunction)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_cleanUp%5C%5C%5C%22%2Cvalue%3Afunction%20_cleanUp()%7Bif(this.resizeTimer!%3D%3Dundefined)%7BclearInterval(this.resizeTimer)%7Dutil.removeEventListener(window%2C%5C%5C%5C%22resize%5C%5C%5C%22%2Cthis.resizeFunction)%3Bthis.resizeFunction%3Dundefined%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_onResize%5C%5C%5C%22%2Cvalue%3Afunction%20_onResize()%7Bthis.setSize()%3Bthis.body.emitter.emit(%5C%5C%5C%22_redraw%5C%5C%5C%22)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_getCameraState%5C%5C%5C%22%2Cvalue%3Afunction%20_getCameraState()%7Bvar%20pixelRatio%3Darguments.length%3E0%26%26arguments%5B0%5D!%3D%3Dundefined%3Farguments%5B0%5D%3Athis.pixelRatio%3Bif(this.initialized%3D%3D%3Dtrue)%7Bthis.cameraState.previousWidth%3Dthis.frame.canvas.width%2FpixelRatio%3Bthis.cameraState.previousHeight%3Dthis.frame.canvas.height%2FpixelRatio%3Bthis.cameraState.scale%3Dthis.body.view.scale%3Bthis.cameraState.position%3Dthis.DOMtoCanvas(%7Bx%3A.5*this.frame.canvas.width%2FpixelRatio%2Cy%3A.5*this.frame.canvas.height%2FpixelRatio%7D)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_setCameraState%5C%5C%5C%22%2Cvalue%3Afunction%20_setCameraState()%7Bif(this.cameraState.scale!%3D%3Dundefined%26%26this.frame.canvas.clientWidth!%3D%3D0%26%26this.frame.canvas.clientHeight!%3D%3D0%26%26this.pixelRatio!%3D%3D0%26%26this.cameraState.previousWidth%3E0)%7Bvar%20widthRatio%3Dthis.frame.canvas.width%2Fthis.pixelRatio%2Fthis.cameraState.previousWidth%3Bvar%20heightRatio%3Dthis.frame.canvas.height%2Fthis.pixelRatio%2Fthis.cameraState.previousHeight%3Bvar%20newScale%3Dthis.cameraState.scale%3Bif(widthRatio!%3D1%26%26heightRatio!%3D1)%7BnewScale%3Dthis.cameraState.scale*.5*(widthRatio%2BheightRatio)%7Delse%20if(widthRatio!%3D1)%7BnewScale%3Dthis.cameraState.scale*widthRatio%7Delse%20if(heightRatio!%3D1)%7BnewScale%3Dthis.cameraState.scale*heightRatio%7Dthis.body.view.scale%3DnewScale%3Bvar%20currentViewCenter%3Dthis.DOMtoCanvas(%7Bx%3A.5*this.frame.canvas.clientWidth%2Cy%3A.5*this.frame.canvas.clientHeight%7D)%3Bvar%20distanceFromCenter%3D%7Bx%3AcurrentViewCenter.x-this.cameraState.position.x%2Cy%3AcurrentViewCenter.y-this.cameraState.position.y%7D%3Bthis.body.view.translation.x%2B%3DdistanceFromCenter.x*this.body.view.scale%3Bthis.body.view.translation.y%2B%3DdistanceFromCenter.y*this.body.view.scale%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_prepareValue%5C%5C%5C%22%2Cvalue%3Afunction%20_prepareValue(value)%7Bif(typeof%20value%3D%3D%3D%5C%5C%5C%22number%5C%5C%5C%22)%7Breturn%20value%2B%5C%5C%5C%22px%5C%5C%5C%22%7Delse%20if(typeof%20value%3D%3D%3D%5C%5C%5C%22string%5C%5C%5C%22)%7Bif(value.indexOf(%5C%5C%5C%22%25%5C%5C%5C%22)!%3D%3D-1%7C%7Cvalue.indexOf(%5C%5C%5C%22px%5C%5C%5C%22)!%3D%3D-1)%7Breturn%20value%7Delse%20if(value.indexOf(%5C%5C%5C%22%25%5C%5C%5C%22)%3D%3D%3D-1)%7Breturn%20value%2B%5C%5C%5C%22px%5C%5C%5C%22%7D%7Dthrow%20new%20Error(%5C%5C%5C%22Could%20not%20use%20the%20value%20supplied%20for%20width%20or%20height%3A%5C%5C%5C%22%2Bvalue)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_create%5C%5C%5C%22%2Cvalue%3Afunction%20_create()%7Bwhile(this.body.container.hasChildNodes())%7Bthis.body.container.removeChild(this.body.container.firstChild)%7Dthis.frame%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bthis.frame.className%3D%5C%5C%5C%22vis-network%5C%5C%5C%22%3Bthis.frame.style.position%3D%5C%5C%5C%22relative%5C%5C%5C%22%3Bthis.frame.style.overflow%3D%5C%5C%5C%22hidden%5C%5C%5C%22%3Bthis.frame.tabIndex%3D900%3Bthis.frame.canvas%3Ddocument.createElement(%5C%5C%5C%22canvas%5C%5C%5C%22)%3Bthis.frame.canvas.style.position%3D%5C%5C%5C%22relative%5C%5C%5C%22%3Bthis.frame.appendChild(this.frame.canvas)%3Bif(!this.frame.canvas.getContext)%7Bvar%20noCanvas%3Ddocument.createElement(%5C%5C%5C%22DIV%5C%5C%5C%22)%3BnoCanvas.style.color%3D%5C%5C%5C%22red%5C%5C%5C%22%3BnoCanvas.style.fontWeight%3D%5C%5C%5C%22bold%5C%5C%5C%22%3BnoCanvas.style.padding%3D%5C%5C%5C%2210px%5C%5C%5C%22%3BnoCanvas.innerHTML%3D%5C%5C%5C%22Error%3A%20your%20browser%20does%20not%20support%20HTML%20canvas%5C%5C%5C%22%3Bthis.frame.canvas.appendChild(noCanvas)%7Delse%7Bthis._setPixelRatio()%3Bthis.setTransform()%7Dthis.body.container.appendChild(this.frame)%3Bthis.body.view.scale%3D1%3Bthis.body.view.translation%3D%7Bx%3A.5*this.frame.canvas.clientWidth%2Cy%3A.5*this.frame.canvas.clientHeight%7D%3Bthis._bindHammer()%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_bindHammer%5C%5C%5C%22%2Cvalue%3Afunction%20_bindHammer()%7Bvar%20_this3%3Dthis%3Bif(this.hammer!%3D%3Dundefined)%7Bthis.hammer.destroy()%7Dthis.drag%3D%7B%7D%3Bthis.pinch%3D%7B%7D%3Bthis.hammer%3Dnew%20Hammer(this.frame.canvas)%3Bthis.hammer.get(%5C%5C%5C%22pinch%5C%5C%5C%22).set(%7Benable%3Atrue%7D)%3Bthis.hammer.get(%5C%5C%5C%22pan%5C%5C%5C%22).set(%7Bthreshold%3A5%2Cdirection%3AHammer.DIRECTION_ALL%7D)%3BhammerUtil.onTouch(this.hammer%2Cfunction(event)%7B_this3.body.eventListeners.onTouch(event)%7D)%3Bthis.hammer.on(%5C%5C%5C%22tap%5C%5C%5C%22%2Cfunction(event)%7B_this3.body.eventListeners.onTap(event)%7D)%3Bthis.hammer.on(%5C%5C%5C%22doubletap%5C%5C%5C%22%2Cfunction(event)%7B_this3.body.eventListeners.onDoubleTap(event)%7D)%3Bthis.hammer.on(%5C%5C%5C%22press%5C%5C%5C%22%2Cfunction(event)%7B_this3.body.eventListeners.onHold(event)%7D)%3Bthis.hammer.on(%5C%5C%5C%22panstart%5C%5C%5C%22%2Cfunction(event)%7B_this3.body.eventListeners.onDragStart(event)%7D)%3Bthis.hammer.on(%5C%5C%5C%22panmove%5C%5C%5C%22%2Cfunction(event)%7B_this3.body.eventListeners.onDrag(event)%7D)%3Bthis.hammer.on(%5C%5C%5C%22panend%5C%5C%5C%22%2Cfunction(event)%7B_this3.body.eventListeners.onDragEnd(event)%7D)%3Bthis.hammer.on(%5C%5C%5C%22pinch%5C%5C%5C%22%2Cfunction(event)%7B_this3.body.eventListeners.onPinch(event)%7D)%3Bthis.frame.canvas.addEventListener(%5C%5C%5C%22mousewheel%5C%5C%5C%22%2Cfunction(event)%7B_this3.body.eventListeners.onMouseWheel(event)%7D)%3Bthis.frame.canvas.addEventListener(%5C%5C%5C%22DOMMouseScroll%5C%5C%5C%22%2Cfunction(event)%7B_this3.body.eventListeners.onMouseWheel(event)%7D)%3Bthis.frame.canvas.addEventListener(%5C%5C%5C%22mousemove%5C%5C%5C%22%2Cfunction(event)%7B_this3.body.eventListeners.onMouseMove(event)%7D)%3Bthis.frame.canvas.addEventListener(%5C%5C%5C%22contextmenu%5C%5C%5C%22%2Cfunction(event)%7B_this3.body.eventListeners.onContext(event)%7D)%3Bthis.hammerFrame%3Dnew%20Hammer(this.frame)%3BhammerUtil.onRelease(this.hammerFrame%2Cfunction(event)%7B_this3.body.eventListeners.onRelease(event)%7D)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22setSize%5C%5C%5C%22%2Cvalue%3Afunction%20setSize()%7Bvar%20width%3Darguments.length%3E0%26%26arguments%5B0%5D!%3D%3Dundefined%3Farguments%5B0%5D%3Athis.options.width%3Bvar%20height%3Darguments.length%3E1%26%26arguments%5B1%5D!%3D%3Dundefined%3Farguments%5B1%5D%3Athis.options.height%3Bwidth%3Dthis._prepareValue(width)%3Bheight%3Dthis._prepareValue(height)%3Bvar%20emitEvent%3Dfalse%3Bvar%20oldWidth%3Dthis.frame.canvas.width%3Bvar%20oldHeight%3Dthis.frame.canvas.height%3Bvar%20previousRatio%3Dthis.pixelRatio%3Bthis._setPixelRatio()%3Bif(width!%3Dthis.options.width%7C%7Cheight!%3Dthis.options.height%7C%7Cthis.frame.style.width!%3Dwidth%7C%7Cthis.frame.style.height!%3Dheight)%7Bthis._getCameraState(previousRatio)%3Bthis.frame.style.width%3Dwidth%3Bthis.frame.style.height%3Dheight%3Bthis.frame.canvas.style.width%3D%5C%5C%5C%22100%25%5C%5C%5C%22%3Bthis.frame.canvas.style.height%3D%5C%5C%5C%22100%25%5C%5C%5C%22%3Bthis.frame.canvas.width%3DMath.round(this.frame.canvas.clientWidth*this.pixelRatio)%3Bthis.frame.canvas.height%3DMath.round(this.frame.canvas.clientHeight*this.pixelRatio)%3Bthis.options.width%3Dwidth%3Bthis.options.height%3Dheight%3Bthis.canvasViewCenter%3D%7Bx%3A.5*this.frame.clientWidth%2Cy%3A.5*this.frame.clientHeight%7D%3BemitEvent%3Dtrue%7Delse%7Bvar%20newWidth%3DMath.round(this.frame.canvas.clientWidth*this.pixelRatio)%3Bvar%20newHeight%3DMath.round(this.frame.canvas.clientHeight*this.pixelRatio)%3Bif(this.frame.canvas.width!%3D%3DnewWidth%7C%7Cthis.frame.canvas.height!%3D%3DnewHeight)%7Bthis._getCameraState(previousRatio)%7Dif(this.frame.canvas.width!%3D%3DnewWidth)%7Bthis.frame.canvas.width%3DnewWidth%3BemitEvent%3Dtrue%7Dif(this.frame.canvas.height!%3D%3DnewHeight)%7Bthis.frame.canvas.height%3DnewHeight%3BemitEvent%3Dtrue%7D%7Dif(emitEvent%3D%3D%3Dtrue)%7Bthis.body.emitter.emit(%5C%5C%5C%22resize%5C%5C%5C%22%2C%7Bwidth%3AMath.round(this.frame.canvas.width%2Fthis.pixelRatio)%2Cheight%3AMath.round(this.frame.canvas.height%2Fthis.pixelRatio)%2ColdWidth%3AMath.round(oldWidth%2Fthis.pixelRatio)%2ColdHeight%3AMath.round(oldHeight%2Fthis.pixelRatio)%7D)%3Bthis._setCameraState()%7Dthis.initialized%3Dtrue%3Breturn%20emitEvent%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getContext%5C%5C%5C%22%2Cvalue%3Afunction%20getContext()%7Breturn%20this.frame.canvas.getContext(%5C%5C%5C%222d%5C%5C%5C%22)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_determinePixelRatio%5C%5C%5C%22%2Cvalue%3Afunction%20_determinePixelRatio()%7Bvar%20ctx%3Dthis.getContext()%3Bif(ctx%3D%3D%3Dundefined)%7Bthrow%20new%20Error(%5C%5C%5C%22Could%20not%20get%20canvax%20context%5C%5C%5C%22)%7Dvar%20numerator%3D1%3Bif(typeof%20window!%3D%3D%5C%5C%5C%22undefined%5C%5C%5C%22)%7Bnumerator%3Dwindow.devicePixelRatio%7C%7C1%7Dvar%20denominator%3Dctx.webkitBackingStorePixelRatio%7C%7Cctx.mozBackingStorePixelRatio%7C%7Cctx.msBackingStorePixelRatio%7C%7Cctx.oBackingStorePixelRatio%7C%7Cctx.backingStorePixelRatio%7C%7C1%3Breturn%20numerator%2Fdenominator%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_setPixelRatio%5C%5C%5C%22%2Cvalue%3Afunction%20_setPixelRatio()%7Bthis.pixelRatio%3Dthis._determinePixelRatio()%7D%7D%2C%7Bkey%3A%5C%5C%5C%22setTransform%5C%5C%5C%22%2Cvalue%3Afunction%20setTransform()%7Bvar%20ctx%3Dthis.getContext()%3Bif(ctx%3D%3D%3Dundefined)%7Bthrow%20new%20Error(%5C%5C%5C%22Could%20not%20get%20canvax%20context%5C%5C%5C%22)%7Dctx.setTransform(this.pixelRatio%2C0%2C0%2Cthis.pixelRatio%2C0%2C0)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_XconvertDOMtoCanvas%5C%5C%5C%22%2Cvalue%3Afunction%20_XconvertDOMtoCanvas(x)%7Breturn(x-this.body.view.translation.x)%2Fthis.body.view.scale%7D%7D%2C%7B%5C%5Cnkey%3A%5C%5C%5C%22_XconvertCanvasToDOM%5C%5C%5C%22%2Cvalue%3Afunction%20_XconvertCanvasToDOM(x)%7Breturn%20x*this.body.view.scale%2Bthis.body.view.translation.x%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_YconvertDOMtoCanvas%5C%5C%5C%22%2Cvalue%3Afunction%20_YconvertDOMtoCanvas(y)%7Breturn(y-this.body.view.translation.y)%2Fthis.body.view.scale%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_YconvertCanvasToDOM%5C%5C%5C%22%2Cvalue%3Afunction%20_YconvertCanvasToDOM(y)%7Breturn%20y*this.body.view.scale%2Bthis.body.view.translation.y%7D%7D%2C%7Bkey%3A%5C%5C%5C%22canvasToDOM%5C%5C%5C%22%2Cvalue%3Afunction%20canvasToDOM(pos)%7Breturn%7Bx%3Athis._XconvertCanvasToDOM(pos.x)%2Cy%3Athis._YconvertCanvasToDOM(pos.y)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22DOMtoCanvas%5C%5C%5C%22%2Cvalue%3Afunction%20DOMtoCanvas(pos)%7Breturn%7Bx%3Athis._XconvertDOMtoCanvas(pos.x)%2Cy%3Athis._YconvertDOMtoCanvas(pos.y)%7D%7D%7D%5D)%3Breturn%20Canvas%7D()%3Bexports%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3DCanvas%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_classCallCheck2%3D__webpack_require__(0)%3Bvar%20_classCallCheck3%3D_interopRequireDefault(_classCallCheck2)%3Bvar%20_createClass2%3D__webpack_require__(1)%3Bvar%20_createClass3%3D_interopRequireDefault(_createClass2)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20util%3D__webpack_require__(2)%3Bvar%20NetworkUtil%3D__webpack_require__(76)%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3Bvar%20View%3Dfunction()%7Bfunction%20View(body%2Ccanvas)%7Bvar%20_this%3Dthis%3B(0%2C_classCallCheck3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2CView)%3Bthis.body%3Dbody%3Bthis.canvas%3Dcanvas%3Bthis.animationSpeed%3D1%2Fthis.renderRefreshRate%3Bthis.animationEasingFunction%3D%5C%5C%5C%22easeInOutQuint%5C%5C%5C%22%3Bthis.easingTime%3D0%3Bthis.sourceScale%3D0%3Bthis.targetScale%3D0%3Bthis.sourceTranslation%3D0%3Bthis.targetTranslation%3D0%3Bthis.lockedOnNodeId%3Dundefined%3Bthis.lockedOnNodeOffset%3Dundefined%3Bthis.touchTime%3D0%3Bthis.viewFunction%3Dundefined%3Bthis.body.emitter.on(%5C%5C%5C%22fit%5C%5C%5C%22%2Cthis.fit.bind(this))%3Bthis.body.emitter.on(%5C%5C%5C%22animationFinished%5C%5C%5C%22%2Cfunction()%7B_this.body.emitter.emit(%5C%5C%5C%22_stopRendering%5C%5C%5C%22)%7D)%3Bthis.body.emitter.on(%5C%5C%5C%22unlockNode%5C%5C%5C%22%2Cthis.releaseNode.bind(this))%7D(0%2C_createClass3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(View%2C%5B%7Bkey%3A%5C%5C%5C%22setOptions%5C%5C%5C%22%2Cvalue%3Afunction%20setOptions()%7Bvar%20options%3Darguments.length%3E0%26%26arguments%5B0%5D!%3D%3Dundefined%3Farguments%5B0%5D%3A%7B%7D%3Bthis.options%3Doptions%7D%7D%2C%7Bkey%3A%5C%5C%5C%22fit%5C%5C%5C%22%2Cvalue%3Afunction%20fit()%7Bvar%20options%3Darguments.length%3E0%26%26arguments%5B0%5D!%3D%3Dundefined%3Farguments%5B0%5D%3A%7Bnodes%3A%5B%5D%7D%3Bvar%20initialZoom%3Darguments.length%3E1%26%26arguments%5B1%5D!%3D%3Dundefined%3Farguments%5B1%5D%3Afalse%3Bvar%20range%3Dvoid%200%3Bvar%20zoomLevel%3Dvoid%200%3Bif(options.nodes%3D%3D%3Dundefined%7C%7Coptions.nodes.length%3D%3D%3D0)%7Boptions.nodes%3Dthis.body.nodeIndices%7Dif(initialZoom%3D%3D%3Dtrue)%7Bvar%20positionDefined%3D0%3Bfor(var%20nodeId%20in%20this.body.nodes)%7Bif(this.body.nodes.hasOwnProperty(nodeId))%7Bvar%20node%3Dthis.body.nodes%5BnodeId%5D%3Bif(node.predefinedPosition%3D%3D%3Dtrue)%7BpositionDefined%2B%3D1%7D%7D%7Dif(positionDefined%3E.5*this.body.nodeIndices.length)%7Bthis.fit(options%2Cfalse)%3Breturn%7Drange%3DNetworkUtil.getRange(this.body.nodes%2Coptions.nodes)%3Bvar%20numberOfNodes%3Dthis.body.nodeIndices.length%3BzoomLevel%3D12.662%2F(numberOfNodes%2B7.4147)%2B.0964822%3Bvar%20factor%3DMath.min(this.canvas.frame.canvas.clientWidth%2F600%2Cthis.canvas.frame.canvas.clientHeight%2F600)%3BzoomLevel*%3Dfactor%7Delse%7Bthis.body.emitter.emit(%5C%5C%5C%22_resizeNodes%5C%5C%5C%22)%3Brange%3DNetworkUtil.getRange(this.body.nodes%2Coptions.nodes)%3Bvar%20xDistance%3DMath.abs(range.maxX-range.minX)*1.1%3Bvar%20yDistance%3DMath.abs(range.maxY-range.minY)*1.1%3Bvar%20xZoomLevel%3Dthis.canvas.frame.canvas.clientWidth%2FxDistance%3Bvar%20yZoomLevel%3Dthis.canvas.frame.canvas.clientHeight%2FyDistance%3BzoomLevel%3DxZoomLevel%3C%3DyZoomLevel%3FxZoomLevel%3AyZoomLevel%7Dif(zoomLevel%3E1)%7BzoomLevel%3D1%7Delse%20if(zoomLevel%3D%3D%3D0)%7BzoomLevel%3D1%7Dvar%20center%3DNetworkUtil.findCenter(range)%3Bvar%20animationOptions%3D%7Bposition%3Acenter%2Cscale%3AzoomLevel%2Canimation%3Aoptions.animation%7D%3Bthis.moveTo(animationOptions)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22focus%5C%5C%5C%22%2Cvalue%3Afunction%20focus(nodeId)%7Bvar%20options%3Darguments.length%3E1%26%26arguments%5B1%5D!%3D%3Dundefined%3Farguments%5B1%5D%3A%7B%7D%3Bif(this.body.nodes%5BnodeId%5D!%3D%3Dundefined)%7Bvar%20nodePosition%3D%7Bx%3Athis.body.nodes%5BnodeId%5D.x%2Cy%3Athis.body.nodes%5BnodeId%5D.y%7D%3Boptions.position%3DnodePosition%3Boptions.lockedOnNode%3DnodeId%3Bthis.moveTo(options)%7Delse%7Bconsole.log(%5C%5C%5C%22Node%3A%20%5C%5C%5C%22%2BnodeId%2B%5C%5C%5C%22%20cannot%20be%20found.%5C%5C%5C%22)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22moveTo%5C%5C%5C%22%2Cvalue%3Afunction%20moveTo(options)%7Bif(options%3D%3D%3Dundefined)%7Boptions%3D%7B%7D%3Breturn%7Dif(options.offset%3D%3D%3Dundefined)%7Boptions.offset%3D%7Bx%3A0%2Cy%3A0%7D%7Dif(options.offset.x%3D%3D%3Dundefined)%7Boptions.offset.x%3D0%7Dif(options.offset.y%3D%3D%3Dundefined)%7Boptions.offset.y%3D0%7Dif(options.scale%3D%3D%3Dundefined)%7Boptions.scale%3Dthis.body.view.scale%7Dif(options.position%3D%3D%3Dundefined)%7Boptions.position%3Dthis.getViewPosition()%7Dif(options.animation%3D%3D%3Dundefined)%7Boptions.animation%3D%7Bduration%3A0%7D%7Dif(options.animation%3D%3D%3Dfalse)%7Boptions.animation%3D%7Bduration%3A0%7D%7Dif(options.animation%3D%3D%3Dtrue)%7Boptions.animation%3D%7B%7D%7Dif(options.animation.duration%3D%3D%3Dundefined)%7Boptions.animation.duration%3D1e3%7Dif(options.animation.easingFunction%3D%3D%3Dundefined)%7Boptions.animation.easingFunction%3D%5C%5C%5C%22easeInOutQuad%5C%5C%5C%22%7Dthis.animateView(options)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22animateView%5C%5C%5C%22%2Cvalue%3Afunction%20animateView(options)%7Bif(options%3D%3D%3Dundefined)%7Breturn%7Dthis.animationEasingFunction%3Doptions.animation.easingFunction%3Bthis.releaseNode()%3Bif(options.locked%3D%3D%3Dtrue)%7Bthis.lockedOnNodeId%3Doptions.lockedOnNode%3Bthis.lockedOnNodeOffset%3Doptions.offset%7Dif(this.easingTime!%3D0)%7Bthis._transitionRedraw(true)%7Dthis.sourceScale%3Dthis.body.view.scale%3Bthis.sourceTranslation%3Dthis.body.view.translation%3Bthis.targetScale%3Doptions.scale%3Bthis.body.view.scale%3Dthis.targetScale%3Bvar%20viewCenter%3Dthis.canvas.DOMtoCanvas(%7Bx%3A.5*this.canvas.frame.canvas.clientWidth%2Cy%3A.5*this.canvas.frame.canvas.clientHeight%7D)%3Bvar%20distanceFromCenter%3D%7Bx%3AviewCenter.x-options.position.x%2Cy%3AviewCenter.y-options.position.y%7D%3Bthis.targetTranslation%3D%7Bx%3Athis.sourceTranslation.x%2BdistanceFromCenter.x*this.targetScale%2Boptions.offset.x%2Cy%3Athis.sourceTranslation.y%2BdistanceFromCenter.y*this.targetScale%2Boptions.offset.y%7D%3Bif(options.animation.duration%3D%3D%3D0)%7Bif(this.lockedOnNodeId!%3Dundefined)%7Bthis.viewFunction%3Dthis._lockedRedraw.bind(this)%3Bthis.body.emitter.on(%5C%5C%5C%22initRedraw%5C%5C%5C%22%2Cthis.viewFunction)%7Delse%7Bthis.body.view.scale%3Dthis.targetScale%3Bthis.body.view.translation%3Dthis.targetTranslation%3Bthis.body.emitter.emit(%5C%5C%5C%22_requestRedraw%5C%5C%5C%22)%7D%7Delse%7Bthis.animationSpeed%3D1%2F(60*options.animation.duration*.001)%7C%7C1%2F60%3Bthis.animationEasingFunction%3Doptions.animation.easingFunction%3Bthis.viewFunction%3Dthis._transitionRedraw.bind(this)%3Bthis.body.emitter.on(%5C%5C%5C%22initRedraw%5C%5C%5C%22%2Cthis.viewFunction)%3Bthis.body.emitter.emit(%5C%5C%5C%22_startRendering%5C%5C%5C%22)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_lockedRedraw%5C%5C%5C%22%2Cvalue%3Afunction%20_lockedRedraw()%7Bvar%20nodePosition%3D%7Bx%3Athis.body.nodes%5Bthis.lockedOnNodeId%5D.x%2Cy%3Athis.body.nodes%5Bthis.lockedOnNodeId%5D.y%7D%3Bvar%20viewCenter%3Dthis.canvas.DOMtoCanvas(%7Bx%3A.5*this.canvas.frame.canvas.clientWidth%2Cy%3A.5*this.canvas.frame.canvas.clientHeight%7D)%3Bvar%20distanceFromCenter%3D%7Bx%3AviewCenter.x-nodePosition.x%2Cy%3AviewCenter.y-nodePosition.y%7D%3Bvar%20sourceTranslation%3Dthis.body.view.translation%3Bvar%20targetTranslation%3D%7Bx%3AsourceTranslation.x%2BdistanceFromCenter.x*this.body.view.scale%2Bthis.lockedOnNodeOffset.x%2Cy%3AsourceTranslation.y%2BdistanceFromCenter.y*this.body.view.scale%2Bthis.lockedOnNodeOffset.y%7D%3Bthis.body.view.translation%3DtargetTranslation%7D%7D%2C%7Bkey%3A%5C%5C%5C%22releaseNode%5C%5C%5C%22%2Cvalue%3Afunction%20releaseNode()%7Bif(this.lockedOnNodeId!%3D%3Dundefined%26%26this.viewFunction!%3D%3Dundefined)%7Bthis.body.emitter.off(%5C%5C%5C%22initRedraw%5C%5C%5C%22%2Cthis.viewFunction)%3Bthis.lockedOnNodeId%3Dundefined%3Bthis.lockedOnNodeOffset%3Dundefined%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_transitionRedraw%5C%5C%5C%22%2Cvalue%3Afunction%20_transitionRedraw()%7Bvar%20finished%3Darguments.length%3E0%26%26arguments%5B0%5D!%3D%3Dundefined%3Farguments%5B0%5D%3Afalse%3Bthis.easingTime%2B%3Dthis.animationSpeed%3Bthis.easingTime%3Dfinished%3D%3D%3Dtrue%3F1%3Athis.easingTime%3Bvar%20progress%3Dutil.easingFunctions%5Bthis.animationEasingFunction%5D(this.easingTime)%3Bthis.body.view.scale%3Dthis.sourceScale%2B(this.targetScale-this.sourceScale)*progress%3Bthis.body.view.translation%3D%7Bx%3Athis.sourceTranslation.x%2B(this.targetTranslation.x-this.sourceTranslation.x)*progress%2Cy%3Athis.sourceTranslation.y%2B(this.targetTranslation.y-this.sourceTranslation.y)*progress%7D%3Bif(this.easingTime%3E%3D1)%7Bthis.body.emitter.off(%5C%5C%5C%22initRedraw%5C%5C%5C%22%2Cthis.viewFunction)%3Bthis.easingTime%3D0%3Bif(this.lockedOnNodeId!%3Dundefined)%7Bthis.viewFunction%3Dthis._lockedRedraw.bind(this)%3Bthis.body.emitter.on(%5C%5C%5C%22initRedraw%5C%5C%5C%22%2Cthis.viewFunction)%7Dthis.body.emitter.emit(%5C%5C%5C%22animationFinished%5C%5C%5C%22)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getScale%5C%5C%5C%22%2Cvalue%3Afunction%20getScale()%7Breturn%20this.body.view.scale%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getViewPosition%5C%5C%5C%22%2Cvalue%3Afunction%20getViewPosition()%7Breturn%20this.canvas.DOMtoCanvas(%7Bx%3A.5*this.canvas.frame.canvas.clientWidth%2Cy%3A.5*this.canvas.frame.canvas.clientHeight%7D)%7D%7D%5D)%3Breturn%20View%7D()%3Bexports%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3DView%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_classCallCheck2%3D__webpack_require__(0)%3Bvar%20_classCallCheck3%3D_interopRequireDefault(_classCallCheck2)%3Bvar%20_createClass2%3D__webpack_require__(1)%3Bvar%20_createClass3%3D_interopRequireDefault(_createClass2)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20util%3D__webpack_require__(2)%3Bvar%20NavigationHandler%3D__webpack_require__(233)%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3Bvar%20Popup%3D__webpack_require__(104)%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3Bvar%20InteractionHandler%3Dfunction()%7Bfunction%20InteractionHandler(body%2Ccanvas%2CselectionHandler)%7B(0%2C_classCallCheck3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2CInteractionHandler)%3Bthis.body%3Dbody%3Bthis.canvas%3Dcanvas%3Bthis.selectionHandler%3DselectionHandler%3Bthis.navigationHandler%3Dnew%20NavigationHandler(body%2Ccanvas)%3Bthis.body.eventListeners.onTap%3Dthis.onTap.bind(this)%3Bthis.body.eventListeners.onTouch%3Dthis.onTouch.bind(this)%3Bthis.body.eventListeners.onDoubleTap%3Dthis.onDoubleTap.bind(this)%3Bthis.body.eventListeners.onHold%3Dthis.onHold.bind(this)%3Bthis.body.eventListeners.onDragStart%3Dthis.onDragStart.bind(this)%3Bthis.body.eventListeners.onDrag%3Dthis.onDrag.bind(this)%3Bthis.body.eventListeners.onDragEnd%3Dthis.onDragEnd.bind(this)%3Bthis.body.eventListeners.onMouseWheel%3Dthis.onMouseWheel.bind(this)%3Bthis.body.eventListeners.onPinch%3Dthis.onPinch.bind(this)%3Bthis.body.eventListeners.onMouseMove%3Dthis.onMouseMove.bind(this)%3Bthis.body.eventListeners.onRelease%3Dthis.onRelease.bind(this)%3Bthis.body.eventListeners.onContext%3Dthis.onContext.bind(this)%3Bthis.touchTime%3D0%3Bthis.drag%3D%7B%7D%3Bthis.pinch%3D%7B%7D%3Bthis.popup%3Dundefined%3Bthis.popupObj%3Dundefined%3Bthis.popupTimer%3Dundefined%3Bthis.body.functions.getPointer%3Dthis.getPointer.bind(this)%3Bthis.options%3D%7B%7D%3Bthis.defaultOptions%3D%7BdragNodes%3Atrue%2CdragView%3Atrue%2Chover%3Afalse%2Ckeyboard%3A%7Benabled%3Afalse%2Cspeed%3A%7Bx%3A10%2Cy%3A10%2Czoom%3A.02%7D%2CbindToWindow%3Atrue%7D%2CnavigationButtons%3Afalse%2CtooltipDelay%3A300%2CzoomView%3Atrue%7D%3Butil.extend(this.options%2Cthis.defaultOptions)%3Bthis.bindEventListeners()%7D(0%2C_createClass3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(InteractionHandler%2C%5B%7Bkey%3A%5C%5C%5C%22bindEventListeners%5C%5C%5C%22%2Cvalue%3Afunction%20bindEventListeners()%7Bvar%20_this%3Dthis%3Bthis.body.emitter.on(%5C%5C%5C%22destroy%5C%5C%5C%22%2Cfunction()%7BclearTimeout(_this.popupTimer)%3Bdelete%20_this.body.functions.getPointer%7D)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22setOptions%5C%5C%5C%22%2Cvalue%3Afunction%20setOptions(options)%7Bif(options!%3D%3Dundefined)%7Bvar%20fields%3D%5B%5C%5C%5C%22hideEdgesOnDrag%5C%5C%5C%22%2C%5C%5C%5C%22hideNodesOnDrag%5C%5C%5C%22%2C%5C%5C%5C%22keyboard%5C%5C%5C%22%2C%5C%5C%5C%22multiselect%5C%5C%5C%22%2C%5C%5C%5C%22selectable%5C%5C%5C%22%2C%5C%5C%5C%22selectConnectedEdges%5C%5C%5C%22%5D%3Butil.selectiveNotDeepExtend(fields%2Cthis.options%2Coptions)%3Butil.mergeOptions(this.options%2Coptions%2C%5C%5C%5C%22keyboard%5C%5C%5C%22)%3Bif(options.tooltip)%7Butil.extend(this.options.tooltip%2Coptions.tooltip)%3Bif(options.tooltip.color)%7Bthis.options.tooltip.color%3Dutil.parseColor(options.tooltip.color)%7D%7D%7Dthis.navigationHandler.setOptions(this.options)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getPointer%5C%5C%5C%22%2Cvalue%3Afunction%20getPointer(touch)%7Breturn%7Bx%3Atouch.x-util.getAbsoluteLeft(this.canvas.frame.canvas)%2Cy%3Atouch.y-util.getAbsoluteTop(this.canvas.frame.canvas)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22onTouch%5C%5C%5C%22%2Cvalue%3Afunction%20onTouch(event)%7Bif((new%20Date).valueOf()-this.touchTime%3E50)%7Bthis.drag.pointer%3Dthis.getPointer(event.center)%3Bthis.drag.pinched%3Dfalse%3Bthis.pinch.scale%3Dthis.body.view.scale%3Bthis.touchTime%3D(new%20Date).valueOf()%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22onTap%5C%5C%5C%22%2Cvalue%3Afunction%20onTap(event)%7Bvar%20pointer%3Dthis.getPointer(event.center)%3Bvar%20multiselect%3Dthis.selectionHandler.options.multiselect%26%26(event.changedPointers%5B0%5D.ctrlKey%7C%7Cevent.changedPointers%5B0%5D.metaKey)%3Bthis.checkSelectionChanges(pointer%2Cevent%2Cmultiselect)%3Bthis.selectionHandler._generateClickEvent(%5C%5C%5C%22click%5C%5C%5C%22%2Cevent%2Cpointer)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22onDoubleTap%5C%5C%5C%22%2Cvalue%3Afunction%20onDoubleTap(event)%7Bvar%20pointer%3Dthis.getPointer(event.center)%3Bthis.selectionHandler._generateClickEvent(%5C%5C%5C%22doubleClick%5C%5C%5C%22%2Cevent%2Cpointer)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22onHold%5C%5C%5C%22%2Cvalue%3Afunction%20onHold(event)%7Bvar%20pointer%3Dthis.getPointer(event.center)%3Bvar%20multiselect%3Dthis.selectionHandler.options.multiselect%3Bthis.checkSelectionChanges(pointer%2Cevent%2Cmultiselect)%3Bthis.selectionHandler._generateClickEvent(%5C%5C%5C%22click%5C%5C%5C%22%2Cevent%2Cpointer)%3Bthis.selectionHandler._generateClickEvent(%5C%5C%5C%22hold%5C%5C%5C%22%2Cevent%2Cpointer)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22onRelease%5C%5C%5C%22%2Cvalue%3Afunction%20onRelease(event)%7Bif((new%20Date).valueOf()-this.touchTime%3E10)%7Bvar%20pointer%3Dthis.getPointer(event.center)%3Bthis.selectionHandler._generateClickEvent(%5C%5C%5C%22release%5C%5C%5C%22%2Cevent%2Cpointer)%3Bthis.touchTime%3D(new%20Date).valueOf()%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22onContext%5C%5C%5C%22%2Cvalue%3Afunction%20onContext(event)%7Bvar%20pointer%3Dthis.getPointer(%7Bx%3Aevent.clientX%2Cy%3Aevent.clientY%7D)%3Bthis.selectionHandler._generateClickEvent(%5C%5C%5C%22oncontext%5C%5C%5C%22%2Cevent%2Cpointer)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22checkSelectionChanges%5C%5C%5C%22%2Cvalue%3Afunction%20checkSelectionChanges(pointer%2Cevent)%7Bvar%20add%3Darguments.length%3E2%26%26arguments%5B2%5D!%3D%3Dundefined%3Farguments%5B2%5D%3Afalse%3Bvar%20previousSelection%3Dthis.selectionHandler.getSelection()%3Bvar%20selected%3Dfalse%3Bif(add%3D%3D%3Dtrue)%7Bselected%3Dthis.selectionHandler.selectAdditionalOnPoint(pointer)%7Delse%7Bselected%3Dthis.selectionHandler.selectOnPoint(pointer)%7Dvar%20currentSelection%3Dthis.selectionHandler.getSelection()%3Bvar%20deselectedItems%3Dthis._determineDifference(previousSelection%2CcurrentSelection)%3Bvar%20selectedItems%3Dthis._determineDifference(currentSelection%2CpreviousSelection)%3Bif(deselectedItems.edges.length%3E0)%7Bthis.selectionHandler._generateClickEvent(%5C%5C%5C%22deselectEdge%5C%5C%5C%22%2Cevent%2Cpointer%2CpreviousSelection)%3Bselected%3Dtrue%7Dif(deselectedItems.nodes.length%3E0)%7Bthis.selectionHandler._generateClickEvent(%5C%5C%5C%22deselectNode%5C%5C%5C%22%2Cevent%2Cpointer%2CpreviousSelection)%3Bselected%3Dtrue%7Dif(selectedItems.nodes.length%3E0)%7Bthis.selectionHandler._generateClickEvent(%5C%5C%5C%22selectNode%5C%5C%5C%22%2Cevent%2Cpointer)%3Bselected%3Dtrue%7Dif(selectedItems.edges.length%3E0)%7Bthis.selectionHandler._generateClickEvent(%5C%5C%5C%22selectEdge%5C%5C%5C%22%2Cevent%2Cpointer)%3Bselected%3Dtrue%7Dif(selected%3D%3D%3Dtrue)%7Bthis.selectionHandler._generateClickEvent(%5C%5C%5C%22select%5C%5C%5C%22%2Cevent%2Cpointer)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_determineDifference%5C%5C%5C%22%2Cvalue%3Afunction%20_determineDifference(firstSet%2CsecondSet)%7Bvar%20arrayDiff%3Dfunction%20arrayDiff(firstArr%2CsecondArr)%7Bvar%20result%3D%5B%5D%3Bfor(var%20i%3D0%3Bi%3CfirstArr.length%3Bi%2B%2B)%7Bvar%20value%3DfirstArr%5Bi%5D%3Bif(secondArr.indexOf(value)%3D%3D%3D-1)%7Bresult.push(value)%7D%7Dreturn%20result%7D%3Breturn%7Bnodes%3AarrayDiff(firstSet.nodes%2CsecondSet.nodes)%2Cedges%3AarrayDiff(firstSet.edges%2CsecondSet.edges)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22onDragStart%5C%5C%5C%22%2Cvalue%3Afunction%20onDragStart(event)%7Bif(this.drag.pointer%3D%3D%3Dundefined)%7Bthis.onTouch(event)%7Dvar%20node%3Dthis.selectionHandler.getNodeAt(this.drag.pointer)%3Bthis.drag.dragging%3Dtrue%3Bthis.drag.selection%3D%5B%5D%3Bthis.drag.translation%3Dutil.extend(%7B%7D%2Cthis.body.view.translation)%3Bthis.drag.nodeId%3Dundefined%3Bif(node!%3D%3Dundefined%26%26this.options.dragNodes%3D%3D%3Dtrue)%7Bthis.drag.nodeId%3Dnode.id%3Bif(node.isSelected()%3D%3D%3Dfalse)%7Bthis.selectionHandler.unselectAll()%3Bthis.selectionHandler.selectObject(node)%7Dthis.selectionHandler._generateClickEvent(%5C%5C%5C%22dragStart%5C%5C%5C%22%2Cevent%2Cthis.drag.pointer)%3Bvar%20selection%3Dthis.selectionHandler.selectionObj.nodes%3Bfor(var%20nodeId%20in%20selection)%7Bif(selection.hasOwnProperty(nodeId))%7Bvar%20object%3Dselection%5BnodeId%5D%3Bvar%20s%3D%7Bid%3Aobject.id%2Cnode%3Aobject%2Cx%3Aobject.x%2Cy%3Aobject.y%2CxFixed%3Aobject.options.fixed.x%2CyFixed%3Aobject.options.fixed.y%7D%3Bobject.options.fixed.x%3Dtrue%3Bobject.options.fixed.y%3Dtrue%3Bthis.drag.selection.push(s)%7D%7D%7Delse%7Bthis.selectionHandler._generateClickEvent(%5C%5C%5C%22dragStart%5C%5C%5C%22%2Cevent%2Cthis.drag.pointer%2Cundefined%2Ctrue)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22onDrag%5C%5C%5C%22%2Cvalue%3Afunction%20onDrag(event)%7Bvar%20_this2%3Dthis%3Bif(this.drag.pinched%3D%3D%3Dtrue)%7Breturn%7Dthis.body.emitter.emit(%5C%5C%5C%22unlockNode%5C%5C%5C%22)%3Bvar%20pointer%3Dthis.getPointer(event.center)%3Bvar%20selection%3Dthis.drag.selection%3Bif(selection%26%26selection.length%26%26this.options.dragNodes%3D%3D%3Dtrue)%7Bthis.selectionHandler._generateClickEvent(%5C%5C%5C%22dragging%5C%5C%5C%22%2Cevent%2Cpointer)%3Bvar%20deltaX%3Dpointer.x-this.drag.pointer.x%3Bvar%20deltaY%3Dpointer.y-this.drag.pointer.y%3Bselection.forEach(function(selection)%7Bvar%20node%3Dselection.node%3Bif(selection.xFixed%3D%3D%3Dfalse)%7Bnode.x%3D_this2.canvas._XconvertDOMtoCanvas(_this2.canvas._XconvertCanvasToDOM(selection.x)%2BdeltaX)%7Dif(selection.yFixed%3D%3D%3Dfalse)%7Bnode.y%3D_this2.canvas._YconvertDOMtoCanvas(_this2.canvas._YconvertCanvasToDOM(selection.y)%2BdeltaY)%7D%7D)%3Bthis.body.emitter.emit(%5C%5C%5C%22startSimulation%5C%5C%5C%22)%7Delse%7Bif(this.options.dragView%3D%3D%3Dtrue)%7Bthis.selectionHandler._generateClickEvent(%5C%5C%5C%22dragging%5C%5C%5C%22%2Cevent%2Cpointer%2Cundefined%2Ctrue)%3Bif(this.drag.pointer%3D%3D%3Dundefined)%7Bthis.onDragStart(event)%3Breturn%7Dvar%20diffX%3Dpointer.x-this.drag.pointer.x%3Bvar%20diffY%3Dpointer.y-this.drag.pointer.y%3Bthis.body.view.translation%3D%7Bx%3Athis.drag.translation.x%2BdiffX%2Cy%3Athis.drag.translation.y%2BdiffY%7D%3Bthis.body.emitter.emit(%5C%5C%5C%22_requestRedraw%5C%5C%5C%22)%7D%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22onDragEnd%5C%5C%5C%22%2Cvalue%3Afunction%20onDragEnd(event)%7Bthis.drag.dragging%3Dfalse%3Bvar%20selection%3Dthis.drag.selection%3Bif(selection%26%26selection.length)%7Bselection.forEach(function(s)%7Bs.node.options.fixed.x%3Ds.xFixed%3Bs.node.options.fixed.y%3Ds.yFixed%7D)%3Bthis.selectionHandler._generateClickEvent(%5C%5C%5C%22dragEnd%5C%5C%5C%22%2Cevent%2Cthis.getPointer(event.center))%3Bthis.body.emitter.emit(%5C%5C%5C%22startSimulation%5C%5C%5C%22)%7Delse%7Bthis.selectionHandler._generateClickEvent(%5C%5C%5C%22dragEnd%5C%5C%5C%22%2Cevent%2Cthis.getPointer(event.center)%2Cundefined%2Ctrue)%3Bthis.body.emitter.emit(%5C%5C%5C%22_requestRedraw%5C%5C%5C%22)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22onPinch%5C%5C%5C%22%2Cvalue%3Afunction%20onPinch(event)%7Bvar%20pointer%3Dthis.getPointer(event.center)%3Bthis.drag.pinched%3Dtrue%3Bif(this.pinch%5B%5C%5C%5C%22scale%5C%5C%5C%22%5D%3D%3D%3Dundefined)%7Bthis.pinch.scale%3D1%7Dvar%20scale%3Dthis.pinch.scale*event.scale%3Bthis.zoom(scale%2Cpointer)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22zoom%5C%5C%5C%22%2Cvalue%3Afunction%20zoom(scale%2Cpointer)%7Bif(this.options.zoomView%3D%3D%3Dtrue)%7Bvar%20scaleOld%3Dthis.body.view.scale%3Bif(scale%3C1e-5)%7Bscale%3D1e-5%7Dif(scale%3E10)%7Bscale%3D10%7Dvar%20preScaleDragPointer%3Dundefined%3Bif(this.drag!%3D%3Dundefined)%7Bif(this.drag.dragging%3D%3D%3Dtrue)%7BpreScaleDragPointer%3Dthis.canvas.DOMtoCanvas(this.drag.pointer)%7D%7Dvar%20translation%3Dthis.body.view.translation%3Bvar%20scaleFrac%3Dscale%2FscaleOld%3Bvar%20tx%3D(1-scaleFrac)*pointer.x%2Btranslation.x*scaleFrac%3Bvar%20ty%3D(1-scaleFrac)*pointer.y%2Btranslation.y*scaleFrac%3Bthis.body.view.scale%3Dscale%3Bthis.body.view.translation%3D%7Bx%3Atx%2Cy%3Aty%7D%3Bif(preScaleDragPointer!%3Dundefined)%7Bvar%20postScaleDragPointer%3Dthis.canvas.canvasToDOM(preScaleDragPointer)%3Bthis.drag.pointer.x%3DpostScaleDragPointer.x%3Bthis.drag.pointer.y%3DpostScaleDragPointer.y%7Dthis.body.emitter.emit(%5C%5C%5C%22_requestRedraw%5C%5C%5C%22)%3Bif(scaleOld%3Cscale)%7Bthis.body.emitter.emit(%5C%5C%5C%22zoom%5C%5C%5C%22%2C%7Bdirection%3A%5C%5C%5C%22%2B%5C%5C%5C%22%2Cscale%3Athis.body.view.scale%2Cpointer%3Apointer%7D)%7Delse%7Bthis.body.emitter.emit(%5C%5C%5C%22zoom%5C%5C%5C%22%2C%7Bdirection%3A%5C%5C%5C%22-%5C%5C%5C%22%2Cscale%3Athis.body.view.scale%2Cpointer%3Apointer%7D)%7D%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22onMouseWheel%5C%5C%5C%22%2Cvalue%3Afunction%20onMouseWheel(event)%7Bif(this.options.zoomView%3D%3D%3Dtrue)%7Bvar%20delta%3D0%3Bif(event.wheelDelta)%7Bdelta%3Devent.wheelDelta%2F120%7Delse%20if(event.detail)%7Bdelta%3D-event.detail%2F3%7Dif(delta!%3D%3D0)%7Bvar%20scale%3Dthis.body.view.scale%3Bvar%20zoom%3Ddelta%2F10%3Bif(delta%3C0)%7Bzoom%3Dzoom%2F(1-zoom)%7Dscale*%3D1%2Bzoom%3Bvar%20pointer%3Dthis.getPointer(%7Bx%3Aevent.clientX%2Cy%3Aevent.clientY%7D)%3Bthis.zoom(scale%2Cpointer)%7Devent.preventDefault()%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22onMouseMove%5C%5C%5C%22%2Cvalue%3Afunction%20onMouseMove(event)%7Bvar%20_this3%3Dthis%3Bvar%20pointer%3Dthis.getPointer(%7Bx%3Aevent.clientX%2Cy%3Aevent.clientY%7D)%3Bvar%20popupVisible%3Dfalse%3Bif(this.popup!%3D%3Dundefined)%7Bif(this.popup.hidden%3D%3D%3Dfalse)%7Bthis._checkHidePopup(pointer)%7Dif(this.popup.hidden%3D%3D%3Dfalse)%7BpopupVisible%3Dtrue%3Bthis.popup.setPosition(pointer.x%2B3%2Cpointer.y-5)%3Bthis.popup.show()%7D%7Dif(this.options.keyboard.bindToWindow%3D%3D%3Dfalse%26%26this.options.keyboard.enabled%3D%3D%3Dtrue)%7Bthis.canvas.frame.focus()%7Dif(popupVisible%3D%3D%3Dfalse)%7Bif(this.popupTimer!%3D%3Dundefined)%7BclearInterval(this.popupTimer)%3Bthis.popupTimer%3Dundefined%7Dif(!this.drag.dragging)%7Bthis.popupTimer%3DsetTimeout(function()%7Breturn%20_this3._checkShowPopup(pointer)%7D%2Cthis.options.tooltipDelay)%7D%7Dif(this.options.hover%3D%3D%3Dtrue)%7Bthis.selectionHandler.hoverObject(event%2Cpointer)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_checkShowPopup%5C%5C%5C%22%2Cvalue%3Afunction%20_checkShowPopup(pointer)%7Bvar%20x%3Dthis.canvas._XconvertDOMtoCanvas(pointer.x)%3Bvar%20y%3Dthis.canvas._YconvertDOMtoCanvas(pointer.y)%3Bvar%20pointerObj%3D%7Bleft%3Ax%2Ctop%3Ay%2Cright%3Ax%2Cbottom%3Ay%7D%3Bvar%20previousPopupObjId%3Dthis.popupObj%3D%3D%3Dundefined%3Fundefined%3Athis.popupObj.id%3Bvar%20nodeUnderCursor%3Dfalse%3Bvar%20popupType%3D%5C%5C%5C%22node%5C%5C%5C%22%3Bif(this.popupObj%3D%3D%3Dundefined)%7Bvar%20nodeIndices%3Dthis.body.nodeIndices%3Bvar%20nodes%3Dthis.body.nodes%3Bvar%20node%3Dvoid%200%3Bvar%20overlappingNodes%3D%5B%5D%3Bfor(var%20i%3D0%3Bi%3CnodeIndices.length%3Bi%2B%2B)%7Bnode%3Dnodes%5BnodeIndices%5Bi%5D%5D%3Bif(node.isOverlappingWith(pointerObj)%3D%3D%3Dtrue)%7Bif(node.getTitle()!%3D%3Dundefined)%7BoverlappingNodes.push(nodeIndices%5Bi%5D)%7D%7D%7Dif(overlappingNodes.length%3E0)%7Bthis.popupObj%3Dnodes%5BoverlappingNodes%5BoverlappingNodes.length-1%5D%5D%3BnodeUnderCursor%3Dtrue%7D%7Dif(this.popupObj%3D%3D%3Dundefined%26%26nodeUnderCursor%3D%3D%3Dfalse)%7Bvar%20edgeIndices%3Dthis.body.edgeIndices%3Bvar%20edges%3Dthis.body.edges%3Bvar%20edge%3Dvoid%200%3Bvar%20overlappingEdges%3D%5B%5D%3Bfor(var%20_i%3D0%3B_i%3CedgeIndices.length%3B_i%2B%2B)%7Bedge%3Dedges%5BedgeIndices%5B_i%5D%5D%3Bif(edge.isOverlappingWith(pointerObj)%3D%3D%3Dtrue)%7Bif(edge.connected%3D%3D%3Dtrue%26%26edge.getTitle()!%3D%3Dundefined)%7BoverlappingEdges.push(edgeIndices%5B_i%5D)%7D%7D%7Dif(overlappingEdges.length%3E0)%7Bthis.popupObj%3Dedges%5BoverlappingEdges%5BoverlappingEdges.length-1%5D%5D%3BpopupType%3D%5C%5C%5C%22edge%5C%5C%5C%22%7D%7Dif(this.popupObj!%3D%3Dundefined)%7Bif(this.popupObj.id!%3D%3DpreviousPopupObjId)%7Bif(this.popup%3D%3D%3Dundefined)%7Bthis.popup%3Dnew%20Popup(this.canvas.frame)%7Dthis.popup.popupTargetType%3DpopupType%3Bthis.popup.popupTargetId%3Dthis.popupObj.id%3Bthis.popup.setPosition(pointer.x%2B3%2Cpointer.y-5)%3Bthis.popup.setText(this.popupObj.getTitle())%3Bthis.popup.show()%3Bthis.body.emitter.emit(%5C%5C%5C%22showPopup%5C%5C%5C%22%2Cthis.popupObj.id)%7D%7Delse%7Bif(this.popup!%3D%3Dundefined)%7Bthis.popup.hide()%3Bthis.body.emitter.emit(%5C%5C%5C%22hidePopup%5C%5C%5C%22)%7D%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_checkHidePopup%5C%5C%5C%22%2Cvalue%3Afunction%20_checkHidePopup(pointer)%7Bvar%20pointerObj%3Dthis.selectionHandler._pointerToPositionObject(pointer)%3Bvar%20stillOnObj%3Dfalse%3Bif(this.popup.popupTargetType%3D%3D%3D%5C%5C%5C%22node%5C%5C%5C%22)%7Bif(this.body.nodes%5Bthis.popup.popupTargetId%5D!%3D%3Dundefined)%7BstillOnObj%3Dthis.body.nodes%5Bthis.popup.popupTargetId%5D.isOverlappingWith(pointerObj)%3Bif(stillOnObj%3D%3D%3Dtrue)%7Bvar%20overNode%3Dthis.selectionHandler.getNodeAt(pointer)%3BstillOnObj%3DoverNode%3D%3D%3Dundefined%3Ffalse%3AoverNode.id%3D%3D%3Dthis.popup.popupTargetId%7D%7D%7Delse%7Bif(this.selectionHandler.getNodeAt(pointer)%3D%3D%3Dundefined)%7Bif(this.body.edges%5Bthis.popup.popupTargetId%5D!%3D%3Dundefined)%7BstillOnObj%3Dthis.body.edges%5Bthis.popup.popupTargetId%5D.isOverlappingWith(pointerObj)%7D%7D%7Dif(stillOnObj%3D%3D%3Dfalse)%7Bthis.popupObj%3Dundefined%3Bthis.popup.hide()%3Bthis.body.emitter.emit(%5C%5C%5C%22hidePopup%5C%5C%5C%22)%7D%7D%7D%5D)%3Breturn%20InteractionHandler%7D()%3Bexports%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3DInteractionHandler%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_classCallCheck2%3D__webpack_require__(0)%3Bvar%20_classCallCheck3%3D_interopRequireDefault(_classCallCheck2)%3Bvar%20_createClass2%3D__webpack_require__(1)%3Bvar%20_createClass3%3D_interopRequireDefault(_createClass2)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20Hammer%3D__webpack_require__(10)%3Bvar%20hammerUtil%3D__webpack_require__(37)%3Bvar%20keycharm%3D__webpack_require__(35)%3Bvar%20NavigationHandler%3Dfunction()%7Bfunction%20NavigationHandler(body%2Ccanvas)%7Bvar%20_this%3Dthis%3B(0%2C_classCallCheck3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2CNavigationHandler)%3Bthis.body%3Dbody%3Bthis.canvas%3Dcanvas%3Bthis.iconsCreated%3Dfalse%3Bthis.navigationHammers%3D%5B%5D%3Bthis.boundFunctions%3D%7B%7D%3Bthis.touchTime%3D0%3Bthis.activated%3Dfalse%3Bthis.body.emitter.on(%5C%5C%5C%22activate%5C%5C%5C%22%2Cfunction()%7B_this.activated%3Dtrue%3B_this.configureKeyboardBindings()%7D)%3Bthis.body.emitter.on(%5C%5C%5C%22deactivate%5C%5C%5C%22%2Cfunction()%7B_this.activated%3Dfalse%3B_this.configureKeyboardBindings()%7D)%3Bthis.body.emitter.on(%5C%5C%5C%22destroy%5C%5C%5C%22%2Cfunction()%7Bif(_this.keycharm!%3D%3Dundefined)%7B_this.keycharm.destroy()%7D%7D)%3Bthis.options%3D%7B%7D%7D(0%2C_createClass3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(NavigationHandler%2C%5B%7Bkey%3A%5C%5C%5C%22setOptions%5C%5C%5C%22%2Cvalue%3Afunction%20setOptions(options)%7Bif(options!%3D%3Dundefined)%7Bthis.options%3Doptions%3Bthis.create()%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22create%5C%5C%5C%22%2Cvalue%3Afunction%20create()%7Bif(this.options.navigationButtons%3D%3D%3Dtrue)%7Bif(this.iconsCreated%3D%3D%3Dfalse)%7Bthis.loadNavigationElements()%7D%7Delse%20if(this.iconsCreated%3D%3D%3Dtrue)%7Bthis.cleanNavigation()%7Dthis.configureKeyboardBindings()%7D%7D%2C%7Bkey%3A%5C%5C%5C%22cleanNavigation%5C%5C%5C%22%2Cvalue%3Afunction%20cleanNavigation()%7Bif(this.navigationHammers.length!%3D0)%7Bfor(var%20i%3D0%3Bi%3Cthis.navigationHammers.length%3Bi%2B%2B)%7Bthis.navigationHammers%5Bi%5D.destroy()%7Dthis.navigationHammers%3D%5B%5D%7Dif(this.navigationDOM%26%26this.navigationDOM%5B%5C%5C%5C%22wrapper%5C%5C%5C%22%5D%26%26this.navigationDOM%5B%5C%5C%5C%22wrapper%5C%5C%5C%22%5D.parentNode)%7Bthis.navigationDOM%5B%5C%5C%5C%22wrapper%5C%5C%5C%22%5D.parentNode.removeChild(this.navigationDOM%5B%5C%5C%5C%22wrapper%5C%5C%5C%22%5D)%7Dthis.iconsCreated%3Dfalse%7D%7D%2C%7Bkey%3A%5C%5C%5C%22loadNavigationElements%5C%5C%5C%22%2Cvalue%3Afunction%20loadNavigationElements()%7Bvar%20_this2%3Dthis%3Bthis.cleanNavigation()%3Bthis.navigationDOM%3D%7B%7D%3Bvar%20navigationDivs%3D%5B%5C%5C%5C%22up%5C%5C%5C%22%2C%5C%5C%5C%22down%5C%5C%5C%22%2C%5C%5C%5C%22left%5C%5C%5C%22%2C%5C%5C%5C%22right%5C%5C%5C%22%2C%5C%5C%5C%22zoomIn%5C%5C%5C%22%2C%5C%5C%5C%22zoomOut%5C%5C%5C%22%2C%5C%5C%5C%22zoomExtends%5C%5C%5C%22%5D%3Bvar%20navigationDivActions%3D%5B%5C%5C%5C%22_moveUp%5C%5C%5C%22%2C%5C%5C%5C%22_moveDown%5C%5C%5C%22%2C%5C%5C%5C%22_moveLeft%5C%5C%5C%22%2C%5C%5C%5C%22_moveRight%5C%5C%5C%22%2C%5C%5C%5C%22_zoomIn%5C%5C%5C%22%2C%5C%5C%5C%22_zoomOut%5C%5C%5C%22%2C%5C%5C%5C%22_fit%5C%5C%5C%22%5D%3Bthis.navigationDOM%5B%5C%5C%5C%22wrapper%5C%5C%5C%22%5D%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bthis.navigationDOM%5B%5C%5C%5C%22wrapper%5C%5C%5C%22%5D.className%3D%5C%5C%5C%22vis-navigation%5C%5C%5C%22%3Bthis.canvas.frame.appendChild(this.navigationDOM%5B%5C%5C%5C%22wrapper%5C%5C%5C%22%5D)%3Bfor(var%20i%3D0%3Bi%3CnavigationDivs.length%3Bi%2B%2B)%7Bthis.navigationDOM%5BnavigationDivs%5Bi%5D%5D%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bthis.navigationDOM%5BnavigationDivs%5Bi%5D%5D.className%3D%5C%5C%5C%22vis-button%20vis-%5C%5C%5C%22%2BnavigationDivs%5Bi%5D%3Bthis.navigationDOM%5B%5C%5C%5C%22wrapper%5C%5C%5C%22%5D.appendChild(this.navigationDOM%5BnavigationDivs%5Bi%5D%5D)%3Bvar%20hammer%3Dnew%20Hammer(this.navigationDOM%5BnavigationDivs%5Bi%5D%5D)%3Bif(navigationDivActions%5Bi%5D%3D%3D%3D%5C%5C%5C%22_fit%5C%5C%5C%22)%7BhammerUtil.onTouch(hammer%2Cthis._fit.bind(this))%7Delse%7BhammerUtil.onTouch(hammer%2Cthis.bindToRedraw.bind(this%2CnavigationDivActions%5Bi%5D))%7Dthis.navigationHammers.push(hammer)%7Dvar%20hammerFrame%3Dnew%20Hammer(this.canvas.frame)%3BhammerUtil.onRelease(hammerFrame%2Cfunction()%7B_this2._stopMovement()%7D)%3Bthis.navigationHammers.push(hammerFrame)%3Bthis.iconsCreated%3Dtrue%7D%7D%2C%7Bkey%3A%5C%5C%5C%22bindToRedraw%5C%5C%5C%22%2Cvalue%3Afunction%20bindToRedraw(action)%7Bif(this.boundFunctions%5Baction%5D%3D%3D%3Dundefined)%7Bthis.boundFunctions%5Baction%5D%3Dthis%5Baction%5D.bind(this)%3Bthis.body.emitter.on(%5C%5C%5C%22initRedraw%5C%5C%5C%22%2Cthis.boundFunctions%5Baction%5D)%3Bthis.body.emitter.emit(%5C%5C%5C%22_startRendering%5C%5C%5C%22)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22unbindFromRedraw%5C%5C%5C%22%2Cvalue%3Afunction%20unbindFromRedraw(action)%7Bif(this.boundFunctions%5Baction%5D!%3D%3Dundefined)%7Bthis.body.emitter.off(%5C%5C%5C%22initRedraw%5C%5C%5C%22%2Cthis.boundFunctions%5Baction%5D)%3Bthis.body.emitter.emit(%5C%5C%5C%22_stopRendering%5C%5C%5C%22)%3Bdelete%20this.boundFunctions%5Baction%5D%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_fit%5C%5C%5C%22%2Cvalue%3Afunction%20_fit()%7Bif((new%20Date).valueOf()-this.touchTime%3E700)%7Bthis.body.emitter.emit(%5C%5C%5C%22fit%5C%5C%5C%22%2C%7Bduration%3A700%7D)%3Bthis.touchTime%3D(new%20Date).valueOf()%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_stopMovement%5C%5C%5C%22%2Cvalue%3Afunction%20_stopMovement()%7Bfor(var%20boundAction%20in%20this.boundFunctions)%7Bif(this.boundFunctions.hasOwnProperty(boundAction))%7Bthis.body.emitter.off(%5C%5C%5C%22initRedraw%5C%5C%5C%22%2Cthis.boundFunctions%5BboundAction%5D)%3Bthis.body.emitter.emit(%5C%5C%5C%22_stopRendering%5C%5C%5C%22)%7D%7Dthis.boundFunctions%3D%7B%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_moveUp%5C%5C%5C%22%2Cvalue%3Afunction%20_moveUp()%7Bthis.body.view.translation.y%2B%3Dthis.options.keyboard.speed.y%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_moveDown%5C%5C%5C%22%2Cvalue%3Afunction%20_moveDown()%7Bthis.body.view.translation.y-%3Dthis.options.keyboard.speed.y%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_moveLeft%5C%5C%5C%22%2Cvalue%3Afunction%20_moveLeft()%7Bthis.body.view.translation.x%2B%3Dthis.options.keyboard.speed.x%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_moveRight%5C%5C%5C%22%2Cvalue%3Afunction%20_moveRight()%7Bthis.body.view.translation.x-%3Dthis.options.keyboard.speed.x%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_zoomIn%5C%5C%5C%22%2Cvalue%3Afunction%20_zoomIn()%7Bvar%20scaleOld%3Dthis.body.view.scale%3Bvar%20scale%3Dthis.body.view.scale*(1%2Bthis.options.keyboard.speed.zoom)%3Bvar%20translation%3Dthis.body.view.translation%3Bvar%20scaleFrac%3Dscale%2FscaleOld%3Bvar%20tx%3D(1-scaleFrac)*this.canvas.canvasViewCenter.x%2Btranslation.x*scaleFrac%3Bvar%20ty%3D(1-scaleFrac)*this.canvas.canvasViewCenter.y%2Btranslation.y*scaleFrac%3Bthis.body.view.scale%3Dscale%3Bthis.body.view.translation%3D%7Bx%3Atx%2Cy%3Aty%7D%3Bthis.body.emitter.emit(%5C%5C%5C%22zoom%5C%5C%5C%22%2C%7Bdirection%3A%5C%5C%5C%22%2B%5C%5C%5C%22%2Cscale%3Athis.body.view.scale%2Cpointer%3Anull%7D)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_zoomOut%5C%5C%5C%22%2Cvalue%3Afunction%20_zoomOut()%7Bvar%20scaleOld%3Dthis.body.view.scale%3Bvar%20scale%3Dthis.body.view.scale%2F(1%2Bthis.options.keyboard.speed.zoom)%3Bvar%20translation%3Dthis.body.view.translation%3Bvar%20scaleFrac%3Dscale%2FscaleOld%3Bvar%20tx%3D(1-scaleFrac)*this.canvas.canvasViewCenter.x%2Btranslation.x*scaleFrac%3Bvar%20ty%3D(1-scaleFrac)*this.canvas.canvasViewCenter.y%2Btranslation.y*scaleFrac%3Bthis.body.view.scale%3Dscale%3Bthis.body.view.translation%3D%7Bx%3Atx%2Cy%3Aty%7D%3Bthis.body.emitter.emit(%5C%5C%5C%22zoom%5C%5C%5C%22%2C%7Bdirection%3A%5C%5C%5C%22-%5C%5C%5C%22%2Cscale%3Athis.body.view.scale%2Cpointer%3Anull%7D)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22configureKeyboardBindings%5C%5C%5C%22%2Cvalue%3Afunction%20configureKeyboardBindings()%7Bvar%20_this3%3Dthis%3Bif(this.keycharm!%3D%3Dundefined)%7Bthis.keycharm.destroy()%7Dif(this.options.keyboard.enabled%3D%3D%3Dtrue)%7Bif(this.options.keyboard.bindToWindow%3D%3D%3Dtrue)%7Bthis.keycharm%3Dkeycharm(%7Bcontainer%3Awindow%2CpreventDefault%3Atrue%7D)%7Delse%7Bthis.keycharm%3Dkeycharm(%7Bcontainer%3Athis.canvas.frame%2CpreventDefault%3Atrue%7D)%7Dthis.keycharm.reset()%3Bif(this.activated%3D%3D%3Dtrue)%7Bthis.keycharm.bind(%5C%5C%5C%22up%5C%5C%5C%22%2Cfunction()%7B_this3.bindToRedraw(%5C%5C%5C%22_moveUp%5C%5C%5C%22)%7D%2C%5C%5C%5C%22keydown%5C%5C%5C%22)%3Bthis.keycharm.bind(%5C%5C%5C%22down%5C%5C%5C%22%2Cfunction()%7B_this3.bindToRedraw(%5C%5C%5C%22_moveDown%5C%5C%5C%22)%7D%2C%5C%5C%5C%22keydown%5C%5C%5C%22)%3Bthis.keycharm.bind(%5C%5C%5C%22left%5C%5C%5C%22%2Cfunction()%7B_this3.bindToRedraw(%5C%5C%5C%22_moveLeft%5C%5C%5C%22)%7D%2C%5C%5C%5C%22keydown%5C%5C%5C%22)%3Bthis.keycharm.bind(%5C%5C%5C%22right%5C%5C%5C%22%2Cfunction()%7B_this3.bindToRedraw(%5C%5C%5C%22_moveRight%5C%5C%5C%22)%7D%2C%5C%5C%5C%22keydown%5C%5C%5C%22)%3Bthis.keycharm.bind(%5C%5C%5C%22%3D%5C%5C%5C%22%2Cfunction()%7B_this3.bindToRedraw(%5C%5C%5C%22_zoomIn%5C%5C%5C%22)%7D%2C%5C%5C%5C%22keydown%5C%5C%5C%22)%3Bthis.keycharm.bind(%5C%5C%5C%22num%2B%5C%5C%5C%22%2Cfunction()%7B_this3.bindToRedraw(%5C%5C%5C%22_zoomIn%5C%5C%5C%22)%7D%2C%5C%5C%5C%22keydown%5C%5C%5C%22)%3Bthis.keycharm.bind(%5C%5C%5C%22num-%5C%5C%5C%22%2Cfunction()%7B_this3.bindToRedraw(%5C%5C%5C%22_zoomOut%5C%5C%5C%22)%7D%2C%5C%5C%5C%22keydown%5C%5C%5C%22)%3Bthis.keycharm.bind(%5C%5C%5C%22-%5C%5C%5C%22%2Cfunction()%7B_this3.bindToRedraw(%5C%5C%5C%22_zoomOut%5C%5C%5C%22)%7D%2C%5C%5C%5C%22keydown%5C%5C%5C%22)%3Bthis.keycharm.bind(%5C%5C%5C%22%5B%5C%5C%5C%22%2Cfunction()%7B_this3.bindToRedraw(%5C%5C%5C%22_zoomOut%5C%5C%5C%22)%7D%2C%5C%5C%5C%22keydown%5C%5C%5C%22)%3Bthis.keycharm.bind(%5C%5C%5C%22%5D%5C%5C%5C%22%2Cfunction()%7B_this3.bindToRedraw(%5C%5C%5C%22_zoomIn%5C%5C%5C%22)%7D%2C%5C%5C%5C%22keydown%5C%5C%5C%22)%3Bthis.keycharm.bind(%5C%5C%5C%22pageup%5C%5C%5C%22%2Cfunction()%7B_this3.bindToRedraw(%5C%5C%5C%22_zoomIn%5C%5C%5C%22)%7D%2C%5C%5C%5C%22keydown%5C%5C%5C%22)%3Bthis.keycharm.bind(%5C%5C%5C%22pagedown%5C%5C%5C%22%2Cfunction()%7B_this3.bindToRedraw(%5C%5C%5C%22_zoomOut%5C%5C%5C%22)%7D%2C%5C%5C%5C%22keydown%5C%5C%5C%22)%3Bthis.keycharm.bind(%5C%5C%5C%22up%5C%5C%5C%22%2Cfunction()%7B_this3.unbindFromRedraw(%5C%5C%5C%22_moveUp%5C%5C%5C%22)%7D%2C%5C%5C%5C%22keyup%5C%5C%5C%22)%3Bthis.keycharm.bind(%5C%5C%5C%22down%5C%5C%5C%22%2Cfunction()%7B_this3.unbindFromRedraw(%5C%5C%5C%22_moveDown%5C%5C%5C%22)%7D%2C%5C%5C%5C%22keyup%5C%5C%5C%22)%3Bthis.keycharm.bind(%5C%5C%5C%22left%5C%5C%5C%22%2Cfunction()%7B_this3.unbindFromRedraw(%5C%5C%5C%22_moveLeft%5C%5C%5C%22)%7D%2C%5C%5C%5C%22keyup%5C%5C%5C%22)%3Bthis.keycharm.bind(%5C%5C%5C%22right%5C%5C%5C%22%2Cfunction()%7B_this3.unbindFromRedraw(%5C%5C%5C%22_moveRight%5C%5C%5C%22)%7D%2C%5C%5C%5C%22keyup%5C%5C%5C%22)%3Bthis.keycharm.bind(%5C%5C%5C%22%3D%5C%5C%5C%22%2Cfunction()%7B_this3.unbindFromRedraw(%5C%5C%5C%22_zoomIn%5C%5C%5C%22)%7D%2C%5C%5C%5C%22keyup%5C%5C%5C%22)%3Bthis.keycharm.bind(%5C%5C%5C%22num%2B%5C%5C%5C%22%2Cfunction()%7B_this3.unbindFromRedraw(%5C%5C%5C%22_zoomIn%5C%5C%5C%22)%7D%2C%5C%5C%5C%22keyup%5C%5C%5C%22)%3Bthis.keycharm.bind(%5C%5C%5C%22num-%5C%5C%5C%22%2Cfunction()%7B_this3.unbindFromRedraw(%5C%5C%5C%22_zoomOut%5C%5C%5C%22)%7D%2C%5C%5C%5C%22keyup%5C%5C%5C%22)%3Bthis.keycharm.bind(%5C%5C%5C%22-%5C%5C%5C%22%2Cfunction()%7B_this3.unbindFromRedraw(%5C%5C%5C%22_zoomOut%5C%5C%5C%22)%7D%2C%5C%5C%5C%22keyup%5C%5C%5C%22)%3Bthis.keycharm.bind(%5C%5C%5C%22%5B%5C%5C%5C%22%2Cfunction()%7B_this3.unbindFromRedraw(%5C%5C%5C%22_zoomOut%5C%5C%5C%22)%7D%2C%5C%5C%5C%22keyup%5C%5C%5C%22)%3Bthis.keycharm.bind(%5C%5C%5C%22%5D%5C%5C%5C%22%2Cfunction()%7B_this3.unbindFromRedraw(%5C%5C%5C%22_zoomIn%5C%5C%5C%22)%7D%2C%5C%5C%5C%22keyup%5C%5C%5C%22)%3Bthis.keycharm.bind(%5C%5C%5C%22pageup%5C%5C%5C%22%2Cfunction()%7B_this3.unbindFromRedraw(%5C%5C%5C%22_zoomIn%5C%5C%5C%22)%7D%2C%5C%5C%5C%22keyup%5C%5C%5C%22)%3Bthis.keycharm.bind(%5C%5C%5C%22pagedown%5C%5C%5C%22%2Cfunction()%7B_this3.unbindFromRedraw(%5C%5C%5C%22_zoomOut%5C%5C%5C%22)%7D%2C%5C%5C%5C%22keyup%5C%5C%5C%22)%7D%7D%7D%7D%5D)%3Breturn%20NavigationHandler%7D()%3Bexports%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3DNavigationHandler%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_classCallCheck2%3D__webpack_require__(0)%3Bvar%20_classCallCheck3%3D_interopRequireDefault(_classCallCheck2)%3Bvar%20_createClass2%3D__webpack_require__(1)%3Bvar%20_createClass3%3D_interopRequireDefault(_createClass2)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20Node%3D__webpack_require__(47)%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3Bvar%20Edge%3D__webpack_require__(74)%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3Bvar%20util%3D__webpack_require__(2)%3Bvar%20SelectionHandler%3Dfunction()%7Bfunction%20SelectionHandler(body%2Ccanvas)%7Bvar%20_this%3Dthis%3B(0%2C_classCallCheck3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2CSelectionHandler)%3Bthis.body%3Dbody%3Bthis.canvas%3Dcanvas%3Bthis.selectionObj%3D%7Bnodes%3A%5B%5D%2Cedges%3A%5B%5D%7D%3Bthis.hoverObj%3D%7Bnodes%3A%7B%7D%2Cedges%3A%7B%7D%7D%3Bthis.options%3D%7B%7D%3Bthis.defaultOptions%3D%7Bmultiselect%3Afalse%2Cselectable%3Atrue%2CselectConnectedEdges%3Atrue%2ChoverConnectedEdges%3Atrue%7D%3Butil.extend(this.options%2Cthis.defaultOptions)%3Bthis.body.emitter.on(%5C%5C%5C%22_dataChanged%5C%5C%5C%22%2Cfunction()%7B_this.updateSelection()%7D)%7D(0%2C_createClass3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(SelectionHandler%2C%5B%7Bkey%3A%5C%5C%5C%22setOptions%5C%5C%5C%22%2Cvalue%3Afunction%20setOptions(options)%7Bif(options!%3D%3Dundefined)%7Bvar%20fields%3D%5B%5C%5C%5C%22multiselect%5C%5C%5C%22%2C%5C%5C%5C%22hoverConnectedEdges%5C%5C%5C%22%2C%5C%5C%5C%22selectable%5C%5C%5C%22%2C%5C%5C%5C%22selectConnectedEdges%5C%5C%5C%22%5D%3Butil.selectiveDeepExtend(fields%2Cthis.options%2Coptions)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22selectOnPoint%5C%5C%5C%22%2Cvalue%3Afunction%20selectOnPoint(pointer)%7Bvar%20selected%3Dfalse%3Bif(this.options.selectable%3D%3D%3Dtrue)%7Bvar%20obj%3Dthis.getNodeAt(pointer)%7C%7Cthis.getEdgeAt(pointer)%3Bthis.unselectAll()%3Bif(obj!%3D%3Dundefined)%7Bselected%3Dthis.selectObject(obj)%7Dthis.body.emitter.emit(%5C%5C%5C%22_requestRedraw%5C%5C%5C%22)%7Dreturn%20selected%7D%7D%2C%7Bkey%3A%5C%5C%5C%22selectAdditionalOnPoint%5C%5C%5C%22%2Cvalue%3Afunction%20selectAdditionalOnPoint(pointer)%7Bvar%20selectionChanged%3Dfalse%3Bif(this.options.selectable%3D%3D%3Dtrue)%7Bvar%20obj%3Dthis.getNodeAt(pointer)%7C%7Cthis.getEdgeAt(pointer)%3Bif(obj!%3D%3Dundefined)%7BselectionChanged%3Dtrue%3Bif(obj.isSelected()%3D%3D%3Dtrue)%7Bthis.deselectObject(obj)%7Delse%7Bthis.selectObject(obj)%7Dthis.body.emitter.emit(%5C%5C%5C%22_requestRedraw%5C%5C%5C%22)%7D%7Dreturn%20selectionChanged%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_initBaseEvent%5C%5C%5C%22%2Cvalue%3Afunction%20_initBaseEvent(event%2Cpointer)%7Bvar%20properties%3D%7B%7D%3Bproperties%5B%5C%5C%5C%22pointer%5C%5C%5C%22%5D%3D%7BDOM%3A%7B%5C%5Cnx%3Apointer.x%2Cy%3Apointer.y%7D%2Ccanvas%3Athis.canvas.DOMtoCanvas(pointer)%7D%3Bproperties%5B%5C%5C%5C%22event%5C%5C%5C%22%5D%3Devent%3Breturn%20properties%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_generateClickEvent%5C%5C%5C%22%2Cvalue%3Afunction%20_generateClickEvent(eventType%2Cevent%2Cpointer%2ColdSelection)%7Bvar%20emptySelection%3Darguments.length%3E4%26%26arguments%5B4%5D!%3D%3Dundefined%3Farguments%5B4%5D%3Afalse%3Bvar%20properties%3Dthis._initBaseEvent(event%2Cpointer)%3Bif(emptySelection%3D%3D%3Dtrue)%7Bproperties.nodes%3D%5B%5D%3Bproperties.edges%3D%5B%5D%7Delse%7Bvar%20tmp%3Dthis.getSelection()%3Bproperties.nodes%3Dtmp.nodes%3Bproperties.edges%3Dtmp.edges%7Dif(oldSelection!%3D%3Dundefined)%7Bproperties%5B%5C%5C%5C%22previousSelection%5C%5C%5C%22%5D%3DoldSelection%7Dif(eventType%3D%3D%5C%5C%5C%22click%5C%5C%5C%22)%7Bproperties.items%3Dthis.getClickedItems(pointer)%7Dthis.body.emitter.emit(eventType%2Cproperties)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22selectObject%5C%5C%5C%22%2Cvalue%3Afunction%20selectObject(obj)%7Bvar%20highlightEdges%3Darguments.length%3E1%26%26arguments%5B1%5D!%3D%3Dundefined%3Farguments%5B1%5D%3Athis.options.selectConnectedEdges%3Bif(obj!%3D%3Dundefined)%7Bif(obj%20instanceof%20Node)%7Bif(highlightEdges%3D%3D%3Dtrue)%7Bthis._selectConnectedEdges(obj)%7D%7Dobj.select()%3Bthis._addToSelection(obj)%3Breturn%20true%7Dreturn%20false%7D%7D%2C%7Bkey%3A%5C%5C%5C%22deselectObject%5C%5C%5C%22%2Cvalue%3Afunction%20deselectObject(obj)%7Bif(obj.isSelected()%3D%3D%3Dtrue)%7Bobj.selected%3Dfalse%3Bthis._removeFromSelection(obj)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_getAllNodesOverlappingWith%5C%5C%5C%22%2Cvalue%3Afunction%20_getAllNodesOverlappingWith(object)%7Bvar%20overlappingNodes%3D%5B%5D%3Bvar%20nodes%3Dthis.body.nodes%3Bfor(var%20i%3D0%3Bi%3Cthis.body.nodeIndices.length%3Bi%2B%2B)%7Bvar%20nodeId%3Dthis.body.nodeIndices%5Bi%5D%3Bif(nodes%5BnodeId%5D.isOverlappingWith(object))%7BoverlappingNodes.push(nodeId)%7D%7Dreturn%20overlappingNodes%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_pointerToPositionObject%5C%5C%5C%22%2Cvalue%3Afunction%20_pointerToPositionObject(pointer)%7Bvar%20canvasPos%3Dthis.canvas.DOMtoCanvas(pointer)%3Breturn%7Bleft%3AcanvasPos.x-1%2Ctop%3AcanvasPos.y%2B1%2Cright%3AcanvasPos.x%2B1%2Cbottom%3AcanvasPos.y-1%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getNodeAt%5C%5C%5C%22%2Cvalue%3Afunction%20getNodeAt(pointer)%7Bvar%20returnNode%3Darguments.length%3E1%26%26arguments%5B1%5D!%3D%3Dundefined%3Farguments%5B1%5D%3Atrue%3Bvar%20positionObject%3Dthis._pointerToPositionObject(pointer)%3Bvar%20overlappingNodes%3Dthis._getAllNodesOverlappingWith(positionObject)%3Bif(overlappingNodes.length%3E0)%7Bif(returnNode%3D%3D%3Dtrue)%7Breturn%20this.body.nodes%5BoverlappingNodes%5BoverlappingNodes.length-1%5D%5D%7Delse%7Breturn%20overlappingNodes%5BoverlappingNodes.length-1%5D%7D%7Delse%7Breturn%20undefined%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_getEdgesOverlappingWith%5C%5C%5C%22%2Cvalue%3Afunction%20_getEdgesOverlappingWith(object%2CoverlappingEdges)%7Bvar%20edges%3Dthis.body.edges%3Bfor(var%20i%3D0%3Bi%3Cthis.body.edgeIndices.length%3Bi%2B%2B)%7Bvar%20edgeId%3Dthis.body.edgeIndices%5Bi%5D%3Bif(edges%5BedgeId%5D.isOverlappingWith(object))%7BoverlappingEdges.push(edgeId)%7D%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_getAllEdgesOverlappingWith%5C%5C%5C%22%2Cvalue%3Afunction%20_getAllEdgesOverlappingWith(object)%7Bvar%20overlappingEdges%3D%5B%5D%3Bthis._getEdgesOverlappingWith(object%2CoverlappingEdges)%3Breturn%20overlappingEdges%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getEdgeAt%5C%5C%5C%22%2Cvalue%3Afunction%20getEdgeAt(pointer)%7Bvar%20returnEdge%3Darguments.length%3E1%26%26arguments%5B1%5D!%3D%3Dundefined%3Farguments%5B1%5D%3Atrue%3Bvar%20canvasPos%3Dthis.canvas.DOMtoCanvas(pointer)%3Bvar%20mindist%3D10%3Bvar%20overlappingEdge%3Dnull%3Bvar%20edges%3Dthis.body.edges%3Bfor(var%20i%3D0%3Bi%3Cthis.body.edgeIndices.length%3Bi%2B%2B)%7Bvar%20edgeId%3Dthis.body.edgeIndices%5Bi%5D%3Bvar%20edge%3Dedges%5BedgeId%5D%3Bif(edge.connected)%7Bvar%20xFrom%3Dedge.from.x%3Bvar%20yFrom%3Dedge.from.y%3Bvar%20xTo%3Dedge.to.x%3Bvar%20yTo%3Dedge.to.y%3Bvar%20dist%3Dedge.edgeType.getDistanceToEdge(xFrom%2CyFrom%2CxTo%2CyTo%2CcanvasPos.x%2CcanvasPos.y)%3Bif(dist%3Cmindist)%7BoverlappingEdge%3DedgeId%3Bmindist%3Ddist%7D%7D%7Dif(overlappingEdge!%3D%3Dnull)%7Bif(returnEdge%3D%3D%3Dtrue)%7Breturn%20this.body.edges%5BoverlappingEdge%5D%7Delse%7Breturn%20overlappingEdge%7D%7Delse%7Breturn%20undefined%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_addToSelection%5C%5C%5C%22%2Cvalue%3Afunction%20_addToSelection(obj)%7Bif(obj%20instanceof%20Node)%7Bthis.selectionObj.nodes%5Bobj.id%5D%3Dobj%7Delse%7Bthis.selectionObj.edges%5Bobj.id%5D%3Dobj%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_addToHover%5C%5C%5C%22%2Cvalue%3Afunction%20_addToHover(obj)%7Bif(obj%20instanceof%20Node)%7Bthis.hoverObj.nodes%5Bobj.id%5D%3Dobj%7Delse%7Bthis.hoverObj.edges%5Bobj.id%5D%3Dobj%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_removeFromSelection%5C%5C%5C%22%2Cvalue%3Afunction%20_removeFromSelection(obj)%7Bif(obj%20instanceof%20Node)%7Bdelete%20this.selectionObj.nodes%5Bobj.id%5D%3Bthis._unselectConnectedEdges(obj)%7Delse%7Bdelete%20this.selectionObj.edges%5Bobj.id%5D%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22unselectAll%5C%5C%5C%22%2Cvalue%3Afunction%20unselectAll()%7Bfor(var%20nodeId%20in%20this.selectionObj.nodes)%7Bif(this.selectionObj.nodes.hasOwnProperty(nodeId))%7Bthis.selectionObj.nodes%5BnodeId%5D.unselect()%7D%7Dfor(var%20edgeId%20in%20this.selectionObj.edges)%7Bif(this.selectionObj.edges.hasOwnProperty(edgeId))%7Bthis.selectionObj.edges%5BedgeId%5D.unselect()%7D%7Dthis.selectionObj%3D%7Bnodes%3A%7B%7D%2Cedges%3A%7B%7D%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_getSelectedNodeCount%5C%5C%5C%22%2Cvalue%3Afunction%20_getSelectedNodeCount()%7Bvar%20count%3D0%3Bfor(var%20nodeId%20in%20this.selectionObj.nodes)%7Bif(this.selectionObj.nodes.hasOwnProperty(nodeId))%7Bcount%2B%3D1%7D%7Dreturn%20count%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_getSelectedNode%5C%5C%5C%22%2Cvalue%3Afunction%20_getSelectedNode()%7Bfor(var%20nodeId%20in%20this.selectionObj.nodes)%7Bif(this.selectionObj.nodes.hasOwnProperty(nodeId))%7Breturn%20this.selectionObj.nodes%5BnodeId%5D%7D%7Dreturn%20undefined%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_getSelectedEdge%5C%5C%5C%22%2Cvalue%3Afunction%20_getSelectedEdge()%7Bfor(var%20edgeId%20in%20this.selectionObj.edges)%7Bif(this.selectionObj.edges.hasOwnProperty(edgeId))%7Breturn%20this.selectionObj.edges%5BedgeId%5D%7D%7Dreturn%20undefined%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_getSelectedEdgeCount%5C%5C%5C%22%2Cvalue%3Afunction%20_getSelectedEdgeCount()%7Bvar%20count%3D0%3Bfor(var%20edgeId%20in%20this.selectionObj.edges)%7Bif(this.selectionObj.edges.hasOwnProperty(edgeId))%7Bcount%2B%3D1%7D%7Dreturn%20count%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_getSelectedObjectCount%5C%5C%5C%22%2Cvalue%3Afunction%20_getSelectedObjectCount()%7Bvar%20count%3D0%3Bfor(var%20nodeId%20in%20this.selectionObj.nodes)%7Bif(this.selectionObj.nodes.hasOwnProperty(nodeId))%7Bcount%2B%3D1%7D%7Dfor(var%20edgeId%20in%20this.selectionObj.edges)%7Bif(this.selectionObj.edges.hasOwnProperty(edgeId))%7Bcount%2B%3D1%7D%7Dreturn%20count%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_selectionIsEmpty%5C%5C%5C%22%2Cvalue%3Afunction%20_selectionIsEmpty()%7Bfor(var%20nodeId%20in%20this.selectionObj.nodes)%7Bif(this.selectionObj.nodes.hasOwnProperty(nodeId))%7Breturn%20false%7D%7Dfor(var%20edgeId%20in%20this.selectionObj.edges)%7Bif(this.selectionObj.edges.hasOwnProperty(edgeId))%7Breturn%20false%7D%7Dreturn%20true%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_clusterInSelection%5C%5C%5C%22%2Cvalue%3Afunction%20_clusterInSelection()%7Bfor(var%20nodeId%20in%20this.selectionObj.nodes)%7Bif(this.selectionObj.nodes.hasOwnProperty(nodeId))%7Bif(this.selectionObj.nodes%5BnodeId%5D.clusterSize%3E1)%7Breturn%20true%7D%7D%7Dreturn%20false%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_selectConnectedEdges%5C%5C%5C%22%2Cvalue%3Afunction%20_selectConnectedEdges(node)%7Bfor(var%20i%3D0%3Bi%3Cnode.edges.length%3Bi%2B%2B)%7Bvar%20edge%3Dnode.edges%5Bi%5D%3Bedge.select()%3Bthis._addToSelection(edge)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_hoverConnectedEdges%5C%5C%5C%22%2Cvalue%3Afunction%20_hoverConnectedEdges(node)%7Bfor(var%20i%3D0%3Bi%3Cnode.edges.length%3Bi%2B%2B)%7Bvar%20edge%3Dnode.edges%5Bi%5D%3Bedge.hover%3Dtrue%3Bthis._addToHover(edge)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_unselectConnectedEdges%5C%5C%5C%22%2Cvalue%3Afunction%20_unselectConnectedEdges(node)%7Bfor(var%20i%3D0%3Bi%3Cnode.edges.length%3Bi%2B%2B)%7Bvar%20edge%3Dnode.edges%5Bi%5D%3Bedge.unselect()%3Bthis._removeFromSelection(edge)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22emitBlurEvent%5C%5C%5C%22%2Cvalue%3Afunction%20emitBlurEvent(event%2Cpointer%2Cobject)%7Bvar%20properties%3Dthis._initBaseEvent(event%2Cpointer)%3Bif(object.hover%3D%3D%3Dtrue)%7Bobject.hover%3Dfalse%3Bif(object%20instanceof%20Node)%7Bproperties.node%3Dobject.id%3Bthis.body.emitter.emit(%5C%5C%5C%22blurNode%5C%5C%5C%22%2Cproperties)%7Delse%7Bproperties.edge%3Dobject.id%3Bthis.body.emitter.emit(%5C%5C%5C%22blurEdge%5C%5C%5C%22%2Cproperties)%7D%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22emitHoverEvent%5C%5C%5C%22%2Cvalue%3Afunction%20emitHoverEvent(event%2Cpointer%2Cobject)%7Bvar%20properties%3Dthis._initBaseEvent(event%2Cpointer)%3Bvar%20hoverChanged%3Dfalse%3Bif(object.hover%3D%3D%3Dfalse)%7Bobject.hover%3Dtrue%3Bthis._addToHover(object)%3BhoverChanged%3Dtrue%3Bif(object%20instanceof%20Node)%7Bproperties.node%3Dobject.id%3Bthis.body.emitter.emit(%5C%5C%5C%22hoverNode%5C%5C%5C%22%2Cproperties)%7Delse%7Bproperties.edge%3Dobject.id%3Bthis.body.emitter.emit(%5C%5C%5C%22hoverEdge%5C%5C%5C%22%2Cproperties)%7D%7Dreturn%20hoverChanged%7D%7D%2C%7Bkey%3A%5C%5C%5C%22hoverObject%5C%5C%5C%22%2Cvalue%3Afunction%20hoverObject(event%2Cpointer)%7Bvar%20object%3Dthis.getNodeAt(pointer)%3Bif(object%3D%3D%3Dundefined)%7Bobject%3Dthis.getEdgeAt(pointer)%7Dvar%20hoverChanged%3Dfalse%3Bfor(var%20nodeId%20in%20this.hoverObj.nodes)%7Bif(this.hoverObj.nodes.hasOwnProperty(nodeId))%7Bif(object%3D%3D%3Dundefined%7C%7Cobject%20instanceof%20Node%26%26object.id!%3DnodeId%7C%7Cobject%20instanceof%20Edge)%7Bthis.emitBlurEvent(event%2Cpointer%2Cthis.hoverObj.nodes%5BnodeId%5D)%3Bdelete%20this.hoverObj.nodes%5BnodeId%5D%3BhoverChanged%3Dtrue%7D%7D%7Dfor(var%20edgeId%20in%20this.hoverObj.edges)%7Bif(this.hoverObj.edges.hasOwnProperty(edgeId))%7Bif(hoverChanged%3D%3D%3Dtrue)%7Bthis.hoverObj.edges%5BedgeId%5D.hover%3Dfalse%3Bdelete%20this.hoverObj.edges%5BedgeId%5D%7Delse%20if(object%3D%3D%3Dundefined%7C%7Cobject%20instanceof%20Edge%26%26object.id!%3DedgeId%7C%7Cobject%20instanceof%20Node%26%26!object.hover)%7Bthis.emitBlurEvent(event%2Cpointer%2Cthis.hoverObj.edges%5BedgeId%5D)%3Bdelete%20this.hoverObj.edges%5BedgeId%5D%3BhoverChanged%3Dtrue%7D%7D%7Dif(object!%3D%3Dundefined)%7BhoverChanged%3DhoverChanged%7C%7Cthis.emitHoverEvent(event%2Cpointer%2Cobject)%3Bif(object%20instanceof%20Node%26%26this.options.hoverConnectedEdges%3D%3D%3Dtrue)%7Bthis._hoverConnectedEdges(object)%7D%7Dif(hoverChanged%3D%3D%3Dtrue)%7Bthis.body.emitter.emit(%5C%5C%5C%22_requestRedraw%5C%5C%5C%22)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getSelection%5C%5C%5C%22%2Cvalue%3Afunction%20getSelection()%7Bvar%20nodeIds%3Dthis.getSelectedNodes()%3Bvar%20edgeIds%3Dthis.getSelectedEdges()%3Breturn%7Bnodes%3AnodeIds%2Cedges%3AedgeIds%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getSelectedNodes%5C%5C%5C%22%2Cvalue%3Afunction%20getSelectedNodes()%7Bvar%20idArray%3D%5B%5D%3Bif(this.options.selectable%3D%3D%3Dtrue)%7Bfor(var%20nodeId%20in%20this.selectionObj.nodes)%7Bif(this.selectionObj.nodes.hasOwnProperty(nodeId))%7BidArray.push(this.selectionObj.nodes%5BnodeId%5D.id)%7D%7D%7Dreturn%20idArray%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getSelectedEdges%5C%5C%5C%22%2Cvalue%3Afunction%20getSelectedEdges()%7Bvar%20idArray%3D%5B%5D%3Bif(this.options.selectable%3D%3D%3Dtrue)%7Bfor(var%20edgeId%20in%20this.selectionObj.edges)%7Bif(this.selectionObj.edges.hasOwnProperty(edgeId))%7BidArray.push(this.selectionObj.edges%5BedgeId%5D.id)%7D%7D%7Dreturn%20idArray%7D%7D%2C%7Bkey%3A%5C%5C%5C%22setSelection%5C%5C%5C%22%2Cvalue%3Afunction%20setSelection(selection)%7Bvar%20options%3Darguments.length%3E1%26%26arguments%5B1%5D!%3D%3Dundefined%3Farguments%5B1%5D%3A%7B%7D%3Bvar%20i%3Dvoid%200%2Cid%3Dvoid%200%3Bif(!selection%7C%7C!selection.nodes%26%26!selection.edges)throw%5C%5C%5C%22Selection%20must%20be%20an%20object%20with%20nodes%20and%2For%20edges%20properties%5C%5C%5C%22%3Bif(options.unselectAll%7C%7Coptions.unselectAll%3D%3D%3Dundefined)%7Bthis.unselectAll()%7Dif(selection.nodes)%7Bfor(i%3D0%3Bi%3Cselection.nodes.length%3Bi%2B%2B)%7Bid%3Dselection.nodes%5Bi%5D%3Bvar%20node%3Dthis.body.nodes%5Bid%5D%3Bif(!node)%7Bthrow%20new%20RangeError('Node%20with%20id%20%5C%5C%5C%22'%2Bid%2B'%5C%5C%5C%22%20not%20found')%7Dthis.selectObject(node%2Coptions.highlightEdges)%7D%7Dif(selection.edges)%7Bfor(i%3D0%3Bi%3Cselection.edges.length%3Bi%2B%2B)%7Bid%3Dselection.edges%5Bi%5D%3Bvar%20edge%3Dthis.body.edges%5Bid%5D%3Bif(!edge)%7Bthrow%20new%20RangeError('Edge%20with%20id%20%5C%5C%5C%22'%2Bid%2B'%5C%5C%5C%22%20not%20found')%7Dthis.selectObject(edge)%7D%7Dthis.body.emitter.emit(%5C%5C%5C%22_requestRedraw%5C%5C%5C%22)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22selectNodes%5C%5C%5C%22%2Cvalue%3Afunction%20selectNodes(selection)%7Bvar%20highlightEdges%3Darguments.length%3E1%26%26arguments%5B1%5D!%3D%3Dundefined%3Farguments%5B1%5D%3Atrue%3Bif(!selection%7C%7Cselection.length%3D%3D%3Dundefined)throw%5C%5C%5C%22Selection%20must%20be%20an%20array%20with%20ids%5C%5C%5C%22%3Bthis.setSelection(%7Bnodes%3Aselection%7D%2C%7BhighlightEdges%3AhighlightEdges%7D)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22selectEdges%5C%5C%5C%22%2Cvalue%3Afunction%20selectEdges(selection)%7Bif(!selection%7C%7Cselection.length%3D%3D%3Dundefined)throw%5C%5C%5C%22Selection%20must%20be%20an%20array%20with%20ids%5C%5C%5C%22%3Bthis.setSelection(%7Bedges%3Aselection%7D)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22updateSelection%5C%5C%5C%22%2Cvalue%3Afunction%20updateSelection()%7Bfor(var%20nodeId%20in%20this.selectionObj.nodes)%7Bif(this.selectionObj.nodes.hasOwnProperty(nodeId))%7Bif(!this.body.nodes.hasOwnProperty(nodeId))%7Bdelete%20this.selectionObj.nodes%5BnodeId%5D%7D%7D%7Dfor(var%20edgeId%20in%20this.selectionObj.edges)%7Bif(this.selectionObj.edges.hasOwnProperty(edgeId))%7Bif(!this.body.edges.hasOwnProperty(edgeId))%7Bdelete%20this.selectionObj.edges%5BedgeId%5D%7D%7D%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getClickedItems%5C%5C%5C%22%2Cvalue%3Afunction%20getClickedItems(pointer)%7Bvar%20point%3Dthis.canvas.DOMtoCanvas(pointer)%3Bvar%20items%3D%5B%5D%3Bvar%20nodeIndices%3Dthis.body.nodeIndices%3Bvar%20nodes%3Dthis.body.nodes%3Bfor(var%20i%3DnodeIndices.length-1%3Bi%3E%3D0%3Bi--)%7Bvar%20node%3Dnodes%5BnodeIndices%5Bi%5D%5D%3Bvar%20ret%3Dnode.getItemsOnPoint(point)%3Bitems.push.apply(items%2Cret)%7Dvar%20edgeIndices%3Dthis.body.edgeIndices%3Bvar%20edges%3Dthis.body.edges%3Bfor(var%20_i%3DedgeIndices.length-1%3B_i%3E%3D0%3B_i--)%7Bvar%20edge%3Dedges%5BedgeIndices%5B_i%5D%5D%3Bvar%20_ret%3Dedge.getItemsOnPoint(point)%3Bitems.push.apply(items%2C_ret)%7Dreturn%20items%7D%7D%5D)%3Breturn%20SelectionHandler%7D()%3Bexports%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3DSelectionHandler%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_slicedToArray2%3D__webpack_require__(30)%3Bvar%20_slicedToArray3%3D_interopRequireDefault(_slicedToArray2)%3Bvar%20_typeof2%3D__webpack_require__(6)%3Bvar%20_typeof3%3D_interopRequireDefault(_typeof2)%3Bvar%20_keys%3D__webpack_require__(8)%3Bvar%20_keys2%3D_interopRequireDefault(_keys)%3Bvar%20_classCallCheck2%3D__webpack_require__(0)%3Bvar%20_classCallCheck3%3D_interopRequireDefault(_classCallCheck2)%3Bvar%20_createClass2%3D__webpack_require__(1)%3Bvar%20_createClass3%3D_interopRequireDefault(_createClass2)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20util%3D__webpack_require__(2)%3Bvar%20NetworkUtil%3D__webpack_require__(76)%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3Bvar%20_require%3D__webpack_require__(236)%2CHorizontalStrategy%3D_require.HorizontalStrategy%2CVerticalStrategy%3D_require.VerticalStrategy%3Bvar%20HierarchicalStatus%3Dfunction()%7Bfunction%20HierarchicalStatus()%7B(0%2C_classCallCheck3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2CHierarchicalStatus)%3Bthis.childrenReference%3D%7B%7D%3Bthis.parentReference%3D%7B%7D%3Bthis.trees%3D%7B%7D%3Bthis.distributionOrdering%3D%7B%7D%3Bthis.levels%3D%7B%7D%3Bthis.distributionIndex%3D%7B%7D%3Bthis.isTree%3Dfalse%3Bthis.treeIndex%3D-1%7D(0%2C_createClass3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(HierarchicalStatus%2C%5B%7Bkey%3A%5C%5C%5C%22addRelation%5C%5C%5C%22%2Cvalue%3Afunction%20addRelation(parentNodeId%2CchildNodeId)%7Bif(this.childrenReference%5BparentNodeId%5D%3D%3D%3Dundefined)%7Bthis.childrenReference%5BparentNodeId%5D%3D%5B%5D%7Dthis.childrenReference%5BparentNodeId%5D.push(childNodeId)%3Bif(this.parentReference%5BchildNodeId%5D%3D%3D%3Dundefined)%7Bthis.parentReference%5BchildNodeId%5D%3D%5B%5D%7Dthis.parentReference%5BchildNodeId%5D.push(parentNodeId)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22checkIfTree%5C%5C%5C%22%2Cvalue%3Afunction%20checkIfTree()%7Bfor(var%20i%20in%20this.parentReference)%7Bif(this.parentReference%5Bi%5D.length%3E1)%7Bthis.isTree%3Dfalse%3Breturn%7D%7Dthis.isTree%3Dtrue%7D%7D%2C%7Bkey%3A%5C%5C%5C%22numTrees%5C%5C%5C%22%2Cvalue%3Afunction%20numTrees()%7Breturn%20this.treeIndex%2B1%7D%7D%2C%7Bkey%3A%5C%5C%5C%22setTreeIndex%5C%5C%5C%22%2Cvalue%3Afunction%20setTreeIndex(node%2CtreeId)%7Bif(treeId%3D%3D%3Dundefined)return%3Bif(this.trees%5Bnode.id%5D%3D%3D%3Dundefined)%7Bthis.trees%5Bnode.id%5D%3DtreeId%3Bthis.treeIndex%3DMath.max(treeId%2Cthis.treeIndex)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22ensureLevel%5C%5C%5C%22%2Cvalue%3Afunction%20ensureLevel(nodeId)%7Bif(this.levels%5BnodeId%5D%3D%3D%3Dundefined)%7Bthis.levels%5BnodeId%5D%3D0%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getMaxLevel%5C%5C%5C%22%2Cvalue%3Afunction%20getMaxLevel(nodeId)%7Bvar%20_this%3Dthis%3Bvar%20accumulator%3D%7B%7D%3Bvar%20_getMaxLevel%3Dfunction%20_getMaxLevel(nodeId)%7Bif(accumulator%5BnodeId%5D!%3D%3Dundefined)%7Breturn%20accumulator%5BnodeId%5D%7Dvar%20level%3D_this.levels%5BnodeId%5D%3Bif(_this.childrenReference%5BnodeId%5D)%7Bvar%20children%3D_this.childrenReference%5BnodeId%5D%3Bif(children.length%3E0)%7Bfor(var%20i%3D0%3Bi%3Cchildren.length%3Bi%2B%2B)%7Blevel%3DMath.max(level%2C_getMaxLevel(children%5Bi%5D))%7D%7D%7Daccumulator%5BnodeId%5D%3Dlevel%3Breturn%20level%7D%3Breturn%20_getMaxLevel(nodeId)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22levelDownstream%5C%5C%5C%22%2Cvalue%3Afunction%20levelDownstream(nodeA%2CnodeB)%7Bif(this.levels%5BnodeB.id%5D%3D%3D%3Dundefined)%7Bif(this.levels%5BnodeA.id%5D%3D%3D%3Dundefined)%7Bthis.levels%5BnodeA.id%5D%3D0%7Dthis.levels%5BnodeB.id%5D%3Dthis.levels%5BnodeA.id%5D%2B1%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22setMinLevelToZero%5C%5C%5C%22%2Cvalue%3Afunction%20setMinLevelToZero(nodes)%7Bvar%20minLevel%3D1e9%3Bfor(var%20nodeId%20in%20nodes)%7Bif(nodes.hasOwnProperty(nodeId))%7Bif(this.levels%5BnodeId%5D!%3D%3Dundefined)%7BminLevel%3DMath.min(this.levels%5BnodeId%5D%2CminLevel)%7D%7D%7Dfor(var%20_nodeId%20in%20nodes)%7Bif(nodes.hasOwnProperty(_nodeId))%7Bif(this.levels%5B_nodeId%5D!%3D%3Dundefined)%7Bthis.levels%5B_nodeId%5D-%3DminLevel%7D%7D%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getTreeSize%5C%5C%5C%22%2Cvalue%3Afunction%20getTreeSize(nodes%2Cindex)%7Bvar%20min_x%3D1e9%3Bvar%20max_x%3D-1e9%3Bvar%20min_y%3D1e9%3Bvar%20max_y%3D-1e9%3Bfor(var%20nodeId%20in%20this.trees)%7Bif(this.trees.hasOwnProperty(nodeId))%7Bif(this.trees%5BnodeId%5D%3D%3D%3Dindex)%7Bvar%20node%3Dnodes%5BnodeId%5D%3Bmin_x%3DMath.min(node.x%2Cmin_x)%3Bmax_x%3DMath.max(node.x%2Cmax_x)%3Bmin_y%3DMath.min(node.y%2Cmin_y)%3Bmax_y%3DMath.max(node.y%2Cmax_y)%7D%7D%7Dreturn%7Bmin_x%3Amin_x%2Cmax_x%3Amax_x%2Cmin_y%3Amin_y%2Cmax_y%3Amax_y%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22hasSameParent%5C%5C%5C%22%2Cvalue%3Afunction%20hasSameParent(node1%2Cnode2)%7Bvar%20parents1%3Dthis.parentReference%5Bnode1.id%5D%3Bvar%20parents2%3Dthis.parentReference%5Bnode2.id%5D%3Bif(parents1%3D%3D%3Dundefined%7C%7Cparents2%3D%3D%3Dundefined)%7Breturn%20false%7Dfor(var%20i%3D0%3Bi%3Cparents1.length%3Bi%2B%2B)%7Bfor(var%20j%3D0%3Bj%3Cparents2.length%3Bj%2B%2B)%7Bif(parents1%5Bi%5D%3D%3Dparents2%5Bj%5D)%7Breturn%20true%7D%7D%7Dreturn%20false%7D%7D%2C%7Bkey%3A%5C%5C%5C%22inSameSubNetwork%5C%5C%5C%22%2Cvalue%3Afunction%20inSameSubNetwork(node1%2Cnode2)%7Breturn%20this.trees%5Bnode1.id%5D%3D%3D%3Dthis.trees%5Bnode2.id%5D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getLevels%5C%5C%5C%22%2Cvalue%3Afunction%20getLevels()%7Breturn(0%2C_keys2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this.distributionOrdering)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22addToOrdering%5C%5C%5C%22%2Cvalue%3Afunction%20addToOrdering(node%2Clevel)%7Bif(this.distributionOrdering%5Blevel%5D%3D%3D%3Dundefined)%7Bthis.distributionOrdering%5Blevel%5D%3D%5B%5D%7Dvar%20isPresent%3Dfalse%3Bvar%20curLevel%3Dthis.distributionOrdering%5Blevel%5D%3Bfor(var%20n%20in%20curLevel)%7Bif(curLevel%5Bn%5D%3D%3D%3Dnode)%7BisPresent%3Dtrue%3Bbreak%7D%7Dif(!isPresent)%7Bthis.distributionOrdering%5Blevel%5D.push(node)%3Bthis.distributionIndex%5Bnode.id%5D%3Dthis.distributionOrdering%5Blevel%5D.length-1%7D%7D%7D%5D)%3Breturn%20HierarchicalStatus%7D()%3Bvar%20LayoutEngine%3Dfunction()%7Bfunction%20LayoutEngine(body)%7B(0%2C_classCallCheck3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2CLayoutEngine)%3Bthis.body%3Dbody%3Bthis.initialRandomSeed%3DMath.round(Math.random()*1e6)%3Bthis.randomSeed%3Dthis.initialRandomSeed%3Bthis.setPhysics%3Dfalse%3Bthis.options%3D%7B%7D%3Bthis.optionsBackup%3D%7Bphysics%3A%7B%7D%7D%3Bthis.defaultOptions%3D%7BrandomSeed%3Aundefined%2CimprovedLayout%3Atrue%2Chierarchical%3A%7Benabled%3Afalse%2ClevelSeparation%3A150%2CnodeSpacing%3A100%2CtreeSpacing%3A200%2CblockShifting%3Atrue%2CedgeMinimization%3Atrue%2CparentCentralization%3Atrue%2Cdirection%3A%5C%5C%5C%22UD%5C%5C%5C%22%2CsortMethod%3A%5C%5C%5C%22hubsize%5C%5C%5C%22%7D%7D%3Butil.extend(this.options%2Cthis.defaultOptions)%3Bthis.bindEventListeners()%7D(0%2C_createClass3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(LayoutEngine%2C%5B%7Bkey%3A%5C%5C%5C%22bindEventListeners%5C%5C%5C%22%2Cvalue%3Afunction%20bindEventListeners()%7Bvar%20_this2%3Dthis%3Bthis.body.emitter.on(%5C%5C%5C%22_dataChanged%5C%5C%5C%22%2Cfunction()%7B_this2.setupHierarchicalLayout()%7D)%3Bthis.body.emitter.on(%5C%5C%5C%22_dataLoaded%5C%5C%5C%22%2Cfunction()%7B_this2.layoutNetwork()%7D)%3Bthis.body.emitter.on(%5C%5C%5C%22_resetHierarchicalLayout%5C%5C%5C%22%2Cfunction()%7B_this2.setupHierarchicalLayout()%7D)%3Bthis.body.emitter.on(%5C%5C%5C%22_adjustEdgesForHierarchicalLayout%5C%5C%5C%22%2Cfunction()%7Bif(_this2.options.hierarchical.enabled!%3D%3Dtrue)%7Breturn%7Dvar%20type%3D_this2.direction.curveType()%3B_this2.body.emitter.emit(%5C%5C%5C%22_forceDisableDynamicCurves%5C%5C%5C%22%2Ctype%2Cfalse)%7D)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22setOptions%5C%5C%5C%22%2Cvalue%3Afunction%20setOptions(options%2CallOptions)%7Bif(options!%3D%3Dundefined)%7Bvar%20hierarchical%3Dthis.options.hierarchical%3Bvar%20prevHierarchicalState%3Dhierarchical.enabled%3Butil.selectiveDeepExtend(%5B%5C%5C%5C%22randomSeed%5C%5C%5C%22%2C%5C%5C%5C%22improvedLayout%5C%5C%5C%22%5D%2Cthis.options%2Coptions)%3Butil.mergeOptions(this.options%2Coptions%2C%5C%5C%5C%22hierarchical%5C%5C%5C%22)%3Bif(options.randomSeed!%3D%3Dundefined)%7Bthis.initialRandomSeed%3Doptions.randomSeed%7Dif(hierarchical.enabled%3D%3D%3Dtrue)%7Bif(prevHierarchicalState%3D%3D%3Dtrue)%7Bthis.body.emitter.emit(%5C%5C%5C%22refresh%5C%5C%5C%22%2Ctrue)%7Dif(hierarchical.direction%3D%3D%3D%5C%5C%5C%22RL%5C%5C%5C%22%7C%7Chierarchical.direction%3D%3D%3D%5C%5C%5C%22DU%5C%5C%5C%22)%7Bif(hierarchical.levelSeparation%3E0)%7Bhierarchical.levelSeparation*%3D-1%7D%7Delse%7Bif(hierarchical.levelSeparation%3C0)%7Bhierarchical.levelSeparation*%3D-1%7D%7Dthis.setDirectionStrategy()%3Bthis.body.emitter.emit(%5C%5C%5C%22_resetHierarchicalLayout%5C%5C%5C%22)%3Breturn%20this.adaptAllOptionsForHierarchicalLayout(allOptions)%7Delse%7Bif(prevHierarchicalState%3D%3D%3Dtrue)%7Bthis.body.emitter.emit(%5C%5C%5C%22refresh%5C%5C%5C%22)%3Breturn%20util.deepExtend(allOptions%2Cthis.optionsBackup)%7D%7D%7Dreturn%20allOptions%7D%7D%2C%7Bkey%3A%5C%5C%5C%22adaptAllOptionsForHierarchicalLayout%5C%5C%5C%22%2Cvalue%3Afunction%20adaptAllOptionsForHierarchicalLayout(allOptions)%7Bif(this.options.hierarchical.enabled%3D%3D%3Dtrue)%7Bvar%20backupPhysics%3Dthis.optionsBackup.physics%3Bif(allOptions.physics%3D%3D%3Dundefined%7C%7CallOptions.physics%3D%3D%3Dtrue)%7BallOptions.physics%3D%7Benabled%3AbackupPhysics.enabled%3D%3D%3Dundefined%3Ftrue%3AbackupPhysics.enabled%2Csolver%3A%5C%5C%5C%22hierarchicalRepulsion%5C%5C%5C%22%7D%3BbackupPhysics.enabled%3DbackupPhysics.enabled%3D%3D%3Dundefined%3Ftrue%3AbackupPhysics.enabled%3BbackupPhysics.solver%3DbackupPhysics.solver%7C%7C%5C%5C%5C%22barnesHut%5C%5C%5C%22%7Delse%20if((0%2C_typeof3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(allOptions.physics)%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22)%7BbackupPhysics.enabled%3DallOptions.physics.enabled%3D%3D%3Dundefined%3Ftrue%3AallOptions.physics.enabled%3BbackupPhysics.solver%3DallOptions.physics.solver%7C%7C%5C%5C%5C%22barnesHut%5C%5C%5C%22%3BallOptions.physics.solver%3D%5C%5C%5C%22hierarchicalRepulsion%5C%5C%5C%22%7Delse%20if(allOptions.physics!%3D%3Dfalse)%7BbackupPhysics.solver%3D%5C%5C%5C%22barnesHut%5C%5C%5C%22%3BallOptions.physics%3D%7Bsolver%3A%5C%5C%5C%22hierarchicalRepulsion%5C%5C%5C%22%7D%7Dvar%20type%3Dthis.direction.curveType()%3Bif(allOptions.edges%3D%3D%3Dundefined)%7Bthis.optionsBackup.edges%3D%7Bsmooth%3A%7Benabled%3Atrue%2Ctype%3A%5C%5C%5C%22dynamic%5C%5C%5C%22%7D%7D%3BallOptions.edges%3D%7Bsmooth%3Afalse%7D%7Delse%20if(allOptions.edges.smooth%3D%3D%3Dundefined)%7Bthis.optionsBackup.edges%3D%7Bsmooth%3A%7Benabled%3Atrue%2Ctype%3A%5C%5C%5C%22dynamic%5C%5C%5C%22%7D%7D%3BallOptions.edges.smooth%3Dfalse%7Delse%7Bif(typeof%20allOptions.edges.smooth%3D%3D%3D%5C%5C%5C%22boolean%5C%5C%5C%22)%7Bthis.optionsBackup.edges%3D%7Bsmooth%3AallOptions.edges.smooth%7D%3BallOptions.edges.smooth%3D%7Benabled%3AallOptions.edges.smooth%2Ctype%3Atype%7D%7Delse%7Bvar%20smooth%3DallOptions.edges.smooth%3Bif(smooth.type!%3D%3Dundefined%26%26smooth.type!%3D%3D%5C%5C%5C%22dynamic%5C%5C%5C%22)%7Btype%3Dsmooth.type%7Dthis.optionsBackup.edges%3D%7Bsmooth%3Asmooth.enabled%3D%3D%3Dundefined%3Ftrue%3Asmooth.enabled%2Ctype%3Asmooth.type%3D%3D%3Dundefined%3F%5C%5C%5C%22dynamic%5C%5C%5C%22%3Asmooth.type%2Croundness%3Asmooth.roundness%3D%3D%3Dundefined%3F.5%3Asmooth.roundness%2CforceDirection%3Asmooth.forceDirection%3D%3D%3Dundefined%3Ffalse%3Asmooth.forceDirection%7D%3BallOptions.edges.smooth%3D%7Benabled%3Asmooth.enabled%3D%3D%3Dundefined%3Ftrue%3Asmooth.enabled%2Ctype%3Atype%2Croundness%3Asmooth.roundness%3D%3D%3Dundefined%3F.5%3Asmooth.roundness%2CforceDirection%3Asmooth.forceDirection%3D%3D%3Dundefined%3Ffalse%3Asmooth.forceDirection%7D%7D%7Dthis.body.emitter.emit(%5C%5C%5C%22_forceDisableDynamicCurves%5C%5C%5C%22%2Ctype)%7Dreturn%20allOptions%7D%7D%2C%7Bkey%3A%5C%5C%5C%22seededRandom%5C%5C%5C%22%2Cvalue%3Afunction%20seededRandom()%7Bvar%20x%3DMath.sin(this.randomSeed%2B%2B)*1e4%3Breturn%20x-Math.floor(x)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22positionInitially%5C%5C%5C%22%2Cvalue%3Afunction%20positionInitially(nodesArray)%7Bif(this.options.hierarchical.enabled!%3D%3Dtrue)%7Bthis.randomSeed%3Dthis.initialRandomSeed%3Bvar%20radius%3DnodesArray.length%2B50%3Bfor(var%20i%3D0%3Bi%3CnodesArray.length%3Bi%2B%2B)%7Bvar%20node%3DnodesArray%5Bi%5D%3Bvar%20angle%3D2*Math.PI*this.seededRandom()%3Bif(node.x%3D%3D%3Dundefined)%7Bnode.x%3Dradius*Math.cos(angle)%7Dif(node.y%3D%3D%3Dundefined)%7Bnode.y%3Dradius*Math.sin(angle)%7D%7D%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22layoutNetwork%5C%5C%5C%22%2Cvalue%3Afunction%20layoutNetwork()%7Bif(this.options.hierarchical.enabled!%3D%3Dtrue%26%26this.options.improvedLayout%3D%3D%3Dtrue)%7Bvar%20indices%3Dthis.body.nodeIndices%3Bvar%20positionDefined%3D0%3Bfor(var%20i%3D0%3Bi%3Cindices.length%3Bi%2B%2B)%7Bvar%20node%3Dthis.body.nodes%5Bindices%5Bi%5D%5D%3Bif(node.predefinedPosition%3D%3D%3Dtrue)%7BpositionDefined%2B%3D1%7D%7Dif(positionDefined%3C.5*indices.length)%7Bvar%20MAX_LEVELS%3D10%3Bvar%20level%3D0%3Bvar%20clusterThreshold%3D150%3Bvar%20clusterOptions%3D%7BclusterNodeProperties%3A%7Bshape%3A%5C%5C%5C%22ellipse%5C%5C%5C%22%2Clabel%3A%5C%5C%5C%22%5C%5C%5C%22%2Cgroup%3A%5C%5C%5C%22%5C%5C%5C%22%2Cfont%3A%7Bmulti%3Afalse%7D%7D%2CclusterEdgeProperties%3A%7Blabel%3A%5C%5C%5C%22%5C%5C%5C%22%2Cfont%3A%7Bmulti%3Afalse%7D%2Csmooth%3A%7Benabled%3Afalse%7D%7D%7D%3Bif(indices.length%3EclusterThreshold)%7Bvar%20startLength%3Dindices.length%3Bwhile(indices.length%3EclusterThreshold%26%26level%3C%3DMAX_LEVELS)%7Blevel%2B%3D1%3Bvar%20before%3Dindices.length%3Bif(level%253%3D%3D%3D0)%7Bthis.body.modules.clustering.clusterBridges(clusterOptions)%7Delse%7Bthis.body.modules.clustering.clusterOutliers(clusterOptions)%7Dvar%20after%3Dindices.length%3Bif(before%3D%3Dafter%26%26level%253!%3D%3D0)%7Bthis._declusterAll()%3Bthis.body.emitter.emit(%5C%5C%5C%22_layoutFailed%5C%5C%5C%22)%3Bconsole.info(%5C%5C%5C%22This%20network%20could%20not%20be%20positioned%20by%20this%20version%20of%20the%20improved%20layout%20algorithm.%5C%5C%5C%22%2B%5C%5C%5C%22%20Please%20disable%20improvedLayout%20for%20better%20performance.%5C%5C%5C%22)%3Breturn%7D%7Dthis.body.modules.kamadaKawai.setOptions(%7BspringLength%3AMath.max(150%2C2*startLength)%7D)%7Dif(level%3EMAX_LEVELS)%7Bconsole.info(%5C%5C%5C%22The%20clustering%20didn't%20succeed%20within%20the%20amount%20of%20interations%20allowed%2C%5C%5C%5C%22%2B%5C%5C%5C%22%20progressing%20with%20partial%20result.%5C%5C%5C%22)%7Dthis.body.modules.kamadaKawai.solve(indices%2Cthis.body.edgeIndices%2Ctrue)%3Bthis._shiftToCenter()%3Bvar%20offset%3D70%3Bfor(var%20_i%3D0%3B_i%3Cindices.length%3B_i%2B%2B)%7Bvar%20_node%3Dthis.body.nodes%5Bindices%5B_i%5D%5D%3Bif(_node.predefinedPosition%3D%3D%3Dfalse)%7B_node.x%2B%3D(.5-this.seededRandom())*offset%3B_node.y%2B%3D(.5-this.seededRandom())*offset%7D%7Dthis._declusterAll()%3Bthis.body.emitter.emit(%5C%5C%5C%22_repositionBezierNodes%5C%5C%5C%22)%7D%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_shiftToCenter%5C%5C%5C%22%2Cvalue%3Afunction%20_shiftToCenter()%7Bvar%20range%3DNetworkUtil.getRangeCore(this.body.nodes%2Cthis.body.nodeIndices)%3Bvar%20center%3DNetworkUtil.findCenter(range)%3Bfor(var%20i%3D0%3Bi%3Cthis.body.nodeIndices.length%3Bi%2B%2B)%7Bvar%20node%3Dthis.body.nodes%5Bthis.body.nodeIndices%5Bi%5D%5D%3Bnode.x-%3Dcenter.x%3Bnode.y-%3Dcenter.y%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_declusterAll%5C%5C%5C%22%2Cvalue%3Afunction%20_declusterAll()%7Bvar%20clustersPresent%3Dtrue%3Bwhile(clustersPresent%3D%3D%3Dtrue)%7BclustersPresent%3Dfalse%3Bfor(var%20i%3D0%3Bi%3Cthis.body.nodeIndices.length%3Bi%2B%2B)%7Bif(this.body.nodes%5Bthis.body.nodeIndices%5Bi%5D%5D.isCluster%3D%3D%3Dtrue)%7BclustersPresent%3Dtrue%3Bthis.body.modules.clustering.openCluster(this.body.nodeIndices%5Bi%5D%2C%7B%7D%2Cfalse)%7D%7Dif(clustersPresent%3D%3D%3Dtrue)%7Bthis.body.emitter.emit(%5C%5C%5C%22_dataChanged%5C%5C%5C%22)%7D%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getSeed%5C%5C%5C%22%2Cvalue%3Afunction%20getSeed()%7Breturn%20this.initialRandomSeed%7D%7D%2C%7Bkey%3A%5C%5C%5C%22setupHierarchicalLayout%5C%5C%5C%22%2Cvalue%3Afunction%20setupHierarchicalLayout()%7Bif(this.options.hierarchical.enabled%3D%3D%3Dtrue%26%26this.body.nodeIndices.length%3E0)%7Bvar%20node%3Dvoid%200%2CnodeId%3Dvoid%200%3Bvar%20definedLevel%3Dfalse%3Bvar%20undefinedLevel%3Dfalse%3Bthis.lastNodeOnLevel%3D%7B%7D%3Bthis.hierarchical%3Dnew%20HierarchicalStatus%3Bfor(nodeId%20in%20this.body.nodes)%7Bif(this.body.nodes.hasOwnProperty(nodeId))%7Bnode%3Dthis.body.nodes%5BnodeId%5D%3Bif(node.options.level!%3D%3Dundefined)%7BdefinedLevel%3Dtrue%3Bthis.hierarchical.levels%5BnodeId%5D%3Dnode.options.level%7Delse%7BundefinedLevel%3Dtrue%7D%7D%7Dif(undefinedLevel%3D%3D%3Dtrue%26%26definedLevel%3D%3D%3Dtrue)%7Bthrow%20new%20Error(%5C%5C%5C%22To%20use%20the%20hierarchical%20layout%2C%20nodes%20require%20either%20no%20predefined%20levels%5C%5C%5C%22%2B%5C%5C%5C%22%20or%20levels%20have%20to%20be%20defined%20for%20all%20nodes.%5C%5C%5C%22)%7Delse%7Bif(undefinedLevel%3D%3D%3Dtrue)%7Bvar%20sortMethod%3Dthis.options.hierarchical.sortMethod%3Bif(sortMethod%3D%3D%3D%5C%5C%5C%22hubsize%5C%5C%5C%22)%7Bthis._determineLevelsByHubsize()%7Delse%20if(sortMethod%3D%3D%3D%5C%5C%5C%22directed%5C%5C%5C%22)%7Bthis._determineLevelsDirected()%7Delse%20if(sortMethod%3D%3D%3D%5C%5C%5C%22custom%5C%5C%5C%22)%7Bthis._determineLevelsCustomCallback()%7D%7Dfor(var%20_nodeId2%20in%20this.body.nodes)%7Bif(this.body.nodes.hasOwnProperty(_nodeId2))%7Bthis.hierarchical.ensureLevel(_nodeId2)%7D%7Dvar%20distribution%3Dthis._getDistribution()%3Bthis._generateMap()%3Bthis._placeNodesByHierarchy(distribution)%3Bthis._condenseHierarchy()%3Bthis._shiftToCenter()%7D%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_condenseHierarchy%5C%5C%5C%22%2Cvalue%3Afunction%20_condenseHierarchy()%7Bvar%20_this3%3Dthis%3Bvar%20stillShifting%3Dfalse%3Bvar%20branches%3D%7B%7D%3Bvar%20shiftTrees%3Dfunction%20shiftTrees()%7Bvar%20treeSizes%3DgetTreeSizes()%3Bvar%20shiftBy%3D0%3Bfor(var%20i%3D0%3Bi%3CtreeSizes.length-1%3Bi%2B%2B)%7Bvar%20diff%3DtreeSizes%5Bi%5D.max-treeSizes%5Bi%2B1%5D.min%3BshiftBy%2B%3Ddiff%2B_this3.options.hierarchical.treeSpacing%3BshiftTree(i%2B1%2CshiftBy)%7D%7D%3Bvar%20shiftTree%3Dfunction%20shiftTree(index%2Coffset)%7Bvar%20trees%3D_this3.hierarchical.trees%3Bfor(var%20nodeId%20in%20trees)%7Bif(trees.hasOwnProperty(nodeId))%7Bif(trees%5BnodeId%5D%3D%3D%3Dindex)%7B_this3.direction.shift(nodeId%2Coffset)%7D%7D%7D%7D%3Bvar%20getTreeSizes%3Dfunction%20getTreeSizes()%7Bvar%20treeWidths%3D%5B%5D%3Bfor(var%20i%3D0%3Bi%3C_this3.hierarchical.numTrees()%3Bi%2B%2B)%7BtreeWidths.push(_this3.direction.getTreeSize(i))%7Dreturn%20treeWidths%7D%3Bvar%20getBranchNodes%3Dfunction%20getBranchNodes(source%2Cmap)%7Bif(map%5Bsource.id%5D)%7Breturn%7Dmap%5Bsource.id%5D%3Dtrue%3Bif(_this3.hierarchical.childrenReference%5Bsource.id%5D)%7Bvar%20children%3D_this3.hierarchical.childrenReference%5Bsource.id%5D%3Bif(children.length%3E0)%7Bfor(var%20i%3D0%3Bi%3Cchildren.length%3Bi%2B%2B)%7BgetBranchNodes(_this3.body.nodes%5Bchildren%5Bi%5D%5D%2Cmap)%7D%7D%7D%7D%3Bvar%20getBranchBoundary%3Dfunction%20getBranchBoundary(branchMap)%7Bvar%20maxLevel%3Darguments.length%3E1%26%26arguments%5B1%5D!%3D%3Dundefined%3Farguments%5B1%5D%3A1e9%3Bvar%20minSpace%3D1e9%3Bvar%20maxSpace%3D1e9%3Bvar%20min%3D1e9%3Bvar%20max%3D-1e9%3Bfor(var%20branchNode%20in%20branchMap)%7Bif(branchMap.hasOwnProperty(branchNode))%7Bvar%20node%3D_this3.body.nodes%5BbranchNode%5D%3Bvar%20level%3D_this3.hierarchical.levels%5Bnode.id%5D%3Bvar%20position%3D_this3.direction.getPosition(node)%3Bvar%20_getSpaceAroundNode2%3D_this3._getSpaceAroundNode(node%2CbranchMap)%2C_getSpaceAroundNode3%3D(0%2C_slicedToArray3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(_getSpaceAroundNode2%2C2)%2CminSpaceNode%3D_getSpaceAroundNode3%5B0%5D%2CmaxSpaceNode%3D_getSpaceAroundNode3%5B1%5D%3BminSpace%3DMath.min(minSpaceNode%2CminSpace)%3BmaxSpace%3DMath.min(maxSpaceNode%2CmaxSpace)%3Bif(level%3C%3DmaxLevel)%7Bmin%3DMath.min(position%2Cmin)%3Bmax%3DMath.max(position%2Cmax)%7D%7D%7Dreturn%5Bmin%2Cmax%2CminSpace%2CmaxSpace%5D%7D%3Bvar%20getCollisionLevel%3Dfunction%20getCollisionLevel(node1%2Cnode2)%7Bvar%20maxLevel1%3D_this3.hierarchical.getMaxLevel(node1.id)%3Bvar%20maxLevel2%3D_this3.hierarchical.getMaxLevel(node2.id)%3Breturn%20Math.min(maxLevel1%2CmaxLevel2)%7D%3Bvar%20shiftElementsCloser%3Dfunction%20shiftElementsCloser(callback%2Clevels%2CcenterParents)%7Bvar%20hier%3D_this3.hierarchical%3Bfor(var%20i%3D0%3Bi%3Clevels.length%3Bi%2B%2B)%7Bvar%20level%3Dlevels%5Bi%5D%3Bvar%20levelNodes%3Dhier.distributionOrdering%5Blevel%5D%3Bif(levelNodes.length%3E1)%7Bfor(var%20j%3D0%3Bj%3ClevelNodes.length-1%3Bj%2B%2B)%7Bvar%20node1%3DlevelNodes%5Bj%5D%3Bvar%20node2%3DlevelNodes%5Bj%2B1%5D%3Bif(hier.hasSameParent(node1%2Cnode2)%26%26hier.inSameSubNetwork(node1%2Cnode2))%7Bcallback(node1%2Cnode2%2CcenterParents)%7D%7D%7D%7D%7D%3Bvar%20branchShiftCallback%3Dfunction%20branchShiftCallback(node1%2Cnode2)%7Bvar%20centerParent%3Darguments.length%3E2%26%26arguments%5B2%5D!%3D%3Dundefined%3Farguments%5B2%5D%3Afalse%3Bvar%20pos1%3D_this3.direction.getPosition(node1)%3Bvar%20pos2%3D_this3.direction.getPosition(node2)%3Bvar%20diffAbs%3DMath.abs(pos2-pos1)%3Bvar%20nodeSpacing%3D_this3.options.hierarchical.nodeSpacing%3Bif(diffAbs%3EnodeSpacing)%7Bvar%20branchNodes1%3D%7B%7D%3Bvar%20branchNodes2%3D%7B%7D%3BgetBranchNodes(node1%2CbranchNodes1)%3BgetBranchNodes(node2%2CbranchNodes2)%3Bvar%20maxLevel%3DgetCollisionLevel(node1%2Cnode2)%3Bvar%20branchNodeBoundary1%3DgetBranchBoundary(branchNodes1%2CmaxLevel)%3Bvar%20branchNodeBoundary2%3DgetBranchBoundary(branchNodes2%2CmaxLevel)%3Bvar%20max1%3DbranchNodeBoundary1%5B1%5D%3Bvar%20min2%3DbranchNodeBoundary2%5B0%5D%3Bvar%20minSpace2%3DbranchNodeBoundary2%5B2%5D%3Bvar%20diffBranch%3DMath.abs(max1-min2)%3Bif(diffBranch%3EnodeSpacing)%7Bvar%20offset%3Dmax1-min2%2BnodeSpacing%3Bif(offset%3C-minSpace2%2BnodeSpacing)%7Boffset%3D-minSpace2%2BnodeSpacing%7Dif(offset%3C0)%7B_this3._shiftBlock(node2.id%2Coffset)%3BstillShifting%3Dtrue%3Bif(centerParent%3D%3D%3Dtrue)_this3._centerParent(node2)%7D%7D%7D%7D%3Bvar%20minimizeEdgeLength%3Dfunction%20minimizeEdgeLength(iterations%2Cnode)%7Bvar%20nodeId%3Dnode.id%3Bvar%20allEdges%3Dnode.edges%3Bvar%20nodeLevel%3D_this3.hierarchical.levels%5Bnode.id%5D%3Bvar%20C2%3D_this3.options.hierarchical.levelSeparation*_this3.options.hierarchical.levelSeparation%3Bvar%20referenceNodes%3D%7B%7D%3Bvar%20aboveEdges%3D%5B%5D%3Bfor(var%20i%3D0%3Bi%3CallEdges.length%3Bi%2B%2B)%7Bvar%20edge%3DallEdges%5Bi%5D%3Bif(edge.toId!%3Dedge.fromId)%7Bvar%20otherNode%3Dedge.toId%3D%3DnodeId%3Fedge.from%3Aedge.to%3BreferenceNodes%5BallEdges%5Bi%5D.id%5D%3DotherNode%3Bif(_this3.hierarchical.levels%5BotherNode.id%5D%3CnodeLevel)%7BaboveEdges.push(edge)%7D%7D%7Dvar%20getFx%3Dfunction%20getFx(point%2Cedges)%7Bvar%20sum%3D0%3Bfor(var%20_i2%3D0%3B_i2%3Cedges.length%3B_i2%2B%2B)%7Bif(referenceNodes%5Bedges%5B_i2%5D.id%5D!%3D%3Dundefined)%7Bvar%20a%3D_this3.direction.getPosition(referenceNodes%5Bedges%5B_i2%5D.id%5D)-point%3Bsum%2B%3Da%2FMath.sqrt(a*a%2BC2)%7D%7Dreturn%20sum%7D%3Bvar%20getDFx%3Dfunction%20getDFx(point%2Cedges)%7Bvar%20sum%3D0%3Bfor(var%20_i3%3D0%3B_i3%3Cedges.length%3B_i3%2B%2B)%7Bif(referenceNodes%5Bedges%5B_i3%5D.id%5D!%3D%3Dundefined)%7Bvar%20a%3D_this3.direction.getPosition(referenceNodes%5Bedges%5B_i3%5D.id%5D)-point%3Bsum-%3DC2*Math.pow(a*a%2BC2%2C-1.5)%7D%7Dreturn%20sum%7D%3Bvar%20getGuess%3Dfunction%20getGuess(iterations%2Cedges)%7Bvar%20guess%3D_this3.direction.getPosition(node)%3Bvar%20guessMap%3D%7B%7D%3Bfor(var%20_i4%3D0%3B_i4%3Citerations%3B_i4%2B%2B)%7Bvar%20fx%3DgetFx(guess%2Cedges)%3Bvar%20dfx%3DgetDFx(guess%2Cedges)%3Bvar%20limit%3D40%3Bvar%20ratio%3DMath.max(-limit%2CMath.min(limit%2CMath.round(fx%2Fdfx)))%3Bguess%3Dguess-ratio%3Bif(guessMap%5Bguess%5D!%3D%3Dundefined)%7Bbreak%7DguessMap%5Bguess%5D%3D_i4%7Dreturn%20guess%7D%3Bvar%20moveBranch%3Dfunction%20moveBranch(guess)%7Bvar%20nodePosition%3D_this3.direction.getPosition(node)%3Bif(branches%5Bnode.id%5D%3D%3D%3Dundefined)%7Bvar%20branchNodes%3D%7B%7D%3BgetBranchNodes(node%2CbranchNodes)%3Bbranches%5Bnode.id%5D%3DbranchNodes%7Dvar%20branchBoundary%3DgetBranchBoundary(branches%5Bnode.id%5D)%3Bvar%20minSpaceBranch%3DbranchBoundary%5B2%5D%3Bvar%20maxSpaceBranch%3DbranchBoundary%5B3%5D%3Bvar%20diff%3Dguess-nodePosition%3Bvar%20branchOffset%3D0%3Bif(diff%3E0)%7BbranchOffset%3DMath.min(diff%2CmaxSpaceBranch-_this3.options.hierarchical.nodeSpacing)%7Delse%20if(diff%3C0)%7BbranchOffset%3D-Math.min(-diff%2CminSpaceBranch-_this3.options.hierarchical.nodeSpacing)%7Dif(branchOffset!%3D0)%7B_this3._shiftBlock(node.id%2CbranchOffset)%3BstillShifting%3Dtrue%7D%7D%3Bvar%20moveNode%3Dfunction%20moveNode(guess)%7Bvar%20nodePosition%3D_this3.direction.getPosition(node)%3Bvar%20_getSpaceAroundNode4%3D_this3._getSpaceAroundNode(node)%2C_getSpaceAroundNode5%3D(0%2C_slicedToArray3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(_getSpaceAroundNode4%2C2)%2CminSpace%3D_getSpaceAroundNode5%5B0%5D%2CmaxSpace%3D_getSpaceAroundNode5%5B1%5D%3Bvar%20diff%3Dguess-nodePosition%3Bvar%20newPosition%3DnodePosition%3Bif(diff%3E0)%7BnewPosition%3DMath.min(nodePosition%2B(maxSpace-_this3.options.hierarchical.nodeSpacing)%2Cguess)%7Delse%20if(diff%3C0)%7BnewPosition%3DMath.max(nodePosition-(minSpace-_this3.options.hierarchical.nodeSpacing)%2Cguess)%7Dif(newPosition!%3D%3DnodePosition)%7B_this3.direction.setPosition(node%2CnewPosition)%3BstillShifting%3Dtrue%7D%7D%3Bvar%20guess%3DgetGuess(iterations%2CaboveEdges)%3BmoveBranch(guess)%3Bguess%3DgetGuess(iterations%2CallEdges)%3BmoveNode(guess)%7D%3Bvar%20minimizeEdgeLengthBottomUp%3Dfunction%20minimizeEdgeLengthBottomUp(iterations)%7Bvar%20levels%3D_this3.hierarchical.getLevels()%3Blevels%3Dlevels.reverse()%3Bfor(var%20i%3D0%3Bi%3Citerations%3Bi%2B%2B)%7BstillShifting%3Dfalse%3Bfor(var%20j%3D0%3Bj%3Clevels.length%3Bj%2B%2B)%7Bvar%20level%3Dlevels%5Bj%5D%3Bvar%20levelNodes%3D_this3.hierarchical.distributionOrdering%5Blevel%5D%3Bfor(var%20k%3D0%3Bk%3ClevelNodes.length%3Bk%2B%2B)%7BminimizeEdgeLength(1e3%2ClevelNodes%5Bk%5D)%7D%7Dif(stillShifting!%3D%3Dtrue)%7Bbreak%7D%7D%7D%3Bvar%20shiftBranchesCloserBottomUp%3Dfunction%20shiftBranchesCloserBottomUp(iterations)%7Bvar%20levels%3D_this3.hierarchical.getLevels()%3Blevels%3Dlevels.reverse()%3Bfor(var%20i%3D0%3Bi%3Citerations%3Bi%2B%2B)%7BstillShifting%3Dfalse%3BshiftElementsCloser(branchShiftCallback%2Clevels%2Ctrue)%3Bif(stillShifting!%3D%3Dtrue)%7Bbreak%7D%7D%7D%3Bvar%20centerAllParents%3Dfunction%20centerAllParents()%7Bfor(var%20nodeId%20in%20_this3.body.nodes)%7Bif(_this3.body.nodes.hasOwnProperty(nodeId))_this3._centerParent(_this3.body.nodes%5BnodeId%5D)%7D%7D%3Bvar%20centerAllParentsBottomUp%3Dfunction%20centerAllParentsBottomUp()%7Bvar%20levels%3D_this3.hierarchical.getLevels()%5C%5Cn%3Blevels%3Dlevels.reverse()%3Bfor(var%20i%3D0%3Bi%3Clevels.length%3Bi%2B%2B)%7Bvar%20level%3Dlevels%5Bi%5D%3Bvar%20levelNodes%3D_this3.hierarchical.distributionOrdering%5Blevel%5D%3Bfor(var%20j%3D0%3Bj%3ClevelNodes.length%3Bj%2B%2B)%7B_this3._centerParent(levelNodes%5Bj%5D)%7D%7D%7D%3Bif(this.options.hierarchical.blockShifting%3D%3D%3Dtrue)%7BshiftBranchesCloserBottomUp(5)%3BcenterAllParents()%7Dif(this.options.hierarchical.edgeMinimization%3D%3D%3Dtrue)%7BminimizeEdgeLengthBottomUp(20)%7Dif(this.options.hierarchical.parentCentralization%3D%3D%3Dtrue)%7BcenterAllParentsBottomUp()%7DshiftTrees()%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_getSpaceAroundNode%5C%5C%5C%22%2Cvalue%3Afunction%20_getSpaceAroundNode(node%2Cmap)%7Bvar%20useMap%3Dtrue%3Bif(map%3D%3D%3Dundefined)%7BuseMap%3Dfalse%7Dvar%20level%3Dthis.hierarchical.levels%5Bnode.id%5D%3Bif(level!%3D%3Dundefined)%7Bvar%20index%3Dthis.hierarchical.distributionIndex%5Bnode.id%5D%3Bvar%20position%3Dthis.direction.getPosition(node)%3Bvar%20ordering%3Dthis.hierarchical.distributionOrdering%5Blevel%5D%3Bvar%20minSpace%3D1e9%3Bvar%20maxSpace%3D1e9%3Bif(index!%3D%3D0)%7Bvar%20prevNode%3Dordering%5Bindex-1%5D%3Bif(useMap%3D%3D%3Dtrue%26%26map%5BprevNode.id%5D%3D%3D%3Dundefined%7C%7CuseMap%3D%3D%3Dfalse)%7Bvar%20prevPos%3Dthis.direction.getPosition(prevNode)%3BminSpace%3Dposition-prevPos%7D%7Dif(index!%3Dordering.length-1)%7Bvar%20nextNode%3Dordering%5Bindex%2B1%5D%3Bif(useMap%3D%3D%3Dtrue%26%26map%5BnextNode.id%5D%3D%3D%3Dundefined%7C%7CuseMap%3D%3D%3Dfalse)%7Bvar%20nextPos%3Dthis.direction.getPosition(nextNode)%3BmaxSpace%3DMath.min(maxSpace%2CnextPos-position)%7D%7Dreturn%5BminSpace%2CmaxSpace%5D%7Delse%7Breturn%5B0%2C0%5D%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_centerParent%5C%5C%5C%22%2Cvalue%3Afunction%20_centerParent(node)%7Bif(this.hierarchical.parentReference%5Bnode.id%5D)%7Bvar%20parents%3Dthis.hierarchical.parentReference%5Bnode.id%5D%3Bfor(var%20i%3D0%3Bi%3Cparents.length%3Bi%2B%2B)%7Bvar%20parentId%3Dparents%5Bi%5D%3Bvar%20parentNode%3Dthis.body.nodes%5BparentId%5D%3Bvar%20children%3Dthis.hierarchical.childrenReference%5BparentId%5D%3Bif(children!%3D%3Dundefined)%7Bvar%20newPosition%3Dthis._getCenterPosition(children)%3Bvar%20position%3Dthis.direction.getPosition(parentNode)%3Bvar%20_getSpaceAroundNode6%3Dthis._getSpaceAroundNode(parentNode)%2C_getSpaceAroundNode7%3D(0%2C_slicedToArray3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(_getSpaceAroundNode6%2C2)%2CminSpace%3D_getSpaceAroundNode7%5B0%5D%2CmaxSpace%3D_getSpaceAroundNode7%5B1%5D%3Bvar%20diff%3Dposition-newPosition%3Bif(diff%3C0%26%26Math.abs(diff)%3CmaxSpace-this.options.hierarchical.nodeSpacing%7C%7Cdiff%3E0%26%26Math.abs(diff)%3CminSpace-this.options.hierarchical.nodeSpacing)%7Bthis.direction.setPosition(parentNode%2CnewPosition)%7D%7D%7D%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_placeNodesByHierarchy%5C%5C%5C%22%2Cvalue%3Afunction%20_placeNodesByHierarchy(distribution)%7Bthis.positionedNodes%3D%7B%7D%3Bfor(var%20level%20in%20distribution)%7Bif(distribution.hasOwnProperty(level))%7Bvar%20nodeArray%3D(0%2C_keys2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(distribution%5Blevel%5D)%3BnodeArray%3Dthis._indexArrayToNodes(nodeArray)%3Bthis.direction.sort(nodeArray)%3Bvar%20handledNodeCount%3D0%3Bfor(var%20i%3D0%3Bi%3CnodeArray.length%3Bi%2B%2B)%7Bvar%20node%3DnodeArray%5Bi%5D%3Bif(this.positionedNodes%5Bnode.id%5D%3D%3D%3Dundefined)%7Bvar%20spacing%3Dthis.options.hierarchical.nodeSpacing%3Bvar%20pos%3Dspacing*handledNodeCount%3Bif(handledNodeCount%3E0)%7Bpos%3Dthis.direction.getPosition(nodeArray%5Bi-1%5D)%2Bspacing%7Dthis.direction.setPosition(node%2Cpos%2Clevel)%3Bthis._validatePositionAndContinue(node%2Clevel%2Cpos)%3BhandledNodeCount%2B%2B%7D%7D%7D%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_placeBranchNodes%5C%5C%5C%22%2Cvalue%3Afunction%20_placeBranchNodes(parentId%2CparentLevel)%7Bvar%20childRef%3Dthis.hierarchical.childrenReference%5BparentId%5D%3Bif(childRef%3D%3D%3Dundefined)%7Breturn%7Dvar%20childNodes%3D%5B%5D%3Bfor(var%20i%3D0%3Bi%3CchildRef.length%3Bi%2B%2B)%7BchildNodes.push(this.body.nodes%5BchildRef%5Bi%5D%5D)%7Dthis.direction.sort(childNodes)%3Bfor(var%20_i5%3D0%3B_i5%3CchildNodes.length%3B_i5%2B%2B)%7Bvar%20childNode%3DchildNodes%5B_i5%5D%3Bvar%20childNodeLevel%3Dthis.hierarchical.levels%5BchildNode.id%5D%3Bif(childNodeLevel%3EparentLevel%26%26this.positionedNodes%5BchildNode.id%5D%3D%3D%3Dundefined)%7Bvar%20spacing%3Dthis.options.hierarchical.nodeSpacing%3Bvar%20pos%3Dvoid%200%3Bif(_i5%3D%3D%3D0)%7Bpos%3Dthis.direction.getPosition(this.body.nodes%5BparentId%5D)%7Delse%7Bpos%3Dthis.direction.getPosition(childNodes%5B_i5-1%5D)%2Bspacing%7Dthis.direction.setPosition(childNode%2Cpos%2CchildNodeLevel)%3Bthis._validatePositionAndContinue(childNode%2CchildNodeLevel%2Cpos)%7Delse%7Breturn%7D%7Dvar%20center%3Dthis._getCenterPosition(childNodes)%3Bthis.direction.setPosition(this.body.nodes%5BparentId%5D%2Ccenter%2CparentLevel)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_validatePositionAndContinue%5C%5C%5C%22%2Cvalue%3Afunction%20_validatePositionAndContinue(node%2Clevel%2Cpos)%7Bif(!this.hierarchical.isTree)return%3Bif(this.lastNodeOnLevel%5Blevel%5D!%3D%3Dundefined)%7Bvar%20previousPos%3Dthis.direction.getPosition(this.body.nodes%5Bthis.lastNodeOnLevel%5Blevel%5D%5D)%3Bif(pos-previousPos%3Cthis.options.hierarchical.nodeSpacing)%7Bvar%20diff%3DpreviousPos%2Bthis.options.hierarchical.nodeSpacing-pos%3Bvar%20sharedParent%3Dthis._findCommonParent(this.lastNodeOnLevel%5Blevel%5D%2Cnode.id)%3Bthis._shiftBlock(sharedParent.withChild%2Cdiff)%7D%7Dthis.lastNodeOnLevel%5Blevel%5D%3Dnode.id%3Bthis.positionedNodes%5Bnode.id%5D%3Dtrue%3Bthis._placeBranchNodes(node.id%2Clevel)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_indexArrayToNodes%5C%5C%5C%22%2Cvalue%3Afunction%20_indexArrayToNodes(idArray)%7Bvar%20array%3D%5B%5D%3Bfor(var%20i%3D0%3Bi%3CidArray.length%3Bi%2B%2B)%7Barray.push(this.body.nodes%5BidArray%5Bi%5D%5D)%7Dreturn%20array%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_getDistribution%5C%5C%5C%22%2Cvalue%3Afunction%20_getDistribution()%7Bvar%20distribution%3D%7B%7D%3Bvar%20nodeId%3Dvoid%200%2Cnode%3Dvoid%200%3Bfor(nodeId%20in%20this.body.nodes)%7Bif(this.body.nodes.hasOwnProperty(nodeId))%7Bnode%3Dthis.body.nodes%5BnodeId%5D%3Bvar%20level%3Dthis.hierarchical.levels%5BnodeId%5D%3D%3D%3Dundefined%3F0%3Athis.hierarchical.levels%5BnodeId%5D%3Bthis.direction.fix(node%2Clevel)%3Bif(distribution%5Blevel%5D%3D%3D%3Dundefined)%7Bdistribution%5Blevel%5D%3D%7B%7D%7Ddistribution%5Blevel%5D%5BnodeId%5D%3Dnode%7D%7Dreturn%20distribution%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_getActiveEdges%5C%5C%5C%22%2Cvalue%3Afunction%20_getActiveEdges(node)%7Bvar%20_this4%3Dthis%3Bvar%20result%3D%5B%5D%3Butil.forEach(node.edges%2Cfunction(edge)%7Bif(_this4.body.edgeIndices.indexOf(edge.id)!%3D%3D-1)%7Bresult.push(edge)%7D%7D)%3Breturn%20result%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_getHubSizes%5C%5C%5C%22%2Cvalue%3Afunction%20_getHubSizes()%7Bvar%20_this5%3Dthis%3Bvar%20hubSizes%3D%7B%7D%3Bvar%20nodeIds%3Dthis.body.nodeIndices%3Butil.forEach(nodeIds%2Cfunction(nodeId)%7Bvar%20node%3D_this5.body.nodes%5BnodeId%5D%3Bvar%20hubSize%3D_this5._getActiveEdges(node).length%3BhubSizes%5BhubSize%5D%3Dtrue%7D)%3Bvar%20result%3D%5B%5D%3Butil.forEach(hubSizes%2Cfunction(size)%7Bresult.push(Number(size))%7D)%3Bresult.sort(function(a%2Cb)%7Breturn%20b-a%7D)%3Breturn%20result%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_determineLevelsByHubsize%5C%5C%5C%22%2Cvalue%3Afunction%20_determineLevelsByHubsize()%7Bvar%20_this6%3Dthis%3Bvar%20levelDownstream%3Dfunction%20levelDownstream(nodeA%2CnodeB)%7B_this6.hierarchical.levelDownstream(nodeA%2CnodeB)%7D%3Bvar%20hubSizes%3Dthis._getHubSizes()%3Bvar%20_loop%3Dfunction%20_loop(i)%7Bvar%20hubSize%3DhubSizes%5Bi%5D%3Bif(hubSize%3D%3D%3D0)return%5C%5C%5C%22break%5C%5C%5C%22%3Butil.forEach(_this6.body.nodeIndices%2Cfunction(nodeId)%7Bvar%20node%3D_this6.body.nodes%5BnodeId%5D%3Bif(hubSize%3D%3D%3D_this6._getActiveEdges(node).length)%7B_this6._crawlNetwork(levelDownstream%2CnodeId)%7D%7D)%7D%3Bfor(var%20i%3D0%3Bi%3ChubSizes.length%3B%2B%2Bi)%7Bvar%20_ret%3D_loop(i)%3Bif(_ret%3D%3D%3D%5C%5C%5C%22break%5C%5C%5C%22)break%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_determineLevelsCustomCallback%5C%5C%5C%22%2Cvalue%3Afunction%20_determineLevelsCustomCallback()%7Bvar%20_this7%3Dthis%3Bvar%20minLevel%3D1e5%3Bvar%20customCallback%3Dfunction%20customCallback(nodeA%2CnodeB%2Cedge)%7B%7D%3Bvar%20levelByDirection%3Dfunction%20levelByDirection(nodeA%2CnodeB%2Cedge)%7Bvar%20levelA%3D_this7.hierarchical.levels%5BnodeA.id%5D%3Bif(levelA%3D%3D%3Dundefined)%7BlevelA%3D_this7.hierarchical.levels%5BnodeA.id%5D%3DminLevel%7Dvar%20diff%3DcustomCallback(NetworkUtil.cloneOptions(nodeA%2C%5C%5C%5C%22node%5C%5C%5C%22)%2CNetworkUtil.cloneOptions(nodeB%2C%5C%5C%5C%22node%5C%5C%5C%22)%2CNetworkUtil.cloneOptions(edge%2C%5C%5C%5C%22edge%5C%5C%5C%22))%3B_this7.hierarchical.levels%5BnodeB.id%5D%3DlevelA%2Bdiff%7D%3Bthis._crawlNetwork(levelByDirection)%3Bthis.hierarchical.setMinLevelToZero(this.body.nodes)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_determineLevelsDirected%5C%5C%5C%22%2Cvalue%3Afunction%20_determineLevelsDirected()%7Bvar%20_this8%3Dthis%3Bvar%20minLevel%3D1e4%3Bvar%20isBidirectional%3Dfunction%20isBidirectional(edge)%7Butil.forEach(_this8.body.edges%2Cfunction(otherEdge)%7Bif(otherEdge.toId%3D%3D%3Dedge.fromId%26%26otherEdge.fromId%3D%3D%3Dedge.toId)%7Breturn%20true%7D%7D)%3Breturn%20false%7D%3Bvar%20levelByDirection%3Dfunction%20levelByDirection(nodeA%2CnodeB%2Cedge)%7Bvar%20levelA%3D_this8.hierarchical.levels%5BnodeA.id%5D%3Bvar%20levelB%3D_this8.hierarchical.levels%5BnodeB.id%5D%3Bif(isBidirectional(edge)%26%26levelA!%3D%3Dundefined%26%26levelB!%3D%3Dundefined)%7Breturn%7Dif(levelA%3D%3D%3Dundefined)%7BlevelA%3D_this8.hierarchical.levels%5BnodeA.id%5D%3DminLevel%7Dif(edge.toId%3D%3DnodeB.id)%7B_this8.hierarchical.levels%5BnodeB.id%5D%3DlevelA%2B1%7Delse%7B_this8.hierarchical.levels%5BnodeB.id%5D%3DlevelA-1%7D%7D%3Bthis._crawlNetwork(levelByDirection)%3Bthis.hierarchical.setMinLevelToZero(this.body.nodes)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_generateMap%5C%5C%5C%22%2Cvalue%3Afunction%20_generateMap()%7Bvar%20_this9%3Dthis%3Bvar%20fillInRelations%3Dfunction%20fillInRelations(parentNode%2CchildNode)%7Bif(_this9.hierarchical.levels%5BchildNode.id%5D%3E_this9.hierarchical.levels%5BparentNode.id%5D)%7B_this9.hierarchical.addRelation(parentNode.id%2CchildNode.id)%7D%7D%3Bthis._crawlNetwork(fillInRelations)%3Bthis.hierarchical.checkIfTree()%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_crawlNetwork%5C%5C%5C%22%2Cvalue%3Afunction%20_crawlNetwork()%7Bvar%20_this10%3Dthis%3Bvar%20callback%3Darguments.length%3E0%26%26arguments%5B0%5D!%3D%3Dundefined%3Farguments%5B0%5D%3Afunction()%7B%7D%3Bvar%20startingNodeId%3Darguments%5B1%5D%3Bvar%20progress%3D%7B%7D%3Bvar%20crawler%3Dfunction%20crawler(node%2Ctree)%7Bif(progress%5Bnode.id%5D%3D%3D%3Dundefined)%7B_this10.hierarchical.setTreeIndex(node%2Ctree)%3Bprogress%5Bnode.id%5D%3Dtrue%3Bvar%20childNode%3Dvoid%200%3Bvar%20edges%3D_this10._getActiveEdges(node)%3Bfor(var%20i%3D0%3Bi%3Cedges.length%3Bi%2B%2B)%7Bvar%20edge%3Dedges%5Bi%5D%3Bif(edge.connected%3D%3D%3Dtrue)%7Bif(edge.toId%3D%3Dnode.id)%7BchildNode%3Dedge.from%7Delse%7BchildNode%3Dedge.to%7Dif(node.id!%3DchildNode.id)%7Bcallback(node%2CchildNode%2Cedge)%3Bcrawler(childNode%2Ctree)%7D%7D%7D%7D%7D%3Bif(startingNodeId%3D%3D%3Dundefined)%7Bvar%20treeIndex%3D0%3Bfor(var%20i%3D0%3Bi%3Cthis.body.nodeIndices.length%3Bi%2B%2B)%7Bvar%20nodeId%3Dthis.body.nodeIndices%5Bi%5D%3Bif(progress%5BnodeId%5D%3D%3D%3Dundefined)%7Bvar%20node%3Dthis.body.nodes%5BnodeId%5D%3Bcrawler(node%2CtreeIndex)%3BtreeIndex%2B%3D1%7D%7D%7Delse%7Bvar%20_node2%3Dthis.body.nodes%5BstartingNodeId%5D%3Bif(_node2%3D%3D%3Dundefined)%7Bconsole.error(%5C%5C%5C%22Node%20not%20found%3A%5C%5C%5C%22%2CstartingNodeId)%3Breturn%7Dcrawler(_node2)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_shiftBlock%5C%5C%5C%22%2Cvalue%3Afunction%20_shiftBlock(parentId%2Cdiff)%7Bvar%20_this11%3Dthis%3Bvar%20progress%3D%7B%7D%3Bvar%20shifter%3Dfunction%20shifter(parentId)%7Bif(progress%5BparentId%5D)%7Breturn%7Dprogress%5BparentId%5D%3Dtrue%3B_this11.direction.shift(parentId%2Cdiff)%3Bvar%20childRef%3D_this11.hierarchical.childrenReference%5BparentId%5D%3Bif(childRef!%3D%3Dundefined)%7Bfor(var%20i%3D0%3Bi%3CchildRef.length%3Bi%2B%2B)%7Bshifter(childRef%5Bi%5D)%7D%7D%7D%3Bshifter(parentId)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_findCommonParent%5C%5C%5C%22%2Cvalue%3Afunction%20_findCommonParent(childA%2CchildB)%7Bvar%20_this12%3Dthis%3Bvar%20parents%3D%7B%7D%3Bvar%20iterateParents%3Dfunction%20iterateParents(parents%2Cchild)%7Bvar%20parentRef%3D_this12.hierarchical.parentReference%5Bchild%5D%3Bif(parentRef!%3D%3Dundefined)%7Bfor(var%20i%3D0%3Bi%3CparentRef.length%3Bi%2B%2B)%7Bvar%20parent%3DparentRef%5Bi%5D%3Bparents%5Bparent%5D%3Dtrue%3BiterateParents(parents%2Cparent)%7D%7D%7D%3Bvar%20findParent%3Dfunction%20findParent(parents%2Cchild)%7Bvar%20parentRef%3D_this12.hierarchical.parentReference%5Bchild%5D%3Bif(parentRef!%3D%3Dundefined)%7Bfor(var%20i%3D0%3Bi%3CparentRef.length%3Bi%2B%2B)%7Bvar%20parent%3DparentRef%5Bi%5D%3Bif(parents%5Bparent%5D!%3D%3Dundefined)%7Breturn%7BfoundParent%3Aparent%2CwithChild%3Achild%7D%7Dvar%20branch%3DfindParent(parents%2Cparent)%3Bif(branch.foundParent!%3D%3Dnull)%7Breturn%20branch%7D%7D%7Dreturn%7BfoundParent%3Anull%2CwithChild%3Achild%7D%7D%3BiterateParents(parents%2CchildA)%3Breturn%20findParent(parents%2CchildB)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22setDirectionStrategy%5C%5C%5C%22%2Cvalue%3Afunction%20setDirectionStrategy()%7Bvar%20isVertical%3Dthis.options.hierarchical.direction%3D%3D%3D%5C%5C%5C%22UD%5C%5C%5C%22%7C%7Cthis.options.hierarchical.direction%3D%3D%3D%5C%5C%5C%22DU%5C%5C%5C%22%3Bif(isVertical)%7Bthis.direction%3Dnew%20VerticalStrategy(this)%7Delse%7Bthis.direction%3Dnew%20HorizontalStrategy(this)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_getCenterPosition%5C%5C%5C%22%2Cvalue%3Afunction%20_getCenterPosition(childNodes)%7Bvar%20minPos%3D1e9%3Bvar%20maxPos%3D-1e9%3Bfor(var%20i%3D0%3Bi%3CchildNodes.length%3Bi%2B%2B)%7Bvar%20childNode%3Dvoid%200%3Bif(childNodes%5Bi%5D.id!%3D%3Dundefined)%7BchildNode%3DchildNodes%5Bi%5D%7Delse%7Bvar%20childNodeId%3DchildNodes%5Bi%5D%3BchildNode%3Dthis.body.nodes%5BchildNodeId%5D%7Dvar%20position%3Dthis.direction.getPosition(childNode)%3BminPos%3DMath.min(minPos%2Cposition)%3BmaxPos%3DMath.max(maxPos%2Cposition)%7Dreturn.5*(minPos%2BmaxPos)%7D%7D%5D)%3Breturn%20LayoutEngine%7D()%3Bexports%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3DLayoutEngine%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bexports.VerticalStrategy%3Dexports.HorizontalStrategy%3Dundefined%3Bvar%20_getPrototypeOf%3D__webpack_require__(3)%3Bvar%20_getPrototypeOf2%3D_interopRequireDefault(_getPrototypeOf)%3Bvar%20_possibleConstructorReturn2%3D__webpack_require__(4)%3Bvar%20_possibleConstructorReturn3%3D_interopRequireDefault(_possibleConstructorReturn2)%3Bvar%20_inherits2%3D__webpack_require__(5)%3Bvar%20_inherits3%3D_interopRequireDefault(_inherits2)%3Bvar%20_classCallCheck2%3D__webpack_require__(0)%3Bvar%20_classCallCheck3%3D_interopRequireDefault(_classCallCheck2)%3Bvar%20_createClass2%3D__webpack_require__(1)%3Bvar%20_createClass3%3D_interopRequireDefault(_createClass2)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20DirectionInterface%3Dfunction()%7Bfunction%20DirectionInterface()%7B(0%2C_classCallCheck3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2CDirectionInterface)%7D(0%2C_createClass3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(DirectionInterface%2C%5B%7Bkey%3A%5C%5C%5C%22abstract%5C%5C%5C%22%2Cvalue%3Afunction%20abstract()%7Bthrow%20new%20Error(%5C%5C%5C%22Can't%20instantiate%20abstract%20class!%5C%5C%5C%22)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22fake_use%5C%5C%5C%22%2Cvalue%3Afunction%20fake_use()%7B%7D%7D%2C%7Bkey%3A%5C%5C%5C%22curveType%5C%5C%5C%22%2Cvalue%3Afunction%20curveType()%7Breturn%20this.abstract()%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getPosition%5C%5C%5C%22%2Cvalue%3Afunction%20getPosition(node)%7Bthis.fake_use(node)%3Breturn%20this.abstract()%7D%7D%2C%7Bkey%3A%5C%5C%5C%22setPosition%5C%5C%5C%22%2Cvalue%3Afunction%20setPosition(node%2Cposition)%7Bvar%20level%3Darguments.length%3E2%26%26arguments%5B2%5D!%3D%3Dundefined%3Farguments%5B2%5D%3Aundefined%3Bthis.fake_use(node%2Cposition%2Clevel)%3Bthis.abstract()%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getTreeSize%5C%5C%5C%22%2Cvalue%3Afunction%20getTreeSize(index)%7Bthis.fake_use(index)%3Breturn%20this.abstract()%7D%7D%2C%7Bkey%3A%5C%5C%5C%22sort%5C%5C%5C%22%2Cvalue%3Afunction%20sort(nodeArray)%7Bthis.fake_use(nodeArray)%3Bthis.abstract()%7D%7D%2C%7Bkey%3A%5C%5C%5C%22fix%5C%5C%5C%22%2Cvalue%3Afunction%20fix(node%2Clevel)%7Bthis.fake_use(node%2Clevel)%3Bthis.abstract()%7D%7D%2C%7Bkey%3A%5C%5C%5C%22shift%5C%5C%5C%22%2Cvalue%3Afunction%20shift(nodeId%2Cdiff)%7Bthis.fake_use(nodeId%2Cdiff)%3Bthis.abstract()%7D%7D%5D)%3Breturn%20DirectionInterface%7D()%3Bvar%20VerticalStrategy%3Dfunction(_DirectionInterface)%7B(0%2C_inherits3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(VerticalStrategy%2C_DirectionInterface)%3Bfunction%20VerticalStrategy(layout)%7B(0%2C_classCallCheck3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2CVerticalStrategy)%3Bvar%20_this%3D(0%2C_possibleConstructorReturn3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2C(VerticalStrategy.__proto__%7C%7C(0%2C_getPrototypeOf2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(VerticalStrategy)).call(this))%3B_this.layout%3Dlayout%3Breturn%20_this%7D(0%2C_createClass3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(VerticalStrategy%2C%5B%7Bkey%3A%5C%5C%5C%22curveType%5C%5C%5C%22%2Cvalue%3Afunction%20curveType()%7Breturn%5C%5C%5C%22horizontal%5C%5C%5C%22%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getPosition%5C%5C%5C%22%2Cvalue%3Afunction%20getPosition(node)%7Breturn%20node.x%7D%7D%2C%7Bkey%3A%5C%5C%5C%22setPosition%5C%5C%5C%22%2Cvalue%3Afunction%20setPosition(node%2Cposition)%7Bvar%20level%3Darguments.length%3E2%26%26arguments%5B2%5D!%3D%3Dundefined%3Farguments%5B2%5D%3Aundefined%3Bif(level!%3D%3Dundefined)%7Bthis.layout.hierarchical.addToOrdering(node%2Clevel)%7Dnode.x%3Dposition%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getTreeSize%5C%5C%5C%22%2Cvalue%3Afunction%20getTreeSize(index)%7Bvar%20res%3Dthis.layout.hierarchical.getTreeSize(this.layout.body.nodes%2Cindex)%3Breturn%7Bmin%3Ares.min_x%2Cmax%3Ares.max_x%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22sort%5C%5C%5C%22%2Cvalue%3Afunction%20sort(nodeArray)%7BnodeArray.sort(function(a%2Cb)%7Bif(a.x%3D%3D%3Dundefined%7C%7Cb.x%3D%3D%3Dundefined)return%200%3Breturn%20a.x-b.x%7D)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22fix%5C%5C%5C%22%2Cvalue%3Afunction%20fix(node%2Clevel)%7Bnode.y%3Dthis.layout.options.hierarchical.levelSeparation*level%3Bnode.options.fixed.y%3Dtrue%7D%7D%2C%7Bkey%3A%5C%5C%5C%22shift%5C%5C%5C%22%2Cvalue%3Afunction%20shift(nodeId%2Cdiff)%7Bthis.layout.body.nodes%5BnodeId%5D.x%2B%3Ddiff%7D%7D%5D)%3Breturn%20VerticalStrategy%7D(DirectionInterface)%3Bvar%20HorizontalStrategy%3Dfunction(_DirectionInterface2)%7B(0%2C_inherits3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(HorizontalStrategy%2C_DirectionInterface2)%3Bfunction%20HorizontalStrategy(layout)%7B(0%2C_classCallCheck3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2CHorizontalStrategy)%3Bvar%20_this2%3D(0%2C_possibleConstructorReturn3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2C(HorizontalStrategy.__proto__%7C%7C(0%2C_getPrototypeOf2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(HorizontalStrategy)).call(this))%3B_this2.layout%3Dlayout%3Breturn%20_this2%7D(0%2C_createClass3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(HorizontalStrategy%2C%5B%7Bkey%3A%5C%5C%5C%22curveType%5C%5C%5C%22%2Cvalue%3Afunction%20curveType()%7Breturn%5C%5C%5C%22vertical%5C%5C%5C%22%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getPosition%5C%5C%5C%22%2Cvalue%3Afunction%20getPosition(node)%7Breturn%20node.y%7D%7D%2C%7Bkey%3A%5C%5C%5C%22setPosition%5C%5C%5C%22%2Cvalue%3Afunction%20setPosition(node%2Cposition)%7Bvar%20level%3Darguments.length%3E2%26%26arguments%5B2%5D!%3D%3Dundefined%3Farguments%5B2%5D%3Aundefined%3Bif(level!%3D%3Dundefined)%7Bthis.layout.hierarchical.addToOrdering(node%2Clevel)%7Dnode.y%3Dposition%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getTreeSize%5C%5C%5C%22%2Cvalue%3Afunction%20getTreeSize(index)%7Bvar%20res%3Dthis.layout.hierarchical.getTreeSize(this.layout.body.nodes%2Cindex)%3Breturn%7Bmin%3Ares.min_y%2Cmax%3Ares.max_y%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22sort%5C%5C%5C%22%2Cvalue%3Afunction%20sort(nodeArray)%7BnodeArray.sort(function(a%2Cb)%7Bif(a.y%3D%3D%3Dundefined%7C%7Cb.y%3D%3D%3Dundefined)return%200%3Breturn%20a.y-b.y%7D)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22fix%5C%5C%5C%22%2Cvalue%3Afunction%20fix(node%2Clevel)%7Bnode.x%3Dthis.layout.options.hierarchical.levelSeparation*level%3Bnode.options.fixed.x%3Dtrue%7D%7D%2C%7Bkey%3A%5C%5C%5C%22shift%5C%5C%5C%22%2Cvalue%3Afunction%20shift(nodeId%2Cdiff)%7Bthis.layout.body.nodes%5BnodeId%5D.y%2B%3Ddiff%7D%7D%5D)%3Breturn%20HorizontalStrategy%7D(DirectionInterface)%3Bexports.HorizontalStrategy%3DHorizontalStrategy%3Bexports.VerticalStrategy%3DVerticalStrategy%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_keys%3D__webpack_require__(8)%3Bvar%20_keys2%3D_interopRequireDefault(_keys)%3Bvar%20_stringify%3D__webpack_require__(19)%3Bvar%20_stringify2%3D_interopRequireDefault(_stringify)%3Bvar%20_typeof2%3D__webpack_require__(6)%3Bvar%20_typeof3%3D_interopRequireDefault(_typeof2)%3Bvar%20_classCallCheck2%3D__webpack_require__(0)%3Bvar%20_classCallCheck3%3D_interopRequireDefault(_classCallCheck2)%3Bvar%20_createClass2%3D__webpack_require__(1)%3Bvar%20_createClass3%3D_interopRequireDefault(_createClass2)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20util%3D__webpack_require__(2)%3Bvar%20Hammer%3D__webpack_require__(10)%3Bvar%20hammerUtil%3D__webpack_require__(37)%3Bvar%20ManipulationSystem%3Dfunction()%7Bfunction%20ManipulationSystem(body%2Ccanvas%2CselectionHandler)%7Bvar%20_this%3Dthis%3B(0%2C_classCallCheck3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2CManipulationSystem)%3Bthis.body%3Dbody%3Bthis.canvas%3Dcanvas%3Bthis.selectionHandler%3DselectionHandler%3Bthis.editMode%3Dfalse%3Bthis.manipulationDiv%3Dundefined%3Bthis.editModeDiv%3Dundefined%3Bthis.closeDiv%3Dundefined%3Bthis.manipulationHammers%3D%5B%5D%3Bthis.temporaryUIFunctions%3D%7B%7D%3Bthis.temporaryEventFunctions%3D%5B%5D%3Bthis.touchTime%3D0%3Bthis.temporaryIds%3D%7Bnodes%3A%5B%5D%2Cedges%3A%5B%5D%7D%3Bthis.guiEnabled%3Dfalse%3Bthis.inMode%3Dfalse%3Bthis.selectedControlNode%3Dundefined%3Bthis.options%3D%7B%7D%3Bthis.defaultOptions%3D%7Benabled%3Afalse%2CinitiallyActive%3Afalse%2CaddNode%3Atrue%2CaddEdge%3Atrue%2CeditNode%3Aundefined%2CeditEdge%3Atrue%2CdeleteNode%3Atrue%2CdeleteEdge%3Atrue%2CcontrolNodeStyle%3A%7Bshape%3A%5C%5C%5C%22dot%5C%5C%5C%22%2Csize%3A6%2Ccolor%3A%7Bbackground%3A%5C%5C%5C%22%23ff0000%5C%5C%5C%22%2Cborder%3A%5C%5C%5C%22%233c3c3c%5C%5C%5C%22%2Chighlight%3A%7Bbackground%3A%5C%5C%5C%22%2307f968%5C%5C%5C%22%2Cborder%3A%5C%5C%5C%22%233c3c3c%5C%5C%5C%22%7D%7D%2CborderWidth%3A2%2CborderWidthSelected%3A2%7D%7D%3Butil.extend(this.options%2Cthis.defaultOptions)%3Bthis.body.emitter.on(%5C%5C%5C%22destroy%5C%5C%5C%22%2Cfunction()%7B_this._clean()%7D)%3Bthis.body.emitter.on(%5C%5C%5C%22_dataChanged%5C%5C%5C%22%2Cthis._restore.bind(this))%3Bthis.body.emitter.on(%5C%5C%5C%22_resetData%5C%5C%5C%22%2Cthis._restore.bind(this))%7D(0%2C_createClass3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(ManipulationSystem%2C%5B%7Bkey%3A%5C%5C%5C%22_restore%5C%5C%5C%22%2Cvalue%3Afunction%20_restore()%7Bif(this.inMode!%3D%3Dfalse)%7Bif(this.options.initiallyActive%3D%3D%3Dtrue)%7Bthis.enableEditMode()%7Delse%7Bthis.disableEditMode()%7D%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22setOptions%5C%5C%5C%22%2Cvalue%3Afunction%20setOptions(options%2CallOptions%2CglobalOptions)%7Bif(allOptions!%3D%3Dundefined)%7Bif(allOptions.locale!%3D%3Dundefined)%7Bthis.options.locale%3DallOptions.locale%7Delse%7Bthis.options.locale%3DglobalOptions.locale%7Dif(allOptions.locales!%3D%3Dundefined)%7Bthis.options.locales%3DallOptions.locales%7Delse%7Bthis.options.locales%3DglobalOptions.locales%7D%7Dif(options!%3D%3Dundefined)%7Bif(typeof%20options%3D%3D%3D%5C%5C%5C%22boolean%5C%5C%5C%22)%7Bthis.options.enabled%3Doptions%7Delse%7Bthis.options.enabled%3Dtrue%3Butil.deepExtend(this.options%2Coptions)%7Dif(this.options.initiallyActive%3D%3D%3Dtrue)%7Bthis.editMode%3Dtrue%7Dthis._setup()%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22toggleEditMode%5C%5C%5C%22%2Cvalue%3Afunction%20toggleEditMode()%7Bif(this.editMode%3D%3D%3Dtrue)%7Bthis.disableEditMode()%7Delse%7Bthis.enableEditMode()%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22enableEditMode%5C%5C%5C%22%2Cvalue%3Afunction%20enableEditMode()%7Bthis.editMode%3Dtrue%3Bthis._clean()%3Bif(this.guiEnabled%3D%3D%3Dtrue)%7Bthis.manipulationDiv.style.display%3D%5C%5C%5C%22block%5C%5C%5C%22%3Bthis.closeDiv.style.display%3D%5C%5C%5C%22block%5C%5C%5C%22%3Bthis.editModeDiv.style.display%3D%5C%5C%5C%22none%5C%5C%5C%22%3Bthis.showManipulatorToolbar()%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22disableEditMode%5C%5C%5C%22%2Cvalue%3Afunction%20disableEditMode()%7Bthis.editMode%3Dfalse%3Bthis._clean()%3Bif(this.guiEnabled%3D%3D%3Dtrue)%7Bthis.manipulationDiv.style.display%3D%5C%5C%5C%22none%5C%5C%5C%22%3Bthis.closeDiv.style.display%3D%5C%5C%5C%22none%5C%5C%5C%22%3Bthis.editModeDiv.style.display%3D%5C%5C%5C%22block%5C%5C%5C%22%3Bthis._createEditButton()%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22showManipulatorToolbar%5C%5C%5C%22%2Cvalue%3Afunction%20showManipulatorToolbar()%7Bthis._clean()%3Bthis.manipulationDOM%3D%7B%7D%3Bif(this.guiEnabled%3D%3D%3Dtrue)%7Bthis.editMode%3Dtrue%3Bthis.manipulationDiv.style.display%3D%5C%5C%5C%22block%5C%5C%5C%22%3Bthis.closeDiv.style.display%3D%5C%5C%5C%22block%5C%5C%5C%22%3Bvar%20selectedNodeCount%3Dthis.selectionHandler._getSelectedNodeCount()%3Bvar%20selectedEdgeCount%3Dthis.selectionHandler._getSelectedEdgeCount()%3Bvar%20selectedTotalCount%3DselectedNodeCount%2BselectedEdgeCount%3Bvar%20locale%3Dthis.options.locales%5Bthis.options.locale%5D%3Bvar%20needSeperator%3Dfalse%3Bif(this.options.addNode!%3D%3Dfalse)%7Bthis._createAddNodeButton(locale)%3BneedSeperator%3Dtrue%7Dif(this.options.addEdge!%3D%3Dfalse)%7Bif(needSeperator%3D%3D%3Dtrue)%7Bthis._createSeperator(1)%7Delse%7BneedSeperator%3Dtrue%7Dthis._createAddEdgeButton(locale)%7Dif(selectedNodeCount%3D%3D%3D1%26%26typeof%20this.options.editNode%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22)%7Bif(needSeperator%3D%3D%3Dtrue)%7Bthis._createSeperator(2)%7Delse%7BneedSeperator%3Dtrue%7Dthis._createEditNodeButton(locale)%7Delse%20if(selectedEdgeCount%3D%3D%3D1%26%26selectedNodeCount%3D%3D%3D0%26%26this.options.editEdge!%3D%3Dfalse)%7Bif(needSeperator%3D%3D%3Dtrue)%7Bthis._createSeperator(3)%7Delse%7BneedSeperator%3Dtrue%7Dthis._createEditEdgeButton(locale)%7Dif(selectedTotalCount!%3D%3D0)%7Bif(selectedNodeCount%3E0%26%26this.options.deleteNode!%3D%3Dfalse)%7Bif(needSeperator%3D%3D%3Dtrue)%7Bthis._createSeperator(4)%7Dthis._createDeleteButton(locale)%7Delse%20if(selectedNodeCount%3D%3D%3D0%26%26this.options.deleteEdge!%3D%3Dfalse)%7Bif(needSeperator%3D%3D%3Dtrue)%7Bthis._createSeperator(4)%7Dthis._createDeleteButton(locale)%7D%7Dthis._bindHammerToDiv(this.closeDiv%2Cthis.toggleEditMode.bind(this))%3Bthis._temporaryBindEvent(%5C%5C%5C%22select%5C%5C%5C%22%2Cthis.showManipulatorToolbar.bind(this))%7Dthis.body.emitter.emit(%5C%5C%5C%22_redraw%5C%5C%5C%22)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22addNodeMode%5C%5C%5C%22%2Cvalue%3Afunction%20addNodeMode()%7Bif(this.editMode!%3D%3Dtrue)%7Bthis.enableEditMode()%7Dthis._clean()%3Bthis.inMode%3D%5C%5C%5C%22addNode%5C%5C%5C%22%3Bif(this.guiEnabled%3D%3D%3Dtrue)%7Bvar%20locale%3Dthis.options.locales%5Bthis.options.locale%5D%3Bthis.manipulationDOM%3D%7B%7D%3Bthis._createBackButton(locale)%3Bthis._createSeperator()%3Bthis._createDescription(locale%5B%5C%5C%5C%22addDescription%5C%5C%5C%22%5D%7C%7Cthis.options.locales%5B%5C%5C%5C%22en%5C%5C%5C%22%5D%5B%5C%5C%5C%22addDescription%5C%5C%5C%22%5D)%3Bthis._bindHammerToDiv(this.closeDiv%2Cthis.toggleEditMode.bind(this))%7Dthis._temporaryBindEvent(%5C%5C%5C%22click%5C%5C%5C%22%2Cthis._performAddNode.bind(this))%7D%7D%2C%7Bkey%3A%5C%5C%5C%22editNode%5C%5C%5C%22%2Cvalue%3Afunction%20editNode()%7Bvar%20_this2%3Dthis%3Bif(this.editMode!%3D%3Dtrue)%7Bthis.enableEditMode()%7Dthis._clean()%3Bvar%20node%3Dthis.selectionHandler._getSelectedNode()%3Bif(node!%3D%3Dundefined)%7Bthis.inMode%3D%5C%5C%5C%22editNode%5C%5C%5C%22%3Bif(typeof%20this.options.editNode%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22)%7Bif(node.isCluster!%3D%3Dtrue)%7Bvar%20data%3Dutil.deepExtend(%7B%7D%2Cnode.options%2Cfalse)%3Bdata.x%3Dnode.x%3Bdata.y%3Dnode.y%3Bif(this.options.editNode.length%3D%3D%3D2)%7Bthis.options.editNode(data%2Cfunction(finalizedData)%7Bif(finalizedData!%3D%3Dnull%26%26finalizedData!%3D%3Dundefined%26%26_this2.inMode%3D%3D%3D%5C%5C%5C%22editNode%5C%5C%5C%22)%7B_this2.body.data.nodes.getDataSet().update(finalizedData)%7D_this2.showManipulatorToolbar()%7D)%7Delse%7Bthrow%20new%20Error(%5C%5C%5C%22The%20function%20for%20edit%20does%20not%20support%20two%20arguments%20(data%2C%20callback)%5C%5C%5C%22)%7D%7Delse%7Balert(this.options.locales%5Bthis.options.locale%5D%5B%5C%5C%5C%22editClusterError%5C%5C%5C%22%5D%7C%7Cthis.options.locales%5B%5C%5C%5C%22en%5C%5C%5C%22%5D%5B%5C%5C%5C%22editClusterError%5C%5C%5C%22%5D)%7D%7Delse%7Bthrow%20new%20Error(%5C%5C%5C%22No%20function%20has%20been%20configured%20to%20handle%20the%20editing%20of%20nodes.%5C%5C%5C%22)%7D%7Delse%7Bthis.showManipulatorToolbar()%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22addEdgeMode%5C%5C%5C%22%2Cvalue%3Afunction%20addEdgeMode()%7Bif(this.editMode!%3D%3Dtrue)%7Bthis.enableEditMode()%7Dthis._clean()%3Bthis.inMode%3D%5C%5C%5C%22addEdge%5C%5C%5C%22%3Bif(this.guiEnabled%3D%3D%3Dtrue)%7Bvar%20locale%3Dthis.options.locales%5Bthis.options.locale%5D%3Bthis.manipulationDOM%3D%7B%7D%3Bthis._createBackButton(locale)%3Bthis._createSeperator()%3Bthis._createDescription(locale%5B%5C%5C%5C%22edgeDescription%5C%5C%5C%22%5D%7C%7Cthis.options.locales%5B%5C%5C%5C%22en%5C%5C%5C%22%5D%5B%5C%5C%5C%22edgeDescription%5C%5C%5C%22%5D)%3Bthis._bindHammerToDiv(this.closeDiv%2Cthis.toggleEditMode.bind(this))%7Dthis._temporaryBindUI(%5C%5C%5C%22onTouch%5C%5C%5C%22%2Cthis._handleConnect.bind(this))%3Bthis._temporaryBindUI(%5C%5C%5C%22onDragEnd%5C%5C%5C%22%2Cthis._finishConnect.bind(this))%3Bthis._temporaryBindUI(%5C%5C%5C%22onDrag%5C%5C%5C%22%2Cthis._dragControlNode.bind(this))%3Bthis._temporaryBindUI(%5C%5C%5C%22onRelease%5C%5C%5C%22%2Cthis._finishConnect.bind(this))%3Bthis._temporaryBindUI(%5C%5C%5C%22onDragStart%5C%5C%5C%22%2Cthis._dragStartEdge.bind(this))%3Bthis._temporaryBindUI(%5C%5C%5C%22onHold%5C%5C%5C%22%2Cfunction()%7B%7D)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22editEdgeMode%5C%5C%5C%22%2Cvalue%3Afunction%20editEdgeMode()%7Bif(this.editMode!%3D%3Dtrue)%7Bthis.enableEditMode()%7Dthis._clean()%3Bthis.inMode%3D%5C%5C%5C%22editEdge%5C%5C%5C%22%3Bif((0%2C_typeof3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this.options.editEdge)%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22%26%26typeof%20this.options.editEdge.editWithoutDrag%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22)%7Bthis.edgeBeingEditedId%3Dthis.selectionHandler.getSelectedEdges()%5B0%5D%3Bif(this.edgeBeingEditedId!%3D%3Dundefined)%7Bvar%20edge%3Dthis.body.edges%5Bthis.edgeBeingEditedId%5D%3Bthis._performEditEdge(edge.from%2Cedge.to)%3Breturn%7D%7Dif(this.guiEnabled%3D%3D%3Dtrue)%7Bvar%20locale%3Dthis.options.locales%5Bthis.options.locale%5D%3Bthis.manipulationDOM%3D%7B%7D%3Bthis._createBackButton(locale)%3Bthis._createSeperator()%3Bthis._createDescription(locale%5B%5C%5C%5C%22editEdgeDescription%5C%5C%5C%22%5D%7C%7Cthis.options.locales%5B%5C%5C%5C%22en%5C%5C%5C%22%5D%5B%5C%5C%5C%22editEdgeDescription%5C%5C%5C%22%5D)%3Bthis._bindHammerToDiv(this.closeDiv%2Cthis.toggleEditMode.bind(this))%7Dthis.edgeBeingEditedId%3Dthis.selectionHandler.getSelectedEdges()%5B0%5D%3Bif(this.edgeBeingEditedId!%3D%3Dundefined)%7Bvar%20_edge%3Dthis.body.edges%5Bthis.edgeBeingEditedId%5D%3Bvar%20controlNodeFrom%3Dthis._getNewTargetNode(_edge.from.x%2C_edge.from.y)%3Bvar%20controlNodeTo%3Dthis._getNewTargetNode(_edge.to.x%2C_edge.to.y)%3Bthis.temporaryIds.nodes.push(controlNodeFrom.id)%3Bthis.temporaryIds.nodes.push(controlNodeTo.id)%3Bthis.body.nodes%5BcontrolNodeFrom.id%5D%3DcontrolNodeFrom%3Bthis.body.nodeIndices.push(controlNodeFrom.id)%3Bthis.body.nodes%5BcontrolNodeTo.id%5D%3DcontrolNodeTo%3Bthis.body.nodeIndices.push(controlNodeTo.id)%3Bthis._temporaryBindUI(%5C%5C%5C%22onTouch%5C%5C%5C%22%2Cthis._controlNodeTouch.bind(this))%3Bthis._temporaryBindUI(%5C%5C%5C%22onTap%5C%5C%5C%22%2Cfunction()%7B%7D)%3Bthis._temporaryBindUI(%5C%5C%5C%22onHold%5C%5C%5C%22%2Cfunction()%7B%7D)%3Bthis._temporaryBindUI(%5C%5C%5C%22onDragStart%5C%5C%5C%22%2Cthis._controlNodeDragStart.bind(this))%3Bthis._temporaryBindUI(%5C%5C%5C%22onDrag%5C%5C%5C%22%2Cthis._controlNodeDrag.bind(this))%3Bthis._temporaryBindUI(%5C%5C%5C%22onDragEnd%5C%5C%5C%22%2Cthis._controlNodeDragEnd.bind(this))%3Bthis._temporaryBindUI(%5C%5C%5C%22onMouseMove%5C%5C%5C%22%2Cfunction()%7B%7D)%3Bthis._temporaryBindEvent(%5C%5C%5C%22beforeDrawing%5C%5C%5C%22%2Cfunction(ctx)%7Bvar%20positions%3D_edge.edgeType.findBorderPositions(ctx)%3Bif(controlNodeFrom.selected%3D%3D%3Dfalse)%7BcontrolNodeFrom.x%3Dpositions.from.x%3BcontrolNodeFrom.y%3Dpositions.from.y%7Dif(controlNodeTo.selected%3D%3D%3Dfalse)%7BcontrolNodeTo.x%3Dpositions.to.x%3BcontrolNodeTo.y%3Dpositions.to.y%7D%7D)%3Bthis.body.emitter.emit(%5C%5C%5C%22_redraw%5C%5C%5C%22)%7Delse%7Bthis.showManipulatorToolbar()%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22deleteSelected%5C%5C%5C%22%2Cvalue%3Afunction%20deleteSelected()%7Bvar%20_this3%3Dthis%3Bif(this.editMode!%3D%3Dtrue)%7Bthis.enableEditMode()%7Dthis._clean()%3Bthis.inMode%3D%5C%5C%5C%22delete%5C%5C%5C%22%3Bvar%20selectedNodes%3Dthis.selectionHandler.getSelectedNodes()%3Bvar%20selectedEdges%3Dthis.selectionHandler.getSelectedEdges()%3Bvar%20deleteFunction%3Dundefined%3Bif(selectedNodes.length%3E0)%7Bfor(var%20i%3D0%3Bi%3CselectedNodes.length%3Bi%2B%2B)%7Bif(this.body.nodes%5BselectedNodes%5Bi%5D%5D.isCluster%3D%3D%3Dtrue)%7Balert(this.options.locales%5Bthis.options.locale%5D%5B%5C%5C%5C%22deleteClusterError%5C%5C%5C%22%5D%7C%7Cthis.options.locales%5B%5C%5C%5C%22en%5C%5C%5C%22%5D%5B%5C%5C%5C%22deleteClusterError%5C%5C%5C%22%5D)%3Breturn%7D%7Dif(typeof%20this.options.deleteNode%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22)%7BdeleteFunction%3Dthis.options.deleteNode%7D%7Delse%20if(selectedEdges.length%3E0)%7Bif(typeof%20this.options.deleteEdge%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22)%7BdeleteFunction%3Dthis.options.deleteEdge%7D%7Dif(typeof%20deleteFunction%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22)%7Bvar%20data%3D%7Bnodes%3AselectedNodes%2Cedges%3AselectedEdges%7D%3Bif(deleteFunction.length%3D%3D%3D2)%7BdeleteFunction(data%2Cfunction(finalizedData)%7Bif(finalizedData!%3D%3Dnull%26%26finalizedData!%3D%3Dundefined%26%26_this3.inMode%3D%3D%3D%5C%5C%5C%22delete%5C%5C%5C%22)%7B_this3.body.data.edges.getDataSet().remove(finalizedData.edges)%3B_this3.body.data.nodes.getDataSet().remove(finalizedData.nodes)%3B_this3.body.emitter.emit(%5C%5C%5C%22startSimulation%5C%5C%5C%22)%3B_this3.showManipulatorToolbar()%7Delse%7B_this3.body.emitter.emit(%5C%5C%5C%22startSimulation%5C%5C%5C%22)%3B_this3.showManipulatorToolbar()%7D%7D)%7Delse%7Bthrow%20new%20Error(%5C%5C%5C%22The%20function%20for%20delete%20does%20not%20support%20two%20arguments%20(data%2C%20callback)%5C%5C%5C%22)%7D%7Delse%7Bthis.body.data.edges.getDataSet().remove(selectedEdges)%3Bthis.body.data.nodes.getDataSet().remove(selectedNodes)%3Bthis.body.emitter.emit(%5C%5C%5C%22startSimulation%5C%5C%5C%22)%3Bthis.showManipulatorToolbar()%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_setup%5C%5C%5C%22%2Cvalue%3Afunction%20_setup()%7Bif(this.options.enabled%3D%3D%3Dtrue)%7Bthis.guiEnabled%3Dtrue%3Bthis._createWrappers()%3Bif(this.editMode%3D%3D%3Dfalse)%7Bthis._createEditButton()%7Delse%7Bthis.showManipulatorToolbar()%7D%7Delse%7Bthis._removeManipulationDOM()%3Bthis.guiEnabled%3Dfalse%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_createWrappers%5C%5C%5C%22%2Cvalue%3Afunction%20_createWrappers()%7Bif(this.manipulationDiv%3D%3D%3Dundefined)%7Bthis.manipulationDiv%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bthis.manipulationDiv.className%3D%5C%5C%5C%22vis-manipulation%5C%5C%5C%22%3Bif(this.editMode%3D%3D%3Dtrue)%7Bthis.manipulationDiv.style.display%3D%5C%5C%5C%22block%5C%5C%5C%22%7Delse%7Bthis.manipulationDiv.style.display%3D%5C%5C%5C%22none%5C%5C%5C%22%7Dthis.canvas.frame.appendChild(this.manipulationDiv)%7Dif(this.editModeDiv%3D%3D%3Dundefined)%7Bthis.editModeDiv%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bthis.editModeDiv.className%3D%5C%5C%5C%22vis-edit-mode%5C%5C%5C%22%3Bif(this.editMode%3D%3D%3Dtrue)%7Bthis.editModeDiv.style.display%3D%5C%5C%5C%22none%5C%5C%5C%22%7Delse%7Bthis.editModeDiv.style.display%3D%5C%5C%5C%22block%5C%5C%5C%22%7Dthis.canvas.frame.appendChild(this.editModeDiv)%7Dif(this.closeDiv%3D%3D%3Dundefined)%7Bthis.closeDiv%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bthis.closeDiv.className%3D%5C%5C%5C%22vis-close%5C%5C%5C%22%3Bthis.closeDiv.style.display%3Dthis.manipulationDiv.style.display%3Bthis.canvas.frame.appendChild(this.closeDiv)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_getNewTargetNode%5C%5C%5C%22%2Cvalue%3Afunction%20_getNewTargetNode(x%2Cy)%7Bvar%20controlNodeStyle%3Dutil.deepExtend(%7B%7D%2Cthis.options.controlNodeStyle)%3BcontrolNodeStyle.id%3D%5C%5C%5C%22targetNode%5C%5C%5C%22%2Butil.randomUUID()%3BcontrolNodeStyle.hidden%3Dfalse%3BcontrolNodeStyle.physics%3Dfalse%3BcontrolNodeStyle.x%3Dx%3BcontrolNodeStyle.y%3Dy%3Bvar%20node%3Dthis.body.functions.createNode(controlNodeStyle)%3Bnode.shape.boundingBox%3D%7Bleft%3Ax%2Cright%3Ax%2Ctop%3Ay%2Cbottom%3Ay%7D%3Breturn%20node%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_createEditButton%5C%5C%5C%22%2Cvalue%3Afunction%20_createEditButton()%7Bthis._clean()%3Bthis.manipulationDOM%3D%7B%7D%3Butil.recursiveDOMDelete(this.editModeDiv)%3Bvar%20locale%3Dthis.options.locales%5Bthis.options.locale%5D%3Bvar%20button%3Dthis._createButton(%5C%5C%5C%22editMode%5C%5C%5C%22%2C%5C%5C%5C%22vis-button%20vis-edit%20vis-edit-mode%5C%5C%5C%22%2Clocale%5B%5C%5C%5C%22edit%5C%5C%5C%22%5D%7C%7Cthis.options.locales%5B%5C%5C%5C%22en%5C%5C%5C%22%5D%5B%5C%5C%5C%22edit%5C%5C%5C%22%5D)%3Bthis.editModeDiv.appendChild(button)%3Bthis._bindHammerToDiv(button%2Cthis.toggleEditMode.bind(this))%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_clean%5C%5C%5C%22%2Cvalue%3Afunction%20_clean()%7Bthis.inMode%3Dfalse%3Bif(this.guiEnabled%3D%3D%3Dtrue)%7Butil.recursiveDOMDelete(this.editModeDiv)%3Butil.recursiveDOMDelete(this.manipulationDiv)%3Bthis._cleanManipulatorHammers()%7Dthis._cleanupTemporaryNodesAndEdges()%3Bthis._unbindTemporaryUIs()%3Bthis._unbindTemporaryEvents()%3Bthis.body.emitter.emit(%5C%5C%5C%22restorePhysics%5C%5C%5C%22)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_cleanManipulatorHammers%5C%5C%5C%22%2Cvalue%3Afunction%20_cleanManipulatorHammers()%7Bif(this.manipulationHammers.length!%3D0)%7Bfor(var%20i%3D0%3Bi%3Cthis.manipulationHammers.length%3Bi%2B%2B)%7Bthis.manipulationHammers%5Bi%5D.destroy()%7Dthis.manipulationHammers%3D%5B%5D%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_removeManipulationDOM%5C%5C%5C%22%2Cvalue%3Afunction%20_removeManipulationDOM()%7Bthis._clean()%3Butil.recursiveDOMDelete(this.manipulationDiv)%3Butil.recursiveDOMDelete(this.editModeDiv)%3Butil.recursiveDOMDelete(this.closeDiv)%3Bif(this.manipulationDiv)%7Bthis.canvas.frame.removeChild(this.manipulationDiv)%7Dif(this.editModeDiv)%7Bthis.canvas.frame.removeChild(this.editModeDiv)%7Dif(this.closeDiv)%7Bthis.canvas.frame.removeChild(this.closeDiv)%7Dthis.manipulationDiv%3Dundefined%3Bthis.editModeDiv%3Dundefined%3Bthis.closeDiv%3Dundefined%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_createSeperator%5C%5C%5C%22%2Cvalue%3Afunction%20_createSeperator()%7Bvar%20index%3Darguments.length%3E0%26%26arguments%5B0%5D!%3D%3Dundefined%3Farguments%5B0%5D%3A1%3Bthis.manipulationDOM%5B%5C%5C%5C%22seperatorLineDiv%5C%5C%5C%22%2Bindex%5D%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bthis.manipulationDOM%5B%5C%5C%5C%22seperatorLineDiv%5C%5C%5C%22%2Bindex%5D.className%3D%5C%5C%5C%22vis-separator-line%5C%5C%5C%22%3Bthis.manipulationDiv.appendChild(this.manipulationDOM%5B%5C%5C%5C%22seperatorLineDiv%5C%5C%5C%22%2Bindex%5D)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_createAddNodeButton%5C%5C%5C%22%2Cvalue%3Afunction%20_createAddNodeButton(locale)%7Bvar%20button%3Dthis._createButton(%5C%5C%5C%22addNode%5C%5C%5C%22%2C%5C%5C%5C%22vis-button%20vis-add%5C%5C%5C%22%2Clocale%5B%5C%5C%5C%22addNode%5C%5C%5C%22%5D%7C%7Cthis.options.locales%5B%5C%5C%5C%22en%5C%5C%5C%22%5D%5B%5C%5C%5C%22addNode%5C%5C%5C%22%5D)%3Bthis.manipulationDiv.appendChild(button)%3Bthis._bindHammerToDiv(button%2Cthis.addNodeMode.bind(this))%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_createAddEdgeButton%5C%5C%5C%22%2Cvalue%3Afunction%20_createAddEdgeButton(locale)%7Bvar%20button%3Dthis._createButton(%5C%5C%5C%22addEdge%5C%5C%5C%22%2C%5C%5C%5C%22vis-button%20vis-connect%5C%5C%5C%22%2Clocale%5B%5C%5C%5C%22addEdge%5C%5C%5C%22%5D%7C%7Cthis.options.locales%5B%5C%5C%5C%22en%5C%5C%5C%22%5D%5B%5C%5C%5C%22addEdge%5C%5C%5C%22%5D)%3Bthis.manipulationDiv.appendChild(button)%3Bthis._bindHammerToDiv(button%2Cthis.addEdgeMode.bind(this))%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_createEditNodeButton%5C%5C%5C%22%2Cvalue%3Afunction%20_createEditNodeButton(locale)%7Bvar%20button%3Dthis._createButton(%5C%5C%5C%22editNode%5C%5C%5C%22%2C%5C%5C%5C%22vis-button%20vis-edit%5C%5C%5C%22%2Clocale%5B%5C%5C%5C%22editNode%5C%5C%5C%22%5D%7C%7Cthis.options.locales%5B%5C%5C%5C%22en%5C%5C%5C%22%5D%5B%5C%5C%5C%22editNode%5C%5C%5C%22%5D)%3Bthis.manipulationDiv.appendChild(button)%3Bthis._bindHammerToDiv(button%2Cthis.editNode.bind(this))%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_createEditEdgeButton%5C%5C%5C%22%2Cvalue%3Afunction%20_createEditEdgeButton(locale)%7Bvar%20button%3Dthis._createButton(%5C%5C%5C%22editEdge%5C%5C%5C%22%2C%5C%5C%5C%22vis-button%20vis-edit%5C%5C%5C%22%2Clocale%5B%5C%5C%5C%22editEdge%5C%5C%5C%22%5D%7C%7Cthis.options.locales%5B%5C%5C%5C%22en%5C%5C%5C%22%5D%5B%5C%5C%5C%22editEdge%5C%5C%5C%22%5D)%3Bthis.manipulationDiv.appendChild(button)%3Bthis._bindHammerToDiv(button%2Cthis.editEdgeMode.bind(this))%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_createDeleteButton%5C%5C%5C%22%2Cvalue%3Afunction%20_createDeleteButton(locale)%7Bvar%20deleteBtnClass%3Bif(this.options.rtl)%7BdeleteBtnClass%3D%5C%5C%5C%22vis-button%20vis-delete-rtl%5C%5C%5C%22%7Delse%7BdeleteBtnClass%3D%5C%5C%5C%22vis-button%20vis-delete%5C%5C%5C%22%7Dvar%20button%3Dthis._createButton(%5C%5C%5C%22delete%5C%5C%5C%22%2CdeleteBtnClass%2Clocale%5B%5C%5C%5C%22del%5C%5C%5C%22%5D%7C%7Cthis.options.locales%5B%5C%5C%5C%22en%5C%5C%5C%22%5D%5B%5C%5C%5C%22del%5C%5C%5C%22%5D)%3Bthis.manipulationDiv.appendChild(button)%3Bthis._bindHammerToDiv(button%2Cthis.deleteSelected.bind(this))%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_createBackButton%5C%5C%5C%22%2Cvalue%3Afunction%20_createBackButton(locale)%7B%5C%5Cnvar%20button%3Dthis._createButton(%5C%5C%5C%22back%5C%5C%5C%22%2C%5C%5C%5C%22vis-button%20vis-back%5C%5C%5C%22%2Clocale%5B%5C%5C%5C%22back%5C%5C%5C%22%5D%7C%7Cthis.options.locales%5B%5C%5C%5C%22en%5C%5C%5C%22%5D%5B%5C%5C%5C%22back%5C%5C%5C%22%5D)%3Bthis.manipulationDiv.appendChild(button)%3Bthis._bindHammerToDiv(button%2Cthis.showManipulatorToolbar.bind(this))%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_createButton%5C%5C%5C%22%2Cvalue%3Afunction%20_createButton(id%2CclassName%2Clabel)%7Bvar%20labelClassName%3Darguments.length%3E3%26%26arguments%5B3%5D!%3D%3Dundefined%3Farguments%5B3%5D%3A%5C%5C%5C%22vis-label%5C%5C%5C%22%3Bthis.manipulationDOM%5Bid%2B%5C%5C%5C%22Div%5C%5C%5C%22%5D%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bthis.manipulationDOM%5Bid%2B%5C%5C%5C%22Div%5C%5C%5C%22%5D.className%3DclassName%3Bthis.manipulationDOM%5Bid%2B%5C%5C%5C%22Label%5C%5C%5C%22%5D%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bthis.manipulationDOM%5Bid%2B%5C%5C%5C%22Label%5C%5C%5C%22%5D.className%3DlabelClassName%3Bthis.manipulationDOM%5Bid%2B%5C%5C%5C%22Label%5C%5C%5C%22%5D.innerHTML%3Dlabel%3Bthis.manipulationDOM%5Bid%2B%5C%5C%5C%22Div%5C%5C%5C%22%5D.appendChild(this.manipulationDOM%5Bid%2B%5C%5C%5C%22Label%5C%5C%5C%22%5D)%3Breturn%20this.manipulationDOM%5Bid%2B%5C%5C%5C%22Div%5C%5C%5C%22%5D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_createDescription%5C%5C%5C%22%2Cvalue%3Afunction%20_createDescription(label)%7Bthis.manipulationDiv.appendChild(this._createButton(%5C%5C%5C%22description%5C%5C%5C%22%2C%5C%5C%5C%22vis-button%20vis-none%5C%5C%5C%22%2Clabel))%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_temporaryBindEvent%5C%5C%5C%22%2Cvalue%3Afunction%20_temporaryBindEvent(event%2CnewFunction)%7Bthis.temporaryEventFunctions.push(%7Bevent%3Aevent%2CboundFunction%3AnewFunction%7D)%3Bthis.body.emitter.on(event%2CnewFunction)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_temporaryBindUI%5C%5C%5C%22%2Cvalue%3Afunction%20_temporaryBindUI(UIfunctionName%2CnewFunction)%7Bif(this.body.eventListeners%5BUIfunctionName%5D!%3D%3Dundefined)%7Bthis.temporaryUIFunctions%5BUIfunctionName%5D%3Dthis.body.eventListeners%5BUIfunctionName%5D%3Bthis.body.eventListeners%5BUIfunctionName%5D%3DnewFunction%7Delse%7Bthrow%20new%20Error(%5C%5C%5C%22This%20UI%20function%20does%20not%20exist.%20Typo%3F%20You%20tried%3A%20%5C%5C%5C%22%2BUIfunctionName%2B%5C%5C%5C%22%20possible%20are%3A%20%5C%5C%5C%22%2B(0%2C_stringify2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)((0%2C_keys2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this.body.eventListeners)))%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_unbindTemporaryUIs%5C%5C%5C%22%2Cvalue%3Afunction%20_unbindTemporaryUIs()%7Bfor(var%20functionName%20in%20this.temporaryUIFunctions)%7Bif(this.temporaryUIFunctions.hasOwnProperty(functionName))%7Bthis.body.eventListeners%5BfunctionName%5D%3Dthis.temporaryUIFunctions%5BfunctionName%5D%3Bdelete%20this.temporaryUIFunctions%5BfunctionName%5D%7D%7Dthis.temporaryUIFunctions%3D%7B%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_unbindTemporaryEvents%5C%5C%5C%22%2Cvalue%3Afunction%20_unbindTemporaryEvents()%7Bfor(var%20i%3D0%3Bi%3Cthis.temporaryEventFunctions.length%3Bi%2B%2B)%7Bvar%20eventName%3Dthis.temporaryEventFunctions%5Bi%5D.event%3Bvar%20boundFunction%3Dthis.temporaryEventFunctions%5Bi%5D.boundFunction%3Bthis.body.emitter.off(eventName%2CboundFunction)%7Dthis.temporaryEventFunctions%3D%5B%5D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_bindHammerToDiv%5C%5C%5C%22%2Cvalue%3Afunction%20_bindHammerToDiv(domElement%2CboundFunction)%7Bvar%20hammer%3Dnew%20Hammer(domElement%2C%7B%7D)%3BhammerUtil.onTouch(hammer%2CboundFunction)%3Bthis.manipulationHammers.push(hammer)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_cleanupTemporaryNodesAndEdges%5C%5C%5C%22%2Cvalue%3Afunction%20_cleanupTemporaryNodesAndEdges()%7Bfor(var%20i%3D0%3Bi%3Cthis.temporaryIds.edges.length%3Bi%2B%2B)%7Bthis.body.edges%5Bthis.temporaryIds.edges%5Bi%5D%5D.disconnect()%3Bdelete%20this.body.edges%5Bthis.temporaryIds.edges%5Bi%5D%5D%3Bvar%20indexTempEdge%3Dthis.body.edgeIndices.indexOf(this.temporaryIds.edges%5Bi%5D)%3Bif(indexTempEdge!%3D%3D-1)%7Bthis.body.edgeIndices.splice(indexTempEdge%2C1)%7D%7Dfor(var%20_i%3D0%3B_i%3Cthis.temporaryIds.nodes.length%3B_i%2B%2B)%7Bdelete%20this.body.nodes%5Bthis.temporaryIds.nodes%5B_i%5D%5D%3Bvar%20indexTempNode%3Dthis.body.nodeIndices.indexOf(this.temporaryIds.nodes%5B_i%5D)%3Bif(indexTempNode!%3D%3D-1)%7Bthis.body.nodeIndices.splice(indexTempNode%2C1)%7D%7Dthis.temporaryIds%3D%7Bnodes%3A%5B%5D%2Cedges%3A%5B%5D%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_controlNodeTouch%5C%5C%5C%22%2Cvalue%3Afunction%20_controlNodeTouch(event)%7Bthis.selectionHandler.unselectAll()%3Bthis.lastTouch%3Dthis.body.functions.getPointer(event.center)%3Bthis.lastTouch.translation%3Dutil.extend(%7B%7D%2Cthis.body.view.translation)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_controlNodeDragStart%5C%5C%5C%22%2Cvalue%3Afunction%20_controlNodeDragStart(event)%7Bvar%20pointer%3Dthis.lastTouch%3Bvar%20pointerObj%3Dthis.selectionHandler._pointerToPositionObject(pointer)%3Bvar%20from%3Dthis.body.nodes%5Bthis.temporaryIds.nodes%5B0%5D%5D%3Bvar%20to%3Dthis.body.nodes%5Bthis.temporaryIds.nodes%5B1%5D%5D%3Bvar%20edge%3Dthis.body.edges%5Bthis.edgeBeingEditedId%5D%3Bthis.selectedControlNode%3Dundefined%3Bvar%20fromSelect%3Dfrom.isOverlappingWith(pointerObj)%3Bvar%20toSelect%3Dto.isOverlappingWith(pointerObj)%3Bif(fromSelect%3D%3D%3Dtrue)%7Bthis.selectedControlNode%3Dfrom%3Bedge.edgeType.from%3Dfrom%7Delse%20if(toSelect%3D%3D%3Dtrue)%7Bthis.selectedControlNode%3Dto%3Bedge.edgeType.to%3Dto%7Dif(this.selectedControlNode!%3D%3Dundefined)%7Bthis.selectionHandler.selectObject(this.selectedControlNode)%7Dthis.body.emitter.emit(%5C%5C%5C%22_redraw%5C%5C%5C%22)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_controlNodeDrag%5C%5C%5C%22%2Cvalue%3Afunction%20_controlNodeDrag(event)%7Bthis.body.emitter.emit(%5C%5C%5C%22disablePhysics%5C%5C%5C%22)%3Bvar%20pointer%3Dthis.body.functions.getPointer(event.center)%3Bvar%20pos%3Dthis.canvas.DOMtoCanvas(pointer)%3Bif(this.selectedControlNode!%3D%3Dundefined)%7Bthis.selectedControlNode.x%3Dpos.x%3Bthis.selectedControlNode.y%3Dpos.y%7Delse%7Bvar%20diffX%3Dpointer.x-this.lastTouch.x%3Bvar%20diffY%3Dpointer.y-this.lastTouch.y%3Bthis.body.view.translation%3D%7Bx%3Athis.lastTouch.translation.x%2BdiffX%2Cy%3Athis.lastTouch.translation.y%2BdiffY%7D%7Dthis.body.emitter.emit(%5C%5C%5C%22_redraw%5C%5C%5C%22)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_controlNodeDragEnd%5C%5C%5C%22%2Cvalue%3Afunction%20_controlNodeDragEnd(event)%7Bvar%20pointer%3Dthis.body.functions.getPointer(event.center)%3Bvar%20pointerObj%3Dthis.selectionHandler._pointerToPositionObject(pointer)%3Bvar%20edge%3Dthis.body.edges%5Bthis.edgeBeingEditedId%5D%3Bif(this.selectedControlNode%3D%3D%3Dundefined)%7Breturn%7Dthis.selectionHandler.unselectAll()%3Bvar%20overlappingNodeIds%3Dthis.selectionHandler._getAllNodesOverlappingWith(pointerObj)%3Bvar%20node%3Dundefined%3Bfor(var%20i%3DoverlappingNodeIds.length-1%3Bi%3E%3D0%3Bi--)%7Bif(overlappingNodeIds%5Bi%5D!%3D%3Dthis.selectedControlNode.id)%7Bnode%3Dthis.body.nodes%5BoverlappingNodeIds%5Bi%5D%5D%3Bbreak%7D%7Dif(node!%3D%3Dundefined%26%26this.selectedControlNode!%3D%3Dundefined)%7Bif(node.isCluster%3D%3D%3Dtrue)%7Balert(this.options.locales%5Bthis.options.locale%5D%5B%5C%5C%5C%22createEdgeError%5C%5C%5C%22%5D%7C%7Cthis.options.locales%5B%5C%5C%5C%22en%5C%5C%5C%22%5D%5B%5C%5C%5C%22createEdgeError%5C%5C%5C%22%5D)%7Delse%7Bvar%20from%3Dthis.body.nodes%5Bthis.temporaryIds.nodes%5B0%5D%5D%3Bif(this.selectedControlNode.id%3D%3D%3Dfrom.id)%7Bthis._performEditEdge(node.id%2Cedge.to.id)%7Delse%7Bthis._performEditEdge(edge.from.id%2Cnode.id)%7D%7D%7Delse%7Bedge.updateEdgeType()%3Bthis.body.emitter.emit(%5C%5C%5C%22restorePhysics%5C%5C%5C%22)%7Dthis.body.emitter.emit(%5C%5C%5C%22_redraw%5C%5C%5C%22)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_handleConnect%5C%5C%5C%22%2Cvalue%3Afunction%20_handleConnect(event)%7Bif((new%20Date).valueOf()-this.touchTime%3E100)%7Bthis.lastTouch%3Dthis.body.functions.getPointer(event.center)%3Bthis.lastTouch.translation%3Dutil.extend(%7B%7D%2Cthis.body.view.translation)%3Bvar%20pointer%3Dthis.lastTouch%3Bvar%20node%3Dthis.selectionHandler.getNodeAt(pointer)%3Bif(node!%3D%3Dundefined)%7Bif(node.isCluster%3D%3D%3Dtrue)%7Balert(this.options.locales%5Bthis.options.locale%5D%5B%5C%5C%5C%22createEdgeError%5C%5C%5C%22%5D%7C%7Cthis.options.locales%5B%5C%5C%5C%22en%5C%5C%5C%22%5D%5B%5C%5C%5C%22createEdgeError%5C%5C%5C%22%5D)%7Delse%7Bvar%20targetNode%3Dthis._getNewTargetNode(node.x%2Cnode.y)%3Bthis.body.nodes%5BtargetNode.id%5D%3DtargetNode%3Bthis.body.nodeIndices.push(targetNode.id)%3Bvar%20connectionEdge%3Dthis.body.functions.createEdge(%7Bid%3A%5C%5C%5C%22connectionEdge%5C%5C%5C%22%2Butil.randomUUID()%2Cfrom%3Anode.id%2Cto%3AtargetNode.id%2Cphysics%3Afalse%2Csmooth%3A%7Benabled%3Atrue%2Ctype%3A%5C%5C%5C%22continuous%5C%5C%5C%22%2Croundness%3A.5%7D%7D)%3Bthis.body.edges%5BconnectionEdge.id%5D%3DconnectionEdge%3Bthis.body.edgeIndices.push(connectionEdge.id)%3Bthis.temporaryIds.nodes.push(targetNode.id)%3Bthis.temporaryIds.edges.push(connectionEdge.id)%7D%7Dthis.touchTime%3D(new%20Date).valueOf()%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_dragControlNode%5C%5C%5C%22%2Cvalue%3Afunction%20_dragControlNode(event)%7Bvar%20pointer%3Dthis.body.functions.getPointer(event.center)%3Bif(this.temporaryIds.nodes%5B0%5D!%3D%3Dundefined)%7Bvar%20targetNode%3Dthis.body.nodes%5Bthis.temporaryIds.nodes%5B0%5D%5D%3BtargetNode.x%3Dthis.canvas._XconvertDOMtoCanvas(pointer.x)%3BtargetNode.y%3Dthis.canvas._YconvertDOMtoCanvas(pointer.y)%3Bthis.body.emitter.emit(%5C%5C%5C%22_redraw%5C%5C%5C%22)%7Delse%7Bvar%20diffX%3Dpointer.x-this.lastTouch.x%3Bvar%20diffY%3Dpointer.y-this.lastTouch.y%3Bthis.body.view.translation%3D%7Bx%3Athis.lastTouch.translation.x%2BdiffX%2Cy%3Athis.lastTouch.translation.y%2BdiffY%7D%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_finishConnect%5C%5C%5C%22%2Cvalue%3Afunction%20_finishConnect(event)%7Bvar%20pointer%3Dthis.body.functions.getPointer(event.center)%3Bvar%20pointerObj%3Dthis.selectionHandler._pointerToPositionObject(pointer)%3Bvar%20connectFromId%3Dundefined%3Bif(this.temporaryIds.edges%5B0%5D!%3D%3Dundefined)%7BconnectFromId%3Dthis.body.edges%5Bthis.temporaryIds.edges%5B0%5D%5D.fromId%7Dvar%20overlappingNodeIds%3Dthis.selectionHandler._getAllNodesOverlappingWith(pointerObj)%3Bvar%20node%3Dundefined%3Bfor(var%20i%3DoverlappingNodeIds.length-1%3Bi%3E%3D0%3Bi--)%7Bif(this.temporaryIds.nodes.indexOf(overlappingNodeIds%5Bi%5D)%3D%3D%3D-1)%7Bnode%3Dthis.body.nodes%5BoverlappingNodeIds%5Bi%5D%5D%3Bbreak%7D%7Dthis._cleanupTemporaryNodesAndEdges()%3Bif(node!%3D%3Dundefined)%7Bif(node.isCluster%3D%3D%3Dtrue)%7Balert(this.options.locales%5Bthis.options.locale%5D%5B%5C%5C%5C%22createEdgeError%5C%5C%5C%22%5D%7C%7Cthis.options.locales%5B%5C%5C%5C%22en%5C%5C%5C%22%5D%5B%5C%5C%5C%22createEdgeError%5C%5C%5C%22%5D)%7Delse%7Bif(this.body.nodes%5BconnectFromId%5D!%3D%3Dundefined%26%26this.body.nodes%5Bnode.id%5D!%3D%3Dundefined)%7Bthis._performAddEdge(connectFromId%2Cnode.id)%7D%7D%7Dthis.body.emitter.emit(%5C%5C%5C%22_redraw%5C%5C%5C%22)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_dragStartEdge%5C%5C%5C%22%2Cvalue%3Afunction%20_dragStartEdge(event)%7Bvar%20pointer%3Dthis.lastTouch%3Bthis.selectionHandler._generateClickEvent(%5C%5C%5C%22dragStart%5C%5C%5C%22%2Cevent%2Cpointer%2Cundefined%2Ctrue)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_performAddNode%5C%5C%5C%22%2Cvalue%3Afunction%20_performAddNode(clickData)%7Bvar%20_this4%3Dthis%3Bvar%20defaultData%3D%7Bid%3Autil.randomUUID()%2Cx%3AclickData.pointer.canvas.x%2Cy%3AclickData.pointer.canvas.y%2Clabel%3A%5C%5C%5C%22new%5C%5C%5C%22%7D%3Bif(typeof%20this.options.addNode%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22)%7Bif(this.options.addNode.length%3D%3D%3D2)%7Bthis.options.addNode(defaultData%2Cfunction(finalizedData)%7Bif(finalizedData!%3D%3Dnull%26%26finalizedData!%3D%3Dundefined%26%26_this4.inMode%3D%3D%3D%5C%5C%5C%22addNode%5C%5C%5C%22)%7B_this4.body.data.nodes.getDataSet().add(finalizedData)%3B_this4.showManipulatorToolbar()%7D%7D)%7Delse%7Bthis.showManipulatorToolbar()%3Bthrow%20new%20Error(%5C%5C%5C%22The%20function%20for%20add%20does%20not%20support%20two%20arguments%20(data%2Ccallback)%5C%5C%5C%22)%7D%7Delse%7Bthis.body.data.nodes.getDataSet().add(defaultData)%3Bthis.showManipulatorToolbar()%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_performAddEdge%5C%5C%5C%22%2Cvalue%3Afunction%20_performAddEdge(sourceNodeId%2CtargetNodeId)%7Bvar%20_this5%3Dthis%3Bvar%20defaultData%3D%7Bfrom%3AsourceNodeId%2Cto%3AtargetNodeId%7D%3Bif(typeof%20this.options.addEdge%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22)%7Bif(this.options.addEdge.length%3D%3D%3D2)%7Bthis.options.addEdge(defaultData%2Cfunction(finalizedData)%7Bif(finalizedData!%3D%3Dnull%26%26finalizedData!%3D%3Dundefined%26%26_this5.inMode%3D%3D%3D%5C%5C%5C%22addEdge%5C%5C%5C%22)%7B_this5.body.data.edges.getDataSet().add(finalizedData)%3B_this5.selectionHandler.unselectAll()%3B_this5.showManipulatorToolbar()%7D%7D)%7Delse%7Bthrow%20new%20Error(%5C%5C%5C%22The%20function%20for%20connect%20does%20not%20support%20two%20arguments%20(data%2Ccallback)%5C%5C%5C%22)%7D%7Delse%7Bthis.body.data.edges.getDataSet().add(defaultData)%3Bthis.selectionHandler.unselectAll()%3Bthis.showManipulatorToolbar()%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_performEditEdge%5C%5C%5C%22%2Cvalue%3Afunction%20_performEditEdge(sourceNodeId%2CtargetNodeId)%7Bvar%20_this6%3Dthis%3Bvar%20defaultData%3D%7Bid%3Athis.edgeBeingEditedId%2Cfrom%3AsourceNodeId%2Cto%3AtargetNodeId%2Clabel%3Athis.body.data.edges._data%5Bthis.edgeBeingEditedId%5D.label%7D%3Bvar%20eeFunct%3Dthis.options.editEdge%3Bif((typeof%20eeFunct%3D%3D%3D%5C%5C%5C%22undefined%5C%5C%5C%22%3F%5C%5C%5C%22undefined%5C%5C%5C%22%3A(0%2C_typeof3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(eeFunct))%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22)%7BeeFunct%3DeeFunct.editWithoutDrag%7Dif(typeof%20eeFunct%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22)%7Bif(eeFunct.length%3D%3D%3D2)%7BeeFunct(defaultData%2Cfunction(finalizedData)%7Bif(finalizedData%3D%3D%3Dnull%7C%7CfinalizedData%3D%3D%3Dundefined%7C%7C_this6.inMode!%3D%3D%5C%5C%5C%22editEdge%5C%5C%5C%22)%7B_this6.body.edges%5BdefaultData.id%5D.updateEdgeType()%3B_this6.body.emitter.emit(%5C%5C%5C%22_redraw%5C%5C%5C%22)%3B_this6.showManipulatorToolbar()%7Delse%7B_this6.body.data.edges.getDataSet().update(finalizedData)%3B_this6.selectionHandler.unselectAll()%3B_this6.showManipulatorToolbar()%7D%7D)%7Delse%7Bthrow%20new%20Error(%5C%5C%5C%22The%20function%20for%20edit%20does%20not%20support%20two%20arguments%20(data%2C%20callback)%5C%5C%5C%22)%7D%7Delse%7Bthis.body.data.edges.getDataSet().update(defaultData)%3Bthis.selectionHandler.unselectAll()%3Bthis.showManipulatorToolbar()%7D%7D%7D%5D)%3Breturn%20ManipulationSystem%7D()%3Bexports%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3DManipulationSystem%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_slicedToArray2%3D__webpack_require__(30)%3Bvar%20_slicedToArray3%3D_interopRequireDefault(_slicedToArray2)%3Bvar%20_classCallCheck2%3D__webpack_require__(0)%3Bvar%20_classCallCheck3%3D_interopRequireDefault(_classCallCheck2)%3Bvar%20_createClass2%3D__webpack_require__(1)%3Bvar%20_createClass3%3D_interopRequireDefault(_createClass2)%3Bvar%20_FloydWarshall%3D__webpack_require__(239)%3Bvar%20_FloydWarshall2%3D_interopRequireDefault(_FloydWarshall)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20KamadaKawai%3Dfunction()%7Bfunction%20KamadaKawai(body%2CedgeLength%2CedgeStrength)%7B(0%2C_classCallCheck3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2CKamadaKawai)%3Bthis.body%3Dbody%3Bthis.springLength%3DedgeLength%3Bthis.springConstant%3DedgeStrength%3Bthis.distanceSolver%3Dnew%20_FloydWarshall2%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%7D(0%2C_createClass3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(KamadaKawai%2C%5B%7Bkey%3A%5C%5C%5C%22setOptions%5C%5C%5C%22%2Cvalue%3Afunction%20setOptions(options)%7Bif(options)%7Bif(options.springLength)%7Bthis.springLength%3Doptions.springLength%7Dif(options.springConstant)%7Bthis.springConstant%3Doptions.springConstant%7D%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22solve%5C%5C%5C%22%2Cvalue%3Afunction%20solve(nodesArray%2CedgesArray)%7Bvar%20ignoreClusters%3Darguments.length%3E2%26%26arguments%5B2%5D!%3D%3Dundefined%3Farguments%5B2%5D%3Afalse%3Bvar%20D_matrix%3Dthis.distanceSolver.getDistances(this.body%2CnodesArray%2CedgesArray)%3Bthis._createL_matrix(D_matrix)%3Bthis._createK_matrix(D_matrix)%3Bthis._createE_matrix()%3Bvar%20threshold%3D.01%3Bvar%20innerThreshold%3D1%3Bvar%20iterations%3D0%3Bvar%20maxIterations%3DMath.max(1e3%2CMath.min(10*this.body.nodeIndices.length%2C6e3))%3Bvar%20maxInnerIterations%3D5%3Bvar%20maxEnergy%3D1e9%3Bvar%20highE_nodeId%3D0%2CdE_dx%3D0%2CdE_dy%3D0%2Cdelta_m%3D0%2CsubIterations%3D0%3Bwhile(maxEnergy%3Ethreshold%26%26iterations%3CmaxIterations)%7Biterations%2B%3D1%3Bvar%20_getHighestEnergyNode2%3Dthis._getHighestEnergyNode(ignoreClusters)%3Bvar%20_getHighestEnergyNode3%3D(0%2C_slicedToArray3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(_getHighestEnergyNode2%2C4)%3BhighE_nodeId%3D_getHighestEnergyNode3%5B0%5D%3BmaxEnergy%3D_getHighestEnergyNode3%5B1%5D%3BdE_dx%3D_getHighestEnergyNode3%5B2%5D%3BdE_dy%3D_getHighestEnergyNode3%5B3%5D%3Bdelta_m%3DmaxEnergy%3BsubIterations%3D0%3Bwhile(delta_m%3EinnerThreshold%26%26subIterations%3CmaxInnerIterations)%7BsubIterations%2B%3D1%3Bthis._moveNode(highE_nodeId%2CdE_dx%2CdE_dy)%3Bvar%20_getEnergy2%3Dthis._getEnergy(highE_nodeId)%3Bvar%20_getEnergy3%3D(0%2C_slicedToArray3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(_getEnergy2%2C3)%3Bdelta_m%3D_getEnergy3%5B0%5D%3BdE_dx%3D_getEnergy3%5B1%5D%3BdE_dy%3D_getEnergy3%5B2%5D%7D%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_getHighestEnergyNode%5C%5C%5C%22%2Cvalue%3Afunction%20_getHighestEnergyNode(ignoreClusters)%7Bvar%20nodesArray%3Dthis.body.nodeIndices%3Bvar%20nodes%3Dthis.body.nodes%3Bvar%20maxEnergy%3D0%3Bvar%20maxEnergyNodeId%3DnodesArray%5B0%5D%3Bvar%20dE_dx_max%3D0%2CdE_dy_max%3D0%3Bfor(var%20nodeIdx%3D0%3BnodeIdx%3CnodesArray.length%3BnodeIdx%2B%2B)%7Bvar%20m%3DnodesArray%5BnodeIdx%5D%3Bif(nodes%5Bm%5D.predefinedPosition%3D%3D%3Dfalse%7C%7Cnodes%5Bm%5D.isCluster%3D%3D%3Dtrue%26%26ignoreClusters%3D%3D%3Dtrue%7C%7Cnodes%5Bm%5D.options.fixed.x%3D%3D%3Dtrue%7C%7Cnodes%5Bm%5D.options.fixed.y%3D%3D%3Dtrue)%7Bvar%20_getEnergy4%3Dthis._getEnergy(m)%2C_getEnergy5%3D(0%2C_slicedToArray3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(_getEnergy4%2C3)%2Cdelta_m%3D_getEnergy5%5B0%5D%2CdE_dx%3D_getEnergy5%5B1%5D%2CdE_dy%3D_getEnergy5%5B2%5D%3Bif(maxEnergy%3Cdelta_m)%7BmaxEnergy%3Ddelta_m%3BmaxEnergyNodeId%3Dm%3BdE_dx_max%3DdE_dx%3BdE_dy_max%3DdE_dy%7D%7D%7Dreturn%5BmaxEnergyNodeId%2CmaxEnergy%2CdE_dx_max%2CdE_dy_max%5D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_getEnergy%5C%5C%5C%22%2Cvalue%3Afunction%20_getEnergy(m)%7Bvar%20_E_sums%24m%3D(0%2C_slicedToArray3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this.E_sums%5Bm%5D%2C2)%2CdE_dx%3D_E_sums%24m%5B0%5D%2CdE_dy%3D_E_sums%24m%5B1%5D%3Bvar%20delta_m%3DMath.sqrt(Math.pow(dE_dx%2C2)%2BMath.pow(dE_dy%2C2))%3Breturn%5Bdelta_m%2CdE_dx%2CdE_dy%5D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_moveNode%5C%5C%5C%22%2Cvalue%3Afunction%20_moveNode(m%2CdE_dx%2CdE_dy)%7Bvar%20nodesArray%3Dthis.body.nodeIndices%3Bvar%20nodes%3Dthis.body.nodes%3Bvar%20d2E_dx2%3D0%3Bvar%20d2E_dxdy%3D0%3Bvar%20d2E_dy2%3D0%3Bvar%20x_m%3Dnodes%5Bm%5D.x%3Bvar%20y_m%3Dnodes%5Bm%5D.y%3Bvar%20km%3Dthis.K_matrix%5Bm%5D%3Bvar%20lm%3Dthis.L_matrix%5Bm%5D%3Bfor(var%20iIdx%3D0%3BiIdx%3CnodesArray.length%3BiIdx%2B%2B)%7Bvar%20i%3DnodesArray%5BiIdx%5D%3Bif(i!%3D%3Dm)%7Bvar%20x_i%3Dnodes%5Bi%5D.x%3Bvar%20y_i%3Dnodes%5Bi%5D.y%3Bvar%20kmat%3Dkm%5Bi%5D%3Bvar%20lmat%3Dlm%5Bi%5D%3Bvar%20denominator%3D1%2FMath.pow(Math.pow(x_m-x_i%2C2)%2BMath.pow(y_m-y_i%2C2)%2C1.5)%3Bd2E_dx2%2B%3Dkmat*(1-lmat*Math.pow(y_m-y_i%2C2)*denominator)%3Bd2E_dxdy%2B%3Dkmat*(lmat*(x_m-x_i)*(y_m-y_i)*denominator)%3Bd2E_dy2%2B%3Dkmat*(1-lmat*Math.pow(x_m-x_i%2C2)*denominator)%7D%7Dvar%20A%3Dd2E_dx2%2CB%3Dd2E_dxdy%2CC%3DdE_dx%2CD%3Dd2E_dy2%2CE%3DdE_dy%3Bvar%20dy%3D(C%2FA%2BE%2FB)%2F(B%2FA-D%2FB)%3Bvar%20dx%3D-(B*dy%2BC)%2FA%3Bnodes%5Bm%5D.x%2B%3Ddx%3Bnodes%5Bm%5D.y%2B%3Ddy%3Bthis._updateE_matrix(m)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_createL_matrix%5C%5C%5C%22%2Cvalue%3Afunction%20_createL_matrix(D_matrix)%7Bvar%20nodesArray%3Dthis.body.nodeIndices%3Bvar%20edgeLength%3Dthis.springLength%3Bthis.L_matrix%3D%5B%5D%3Bfor(var%20i%3D0%3Bi%3CnodesArray.length%3Bi%2B%2B)%7Bthis.L_matrix%5BnodesArray%5Bi%5D%5D%3D%7B%7D%3Bfor(var%20j%3D0%3Bj%3CnodesArray.length%3Bj%2B%2B)%7Bthis.L_matrix%5BnodesArray%5Bi%5D%5D%5BnodesArray%5Bj%5D%5D%3DedgeLength*D_matrix%5BnodesArray%5Bi%5D%5D%5BnodesArray%5Bj%5D%5D%7D%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_createK_matrix%5C%5C%5C%22%2Cvalue%3Afunction%20_createK_matrix(D_matrix)%7Bvar%20nodesArray%3Dthis.body.nodeIndices%3Bvar%20edgeStrength%3Dthis.springConstant%3Bthis.K_matrix%3D%5B%5D%3Bfor(var%20i%3D0%3Bi%3CnodesArray.length%3Bi%2B%2B)%7Bthis.K_matrix%5BnodesArray%5Bi%5D%5D%3D%7B%7D%3Bfor(var%20j%3D0%3Bj%3CnodesArray.length%3Bj%2B%2B)%7Bthis.K_matrix%5BnodesArray%5Bi%5D%5D%5BnodesArray%5Bj%5D%5D%3DedgeStrength*Math.pow(D_matrix%5BnodesArray%5Bi%5D%5D%5BnodesArray%5Bj%5D%5D%2C-2)%7D%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_createE_matrix%5C%5C%5C%22%2Cvalue%3Afunction%20_createE_matrix()%7Bvar%20nodesArray%3Dthis.body.nodeIndices%3Bvar%20nodes%3Dthis.body.nodes%3Bthis.E_matrix%3D%7B%7D%3Bthis.E_sums%3D%7B%7D%3Bfor(var%20mIdx%3D0%3BmIdx%3CnodesArray.length%3BmIdx%2B%2B)%7Bthis.E_matrix%5BnodesArray%5BmIdx%5D%5D%3D%5B%5D%7Dfor(var%20_mIdx%3D0%3B_mIdx%3CnodesArray.length%3B_mIdx%2B%2B)%7Bvar%20m%3DnodesArray%5B_mIdx%5D%3Bvar%20x_m%3Dnodes%5Bm%5D.x%3Bvar%20y_m%3Dnodes%5Bm%5D.y%3Bvar%20dE_dx%3D0%3Bvar%20dE_dy%3D0%3Bfor(var%20iIdx%3D_mIdx%3BiIdx%3CnodesArray.length%3BiIdx%2B%2B)%7Bvar%20i%3DnodesArray%5BiIdx%5D%3Bif(i!%3D%3Dm)%7Bvar%20x_i%3Dnodes%5Bi%5D.x%3Bvar%20y_i%3Dnodes%5Bi%5D.y%3Bvar%20denominator%3D1%2FMath.sqrt(Math.pow(x_m-x_i%2C2)%2BMath.pow(y_m-y_i%2C2))%3Bthis.E_matrix%5Bm%5D%5BiIdx%5D%3D%5Bthis.K_matrix%5Bm%5D%5Bi%5D*(x_m-x_i-this.L_matrix%5Bm%5D%5Bi%5D*(x_m-x_i)*denominator)%2Cthis.K_matrix%5Bm%5D%5Bi%5D*(y_m-y_i-this.L_matrix%5Bm%5D%5Bi%5D*(y_m-y_i)*denominator)%5D%3Bthis.E_matrix%5Bi%5D%5B_mIdx%5D%3Dthis.E_matrix%5Bm%5D%5BiIdx%5D%3BdE_dx%2B%3Dthis.E_matrix%5Bm%5D%5BiIdx%5D%5B0%5D%3BdE_dy%2B%3Dthis.E_matrix%5Bm%5D%5BiIdx%5D%5B1%5D%7D%7Dthis.E_sums%5Bm%5D%3D%5BdE_dx%2CdE_dy%5D%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_updateE_matrix%5C%5C%5C%22%2Cvalue%3Afunction%20_updateE_matrix(m)%7Bvar%20nodesArray%3Dthis.body.nodeIndices%3Bvar%20nodes%3Dthis.body.nodes%3Bvar%20colm%3Dthis.E_matrix%5Bm%5D%3Bvar%20kcolm%3Dthis.K_matrix%5Bm%5D%3Bvar%20lcolm%3Dthis.L_matrix%5Bm%5D%3Bvar%20x_m%3Dnodes%5Bm%5D.x%3Bvar%20y_m%3Dnodes%5Bm%5D.y%3Bvar%20dE_dx%3D0%3Bvar%20dE_dy%3D0%3Bfor(var%20iIdx%3D0%3BiIdx%3CnodesArray.length%3BiIdx%2B%2B)%7Bvar%20i%3DnodesArray%5BiIdx%5D%3Bif(i!%3D%3Dm)%7Bvar%20cell%3Dcolm%5BiIdx%5D%3Bvar%20oldDx%3Dcell%5B0%5D%3Bvar%20oldDy%3Dcell%5B1%5D%3Bvar%20x_i%3Dnodes%5Bi%5D.x%3Bvar%20y_i%3Dnodes%5Bi%5D.y%3Bvar%20denominator%3D1%2FMath.sqrt(Math.pow(x_m-x_i%2C2)%2BMath.pow(y_m-y_i%2C2))%3Bvar%20dx%3Dkcolm%5Bi%5D*(x_m-x_i-lcolm%5Bi%5D*(x_m-x_i)*denominator)%3Bvar%20dy%3Dkcolm%5Bi%5D*(y_m-y_i-lcolm%5Bi%5D*(y_m-y_i)*denominator)%3Bcolm%5BiIdx%5D%3D%5Bdx%2Cdy%5D%3BdE_dx%2B%3Ddx%3BdE_dy%2B%3Ddy%3Bvar%20sum%3Dthis.E_sums%5Bi%5D%3Bsum%5B0%5D%2B%3Ddx-oldDx%3Bsum%5B1%5D%2B%3Ddy-oldDy%7D%7Dthis.E_sums%5Bm%5D%3D%5BdE_dx%2CdE_dy%5D%7D%7D%5D)%3Breturn%20KamadaKawai%7D()%3Bexports%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3DKamadaKawai%7D%2Cfunction(module%2Cexports%2C__webpack_require__)%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_classCallCheck2%3D__webpack_require__(0)%3Bvar%20_classCallCheck3%3D_interopRequireDefault(_classCallCheck2)%3Bvar%20_createClass2%3D__webpack_require__(1)%3Bvar%20_createClass3%3D_interopRequireDefault(_createClass2)%3Bfunction%20_interopRequireDefault(obj)%7Breturn%20obj%26%26obj.__esModule%3Fobj%3A%7Bdefault%3Aobj%7D%7Dvar%20FloydWarshall%3Dfunction()%7Bfunction%20FloydWarshall()%7B(0%2C_classCallCheck3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(this%2CFloydWarshall)%7D(0%2C_createClass3%5B%5C%5C%5C%22default%5C%5C%5C%22%5D)(FloydWarshall%2C%5B%7Bkey%3A%5C%5C%5C%22getDistances%5C%5C%5C%22%2Cvalue%3Afunction%20getDistances(body%2CnodesArray%2CedgesArray)%7Bvar%20D_matrix%3D%7B%7D%3Bvar%20edges%3Dbody.edges%3Bfor(var%20i%3D0%3Bi%3CnodesArray.length%3Bi%2B%2B)%7Bvar%20node%3DnodesArray%5Bi%5D%3Bvar%20cell%3D%7B%7D%3BD_matrix%5Bnode%5D%3Dcell%3Bfor(var%20j%3D0%3Bj%3CnodesArray.length%3Bj%2B%2B)%7Bcell%5BnodesArray%5Bj%5D%5D%3Di%3D%3Dj%3F0%3A1e9%7D%7Dfor(var%20_i%3D0%3B_i%3CedgesArray.length%3B_i%2B%2B)%7Bvar%20edge%3Dedges%5BedgesArray%5B_i%5D%5D%3Bif(edge.connected%3D%3D%3Dtrue%26%26D_matrix%5Bedge.fromId%5D!%3D%3Dundefined%26%26D_matrix%5Bedge.toId%5D!%3D%3Dundefined)%7BD_matrix%5Bedge.fromId%5D%5Bedge.toId%5D%3D1%3BD_matrix%5Bedge.toId%5D%5Bedge.fromId%5D%3D1%7D%7Dvar%20nodeCount%3DnodesArray.length%3Bfor(var%20k%3D0%3Bk%3CnodeCount%3Bk%2B%2B)%7Bvar%20knode%3DnodesArray%5Bk%5D%3Bvar%20kcolm%3DD_matrix%5Bknode%5D%3Bfor(var%20_i2%3D0%3B_i2%3CnodeCount-1%3B_i2%2B%2B)%7Bvar%20inode%3DnodesArray%5B_i2%5D%3Bvar%20icolm%3DD_matrix%5Binode%5D%3Bfor(var%20_j%3D_i2%2B1%3B_j%3CnodeCount%3B_j%2B%2B)%7Bvar%20jnode%3DnodesArray%5B_j%5D%3Bvar%20jcolm%3DD_matrix%5Bjnode%5D%3Bvar%20val%3DMath.min(icolm%5Bjnode%5D%2Cicolm%5Bknode%5D%2Bkcolm%5Bjnode%5D)%3Bicolm%5Bjnode%5D%3Dval%3Bjcolm%5Binode%5D%3Dval%7D%7D%7Dreturn%20D_matrix%7D%7D%5D)%3Breturn%20FloydWarshall%7D()%3Bexports%5B%5C%5C%5C%22default%5C%5C%5C%22%5D%3DFloydWarshall%7D%5D)%7D)%3B%5C%5Cn%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22type%5C%22%3A%20%5C%22application%2Fjavascript%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22module-type%5C%22%3A%20%5C%22library%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%7D%22%2C%22version%22%3A%22%22%2C%22type%22%3A%22application%2Fjson%22%2C%22title%22%3A%22%24%3A%2Fplugins%2Ffelixhayashi%2Fvis%22%2C%22source%22%3A%22https%3A%2F%2Fgithub.com%2Ffelixhayashi%2FTW5-Vis.js%22%2C%22plugin-type%22%3A%22plugin%22%2C%22list%22%3A%22readme%22%2C%22description%22%3A%22Visjs%20%E2%80%93%20TiddlyWiki5%20plugin%20for%20the%20vis.js%20library%22%2C%22dependents%22%3A%22%22%2C%22core-version%22%3A%22%3E%3D5.0.0%22%2C%22author%22%3A%22Felix%20K%C3%BCppers%22%7D
[InternetShortcut]
URL=data:text/vnd.tiddler,%7B%22text%22%3A%22%7B%5Cn%20%20%20%20%5C%22tiddlers%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Fhotzone%2Fconfig.js%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Fhotzone%2Fconfig.js%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%2F*%5C%5C%5C%5C%5C%5Cn%5C%5Cntitle%3A%20%24%3A%2Fplugins%2Ffelixhayashi%2Fhotzone%2Fconfig.js%5C%5Cntype%3A%20application%2Fjavascript%5C%5Cnmodule-type%3A%20library%5C%5Cn%5C%5Cn%40preserve%5C%5Cn%5C%5Cn%5C%5C%5C%5C*%2F%5C%5Cn(function()%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bexports.config%3D%7BclassNames%3A%7BstoryRiver%3A%5C%5C%5C%22tc-story-river%5C%5C%5C%22%2CtiddlerFrame%3A%5C%5C%5C%22tc-tiddler-frame%5C%5C%5C%22%2CtiddlerTitle%3A%5C%5C%5C%22tc-title%5C%5C%5C%22%7D%2Creferences%3A%7BuserConfig%3A%5C%5C%5C%22%24%3A%2Fconfig%2Fhotzone%2FfocusOffset%5C%5C%5C%22%2CfocussedTiddlerStore%3A%5C%5C%5C%22%24%3A%2Ftemp%2FfocussedTiddler%5C%5C%5C%22%7D%2CcheckbackTime%3A%24tw.utils.getAnimationDuration()%7D%7D)()%3B%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22type%5C%22%3A%20%5C%22application%2Fjavascript%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22module-type%5C%22%3A%20%5C%22library%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Fhotzone%2Fhotzone.js%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Fhotzone%2Fhotzone.js%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%2F*%5C%5C%5C%5C%5C%5Cn%5C%5Cntitle%3A%20%24%3A%2Fplugins%2Ffelixhayashi%2Fhotzone%2Fhotzone.js%5C%5Cntype%3A%20application%2Fjavascript%5C%5Cnmodule-type%3A%20startup%5C%5Cn%5C%5Cn%40preserve%5C%5Cn%5C%5Cn%5C%5C%5C%5C*%2F%5C%5Cn(function()%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bexports.name%3D%5C%5C%5C%22hotzone%5C%5C%5C%22%3Bexports.platforms%3D%5B%5C%5C%5C%22browser%5C%5C%5C%22%5D%3Bexports.after%3D%5B%5C%5C%5C%22story%5C%5C%5C%22%5D%3Bexports.synchronous%3Dtrue%3Bexports.startup%3Dfunction()%7Bvar%20t%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Fhotzone%2Fconfig.js%5C%5C%5C%22).config%3Bvar%20e%3Dnull%3Bvar%20i%3Ddocument.getElementsByClassName(t.classNames.storyRiver)%5B0%5D%3Bvar%20r%3D%24tw.wiki.getTiddlerData(t.references.userConfig%2C%7B%7D)%3Bvar%20s%3DisNaN(parseInt(r.focusOffset))%3F150%3AparseInt(r.focusOffset)%3Bvar%20a%3Dfunction(e%2Ci%2Cr)%7Bif(!(e%20instanceof%20Element))return%3Bif(!%24tw.utils.hasClass(e%2Ct.classNames.tiddlerFrame))return%3Bvar%20s%3De.getElementsByClassName(t.classNames.tiddlerTitle)%5B0%5D%3Bif(s)%7Bvar%20a%3Ds.innerText%7C%7Cs.textContent%3Breturn%20a.trim()%7D%7D%3Bvar%20n%3Dfunction(e%2Ci)%7B%24tw.wiki.addTiddler(new%20%24tw.Tiddler(%7Btitle%3At.references.focussedTiddlerStore%2Ctext%3Ae%7D%2C%24tw.wiki.getModificationFields()))%3Bif(i)%7Bvar%20r%3Ddocument.getElementsByClassName(%5C%5C%5C%22hzone-focus%5C%5C%5C%22)%5B0%5D%3Bif(r)%7B%24tw.utils.removeClass(r%2C%5C%5C%5C%22hzone-focus%5C%5C%5C%22)%7D%24tw.utils.addClass(i%2C%5C%5C%5C%22hzone-focus%5C%5C%5C%22)%7D%7D%3Bvar%20l%3Dfunction()%7Bvar%20r%3D%24tw.wiki.getTiddler(%5C%5C%5C%22%24%3A%2FStoryList%5C%5C%5C%22)%3Bif(r%26%26r.fields.list.length)%7Bvar%20l%3Dnull%3Bvar%20o%3DNumber.MAX_VALUE%3Bvar%20f%3Di.children%3Bvar%20u%3Dt.classNames.tiddlerFrame%3Bfor(var%20d%3Df.length%3Bd--%3B)%7Bif(%24tw.utils.hasClass(f%5Bd%5D%2Cu))%7Bvar%20c%3Df%5Bd%5D.getBoundingClientRect()%3Bvar%20v%3DMath.min(Math.abs(s-c.top)%2CMath.abs(s-c.bottom))%3Bif(v%3Co)%7Bl%3Df%5Bd%5D%3Bo%3Dv%7D%7D%7Dvar%20w%3Da(l)%3Bif(w!%3D%3De%26%26%24tw.wiki.getTiddler(w))%7Be%3Dw%3Bn(e%2Cl)%3Breturn%7D%7Delse%20if(e)%7Be%3D%5C%5C%5C%22%5C%5C%5C%22%3Bn(e)%7D%7D%3Bvar%20o%3Dfunction(t)%7Bvar%20e%3Bvar%20i%3Dfalse%3Breturn%20function(r%2Cs)%7Bvar%20a%3Dthis%3Bif(i%26%26!s)%7B%7Delse%7Bi%3Ds%3Bif(e!%3Dnull)%7BclearTimeout(e)%7De%3DsetTimeout((function()%7Be%3Dnull%3Bi%3Dfalse%3Bt.apply(a)%7D)%2Cr)%7D%7D%7D%3Bvar%20f%3Do(l)%3Bvar%20u%3Dfunction(t)%7Bif(t%5B%5C%5C%5C%22%24%3A%2FHistoryList%5C%5C%5C%22%5D)%7Bif(!%24tw.wiki.tiddlerExists(%5C%5C%5C%22%24%3A%2FHistoryList%5C%5C%5C%22))return%3Bvar%20e%3D%24tw.wiki.getTiddler(%5C%5C%5C%22%24%3A%2FHistoryList%5C%5C%5C%22).fields%5B%5C%5C%5C%22current-tiddler%5C%5C%5C%22%5D%3Bvar%20i%3D%24tw.wiki.getTiddlerList(%5C%5C%5C%22%24%3A%2FStoryList%5C%5C%5C%22)%3Bvar%20r%3Di.indexOf(e)%3E%3D0%3Bif(!r)return%3Bf(%24tw.utils.getAnimationDuration()%2B10%2Ctrue)%7Delse%20if(t%5B%5C%5C%5C%22%24%3A%2FStoryList%5C%5C%5C%22%5D)%7Bf(%24tw.utils.getAnimationDuration()%2B10%2Ctrue)%7D%7D%3Bvar%20d%3Dfunction(t)%7Bf(300%2Cfalse)%7D%3B%24tw.wiki.addEventListener(%5C%5C%5C%22change%5C%5C%5C%22%2Cu)%3Bwindow.addEventListener(%5C%5C%5C%22scroll%5C%5C%5C%22%2Cd%2Cfalse)%3Bd()%7D%7D)()%3B%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22type%5C%22%3A%20%5C%22application%2Fjavascript%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22module-type%5C%22%3A%20%5C%22startup%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Fhotzone%2FConfiguration%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Fhotzone%2FConfiguration%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22Please%20see%20the%20%5B%5BGitHub%20page%7Chttps%3A%2F%2Fgithub.com%2Ffelixhayashi%2FTW5-HotZone%5D%5D%20for%20more%20information%20on%20the%20options.%5C%5Cn%5C%5CnSave%20and%20reload%20the%20wiki%20to%20activate%20changes.%5C%5Cn%5C%5Cn%3Ctable%3E%5C%5Cn%20%20%3Ctr%3E%5C%5Cn%20%20%20%20%3Cth%20align%3D%5C%5C%5C%22left%5C%5C%5C%22%3EFocus%20offset%3A%3C%2Fth%3E%5C%5Cn%20%20%20%20%3Ctd%3E%3C%24edit-text%20tiddler%3D%5C%5C%5C%22%24%3A%2Fconfig%2Fhotzone%2FfocusOffset%5C%5C%5C%22%20tag%3D%5C%5C%5C%22input%5C%5C%5C%22%20default%3D%5C%5C%5C%2271px%5C%5C%5C%22%20%2F%3E%3C%2Ftd%3E%5C%5Cn%20%20%3C%2Ftr%3E%5C%5Cn%3C%2Ftable%3E%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Ftemp%2FfocussedTiddler%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Ftemp%2FfocussedTiddler%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Fhotzone%2FLicense%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Fhotzone%2FLicense%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22This%20code%20is%20released%20under%20the%20BSD%20license.%20For%20the%20exact%20terms%20visit%3A%5C%5Cn%5C%5Cnhttps%3A%2F%2Fgithub.com%2Ffelixhayashi%2FTW5-HotZone%2Fblob%2Fmaster%2FLICENSE%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Fhotzone%2FReadme%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Fhotzone%2FReadme%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22Please%20visit%20the%20%5B%5BGitHub%20page%7Chttps%3A%2F%2Fgithub.com%2Ffelixhayashi%2FTW5-HotZone%5D%5D%20for%20more%20information.%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%7D%22%2C%22version%22%3A%220.0.3%22%2C%22type%22%3A%22application%2Fjson%22%2C%22title%22%3A%22%24%3A%2Fplugins%2Ffelixhayashi%2Fhotzone%22%2C%22source%22%3A%22https%3A%2F%2Fgithub.com%2Ffelixhayashi%2FTW5-HotZone%22%2C%22released%22%3A%22%22%2C%22plugin-type%22%3A%22plugin%22%2C%22list%22%3A%22Configuration%20License%20Readme%22%2C%22description%22%3A%22HotZone%20%E2%80%93%20Be%20notified%20when%20tiddlers%20are%20scrolled%20into%20view%22%2C%22dependents%22%3A%22%22%2C%22core-version%22%3A%22%3E%3D5.1.5%22%2C%22author%22%3A%22Felix%20K%C3%BCppers%22%7D
[InternetShortcut]
URL=data:text/vnd.tiddler,%7B%22text%22%3A%22%7B%5Cn%20%20%20%20%5C%22tiddlers%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftopstoryview%2Fconfig.js%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftopstoryview%2Fconfig.js%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%2F*%5C%5C%5C%5C%5C%5Cn%5C%5Cntitle%3A%20%24%3A%2Fplugins%2Ffelixhayashi%2Ftopstoryview%2Fconfig.js%5C%5Cntype%3A%20application%2Fjavascript%5C%5Cnmodule-type%3A%20library%5C%5Cn%5C%5Cn%40preserve%5C%5Cn%5C%5Cn%5C%5C%5C%5C*%2F%5C%5Cn(function()%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bexports.config%3D%7BclassNames%3A%7BstoryRiver%3A%5C%5C%5C%22tc-story-river%5C%5C%5C%22%2CbackDrop%3A%5C%5C%5C%22story-backdrop%5C%5C%5C%22%2CtiddlerFrame%3A%5C%5C%5C%22tc-tiddler-frame%5C%5C%5C%22%2CtiddlerTitle%3A%5C%5C%5C%22tc-title%5C%5C%5C%22%7D%2Creferences%3A%7BuserConfig%3A%5C%5C%5C%22%24%3A%2Fconfig%2FtopStoryView%5C%5C%5C%22%2CfocussedTiddlerStore%3A%5C%5C%5C%22%24%3A%2Ftemp%2FfocussedTiddler%5C%5C%5C%22%2CrefreshTrigger%3A%5C%5C%5C%22%24%3A%2Ftemp%2FfocussedTiddler%2Frefresh%5C%5C%5C%22%7D%2CcheckbackTime%3A%24tw.utils.getAnimationDuration()%7D%7D)()%3B%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22type%5C%22%3A%20%5C%22application%2Fjavascript%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22module-type%5C%22%3A%20%5C%22library%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftopstoryview%2Flayout%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22html%20.tc-story-river%3Aafter%20%7B%5C%5Cn%20%20content%3A%20%5C%5C%5C%22%5C%5C%5C%22%3B%5C%5Cn%20%20display%3A%20block%3B%20%7D%5C%5Cn%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftopstoryview%2Flayout%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22type%5C%22%3A%20%5C%22text%2Fvnd.tiddlywiki%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22tags%5C%22%3A%20%5B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5C%22%24%3A%2Ftags%2FStylesheet%5C%22%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5D%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftopstoryview%2FConfiguration%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftopstoryview%2FConfiguration%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22Please%20see%20the%20%5B%5BGitHub%20page%7Chttps%3A%2F%2Fgithub.com%2Ffelixhayashi%2FTW5-TopStoryView%5D%5D%20for%20more%20information%20on%20the%20options.%5C%5Cn%5C%5CnSave%20and%20reload%20the%20wiki%20to%20activate%20changes.%5C%5Cn%5C%5Cn%3Ctable%3E%5C%5Cn%20%20%3Ctr%3E%5C%5Cn%20%20%20%20%3Cth%20align%3D%5C%5C%5C%22left%5C%5C%5C%22%3EScroll%20offset%3A%3C%2Fth%3E%5C%5Cn%20%20%20%20%3Ctd%3E%3C%24edit-text%20tiddler%3D%5C%5C%5C%22%24%3A%2Fconfig%2FtopStoryView%5C%5C%5C%22%20field%3D%5C%5C%5C%22scroll-offset%5C%5C%5C%22%20tag%3D%5C%5C%5C%22input%5C%5C%5C%22%20default%3D%5C%5C%5C%22150px%5C%5C%5C%22%20%2F%3E%3C%2Ftd%3E%5C%5Cn%20%20%3C%2Ftr%3E%5C%5Cn%3C%2Ftable%3E%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftopstoryview%2FLicense%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftopstoryview%2FLicense%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22This%20code%20is%20released%20under%20the%20BSD%20license.%20For%20the%20exact%20terms%20visit%3A%5C%5Cn%5C%5Cnhttps%3A%2F%2Fgithub.com%2Ffelixhayashi%2FTW5-TopStoryView%2Fblob%2Fmaster%2FLICENSE%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftopstoryview%2FReadme%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftopstoryview%2FReadme%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22Please%20visit%20the%20%5B%5BGitHub%20page%7Chttps%3A%2F%2Fgithub.com%2Ffelixhayashi%2FTW5-TopStoryView%5D%5D%20for%20more%20information.%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftopstoryview%2Ftop.js%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftopstoryview%2Ftop.js%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%2F*%5C%5C%5C%5C%5C%5Cntitle%3A%20%24%3A%2Fplugins%2Ffelixhayashi%2Ftopstoryview%2Ftop.js%5C%5Cntype%3A%20application%2Fjavascript%5C%5Cnmodule-type%3A%20storyview%5C%5Cn%5C%5CnViews%20the%20story%20as%20a%20linear%20sequence%5C%5Cn%5C%5Cn%40preserve%5C%5Cn%5C%5Cn%5C%5C%5C%5C*%2F%5C%5Cn(function()%7B%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bvar%20t%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftopstoryview%2Fconfig.js%5C%5C%5C%22).config%3Bvar%20e%3D%5C%5C%5C%22cubic-bezier(0.645%2C%200.045%2C%200.355%2C%201)%5C%5C%5C%22%3Bvar%20i%3Dfunction(e)%7Bthis.listWidget%3De%3Bthis.pageScroller%3Dnew%20%24tw.utils.PageScroller%3Bthis.pageScroller.scrollIntoView%3Dthis.scrollIntoView%3Bthis.pageScroller.storyRiverDomNode%3Ddocument.getElementsByClassName(t.classNames.storyRiver)%5B0%5D%3Bvar%20i%3D%24tw.wiki.getTiddler(t.references.userConfig)%3Bvar%20o%3Di%3Fi.fields%3A%7B%7D%3B%24tw.hooks.addHook(%5C%5C%5C%22th-opening-default-tiddlers-list%5C%5C%5C%22%2Cthis.hookOpenDefaultTiddlers)%3Bvar%20r%3DparseInt(o%5B%5C%5C%5C%22scroll-offset%5C%5C%5C%22%5D)%3Bthis.pageScroller.scrollOffset%3DisNaN(r)%3F71%3Ar%3Bthis.recalculateBottomSpace()%7D%3Bi.prototype.refreshStart%3Dfunction(t%2Ce)%7B%7D%3Bi.prototype.refreshEnd%3Dfunction(t%2Ce)%7B%7D%3Bi.prototype.hookOpenDefaultTiddlers%3Dfunction(t)%7Breturn%20t%7D%3Bi.prototype.navigateTo%3Dfunction(t)%7Bvar%20e%3Dthis.listWidget.findListItem(0%2Ct.title)%3Bif(e%3D%3D%3Dundefined)return%3Bvar%20i%3Dthis.listWidget.children%5Be%5D%3Bvar%20o%3Di.findFirstDomNode()%3Bif(!(o%20instanceof%20Element))return%3Bthis.pageScroller.scrollIntoView(o)%7D%3Bi.prototype.insert%3Dfunction(t)%7Bif(!t)return%3Bvar%20e%3Dt.findFirstDomNode()%3Bif(!(e%20instanceof%20Element))return%3Bthis.startInsertAnimation(e%2Cfunction()%7Bthis.recalculateBottomSpace()%7D.bind(this))%7D%3Bi.prototype.remove%3Dfunction(t)%7Bif(!t)return%3Bvar%20e%3Dt.findFirstDomNode()%3Bif(!(e%20instanceof%20Element))%7Bt.removeChildDomNodes()%3Breturn%7Dvar%20i%3Dthis.getLastFrame()%3D%3D%3De%3Bthis.startRemoveAnimation(t%2Ce%2Cfunction()%7Bt.removeChildDomNodes()%3Bthis.recalculateBottomSpace()%3Bif(i)%7Bthis.pageScroller.scrollIntoView(this.getLastFrame())%7D%7D.bind(this))%7D%3Bi.prototype.getLastFrame%3Dfunction()%7Bvar%20t%3Dthis.listWidget.children%5Bthis.listWidget.children.length-1%5D%3Breturn%20t%3Ft.findFirstDomNode()%3Anull%7D%3Bi.prototype.recalculateBottomSpace%3Dfunction()%7Bvar%20t%3Dthis.pageScroller.storyRiverDomNode%3Bif(this.getLastFrame())%7Bvar%20e%3Dthis.getLastFrame().getBoundingClientRect()%3Bvar%20i%3Dwindow.innerHeight%3Bif(e.height%3Ci)%7Bt.style%5B%5C%5C%5C%22paddingBottom%5C%5C%5C%22%5D%3Di-e.height%2B%5C%5C%5C%22px%5C%5C%5C%22%3Breturn%7D%7Dt.style%5B%5C%5C%5C%22paddingBottom%5C%5C%5C%22%5D%3D%5C%5C%5C%22%5C%5C%5C%22%7D%3Bi.prototype.scrollIntoView%3Dfunction(t)%7Bif(this.preventNextScrollAttempt)%7Bthis.preventNextScrollAttempt%3Dfalse%7Dif(!t)return%3Bvar%20e%3D%24tw.utils.getAnimationDuration()%3Bthis.cancelScroll()%3Bthis.startTime%3DDate.now()%3Bvar%20i%3D%24tw.utils.getScrollPosition()%3Bvar%20o%3Dt.getBoundingClientRect()%2Cr%3D%7Bleft%3Ao.left%2Bi.x%2Ctop%3Ao.top%2Bi.y%2Cwidth%3Ao.width%2Cheight%3Ao.height%7D%3Bvar%20n%3Dfunction(t%2Ce%2Ci%2Co)%7Bif(t%3C%3Di)%7Breturn%20t%7Delse%20if(e%3Co%26%26i%3Ct%2Be-o)%7Breturn%20t%2Be-o%7Delse%20if(i%3Ct)%7Breturn%20t%7Delse%7Breturn%20i%7D%7D%2Cs%3Dn(r.left%2Cr.width%2Ci.x%2Cwindow.innerWidth)%2Ca%3Dr.top-this.scrollOffset%3Bif(s!%3D%3Di.x%7C%7Ca!%3D%3Di.y)%7Bvar%20l%3Dthis%2Cc%3Bc%3Dfunction()%7Bvar%20t%3Bif(e%3C%3D0)%7Bt%3D1%7Delse%7Bt%3D(Date.now()-l.startTime)%2Fe%7Dif(t%3E%3D1)%7Bl.cancelScroll()%3Bt%3D1%7Dt%3D%24tw.utils.slowInSlowOut(t)%3Bwindow.scrollTo(i.x%2B(s-i.x)*t%2Ci.y%2B(a-i.y)*t)%3Bif(t%3C1)%7Bl.idRequestFrame%3Dl.requestAnimationFrame.call(window%2Cc)%7D%7D%3Bc()%7D%7D%3Bi.prototype.startInsertAnimation%3Dfunction(t%2Ci)%7Bvar%20o%3D%24tw.utils.getAnimationDuration()%3Bvar%20r%3Dwindow.getComputedStyle(t)%2Cn%3DparseInt(r.marginBottom%2C10)%2Cs%3DparseInt(r.marginTop%2C10)%2Ca%3Dt.offsetHeight%2Bs%3BsetTimeout((function()%7B%24tw.utils.setStyle(t%2C%5B%7Btransition%3A%5C%5C%5C%22none%5C%5C%5C%22%7D%2C%7BmarginBottom%3A%5C%5C%5C%22%5C%5C%5C%22%7D%5D)%3Bi()%7D)%2Co)%3B%24tw.utils.setStyle(t%2C%5B%7Btransition%3A%5C%5C%5C%22none%5C%5C%5C%22%7D%2C%7BmarginBottom%3A-a%2B%5C%5C%5C%22px%5C%5C%5C%22%7D%2C%7Bopacity%3A%5C%5C%5C%220.0%5C%5C%5C%22%7D%5D)%3B%24tw.utils.forceLayout(t)%3B%24tw.utils.setStyle(t%2C%5B%7Btransition%3A%5C%5C%5C%22opacity%20%5C%5C%5C%22%2Bo%2B%5C%5C%5C%22ms%20%5C%5C%5C%22%2Be%2B%5C%5C%5C%22%2C%20%5C%5C%5C%22%2B%5C%5C%5C%22margin-bottom%20%5C%5C%5C%22%2Bo%2B%5C%5C%5C%22ms%20%5C%5C%5C%22%2Be%7D%2C%7BmarginBottom%3An%2B%5C%5C%5C%22px%5C%5C%5C%22%7D%2C%7Bopacity%3A%5C%5C%5C%221.0%5C%5C%5C%22%7D%5D)%7D%3Bi.prototype.startRemoveAnimation%3Dfunction(t%2Ci%2Co)%7Bvar%20r%3D%24tw.utils.getAnimationDuration()%3Bvar%20n%3Di.offsetWidth%2Cs%3Dwindow.getComputedStyle(i)%2Ca%3DparseInt(s.marginBottom%2C10)%2Cl%3DparseInt(s.marginTop%2C10)%2Cc%3Di.offsetHeight%2Bl%3BsetTimeout(o%2Cr)%3B%24tw.utils.setStyle(i%2C%5B%7Btransition%3A%5C%5C%5C%22none%5C%5C%5C%22%7D%2C%7Btransform%3A%5C%5C%5C%22translateX(0px)%5C%5C%5C%22%7D%2C%7BmarginBottom%3Aa%2B%5C%5C%5C%22px%5C%5C%5C%22%7D%2C%7Bopacity%3A%5C%5C%5C%221.0%5C%5C%5C%22%7D%5D)%3B%24tw.utils.forceLayout(i)%3B%24tw.utils.setStyle(i%2C%5B%7Btransition%3A%24tw.utils.roundTripPropertyName(%5C%5C%5C%22transform%5C%5C%5C%22)%2B%5C%5C%5C%22%20%5C%5C%5C%22%2Br%2B%5C%5C%5C%22ms%20%5C%5C%5C%22%2Be%2B%5C%5C%5C%22%2C%20%5C%5C%5C%22%2B%5C%5C%5C%22opacity%20%5C%5C%5C%22%2Br%2B%5C%5C%5C%22ms%20%5C%5C%5C%22%2Be%2B%5C%5C%5C%22%2C%20%5C%5C%5C%22%2B%5C%5C%5C%22margin-bottom%20%5C%5C%5C%22%2Br%2B%5C%5C%5C%22ms%20%5C%5C%5C%22%2Be%7D%2C%7Btransform%3A%5C%5C%5C%22translateX(-%5C%5C%5C%22%2Bn%2B%5C%5C%5C%22px)%5C%5C%5C%22%7D%2C%7BmarginBottom%3A-c%2B%5C%5C%5C%22px%5C%5C%5C%22%7D%2C%7Bopacity%3A%5C%5C%5C%220.0%5C%5C%5C%22%7D%5D)%7D%3Bexports.top%3Di%7D)()%3B%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22type%5C%22%3A%20%5C%22application%2Fjavascript%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22module-type%5C%22%3A%20%5C%22storyview%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%7D%22%2C%22version%22%3A%220.2.0%22%2C%22type%22%3A%22application%2Fjson%22%2C%22title%22%3A%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftopstoryview%22%2C%22source%22%3A%22https%3A%2F%2Fgithub.com%2Ffelixhayashi%2FTW5-TopStoryView%22%2C%22released%22%3A%22%22%2C%22plugin-type%22%3A%22plugin%22%2C%22list%22%3A%22Configuration%20License%20Readme%22%2C%22description%22%3A%22TopStoryView%20%E2%80%93%20Always%20scroll%20navigated%20tiddlers%20to%20the%20top%22%2C%22dependents%22%3A%22%22%2C%22core-version%22%3A%22%3E%3D5.1.5%22%2C%22author%22%3A%22Felix%20K%C3%BCppers%22%7D
[InternetShortcut]
URL=data:text/vnd.tiddler,%7B%22text%22%3A%22%7B%5Cn%20%20%20%20%5C%22tiddlers%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Flayout%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%5Crules%20only%20filteredtranscludeinline%20transcludeinline%20macrodef%20macrocallinline%20%5C%5Cn%5C%5Cn%EF%BB%BFbody%20.tc-page-container-wrapper.tc-modal-displayed%7B-webkit-filter%3Ainherit%3B-moz-filter%3Ainherit%3Bfilter%3Ainherit%7Dbody%20.tc-modal-wrapper%7Bz-index%3A1010%7Dbody%20.tc-modal-wrapper%20.tc-modal-header%20svg%7Bvertical-align%3Asub%7Dbody%20.tc-modal-wrapper%20.tc-modal-header%20h3%7Bline-height%3A10px%7Dbody%20.tc-modal-wrapper%20.tc-modal-body%7Bmin-height%3A250px%3Bmax-height%3A70vh%3Bpadding-top%3A0px%3Bpadding-bottom%3A0px%3Boverflow%3Aauto%7Dbody%20.tc-modal-wrapper%20.tc-modal-footer%7Bpadding%3A8px%7Dbody%20.tc-modal-wrapper%20.tc-modal-footer%20.tmap-dialog-button%7Bfont-weight%3Abold%7Dbody%20.tc-modal-wrapper%20.tc-modal-footer%20.tmap-hidden-close-button%7Bdisplay%3Anone%7Dtable.tmap-table%20tr%3Anth-child(odd)%2C.tc-modal-body%20table.tmap-config-table%20tr%3Anth-child(odd)%7Bbackground-color%3A%23F0F0F0%7Dtable.tmap-table%20tr%3Anth-child(even)%2C.tc-modal-body%20table.tmap-config-table%20tr%3Anth-child(even)%7Bbackground-color%3A%23FFFFFF%7D.tmap-save-canvas-preview%7Btext-align%3Acenter%3Bbackground%3Alightgray%7D.tmap-save-canvas-preview%20img%7Bbackground-color%3Awhite%3Bmax-width%3A100%25%3Bmax-height%3A100px%3Bborder%3A1px%20solid%20red%7D.tmap-list-separator%7Bdisplay%3Ablock%3Bbackground-color%3A%23efefef%3Bmargin%3A10px%200%205px%200%3Bcursor%3Adefault%3Bborder-bottom%3A1px%20dotted%20gray%3Bfont-weight%3Abold%3Bfont-size%3A0.8em%7D.tmap-unicode-icon%7Bwidth%3A1em%3Bdisplay%3Ainline-block%3Btext-align%3Acenter%3Bcolor%3Ablack%7Dhtml%20.tmap-link%7Bcolor%3A%235778D8%7Dhtml%20.tmap-link%3Ahover%7Bcolor%3Awhite%3Bbackground%3A%235778D8%7Dhtml%20.tmap-small-list%2Chtml%20.tmap-smaller-list%2Chtml%20.tmap-very-small-list%7Boverflow%3Aauto%3Bmin-height%3A2em%3Bmax-height%3A9em%3Bdisplay%3Ablock%7Dhtml%20.tmap-smaller-list%7Bmax-height%3A7em%7Dhtml%20.tmap-very-small-list%7Bmax-height%3A5empx%7Dhtml%20.tc-tiddler-controls%20button.tmap-active-button%20svg%7Bfill%3A%23888888%7Dhtml%20%23tmap-node-filter-dialog%20%23tmap-filter-tips%7Bfont-size%3A0.8em%7Dhtml%20%23tmap-node-filter-dialog%20textarea%7Bheight%3A100px%3Bmax-height%3A300px%3Boverflow%3Aauto%3Bwidth%3A100%25%3Bfont-size%3A11px%3Bfont-family%3A%5C%5C%5C%22Courier%20New%5C%5C%5C%22%2C%20Courier%2C%20monospace%7D%40media%20(max-width%3A%20%7B%7B%24%3A%2Fthemes%2Ftiddlywiki%2Fvanilla%2Fmetrics%2Fsidebarbreakpoint%7D%7D)%7B.tc-sidebar-scrollable%20.tmap-desktop-editor%20.tmap-widget%3Anot(.tmap-fullscreen)%7Bdisplay%3Anone%7D%7D%40media%20(min-width%3A%20%7B%7B%24%3A%2Fthemes%2Ftiddlywiki%2Fvanilla%2Fmetrics%2Fsidebarbreakpoint%7D%7D)%7B.tc-sidebar-scrollable%20.tmap-mobile-editor%7Bdisplay%3Anone%7D.tc-modal-wrapper%7Bz-index%3A1010%7D.tc-modal-wrapper%20.tc-modal%7Bboder%3A1px%20solid%20%23999999%3Bleft%3Acalc(50%25%20-%20400px)%3Bwidth%3A802px%7D.tc-modal-wrapper%20.tc-modal-body%7Bleft%3Acalc(50%25%20-%20400px)%3Bwidth%3A800px%7D%7D%40-o-keyframes%20fadein-keyframes%7B0%25%7Bopacity%3A0%7D100%25%7Bopacity%3A1%7D%7D%40-moz-keyframes%20fadein-keyframes%7B0%25%7Bopacity%3A0%7D100%25%7Bopacity%3A1%7D%7D%40-webkit-keyframes%20fadein-keyframes%7B0%25%7Bopacity%3A0%7D100%25%7Bopacity%3A1%7D%7D%40keyframes%20flash%20fadein-keyframes%7B0%25%7Bopacity%3A0%7D100%25%7Bopacity%3A1%7D%7D%40-o-keyframes%20fadeout-keyframes%7B0%25%7Bopacity%3A1%7D100%25%7Bopacity%3A0%7D%7D%40-moz-keyframes%20fadeout-keyframes%7B0%25%7Bopacity%3A1%7D100%25%7Bopacity%3A0%7D%7D%40-webkit-keyframes%20fadeout-keyframes%7B0%25%7Bopacity%3A1%7D100%25%7Bopacity%3A0%7D%7D%40keyframes%20flash%20fadeout-keyframes%7B0%25%7Bopacity%3A1%7D100%25%7Bopacity%3A0%7D%7D.tmap-config-widget%7Bbackground%3A%23F0F0F0%3Bpadding%3A5px%3Bmargin%3A5px%200%3Bbox-sizing%3Aborder-box%3Bdisplay%3Ablock%7D.tmap-config-widget%20.vis-network%7Bdisplay%3Anone%7D.tmap-config-widget%20.vis-configuration-wrapper%7Bwidth%3A100%25%7D.tmap-config-widget%20.vis-configuration-wrapper%20.vis-config-rangeinput%7Bheight%3Ainherit%3Bmargin-left%3A4px%7D.tmap-config-widget%20.vis-configuration-wrapper%20.vis-configuration.vis-config-item%7Bwidth%3A100%25%3Bheight%3Ainherit%3Bbackground%3Anone%3Bpadding-left%3A0px%3Bleft%3A0%7D.tmap-config-widget%20.vis-configuration-wrapper%20.vis-configuration.vis-config-item.tmap-vis-config-item-active%20.vis-config-label%3A%3Aafter%7Bcontent%3A%5C%5C%5C%22(inherited)%5C%5C%5C%22%3Bposition%3Aabsolute%3Bdisplay%3Ainline-block%3Bmargin-left%3A10px%3B-o-animation%3Afadein-keyframes%201s%3B-moz-animation%3Afadein-keyframes%201s%3B-webkit-animation%3Afadein-keyframes%201s%3Banimation%3Afadein-keyframes%201s%3Bcontent%3A%5C%5C%5C%22%E2%9C%94%5C%5C%5C%22%3Bcolor%3Agreen%3Bfont-weight%3Abold%3Bfont-size%3A15px%7D.tmap-config-widget%20.vis-configuration-wrapper%20.vis-configuration.vis-config-item%20button.tmap-config-item-reset%7Bvertical-align%3Atop%3Bmargin-left%3A5px%7D.tmap-config-widget%20.vis-configuration-wrapper%20.vis-configuration.vis-config-item%20.vis-config-range%7Bwidth%3A150px%7D.tmap-config-widget%20.vis-configuration-wrapper%20.vis-configuration.vis-config-item%20.vis-config-range%3A%3A-moz-range-track%7Bwidth%3A150px%20!important%7D.tmap-config-widget%20.vis-configuration-wrapper%20.vis-configuration.vis-config-item%20.vis-config-label%7Bwidth%3A150px%7D.tmap-config-widget%3A%3Aafter%7Bclear%3Aboth%3Bcontent%3A%5C%5C%5C%22%5C%5C%5C%22%3Bdisplay%3Ablock%7D.tmap-flash-message%7Bborder%3A1px%20solid%20lightgray%3Bpadding%3A5px%3Bmargin%3A6px%200%3Bdisplay%3Ablock%3Bcolor%3A%23333333%7D.tmap-flash-message.tmap-info%2C.tmap-flash-message.tmap-plain%2C.tmap-flash-message.tmap-neutral%7Bbackground%3A%23F0F0F0%7D.tmap-flash-message.tmap-info%3A%3Abefore%2C.tmap-flash-message.tmap-plain%3A%3Abefore%2C.tmap-flash-message.tmap-neutral%3A%3Abefore%7Bcontent%3A%5C%5C%5C%22i%5C%5C%5C%22%3Bdisplay%3Ainline-block%3Bborder-radius%3A50%25%3Bwidth%3A0.8em%3Bborder%3A2px%20solid%3Bfont-family%3Aserif%3Btext-align%3Acenter%3Bheight%3A0.8em%3Bfont-weight%3Abold%3Bline-height%3A0.8em%3Bvertical-align%3Atext-top%3Bmargin-right%3A2px%7D.tmap-flash-message.tmap-valid%2C.tmap-flash-message.tmap-success%7Bbackground%3A%23D1EED4%7D.tmap-flash-message.tmap-valid%3A%3Abefore%2C.tmap-flash-message.tmap-success%3A%3Abefore%7Bcontent%3A%5C%5C%5C%22i%5C%5C%5C%22%3Bdisplay%3Ainline-block%3Bborder-radius%3A50%25%3Bwidth%3A0.8em%3Bborder%3A2px%20solid%3Bfont-family%3Aserif%3Btext-align%3Acenter%3Bheight%3A0.8em%3Bfont-weight%3Abold%3Bline-height%3A0.8em%3Bvertical-align%3Atext-top%3Bmargin-right%3A2px%7D.tmap-flash-message.tmap-warning%7Bbackground%3A%23FFF6D1%7D.tmap-flash-message.tmap-warning%3A%3Abefore%7Bcontent%3A%5C%5C%5C%22%5C%5C%5C%22%3Bdisplay%3Ainline-block%3Bbackground%3Aurl(%3C%3Ctmap%20%5C%5C%5C%22datauri%5C%5C%5C%22%20%5C%5C%5C%22%24%3A%2Fcore%2Fimages%2Fwarning%5C%5C%5C%22%20%5C%5C%5C%22%5C%5C%5C%22%3E%3E)%3Bdisplay%3Ainline-block%3Bwidth%3A1em%3Bheight%3A1em%3Bbackground-size%3A100%25%20100%25%3Bvertical-align%3Atext-top%3Bmargin-right%3A2px%7D.tmap-flash-message.tmap-malformed%2C.tmap-flash-message.tmap-invalid%2C.tmap-flash-message.tmap-danger%7Bbackground%3A%23EED5D1%7D.tmap-flash-message.tmap-malformed%3A%3Abefore%2C.tmap-flash-message.tmap-invalid%3A%3Abefore%2C.tmap-flash-message.tmap-danger%3A%3Abefore%7Bcontent%3A%5C%5C%5C%22%5C%5C%5C%22%3Bdisplay%3Ainline-block%3Bbackground%3Aurl(%3C%3Ctmap%20%5C%5C%5C%22datauri%5C%5C%5C%22%20%5C%5C%5C%22%24%3A%2Fcore%2Fimages%2Fwarning%5C%5C%5C%22%20%5C%5C%5C%22%5C%5C%5C%22%3E%3E)%3Bdisplay%3Ainline-block%3Bwidth%3A1em%3Bheight%3A1em%3Bbackground-size%3A100%25%20100%25%3Bvertical-align%3Atext-top%3Bmargin-right%3A2px%7D.tmap-widget%7Bbackground%3A%23FFFFFF%3Bwidth%3Aauto%3Bposition%3Arelative%3Bborder%3A1px%20dotted%20lightgray%3Bpadding%3A2px%3Bcolor%3A%23666%3Bdisplay%3Ablock%7D.tmap-widget%20.tmap-download-canvas%7Bdisplay%3Anone%7D.tmap-widget.tmap-click-to-use%3Anot(.tmap-fullscreen)%20.vis-network%3Anot(.vis-active)%7Bcursor%3Apointer%7D.tmap-widget.tmap-click-to-use%3Anot(.tmap-fullscreen)%20.vis-network%3Anot(.vis-active)%20.vis-navigation%7Bdisplay%3Anone%7D.tmap-widget.tmap-click-to-use%3Anot(.tmap-fullscreen)%20.vis-network%3Anot(.vis-active)%3Ahover%3Abefore%7Bcolor%3Agray%3Bbackground%3Awhite%3Bcontent%3A%5C%5C%5C%22Click%20to%20use%5C%5C%5C%22%3Bfont-size%3A14px%3Bfont-weight%3Abold%3Bright%3Acalc(50%25%20-%2065px%20-%205px)%3Bposition%3Aabsolute%3Btext-align%3Acenter%3Btop%3Acalc(50%25%20-%2014px%20-%205px)%3Bwidth%3A130px%3Bz-index%3A2000%3Bpadding%3A5px%3Bpointer-events%3Anone%3Bbackground-color%3Argba(255%2C255%2C255%2C0.3)%7D.tmap-widget%20.tmap-loading-bar%7Bdisplay%3Anone%3Bposition%3Aabsolute%3Btext-align%3Acenter%3Bfont-size%3A2em%3Bpadding%3A10px%3Btop%3A50%25%3Bbackground%3Argba(245%2C245%2C245%2C0.5)%3Bz-index%3A1%3Bwidth%3A250px%3Bmargin%3Aauto%3Bleft%3A0px%3Bright%3A0px%7D.tmap-widget%20.tmap-vis-graph%7Bheight%3Acalc(100%25%20-%2035px)%7D.tmap-widget.tmap-no-buttons%20.vis-navigation%7Bdisplay%3Anone%7D.tmap-widget.tmap-advanced-editor%20.tmap-topbar%7Bbackground%3A%23d6d9d8%7D.tmap-widget.tmap-advanced-editor%20.tmap-topbar%20.tmap-active-button%7Bcolor%3A%23488DCD%7D.tmap-widget.tmap-advanced-editor%20.tmap-topbar%20.tmap-active-button%20svg%7Bfill%3A%23488DCD%7D.tmap-widget.tmap-advanced-editor%20.tmap-topbar%20.tmap-unicode-button%7Bfont-size%3A1.5em%3Bvertical-align%3Abottom%3Bheight%3A28px%3Bfill%3A%23555555%7D.tmap-widget.tmap-advanced-editor%20.tmap-topbar%20.tmap-unicode-button%20svg%7Bvertical-align%3Abaseline%7D.tmap-widget%20.tmap-menu-bar%7Bwidth%3A100%25%7D.tmap-widget%20.tmap-topbar%7Bbackground%3A%23F5F5F5%3Bborder-bottom%3A1px%20solid%20lightgray%3Bpadding%3A3px%205px%3Bheight%3A35px%3Bposition%3Arelative%7D.tmap-widget%20.tmap-topbar%20.tmap-view-label%7Bwidth%3A100%25%3Btext-align%3Acenter%3Bfont-weight%3Abold%3Bpadding-top%3A3px%7D.tmap-widget%20.tmap-topbar%20.tmap-focus-button%7Bposition%3Aabsolute%3Bright%3A10px%3Btop%3A6px%7D.tmap-widget%20.tmap-topbar%20.tmap-focus-button%20input%7Bwidth%3A140px%7D.tmap-widget%20.tmap-topbar%20.tmap-search-dropdown%7Bposition%3Arelative%7D.tmap-widget%20.tmap-topbar%20.tmap-search-dropdown%20.tc-drop-down%7Bposition%3Aabsolute%3Bz-index%3A999%3Bright%3A0px%7D.tmap-widget%20.tmap-topbar%20%5Bhidden%5D%7Bdisplay%3Anone%7D.tmap-widget%20.tmap-topbar%20select%7Bwidth%3A30%25%3Bmax-width%3A200px%3Bword-wrap%3Ainitial%3Bpadding%3A0px%3Bheight%3A28px%7D.tmap-widget%20.tmap-topbar%20button%7Bline-height%3Ainherit%3Bcolor%3A%23666%7D.tmap-widget%20.tmap-topbar%3E*%7Bdisplay%3Ainline-block%7D.tmap-widget%20.tmap-topbar%20.tmap-separator%3Aafter%7Bcolor%3A%23bdbdbd%3Bmargin%3A3px%3Bcontent%3A%5C%5C%5C%22%20%7C%20%5C%5C%5C%22%7D.tmap-widget%20.tmap-topbar%20.tc-edit-add-tag%20.tc-add-tag-name%20input%7Bwidth%3A70%25%7D.tmap-widget%20.tmap-topbar%20.tc-sidebar-header%7Btext-shadow%3Anone%7D.tmap-widget%20.tmap-topbar%20.tc-edit-tags%7Bborder%3Anone%3Bpadding%3Ainherit%3Bbox-shadow%3Anone%7D.tmap-widget.tmap-static-mode%20.tmap-topbar%7Bheight%3Ainitial%7D.tmap-widget.tmap-static-mode%20.tmap-vis-graph%7Btext-align%3Acenter%3Bcursor%3Anot-allowed%7D.tmap-widget.tmap-static-mode%20.tmap-vis-graph%3Anot(.tmap-graph-placeholder)%3Ahover%3A%3Abefore%7Bbox-shadow%3A10px%2010px%205px%20lightgray%3Bcolor%3Agray%3Bbackground%3Awhite%3Bcontent%3A%5C%5C%5C%22Static%5C%5C%5C%22%3Bfont-size%3A18px%3Bfont-weight%3Abold%3Bleft%3A50%25%3Bmargin-left%3A-100px%3Bposition%3Aabsolute%3Btext-align%3Acenter%3Btop%3A50px%3Bwidth%3A200px%3Bz-index%3A2000%3Bpadding%3A5px%3Bpointer-events%3Anone%7D.tmap-widget.tmap-static-mode%20.tmap-vis-graph.tmap-graph-placeholder%3A%3Abefore%7Bcontent%3A%5C%5C%5C%22No%20Preview%5C%5C%5C%22%3Bdisplay%3Ablock%3Btext-align%3Acenter%3Bpadding%3A20px%7D.tmap-widget%20.tc-drop-down%7Bmin-width%3A170px%3Bpadding%3A5px%3Bmargin%3A5px%200%7D.tmap-widget%20.tc-drop-down%20button%2C.tmap-widget%20.tc-drop-down%20a%7Bpadding%3A0%202px%3Btext-decoration%3Anone%7D.tmap-widget%20.tc-drop-down%20button%3Ahover%2C.tmap-widget%20.tc-drop-down%20a%3Ahover%7Bcolor%3A%23ffffff%7D.tmap-widget%20.tc-drop-down%20button%20svg%2C.tmap-widget%20.tc-drop-down%20a%20svg%7Bvertical-align%3Amiddle%7D.tmap-widget%20.tc-block-dropdown%7Bwidth%3A370px%3Bmin-width%3A370px%3Bpadding%3A5px%3Bmargin%3A15px%200%200%20-370px%7D.tmap-widget%20.tc-block-dropdown%20a%7Bdisplay%3Ainline%3Bpadding%3A0px%7D.tmap-widget.tmap-plain-design%7Bborder%3Anone%3Bpadding%3A0px%7D.tmap-widget.tmap-plain-design%20.tmap-topbar%7Bdisplay%3Anone%7D.tc-sidebar-scrollable%20.tmap-widget%7Bposition%3Aabsolute%3Bmin-height%3A350px%7D.tmap-widget%20div.vis-network%20.vis-edit-mode%7Bheight%3A26px%7D.tmap-widget%20div.vis-network%20.vis-manipulation%7Bheight%3A34px%3Bborder-top%3A1px%20solid%20%23d6d9d8%3Bbackground%3Argba(245%2C245%2C245%2C0.7)%7D.tmap-widget%20div.vis-network%20.vis-navigation%20.vis-button.tmap-button-enabled%7Bright%3A15px%7D.tmap-widget%20div.vis-network%20.vis-navigation%20.vis-button.tmap-button-enabled.tmap-fullscreen-button%7Bbottom%3A90px%3Bbackground-image%3Aurl(%3C%3Ctmap%20%5C%5C%5C%22datauri%5C%5C%5C%22%20%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fmedia%2Ffullscreen.png%5C%5C%5C%22%20%5C%5C%5C%22%5C%5C%5C%22%3E%3E)%7D.tmap-widget%20div.vis-network%20.vis-navigation%20.vis-button.tmap-button-enabled.tmap-halfscreen-button%7Bbottom%3A130px%3Bbackground-image%3Aurl(%3C%3Ctmap%20%5C%5C%5C%22datauri%5C%5C%5C%22%20%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fmedia%2Fhalfscreen.png%5C%5C%5C%22%20%5C%5C%5C%22%5C%5C%5C%22%3E%3E)%7D.tmap-widget%20div.vis-network%20.vis-navigation%20.vis-button%3Ahover%7Bbox-shadow%3A0%200%203px%203px%20rgba(75%2C75%2C75%2C0.3)%7D.tmap-widget%20div.vis-network%20.vis-navigation%20.vis-button%3Ahover%3Abefore%7Bbackground%3Abeige%3Bdisplay%3Ablock%3Bcolor%3Ablack%3Bpadding%3A3px%3Bposition%3Arelative%3Bborder%3A1px%20solid%20lightgray%3Bwidth%3A80px%3Bleft%3A-100px%3Btop%3A-50px%3Bz-index%3A1000%3Btext-align%3Acenter%7D.tmap-widget%20div.vis-network%20.vis-navigation%20.vis-button%3Ahover.vis-up%3Abefore%7Bleft%3A30px%3Bcontent%3A%5C%5C%5C%22Scroll%20up%5C%5C%5C%22%7D.tmap-widget%20div.vis-network%20.vis-navigation%20.vis-button%3Ahover.vis-down%3Abefore%7Bleft%3A30px%3Bcontent%3A%5C%5C%5C%22Scroll%20down%5C%5C%5C%22%7D.tmap-widget%20div.vis-network%20.vis-navigation%20.vis-button%3Ahover.vis-right%3Abefore%7Bleft%3A30px%3Bcontent%3A%5C%5C%5C%22Scroll%20right%5C%5C%5C%22%7D.tmap-widget%20div.vis-network%20.vis-navigation%20.vis-button%3Ahover.vis-left%3Abefore%7Bleft%3A30px%3Bcontent%3A%5C%5C%5C%22Scroll%20left%5C%5C%5C%22%7D.tmap-widget%20div.vis-network%20.vis-navigation%20.vis-button%3Ahover.vis-zoomOut%3Abefore%7Bcontent%3A%5C%5C%5C%22Zoom%20out%5C%5C%5C%22%7D.tmap-widget%20div.vis-network%20.vis-navigation%20.vis-button%3Ahover.vis-zoomIn%3Abefore%7Bcontent%3A%5C%5C%5C%22Zoom%20in%5C%5C%5C%22%7D.tmap-widget%20div.vis-network%20.vis-navigation%20.vis-button%3Ahover.vis-zoomExtends%3Abefore%7Bcontent%3A%5C%5C%5C%22Fit%20whole%20graph%5C%5C%5C%22%7D.tmap-widget%20div.vis-network%20.vis-navigation%20.vis-button%3Ahover.tmap-fullscreen-button%3Abefore%7Bcontent%3A%5C%5C%5C%22Toggle%20Fullscreen%5C%5C%5C%22%7D.tmap-widget%20div.vis-network%20.vis-navigation%20.vis-button%3Ahover.tmap-halfscreen-button%3Abefore%7Bcontent%3A%5C%5C%5C%22Toggle%20Halfscreen%5C%5C%5C%22%7D.tc-dropzone%3E.tc-story-river%20.tmap-widget%20.vis-navigation%20.tmap-halfscreen-button%7Bdisplay%3Anone%7D.tc-dropzone%3E.tc-story-river%20.tmap-widget%3Anot(.tmap-fullscreen)%20.vis-navigation%20.vis-button%7Bdisplay%3Anone%7D.tc-dropzone%3E.tc-story-river%20.tmap-widget%3Ahover%20.vis-navigation%20.vis-button.tmap-fullscreen-button%7Bdisplay%3Ablock%7D.tc-dropzone%3E.tc-story-river%20.tmap-widget%3Ahover%20.vis-navigation%20.vis-button.vis-zoomExtends%7Bdisplay%3Ablock%7Dbody.tmap-has-fullscreen-widget%7Boverflow%3Ahidden%7Dbody.tmap-has-fullscreen-widget%20.tmap-widget.tmap-fullscreen%7Bbackground%3Awhite%20!important%3Bheight%3A100%25%20!important%3Bwidth%3A100%25%20!important%3Bposition%3Afixed%20!important%3Btop%3A0%20!important%3Bright%3A0%20!important%3Bbottom%3A0%20!important%3Bleft%3A0%20!important%3Bz-index%3A999%20!important%3Bborder%3Anone%20!important%3Bmargin%3A0%20!important%7Dbody.tmap-has-fullscreen-widget%20.tc-dropzone%3E*.tmap-has-fullscreen-widget%7Bbackground%3Awhite%20!important%3Bheight%3A100%25%20!important%3Bwidth%3A100%25%20!important%3Bposition%3Afixed%20!important%3Btop%3A0%20!important%3Bright%3A0%20!important%3Bbottom%3A0%20!important%3Bleft%3A0%20!important%3Bz-index%3A999%20!important%3Bborder%3Anone%20!important%3Bmargin%3A0%20!important%7Dbody.tmap-has-fullscreen-widget%20.tc-dropzone%3E*%3Anot(.tmap-has-fullscreen-widget)%7Bdisplay%3Anone%7Dbody.tmap-has-halfscreen-widget%20.tmap-widget.tmap-halfscreen%7Bbackground%3Awhite%20!important%3Bheight%3A100%25%20!important%3Bwidth%3A100%25%20!important%3Bposition%3Afixed%20!important%3Btop%3A0%20!important%3Bright%3A0%20!important%3Bbottom%3A0%20!important%3Bleft%3A0%20!important%3Bz-index%3A999%20!important%3Bborder%3Anone%20!important%3Bmargin%3A0%20!important%3Bposition%3Aabsolute%20!important%3Bborder-left%3A1px%20solid%20lightgray%20!important%7D.tc-modal-footer%20.tmap-hidden-close-button%7Bdisplay%3Anone%7D.tmap-modal-content%7Bposition%3Arelative%3Bpadding%3A1em%200%3Bpadding-top%3A0%7D.tmap-modal-content%20table%20tr%20td%7Bvertical-align%3Atop%7D.tmap-modal-content%20%3Anot(pre)%3Ecode%7Bpadding%3A1px%3Bfont-size%3A0.9em%3Bposition%3Arelative%3Btop%3A-1px%7D.tmap-modal-content%20%3Anot(pre)%3Ecode%7Bcolor%3A%23666%7D.tmap-modal-content%20.tc-tab-set%20.tc-tab-content%7Bmargin-top%3A0.5em%7D.tmap-modal-content%20.tc-image-button%7Bfont-size%3A14px%7D.tmap-modal-content%20fieldset%7Bmargin%3A0px%7D.tmap-modal-content%20fieldset%20legend%7Bfont-weight%3Abold%7D.tc-modal-body%20.tmap-modal-editor%3Ep%7Bmargin%3A0px%7D.tc-modal-body%20.tmap-modal-editor%20.tmap-template-select%20select%7Bwidth%3A50%25%7D.tc-modal-body%20.tmap-modal-editor%20.tc-tiddler-frame%7Bmargin%3Aauto%3Bwidth%3Aauto%7D.tc-modal-body%20.tmap-modal-editor%20.tc-tiddler-frame%20.tc-tiddler-controls%7Bdisplay%3Anone%7D.tc-modal-body%20.tmap-modal-editor%20.tc-tiddler-frame%20.tc-tiddler-title%7Bdisplay%3Anone%7D.tc-modal-body%20table%7Bmargin%3A6px%200%3Bborder%3Anone%3Bwidth%3A100%25%7D.tc-modal-body%20table%20td%2C.tc-modal-body%20table%20th%7Bborder%3A1px%20solid%20lightgray%7D.tc-modal-body%20table.tmap-key-value-table%20th%7Bwidth%3A30%25%3Bbackground-color%3A%23F0F0F0%7D.tc-modal-body%20table.tmap-config-table.tmap-large-input%20tr%20td%3Alast-child%7Bwidth%3A20%25%7D.tc-modal-body%20table.tmap-config-table.tmap-small-input%20tr%20td%3Alast-child%7Bwidth%3A60%25%7D.tc-modal-body%20table.tmap-config-table%20tr%20td%7Bborder%3Anone%3Bvertical-align%3Atop%3Bpadding%3A5px%7D.tc-modal-body%20table.tmap-config-table%20tr%20td%3Afirst-child%7Bwidth%3A15%25%7D.tc-modal-body%20table.tmap-config-table%20tr%20td%3Alast-child%7Bwidth%3A40%25%7D.tc-modal-body%20table.tmap-config-table%20tr%20td%20input%3Anot(%5Btype%3Dradio%5D)%2C.tc-modal-body%20table.tmap-config-table%20tr%20td%20textarea%2C.tc-modal-body%20table.tmap-config-table%20tr%20td%20select%7Bwidth%3A100%25%3Bword-wrap%3Anormal%7D.tc-modal-body%20table.tmap-config-table%20tr%20td%20textarea%7Bheight%3A100%25%7D.tc-modal-body%20table.tmap-config-table%20tr%20td%20.tmap-no-stretch%20input%2C.tc-modal-body%20table.tmap-config-table%20tr%20td%20.tmap-no-stretch%20textarea%2C.tc-modal-body%20table.tmap-config-table%20tr%20td%20.tmap-no-stretch%20select%7Bwidth%3Aauto%7D.tc-modal-body%20table.tmap-config-table%20tr%20td%20div.tmap-button-wrapper%7Btext-align%3Acenter%7D.tc-modal-body%20table.tmap-config-table%20tr%20td%20.tmap-note%7Bmargin-top%3A0.5em%7D.tc-modal-body%20table.tmap-config-table%20tr%20td%20.tmap-description%7Bfont-style%3Aitalic%7D%23tmap-element-type-manager%3Ediv%3Afirst-child%7Bheight%3A50vh%3Bfloat%3Aleft%3Bwidth%3A21%25%3Bbackground%3Alinear-gradient(90deg%2C%20%23f5f5f5%200%25%2C%20%23fff%2050%25)%7D%23tmap-element-type-manager%3Ediv%3Afirst-child%20.tmap-searchbar%7Bpadding%3A1em%200%200%200%7D%23tmap-element-type-manager%3Ediv%3Afirst-child%20.tmap-searchbar%20input%7Bwidth%3Acalc(100%25%20-%2036px)%7D%23tmap-element-type-manager%3Ediv%3Afirst-child%20.tmap-searchbar%20button%7Bwidth%3A30px%3Bfloat%3Aright%7D%23tmap-element-type-manager%3Ediv%3Afirst-child%20ul%7Bheight%3Acalc(100%25%20-%2065px)%3Boverflow%3Aauto%3Bmargin-top%3A1em%3Bpadding%3A0%7D%23tmap-element-type-manager%3Ediv%3Afirst-child%20ul.no-bullets%20li%7Blist-style%3Anone%7D%23tmap-element-type-manager%3Ediv%3Afirst-child%20ul%20li%7Bwhite-space%3Anowrap%7D%23tmap-element-type-manager%3Ediv%3Afirst-child%20ul%20li%20.tmap-ranking%7Bwidth%3A30px%3Bdisplay%3Ainline-block%7D%23tmap-element-type-manager%3Ediv%3Alast-child%7Bheight%3A100%25%3Bwidth%3Acalc(79%25%20-%2015px)%3Bfloat%3Aright%7D%23tmap-element-type-manager%3Ediv%3Alast-child%20.tc-tab-set%20.tc-tab-content%7Boverflow%3Aauto%3Bheight%3A50vh%7D.tmap-manage-node-types%20.tmap-edge-type-specific%7Bdisplay%3Anone%20!important%7D.tmap-manage-edge-types%20.tmap-node-type-specific%7Bdisplay%3Anone%20!important%7D.tmap-modal-fullscreen-editor%20.tc-tab-content%20p%7Bmargin%3A1em%200%7D.tmap-has-pending-template%7Bbackground-color%3A%23C1EDC4%7D%23tmap-search-table%20td%7Bborder%3Anone%3Bpadding-left%3A0px%7D%23tmap-search-table%20td%3Afirst-child%7Bwidth%3A30px%7D%23tmap-search-table%20b%7Bdisplay%3Ainline-block%3Bwidth%3A40px%3Btext-align%3Aright%7D%23tmap-search-table%20ul%7Bpadding-left%3A20px%3Bmargin%3A1em%200%200%200%7D%23tmap-search-table%20ul%20li%7Blist-style%3Ainherit%7D%23tmap-search-table%20ul%20button%7Btext-align%3Aleft%7Dbutton.tmap-go-back%7Bmargin-bottom%3A1em%3Bfont-weight%3Abold%7D.tmap-badges%3Espan%2C.tmap-badge%7Bbackground%3Agray%3Bfont-size%3A11px%3Bcolor%3Awhite%3Bpadding%3A3px%204px%3Bdisplay%3Ainline-block%3Bfont-weight%3Abold%3Bborder-radius%3A2px%3Bline-height%3A1em%3Bcursor%3Ahelp%7D.tmap-badges%3Espan.tmap-red-flag%2C.tmap-badge.tmap-red-flag%7Bbackground%3Ared%7D.tmap-popup%7Bdisplay%3Anone%3Bposition%3Aabsolute%3Bopacity%3A0%3Btransition%3Aopacity%200.3s%20ease%7D.tmap-popup.tmap-popup-active%7Bopacity%3A1%7D.tmap-tooltip%7Bbox-shadow%3A3px%203px%2010px%20rgba(0%2C0%2C0%2C0.2)%3Bmin-width%3A100px%3Bmin-height%3A50px%3Bmax-width%3A%3C%3Ctmap%20option%20config.sys.popups.width%3E%3E%3Bmax-height%3A%3C%3Ctmap%20option%20config.sys.popups.height%3E%3E%3Bpadding%3A5px%3Bresize%3Aboth%3Boverflow%3Aauto%3Bcursor%3Aauto%3Bfont-family%3Averdana%3Bfont-size%3A14px%3Bbackground-color%3A%23f5f4ed%3Bborder%3A1px%20solid%20%23808074%3B-moz-border-radius%3A3px%3B-webkit-border-radius%3A3px%3Bborder-radius%3A3px%7D.tmap-tooltip%5Bstyle*%3D%5C%5C%5C%22height%5C%5C%5C%22%5D%7Bmax-height%3Anone%20!important%7D.tmap-tooltip%5Bstyle*%3D%5C%5C%5C%22width%5C%5C%5C%22%5D%7Bmax-width%3Anone%20!important%7D.tmap-quick-connect%7Bfont-size%3A0.7em%7D.tmap-quick-connect%20p%7Bpadding-left%3A0%3Bpadding-right%3A0%7D.tmap-quick-connect%20.tc-drop-down%7Bpadding%3A5px%3Bwidth%3A250px%3Bwhite-space%3Anormal%3Bline-height%3A1em%3Bposition%3Aabsolute%3Bz-index%3A1000%3Bright%3A50px%3Bbackground%3Alinear-gradient(45deg%2C%20%23f5f5f5%200%25%2C%20%23fff%2050%25%2C%20%23f5f5f5%20100%25)%7D.tmap-quick-connect%20.tc-drop-down%3Afirst-child%7Bpadding-top%3A0%3Bmargin-top%3A0%7D.tmap-quick-connect%20.tc-drop-down%20.title%7Bmargin%3A1.5em%200%200.5em%200%3Bfont-weight%3Abold%3Bcolor%3Agray%7D.tmap-quick-connect%20.tc-drop-down%20select%7Bwidth%3A80px%3Bword-wrap%3Ainitial%7D.tmap-quick-connect%20.tc-drop-down%20table%7Bwidth%3A100%25%3Bborder%3Anone%3Bmargin%3A0.5em%200%7D.tmap-quick-connect%20.tc-drop-down%20table%20td%2C.tmap-quick-connect%20.tc-drop-down%20table%20th%7Bpadding%3A3px%203px%203px%200%3Bvertical-align%3Amiddle%3Bfont-weight%3Anormal%3Bborder%3Anone%7D.tmap-quick-connect%20.tc-drop-down%20table%20td%20table%2C.tmap-quick-connect%20.tc-drop-down%20table%20th%20table%7Bmargin%3A0%7D.tmap-quick-connect%20.tc-drop-down%20.tmap-quick-connect-search-bar%2C.tmap-quick-connect%20.tc-drop-down%20.tmap-quick-connect-existing-bar%7Bbackground%3A%23F1F1F1%3Bmargin-top%3A0%3Bborder-bottom%3A1px%20solid%20%23D5D5D5%3Bborder-top%3A1px%20solid%20%23D5D5D5%7D.tmap-quick-connect%20.tc-drop-down%20table.tmap-quick-connect-search-bar%20td%2C.tmap-quick-connect%20.tc-drop-down%20th%7Bpadding%3A5px%7D.tmap-quick-connect%20.tc-drop-down%20.tmap-quick-connect-existing-bar%7Bpadding%3A5px%7D.tmap-quick-connect%20.tc-drop-down%20.tmap-connection-table%20th%2C.tmap-quick-connect%20.tc-drop-down%20.tmap-connection-table%20td%7Btext-align%3Aleft%3Bpadding%3A1px%201px%201px%200%7D.tmap-quick-connect%20.tc-drop-down%20.tmap-connection-table%20button%7Bwidth%3A20px%3Bpadding%3A0px%7D.tmap-quick-connect%20.tc-drop-down%20.tmap-scroll-table%7Bheight%3A120px%3Boverflow%3Aauto%3Bdisplay%3Ablock%7D.tmap-quick-connect%20.tc-drop-down%20hr%7Bborder%3A0%3Bheight%3A0%3Bborder-top%3A1px%20solid%20rgba(0%2C0%2C0%2C0.1)%3Bborder-bottom%3A1px%20solid%20rgba(255%2C255%2C255%2C0.3)%7D.tmap-quick-connect%20.tc-drop-down%20a%7Bdisplay%3Ainline%3Bpadding%3A0%3Bcolor%3A%235778d8%3Bbackground%3Atransparent%7D.tmap-quick-connect%20.tc-drop-down%20a%3Ahover%7Bbackground%3Atransparent%3Bcolor%3A%235778d8%3Btext-decoration%3Aunderline%7D.tmap-quick-connect%20.tc-drop-down%20button%7Bdisplay%3Ainline-block%3Bpadding%3A0px%203px%3Btext-align%3Acenter%3Bcolor%3A%23333333%3Bline-height%3A1.0%7D.tmap-quick-connect%20.tc-drop-down%20button%3Ahover%7Bcolor%3A%23ffffff%7D.tmap-quick-connect%20.tc-drop-down%20button%20svg%7Bfill%3Ainherit%7D.tmap-quick-connect%20.tc-drop-down%20button%20svg%3Ahover%7Bfill%3A%23ffffff%7D%5C%5Cn%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Flayout%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22type%5C%22%3A%20%5C%22text%2Fvnd.tiddlywiki%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22tags%5C%22%3A%20%5B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5C%22%24%3A%2Ftags%2FStylesheet%5C%22%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5D%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FAbstractEdgeTypeSubscriber%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FAbstractEdgeTypeSubscriber%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_createClass%3Dfunction()%7Bfunction%20e(e%2Cr)%7Bfor(var%20t%3D0%3Bt%3Cr.length%3Bt%2B%2B)%7Bvar%20i%3Dr%5Bt%5D%3Bi.enumerable%3Di.enumerable%7C%7Cfalse%3Bi.configurable%3Dtrue%3Bif(%5C%5C%5C%22value%5C%5C%5C%22in%20i)i.writable%3Dtrue%3BObject.defineProperty(e%2Ci.key%2Ci)%7D%7Dreturn%20function(r%2Ct%2Ci)%7Bif(t)e(r.prototype%2Ct)%3Bif(i)e(r%2Ci)%3Breturn%20r%7D%7D()%3B%2F*%20%40preserve%20TW-Guard%20*%2F%20%2F*%20%40preserve%20TW-Guard%20*%2F%5C%5Cn%2F*%5C%5C%5C%5C%5C%5Cn%5C%5Cntitle%3A%20%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FAbstractEdgeTypeSubscriber%5C%5Cntype%3A%20application%2Fjavascript%5C%5Cnmodule-type%3A%20library%5C%5Cn%5C%5Cn%40preserve%5C%5Cn%5C%5Cn%5C%5C%5C%5C*%2F%5C%5Cn%2F*%20%40preserve%20TW-Guard%20*%2F%5C%5Cn%2F*%20%40preserve%20TW-Guard%20*%2Fvar%20_EdgeType%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FEdgeType%5C%5C%5C%22)%3Bvar%20_EdgeType2%3D_interopRequireDefault(_EdgeType)%3Bvar%20_exception%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Fexception%5C%5C%5C%22)%3Bfunction%20_interopRequireDefault(e)%7Breturn%20e%26%26e.__esModule%3Fe%3A%7Bdefault%3Ae%7D%7Dfunction%20_classCallCheck(e%2Cr)%7Bif(!(e%20instanceof%20r))%7Bthrow%20new%20TypeError(%5C%5C%5C%22Cannot%20call%20a%20class%20as%20a%20function%5C%5C%5C%22)%7D%7Dvar%20AbstractEdgeTypeSubscriber%3Dfunction()%7Bfunction%20e(r)%7Bvar%20t%3Darguments.length%3E1%26%26arguments%5B1%5D!%3D%3Dundefined%3Farguments%5B1%5D%3A%7B%7D%2Ci%3Dt.priority%2Cn%3Di%3D%3D%3Dundefined%3F0%3Ai%2Ca%3Dt.skipOthers%2Cs%3Da%3D%3D%3Dundefined%3Ftrue%3Aa%2Cu%3Dt.ignore%2Cl%3Du%3D%3D%3Dundefined%3Ffalse%3Au%3B_classCallCheck(this%2Ce)%3Bthis.allEdgeTypes%3Dr%3Bthis.priority%3Dn%3Bthis.skipOthers%3Ds%3Bthis.ignore%3Dl%7D_createClass(e%2C%5B%7Bkey%3A%5C%5C%5C%22setTracker%5C%5C%5C%22%2Cvalue%3Afunction%20e(r)%7Bthis.tracker%3Dr%7D%7D%2C%7Bkey%3A%5C%5C%5C%22loadEdges%5C%5C%5C%22%2Cvalue%3Afunction%20e(r%2Ct%2Ci)%7Bthrow%20new%20_exception.MissingOverrideError(this%2C%5C%5C%5C%22loadEdges%5C%5C%5C%22)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22canHandle%5C%5C%5C%22%2Cvalue%3Afunction%20e(r)%7Bthrow%20new%20_exception.MissingOverrideError(this%2C%5C%5C%5C%22canHandle%5C%5C%5C%22)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22insertEdge%5C%5C%5C%22%2Cvalue%3Afunction%20e(r%2Ct%2Ci)%7B%7D%7D%2C%7Bkey%3A%5C%5C%5C%22deleteEdge%5C%5C%5C%22%2Cvalue%3Afunction%20e(r%2Ct%2Ci)%7B%7D%7D%5D)%3Breturn%20e%7D()%3Bexports.default%3DAbstractEdgeTypeSubscriber%3B%5C%5Cn%2F%2F%23%20sourceMappingURL%3D.%2Fmaps%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FedgeTypeSubscriber%2FAbstractEdgeTypeSubscriber.js.map%5C%5Cn%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22type%5C%22%3A%20%5C%22application%2Fjavascript%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22module-type%5C%22%3A%20%5C%22library%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FAbstractMagicEdgeTypeSubscriber%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FAbstractMagicEdgeTypeSubscriber%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_createClass%3Dfunction()%7Bfunction%20e(e%2Cr)%7Bfor(var%20t%3D0%3Bt%3Cr.length%3Bt%2B%2B)%7Bvar%20i%3Dr%5Bt%5D%3Bi.enumerable%3Di.enumerable%7C%7Cfalse%3Bi.configurable%3Dtrue%3Bif(%5C%5C%5C%22value%5C%5C%5C%22in%20i)i.writable%3Dtrue%3BObject.defineProperty(e%2Ci.key%2Ci)%7D%7Dreturn%20function(r%2Ct%2Ci)%7Bif(t)e(r.prototype%2Ct)%3Bif(i)e(r%2Ci)%3Breturn%20r%7D%7D()%3Bvar%20_utils%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Futils%5C%5C%5C%22)%3Bvar%20_utils2%3D_interopRequireDefault(_utils)%3Bvar%20_Edge%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FEdge%5C%5C%5C%22)%3Bvar%20_Edge2%3D_interopRequireDefault(_Edge)%3Bvar%20_exception%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Fexception%5C%5C%5C%22)%3Bvar%20_AbstractRefEdgeTypeSubscriber%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FAbstractRefEdgeTypeSubscriber%5C%5C%5C%22)%3Bvar%20_AbstractRefEdgeTypeSubscriber2%3D_interopRequireDefault(_AbstractRefEdgeTypeSubscriber)%3Bfunction%20_interopRequireDefault(e)%7Breturn%20e%26%26e.__esModule%3Fe%3A%7Bdefault%3Ae%7D%7Dfunction%20_classCallCheck(e%2Cr)%7Bif(!(e%20instanceof%20r))%7Bthrow%20new%20TypeError(%5C%5C%5C%22Cannot%20call%20a%20class%20as%20a%20function%5C%5C%5C%22)%7D%7Dfunction%20_possibleConstructorReturn(e%2Cr)%7Bif(!e)%7Bthrow%20new%20ReferenceError(%5C%5C%5C%22this%20hasn't%20been%20initialised%20-%20super()%20hasn't%20been%20called%5C%5C%5C%22)%7Dreturn%20r%26%26(typeof%20r%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22%7C%7Ctypeof%20r%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22)%3Fr%3Ae%7Dfunction%20_inherits(e%2Cr)%7Bif(typeof%20r!%3D%3D%5C%5C%5C%22function%5C%5C%5C%22%26%26r!%3D%3Dnull)%7Bthrow%20new%20TypeError(%5C%5C%5C%22Super%20expression%20must%20either%20be%20null%20or%20a%20function%2C%20not%20%5C%5C%5C%22%2Btypeof%20r)%7De.prototype%3DObject.create(r%26%26r.prototype%2C%7Bconstructor%3A%7Bvalue%3Ae%2Cenumerable%3Afalse%2Cwritable%3Atrue%2Cconfigurable%3Atrue%7D%7D)%3Bif(r)Object.setPrototypeOf%3FObject.setPrototypeOf(e%2Cr)%3Ae.__proto__%3Dr%7D%2F*%20%40preserve%20TW-Guard%20*%2F%5C%5Cn%2F*%5C%5C%5C%5C%5C%5Cn%5C%5Cntitle%3A%20%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FAbstractMagicEdgeTypeSubscriber%5C%5Cntype%3A%20application%2Fjavascript%5C%5Cnmodule-type%3A%20library%5C%5Cn%5C%5Cn%40preserve%5C%5Cn%5C%5Cn%5C%5C%5C%5C*%2F%5C%5Cn%2F*%20%40preserve%20TW-Guard%20*%2Fvar%20AbstractMagicEdgeTypeSubscriber%3Dfunction(e)%7B_inherits(r%2Ce)%3Bfunction%20r(e%2Ct)%7B_classCallCheck(this%2Cr)%3Bvar%20i%3D_possibleConstructorReturn(this%2C(r.__proto__%7C%7CObject.getPrototypeOf(r)).call(this%2Ce%2Ct))%3Bi.edgeTypesByFieldName%3D_utils2.default.makeHashMap()%3Bfor(var%20a%20in%20e)%7Bvar%20n%3De%5Ba%5D%3Bif(i.canHandle(n))%7Bi.edgeTypesByFieldName%5Bn.name%5D%3Dn%7D%7Dreturn%20i%7D_createClass(r%2C%5B%7Bkey%3A%5C%5C%5C%22getReferencesFromField%5C%5C%5C%22%2Cvalue%3Afunction%20e(r%2Ct%2Ci)%7Bthrow%20new%20_exception.MissingOverrideError(this%2C%5C%5C%5C%22getReferencesFromField%5C%5C%5C%22)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getReferences%5C%5C%5C%22%2Cvalue%3Afunction%20e(r%2Ct%2Ci)%7Bvar%20a%3D_utils2.default.makeHashMap()%3Bvar%20n%3Dr.fields%3Bfor(var%20s%20in%20n)%7Bvar%20u%3Dthis.edgeTypesByFieldName%5Bs%5D%3Bif(!u%7C%7Ci%26%26!i%5Bu.id%5D)continue%3Bvar%20o%3Dthis.getReferencesFromField(r%2Cs%2Ct)%3Bif(o%26%26o.length)%7Ba%5Bu.id%5D%3Do%7D%7Dreturn%20a%7D%7D%5D)%3Breturn%20r%7D(_AbstractRefEdgeTypeSubscriber2.default)%3Bexports.default%3DAbstractMagicEdgeTypeSubscriber%3B%5C%5Cn%2F%2F%23%20sourceMappingURL%3D.%2Fmaps%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FedgeTypeSubscriber%2FAbstractMagicEdgeTypeSubscriber.js.map%5C%5Cn%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22type%5C%22%3A%20%5C%22application%2Fjavascript%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22module-type%5C%22%3A%20%5C%22library%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FAbstractRefEdgeTypeSubscriber%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FAbstractRefEdgeTypeSubscriber%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_createClass%3Dfunction()%7Bfunction%20e(e%2Ct)%7Bfor(var%20r%3D0%3Br%3Ct.length%3Br%2B%2B)%7Bvar%20i%3Dt%5Br%5D%3Bi.enumerable%3Di.enumerable%7C%7Cfalse%3Bi.configurable%3Dtrue%3Bif(%5C%5C%5C%22value%5C%5C%5C%22in%20i)i.writable%3Dtrue%3BObject.defineProperty(e%2Ci.key%2Ci)%7D%7Dreturn%20function(t%2Cr%2Ci)%7Bif(r)e(t.prototype%2Cr)%3Bif(i)e(t%2Ci)%3Breturn%20t%7D%7D()%3Bvar%20_utils%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Futils%5C%5C%5C%22)%3Bvar%20_utils2%3D_interopRequireDefault(_utils)%3Bvar%20_Edge%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FEdge%5C%5C%5C%22)%3Bvar%20_Edge2%3D_interopRequireDefault(_Edge)%3Bvar%20_exception%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Fexception%5C%5C%5C%22)%3Bvar%20_AbstractEdgeTypeSubscriber%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FAbstractEdgeTypeSubscriber%5C%5C%5C%22)%3Bvar%20_AbstractEdgeTypeSubscriber2%3D_interopRequireDefault(_AbstractEdgeTypeSubscriber)%3Bfunction%20_interopRequireDefault(e)%7Breturn%20e%26%26e.__esModule%3Fe%3A%7Bdefault%3Ae%7D%7Dfunction%20_classCallCheck(e%2Ct)%7Bif(!(e%20instanceof%20t))%7Bthrow%20new%20TypeError(%5C%5C%5C%22Cannot%20call%20a%20class%20as%20a%20function%5C%5C%5C%22)%7D%7Dfunction%20_possibleConstructorReturn(e%2Ct)%7Bif(!e)%7Bthrow%20new%20ReferenceError(%5C%5C%5C%22this%20hasn't%20been%20initialised%20-%20super()%20hasn't%20been%20called%5C%5C%5C%22)%7Dreturn%20t%26%26(typeof%20t%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22%7C%7Ctypeof%20t%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22)%3Ft%3Ae%7Dfunction%20_inherits(e%2Ct)%7Bif(typeof%20t!%3D%3D%5C%5C%5C%22function%5C%5C%5C%22%26%26t!%3D%3Dnull)%7Bthrow%20new%20TypeError(%5C%5C%5C%22Super%20expression%20must%20either%20be%20null%20or%20a%20function%2C%20not%20%5C%5C%5C%22%2Btypeof%20t)%7De.prototype%3DObject.create(t%26%26t.prototype%2C%7Bconstructor%3A%7Bvalue%3Ae%2Cenumerable%3Afalse%2Cwritable%3Atrue%2Cconfigurable%3Atrue%7D%7D)%3Bif(t)Object.setPrototypeOf%3FObject.setPrototypeOf(e%2Ct)%3Ae.__proto__%3Dt%7D%2F*%20%40preserve%20TW-Guard%20*%2F%5C%5Cn%2F*%5C%5C%5C%5C%5C%5Cn%5C%5Cntitle%3A%20%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FAbstractRefEdgeTypeSubscriber%5C%5Cntype%3A%20application%2Fjavascript%5C%5Cnmodule-type%3A%20library%5C%5Cn%5C%5Cn%40preserve%5C%5Cn%5C%5Cn%5C%5C%5C%5C*%2F%5C%5Cn%2F*%20%40preserve%20TW-Guard%20*%2Fvar%20AbstractRefEdgeTypeSubscriber%3Dfunction(e)%7B_inherits(t%2Ce)%3Bfunction%20t()%7B_classCallCheck(this%2Ct)%3Breturn%20_possibleConstructorReturn(this%2C(t.__proto__%7C%7CObject.getPrototypeOf(t)).apply(this%2Carguments))%7D_createClass(t%2C%5B%7Bkey%3A%5C%5C%5C%22loadEdges%5C%5C%5C%22%2Cvalue%3Afunction%20e(t%2Cr%2Ci)%7Bvar%20a%3Dthis.getReferences(t%2Cr%2Ci)%3Bif(!a%7C%7C!_utils2.default.hasElements(a))return%3Bvar%20s%3Dt.fields%5B%5C%5C%5C%22tmap.id%5C%5C%5C%22%5D%3Bvar%20n%3D%24tm.tracker.getIdsByTiddlers()%3Bvar%20u%3Dthis.allEdgeTypes%3Bvar%20l%3D_utils2.default.getTiddlerRef(t)%3Bvar%20o%3D_utils2.default.makeHashMap()%3Bfor(var%20f%20in%20a)%7Bvar%20c%3Da%5Bf%5D%3Bif(!c)%7Bcontinue%7Dvar%20p%3Du%5Bf%5D%3Bfor(var%20d%3Dc.length%3Bd--%3B)%7Bvar%20_%3Dc%5Bd%5D%3Bif(!_%7C%7C!%24tw.wiki.tiddlerExists(_)%7C%7C_utils2.default.isSystemOrDraft(_)%7C%7Cr%26%26!r%5B_%5D)%7Bcontinue%7Dvar%20b%3Dp.id%2B%24tw.utils.hashString(l%2B_)%3Bo%5Bb%5D%3Dnew%20_Edge2.default(s%2Cn%5B_%5D%2Cp.id%2Cb)%7D%7Dreturn%20o%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getReferences%5C%5C%5C%22%2Cvalue%3Afunction%20e(t%2Cr%2Ci)%7Bthrow%20new%20_exception.MissingOverrideError(this%2C%5C%5C%5C%22getReferences%5C%5C%5C%22)%7D%7D%5D)%3Breturn%20t%7D(_AbstractEdgeTypeSubscriber2.default)%3Bexports.default%3DAbstractRefEdgeTypeSubscriber%3B%5C%5Cn%2F%2F%23%20sourceMappingURL%3D.%2Fmaps%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FedgeTypeSubscriber%2FAbstractRefEdgeTypeSubscriber.js.map%5C%5Cn%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22type%5C%22%3A%20%5C%22application%2Fjavascript%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22module-type%5C%22%3A%20%5C%22library%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FEdgeTypeSubscriberRegistry%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FEdgeTypeSubscriberRegistry%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_createClass%3Dfunction()%7Bfunction%20e(e%2Cr)%7Bfor(var%20t%3D0%3Bt%3Cr.length%3Bt%2B%2B)%7Bvar%20s%3Dr%5Bt%5D%3Bs.enumerable%3Ds.enumerable%7C%7Cfalse%3Bs.configurable%3Dtrue%3Bif(%5C%5C%5C%22value%5C%5C%5C%22in%20s)s.writable%3Dtrue%3BObject.defineProperty(e%2Cs.key%2Cs)%7D%7Dreturn%20function(r%2Ct%2Cs)%7Bif(t)e(r.prototype%2Ct)%3Bif(s)e(r%2Cs)%3Breturn%20r%7D%7D()%3Bfunction%20_classCallCheck(e%2Cr)%7Bif(!(e%20instanceof%20r))%7Bthrow%20new%20TypeError(%5C%5C%5C%22Cannot%20call%20a%20class%20as%20a%20function%5C%5C%5C%22)%7D%7D%5C%5Cn%2F*%20%40preserve%20TW-Guard%20*%2F%5C%5Cn%2F*%5C%5C%5C%5C%5C%5Cn%5C%5Cntitle%3A%20%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FEdgeTypeSubscriberRegistry%5C%5Cntype%3A%20application%2Fjavascript%5C%5Cnmodule-type%3A%20library%5C%5Cn%5C%5Cn%40preserve%5C%5Cn%5C%5Cn%5C%5C%5C%5C*%2F%5C%5Cn%2F*%20%40preserve%20TW-Guard%20*%2Fvar%20EdgeTypeSubscriberRegistry%3Dfunction()%7Bfunction%20e(r%2Ct%2Cs)%7B_classCallCheck(this%2Ce)%3Bthis.subscriberClasses%3Dr%3Bthis.tracker%3Ds%3Bthis.updateIndex(t)%7D_createClass(e%2C%5B%7Bkey%3A%5C%5C%5C%22getAllForType%5C%5C%5C%22%2Cvalue%3Afunction%20e(r)%7Bvar%20t%3Dthis.allSubscribers%3Bvar%20s%3D%5B%5D%3Bfor(var%20i%3D0%2Ca%3Dt.length%3Bi%3Ca%3Bi%2B%2B)%7Bif(t%5Bi%5D.canHandle(r))%7Bs.push(t%5Bi%5D)%3Bif(t%5Bi%5D.skipOthers)%7Bbreak%7D%7D%7Dreturn%20s%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getAll%5C%5C%5C%22%2Cvalue%3Afunction%20e()%7Breturn%20this.allSubscribers%7D%7D%2C%7Bkey%3A%5C%5C%5C%22updateIndex%5C%5C%5C%22%2Cvalue%3Afunction%20e(r)%7Bvar%20t%3D%5B%5D%3Bvar%20s%3Dthis.subscriberClasses%3Bfor(var%20i%20in%20s)%7Bvar%20a%3Dnew%20s%5Bi%5D(r)%3Ba.setTracker(this.tracker)%3Bif(a.ignore%3D%3D%3Dtrue)%7Bcontinue%7Dt.push(a)%7Dt.sort(function(e%2Cr)%7Breturn%20r.priority-e.priority%7D)%3Bthis.allSubscribers%3Dt%7D%7D%5D)%3Breturn%20e%7D()%3Bexports.default%3DEdgeTypeSubscriberRegistry%3B%5C%5Cn%2F%2F%23%20sourceMappingURL%3D.%2Fmaps%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FedgeTypeSubscriber%2FEdgeTypeSubscriberRegistry.js.map%5C%5Cn%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22type%5C%22%3A%20%5C%22application%2Fjavascript%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22module-type%5C%22%3A%20%5C%22library%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Fmodules%2Fedge-type-handler%2Ftmap%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Fmodules%2Fedge-type-handler%2Ftmap%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bexports.TmapEdgeTypeSubscriber%3Dundefined%3Bvar%20_extends%3DObject.assign%7C%7Cfunction(e)%7Bfor(var%20t%3D1%3Bt%3Carguments.length%3Bt%2B%2B)%7Bvar%20r%3Darguments%5Bt%5D%3Bfor(var%20i%20in%20r)%7Bif(Object.prototype.hasOwnProperty.call(r%2Ci))%7Be%5Bi%5D%3Dr%5Bi%5D%7D%7D%7Dreturn%20e%7D%3Bvar%20_createClass%3Dfunction()%7Bfunction%20e(e%2Ct)%7Bfor(var%20r%3D0%3Br%3Ct.length%3Br%2B%2B)%7Bvar%20i%3Dt%5Br%5D%3Bi.enumerable%3Di.enumerable%7C%7Cfalse%3Bi.configurable%3Dtrue%3Bif(%5C%5C%5C%22value%5C%5C%5C%22in%20i)i.writable%3Dtrue%3BObject.defineProperty(e%2Ci.key%2Ci)%7D%7Dreturn%20function(t%2Cr%2Ci)%7Bif(r)e(t.prototype%2Cr)%3Bif(i)e(t%2Ci)%3Breturn%20t%7D%7D()%3Bvar%20_utils%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Futils%5C%5C%5C%22)%3Bvar%20_utils2%3D_interopRequireDefault(_utils)%3Bvar%20_Edge%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FEdge%5C%5C%5C%22)%3Bvar%20_Edge2%3D_interopRequireDefault(_Edge)%3Bvar%20_AbstractEdgeTypeSubscriber%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FAbstractEdgeTypeSubscriber%5C%5C%5C%22)%3Bvar%20_AbstractEdgeTypeSubscriber2%3D_interopRequireDefault(_AbstractEdgeTypeSubscriber)%3Bfunction%20_interopRequireDefault(e)%7Breturn%20e%26%26e.__esModule%3Fe%3A%7Bdefault%3Ae%7D%7Dfunction%20_classCallCheck(e%2Ct)%7Bif(!(e%20instanceof%20t))%7Bthrow%20new%20TypeError(%5C%5C%5C%22Cannot%20call%20a%20class%20as%20a%20function%5C%5C%5C%22)%7D%7Dfunction%20_possibleConstructorReturn(e%2Ct)%7Bif(!e)%7Bthrow%20new%20ReferenceError(%5C%5C%5C%22this%20hasn't%20been%20initialised%20-%20super()%20hasn't%20been%20called%5C%5C%5C%22)%7Dreturn%20t%26%26(typeof%20t%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22%7C%7Ctypeof%20t%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22)%3Ft%3Ae%7Dfunction%20_inherits(e%2Ct)%7Bif(typeof%20t!%3D%3D%5C%5C%5C%22function%5C%5C%5C%22%26%26t!%3D%3Dnull)%7Bthrow%20new%20TypeError(%5C%5C%5C%22Super%20expression%20must%20either%20be%20null%20or%20a%20function%2C%20not%20%5C%5C%5C%22%2Btypeof%20t)%7De.prototype%3DObject.create(t%26%26t.prototype%2C%7Bconstructor%3A%7Bvalue%3Ae%2Cenumerable%3Afalse%2Cwritable%3Atrue%2Cconfigurable%3Atrue%7D%7D)%3Bif(t)Object.setPrototypeOf%3FObject.setPrototypeOf(e%2Ct)%3Ae.__proto__%3Dt%7D%2F*%20%40preserve%20TW-Guard%20*%2F%5C%5Cn%2F*%5C%5C%5C%5C%5C%5Cn%5C%5Cntitle%3A%20%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Fmodules%2Fedge-type-handler%2Ftmap%5C%5Cntype%3A%20application%2Fjavascript%5C%5Cnmodule-type%3A%20tmap.edgetypehandler%5C%5Cn%5C%5Cn%40preserve%5C%5Cn%5C%5Cn%5C%5C%5C%5C*%2F%5C%5Cn%2F*%20%40preserve%20TW-Guard%20*%2Fvar%20TmapEdgeTypeSubscriber%3Dfunction(e)%7B_inherits(t%2Ce)%3Bfunction%20t(e)%7Bvar%20r%3Darguments.length%3E1%26%26arguments%5B1%5D!%3D%3Dundefined%3Farguments%5B1%5D%3A%7B%7D%3B_classCallCheck(this%2Ct)%3Breturn%20_possibleConstructorReturn(this%2C(t.__proto__%7C%7CObject.getPrototypeOf(t)).call(this%2Ce%2C_extends(%7Bpriority%3A0%7D%2Cr)))%7D_createClass(t%2C%5B%7Bkey%3A%5C%5C%5C%22loadEdges%5C%5C%5C%22%2Cvalue%3Afunction%20e(t%2Cr%2Ci)%7Bvar%20a%3D_utils2.default.parseFieldData(t%2C%5C%5C%5C%22tmap.edges%5C%5C%5C%22)%3Bif(!a)%7Breturn%7Dvar%20n%3Dthis.tracker.getTiddlersByIds()%3Bvar%20u%3Dt.fields%5B%5C%5C%5C%22tmap.id%5C%5C%5C%22%5D%3Bvar%20s%3D_utils2.default.makeHashMap()%3Bfor(var%20l%20in%20a)%7Bvar%20o%3Da%5Bl%5D%3Bvar%20d%3Dn%5Bo.to%5D%3Bif(d%26%26(!r%7C%7Cr%5Bd%5D)%26%26(!i%7C%7Ci%5Bo.type%5D))%7Bs%5Bl%5D%3Dnew%20_Edge2.default(u%2Co.to%2Co.type%2Cl)%7D%7Dreturn%20s%7D%7D%2C%7Bkey%3A%5C%5C%5C%22insertEdge%5C%5C%5C%22%2Cvalue%3Afunction%20e(t%2Cr%2Ci)%7Bvar%20a%3D_utils2.default.parseFieldData(t%2C%5C%5C%5C%22tmap.edges%5C%5C%5C%22%2C%7B%7D)%3Br.id%3Dr.id%7C%7C_utils2.default.genUUID()%3Ba%5Br.id%5D%3D%7Bto%3Ar.to%2Ctype%3Ai.id%7D%3B_utils2.default.writeFieldData(t%2C%5C%5C%5C%22tmap.edges%5C%5C%5C%22%2Ca%2C%24tm.config.sys.jsonIndentation)%3Breturn%20r%7D%7D%2C%7Bkey%3A%5C%5C%5C%22deleteEdge%5C%5C%5C%22%2Cvalue%3Afunction%20e(t%2Cr%2Ci)%7Bif(!r.id)return%3Bvar%20a%3D_utils2.default.parseFieldData(t%2C%5C%5C%5C%22tmap.edges%5C%5C%5C%22%2C%7B%7D)%3Bdelete%20a%5Br.id%5D%3B_utils2.default.writeFieldData(t%2C%5C%5C%5C%22tmap.edges%5C%5C%5C%22%2Ca%2C%24tm.config.sys.jsonIndentation)%3Breturn%20r%7D%7D%2C%7Bkey%3A%5C%5C%5C%22canHandle%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Breturn%20true%7D%7D%5D)%3Breturn%20t%7D(_AbstractEdgeTypeSubscriber2.default)%3Bexports.TmapEdgeTypeSubscriber%3DTmapEdgeTypeSubscriber%3B%5C%5Cn%2F%2F%23%20sourceMappingURL%3D.%2Fmaps%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FedgeTypeSubscriber%2FTmapEdgeTypeSubscriber.js.map%5C%5Cn%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22type%5C%22%3A%20%5C%22application%2Fjavascript%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22module-type%5C%22%3A%20%5C%22tmap.edgetypehandler%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Fmodules%2Fedge-type-handler%2Ffield%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Fmodules%2Fedge-type-handler%2Ffield%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bexports.FieldEdgeTypeSubscriber%3Dundefined%3Bvar%20_extends%3DObject.assign%7C%7Cfunction(e)%7Bfor(var%20t%3D1%3Bt%3Carguments.length%3Bt%2B%2B)%7Bvar%20r%3Darguments%5Bt%5D%3Bfor(var%20i%20in%20r)%7Bif(Object.prototype.hasOwnProperty.call(r%2Ci))%7Be%5Bi%5D%3Dr%5Bi%5D%7D%7D%7Dreturn%20e%7D%3Bvar%20_createClass%3Dfunction()%7Bfunction%20e(e%2Ct)%7Bfor(var%20r%3D0%3Br%3Ct.length%3Br%2B%2B)%7Bvar%20i%3Dt%5Br%5D%3Bi.enumerable%3Di.enumerable%7C%7Cfalse%3Bi.configurable%3Dtrue%3Bif(%5C%5C%5C%22value%5C%5C%5C%22in%20i)i.writable%3Dtrue%3BObject.defineProperty(e%2Ci.key%2Ci)%7D%7Dreturn%20function(t%2Cr%2Ci)%7Bif(r)e(t.prototype%2Cr)%3Bif(i)e(t%2Ci)%3Breturn%20t%7D%7D()%3Bvar%20_utils%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Futils%5C%5C%5C%22)%3Bvar%20_utils2%3D_interopRequireDefault(_utils)%3Bvar%20_AbstractMagicEdgeTypeSubscriber%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FAbstractMagicEdgeTypeSubscriber%5C%5C%5C%22)%3Bvar%20_AbstractMagicEdgeTypeSubscriber2%3D_interopRequireDefault(_AbstractMagicEdgeTypeSubscriber)%3Bfunction%20_interopRequireDefault(e)%7Breturn%20e%26%26e.__esModule%3Fe%3A%7Bdefault%3Ae%7D%7Dfunction%20_classCallCheck(e%2Ct)%7Bif(!(e%20instanceof%20t))%7Bthrow%20new%20TypeError(%5C%5C%5C%22Cannot%20call%20a%20class%20as%20a%20function%5C%5C%5C%22)%7D%7Dfunction%20_possibleConstructorReturn(e%2Ct)%7Bif(!e)%7Bthrow%20new%20ReferenceError(%5C%5C%5C%22this%20hasn't%20been%20initialised%20-%20super()%20hasn't%20been%20called%5C%5C%5C%22)%7Dreturn%20t%26%26(typeof%20t%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22%7C%7Ctypeof%20t%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22)%3Ft%3Ae%7Dfunction%20_inherits(e%2Ct)%7Bif(typeof%20t!%3D%3D%5C%5C%5C%22function%5C%5C%5C%22%26%26t!%3D%3Dnull)%7Bthrow%20new%20TypeError(%5C%5C%5C%22Super%20expression%20must%20either%20be%20null%20or%20a%20function%2C%20not%20%5C%5C%5C%22%2Btypeof%20t)%7De.prototype%3DObject.create(t%26%26t.prototype%2C%7Bconstructor%3A%7Bvalue%3Ae%2Cenumerable%3Afalse%2Cwritable%3Atrue%2Cconfigurable%3Atrue%7D%7D)%3Bif(t)Object.setPrototypeOf%3FObject.setPrototypeOf(e%2Ct)%3Ae.__proto__%3Dt%7D%2F*%20%40preserve%20TW-Guard%20*%2F%5C%5Cn%2F*%5C%5C%5C%5C%5C%5Cn%5C%5Cntitle%3A%20%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Fmodules%2Fedge-type-handler%2Ffield%5C%5Cntype%3A%20application%2Fjavascript%5C%5Cnmodule-type%3A%20tmap.edgetypehandler%5C%5Cn%5C%5Cn%40preserve%5C%5Cn%5C%5Cn%5C%5C%5C%5C*%2F%5C%5Cn%2F*%20%40preserve%20TW-Guard%20*%2Fvar%20FieldEdgeTypeSubscriber%3Dfunction(e)%7B_inherits(t%2Ce)%3Bfunction%20t(e)%7Bvar%20r%3Darguments.length%3E1%26%26arguments%5B1%5D!%3D%3Dundefined%3Farguments%5B1%5D%3A%7B%7D%3B_classCallCheck(this%2Ct)%3Breturn%20_possibleConstructorReturn(this%2C(t.__proto__%7C%7CObject.getPrototypeOf(t)).call(this%2Ce%2C_extends(%7Bpriority%3A10%7D%2Cr)))%7D_createClass(t%2C%5B%7Bkey%3A%5C%5C%5C%22canHandle%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Breturn%20t.namespace%3D%3D%3D%5C%5C%5C%22tw-field%5C%5C%5C%22%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getReferencesFromField%5C%5C%5C%22%2Cvalue%3Afunction%20e(t%2Cr%2Ci)%7Breturn%5Bt.fields%5Br%5D%5D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22insertEdge%5C%5C%5C%22%2Cvalue%3Afunction%20e(t%2Cr%2Ci)%7Bvar%20n%3Dthis.tracker.getTiddlerById(r.to)%3Bif(n%3D%3Dnull)%7Breturn%7D_utils2.default.setField(t%2Ci.name%2Cn)%3Breturn%20r%7D%7D%2C%7Bkey%3A%5C%5C%5C%22deleteEdge%5C%5C%5C%22%2Cvalue%3Afunction%20e(t%2Cr%2Ci)%7Bvar%20n%3Dthis.tracker.getTiddlerById(r.to)%3Bif(n%3D%3Dnull)%7Breturn%7D_utils2.default.setField(t%2Ci.name%2Cundefined)%3Breturn%20r%7D%7D%5D)%3Breturn%20t%7D(_AbstractMagicEdgeTypeSubscriber2.default)%3Bexports.FieldEdgeTypeSubscriber%3DFieldEdgeTypeSubscriber%3B%5C%5Cn%2F%2F%23%20sourceMappingURL%3D.%2Fmaps%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FedgeTypeSubscriber%2FmagicEdgeTypeSubscriber%2FFieldEdgeTypeSubscriber.js.map%5C%5Cn%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22type%5C%22%3A%20%5C%22application%2Fjavascript%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22module-type%5C%22%3A%20%5C%22tmap.edgetypehandler%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Fmodules%2Fedge-type-handler%2Ffilter%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Fmodules%2Fedge-type-handler%2Ffilter%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bexports.FilterEdgeTypeSubstriber%3Dundefined%3Bvar%20_extends%3DObject.assign%7C%7Cfunction(e)%7Bfor(var%20t%3D1%3Bt%3Carguments.length%3Bt%2B%2B)%7Bvar%20r%3Darguments%5Bt%5D%3Bfor(var%20i%20in%20r)%7Bif(Object.prototype.hasOwnProperty.call(r%2Ci))%7Be%5Bi%5D%3Dr%5Bi%5D%7D%7D%7Dreturn%20e%7D%3Bvar%20_createClass%3Dfunction()%7Bfunction%20e(e%2Ct)%7Bfor(var%20r%3D0%3Br%3Ct.length%3Br%2B%2B)%7Bvar%20i%3Dt%5Br%5D%3Bi.enumerable%3Di.enumerable%7C%7Cfalse%3Bi.configurable%3Dtrue%3Bif(%5C%5C%5C%22value%5C%5C%5C%22in%20i)i.writable%3Dtrue%3BObject.defineProperty(e%2Ci.key%2Ci)%7D%7Dreturn%20function(t%2Cr%2Ci)%7Bif(r)e(t.prototype%2Cr)%3Bif(i)e(t%2Ci)%3Breturn%20t%7D%7D()%3Bvar%20_utils%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Futils%5C%5C%5C%22)%3Bvar%20_utils2%3D_interopRequireDefault(_utils)%3Bvar%20_AbstractMagicEdgeTypeSubscriber%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FAbstractMagicEdgeTypeSubscriber%5C%5C%5C%22)%3Bvar%20_AbstractMagicEdgeTypeSubscriber2%3D_interopRequireDefault(_AbstractMagicEdgeTypeSubscriber)%3Bvar%20_widget%3Drequire(%5C%5C%5C%22%24%3A%2Fcore%2Fmodules%2Fwidgets%2Fwidget.js%5C%5C%5C%22)%3Bvar%20_widget2%3D_interopRequireDefault(_widget)%3Bfunction%20_interopRequireDefault(e)%7Breturn%20e%26%26e.__esModule%3Fe%3A%7Bdefault%3Ae%7D%7Dfunction%20_classCallCheck(e%2Ct)%7Bif(!(e%20instanceof%20t))%7Bthrow%20new%20TypeError(%5C%5C%5C%22Cannot%20call%20a%20class%20as%20a%20function%5C%5C%5C%22)%7D%7Dfunction%20_possibleConstructorReturn(e%2Ct)%7Bif(!e)%7Bthrow%20new%20ReferenceError(%5C%5C%5C%22this%20hasn't%20been%20initialised%20-%20super()%20hasn't%20been%20called%5C%5C%5C%22)%7Dreturn%20t%26%26(typeof%20t%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22%7C%7Ctypeof%20t%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22)%3Ft%3Ae%7Dfunction%20_inherits(e%2Ct)%7Bif(typeof%20t!%3D%3D%5C%5C%5C%22function%5C%5C%5C%22%26%26t!%3D%3Dnull)%7Bthrow%20new%20TypeError(%5C%5C%5C%22Super%20expression%20must%20either%20be%20null%20or%20a%20function%2C%20not%20%5C%5C%5C%22%2Btypeof%20t)%7De.prototype%3DObject.create(t%26%26t.prototype%2C%7Bconstructor%3A%7Bvalue%3Ae%2Cenumerable%3Afalse%2Cwritable%3Atrue%2Cconfigurable%3Atrue%7D%7D)%3Bif(t)Object.setPrototypeOf%3FObject.setPrototypeOf(e%2Ct)%3Ae.__proto__%3Dt%7D%2F*%20%40preserve%20TW-Guard%20*%2F%5C%5Cn%2F*%5C%5C%5C%5C%5C%5Cn%5C%5Cntitle%3A%20%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Fmodules%2Fedge-type-handler%2Ffilter%5C%5Cntype%3A%20application%2Fjavascript%5C%5Cnmodule-type%3A%20tmap.edgetypehandler%5C%5Cn%5C%5Cn%40preserve%5C%5Cn%5C%5Cn%5C%5C%5C%5C*%2F%5C%5Cn%2F*%20%40preserve%20TW-Guard%20*%2Fvar%20FilterEdgeTypeSubstriber%3Dfunction(e)%7B_inherits(t%2Ce)%3Bfunction%20t(e)%7Bvar%20r%3Darguments.length%3E1%26%26arguments%5B1%5D!%3D%3Dundefined%3Farguments%5B1%5D%3A%7B%7D%3B_classCallCheck(this%2Ct)%3Breturn%20_possibleConstructorReturn(this%2C(t.__proto__%7C%7CObject.getPrototypeOf(t)).call(this%2Ce%2C_extends(%7Bpriority%3A10%7D%2Cr)))%7D_createClass(t%2C%5B%7Bkey%3A%5C%5C%5C%22canHandle%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Breturn%20t.namespace%3D%3D%3D%5C%5C%5C%22tw-filter%5C%5C%5C%22%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getReferencesFromField%5C%5C%5C%22%2Cvalue%3Afunction%20e(t%2Cr%2Ci)%7Bvar%20n%3Dt.fields%5Br%5D%3Bvar%20a%3Dnew%20_widget2.default.widget(%7B%7D)%3Ba.setVariable(%5C%5C%5C%22currentTiddler%5C%5C%5C%22%2Ct.fields.title)%3Bvar%20u%3Dnew%20_widget2.default.widget(%7B%7D%2C%7BparentWidget%3Aa%7D)%3Bvar%20s%3D_utils2.default.getMatches(n%2Ci%2Cu)%3Breturn%20s%7D%7D%2C%7Bkey%3A%5C%5C%5C%22insertEdge%5C%5C%5C%22%2Cvalue%3Afunction%20e(t%2Cr%2Ci)%7Bif(!r.to)%7Breturn%7Dvar%20n%3Di.name%3Bvar%20a%3Dt.fields%5Bn%5D%7C%7C%5C%5C%5C%22%5C%5C%5C%22%3Bvar%20u%3Dthis.tracker.getTiddlerById(r.to)%3Bvar%20s%3D%24tw.utils.stringifyList(%5Bu%5D)%3Bif(a.length%3E0)%7Bs%3D%5C%5C%5C%22%20%5C%5C%5C%22%2Bs%7D_utils2.default.setField(t%2Cn%2Ca%2Bs)%3Breturn%20r%7D%7D%5D)%3Breturn%20t%7D(_AbstractMagicEdgeTypeSubscriber2.default)%3Bexports.FilterEdgeTypeSubstriber%3DFilterEdgeTypeSubstriber%3B%5C%5Cn%2F%2F%23%20sourceMappingURL%3D.%2Fmaps%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FedgeTypeSubscriber%2FmagicEdgeTypeSubscriber%2FFilterEdgeTypeSubscriber.js.map%5C%5Cn%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22type%5C%22%3A%20%5C%22application%2Fjavascript%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22module-type%5C%22%3A%20%5C%22tmap.edgetypehandler%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Fmodules%2Fedge-type-handler%2Flist%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Fmodules%2Fedge-type-handler%2Flist%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bexports.ListEdgeTypeSubscriber%3Dundefined%3Bvar%20_extends%3DObject.assign%7C%7Cfunction(e)%7Bfor(var%20t%3D1%3Bt%3Carguments.length%3Bt%2B%2B)%7Bvar%20r%3Darguments%5Bt%5D%3Bfor(var%20i%20in%20r)%7Bif(Object.prototype.hasOwnProperty.call(r%2Ci))%7Be%5Bi%5D%3Dr%5Bi%5D%7D%7D%7Dreturn%20e%7D%3Bvar%20_createClass%3Dfunction()%7Bfunction%20e(e%2Ct)%7Bfor(var%20r%3D0%3Br%3Ct.length%3Br%2B%2B)%7Bvar%20i%3Dt%5Br%5D%3Bi.enumerable%3Di.enumerable%7C%7Cfalse%3Bi.configurable%3Dtrue%3Bif(%5C%5C%5C%22value%5C%5C%5C%22in%20i)i.writable%3Dtrue%3BObject.defineProperty(e%2Ci.key%2Ci)%7D%7Dreturn%20function(t%2Cr%2Ci)%7Bif(r)e(t.prototype%2Cr)%3Bif(i)e(t%2Ci)%3Breturn%20t%7D%7D()%3Bvar%20_utils%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Futils%5C%5C%5C%22)%3Bvar%20_utils2%3D_interopRequireDefault(_utils)%3Bvar%20_AbstractMagicEdgeTypeSubscriber%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FAbstractMagicEdgeTypeSubscriber%5C%5C%5C%22)%3Bvar%20_AbstractMagicEdgeTypeSubscriber2%3D_interopRequireDefault(_AbstractMagicEdgeTypeSubscriber)%3Bfunction%20_interopRequireDefault(e)%7Breturn%20e%26%26e.__esModule%3Fe%3A%7Bdefault%3Ae%7D%7Dfunction%20_classCallCheck(e%2Ct)%7Bif(!(e%20instanceof%20t))%7Bthrow%20new%20TypeError(%5C%5C%5C%22Cannot%20call%20a%20class%20as%20a%20function%5C%5C%5C%22)%7D%7Dfunction%20_possibleConstructorReturn(e%2Ct)%7Bif(!e)%7Bthrow%20new%20ReferenceError(%5C%5C%5C%22this%20hasn't%20been%20initialised%20-%20super()%20hasn't%20been%20called%5C%5C%5C%22)%7Dreturn%20t%26%26(typeof%20t%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22%7C%7Ctypeof%20t%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22)%3Ft%3Ae%7Dfunction%20_inherits(e%2Ct)%7Bif(typeof%20t!%3D%3D%5C%5C%5C%22function%5C%5C%5C%22%26%26t!%3D%3Dnull)%7Bthrow%20new%20TypeError(%5C%5C%5C%22Super%20expression%20must%20either%20be%20null%20or%20a%20function%2C%20not%20%5C%5C%5C%22%2Btypeof%20t)%7De.prototype%3DObject.create(t%26%26t.prototype%2C%7Bconstructor%3A%7Bvalue%3Ae%2Cenumerable%3Afalse%2Cwritable%3Atrue%2Cconfigurable%3Atrue%7D%7D)%3Bif(t)Object.setPrototypeOf%3FObject.setPrototypeOf(e%2Ct)%3Ae.__proto__%3Dt%7D%2F*%20%40preserve%20TW-Guard%20*%2F%5C%5Cn%2F*%5C%5C%5C%5C%5C%5Cn%5C%5Cntitle%3A%20%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Fmodules%2Fedge-type-handler%2Flist%5C%5Cntype%3A%20application%2Fjavascript%5C%5Cnmodule-type%3A%20tmap.edgetypehandler%5C%5Cn%5C%5Cn%40preserve%5C%5Cn%5C%5Cn%5C%5C%5C%5C*%2F%5C%5Cn%2F*%20%40preserve%20TW-Guard%20*%2Fvar%20ListEdgeTypeSubscriber%3Dfunction(e)%7B_inherits(t%2Ce)%3Bfunction%20t(e)%7Bvar%20r%3Darguments.length%3E1%26%26arguments%5B1%5D!%3D%3Dundefined%3Farguments%5B1%5D%3A%7B%7D%3B_classCallCheck(this%2Ct)%3Breturn%20_possibleConstructorReturn(this%2C(t.__proto__%7C%7CObject.getPrototypeOf(t)).call(this%2Ce%2C_extends(%7Bpriority%3A10%7D%2Cr)))%7D_createClass(t%2C%5B%7Bkey%3A%5C%5C%5C%22canHandle%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Breturn%20t.namespace%3D%3D%3D%5C%5C%5C%22tw-list%5C%5C%5C%22%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getReferencesFromField%5C%5C%5C%22%2Cvalue%3Afunction%20e(t%2Cr%2Ci)%7Breturn%20%24tw.utils.parseStringArray(t.fields%5Br%5D)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22insertEdge%5C%5C%5C%22%2Cvalue%3Afunction%20e(t%2Cr%2Ci)%7Bif(!r.to)%7Breturn%7Dvar%20n%3Di.name%3Bvar%20s%3D%24tw.utils.parseStringArray(t.fields%5Bn%5D)%3Bs%3D(s%7C%7C%5B%5D).slice()%3Bvar%20a%3Dthis.tracker.getTiddlerById(r.to)%3Bs.push(a)%3B_utils2.default.setField(t%2Cn%2C%24tw.utils.stringifyList(s))%3Breturn%20r%7D%7D%2C%7Bkey%3A%5C%5C%5C%22deleteEdge%5C%5C%5C%22%2Cvalue%3Afunction%20e(t%2Cr%2Ci)%7Bvar%20n%3D%24tw.utils.parseStringArray(t.fields%5Bi.name%5D)%3Bn%3D(n%7C%7C%5B%5D).slice()%3Bvar%20s%3Dthis.tracker.getTiddlerById(r.to)%3Bvar%20a%3Dn.indexOf(s)%3Bif(a%3E-1)%7Bn.splice(a%2C1)%7Dvar%20u%3Dvoid%200%3Bif(n.length%3E0)%7Bu%3D%24tw.utils.stringifyList(n)%7D_utils2.default.setField(t%2Ci.name%2Cu)%3Breturn%20r%7D%7D%5D)%3Breturn%20t%7D(_AbstractMagicEdgeTypeSubscriber2.default)%3Bexports.ListEdgeTypeSubscriber%3DListEdgeTypeSubscriber%3B%5C%5Cn%2F%2F%23%20sourceMappingURL%3D.%2Fmaps%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FedgeTypeSubscriber%2FmagicEdgeTypeSubscriber%2FListEdgeTypeSubscriber.js.map%5C%5Cn%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22type%5C%22%3A%20%5C%22application%2Fjavascript%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22module-type%5C%22%3A%20%5C%22tmap.edgetypehandler%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Fmodules%2Fedge-type-handler%2Fbody%2Flink%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Fmodules%2Fedge-type-handler%2Fbody%2Flink%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bexports.LinkEdgeTypeSubscriber%3Dundefined%3Bvar%20_extends%3DObject.assign%7C%7Cfunction(e)%7Bfor(var%20t%3D1%3Bt%3Carguments.length%3Bt%2B%2B)%7Bvar%20r%3Darguments%5Bt%5D%3Bfor(var%20n%20in%20r)%7Bif(Object.prototype.hasOwnProperty.call(r%2Cn))%7Be%5Bn%5D%3Dr%5Bn%5D%7D%7D%7Dreturn%20e%7D%3Bvar%20_createClass%3Dfunction()%7Bfunction%20e(e%2Ct)%7Bfor(var%20r%3D0%3Br%3Ct.length%3Br%2B%2B)%7Bvar%20n%3Dt%5Br%5D%3Bn.enumerable%3Dn.enumerable%7C%7Cfalse%3Bn.configurable%3Dtrue%3Bif(%5C%5C%5C%22value%5C%5C%5C%22in%20n)n.writable%3Dtrue%3BObject.defineProperty(e%2Cn.key%2Cn)%7D%7Dreturn%20function(t%2Cr%2Cn)%7Bif(r)e(t.prototype%2Cr)%3Bif(n)e(t%2Cn)%3Breturn%20t%7D%7D()%3Bvar%20_AbstractRefEdgeTypeSubscriber%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FAbstractRefEdgeTypeSubscriber%5C%5C%5C%22)%3Bvar%20_AbstractRefEdgeTypeSubscriber2%3D_interopRequireDefault(_AbstractRefEdgeTypeSubscriber)%3Bfunction%20_interopRequireDefault(e)%7Breturn%20e%26%26e.__esModule%3Fe%3A%7Bdefault%3Ae%7D%7Dfunction%20_classCallCheck(e%2Ct)%7Bif(!(e%20instanceof%20t))%7Bthrow%20new%20TypeError(%5C%5C%5C%22Cannot%20call%20a%20class%20as%20a%20function%5C%5C%5C%22)%7D%7Dfunction%20_possibleConstructorReturn(e%2Ct)%7Bif(!e)%7Bthrow%20new%20ReferenceError(%5C%5C%5C%22this%20hasn't%20been%20initialised%20-%20super()%20hasn't%20been%20called%5C%5C%5C%22)%7Dreturn%20t%26%26(typeof%20t%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22%7C%7Ctypeof%20t%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22)%3Ft%3Ae%7Dfunction%20_inherits(e%2Ct)%7Bif(typeof%20t!%3D%3D%5C%5C%5C%22function%5C%5C%5C%22%26%26t!%3D%3Dnull)%7Bthrow%20new%20TypeError(%5C%5C%5C%22Super%20expression%20must%20either%20be%20null%20or%20a%20function%2C%20not%20%5C%5C%5C%22%2Btypeof%20t)%7De.prototype%3DObject.create(t%26%26t.prototype%2C%7Bconstructor%3A%7Bvalue%3Ae%2Cenumerable%3Afalse%2Cwritable%3Atrue%2Cconfigurable%3Atrue%7D%7D)%3Bif(t)Object.setPrototypeOf%3FObject.setPrototypeOf(e%2Ct)%3Ae.__proto__%3Dt%7D%2F*%20%40preserve%20TW-Guard%20*%2F%5C%5Cn%2F*%5C%5C%5C%5C%5C%5Cn%5C%5Cntitle%3A%20%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Fmodules%2Fedge-type-handler%2Fbody%2Flink%5C%5Cntype%3A%20application%2Fjavascript%5C%5Cnmodule-type%3A%20tmap.edgetypehandler%5C%5Cn%5C%5Cn%40preserve%5C%5Cn%5C%5Cn%5C%5C%5C%5C*%2F%5C%5Cn%2F*%20%40preserve%20TW-Guard%20*%2Fvar%20LinkEdgeTypeSubscriber%3Dfunction(e)%7B_inherits(t%2Ce)%3Bfunction%20t(e)%7Bvar%20r%3Darguments.length%3E1%26%26arguments%5B1%5D!%3D%3Dundefined%3Farguments%5B1%5D%3A%7B%7D%3B_classCallCheck(this%2Ct)%3Breturn%20_possibleConstructorReturn(this%2C(t.__proto__%7C%7CObject.getPrototypeOf(t)).call(this%2Ce%2C_extends(%7Bpriority%3A20%7D%2Cr)))%7D_createClass(t%2C%5B%7Bkey%3A%5C%5C%5C%22canHandle%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Breturn%20t.id%3D%3D%3D%5C%5C%5C%22tw-body%3Alink%5C%5C%5C%22%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getReferences%5C%5C%5C%22%2Cvalue%3Afunction%20e(t%2Cr%2Cn)%7Bif(n%26%26!n%5B%5C%5C%5C%22tw-body%3Alink%5C%5C%5C%22%5D)%7Breturn%7Dvar%20i%3D%24tw.wiki.getTiddlerLinks(t.fields.title)%3Bif(!i%7C%7C!i.length)%7Breturn%7Dreturn%7B%5C%5C%5C%22tw-body%3Alink%5C%5C%5C%22%3Ai%7D%7D%7D%5D)%3Breturn%20t%7D(_AbstractRefEdgeTypeSubscriber2.default)%3Bexports.LinkEdgeTypeSubscriber%3DLinkEdgeTypeSubscriber%3B%5C%5Cn%2F%2F%23%20sourceMappingURL%3D.%2Fmaps%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FedgeTypeSubscriber%2FrefEdgeTypeSubscriber%2FLinkEdgeTypeSubscriber.js.map%5C%5Cn%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22type%5C%22%3A%20%5C%22application%2Fjavascript%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22module-type%5C%22%3A%20%5C%22tmap.edgetypehandler%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Fmodules%2Fedge-type-handler%2Fbody%2Ftransclude%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Fmodules%2Fedge-type-handler%2Fbody%2Ftransclude%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bexports.TranscludeEdgeTypeSubscriber%3Dundefined%3Bvar%20_extends%3DObject.assign%7C%7Cfunction(e)%7Bfor(var%20r%3D1%3Br%3Carguments.length%3Br%2B%2B)%7Bvar%20t%3Darguments%5Br%5D%3Bfor(var%20n%20in%20t)%7Bif(Object.prototype.hasOwnProperty.call(t%2Cn))%7Be%5Bn%5D%3Dt%5Bn%5D%7D%7D%7Dreturn%20e%7D%3Bvar%20_createClass%3Dfunction()%7Bfunction%20e(e%2Cr)%7Bfor(var%20t%3D0%3Bt%3Cr.length%3Bt%2B%2B)%7Bvar%20n%3Dr%5Bt%5D%3Bn.enumerable%3Dn.enumerable%7C%7Cfalse%3Bn.configurable%3Dtrue%3Bif(%5C%5C%5C%22value%5C%5C%5C%22in%20n)n.writable%3Dtrue%3BObject.defineProperty(e%2Cn.key%2Cn)%7D%7Dreturn%20function(r%2Ct%2Cn)%7Bif(t)e(r.prototype%2Ct)%3Bif(n)e(r%2Cn)%3Breturn%20r%7D%7D()%3Bvar%20_AbstractRefEdgeTypeSubscriber%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FAbstractRefEdgeTypeSubscriber%5C%5C%5C%22)%3Bvar%20_AbstractRefEdgeTypeSubscriber2%3D_interopRequireDefault(_AbstractRefEdgeTypeSubscriber)%3Bfunction%20_interopRequireDefault(e)%7Breturn%20e%26%26e.__esModule%3Fe%3A%7Bdefault%3Ae%7D%7Dfunction%20_classCallCheck(e%2Cr)%7Bif(!(e%20instanceof%20r))%7Bthrow%20new%20TypeError(%5C%5C%5C%22Cannot%20call%20a%20class%20as%20a%20function%5C%5C%5C%22)%7D%7Dfunction%20_possibleConstructorReturn(e%2Cr)%7Bif(!e)%7Bthrow%20new%20ReferenceError(%5C%5C%5C%22this%20hasn't%20been%20initialised%20-%20super()%20hasn't%20been%20called%5C%5C%5C%22)%7Dreturn%20r%26%26(typeof%20r%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22%7C%7Ctypeof%20r%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22)%3Fr%3Ae%7Dfunction%20_inherits(e%2Cr)%7Bif(typeof%20r!%3D%3D%5C%5C%5C%22function%5C%5C%5C%22%26%26r!%3D%3Dnull)%7Bthrow%20new%20TypeError(%5C%5C%5C%22Super%20expression%20must%20either%20be%20null%20or%20a%20function%2C%20not%20%5C%5C%5C%22%2Btypeof%20r)%7De.prototype%3DObject.create(r%26%26r.prototype%2C%7Bconstructor%3A%7Bvalue%3Ae%2Cenumerable%3Afalse%2Cwritable%3Atrue%2Cconfigurable%3Atrue%7D%7D)%3Bif(r)Object.setPrototypeOf%3FObject.setPrototypeOf(e%2Cr)%3Ae.__proto__%3Dr%7D%2F*%20%40preserve%20TW-Guard%20*%2F%5C%5Cn%2F*%5C%5C%5C%5C%5C%5Cn%5C%5Cntitle%3A%20%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Fmodules%2Fedge-type-handler%2Fbody%2Ftransclude%5C%5Cntype%3A%20application%2Fjavascript%5C%5Cnmodule-type%3A%20tmap.edgetypehandler%5C%5Cn%5C%5Cn%40preserve%5C%5Cn%5C%5Cn%5C%5C%5C%5C*%2F%5C%5Cn%2F*%20%40preserve%20TW-Guard%20*%2Fvar%20TranscludeEdgeTypeSubscriber%3Dfunction(e)%7B_inherits(r%2Ce)%3Bfunction%20r(e)%7Bvar%20t%3Darguments.length%3E1%26%26arguments%5B1%5D!%3D%3Dundefined%3Farguments%5B1%5D%3A%7B%7D%3B_classCallCheck(this%2Cr)%3Breturn%20_possibleConstructorReturn(this%2C(r.__proto__%7C%7CObject.getPrototypeOf(r)).call(this%2Ce%2C_extends(%7Bpriority%3A20%2Cignore%3Atypeof%20%24tw.wiki.getTiddlerTranscludes!%3D%3D%5C%5C%5C%22function%5C%5C%5C%22%7D%2Ct)))%7D_createClass(r%2C%5B%7Bkey%3A%5C%5C%5C%22canHandle%5C%5C%5C%22%2Cvalue%3Afunction%20e(r)%7Breturn%20r.id%3D%3D%3D%5C%5C%5C%22tw-body%3Atransclude%5C%5C%5C%22%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getReferences%5C%5C%5C%22%2Cvalue%3Afunction%20e(r%2Ct%2Cn)%7Bif(n%26%26!n%5B%5C%5C%5C%22tw-body%3Atransclude%5C%5C%5C%22%5D)%7Breturn%7Dvar%20i%3D%24tw.wiki.getTiddlerTranscludes(r.fields.title)%3Bif(!i%7C%7C!i.length)%7Breturn%7Dreturn%7B%5C%5C%5C%22tw-body%3Atransclude%5C%5C%5C%22%3Ai%7D%7D%7D%5D)%3Breturn%20r%7D(_AbstractRefEdgeTypeSubscriber2.default)%3Bexports.TranscludeEdgeTypeSubscriber%3DTranscludeEdgeTypeSubscriber%3B%5C%5Cn%2F%2F%23%20sourceMappingURL%3D.%2Fmaps%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FedgeTypeSubscriber%2FrefEdgeTypeSubscriber%2FTranscludeEdgeTypeSubscriber.js.map%5C%5Cn%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22type%5C%22%3A%20%5C%22application%2Fjavascript%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22module-type%5C%22%3A%20%5C%22tmap.edgetypehandler%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FEdge%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FEdge%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_utils%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Futils%5C%5C%5C%22)%3Bvar%20_utils2%3D_interopRequireDefault(_utils)%3Bfunction%20_interopRequireDefault(e)%7Breturn%20e%26%26e.__esModule%3Fe%3A%7Bdefault%3Ae%7D%7Dfunction%20_classCallCheck(e%2Ct)%7Bif(!(e%20instanceof%20t))%7Bthrow%20new%20TypeError(%5C%5C%5C%22Cannot%20call%20a%20class%20as%20a%20function%5C%5C%5C%22)%7D%7D%2F*%20%40preserve%20TW-Guard%20*%2F%5C%5Cn%2F*%5C%5C%5C%5C%5C%5Cn%5C%5Cntitle%3A%20%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FEdge%5C%5Cntype%3A%20application%2Fjavascript%5C%5Cnmodule-type%3A%20library%5C%5Cn%5C%5Cn%40preserve%5C%5Cn%5C%5Cn%5C%5C%5C%5C*%2F%5C%5Cn%2F*%20%40preserve%20TW-Guard%20*%2Fvar%20Edge%3Dfunction%20e(t%2Ci%2Cs%2Cl)%7B_classCallCheck(this%2Ce)%3Bthis.from%3Dt%3Bthis.to%3Di%3Bthis.type%3Ds%3Bthis.id%3Dl%7C%7C_utils2.default.genUUID()%7D%3Bexports.default%3DEdge%3B%5C%5Cn%2F%2F%23%20sourceMappingURL%3D.%2Fmaps%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Fgraph%2FEdge.js.map%5C%5Cn%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22type%5C%22%3A%20%5C%22application%2Fjavascript%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22module-type%5C%22%3A%20%5C%22library%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FEdgeType%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FEdgeType%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_typeof%3Dtypeof%20Symbol%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22%26%26typeof%20Symbol.iterator%3D%3D%3D%5C%5C%5C%22symbol%5C%5C%5C%22%3Ffunction(e)%7Breturn%20typeof%20e%7D%3Afunction(e)%7Breturn%20e%26%26typeof%20Symbol%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22%26%26e.constructor%3D%3D%3DSymbol%26%26e!%3D%3DSymbol.prototype%3F%5C%5C%5C%22symbol%5C%5C%5C%22%3Atypeof%20e%7D%3Bvar%20_extends%3DObject.assign%7C%7Cfunction(e)%7Bfor(var%20t%3D1%3Bt%3Carguments.length%3Bt%2B%2B)%7Bvar%20r%3Darguments%5Bt%5D%3Bfor(var%20n%20in%20r)%7Bif(Object.prototype.hasOwnProperty.call(r%2Cn))%7Be%5Bn%5D%3Dr%5Bn%5D%7D%7D%7Dreturn%20e%7D%3Bvar%20_createClass%3Dfunction()%7Bfunction%20e(e%2Ct)%7Bfor(var%20r%3D0%3Br%3Ct.length%3Br%2B%2B)%7Bvar%20n%3Dt%5Br%5D%3Bn.enumerable%3Dn.enumerable%7C%7Cfalse%3Bn.configurable%3Dtrue%3Bif(%5C%5C%5C%22value%5C%5C%5C%22in%20n)n.writable%3Dtrue%3BObject.defineProperty(e%2Cn.key%2Cn)%7D%7Dreturn%20function(t%2Cr%2Cn)%7Bif(r)e(t.prototype%2Cr)%3Bif(n)e(t%2Cn)%3Breturn%20t%7D%7D()%3Bvar%20_MapElementType2%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FMapElementType%5C%5C%5C%22)%3Bvar%20_MapElementType3%3D_interopRequireDefault(_MapElementType2)%3Bvar%20_utils%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Futils%5C%5C%5C%22)%3Bvar%20_utils2%3D_interopRequireDefault(_utils)%3Bvar%20_environment%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Flib%2Fenvironment%5C%5C%5C%22)%3Bvar%20env%3D_interopRequireWildcard(_environment)%3Bfunction%20_interopRequireWildcard(e)%7Bif(e%26%26e.__esModule)%7Breturn%20e%7Delse%7Bvar%20t%3D%7B%7D%3Bif(e!%3Dnull)%7Bfor(var%20r%20in%20e)%7Bif(Object.prototype.hasOwnProperty.call(e%2Cr))t%5Br%5D%3De%5Br%5D%7D%7Dt.default%3De%3Breturn%20t%7D%7Dfunction%20_interopRequireDefault(e)%7Breturn%20e%26%26e.__esModule%3Fe%3A%7Bdefault%3Ae%7D%7Dfunction%20_classCallCheck(e%2Ct)%7Bif(!(e%20instanceof%20t))%7Bthrow%20new%20TypeError(%5C%5C%5C%22Cannot%20call%20a%20class%20as%20a%20function%5C%5C%5C%22)%7D%7Dfunction%20_possibleConstructorReturn(e%2Ct)%7Bif(!e)%7Bthrow%20new%20ReferenceError(%5C%5C%5C%22this%20hasn't%20been%20initialised%20-%20super()%20hasn't%20been%20called%5C%5C%5C%22)%7Dreturn%20t%26%26(typeof%20t%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22%7C%7Ctypeof%20t%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22)%3Ft%3Ae%7Dfunction%20_inherits(e%2Ct)%7Bif(typeof%20t!%3D%3D%5C%5C%5C%22function%5C%5C%5C%22%26%26t!%3D%3Dnull)%7Bthrow%20new%20TypeError(%5C%5C%5C%22Super%20expression%20must%20either%20be%20null%20or%20a%20function%2C%20not%20%5C%5C%5C%22%2Btypeof%20t)%7De.prototype%3DObject.create(t%26%26t.prototype%2C%7Bconstructor%3A%7Bvalue%3Ae%2Cenumerable%3Afalse%2Cwritable%3Atrue%2Cconfigurable%3Atrue%7D%7D)%3Bif(t)Object.setPrototypeOf%3FObject.setPrototypeOf(e%2Ct)%3Ae.__proto__%3Dt%7D%2F*%20%40preserve%20TW-Guard%20*%2F%5C%5Cn%2F*%5C%5C%5C%5C%5C%5Cn%5C%5Cntitle%3A%20%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FEdgeType%5C%5Cntype%3A%20application%2Fjavascript%5C%5Cnmodule-type%3A%20library%5C%5Cn%5C%5Cn%40preserve%5C%5Cn%5C%5Cn%5C%5C%5C%5C*%2F%5C%5Cn%2F*%20%40preserve%20TW-Guard%20*%2Fvar%20EdgeType%3Dfunction(e)%7B_inherits(t%2Ce)%3Bfunction%20t(e%2Cr)%7B_classCallCheck(this%2Ct)%3Bvar%20n%3Dt.getIdParts(e)%2Co%3Dn.marker%2Ca%3Dn.namespace%2Ci%3Dn.name%3Be%3Dt.getId(o%2Ca%2Ci)%3Bvar%20l%3D_possibleConstructorReturn(this%2C(t.__proto__%7C%7CObject.getPrototypeOf(t)).call(this%2Ce%2Cenv.path.edgeTypes%2Ct.fieldMeta%2Cr))%3Bl.id%3De%3Bl.marker%3Do%3Bl.name%3Di%3Bl.namespace%3Da%3Bvar%20u%3D(l.style%7C%7C%7B%7D).arrows%3Bif(u)%7Bl.invertedArrow%3DisArrowEnabled(u%2C%5C%5C%5C%22from%5C%5C%5C%22)%3Bl.toArrow%3DisArrowEnabled(u%2C%5C%5C%5C%22to%5C%5C%5C%22)%7C%7CisArrowEnabled(u%2C%5C%5C%5C%22middle%5C%5C%5C%22)%3Bl.biArrow%3Dl.invertedArrow%3D%3D%3Dl.toArrow%3Bif(l.biArrow)%7Bl.toArrow%3Dtrue%3Bl.invertedArrow%3Dtrue%7D%7Delse%7Bl.toArrow%3Dtrue%7DObject.freeze(l)%3Breturn%20l%7D_createClass(t%2C%5B%7Bkey%3A%5C%5C%5C%22getLabel%5C%5C%5C%22%2Cvalue%3Afunction%20e()%7Breturn%20this.label%7C%7Cthis.name%7D%7D%5D%2C%5B%7Bkey%3A%5C%5C%5C%22getIdParts%5C%5C%5C%22%2Cvalue%3Afunction%20e()%7Bvar%20t%3Darguments.length%3E0%26%26arguments%5B0%5D!%3D%3Dundefined%3Farguments%5B0%5D%3A%5C%5C%5C%22%5C%5C%5C%22%3Bt%3D_utils2.default.getWithoutPrefix(t%2Cenv.path.edgeTypes%2B%5C%5C%5C%22%2F%5C%5C%5C%22)%3Bvar%20r%3Dt.match(edgeTypeRegex)%7C%7C%5B%5D%3Breturn%7Bmarker%3Ar%5B1%5D%7C%7C%5C%5C%5C%22%5C%5C%5C%22%2Cnamespace%3Ar%5B3%5D%26%26r%5B2%5D%7C%7C%5C%5C%5C%22%5C%5C%5C%22%2Cname%3Ar%5B3%5D%7C%7Cr%5B2%5D%7C%7C%5C%5C%5C%22%5C%5C%5C%22%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getId%5C%5C%5C%22%2Cvalue%3Afunction%20e()%7Bvar%20t%3Darguments.length%3E0%26%26arguments%5B0%5D!%3D%3Dundefined%3Farguments%5B0%5D%3A%5C%5C%5C%22%5C%5C%5C%22%3Bvar%20r%3Darguments.length%3E1%26%26arguments%5B1%5D!%3D%3Dundefined%3Farguments%5B1%5D%3A%5C%5C%5C%22%5C%5C%5C%22%3Bvar%20n%3Darguments%5B2%5D%3Breturn%20n%3Ft%2B(r%26%26r%2B%5C%5C%5C%22%3A%5C%5C%5C%22)%2Bn%3A%5C%5C%5C%22tmap%3Aunknown%5C%5C%5C%22%7D%7D%5D)%3Breturn%20t%7D(_MapElementType3.default)%3BEdgeType.getInstance%3Dfunction(e)%7Breturn%20e%20instanceof%20EdgeType%3Fe%3Anew%20EdgeType(e)%7D%3BEdgeType.fieldMeta%3D_extends(%7B%7D%2C_MapElementType3.default.fieldMeta%2C%7Blabel%3A%7B%7D%2C%5C%5C%5C%22show-label%5C%5C%5C%22%3A%7B%7D%7D)%3Bvar%20isArrowEnabled%3Dfunction%20e(t%2Cr)%7Bvar%20n%3Dt%5Br%5D%3Bif(n%3D%3Dnull%26%26r%3D%3D%3D%5C%5C%5C%22to%5C%5C%5C%22)%7Breturn%20true%7Dreturn(typeof%20n%3D%3D%3D%5C%5C%5C%22undefined%5C%5C%5C%22%3F%5C%5C%5C%22undefined%5C%5C%5C%22%3A_typeof(n))%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22%3Fn.enabled!%3D%3Dfalse%3An%3D%3D%3Dtrue%7D%3Bvar%20edgeTypeRegex%3Dnew%20RegExp(%5C%5C%5C%22%5E(_%3F)(%5B%5E%3A_%5D%5B%5E%3A%5D*)%3A%3F(%5B%5E%3A%5D*)%5C%5C%5C%22)%3Bexports.default%3DEdgeType%3B%5C%5Cn%2F%2F%23%20sourceMappingURL%3D.%2Fmaps%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Fgraph%2FEdgeType.js.map%5C%5Cn%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22type%5C%22%3A%20%5C%22application%2Fjavascript%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22module-type%5C%22%3A%20%5C%22library%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FMapElementType%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FMapElementType%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_typeof%3Dtypeof%20Symbol%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22%26%26typeof%20Symbol.iterator%3D%3D%3D%5C%5C%5C%22symbol%5C%5C%5C%22%3Ffunction(t)%7Breturn%20typeof%20t%7D%3Afunction(t)%7Breturn%20t%26%26typeof%20Symbol%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22%26%26t.constructor%3D%3D%3DSymbol%26%26t!%3D%3DSymbol.prototype%3F%5C%5C%5C%22symbol%5C%5C%5C%22%3Atypeof%20t%7D%3Bvar%20_createClass%3Dfunction()%7Bfunction%20t(t%2Ce)%7Bfor(var%20i%3D0%3Bi%3Ce.length%3Bi%2B%2B)%7Bvar%20l%3De%5Bi%5D%3Bl.enumerable%3Dl.enumerable%7C%7Cfalse%3Bl.configurable%3Dtrue%3Bif(%5C%5C%5C%22value%5C%5C%5C%22in%20l)l.writable%3Dtrue%3BObject.defineProperty(t%2Cl.key%2Cl)%7D%7Dreturn%20function(e%2Ci%2Cl)%7Bif(i)t(e.prototype%2Ci)%3Bif(l)t(e%2Cl)%3Breturn%20e%7D%7D()%3B%2F*%20%40preserve%20TW-Guard%20*%2F%5C%5Cn%2F*%5C%5C%5C%5C%5C%5Cn%5C%5Cntitle%3A%20%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FMapElementType%5C%5Cntype%3A%20application%2Fjavascript%5C%5Cnmodule-type%3A%20library%5C%5Cn%5C%5Cn%40preserve%5C%5Cn%5C%5Cn%5C%5C%5C%5C*%2F%5C%5Cn%2F*%20%40preserve%20TW-Guard%20*%2Fvar%20_utils%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Futils%5C%5C%5C%22)%3Bvar%20_utils2%3D_interopRequireDefault(_utils)%3Bfunction%20_interopRequireDefault(t)%7Breturn%20t%26%26t.__esModule%3Ft%3A%7Bdefault%3At%7D%7Dfunction%20_classCallCheck(t%2Ce)%7Bif(!(t%20instanceof%20e))%7Bthrow%20new%20TypeError(%5C%5C%5C%22Cannot%20call%20a%20class%20as%20a%20function%5C%5C%5C%22)%7D%7Dvar%20MapElementType%3Dfunction()%7Bfunction%20t(e%2Ci%2Cl%2Cs)%7B_classCallCheck(this%2Ct)%3Bthis.id%3De%3Bthis.root%3Di%3Bthis._fieldMeta%3Dl%3Bthis.fullPath%3Dthis.root%2B%5C%5C%5C%22%2F%5C%5C%5C%22%2Bthis.id%3Bthis.isShipped%3D%24tw.wiki.getSubTiddler(%24tm.path.pluginRoot%2Cthis.fullPath)%3Bthis._load(s%7C%7Cthis.fullPath)%7D_createClass(t%2C%5B%7Bkey%3A%5C%5C%5C%22_load%5C%5C%5C%22%2Cvalue%3Afunction%20t(e)%7Bif(!e)%7Breturn%7Dif(typeof%20e%3D%3D%3D%5C%5C%5C%22string%5C%5C%5C%22)%7Bvar%20i%3D_utils2.default.startsWith(e%2Cthis.root)%3Bvar%20l%3Di%3Fe%3Athis.root%2B%5C%5C%5C%22%2F%5C%5C%5C%22%2Be%3Bthis._loadFromTiddler(l)%7Delse%20if(e%20instanceof%20%24tw.Tiddler)%7Bthis._loadFromTiddler(e)%7Delse%20if((typeof%20e%3D%3D%3D%5C%5C%5C%22undefined%5C%5C%5C%22%3F%5C%5C%5C%22undefined%5C%5C%5C%22%3A_typeof(e))%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22)%7Bfor(var%20s%20in%20this._fieldMeta)%7Bthis%5Bs%5D%3De%5Bs%5D%7D%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_loadFromTiddler%5C%5C%5C%22%2Cvalue%3Afunction%20t(e)%7Bvar%20i%3D_utils2.default.getTiddler(e)%3Bif(!i)%7Breturn%7Dvar%20l%3D%24tw.wiki.getSubTiddler(%24tm.path.pluginRoot%2Cthis.fullPath)%7C%7C%7B%7D%3Bvar%20s%3D%24tw.utils.extend(%7B%7D%2Cl.fields%2Ci.fields)%3Bfor(var%20r%20in%20this._fieldMeta)%7Bvar%20a%3Dthis._fieldMeta%5Br%5D.parse%3Bvar%20f%3Ds%5Br%5D%3Bthis%5Br%5D%3Da%3Fa.call(this%2Cf)%3Af%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22exists%5C%5C%5C%22%2Cvalue%3Afunction%20t()%7Breturn%20_utils2.default.tiddlerExists(this.fullPath)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22setStyle%5C%5C%5C%22%2Cvalue%3Afunction%20t(e%2Ci)%7Bif(typeof%20e%3D%3D%3D%5C%5C%5C%22string%5C%5C%5C%22)%7Be%3D_utils2.default.parseJSON(e)%7Dif((typeof%20e%3D%3D%3D%5C%5C%5C%22undefined%5C%5C%5C%22%3F%5C%5C%5C%22undefined%5C%5C%5C%22%3A_typeof(e))%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22)%7Bif(i)%7B_utils2.default.merge(this.style%2Ce)%7Delse%7Bthis.style%3De%7D%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22save%5C%5C%5C%22%2Cvalue%3Afunction%20t(e%2Ci)%7Bif(!e)%7Be%3Dthis.fullPath%7Delse%20if(typeof%20e!%3D%3D%5C%5C%5C%22string%5C%5C%5C%22)%7Breturn%7Dvar%20l%3D%7Btitle%3Ae%2Ctext%3A%5C%5C%5C%22%5C%5C%5C%22%7D%3Bif(!_utils2.default.startsWith(e%2Cthis.root))%7Bl.id%3Dthis.id%7Dfor(var%20s%20in%20this._fieldMeta)%7Bvar%20r%3Dthis._fieldMeta%5Bs%5D.stringify%3Bl%5Bs%5D%3Dr%3Fr.call(this%2Cthis%5Bs%5D)%3Athis%5Bs%5D%7Dif(!this.exists())%7BObject.assign(l%2C%24tw.wiki.getCreationFields())%7Dif(i!%3D%3Dtrue)%7BObject.assign(l%2C%24tw.wiki.getModificationFields())%7D%24tw.wiki.addTiddler(new%20%24tw.Tiddler(l))%7D%7D%5D)%3Breturn%20t%7D()%3BMapElementType.fieldMeta%3D%7Bdescription%3A%7B%7D%2Cstyle%3A%7Bparse%3A_utils2.default.parseJSON%2Cstringify%3AJSON.stringify%7D%2Cmodified%3A%7B%7D%2Ccreated%3A%7B%7D%7D%3Bexports.default%3DMapElementType%3B%5C%5Cn%2F%2F%23%20sourceMappingURL%3D.%2Fmaps%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Fgraph%2FMapElementType.js.map%5C%5Cn%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22type%5C%22%3A%20%5C%22application%2Fjavascript%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22module-type%5C%22%3A%20%5C%22library%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FNodeType%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FNodeType%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_extends%3DObject.assign%7C%7Cfunction(e)%7Bfor(var%20t%3D1%3Bt%3Carguments.length%3Bt%2B%2B)%7Bvar%20r%3Darguments%5Bt%5D%3Bfor(var%20n%20in%20r)%7Bif(Object.prototype.hasOwnProperty.call(r%2Cn))%7Be%5Bn%5D%3Dr%5Bn%5D%7D%7D%7Dreturn%20e%7D%3Bvar%20_createClass%3Dfunction()%7Bfunction%20e(e%2Ct)%7Bfor(var%20r%3D0%3Br%3Ct.length%3Br%2B%2B)%7Bvar%20n%3Dt%5Br%5D%3Bn.enumerable%3Dn.enumerable%7C%7Cfalse%3Bn.configurable%3Dtrue%3Bif(%5C%5C%5C%22value%5C%5C%5C%22in%20n)n.writable%3Dtrue%3BObject.defineProperty(e%2Cn.key%2Cn)%7D%7Dreturn%20function(t%2Cr%2Cn)%7Bif(r)e(t.prototype%2Cr)%3Bif(n)e(t%2Cn)%3Breturn%20t%7D%7D()%3Bvar%20_MapElementType2%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FMapElementType%5C%5C%5C%22)%3Bvar%20_MapElementType3%3D_interopRequireDefault(_MapElementType2)%3Bvar%20_utils%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Futils%5C%5C%5C%22)%3Bvar%20_utils2%3D_interopRequireDefault(_utils)%3Bfunction%20_interopRequireDefault(e)%7Breturn%20e%26%26e.__esModule%3Fe%3A%7Bdefault%3Ae%7D%7Dfunction%20_classCallCheck(e%2Ct)%7Bif(!(e%20instanceof%20t))%7Bthrow%20new%20TypeError(%5C%5C%5C%22Cannot%20call%20a%20class%20as%20a%20function%5C%5C%5C%22)%7D%7Dfunction%20_possibleConstructorReturn(e%2Ct)%7Bif(!e)%7Bthrow%20new%20ReferenceError(%5C%5C%5C%22this%20hasn't%20been%20initialised%20-%20super()%20hasn't%20been%20called%5C%5C%5C%22)%7Dreturn%20t%26%26(typeof%20t%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22%7C%7Ctypeof%20t%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22)%3Ft%3Ae%7Dfunction%20_inherits(e%2Ct)%7Bif(typeof%20t!%3D%3D%5C%5C%5C%22function%5C%5C%5C%22%26%26t!%3D%3Dnull)%7Bthrow%20new%20TypeError(%5C%5C%5C%22Super%20expression%20must%20either%20be%20null%20or%20a%20function%2C%20not%20%5C%5C%5C%22%2Btypeof%20t)%7De.prototype%3DObject.create(t%26%26t.prototype%2C%7Bconstructor%3A%7Bvalue%3Ae%2Cenumerable%3Afalse%2Cwritable%3Atrue%2Cconfigurable%3Atrue%7D%7D)%3Bif(t)Object.setPrototypeOf%3FObject.setPrototypeOf(e%2Ct)%3Ae.__proto__%3Dt%7D%2F*%20%40preserve%20TW-Guard%20*%2F%5C%5Cn%2F*%5C%5C%5C%5C%5C%5Cn%5C%5Cntitle%3A%20%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FNodeType%5C%5Cntype%3A%20application%2Fjavascript%5C%5Cnmodule-type%3A%20library%5C%5Cn%5C%5Cn%40preserve%5C%5Cn%5C%5Cn%5C%5C%5C%5C*%2F%5C%5Cn%2F*%20%40preserve%20TW-Guard%20*%2Fvar%20NodeType%3Dfunction(e)%7B_inherits(t%2Ce)%3Bfunction%20t(e%2Cr)%7B_classCallCheck(this%2Ct)%3Be%3Dtypeof%20e%3D%3D%3D%5C%5C%5C%22string%5C%5C%5C%22%3F_utils2.default.getWithoutPrefix(e%2C%24tm.path.nodeTypes%2B%5C%5C%5C%22%2F%5C%5C%5C%22)%3A%5C%5C%5C%22tmap%3Aunknown%5C%5C%5C%22%3Bvar%20n%3D_possibleConstructorReturn(this%2C(t.__proto__%7C%7CObject.getPrototypeOf(t)).call(this%2Ce%2C%24tm.path.nodeTypes%2Ct.fieldMeta%2Cr))%3BObject.freeze(n)%3Breturn%20n%7D_createClass(t%2C%5B%7Bkey%3A%5C%5C%5C%22getInheritors%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Breturn%20this.scope%3F_utils2.default.getMatches(this.scope%2Ct%7C%7C%24tw.wiki.allTitles())%3A%5B%5D%7D%7D%5D)%3Breturn%20t%7D(_MapElementType3.default)%3BNodeType.getInstance%3Dfunction(e)%7Breturn%20e%20instanceof%20NodeType%3Fe%3Anew%20NodeType(e)%7D%3BNodeType.fieldMeta%3D_extends(%7B%7D%2C_MapElementType3.default.fieldMeta%2C%7Bview%3A%7B%7D%2Cpriority%3A%7Bparse%3Afunction%20e(t)%7Breturn%20isNaN(t)%3F1%3AparseInt(t)%7D%2Cstringify%3Afunction%20e(t)%7Breturn%20_utils2.default.isInteger(t)%3Ft.toString()%3A%5C%5C%5C%221%5C%5C%5C%22%7D%7D%2Cscope%3A%7Bstringify%3A_utils2.default.getWithoutNewLines%7D%2C%5C%5C%5C%22fa-icon%5C%5C%5C%22%3A%7B%7D%2C%5C%5C%5C%22tw-icon%5C%5C%5C%22%3A%7B%7D%7D)%3Bexports.default%3DNodeType%3B%5C%5Cn%2F%2F%23%20sourceMappingURL%3D.%2Fmaps%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Fgraph%2FNodeType.js.map%5C%5Cn%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22type%5C%22%3A%20%5C%22application%2Fjavascript%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22module-type%5C%22%3A%20%5C%22library%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FViewAbstraction%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FViewAbstraction%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_extends%3DObject.assign%7C%7Cfunction(e)%7Bfor(var%20t%3D1%3Bt%3Carguments.length%3Bt%2B%2B)%7Bvar%20i%3Darguments%5Bt%5D%3Bfor(var%20r%20in%20i)%7Bif(Object.prototype.hasOwnProperty.call(i%2Cr))%7Be%5Br%5D%3Di%5Br%5D%7D%7D%7Dreturn%20e%7D%3Bvar%20_typeof%3Dtypeof%20Symbol%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22%26%26typeof%20Symbol.iterator%3D%3D%3D%5C%5C%5C%22symbol%5C%5C%5C%22%3Ffunction(e)%7Breturn%20typeof%20e%7D%3Afunction(e)%7Breturn%20e%26%26typeof%20Symbol%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22%26%26e.constructor%3D%3D%3DSymbol%26%26e!%3D%3DSymbol.prototype%3F%5C%5C%5C%22symbol%5C%5C%5C%22%3Atypeof%20e%7D%3Bvar%20_createClass%3Dfunction()%7Bfunction%20e(e%2Ct)%7Bfor(var%20i%3D0%3Bi%3Ct.length%3Bi%2B%2B)%7Bvar%20r%3Dt%5Bi%5D%3Br.enumerable%3Dr.enumerable%7C%7Cfalse%3Br.configurable%3Dtrue%3Bif(%5C%5C%5C%22value%5C%5C%5C%22in%20r)r.writable%3Dtrue%3BObject.defineProperty(e%2Cr.key%2Cr)%7D%7Dreturn%20function(t%2Ci%2Cr)%7Bif(i)e(t.prototype%2Ci)%3Bif(r)e(t%2Cr)%3Breturn%20t%7D%7D()%3B%2F*%20%40preserve%20TW-Guard%20*%2F%5C%5Cn%2F*%5C%5C%5C%5C%5C%5Cn%5C%5Cntitle%3A%20%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FViewAbstraction%5C%5Cntype%3A%20application%2Fjavascript%5C%5Cnmodule-type%3A%20library%5C%5Cn%5C%5Cn%40preserve%5C%5Cn%5C%5Cn%5C%5C%5C%5C*%2F%5C%5Cn%2F*%20%40preserve%20TW-Guard%20*%2Fvar%20_EdgeType%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FEdgeType%5C%5C%5C%22)%3Bvar%20_EdgeType2%3D_interopRequireDefault(_EdgeType)%3Bvar%20_utils%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Futils%5C%5C%5C%22)%3Bvar%20_utils2%3D_interopRequireDefault(_utils)%3Bvar%20_environment%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Flib%2Fenvironment%5C%5C%5C%22)%3Bvar%20env%3D_interopRequireWildcard(_environment)%3Bvar%20_exception%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Fexception%5C%5C%5C%22)%3Bfunction%20_interopRequireWildcard(e)%7Bif(e%26%26e.__esModule)%7Breturn%20e%7Delse%7Bvar%20t%3D%7B%7D%3Bif(e!%3Dnull)%7Bfor(var%20i%20in%20e)%7Bif(Object.prototype.hasOwnProperty.call(e%2Ci))t%5Bi%5D%3De%5Bi%5D%7D%7Dt.default%3De%3Breturn%20t%7D%7Dfunction%20_interopRequireDefault(e)%7Breturn%20e%26%26e.__esModule%3Fe%3A%7Bdefault%3Ae%7D%7Dfunction%20_classCallCheck(e%2Ct)%7Bif(!(e%20instanceof%20t))%7Bthrow%20new%20TypeError(%5C%5C%5C%22Cannot%20call%20a%20class%20as%20a%20function%5C%5C%5C%22)%7D%7Dvar%20ViewAbstraction%3Dfunction()%7Bfunction%20e(t)%7Bvar%20i%3Darguments.length%3E1%26%26arguments%5B1%5D!%3D%3Dundefined%3Farguments%5B1%5D%3A%7B%7D%3B_classCallCheck(this%2Ce)%3Bif(t%20instanceof%20e)%7Breturn%20t%7Dthis._registerPaths(t)%3Bif(i.isCreate)%7Bif(!this.configTRef)%7Bvar%20r%3D_utils2.default.getRandomLabel(%7Bplural%3Atrue%7D)%3Bthis.configTRef%3D%24tw.wiki.generateNewTitle(%24tm.path.views%2B%5C%5C%5C%22%2F%5C%5C%5C%22%2Br)%7Dthis._createView(i)%7Delse%20if(!e.exists(this.getRoot()))%7Bthrow%20new%20ResourceNotFoundException(%5C%5C%5C%22ViewAbstraction%5C%5C%5C%22%2Ct)%7D%7D_createClass(e%2C%5B%7Bkey%3A%5C%5C%5C%22isLocked%5C%5C%5C%22%2Cvalue%3Afunction%20e()%7Breturn%20%24tw.wiki.isShadowTiddler(this.configTRef)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22update%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Bvar%20i%3Dt.changedTiddlers%3Bif(t%5Benv.path.edgeTypes%5D%7C%7C_utils2.default.hasKeyWithPrefix(i%2Cthis.getRoot()))%7Bthis._clearCaches()%3Breturn%20true%7Dreturn%20false%7D%7D%2C%7Bkey%3A%5C%5C%5C%22addPlaceholder%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7B_utils2.default.cp(_utils2.default.getTiddlerRef(t)%2Cthis.snapshotTRef%2Ctrue)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22exists%5C%5C%5C%22%2Cvalue%3Afunction%20t()%7Breturn%20e.exists(this)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getRoot%5C%5C%5C%22%2Cvalue%3Afunction%20e()%7Breturn%20this.configTRef%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getCreationDate%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Bvar%20i%3D%24tw.wiki.getTiddler(this.configTRef).fields%5B%5C%5C%5C%22created%5C%5C%5C%22%5D%3Bif(t)%7Breturn%20i%20instanceof%20Date%3F%24tw.utils.formatDateString(i%2C%5C%5C%5C%22DDth%20MMM%20YYYY%5C%5C%5C%22)%3A%5C%5C%5C%22%5C%5C%5C%22%7Dreturn%20i%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getLabel%5C%5C%5C%22%2Cvalue%3Afunction%20e()%7Breturn%20_utils2.default.getBasename(this.configTRef)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22destroy%5C%5C%5C%22%2Cvalue%3Afunction%20e()%7B_utils2.default.deleteTiddlers(_utils2.default.getMatches(%5C%5C%5C%22%5Bprefix%5B%5C%5C%5C%22%2Bthis.configTRef%2B%5C%5C%5C%22%5D%5D%5C%5C%5C%22))%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getOccurrences%5C%5C%5C%22%2Cvalue%3Afunction%20e()%7Bvar%20t%3D%5C%5C%5C%22%5Bregexp%3Atext%5B%3C%5C%5C%5C%5C%5C%5C%5C%5C%24(tiddlymap%7Ctmap).*%3Fview%3D.%5C%5C%5C%22%2Bthis.getLabel()%2B%5C%5C%5C%22..*%3F%3E%5D%5D%5C%5C%5C%22%3Breturn%20_utils2.default.getMatches(t)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22rename%5C%5C%5C%22%2Cvalue%3Afunction%20t(i)%7Bif(typeof%20i!%3D%3D%5C%5C%5C%22string%5C%5C%5C%22)%7Breturn%20false%7Dif(_utils2.default.inArray(%5C%5C%5C%22%2F%5C%5C%5C%22%2Ci))%7B%24tm.notify('A%20view%20name%20must%20not%20contain%20any%20%5C%5C%5C%22%2F%5C%5C%5C%22')%3Breturn%20false%7Dvar%20r%3Dthis.getLabel()%3Bvar%20a%3Denv.path.views%2B%5C%5C%5C%22%2F%5C%5C%5C%22%2Bi%3Bvar%20n%3Dthis.getRoot()%3B_utils2.default.mv(n%2Ca%2Ctrue)%3Bif(%24tm.config.sys.defaultView%3D%3D%3Dr)%7B_utils2.default.setEntry(%24tm.ref.sysUserConf%2C%5C%5C%5C%22defaultView%5C%5C%5C%22%2Ci)%7Dif(%24tm.config.sys.liveTab.fallbackView%3D%3D%3Dr)%7B_utils2.default.setEntry(%24tm.ref.sysUserConf%2C%5C%5C%5C%22liveTab.fallbackView%5C%5C%5C%22%2Ci)%7D%24tw.wiki.each(function(t%2Ca)%7Bif(t.fields%5B%5C%5C%5C%22tmap.open-view%5C%5C%5C%22%5D%3D%3D%3Dr)%7B_utils2.default.setField(a%2C%5C%5C%5C%22tmap.open-view%5C%5C%5C%22%2Ci)%3Breturn%7Dif(e.exists(a))%7Bvar%20n%3Dnew%20e(a)%3Bvar%20l%3Dn.getNodeData()%3Bfor(var%20s%20in%20l)%7Bif(l%5Bs%5D%5B%5C%5C%5C%22open-view%5C%5C%5C%22%5D%3D%3D%3Dr)%7Bl%5Bs%5D%5B%5C%5C%5C%22open-view%5C%5C%5C%22%5D%3Di%7D%7Dn.saveNodeData(l)%7D%7D)%3Bthis._clearCaches()%3Bthis._registerPaths(i)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22isEnabled%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Breturn%20_utils2.default.isTrue(this.getConfig(t)%2Cfalse)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getConfig%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Bvar%20i%3Dthis%3Bvar%20r%3D%24tw.wiki.getCacheForTiddler(this.configTRef%2C%5C%5C%5C%22tmap-config%5C%5C%5C%22%2Cfunction()%7Bvar%20e%3D_utils2.default.getTiddler(i.configTRef).fields%3Breturn%20_utils2.default.getPropertiesByPrefix(e%2C%5C%5C%5C%22config.%5C%5C%5C%22)%7D)%3Bvar%20a%3Dt%26%26_utils2.default.startsWith(t%2C%5C%5C%5C%22config.%5C%5C%5C%22)%3Ft%3A%5C%5C%5C%22config.%5C%5C%5C%22%2Bt%3Breturn%20t%3Fr%5Ba%5D%3Ar%7D%7D%2C%7Bkey%3A%5C%5C%5C%22setConfig%5C%5C%5C%22%2Cvalue%3Afunction%20e()%7Bfor(var%20t%3Darguments.length%2Ci%3DArray(t)%2Cr%3D0%3Br%3Ct%3Br%2B%2B)%7Bi%5Br%5D%3Darguments%5Br%5D%7Dif(i%5B0%5D%3D%3Dnull)%7Breturn%7Dif(i.length%3D%3D%3D1%26%26_typeof(i%5B0%5D)%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22)%7Bfor(var%20a%20in%20i%5B0%5D)%7Bthis.setConfig(a%2Ci%5B0%5D%5Ba%5D)%7D%7Delse%20if(i.length%3D%3D%3D2%26%26typeof%20i%5B0%5D%3D%3D%3D%5C%5C%5C%22string%5C%5C%5C%22)%7Bvar%20n%3D_utils2.default.getWithoutPrefix(i%5B0%5D%2C%5C%5C%5C%22config.%5C%5C%5C%22)%3Bvar%20l%3Di%5B1%5D%3Bif(l%3D%3D%3Dundefined)%7Breturn%7Dvar%20s%3Dthis.getConfig()%3Bif(l%3D%3D%3Dnull)%7B%24tm.logger(%5C%5C%5C%22debug%5C%5C%5C%22%2C%5C%5C%5C%22Removing%20config%5C%5C%5C%22%2Cn)%3Bdelete%20s%5B%5C%5C%5C%22config.%5C%5C%5C%22%2Bn%5D%7Delse%7Bif(n%3D%3D%3D%5C%5C%5C%22edge_type_namespace%5C%5C%5C%22)%7Bvar%20o%3Dl.match(%2F%5B%5E%3A%5D%2B%2F)%3Bl%3Do%3Fo%5B0%5D%3A%5C%5C%5C%22%5C%5C%5C%22%7D%7D%24tm.logger(%5C%5C%5C%22log%5C%5C%5C%22%2C%5C%5C%5C%22Setting%20config%5C%5C%5C%22%2Cn%2Cl)%3Bs%5B%5C%5C%5C%22config.%5C%5C%5C%22%2Bn%5D%3Dl%3B%24tw.wiki.addTiddler(new%20%24tw.Tiddler(_utils2.default.getTiddler(this.configTRef)%2Cs))%7Delse%7Bthrow%20new(Function.prototype.bind.apply(_exception.InvalidArgumentException%2C%5Bnull%5D.concat(i)))%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22isNodeIncludedById%5C%5C%5C%22%2Cvalue%3Afunction%20t(i)%7Bvar%20r%3D%24tw.utils.escapeRegExp(e._getNodeIdFilterPart(i))%3Breturn%20this.getNodeFilter(%5C%5C%5C%22raw%5C%5C%5C%22).match(r)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22setNodeFilter%5C%5C%5C%22%2Cvalue%3Afunction%20e(t%2Ci)%7Bt%3Dt.replace(%2F%5B%5C%5C%5C%5Cn%5C%5C%5C%5Cr%5D%2Fg%2C%5C%5C%5C%22%20%5C%5C%5C%22)%3Bif(this.getNodeFilter(%5C%5C%5C%22raw%5C%5C%5C%22)%3D%3D%3Dt)%7Breturn%7D_utils2.default.setField(this.nodeFilterTRef%2C%5C%5C%5C%22filter%5C%5C%5C%22%2Ct)%3B%24tm.logger(%5C%5C%5C%22debug%5C%5C%5C%22%2C%5C%5C%5C%22Node%20filter%20set%20to%5C%5C%5C%22%2Ct)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22setEdgeTypeFilter%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Bt%3Dt.replace(%2F%5B%5C%5C%5C%5Cn%5C%5C%5C%5Cr%5D%2Fg%2C%5C%5C%5C%22%20%5C%5C%5C%22)%3Bif(this.getEdgeTypeFilter(%5C%5C%5C%22raw%5C%5C%5C%22)%3D%3D%3Dt)%7Breturn%7D_utils2.default.setField(this.edgeTypeFilterTRef%2C%5C%5C%5C%22filter%5C%5C%5C%22%2Ct)%3B%24tm.logger(%5C%5C%5C%22debug%5C%5C%5C%22%2C%5C%5C%5C%22Edge%20filter%20set%20to%5C%5C%5C%22%2Ct)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22addNode%5C%5C%5C%22%2Cvalue%3Afunction%20t(i)%7Bif(!this.isNodeIncludedById(i))%7Bif(_utils2.default.isTrue(%24tm.config.sys.alwaysAddNodeIdToViewFilter)%7C%7C!_utils2.default.isMatch(i.tRef%2Cthis.getNodeFilter(%5C%5C%5C%22compiled%5C%5C%5C%22)))%7Bvar%20r%3De._getNodeIdFilterPart(i)%3Bvar%20a%3D%5C%5C%5C%22%20%5C%5C%5C%22%3Bthis.setNodeFilter(this.getNodeFilter(%5C%5C%5C%22raw%5C%5C%5C%22)%2Ba%2Br)%7Dthis.saveNodePosition(i)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22removeNode%5C%5C%5C%22%2Cvalue%3Afunction%20t(i)%7Bif(!this.isNodeIncludedById(i))%7Breturn%20false%7Dvar%20r%3De._getNodeIdFilterPart(i)%3Bvar%20a%3Dthis.getNodeFilter(%5C%5C%5C%22raw%5C%5C%5C%22).replace(r%2C%5C%5C%5C%22%5C%5C%5C%22)%3Bthis.setNodeFilter(a)%3Breturn%20true%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getEdgeTypeFilter%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Bvar%20i%3Dthis%3Bvar%20r%3D%24tw.wiki.getCacheForTiddler(this.edgeTypeFilterTRef%2C%5C%5C%5C%22tmap-edgeTypeFilter%5C%5C%5C%22%2Cfunction()%7Bvar%20e%3D%24tm.indeces.allETy%3Bvar%20t%3DObject.keys(e)%3Bvar%20r%3D%24tw.wiki.getTiddler(i.edgeTypeFilterTRef)%3Bvar%20a%3D%7B%7D%3Ba.raw%3Dr%26%26r.fields.filter%7C%7C%5C%5C%5C%22%5C%5C%5C%22%3Ba.pretty%3D_utils2.default.getPrettyFilter(a.raw)%3Ba.matches%3D_utils2.default.getEdgeTypeMatches(a.raw%2Ce)%3Ba.whitelist%3D_utils2.default.getLookupTable(a.matches)%3Breturn%20a%7D)%3Breturn%20t%3Fr%5Bt%5D%3Ar%7D%7D%2C%7Bkey%3A%5C%5C%5C%22isEdgeTypeVisible%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Breturn%20_utils2.default.isEdgeTypeMatch(_EdgeType2.default.getInstance(t).id%2Cthis.getEdgeTypeFilter(%5C%5C%5C%22raw%5C%5C%5C%22))%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getNodeFilter%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Bvar%20i%3Dthis%3Bvar%20r%3D%24tw.wiki.getCacheForTiddler(this.nodeFilterTRef%2C%5C%5C%5C%22tmap-nodeFilter%5C%5C%5C%22%2Cfunction()%7Bvar%20e%3D_utils2.default.makeHashMap()%3Bvar%20t%3D%24tw.wiki.getTiddler(i.nodeFilterTRef)%3Be.raw%3Dt%26%26t.fields.filter%7C%7C%5C%5C%5C%22%5C%5C%5C%22%3Be.pretty%3D_utils2.default.getPrettyFilter(e.raw)%3Be.compiled%3D%24tw.wiki.compileFilter(e.raw)%3Breturn%20e%7D)%3Breturn%20t%3Fr%5Bt%5D%3Ar%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getNodeData%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Bvar%20i%3Dthis%3Bvar%20r%3D%24tw.wiki.getCacheForTiddler(this.mapTRef%2C%5C%5C%5C%22tmap-map%5C%5C%5C%22%2Cfunction()%7Breturn%20_utils2.default.parseFieldData(i.mapTRef%2C%5C%5C%5C%22text%5C%5C%5C%22%2C%7B%7D)%7D)%3Breturn%20t%3Fr%5Bt%5D%3Ar%7D%7D%2C%7Bkey%3A%5C%5C%5C%22equals%5C%5C%5C%22%2Cvalue%3Afunction%20t(i)%7Breturn%20i%3D%3D%3Dthis%7C%7Ce.exists(i)%26%26new%20e(i).getRoot()%3D%3D%3Dthis.getRoot()%7D%7D%2C%7Bkey%3A%5C%5C%5C%22saveNodeData%5C%5C%5C%22%2Cvalue%3Afunction%20e()%7Bvar%20t%3Dthis.getNodeData()%3Bfor(var%20i%3Darguments.length%2Cr%3DArray(i)%2Ca%3D0%3Ba%3Ci%3Ba%2B%2B)%7Br%5Ba%5D%3Darguments%5Ba%5D%7Dif(r.length%3D%3D%3D2)%7Bif(_typeof(r%5B1%5D)%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22)%7Bif(r%5B1%5D%3D%3D%3Dnull)%7Bdelete%20t%5Br%5B0%5D%5D%7Delse%7Bt%5Br%5B0%5D%5D%3DObject.assign(t%5Br%5B0%5D%5D%7C%7C%7B%7D%2Cr%5B1%5D)%7D%7D%7Delse%20if(r.length%3D%3D%3D1%26%26_typeof(r%5B0%5D)%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22)%7B%24tm.logger(%5C%5C%5C%22log%5C%5C%5C%22%2C%5C%5C%5C%22Storing%20data%20in%5C%5C%5C%22%2Cthis.mapTRef)%3BObject.assign(t%2Cr%5B0%5D)%7Delse%7Bthrow%20new(Function.prototype.bind.apply(_exception.InvalidArgumentException%2C%5Bnull%5D.concat(r)))%7D_utils2.default.writeFieldData(this.mapTRef%2C%5C%5C%5C%22text%5C%5C%5C%22%2Ct%2C%24tm.config.sys.jsonIndentation)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22saveNodePosition%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Bif(t.id%26%26t.x!%3Dnull%26%26t.y!%3Dnull)%7Bthis.saveNodeData(t.id%2C%7Bx%3At.x%2Cy%3At.y%7D)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22saveNodePositions%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Bvar%20i%3Dthis.getNodeData()%3Bfor(var%20r%20in%20t)%7Bi%5Br%5D%3Di%5Br%5D%7C%7C%7B%7D%3Bi%5Br%5D.x%3Dt%5Br%5D.x%3Bi%5Br%5D.y%3Dt%5Br%5D.y%7Dthis.saveNodeData(i)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22setCentralTopic%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Bthis.setConfig(%5C%5C%5C%22central-topic%5C%5C%5C%22%2Ct)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22saveNodeStyle%5C%5C%5C%22%2Cvalue%3Afunction%20e(t%2Ci)%7Bvar%20r%3Dthis.getNodeData(t)%7C%7C%7B%7D%3Bvar%20a%3D%7Bx%3Ar.x%2Cy%3Ar.y%7D%3Bfor(var%20n%20in%20r)%7Bdelete%20r%5Bn%5D%7Dthis.saveNodeData(t%2C_extends(%7B%7D%2Ci%2Ca))%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_registerPaths%5C%5C%5C%22%2Cvalue%3Afunction%20t(i%2Cr)%7Bthis.configTRef%3De._getRootPath(i)%3Bthis.mapTRef%3Dthis.configTRef%2B%5C%5C%5C%22%2Fmap%5C%5C%5C%22%3Bthis.nodeFilterTRef%3Dthis.configTRef%2B%5C%5C%5C%22%2Ffilter%2Fnodes%5C%5C%5C%22%3Bthis.edgeTypeFilterTRef%3Dthis.configTRef%2B%5C%5C%5C%22%2Ffilter%2Fedges%5C%5C%5C%22%3Bthis.snapshotTRef%3Dthis.getRoot()%2B%5C%5C%5C%22%2Fsnapshot%5C%5C%5C%22%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_clearCaches%5C%5C%5C%22%2Cvalue%3Afunction%20e()%7B_utils2.default.getMatches(%5C%5C%5C%22%5Bprefix%5B%5C%5C%5C%22%2Bthis.getRoot()%2B%5C%5C%5C%22%5D%5D%5C%5C%5C%22).forEach(function(e)%7B%24tw.wiki.clearCache(e)%7D)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_createView%5C%5C%5C%22%2Cvalue%3Afunction%20t()%7Bvar%20i%3Darguments.length%3E0%26%26arguments%5B0%5D!%3D%3Dundefined%3Farguments%5B0%5D%3A%7B%7D%2Cr%3Di.isForce%2Ca%3Di.protoView%2Cn%3Di.isHidden%3Bif(e.exists(this))%7Bif(!r)%7Breturn%7Dthis.destroy()%7Dif(e.exists(a))%7B_utils2.default.cp(new%20e(a).getRoot()%2Cthis.configTRef%2Ctrue)%7Dvar%20l%3D%7Btitle%3Athis.configTRef%2Cid%3A_utils2.default.genUUID()%7D%3Bif(!n)%7Bl%5B%24tm.field.viewMarker%5D%3Dtrue%7D%24tw.wiki.addTiddler(new%20%24tw.Tiddler(_utils2.default.getTiddler(this.configTRef)%2Cl))%3Bthis.setEdgeTypeFilter(env.filter.defaultEdgeTypeFilter)%7D%7D%5D%2C%5B%7Bkey%3A%5C%5C%5C%22_getNodeIdFilterPart%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Bvar%20i%3D(typeof%20t%3D%3D%3D%5C%5C%5C%22undefined%5C%5C%5C%22%3F%5C%5C%5C%22undefined%5C%5C%5C%22%3A_typeof(t))%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22%3Ft.id%3At%3Breturn%5C%5C%5C%22%5Bfield%3Atmap.id%5B%5C%5C%5C%22%2Bi%2B%5C%5C%5C%22%5D%5D%5C%5C%5C%22%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_getRootPath%5C%5C%5C%22%2Cvalue%3Afunction%20t(i)%7Bif(i%20instanceof%20e)%7Breturn%20i.configTRef%7Dif(i%20instanceof%20%24tw.Tiddler)%7Bi%3Di.fields.title%7Dif(typeof%20i%3D%3D%3D%5C%5C%5C%22string%5C%5C%5C%22)%7Bvar%20r%3D_utils2.default.getWithoutPrefix(i%2C%24tm.path.views%2B%5C%5C%5C%22%2F%5C%5C%5C%22)%3Bif(r%26%26!_utils2.default.hasSubString(r%2C%5C%5C%5C%22%2F%5C%5C%5C%22))%7Breturn%20%24tm.path.views%2B%5C%5C%5C%22%2F%5C%5C%5C%22%2Br%7D%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22exists%5C%5C%5C%22%2Cvalue%3Afunction%20t(i)%7Bif(!i)%7Breturn%20false%7Dif(i%20instanceof%20e)%7Bi%3Di.configTRef%7Delse%7Bi%3De._getRootPath(i)%7Dreturn%20_utils2.default.tiddlerExists(i)%7D%7D%5D)%3Breturn%20e%7D()%3Bexports.default%3DViewAbstraction%3B%5C%5Cn%2F%2F%23%20sourceMappingURL%3D.%2Fmaps%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Fgraph%2FViewAbstraction.js.map%5C%5Cn%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22type%5C%22%3A%20%5C%22application%2Fjavascript%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22module-type%5C%22%3A%20%5C%22library%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FPopup%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FPopup%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_utils%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Futils%5C%5C%5C%22)%3Bvar%20_utils2%3D_interopRequireDefault(_utils)%3Bfunction%20_interopRequireDefault(e)%7Breturn%20e%26%26e.__esModule%3Fe%3A%7Bdefault%3Ae%7D%7Dfunction%20Popup(e%2Ct)%7Bt%3Dt%7C%7C%7B%7D%3Bthis._parentDomNode%3De%3Bthis._domNode%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bthis._domNode.style.display%3D%5C%5C%5C%22none%5C%5C%5C%22%3Bthis._domNode.className%3D%5C%5C%5C%22tmap-popup%5C%5C%5C%22%3Bthis._parentDomNode.appendChild(this._domNode)%3B%24tw.utils.addClass(this._domNode%2Ct.className)%3Bthis._isEnabled%3Dtrue%3Bthis._isPreventShowOrHide%3Dfalse%3Bthis._isHideOnClick%3D!!t.hideOnClick%3Bthis._timeoutShow%3Dnull%3Bthis._timeoutHide%3Dnull%3Bthis._isDisplayNoneAfterAnimation%3Dtrue%3Bvar%20i%3DparseInt(t.leavingDelay)%3Bthis._hideDelayLeavingPopup%3D_utils2.default.isInteger(i)%3Fi%3A200%3Bi%3DparseInt(t.hideDelay)%3Bthis._hideDelay%3D_utils2.default.isInteger(i)%3Fi%3A200%3Bi%3DparseInt(t.showDelay)%3Bthis._showDelay%3D_utils2.default.isInteger(i)%3Fi%3A200%3B_utils2.default.bindTo(this%2C%5B%5C%5C%5C%22_show%5C%5C%5C%22%2C%5C%5C%5C%22_hide%5C%5C%5C%22%2C%5C%5C%5C%22_handleEnter%5C%5C%5C%22%2C%5C%5C%5C%22_handleLeave%5C%5C%5C%22%2C%5C%5C%5C%22_handleAnimationEnd%5C%5C%5C%22%2C%5C%5C%5C%22_handleClick%5C%5C%5C%22%5D)%3Bthis._listeners%3D%7Bmouseenter%3Athis._handleEnter%2Cmouseleave%3Athis._handleLeave%2Cclick%3A%5Bthis._handleClick%2Ctrue%5D%7D%3Bvar%20s%3Dthis._handleAnimationEnd%3Bthis._listeners%5B%24tw.utils.convertEventName(%5C%5C%5C%22animationEnd%5C%5C%5C%22)%5D%3Ds%3Bthis._listeners%5B%24tw.utils.convertEventName(%5C%5C%5C%22transitionEnd%5C%5C%5C%22)%5D%3Ds%3B_utils2.default.setDomListeners(%5C%5C%5C%22add%5C%5C%5C%22%2Cthis._domNode%2Cthis._listeners%2Cfalse)%7D%5C%5Cn%2F*%20%40preserve%20TW-Guard%20*%2F%5C%5Cn%2F*%5C%5C%5C%5C%5C%5Cn%5C%5Cntitle%3A%20%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FPopup%5C%5Cntype%3A%20application%2Fjavascript%5C%5Cnmodule-type%3A%20library%5C%5Cn%5C%5Cn%40preserve%5C%5Cn%5C%5Cn%5C%5C%5C%5C*%2F%5C%5Cn%2F*%20%40preserve%20TW-Guard%20*%2FPopup.prototype._handleEnter%3Dfunction(e)%7Bthis._isPreventShowOrHide%3Dtrue%7D%3BPopup.prototype._handleLeave%3Dfunction(e)%7Bthis._isPreventShowOrHide%3Dfalse%3Bthis.hide(this._hideDelayLeavingPopup)%7D%3BPopup.prototype._handleClick%3Dfunction(e)%7Bif(this._isHideOnClick)%7Bthis._hide(true)%7D%7D%3BPopup.prototype._handleAnimationEnd%3Dfunction()%7Bif(this._isDisplayNoneAfterAnimation)%7Bthis._domNode.style.display%3D%5C%5C%5C%22none%5C%5C%5C%22%7D%7D%3BPopup.prototype._hide%3Dfunction(e)%7Bif(!e%26%26this._isPreventShowOrHide)return%3Bthis._isDisplayNoneAfterAnimation%3Dtrue%3Bthis._isPreventShowOrHide%3Dfalse%3B%24tw.utils.removeClass(this._domNode%2C%5C%5C%5C%22tmap-popup-active%5C%5C%5C%22)%7D%3BPopup.prototype._show%3Dfunction(e%2Ct)%7Bif(this._isPreventShowOrHide%7C%7C%24tm.mouse.ctrlKey%7C%7C!this._isEnabled)%7Breturn%7Dthis._domNode.style.display%3D%5C%5C%5C%22none%5C%5C%5C%22%3B%24tw.utils.removeClass(this._domNode%2C%5C%5C%5C%22tmap-popup-active%5C%5C%5C%22)%3Bthis._domNode.removeAttribute(%5C%5C%5C%22style%5C%5C%5C%22)%3B_utils2.default.removeDOMChildNodes(this._domNode)%3Bvar%20i%3Dthis._domNode.appendChild(document.createElement(%5C%5C%5C%22div%5C%5C%5C%22))%3Bif(typeof%20t%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22)%7Bt(e%2Ci)%7Delse%7Bi.innerHTML%3Dt%7Dif(!i.childNodes.length)return%3Bvar%20s%3Dthis._parentDomNode.getBoundingClientRect()%3Bvar%20o%3D%24tm.mouse.clientX%3Bvar%20n%3D%24tm.mouse.clientY%3Bthis._domNode.style.display%3D%5C%5C%5C%22block%5C%5C%5C%22%3Bvar%20d%3Dthis._domNode.getBoundingClientRect()%3Bvar%20l%3Ds.right-(o%2Bd.width)%3Bvar%20h%3Do-d.width-s.left%3Bvar%20a%3Dl%3Eh%3Bvar%20u%3Ds.bottom-(n%2Bd.height)%3Bvar%20r%3Dn-d.height-s.top%3Bvar%20p%3Du%3Er%3Bvar%20_%3Da%3F-15%3Ad.width%2B15%3Bvar%20m%3Dp%3F-15%3Ad.height%2B15%3Bthis._domNode.style.left%3Do-s.left-_%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bthis._domNode.style.top%3Dn-s.top-m%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bthis._isDisplayNoneAfterAnimation%3Dfalse%3B%24tw.utils.addClass(this._domNode%2C%5C%5C%5C%22tmap-popup-active%5C%5C%5C%22)%7D%3BPopup.prototype.show%3Dfunction(e%2Ct%2Ci)%7Bthis._clearTimeouts()%3Bi%3D_utils2.default.isInteger(i)%3Fi%3Athis._showDelay%3Bthis._timeoutShow%3DsetTimeout(this._show%2Ci%2Ce%2Ct)%7D%3BPopup.prototype.hide%3Dfunction(e%2Ct)%7Bthis._clearTimeouts()%3Be%3D_utils2.default.isInteger(e)%3Fe%3Athis._hideDelay%3Bif(t%7C%7Ce%3D%3D%3D0)%7Bthis._hide(t)%7Delse%7Bthis._timeoutHide%3DsetTimeout(this._hide%2Ce%2Ct)%7D%7D%3BPopup.prototype.setEnabled%3Dfunction(e)%7Bthis._isEnabled%3De%7D%3BPopup.prototype.isShown%3Dfunction()%7Breturn%20this._domNode.style.display%3D%3D%3D%5C%5C%5C%22block%5C%5C%5C%22%7D%3BPopup.prototype._clearTimeouts%3Dfunction()%7BclearTimeout(this._timeoutShow)%3BclearTimeout(this._timeoutHide)%3Bthis._timeoutShow%3Dundefined%3Bthis._timeoutHide%3Dundefined%7D%3Bexports.default%3DPopup%3B%5C%5Cn%2F%2F%23%20sourceMappingURL%3D.%2Fmaps%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Flib%2FPopup.js.map%5C%5Cn%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22type%5C%22%3A%20%5C%22application%2Fjavascript%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22module-type%5C%22%3A%20%5C%22library%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Flib%2FSelectionRectangle%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Flib%2FSelectionRectangle%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_createClass%3Dfunction()%7Bfunction%20t(t%2Ce)%7Bfor(var%20i%3D0%3Bi%3Ce.length%3Bi%2B%2B)%7Bvar%20n%3De%5Bi%5D%3Bn.enumerable%3Dn.enumerable%7C%7Cfalse%3Bn.configurable%3Dtrue%3Bif(%5C%5C%5C%22value%5C%5C%5C%22in%20n)n.writable%3Dtrue%3BObject.defineProperty(t%2Cn.key%2Cn)%7D%7Dreturn%20function(e%2Ci%2Cn)%7Bif(i)t(e.prototype%2Ci)%3Bif(n)t(e%2Cn)%3Breturn%20e%7D%7D()%3Bfunction%20_classCallCheck(t%2Ce)%7Bif(!(t%20instanceof%20e))%7Bthrow%20new%20TypeError(%5C%5C%5C%22Cannot%20call%20a%20class%20as%20a%20function%5C%5C%5C%22)%7D%7D%5C%5Cn%2F*%20%40preserve%20TW-Guard%20*%2F%5C%5Cn%2F*%5C%5C%5C%5C%5C%5Cn%5C%5Cntitle%3A%20%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Flib%2FSelectionRectangle%5C%5Cntype%3A%20application%2FSelectionRectangle%5C%5Cnmodule-type%3A%20library%5C%5Cn%5C%5Cn%40preserve%5C%5Cn%5C%5Cn%5C%5C%5C%5C*%2F%5C%5Cn%2F*%20%40preserve%20TW-Guard%20*%2Fvar%20SelectionRectangle%3Dfunction()%7Bfunction%20t(e%2Ci)%7B_classCallCheck(this%2Ct)%3Bthis.x1%3De%3Bthis.x2%3De%3Bthis.y1%3Di%3Bthis.y2%3Di%7D_createClass(t%2C%5B%7Bkey%3A%5C%5C%5C%22span%5C%5C%5C%22%2Cvalue%3Afunction%20t(e%2Ci)%7Bthis.x2%3De%3Bthis.y2%3Di%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getWidth%5C%5C%5C%22%2Cvalue%3Afunction%20t()%7Breturn%20this.x2-this.x1%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getHeight%5C%5C%5C%22%2Cvalue%3Afunction%20t()%7Breturn%20this.y2-this.y1%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getRect%5C%5C%5C%22%2Cvalue%3Afunction%20t()%7Breturn%5Bthis.x1%2Cthis.y1%2Cthis.getWidth()%2Cthis.getHeight()%5D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22isPointWithin%5C%5C%5C%22%2Cvalue%3Afunction%20t(e)%7Bvar%20i%3De.x%2Cn%3De.y%3Bvar%20a%3Dthis.x1%2Cr%3Dthis.x2%2Cs%3Dthis.y1%2Cu%3Dthis.y2%3Bvar%20h%3DMath.min(a%2Cr)%3Bvar%20c%3DMath.max(a%2Cr)%3Bvar%20l%3DMath.min(s%2Cu)%3Bvar%20o%3DMath.max(s%2Cu)%3Breturn%20h%3Ci%26%26i%3Cc%26%26l%3Cn%26%26n%3Co%7D%7D%5D)%3Breturn%20t%7D()%3Bexports.default%3DSelectionRectangle%3B%5C%5Cn%2F%2F%23%20sourceMappingURL%3D.%2Fmaps%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Flib%2FSelectionRectangle.js.map%5C%5Cn%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22type%5C%22%3A%20%5C%22application%2FSelectionRectangle%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22module-type%5C%22%3A%20%5C%22library%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%2Fhome%2Ffelo%2Fprojects%2FTiddlywiki%2FTiddlyWiki5%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Flib%2FTypeDefs.js%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%2Fhome%2Ffelo%2Fprojects%2FTiddlywiki%2FTiddlyWiki5%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Flib%2FTypeDefs.js%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%22use%20strict%5C%5C%5C%22%3B%5C%5Cn%2F%2F%23%20sourceMappingURL%3D.%2Fmaps%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Flib%2FTypeDefs.js.map%5C%5Cn%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Fconfig%2Fvis%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Fconfig%2Fvis%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3B%5C%5Cn%2F*%20%40preserve%20TW-Guard%20*%2F%5C%5Cn%2F*%5C%5C%5C%5C%5C%5Cn%5C%5Cntitle%3A%20%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Fconfig%2Fvis%5C%5Cntype%3A%20application%2Fjavascript%5C%5Cnmodule-type%3A%20library%5C%5Cn%5C%5Cn%40preserve%5C%5Cn%5C%5Cn%5C%5C%5C%5C*%2F%5C%5Cn%2F*%20%40preserve%20TW-Guard%20*%2Fvar%20visConfig%3D%7Blocale%3A%5C%5C%5C%22en_EN%5C%5C%5C%22%2CclickToUse%3Afalse%2CautoResize%3Afalse%2Cheight%3A%5C%5C%5C%22100%25%5C%5C%5C%22%2Cwidth%3A%5C%5C%5C%22100%25%5C%5C%5C%22%2Cconfigure%3A%7Benabled%3Afalse%7D%2Cinteraction%3A%7BdragNodes%3Atrue%2CdragView%3Atrue%2ChideEdgesOnDrag%3Afalse%2ChideNodesOnDrag%3Afalse%2Chover%3Atrue%2CnavigationButtons%3Atrue%2Cmultiselect%3Atrue%2Cselectable%3Atrue%2CselectConnectedEdges%3Atrue%2CtooltipDelay%3A600%2CzoomView%3Afalse%2Ckeyboard%3A%7Benabled%3Afalse%2Cspeed%3A%7Bx%3A10%2Cy%3A10%2Czoom%3A.02%7D%2CbindToWindow%3Afalse%7D%7D%2Cmanipulation%3A%7BinitiallyActive%3Atrue%7D%2Cnodes%3A%7Bshape%3A%5C%5C%5C%22box%5C%5C%5C%22%2CwidthConstraint%3A%7Bmaximum%3A160%7D%2CheightConstraint%3A%7Bvalign%3A%5C%5C%5C%22center%5C%5C%5C%22%7D%2Cshadow%3A%7Benabled%3Afalse%7D%2Ccolor%3A%7Bborder%3A%5C%5C%5C%22%232B7CE9%5C%5C%5C%22%2Cbackground%3A%5C%5C%5C%22%2397C2FC%5C%5C%5C%22%7D%7D%2Cedges%3A%7Bsmooth%3A%7Benabled%3Atrue%7D%2Ccolor%3A%7Bcolor%3A%5C%5C%5C%22%23848484%5C%5C%5C%22%2Cinherit%3Afalse%7D%2Carrows%3A%7Bto%3A%7Benabled%3Atrue%7D%7D%7D%2Clayout%3A%7Bhierarchical%3A%7Benabled%3Afalse%2ClevelSeparation%3A200%2CnodeSpacing%3A170%2CtreeSpacing%3A230%2CsortMethod%3A%5C%5C%5C%22directed%5C%5C%5C%22%2CparentCentralization%3Atrue%2CedgeMinimization%3Atrue%2CblockShifting%3Atrue%2Cdirection%3A%5C%5C%5C%22UD%5C%5C%5C%22%7D%7D%2Cphysics%3A%7BforceAtlas2Based%3A%7BgravitationalConstant%3A-300%2CspringLength%3A0%2CspringConstant%3A.2%2CcentralGravity%3A.015%2Cdamping%3A.4%7D%2ChierarchicalRepulsion%3A%7BnodeDistance%3A120%2CcentralGravity%3A0%2CspringLength%3A100%2CspringConstant%3A.01%2Cdamping%3A.09%7D%2Csolver%3A%5C%5C%5C%22forceAtlas2Based%5C%5C%5C%22%2Cstabilization%3A%7Benabled%3Atrue%2Citerations%3A1e3%2CupdateInterval%3A10%2ConlyDynamicEdges%3Afalse%2Cfit%3Afalse%7D%7D%7D%3Bexports.default%3DvisConfig%3B%5C%5Cn%2F%2F%23%20sourceMappingURL%3D.%2Fmaps%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Flib%2FVisConfig.js.map%5C%5Cn%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22type%5C%22%3A%20%5C%22application%2Fjavascript%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22module-type%5C%22%3A%20%5C%22library%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Flib%2Fenvironment%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Flib%2Fenvironment%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_extends%3DObject.assign%7C%7Cfunction(e)%7Bfor(var%20i%3D1%3Bi%3Carguments.length%3Bi%2B%2B)%7Bvar%20a%3Darguments%5Bi%5D%3Bfor(var%20l%20in%20a)%7Bif(Object.prototype.hasOwnProperty.call(a%2Cl))%7Be%5Bl%5D%3Da%5Bl%5D%7D%7D%7Dreturn%20e%7D%3B%5C%5Cn%2F*%20%40preserve%20TW-Guard%20*%2F%5C%5Cn%2F*%5C%5C%5C%5C%5C%5Cn%5C%5Cntitle%3A%20%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Flib%2Fenvironment%5C%5Cntype%3A%20application%2Fjavascript%5C%5Cn%20module-type%3A%20library%5C%5Cn%5C%5Cn%40preserve%5C%5Cn%5C%5Cn%5C%5C%5C%5C*%2F%5C%5Cn%2F*%20%40preserve%20TW-Guard%20*%2Fvar%20path%3Dexports.path%3D%7BpluginRoot%3A%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%5C%5C%5C%22%2CedgeTypes%3A%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fgraph%2FedgeTypes%5C%5C%5C%22%2CnodeTypes%3A%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fgraph%2FnodeTypes%5C%5C%5C%22%2Cviews%3A%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fgraph%2Fviews%5C%5C%5C%22%2Coptions%3A%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fconfig%5C%5C%5C%22%2Cdialogs%3A%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%5C%5C%5C%22%2Cfooters%3A%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2FdialogFooter%5C%5C%5C%22%2CtempRoot%3A%5C%5C%5C%22%24%3A%2Ftemp%2Ftmap%5C%5C%5C%22%2CtempStates%3A%5C%5C%5C%22%24%3A%2Ftemp%2Ftmap%2Fstate%5C%5C%5C%22%2CtempPopups%3A%5C%5C%5C%22%24%3A%2Ftemp%2Ftmap%2Fstate%2Fpopup%5C%5C%5C%22%2ClocalHolders%3A%5C%5C%5C%22%24%3A%2Ftemp%2Ftmap%2Fholders%5C%5C%5C%22%7D%3Bvar%20ref%3Dexports.ref%3D%7BdefaultViewHolder%3A%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fmisc%2FdefaultViewHolder%5C%5C%5C%22%2CgraphBar%3A%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fmisc%2FadvancedEditorBar%5C%5C%5C%22%2CsysUserConf%3A%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fconfig%2Fsys%2Fuser%5C%5C%5C%22%2CvisUserConf%3A%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fconfig%2Fvis%2Fuser%5C%5C%5C%22%2CwelcomeFlag%3A%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fflag%2Fwelcome%5C%5C%5C%22%2CfocusButton%3A%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fmisc%2FfocusButton%5C%5C%5C%22%2CsysMeta%3A%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fmisc%2Fmeta%5C%5C%5C%22%2CliveTab%3A%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fhook%2FliveTab%5C%5C%5C%22%2CmainEditor%3A%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fhook%2Feditor%5C%5C%5C%22%2CsidebarBreakpoint%3A%5C%5C%5C%22%24%3A%2Fthemes%2Ftiddlywiki%2Fvanilla%2Fmetrics%2Fsidebarbreakpoint%5C%5C%5C%22%7D%3Bvar%20misc%3Dexports.misc%3D%7BunknownEdgeLabel%3A%5C%5C%5C%22tmap%3Aundefined%5C%5C%5C%22%2CliveViewLabel%3A%5C%5C%5C%22Live%20View%5C%5C%5C%22%2CdefaultViewLabel%3A%5C%5C%5C%22Default%5C%5C%5C%22%2CmainEditorId%3A%5C%5C%5C%22main_editor%5C%5C%5C%22%2Carrows%3A%7Bin%3A%5C%5C%5C%22%E2%87%A6%5C%5C%5C%22%2Cout%3A%5C%5C%5C%22%E2%9E%A1%5C%5C%5C%22%2Cbi%3A%5C%5C%5C%22%E2%87%84%5C%5C%5C%22%7D%7D%3Bvar%20config%3Dexports.config%3D%7Bsys%3A%7Bfield%3A%7BnodeLabel%3A%5C%5C%5C%22caption%5C%5C%5C%22%2CnodeIcon%3A%5C%5C%5C%22icon%5C%5C%5C%22%2CnodeInfo%3A%5C%5C%5C%22description%5C%5C%5C%22%2CviewMarker%3A%5C%5C%5C%22isview%5C%5C%5C%22%7D%2CliveTab%3A%7BfallbackView%3Amisc.liveViewLabel%7D%2CsuppressedDialogs%3A%7B%7D%2CedgeClickBehaviour%3A%5C%5C%5C%22manager%5C%5C%5C%22%2Cdebug%3A%5C%5C%5C%22false%5C%5C%5C%22%2Cnotifications%3A%5C%5C%5C%22true%5C%5C%5C%22%2Cpopups%3A%7Benabled%3A%5C%5C%5C%22true%5C%5C%5C%22%2Cdelay%3A%5C%5C%5C%22600%5C%5C%5C%22%2Cwidth%3A%5C%5C%5C%22240px%5C%5C%5C%22%2Cheight%3A%5C%5C%5C%22140px%5C%5C%5C%22%7D%2CjsonIndentation%3A%5C%5C%5C%221%5C%5C%5C%22%2CalwaysAddNodeIdToViewFilter%3A%5C%5C%5C%22true%5C%5C%5C%22%2CeditNodeOnCreate%3A%5C%5C%5C%22false%5C%5C%5C%22%2CsingleClickMode%3A%5C%5C%5C%22false%5C%5C%5C%22%2CnodeFilterNeighbours%3A%5C%5C%5C%22false%5C%5C%5C%22%2CeditorMenuBar%3A%7BshowNeighScopeButton%3A%5C%5C%5C%22true%5C%5C%5C%22%2CshowRasterMenuButton%3A%5C%5C%5C%22true%5C%5C%5C%22%2CshowScreenshotButton%3A%5C%5C%5C%22true%5C%5C%5C%22%7D%7D%7D%3Bvar%20filter%3Dexports.filter%3D%7BnodeTypes%3A%5C%5C%5C%22%5Bprefix%5B%5C%5C%5C%22%2Bpath.nodeTypes%2B%5C%5C%5C%22%5D%5D%5C%5C%5C%22%2CedgeTypes%3A%5C%5C%5C%22%5Bprefix%5B%5C%5C%5C%22%2Bpath.edgeTypes%2B%5C%5C%5C%22%5D%5D%5C%5C%5C%22%2Cviews%3A%5C%5C%5C%22%5B%5C%5C%5C%22%2Bconfig.sys.field.viewMarker%2B%5C%5C%5C%22%5Btrue%5D%5D%5C%5C%5C%22%2CdefaultEdgeTypeFilter%3A%5C%5C%5C%22-%5Bprefix%5B_%5D%5D%20-%5B%5Btw-body%3Alink%5D%5D%20-%5B%5Btw-list%3Atags%5D%5D%20-%5B%5Btw-list%3Alist%5D%5D%5C%5C%5C%22%7D%3Bvar%20allSelector%3D%5C%5C%5C%22%5Ball%5Btiddlers%2Bshadows%5D!has%5Bdraft.of%5D%5D%5C%5C%5C%22%3Bvar%20s%3D%7BallEdgeTypes%3AallSelector%2B%5C%5C%5C%22%20%2B%5C%5C%5C%22%2Bfilter.edgeTypes%2CallNodeTypes%3AallSelector%2B%5C%5C%5C%22%20%2B%5C%5C%5C%22%2Bfilter.nodeTypes%2CallViews%3AallSelector%2B%5C%5C%5C%22%20%2B%5C%5C%5C%22%2Bfilter.views%2CallPotentialNodes%3A%5C%5C%5C%22%5Ball%5Btiddlers%5D!is%5Bsystem%5D!has%5Bdraft.of%5D%5D%5C%5C%5C%22%7D%3Bvar%20selector%3Dexports.selector%3D_extends(%7B%7D%2Cs%2C%7BallEdgeTypesById%3As.allEdgeTypes%2B%5C%5C%5C%22%20%2B%5Bremoveprefix%5B%5C%5C%5C%22%2Bpath.edgeTypes%2B%5C%5C%5C%22%2F%5D%5D%5C%5C%5C%22%2CallNodeTypesById%3As.allNodeTypes%2B%5C%5C%5C%22%20%2B%5Bremoveprefix%5B%5C%5C%5C%22%2Bpath.nodeTypes%2B%5C%5C%5C%22%2F%5D%5D%5C%5C%5C%22%2CallViewsByLabel%3As.allViews%2B%5C%5C%5C%22%20%2B%5Bremoveprefix%5B%5C%5C%5C%22%2Bpath.views%2B%5C%5C%5C%22%2F%5D%5D%5C%5C%5C%22%7D)%3B%5C%5Cn%2F%2F%23%20sourceMappingURL%3D.%2Fmaps%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Flib%2Fenvironment.js.map%5C%5Cn%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22type%5C%22%3A%20%5C%22application%2Fjavascript%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22module-type%5C%22%3A%20%5C%22library%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Fexception%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Fexception%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_createClass%3Dfunction()%7Bfunction%20r(r%2Ct)%7Bfor(var%20e%3D0%3Be%3Ct.length%3Be%2B%2B)%7Bvar%20o%3Dt%5Be%5D%3Bo.enumerable%3Do.enumerable%7C%7Cfalse%3Bo.configurable%3Dtrue%3Bif(%5C%5C%5C%22value%5C%5C%5C%22in%20o)o.writable%3Dtrue%3BObject.defineProperty(r%2Co.key%2Co)%7D%7Dreturn%20function(t%2Ce%2Co)%7Bif(e)r(t.prototype%2Ce)%3Bif(o)r(t%2Co)%3Breturn%20t%7D%7D()%3Bfunction%20_classCallCheck(r%2Ct)%7Bif(!(r%20instanceof%20t))%7Bthrow%20new%20TypeError(%5C%5C%5C%22Cannot%20call%20a%20class%20as%20a%20function%5C%5C%5C%22)%7D%7Dfunction%20_possibleConstructorReturn(r%2Ct)%7Bif(!r)%7Bthrow%20new%20ReferenceError(%5C%5C%5C%22this%20hasn't%20been%20initialised%20-%20super()%20hasn't%20been%20called%5C%5C%5C%22)%7Dreturn%20t%26%26(typeof%20t%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22%7C%7Ctypeof%20t%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22)%3Ft%3Ar%7Dfunction%20_inherits(r%2Ct)%7Bif(typeof%20t!%3D%3D%5C%5C%5C%22function%5C%5C%5C%22%26%26t!%3D%3Dnull)%7Bthrow%20new%20TypeError(%5C%5C%5C%22Super%20expression%20must%20either%20be%20null%20or%20a%20function%2C%20not%20%5C%5C%5C%22%2Btypeof%20t)%7Dr.prototype%3DObject.create(t%26%26t.prototype%2C%7Bconstructor%3A%7Bvalue%3Ar%2Cenumerable%3Afalse%2Cwritable%3Atrue%2Cconfigurable%3Atrue%7D%7D)%3Bif(t)Object.setPrototypeOf%3FObject.setPrototypeOf(r%2Ct)%3Ar.__proto__%3Dt%7D%5C%5Cn%2F*%20%40preserve%20TW-Guard%20*%2F%5C%5Cn%2F*%5C%5C%5C%5C%5C%5Cn%5C%5Cntitle%3A%20%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Fexception%5C%5Cntype%3A%20application%2Fjavascript%5C%5Cnmodule-type%3A%20library%5C%5Cn%5C%5Cn%40preserve%5C%5Cn%5C%5Cn%5C%5C%5C%5C*%2F%5C%5Cn%2F*%20%40preserve%20TW-Guard%20*%2Fvar%20TiddlyMapError%3Dfunction(r)%7B_inherits(t%2Cr)%3Bfunction%20t(r%2Ce)%7B_classCallCheck(this%2Ct)%3Bvar%20o%3D_possibleConstructorReturn(this%2C(t.__proto__%7C%7CObject.getPrototypeOf(t)).call(this%2Cr))%3Bo.payload%3De%3Breturn%20o%7D_createClass(t%2C%5B%7Bkey%3A%5C%5C%5C%22getPayload%5C%5C%5C%22%2Cvalue%3Afunction%20r()%7Breturn%20this.payload%7D%7D%5D)%3Breturn%20t%7D(Error)%3Bvar%20EnvironmentError%3Dexports.EnvironmentError%3Dfunction(r)%7B_inherits(t%2Cr)%3Bfunction%20t(r)%7B_classCallCheck(this%2Ct)%3Breturn%20_possibleConstructorReturn(this%2C(t.__proto__%7C%7CObject.getPrototypeOf(t)).call(this%2C%5C%5C%5C%22Critical%20parts%20of%20the%20underlying%20system%20changed%3A%20%5C%5C%5C%22%2Br))%7Dreturn%20t%7D(TiddlyMapError)%3Bvar%20DependencyError%3Dexports.DependencyError%3Dfunction(r)%7B_inherits(t%2Cr)%3Bfunction%20t(r)%7B_classCallCheck(this%2Ct)%3Breturn%20_possibleConstructorReturn(this%2C(t.__proto__%7C%7CObject.getPrototypeOf(t)).call(this%2C%5C%5C%5C%22TiddlyMap%20cannot%20run%20without%3A%20%3A%20%5C%5C%5C%22%2Br))%7Dreturn%20t%7D(TiddlyMapError)%3Bvar%20MissingOverrideError%3Dexports.MissingOverrideError%3Dfunction(r)%7B_inherits(t%2Cr)%3Bfunction%20t(r%2Ce)%7B_classCallCheck(this%2Ct)%3Breturn%20_possibleConstructorReturn(this%2C(t.__proto__%7C%7CObject.getPrototypeOf(t)).call(this%2Cr.constructor.name%2B'%20does%20not%20override%20method%20%5C%5C%5C%22'%2Be%2B'%5C%5C%5C%22'))%7Dreturn%20t%7D(TiddlyMapError)%3Bvar%20ResourceNotFoundException%3Dexports.ResourceNotFoundException%3Dfunction(r)%7B_inherits(t%2Cr)%3Bfunction%20t(r)%7B_classCallCheck(this%2Ct)%3Bfor(var%20e%3Darguments.length%2Co%3DArray(e%3E1%3Fe-1%3A0)%2Cn%3D1%3Bn%3Ce%3Bn%2B%2B)%7Bo%5Bn-1%5D%3Darguments%5Bn%5D%7Dreturn%20_possibleConstructorReturn(this%2C(t.__proto__%7C%7CObject.getPrototypeOf(t)).call(this%2C%5C%5C%5C%22Cannot%20resolve%20%5C%5C%5C%22%2Br%2Co))%7Dreturn%20t%7D(TiddlyMapError)%3Bvar%20InvalidArgumentException%3Dexports.InvalidArgumentException%3Dfunction(r)%7B_inherits(t%2Cr)%3Bfunction%20t()%7B_classCallCheck(this%2Ct)%3Bfor(var%20r%3Darguments.length%2Ce%3DArray(r)%2Co%3D0%3Bo%3Cr%3Bo%2B%2B)%7Be%5Bo%5D%3Darguments%5Bo%5D%7Dreturn%20_possibleConstructorReturn(this%2C(t.__proto__%7C%7CObject.getPrototypeOf(t)).call(this%2C%5C%5C%5C%22Invalid%20or%20missing%20argument%20provided%5C%5C%5C%22%2Ce))%7Dreturn%20t%7D(TiddlyMapError)%3B%5C%5Cn%2F%2F%23%20sourceMappingURL%3D.%2Fmaps%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Flib%2Fexceptions.js.map%5C%5Cn%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22type%5C%22%3A%20%5C%22application%2Fjavascript%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22module-type%5C%22%3A%20%5C%22library%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FURL%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FURL%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3B%5C%5Cn%2F*%20%40preserve%20TW-Guard%20*%2F%5C%5Cn%2F*%5C%5C%5C%5C%5C%5Cn%5C%5Cntitle%3A%20%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FURL%5C%5Cntype%3A%20application%2Fjavascript%5C%5Cnmodule-type%3A%20library%5C%5Cn%5C%5Cn%40preserve%5C%5Cn%5C%5Cn%5C%5C%5C%5C*%2F%5C%5Cn%2F*%20%40preserve%20TW-Guard%20*%2F%5C%5Cn%2F**%5C%5Cn%20*%20%3C%3C%3C%5C%5Cn%20*%20Lightweight%20URL%20manipulation%20with%20JavaScript.%20This%20library%20is%5C%5Cn%20*%20independent%20of%20any%20other%20libraries%20and%20has%20pretty%20simple%20interface%5C%5Cn%20*%20and%20lightweight%20code-base.%20Some%20ideas%20of%20query%20string%20parsing%5C%5Cn%20*%20had%20been%20taken%20from%20Jan%20Wolter.%5C%5C%5C%22%5C%5Cn%20*%5C%5Cn%20*%20%40see%20http%3A%2F%2Funixpapa.com%2Fjs%2Fquerystring.html%5C%5Cn%20*%20%40license%20MIT%5C%5Cn%20*%20%40author%20Mykhailo%20Stadnyk%20%3Cmikhus%40gmail.com%3E%5C%5Cn%20*%20%3C%3C%3C%20https%3A%2F%2Fgithub.com%2FMikhus%2Fjsurl%5C%5Cn%20*%5C%5Cn%20*%20%40class%5C%5Cn%20*%20%40param%20%7Bstring%7D%20url%5C%5Cn%20*%2Ffunction%20Url(t)%7Bthis.paths%3Dfunction(t)%7Bvar%20e%3D%5C%5C%5C%22%5C%5C%5C%22%2Cr%3D0%2Co%3Bif(t%26%26t.length%26%26t%2B%5C%5C%5C%22%5C%5C%5C%22!%3D%3Dt)%7Bif(this.isAbsolute())%7Be%3D%5C%5C%5C%22%2F%5C%5C%5C%22%7Dfor(o%3Dt.length%3Br%3Co%3Br%2B%2B)%7Bt%5Br%5D%3Dencode(t%5Br%5D)%7Dthis.path%3De%2Bt.join(%5C%5C%5C%22%2F%5C%5C%5C%22)%7Dt%3D(this.path.charAt(0)%3D%3D%3D%5C%5C%5C%22%2F%5C%5C%5C%22%3Fthis.path.slice(1)%3Athis.path).split(%5C%5C%5C%22%2F%5C%5C%5C%22)%3Bfor(r%3D0%2Co%3Dt.length%3Br%3Co%3Br%2B%2B)%7Bt%5Br%5D%3Ddecode(t%5Br%5D)%7Dreturn%20t%7D%3Bthis.encode%3Dencode%3Bthis.decode%3Ddecode%3Bthis.isAbsolute%3Dfunction()%7Breturn%20this.protocol%7C%7Cthis.path.charAt(0)%3D%3D%3D%5C%5C%5C%22%2F%5C%5C%5C%22%7D%3Bthis.toString%3Dfunction()%7Breturn(this.protocol%26%26this.protocol%2B%5C%5C%5C%22%3A%2F%2F%5C%5C%5C%22)%2B(this.user%26%26encode(this.user)%2B(this.pass%26%26%5C%5C%5C%22%3A%5C%5C%5C%22%2Bencode(this.pass))%2B%5C%5C%5C%22%40%5C%5C%5C%22)%2B(this.host%26%26this.host)%2B(this.port%26%26%5C%5C%5C%22%3A%5C%5C%5C%22%2Bthis.port)%2B(this.path%26%26this.path)%2B(this.query.toString()%26%26%5C%5C%5C%22%3F%5C%5C%5C%22%2Bthis.query)%2B(this.hash%26%26%5C%5C%5C%22%23%5C%5C%5C%22%2Bencode(this.hash))%7D%3Bparse(this%2Ct)%7Dvar%20map%3D%7Bprotocol%3A%5C%5C%5C%22protocol%5C%5C%5C%22%2Chost%3A%5C%5C%5C%22hostname%5C%5C%5C%22%2Cport%3A%5C%5C%5C%22port%5C%5C%5C%22%2Cpath%3A%5C%5C%5C%22pathname%5C%5C%5C%22%2Cquery%3A%5C%5C%5C%22search%5C%5C%5C%22%2Chash%3A%5C%5C%5C%22hash%5C%5C%5C%22%7D%2CdefaultPorts%3D%7Bftp%3A21%2Cgopher%3A70%2Chttp%3A80%2Chttps%3A443%2Cws%3A80%2Cwss%3A443%7D%2Cparse%3Dfunction%20t(e%2Cr)%7Bvar%20o%3Ddocument%2Cs%3Do.createElement(%5C%5C%5C%22a%5C%5C%5C%22)%2Cr%3Dr%7C%7Co.location.href%2Ci%3Dr.match(%2F%5C%5C%5C%5C%2F%5C%5C%5C%5C%2F(.*%3F)(%3F%3A%3A(.*%3F))%3F%40%2F)%7C%7C%5B%5D%2Cn%3Bs.href%3Dr%3Bfor(n%20in%20map)%7Be%5Bn%5D%3Ds%5Bmap%5Bn%5D%5D%7C%7C%5C%5C%5C%22%5C%5C%5C%22%7De.protocol%3De.protocol.replace(%2F%3A%24%2F%2C%5C%5C%5C%22%5C%5C%5C%22)%3Be.query%3De.query.replace(%2F%5E%5C%5C%5C%5C%3F%2F%2C%5C%5C%5C%22%5C%5C%5C%22)%3Be.hash%3Ddecode(e.hash.replace(%2F%5E%23%2F%2C%5C%5C%5C%22%5C%5C%5C%22))%3Be.user%3Ddecode(i%5B1%5D%7C%7C%5C%5C%5C%22%5C%5C%5C%22)%3Be.pass%3Ddecode(i%5B2%5D%7C%7C%5C%5C%5C%22%5C%5C%5C%22)%3Be.port%3DdefaultPorts%5Be.protocol%5D%3D%3De.port%7C%7Ce.port%3D%3D0%3F%5C%5C%5C%22%5C%5C%5C%22%3Ae.port%3Bif(!e.protocol%26%26!%2F%5E(%5Ba-z%5D%2B%3A)%3F%5C%5C%5C%5C%2F%5C%5C%5C%5C%2F%2F.test(r))%7Bvar%20h%3Dnew%20Url(o.location.href.match(%2F(.*%5C%5C%5C%5C%2F)%2F)%5B0%5D)%2Ca%3Dh.path.split(%5C%5C%5C%22%2F%5C%5C%5C%22)%2Cp%3De.path.split(%5C%5C%5C%22%2F%5C%5C%5C%22)%2Cc%3D%5B%5C%5C%5C%22protocol%5C%5C%5C%22%2C%5C%5C%5C%22user%5C%5C%5C%22%2C%5C%5C%5C%22pass%5C%5C%5C%22%2C%5C%5C%5C%22host%5C%5C%5C%22%2C%5C%5C%5C%22port%5C%5C%5C%22%5D%2Cf%3Dc.length%3Ba.pop()%3Bfor(n%3D0%3Bn%3Cf%3Bn%2B%2B)%7Be%5Bc%5Bn%5D%5D%3Dh%5Bc%5Bn%5D%5D%7Dwhile(p%5B0%5D%3D%3D%5C%5C%5C%22..%5C%5C%5C%22)%7Ba.pop()%3Bp.shift()%7De.path%3D(r.charAt(0)!%3D%5C%5C%5C%22%2F%5C%5C%5C%22%3Fa.join(%5C%5C%5C%22%2F%5C%5C%5C%22)%3A%5C%5C%5C%22%5C%5C%5C%22)%2B%5C%5C%5C%22%2F%5C%5C%5C%22%2Bp.join(%5C%5C%5C%22%2F%5C%5C%5C%22)%7Delse%7Be.path%3De.path.replace(%2F%5E%5C%5C%5C%5C%2F%3F%2F%2C%5C%5C%5C%22%2F%5C%5C%5C%22)%7De.paths((e.path.charAt(0)%3D%3D%5C%5C%5C%22%2F%5C%5C%5C%22%3Fe.path.slice(1)%3Ae.path).split(%5C%5C%5C%22%2F%5C%5C%5C%22))%3BparseQs(e)%7D%2Cencode%3Dfunction%20t(e)%7Breturn%20encodeURIComponent(e).replace(%2F'%2Fg%2C%5C%5C%5C%22%2527%5C%5C%5C%22)%7D%2Cdecode%3Dfunction%20t(e)%7Be%3De.replace(%2F%5C%5C%5C%5C%2B%2Fg%2C%5C%5C%5C%22%20%5C%5C%5C%22)%3Be%3De.replace(%2F%25(%5Bef%5D%5B0-9a-f%5D)%25(%5B89ab%5D%5B0-9a-f%5D)%25(%5B89ab%5D%5B0-9a-f%5D)%2Fgi%2Cfunction(t%2Ce%2Cr%2Co)%7Bvar%20s%3DparseInt(e%2C16)-224%2Ci%3DparseInt(r%2C16)-128%3Bif(s%3D%3D0%26%26i%3C32)%7Breturn%20t%7Dvar%20n%3DparseInt(o%2C16)-128%2Ch%3D(s%3C%3C12)%2B(i%3C%3C6)%2Bn%3Bif(h%3E65535)%7Breturn%20t%7Dreturn%20String.fromCharCode(h)%7D)%3Be%3De.replace(%2F%25(%5Bcd%5D%5B0-9a-f%5D)%25(%5B89ab%5D%5B0-9a-f%5D)%2Fgi%2Cfunction(t%2Ce%2Cr)%7Bvar%20o%3DparseInt(e%2C16)-192%3Bif(o%3C2)%7Breturn%20t%7Dvar%20s%3DparseInt(r%2C16)-128%3Breturn%20String.fromCharCode((o%3C%3C6)%2Bs)%7D)%3Be%3De.replace(%2F%25(%5B0-7%5D%5B0-9a-f%5D)%2Fgi%2Cfunction(t%2Ce)%7Breturn%20String.fromCharCode(parseInt(e%2C16))%7D)%3Breturn%20e%7D%2CparseQs%3Dfunction%20t(e)%7Bvar%20r%3De.query%3Be.query%3Dnew%20function(t)%7Bvar%20e%3D%2F(%5B%5E%3D%26%5D%2B)(%3D(%5B%5E%26%5D*))%3F%2Fg%2Cr%3Bwhile(r%3De.exec(t))%7Bvar%20o%3DdecodeURIComponent(r%5B1%5D.replace(%2F%5C%5C%5C%5C%2B%2Fg%2C%5C%5C%5C%22%20%5C%5C%5C%22))%2Cs%3Dr%5B3%5D%3Fdecode(r%5B3%5D)%3A%5C%5C%5C%22%5C%5C%5C%22%3Bif(this%5Bo%5D!%3Dnull)%7Bif(!(this%5Bo%5Dinstanceof%20Array))%7Bthis%5Bo%5D%3D%5Bthis%5Bo%5D%5D%7Dthis%5Bo%5D.push(s)%7Delse%7Bthis%5Bo%5D%3Ds%7D%7Dthis.clear%3Dfunction()%7Bfor(var%20t%20in%20this)%7Bif(!(this%5Bt%5Dinstanceof%20Function))%7Bdelete%20this%5Bt%5D%7D%7D%7D%3Bthis.count%3Dfunction()%7Bvar%20t%3D0%2Ce%3Bfor(e%20in%20this)%7Bif(!(this%5Be%5Dinstanceof%20Function))%7Bt%2B%2B%7D%7Dreturn%20t%7D%3Bthis.isEmpty%3Dfunction()%7Breturn%20this.count()%3D%3D%3D0%7D%3Bthis.toString%3Dfunction()%7Bvar%20t%3D%5C%5C%5C%22%5C%5C%5C%22%2Ce%3Dencode%2Cr%2Co%3Bfor(r%20in%20this)%7Bif(this%5Br%5Dinstanceof%20Function)%7Bcontinue%7Dif(this%5Br%5Dinstanceof%20Array)%7Bvar%20s%3Dthis%5Br%5D.length%3Bif(s)%7Bfor(o%3D0%3Bo%3Cs%3Bo%2B%2B)%7Bt%2B%3Dt%3F%5C%5C%5C%22%26%5C%5C%5C%22%3A%5C%5C%5C%22%5C%5C%5C%22%3Bt%2B%3De(r)%2B%5C%5C%5C%22%3D%5C%5C%5C%22%2Be(this%5Br%5D%5Bo%5D)%7D%7Delse%7Bt%2B%3D(t%3F%5C%5C%5C%22%26%5C%5C%5C%22%3A%5C%5C%5C%22%5C%5C%5C%22)%2Be(r)%2B%5C%5C%5C%22%3D%5C%5C%5C%22%7D%7Delse%7Bt%2B%3Dt%3F%5C%5C%5C%22%26%5C%5C%5C%22%3A%5C%5C%5C%22%5C%5C%5C%22%3Bt%2B%3De(r)%2B%5C%5C%5C%22%3D%5C%5C%5C%22%2Be(this%5Br%5D)%7D%7Dreturn%20t%7D%7D(r)%7D%3Bexports.default%3DUrl%3B%5C%5Cn%2F%2F%23%20sourceMappingURL%3D.%2Fmaps%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Flib%2Furl.js.map%5C%5Cn%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22type%5C%22%3A%20%5C%22application%2Fjavascript%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22module-type%5C%22%3A%20%5C%22library%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Flib%2Futils%2Fbasic%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Flib%2Futils%2Fbasic%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bexports.bindTo%3Dexports.getNearestRasterPosition%3Dexports.mod%3Dexports.removeDOMChildNodes%3Dexports.setDomListeners%3Dexports.merge%3Dexports.getRandomLabel%3Dexports.getFirstElementByClassName%3Dexports.pickRandom%3Dexports.hasKeyWithPrefix%3Dexports.getWithoutPrefix%3Dexports.getPropertiesByPrefix%3Dexports.removeArrayElement%3Dexports.isTrue%3Dexports.replaceAll%3Dexports.isInteger%3Dexports.findAndRemoveClassNames%3Dexports.getAncestorWithClass%3Dexports.makeHashMap%3Dexports.getWithoutNewLines%3Dexports.joinAndWrap%3Dexports.parseJSON%3Dexports.hasSubString%3Dexports.inArray%3Dexports.getRandomInt%3Dexports.isEqual%3Dexports.identity%3Dexports.base64%3Dexports.startsWith%3Dexports.getBasename%3Dexports.escapeRegex%3Dexports.hasElements%3Dexports.ucFirst%3Dundefined%3Bvar%20_typeof%3Dtypeof%20Symbol%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22%26%26typeof%20Symbol.iterator%3D%3D%3D%5C%5C%5C%22symbol%5C%5C%5C%22%3Ffunction(e)%7Breturn%20typeof%20e%7D%3Afunction(e)%7Breturn%20e%26%26typeof%20Symbol%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22%26%26e.constructor%3D%3D%3DSymbol%26%26e!%3D%3DSymbol.prototype%3F%5C%5C%5C%22symbol%5C%5C%5C%22%3Atypeof%20e%7D%3B%2F*%20%40preserve%20TW-Guard%20*%2F%5C%5Cn%2F*%5C%5C%5C%5C%5C%5Cn%5C%5Cntitle%3A%20%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Flib%2Futils%2Fbasic%5C%5Cntype%3A%20application%2Fjavascript%5C%5Cnmodule-type%3A%20library%5C%5Cn%5C%5Cn%40preserve%5C%5Cn%5C%5Cn%5C%5C%5C%5C*%2F%5C%5Cn%2F*%20%40preserve%20TW-Guard%20*%2Fvar%20_exception%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Fexception%5C%5C%5C%22)%3Bvar%20ucFirst%3Dexports.ucFirst%3Dfunction%20e(t)%7Breturn%20t%26%26t%5B0%5D.toUpperCase()%2Bt.slice(1)%7D%3Bvar%20hasElements%3Dexports.hasElements%3Dfunction%20e(t)%7Breturn%20Object.keys(t).length%3E0%7D%3Bvar%20escapeRegex%3Dexports.escapeRegex%3Dfunction%20e(t)%7Breturn%20t.replace(%2F%5B-%24%5E%3F.%2B*%5B%5C%5C%5C%5C%5D%5C%5C%5C%5C%5C%5C%5C%5C()%7B%7D%7C%5D%2Fg%2C%5C%5C%5C%22%5C%5C%5C%5C%5C%5C%5C%5C%24%26%5C%5C%5C%22)%7D%3Bvar%20getBasename%3Dexports.getBasename%3Dfunction%20e(t)%7Bvar%20r%3Darguments.length%3E1%26%26arguments%5B1%5D!%3D%3Dundefined%3Farguments%5B1%5D%3A%5C%5C%5C%22%2F%5C%5C%5C%22%3Breturn%20t.substring(t.lastIndexOf(r)%2B1)%7D%3Bvar%20startsWith%3Dexports.startsWith%3Dfunction%20e(t%2Cr)%7Breturn%20t.substring(0%2Cr.length)%3D%3D%3Dr%7D%3Bvar%20base64%3Dexports.base64%3Dtypeof%20window%3D%3D%3D%5C%5C%5C%22undefined%5C%5C%5C%22%3Ffunction(e)%7Breturn%20new%20Buffer(e).toString(%5C%5C%5C%22base64%5C%5C%5C%22)%7D%3Awindow.btoa.bind(window)%3Bvar%20identity%3Dexports.identity%3Dfunction%20e(t)%7Breturn(typeof%20t%3D%3D%3D%5C%5C%5C%22undefined%5C%5C%5C%22%3F%5C%5C%5C%22undefined%5C%5C%5C%22%3A_typeof(t))%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22%26%26t!%3D%3Dnull%3FJSON.stringify(Object.keys(t).sort().map(function(e)%7Breturn%5Be%2Ct%5Be%5D%5D%7D))%3Anull%7D%3Bvar%20isEqual%3Dexports.isEqual%3Dfunction%20e(t%2Cr)%7Breturn%20identity(t)%3D%3D%3Didentity(r)%7D%3Bvar%20getRandomInt%3Dexports.getRandomInt%3Dfunction%20e(t%2Cr)%7Breturn%20Math.floor(Math.random()*(r-t)%2Bt)%7D%3Bvar%20inArray%3Dexports.inArray%3Dfunction%20e(t%2Cr)%7Breturn%20r.indexOf(t)!%3D%3D-1%7D%3Bvar%20hasSubString%3Dexports.hasSubString%3Dfunction%20e(t%2Cr)%7Breturn%20t.indexOf(r)!%3D%3D-1%7D%3Bvar%20parseJSON%3Dexports.parseJSON%3Dfunction%20e(t%2Cr)%7Btry%7Breturn%20JSON.parse(t)%7Dcatch(e)%7Breturn%20r%7D%7D%3Bvar%20joinAndWrap%3Dexports.joinAndWrap%3Dfunction%20e(t%2Cr%2Cn)%7Bvar%20o%3Darguments.length%3E3%26%26arguments%5B3%5D!%3D%3Dundefined%3Farguments%5B3%5D%3A%5C%5C%5C%22%20%5C%5C%5C%22%3Breturn%20r%2Bt.join(n%2Bo%2Br)%2Bn%7D%3Bvar%20getWithoutNewLines%3Dexports.getWithoutNewLines%3Dfunction%20e(t)%7Breturn%20typeof%20t%3D%3D%3D%5C%5C%5C%22string%5C%5C%5C%22%3Ft.replace(%2F%5B%5C%5C%5C%5Cn%5C%5C%5C%5Cr%5D%2Fg%2C%5C%5C%5C%22%20%5C%5C%5C%22)%3At%7D%3Bvar%20makeHashMap%3Dexports.makeHashMap%3Dfunction%20e(t)%7Bvar%20r%3DObject.create(null)%3BObject.defineProperty(r%2C%5C%5C%5C%22hasOwnProperty%5C%5C%5C%22%2C%7Benumerable%3Afalse%2Cconfigurable%3Afalse%2Cwritable%3Afalse%2Cvalue%3AObject.prototype.hasOwnProperty.bind(r)%7D)%3Bif(t)%7Bfor(var%20n%20in%20t)%7Bif(t.hasOwnProperty(n))%7Br%5Bn%5D%3Dt%5Bn%5D%7D%7D%7Dreturn%20r%7D%3Bvar%20getAncestorWithClass%3Dexports.getAncestorWithClass%3Dfunction%20e(t%2Cr)%7Bif((typeof%20t%3D%3D%3D%5C%5C%5C%22undefined%5C%5C%5C%22%3F%5C%5C%5C%22undefined%5C%5C%5C%22%3A_typeof(t))!%3D%3D%5C%5C%5C%22object%5C%5C%5C%22%7C%7Ctypeof%20r!%3D%3D%5C%5C%5C%22string%5C%5C%5C%22)%7Breturn%7Dwhile(t.parentNode%26%26t.parentNode!%3D%3Ddocument)%7Bt%3Dt.parentNode%3Bif(t.classList.contains(r))%7Breturn%20t%7D%7D%7D%3Bvar%20findAndRemoveClassNames%3Dexports.findAndRemoveClassNames%3Dfunction%20e(t)%7Bfor(var%20r%3Dt.length%3Br--%3B)%7Bvar%20n%3Ddocument.getElementsByClassName(t%5Br%5D)%3Bfor(var%20o%3Dn.length%3Bo--%3B)%7Bn%5Bo%5D.classList.remove(t%5Br%5D)%7D%7D%7D%3Bvar%20isInteger%3Dexports.isInteger%3DNumber.isInteger%7C%7Cfunction(e)%7Breturn%20typeof%20e%3D%3D%3D%5C%5C%5C%22number%5C%5C%5C%22%26%26isFinite(e)%26%26Math.floor(e)%3D%3D%3De%7D%3Bvar%20replaceAll%3Dexports.replaceAll%3Dfunction%20e(t)%7Bvar%20r%3Darguments.length%3E1%26%26arguments%5B1%5D!%3D%3Dundefined%3Farguments%5B1%5D%3A%5C%5C%5C%22%5C%5C%5C%22%3Bvar%20n%3Darguments%5B2%5D%3Bfor(var%20o%3Dn.length%3Bo--%3B)%7Bvar%20s%3Dn%5Bo%5D%3Bvar%20i%3Dr%3Bif(Array.isArray(s))%7Bi%3Ds%5B1%5D%3Bs%3Ds%5B0%5D%7Dt%3Dt.replace(s%2Ci)%7Dreturn%20t%7D%3Bvar%20isTrue%3Dexports.isTrue%3Dfunction%20e(t%2Cr)%7Bif(t%3D%3Dnull)%7Breturn!!r%7Delse%20if(typeof%20t%3D%3D%3D%5C%5C%5C%22string%5C%5C%5C%22)%7Bvar%20n%3DparseInt(t)%3Breturn%20isNaN(n)%3Ft%3D%3D%3D%5C%5C%5C%22true%5C%5C%5C%22%3An!%3D%3D0%7Delse%20if(typeof%20t%3D%3D%3D%5C%5C%5C%22boolean%5C%5C%5C%22)%7Breturn%20t%7Delse%20if(typeof%20t%3D%3D%3D%5C%5C%5C%22number%5C%5C%5C%22)%7Breturn%20n!%3D%3D0%7Dreturn%20false%7D%3Bvar%20removeArrayElement%3Dexports.removeArrayElement%3Dfunction%20e(t%2Cr)%7Bvar%20n%3Dt.indexOf(r)%3Bif(n%3E-1)%7Breturn%20t.splice(n%2C1)%5B0%5D%7D%7D%3Bvar%20getPropertiesByPrefix%3Dexports.getPropertiesByPrefix%3Dfunction%20e(t%2Cr%2Cn)%7Bvar%20o%3DmakeHashMap()%3Bfor(var%20s%20in%20t)%7Bif(startsWith(s%2Cr))%7Bo%5Bn%3Fs.substr(r.length)%3As%5D%3Dt%5Bs%5D%7D%7Dreturn%20o%7D%3Bvar%20getWithoutPrefix%3Dexports.getWithoutPrefix%3Dfunction%20e(t%2Cr)%7Breturn%20startsWith(t%2Cr)%3Ft.substr(r.length)%3At%7D%3Bvar%20hasKeyWithPrefix%3Dexports.hasKeyWithPrefix%3Dfunction%20e(t%2Cr)%7Bfor(var%20n%20in%20t)%7Bif(startsWith(n%2Cr))%7Breturn%20true%7D%7Dreturn%20false%7D%3Bvar%20pickRandom%3Dexports.pickRandom%3Dfunction%20e(t)%7Breturn%20t%5BgetRandomInt(0%2Ct.length-1)%5D%7D%3Bvar%20getFirstElementByClassName%3Dexports.getFirstElementByClassName%3Dfunction%20e(t%2Cr%2Cn)%7Bvar%20o%3D(r%7C%7Cdocument).getElementsByClassName(t)%5B0%5D%3Bif(!o%26%26(typeof%20n%3D%3D%3D%5C%5C%5C%22boolean%5C%5C%5C%22%3Fn%3Atrue))%7Bvar%20s%3D'Missing%20element%20with%20class%20%5C%5C%5C%22'%2Bt%2B'%5C%5C%5C%22%20inside%20'%2Br%3Bthrow%20new%20_exception.EnvironmentError(s)%7Dreturn%20o%7D%3Bvar%20getRandomLabel%3Dexports.getRandomLabel%3Dfunction%20e()%7Bvar%20t%3Darguments.length%3E0%26%26arguments%5B0%5D!%3D%3Dundefined%3Farguments%5B0%5D%3A%7B%7D%3Bvar%20r%3DpickRandom(%5B%5C%5C%5C%22exciting%5C%5C%5C%22%2C%5C%5C%5C%22notable%5C%5C%5C%22%2C%5C%5C%5C%22epic%5C%5C%5C%22%2C%5C%5C%5C%22new%5C%5C%5C%22%2C%5C%5C%5C%22fancy%5C%5C%5C%22%2C%5C%5C%5C%22great%5C%5C%5C%22%2C%5C%5C%5C%22cool%5C%5C%5C%22%2C%5C%5C%5C%22fresh%5C%5C%5C%22%2C%5C%5C%5C%22funky%5C%5C%5C%22%2C%5C%5C%5C%22clever%5C%5C%5C%22%5D)%3Bvar%20n%3D(t.object%7C%7CpickRandom(%5B%5C%5C%5C%22concept%5C%5C%5C%22%2C%5C%5C%5C%22idea%5C%5C%5C%22%2C%5C%5C%5C%22thought%5C%5C%5C%22%2C%5C%5C%5C%22topic%5C%5C%5C%22%2C%5C%5C%5C%22subject%5C%5C%5C%22%5D))%2B(t.plural%3F%5C%5C%5C%22s%5C%5C%5C%22%3A%5C%5C%5C%22%5C%5C%5C%22)%3Breturn%5C%5C%5C%22My%20%5C%5C%5C%22%2Br%2B%5C%5C%5C%22%20%5C%5C%5C%22%2Bn%7D%3Bvar%20_merge%3Dfunction%20e(t%2Cr)%7Bif((typeof%20t%3D%3D%3D%5C%5C%5C%22undefined%5C%5C%5C%22%3F%5C%5C%5C%22undefined%5C%5C%5C%22%3A_typeof(t))!%3D%3D%5C%5C%5C%22object%5C%5C%5C%22)%7Bt%3D%7B%7D%7Dfor(var%20n%20in%20r)%7Bif(r.hasOwnProperty(n))%7Bif(r%5Bn%5D!%3Dnull)%7Bt%5Bn%5D%3D_typeof(r%5Bn%5D)%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22%3Fe(t%5Bn%5D%2Cr%5Bn%5D)%3Ar%5Bn%5D%7D%7D%7Dreturn%20t%7D%3Bvar%20merge%3Dexports.merge%3Dfunction%20e(t)%7Bfor(var%20r%3Darguments.length%2Cn%3DArray(r%3E1%3Fr-1%3A0)%2Co%3D1%3Bo%3Cr%3Bo%2B%2B)%7Bn%5Bo-1%5D%3Darguments%5Bo%5D%7Dfor(var%20s%3D0%2Ci%3Dn.length%3Bs%3Ci%3Bs%2B%2B)%7Bvar%20a%3Dn%5Bs%5D%3Bif(a!%3Dnull%26%26(typeof%20a%3D%3D%3D%5C%5C%5C%22undefined%5C%5C%5C%22%3F%5C%5C%5C%22undefined%5C%5C%5C%22%3A_typeof(a))%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22)%7Bt%3D_merge(t%2Ca)%7D%7Dreturn%20t%7D%3Bvar%20setDomListeners%3Dexports.setDomListeners%3Dfunction%20e(t%2Cr%2Cn%2Co)%7Bo%3Dtypeof%20o%3D%3D%3D%5C%5C%5C%22boolean%5C%5C%5C%22%3Fo%3Afalse%3Bt%3Dt%2B%5C%5C%5C%22EventListener%5C%5C%5C%22%3Bfor(var%20s%20in%20n)%7Bvar%20i%3Dn%5Bs%5D%3Bif(typeof%20i%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22)%7Br%5Bt%5D(s%2Ci%2Co)%7Delse%7Br%5Bt%5D(s%2Ci%5B0%5D%2Ctypeof%20i%5B1%5D%3D%3D%3D%5C%5C%5C%22boolean%5C%5C%5C%22%3Fi%5B1%5D%3Ao)%7D%7D%7D%3Bvar%20removeDOMChildNodes%3Dexports.removeDOMChildNodes%3Dfunction%20e(t)%7Bfor(var%20r%3Dt.childNodes.length%3Br--%3B)%7Bt.removeChild(t.childNodes%5Br%5D)%7D%7D%3Bvar%20mod%3Dexports.mod%3Dfunction%20e(t%2Cr)%7Bvar%20n%3Dt%25r%3Breturn%20Math.floor(n%3E%3D0%3Fn%3An%2Br)%7D%3Bvar%20getNearestRasterPosition%3Dexports.getNearestRasterPosition%3Dfunction%20e(t%2Cr)%7Bvar%20n%3Dt.x%2Co%3Dt.y%3Bvar%20s%3Dr%2F2%3Bvar%20i%3Dmod(n%2Cr)%3Bvar%20a%3Dmod(o%2Cr)%3Breturn%7Bx%3Ai%3Cs%3Fn-i%3An-i%2Br%2Cy%3Aa%3Cs%3Fo-a%3Ao-a%2Br%7D%7D%3Bvar%20bindTo%3Dexports.bindTo%3Dfunction%20e(t%2Cr)%7Bfor(var%20n%3Dr.length%3Bn--%3B)%7Bvar%20o%3Dt%5Br%5Bn%5D%5D%3Bt%5Br%5Bn%5D%5D%3Do.bind(t)%7D%7D%3B%5C%5Cn%2F%2F%23%20sourceMappingURL%3D.%2Fmaps%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Flib%2Futils%2Fbasic.js.map%5C%5Cn%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22type%5C%22%3A%20%5C%22application%2Fjavascript%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22module-type%5C%22%3A%20%5C%22library%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Flib%2Futils%2FthirdParty%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Flib%2Futils%2FthirdParty%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3B%5C%5Cn%2F*%20%40preserve%20TW-Guard%20*%2F%5C%5Cn%2F*%5C%5C%5C%5C%5C%5Cn%5C%5Cntitle%3A%20%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Flib%2Futils%2FthirdParty%5C%5Cntype%3A%20application%2Fjavascript%5C%5Cnmodule-type%3A%20library%5C%5Cn%5C%5Cn%40preserve%5C%5Cn%5C%5Cn%5C%5C%5C%5C*%2F%5C%5Cn%2F*%20%40preserve%20TW-Guard%20*%2Fvar%20generateDraftTitle%3Dexports.generateDraftTitle%3Dfunction%20e(n)%7Bvar%20r%3D0%2Ct%3Dvoid%200%3Bdo%7Bt%3D%5C%5C%5C%22Draft%20%5C%5C%5C%22%2B(r%3Fr%2B1%2B%5C%5C%5C%22%20%5C%5C%5C%22%3A%5C%5C%5C%22%5C%5C%5C%22)%2B%5C%5C%5C%22of%20'%5C%5C%5C%22%2Bn%2B%5C%5C%5C%22'%5C%5C%5C%22%3Br%2B%2B%7Dwhile(%24tw.wiki.tiddlerExists(t))%3Breturn%20t%7D%3Bvar%20makeDraftTiddler%3Dexports.makeDraftTiddler%3Dfunction%20e(n)%7Bvar%20r%3D%24tw.wiki.findDraft(n)%3Bif(r)%7Breturn%20%24tw.wiki.getTiddler(r)%7Dvar%20t%3D%24tw.wiki.getTiddler(n)%3Br%3DgenerateDraftTitle(n)%3Bvar%20l%3Dnew%20%24tw.Tiddler(t%2C%7Btitle%3Ar%2C%5C%5C%5C%22draft.title%5C%5C%5C%22%3An%2C%5C%5C%5C%22draft.of%5C%5C%5C%22%3An%7D%2C%24tw.wiki.getModificationFields())%3B%24tw.wiki.addTiddler(l)%3Breturn%20l%7D%3Bvar%20getFullScreenApis%3Dexports.getFullScreenApis%3Dfunction%20e()%7Bvar%20n%3Ddocument%2Cr%3Dn.body%2Ct%3D%7B_requestFullscreen%3Ar.webkitRequestFullscreen!%3D%3Dundefined%3F%5C%5C%5C%22webkitRequestFullscreen%5C%5C%5C%22%3Ar.mozRequestFullScreen!%3D%3Dundefined%3F%5C%5C%5C%22mozRequestFullScreen%5C%5C%5C%22%3Ar.msRequestFullscreen!%3D%3Dundefined%3F%5C%5C%5C%22msRequestFullscreen%5C%5C%5C%22%3Ar.requestFullscreen!%3D%3Dundefined%3F%5C%5C%5C%22requestFullscreen%5C%5C%5C%22%3A%5C%5C%5C%22%5C%5C%5C%22%2C_exitFullscreen%3An.webkitExitFullscreen!%3D%3Dundefined%3F%5C%5C%5C%22webkitExitFullscreen%5C%5C%5C%22%3An.mozCancelFullScreen!%3D%3Dundefined%3F%5C%5C%5C%22mozCancelFullScreen%5C%5C%5C%22%3An.msExitFullscreen!%3D%3Dundefined%3F%5C%5C%5C%22msExitFullscreen%5C%5C%5C%22%3An.exitFullscreen!%3D%3Dundefined%3F%5C%5C%5C%22exitFullscreen%5C%5C%5C%22%3A%5C%5C%5C%22%5C%5C%5C%22%2C_fullscreenElement%3An.webkitFullscreenElement!%3D%3Dundefined%3F%5C%5C%5C%22webkitFullscreenElement%5C%5C%5C%22%3An.mozFullScreenElement!%3D%3Dundefined%3F%5C%5C%5C%22mozFullScreenElement%5C%5C%5C%22%3An.msFullscreenElement!%3D%3Dundefined%3F%5C%5C%5C%22msFullscreenElement%5C%5C%5C%22%3An.fullscreenElement!%3D%3Dundefined%3F%5C%5C%5C%22fullscreenElement%5C%5C%5C%22%3A%5C%5C%5C%22%5C%5C%5C%22%2C_fullscreenChange%3An.webkitFullscreenElement!%3D%3Dundefined%3F%5C%5C%5C%22webkitfullscreenchange%5C%5C%5C%22%3An.mozFullScreenElement!%3D%3Dundefined%3F%5C%5C%5C%22mozfullscreenchange%5C%5C%5C%22%3An.msFullscreenElement!%3D%3Dundefined%3F%5C%5C%5C%22MSFullscreenChange%5C%5C%5C%22%3An.fullscreenElement!%3D%3Dundefined%3F%5C%5C%5C%22fullscreenchange%5C%5C%5C%22%3A%5C%5C%5C%22%5C%5C%5C%22%7D%3Bif(!t._requestFullscreen%7C%7C!t._exitFullscreen%7C%7C!t._fullscreenElement)%7Breturn%20null%7Delse%7Breturn%20t%7D%7D%3Bvar%20flatten%3Dexports.flatten%3Dfunction%20e(n)%7Bvar%20r%3Darguments.length%3E1%26%26arguments%5B1%5D!%3D%3Dundefined%3Farguments%5B1%5D%3A%7B%7D%3Bvar%20t%3Dr.delimiter%7C%7C%5C%5C%5C%22.%5C%5C%5C%22%3Bvar%20l%3Dr.prefix%7C%7C%5C%5C%5C%22%5C%5C%5C%22%3Bvar%20i%3D%7B%7D%3Bfunction%20u(e%2Cn)%7BObject.keys(e).forEach(function(f)%7Bvar%20s%3De%5Bf%5D%3Bvar%20c%3Dr.safe%26%26Array.isArray(s)%3Bvar%20a%3DObject.prototype.toString.call(s)%3Bvar%20d%3Da%3D%3D%3D%5C%5C%5C%22%5Bobject%20Object%5D%5C%5C%5C%22%7C%7Ca%3D%3D%3D%5C%5C%5C%22%5Bobject%20Array%5D%5C%5C%5C%22%3Bvar%20o%3Dn%3Fn%2Bt%2Bf%3Al%2Bf%3Bif(!c%26%26d)%7Breturn%20u(s%2Co)%7Di%5Bo%5D%3Ds%7D)%7Du(n)%3Breturn%20i%7D%3Bvar%20unflatten%3Dexports.unflatten%3Dfunction%20e(n)%7Bvar%20r%3Darguments.length%3E1%26%26arguments%5B1%5D!%3D%3Dundefined%3Farguments%5B1%5D%3A%7B%7D%3Bvar%20t%3Dr.delimiter%7C%7C%5C%5C%5C%22.%5C%5C%5C%22%3Bvar%20l%3D%7B%7D%3Bif(Object.prototype.toString.call(n)!%3D%3D%5C%5C%5C%22%5Bobject%20Object%5D%5C%5C%5C%22)%7Breturn%20n%7Dfunction%20i(e)%7Bvar%20n%3DNumber(e)%3Breturn%20isNaN(n)%7C%7Ce.indexOf(%5C%5C%5C%22.%5C%5C%5C%22)!%3D%3D-1%3Fe%3An%7DObject.keys(n).forEach(function(u)%7Bvar%20f%3Du.split(t)%3Bvar%20s%3Di(f.shift())%3Bvar%20c%3Di(f%5B0%5D)%3Bvar%20a%3Dl%3Bwhile(c!%3D%3Dundefined)%7Bif(a%5Bs%5D%3D%3D%3Dundefined)%7Ba%5Bs%5D%3Dtypeof%20c%3D%3D%3D%5C%5C%5C%22number%5C%5C%5C%22%26%26!r.object%3F%5B%5D%3A%7B%7D%7Da%3Da%5Bs%5D%3Bif(f.length%3E0)%7Bs%3Di(f.shift())%3Bc%3Di(f%5B0%5D)%7D%7Da%5Bs%5D%3De(n%5Bu%5D%2Cr)%7D)%3Breturn%20l%7D%3Bvar%20genUUID%3Dexports.genUUID%3Dfunction()%7Bvar%20e%3D%5C%5C%5C%220123456789abcdefghijklmnopqrstuvwxyz%5C%5C%5C%22.split(%5C%5C%5C%22%5C%5C%5C%22)%3Breturn%20function()%7Bvar%20n%3De%2Cr%3Dnew%20Array(36)%3Bvar%20t%3D0%2Cl%3Bfor(var%20i%3D0%3Bi%3C36%3Bi%2B%2B)%7Bif(i%3D%3D8%7C%7Ci%3D%3D13%7C%7Ci%3D%3D18%7C%7Ci%3D%3D23)%7Br%5Bi%5D%3D%5C%5C%5C%22-%5C%5C%5C%22%7Delse%20if(i%3D%3D14)%7Br%5Bi%5D%3D%5C%5C%5C%224%5C%5C%5C%22%7Delse%7Bif(t%3C%3D2)t%3D33554432%2BMath.random()*16777216%7C0%3Bl%3Dt%2615%3Bt%3Dt%3E%3E4%3Br%5Bi%5D%3Dn%5Bi%3D%3D19%3Fl%263%7C8%3Al%5D%7D%7Dreturn%20r.join(%5C%5C%5C%22%5C%5C%5C%22)%7D%7D()%3B%5C%5Cn%2F%2F%23%20sourceMappingURL%3D.%2Fmaps%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Flib%2Futils%2FthirdParty.js.map%5C%5Cn%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22type%5C%22%3A%20%5C%22application%2Fjavascript%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22module-type%5C%22%3A%20%5C%22library%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Flib%2Futils%2Ftmap%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Flib%2Futils%2Ftmap%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bexports.getArrayValuesAsHashmapKeys%3Dexports.getLookupTable%3Dexports.keyOfItemWithProperty%3Dexports.keysOfItemsWithProperty%3Dexports.getDublicates%3Dexports.getId%3Dexports.refreshDataSet%3Dexports.drawRaster%3Dexports.getPrettyFilter%3Dexports.groupByProperty%3Dexports.isEdgeTypeMatch%3Dexports.getEdgeTypeMatches%3Dexports.getDataUri%3Dexports.convert%3Dexports.getValues%3Dexports.getIterableCollection%3Dexports.getLabel%3Dundefined%3Bvar%20_typeof%3Dtypeof%20Symbol%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22%26%26typeof%20Symbol.iterator%3D%3D%3D%5C%5C%5C%22symbol%5C%5C%5C%22%3Ffunction(e)%7Breturn%20typeof%20e%7D%3Afunction(e)%7Breturn%20e%26%26typeof%20Symbol%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22%26%26e.constructor%3D%3D%3DSymbol%26%26e!%3D%3DSymbol.prototype%3F%5C%5C%5C%22symbol%5C%5C%5C%22%3Atypeof%20e%7D%3B%2F*%20%40preserve%20TW-Guard%20*%2F%5C%5Cn%2F*%5C%5C%5C%5C%5C%5Cn%5C%5Cntitle%3A%20%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Flib%2Futils%2Ftmap%5C%5Cntype%3A%20application%2Fjavascript%5C%5Cnmodule-type%3A%20library%5C%5Cn%5C%5Cn%40preserve%5C%5Cn%5C%5Cn%5C%5C%5C%5C*%2F%5C%5Cn%2F*%20%40preserve%20TW-Guard%20*%2Fvar%20_vis%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Fvis%2Fvis.js%5C%5C%5C%22)%3Bvar%20_vis2%3D_interopRequireDefault(_vis)%3Bvar%20_exception%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Fexception%5C%5C%5C%22)%3Bvar%20_basic%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Flib%2Futils%2Fbasic%5C%5C%5C%22)%3Bvar%20basicUtils%3D_interopRequireWildcard(_basic)%3Bvar%20_wiki%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Flib%2Futils%2Fwiki%5C%5C%5C%22)%3Bvar%20wikiUtils%3D_interopRequireWildcard(_wiki)%3Bfunction%20_interopRequireWildcard(e)%7Bif(e%26%26e.__esModule)%7Breturn%20e%7Delse%7Bvar%20t%3D%7B%7D%3Bif(e!%3Dnull)%7Bfor(var%20r%20in%20e)%7Bif(Object.prototype.hasOwnProperty.call(e%2Cr))t%5Br%5D%3De%5Br%5D%7D%7Dt.default%3De%3Breturn%20t%7D%7Dfunction%20_interopRequireDefault(e)%7Breturn%20e%26%26e.__esModule%3Fe%3A%7Bdefault%3Ae%7D%7Dvar%20getLabel%3Dexports.getLabel%3Dfunction%20e(t%2Cr)%7Bvar%20i%3DwikiUtils.getTiddler(t)%3Breturn(i%26%26i.fields%5Br%5D%3Fi.fields%5Br%5D%3Ai.fields.title).replace(%5C%5C%5C%22%5C%5C%5C%5C%5C%5C%5C%5Cn%5C%5C%5C%22%2C%5C%5C%5C%22%5C%5C%5C%5Cn%5C%5C%5C%22)%7D%3Bvar%20getIterableCollection%3Dexports.getIterableCollection%3Dfunction%20e(t)%7Breturn%20t%20instanceof%20_vis2.default.DataSet%3Ft.get()%3At%7D%3Bvar%20getValues%3Dexports.getValues%3Dfunction%20e(t)%7Bif(Array.isArray(t))%7Breturn%20t%7Delse%20if(t%20instanceof%20_vis2.default.DataSet)%7Breturn%20t.get(%7BreturnType%3A%5C%5C%5C%22Array%5C%5C%5C%22%7D)%7Dvar%20r%3D%5B%5D%3Bvar%20i%3DObject.keys(t)%3Bfor(var%20a%3Di.length%3Ba--%3B)%7Br.push(t%5Bi%5Ba%5D%5D)%7Dreturn%20r%7D%3Bvar%20convert%3Dexports.convert%3Dfunction%20e(t%2Cr)%7Bif((typeof%20t%3D%3D%3D%5C%5C%5C%22undefined%5C%5C%5C%22%3F%5C%5C%5C%22undefined%5C%5C%5C%22%3A_typeof(t))!%3D%3D%5C%5C%5C%22object%5C%5C%5C%22)%7Bthrow%20new%20_exception.InvalidArgumentException(t%2Cr)%7Dif(r%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22)%7Br%3D%5C%5C%5C%22hashmap%5C%5C%5C%22%7Dvar%20i%3D%7Barray%3Afunction%20e(t)%7Breturn%20getValues(t)%7D%2Chashmap%3Afunction%20e(t)%7Breturn%20t%20instanceof%20_vis2.default.DataSet%3Ft.get(%7BreturnType%3A%5C%5C%5C%22Object%5C%5C%5C%22%7D)%3At%7D%2Cdataset%3Afunction%20e(t)%7Breturn%20t%20instanceof%20_vis2.default.DataSet%3Ft%3A!Array.isArray(t)%3FgetValues(t)%3Anew%20_vis2.default.DataSet(t)%7D%7D%3Breturn%20i%5Br%5D(t)%7D%3Bvar%20getDataUri%3Dexports.getDataUri%3Dfunction%20e(t%2Cr%2Ci)%7Bvar%20a%3DwikiUtils.getTiddler(t)%3Br%3Dr%7C%7Ca.fields.type%7C%7C%5C%5C%5C%22image%2Fsvg%2Bxml%5C%5C%5C%22%3Bvar%20s%3Da.fields.text%3Bvar%20o%3D%24tw.config.contentTypeInfo%5Br%5D.encoding%3Bif(r%3D%3D%3D%5C%5C%5C%22image%2Fsvg%2Bxml%5C%5C%5C%22)%7Bs%3Ds.replace(%2F%5C%5C%5C%5Cr%3F%5C%5C%5C%5Cn%7C%5C%5C%5C%5Cr%2Fg%2C%5C%5C%5C%22%20%5C%5C%5C%22)%3Bif(!basicUtils.hasSubString(%5C%5C%5C%22xmlns%5C%5C%5C%22%2Cs))%7Bs%3Ds.replace(%2F%3Csvg%2F%2C'%3Csvg%20xmlns%3D%5C%5C%5C%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%5C%5C%5C%22')%7D%7Dif(i%26%26o!%3D%3D%5C%5C%5C%22base64%5C%5C%5C%22)%7Bo%3D%5C%5C%5C%22base64%5C%5C%5C%22%3Bs%3DbasicUtils.base64(s)%7Dreturn%5C%5C%5C%22data%3A%5C%5C%5C%22%2Br%2B%5C%5C%5C%22%3B%5C%5C%5C%22%2Bo%2B%5C%5C%5C%22%2C%5C%5C%5C%22%2Bs%7D%3Bvar%20eTyFiltAutoPrefix%3D%5C%5C%5C%22%5Ball%5B%5D%5D%20%5C%5C%5C%22%3Bvar%20getEdgeTypeMatches%3Dexports.getEdgeTypeMatches%3Dfunction%20e()%7Bvar%20t%3Darguments.length%3E0%26%26arguments%5B0%5D!%3D%3Dundefined%3Farguments%5B0%5D%3A%5C%5C%5C%22%5C%5C%5C%22%3Bvar%20r%3Darguments%5B1%5D%3Bif(!r)%7Br%3DwikiUtils.getTiddlersByPrefix(%24tm.path.edgeTypes%2B%5C%5C%5C%22%2F%5C%5C%5C%22%2C%7Biterator%3A%5C%5C%5C%22eachTiddlerPlusShadows%5C%5C%5C%22%2CremovePrefix%3Atrue%7D)%7Dif(r!%3Dnull%26%26!Array.isArray(r))%7Br%3DObject.keys(r)%7Dreturn%20wikiUtils.getMatches(eTyFiltAutoPrefix%2Bt%2Cr)%7D%3Bvar%20isEdgeTypeMatch%3Dexports.isEdgeTypeMatch%3Dfunction%20e(t)%7Bvar%20r%3Darguments.length%3E1%26%26arguments%5B1%5D!%3D%3Dundefined%3Farguments%5B1%5D%3A%5C%5C%5C%22%5C%5C%5C%22%3Breturn%20wikiUtils.isMatch(t%2CeTyFiltAutoPrefix%2Br)%7D%3Bvar%20groupByProperty%3Dexports.groupByProperty%3Dfunction%20e(t%2Cr)%7Bt%3DgetIterableCollection(t)%3Bvar%20i%3DbasicUtils.makeHashMap()%3Bvar%20a%3DObject.keys(t)%3Bfor(var%20s%20in%20a)%7Bvar%20o%3Dt%5Ba%5Bs%5D%5D%3Bvar%20n%3Do%5Br%5D%3Bif(n%3D%3Dnull)%7Bthrow%5C%5C%5C%22Cannot%20group%20by%20property%20%5C%5C%5C%22%2Br%7Delse%7Bif(!Array.isArray(i%5Bn%5D))%7Bi%5Bn%5D%3D%5B%5D%7Di%5Bn%5D.push(o)%7D%7Dreturn%20i%7D%3Bvar%20getPrettyFilter%3Dexports.getPrettyFilter%3Dfunction%20e(t)%7Bt%3Dt.trim().replace(%5C%5C%5C%22%5D%5B%5C%5C%5C%22%2C%5C%5C%5C%22%5D%20%5B%5C%5C%5C%22)%3Bvar%20r%3D%2F%5B%2B-%5D%3F%5C%5C%5C%5C%5B.%2B%3F%5B%5C%5C%5C%5C%5D%5C%5C%5C%5C%7D%5C%5C%5C%5C%3E%5D%5C%5C%5C%5C%5D%2Fg%3Bvar%20i%3Dt.match(r)%3Bt%3Dt.replace(r%2C%5C%5C%5C%22%20%5B%5D%20%5C%5C%5C%22).trim()%3Bvar%20a%3Dt.split(%2F%5C%5C%5C%5Cs%2B%2F)%3Bvar%20s%3D0%3Bvar%20o%3D%5B%5D%3Bfor(var%20n%3D0%2Cl%3Da.length%3Bn%3Cl%3Bn%2B%2B)%7Bo%5Bn%5D%3Da%5Bn%5D%3D%3D%3D%5C%5C%5C%22%5B%5D%5C%5C%5C%22%3Fi%5Bs%2B%2B%5D%3Aa%5Bn%5D%7Dreturn%20o.join(%5C%5C%5C%22%5C%5C%5C%5Cn%5C%5C%5C%22)%7D%3Bvar%20drawRaster%3Dexports.drawRaster%3Dfunction%20e(t%2Cr%2Ci%2Ca)%7Bvar%20s%3Darguments.length%3E4%26%26arguments%5B4%5D!%3D%3Dundefined%3Farguments%5B4%5D%3A%5C%5C%5C%22%23D9D9D9%5C%5C%5C%22%3Bvar%20o%3DbasicUtils.getNearestRasterPosition(i%2Ca)%2Cn%3Do.x%2Cl%3Do.y%3Bvar%20u%3Dt.canvas.width%2Fr%3Bvar%20p%3Dt.canvas.height%2Fr%3Bvar%20f%3Da*2%3Bvar%20v%3DMath.ceil(u%2Fa%2F2)*a%2Bf%3Bvar%20c%3DMath.ceil(p%2Fa%2F2)*a%2Bf%3Bvar%20y%3Dn-v%3Bvar%20d%3Dn%2Bv%3Bvar%20g%3Dl-c%3Bvar%20h%3Dl%2Bc%3Bt.beginPath()%3Bfor(var%20b%3Dy%3Bb%3Cd%3Bb%2B%3Da)%7Bt.moveTo(b%2Cg)%3Bt.lineTo(b%2Ch)%7Dfor(var%20x%3Dg%3Bx%3C%3Dh%3Bx%2B%3Da)%7Bt.moveTo(y%2Cx)%3Bt.lineTo(d%2Cx)%7Dt.strokeStyle%3Ds%3Bt.fillStyle%3Ds%3Bt.stroke()%7D%3Bvar%20refreshDataSet%3Dexports.refreshDataSet%3Dfunction%20e(t%2Cr)%7Bvar%20i%3Dt.get(%7BreturnType%3A%5C%5C%5C%22Object%5C%5C%5C%22%7D)%3Bvar%20a%3D%5B%5D%3Bvar%20s%3D%5B%5D%3Bvar%20o%3D%5B%5D%3Bvar%20n%3D%5B%5D%3Bfor(var%20l%20in%20r)%7Bif(i%5Bl%5D)%7Bif(basicUtils.isEqual(i%5Bl%5D%2Cr%5Bl%5D))%7Bcontinue%7Ds.push(l)%3Bt.remove(l)%7Delse%7Ba.push(l)%7Dif(r%5Bl%5D.x%3D%3D%3Dundefined)%7Bo.push(l)%7Dt.add(r%5Bl%5D)%7Dfor(var%20u%20in%20i)%7Bif(!r%5Bu%5D)%7Bn.push(u)%3Bt.remove(u)%7D%7Dreturn%7BwithoutPosition%3Ao%2Cinserted%3Aa%2Cupdated%3As%2Cremoved%3An%7D%7D%3Bvar%20getId%3Dexports.getId%3Dfunction%20e(t)%7Breturn%20wikiUtils.getTiddler(t).fields%5B%5C%5C%5C%22tmap.id%5C%5C%5C%22%5D%7D%3Bvar%20getDublicates%3Dexports.getDublicates%3Dfunction%20e(t)%7Bvar%20r%3DgetId(t)%3Bif(!r)%7Breturn%5B%5D%7Dvar%20i%3DwikiUtils.getTiddlersWithField(%5C%5C%5C%22tmap.id%5C%5C%5C%22%2Cr%2C%7Blimit%3A2%7D)%3Bdelete%20i%5BwikiUtils.getTiddlerRef(t)%5D%3Breturn%20Object.keys(i)%7D%3Bvar%20keysOfItemsWithProperty%3Dexports.keysOfItemsWithProperty%3Dfunction%20e(t%2Cr%2Ci%2Ca)%7Bt%3DgetIterableCollection(t)%3Bvar%20s%3DObject.keys(t)%3Bvar%20o%3D%5B%5D%3Ba%3Dtypeof%20a%3D%3D%3D%5C%5C%5C%22number%5C%5C%5C%22%3Fa%3As.length%3Bfor(var%20n%3D0%2Cl%3Ds.length%3Bn%3Cl%3Bn%2B%2B)%7Bvar%20u%3Ds%5Bn%5D%3Bif(_typeof(t%5Bu%5D)%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22%26%26t%5Bu%5D%5Br%5D)%7Bif(!i%7C%7Ct%5Bu%5D%5Br%5D%3D%3D%3Di)%7Bo.push(u)%3Bif(o.length%3D%3D%3Da)%7Bbreak%7D%7D%7D%7Dreturn%20o%7D%3Bvar%20keyOfItemWithProperty%3Dexports.keyOfItemWithProperty%3Dfunction%20e(t%2Cr%2Ci)%7Breturn%20keysOfItemsWithProperty(t%2Cr%2Ci%2C1)%5B0%5D%7D%3Bvar%20getLookupTable%3Dexports.getLookupTable%3Dfunction%20e(t%2Cr)%7Bt%3DgetIterableCollection(t)%3Bvar%20i%3DbasicUtils.makeHashMap()%3Bvar%20a%3DObject.keys(t)%3Bfor(var%20s%3D0%2Co%3Da.length%3Bs%3Co%3Bs%2B%2B)%7Bvar%20n%3Da%5Bs%5D%3Bvar%20l%3Dr%3Ft%5Bn%5D%5Br%5D%3At%5Bn%5D%3Bvar%20u%3Dtypeof%20l%3D%3D%3D%5C%5C%5C%22undefined%5C%5C%5C%22%3F%5C%5C%5C%22undefined%5C%5C%5C%22%3A_typeof(l)%3Bif(u%3D%3D%3D%5C%5C%5C%22string%5C%5C%5C%22%26%26l!%3D%3D%5C%5C%5C%22%5C%5C%5C%22%7C%7Cu%3D%3D%3D%5C%5C%5C%22number%5C%5C%5C%22)%7Bif(!i%5Bl%5D)%7Bi%5Bl%5D%3Dr%3Ft%5Bn%5D%3Atrue%3Bcontinue%7D%7Dif(r)%7Bthrow%20new%20Error('Cannot%20use%20%5C%5C%5C%22'%2Bl%2B'%5C%5C%5C%22%20as%20lookup%20table%20index')%7D%7Dreturn%20i%7D%3Bvar%20getArrayValuesAsHashmapKeys%3Dexports.getArrayValuesAsHashmapKeys%3DgetLookupTable%3B%5C%5Cn%2F%2F%23%20sourceMappingURL%3D.%2Fmaps%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Flib%2Futils%2Ftmap.js.map%5C%5Cn%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22type%5C%22%3A%20%5C%22application%2Fjavascript%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22module-type%5C%22%3A%20%5C%22library%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Futils%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Futils%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bexports.utils%3Dundefined%3Bvar%20_extends%3DObject.assign%7C%7Cfunction(i)%7Bfor(var%20r%3D1%3Br%3Carguments.length%3Br%2B%2B)%7Bvar%20t%3Darguments%5Br%5D%3Bfor(var%20e%20in%20t)%7Bif(Object.prototype.hasOwnProperty.call(t%2Ce))%7Bi%5Be%5D%3Dt%5Be%5D%7D%7D%7Dreturn%20i%7D%3B%2F*%20%40preserve%20TW-Guard%20*%2F%5C%5Cn%2F*%5C%5C%5C%5C%5C%5Cn%5C%5Cntitle%3A%20%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Futils%5C%5Cntype%3A%20application%2Fjavascript%5C%5Cnmodule-type%3A%20library%5C%5Cn%5C%5Cn%40preserve%5C%5Cn%5C%5Cn%5C%5C%5C%5C*%2F%5C%5Cn%2F*%20%40preserve%20TW-Guard%20*%2Fvar%20_basic%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Flib%2Futils%2Fbasic%5C%5C%5C%22)%3Bvar%20basicUtils%3D_interopRequireWildcard(_basic)%3Bvar%20_thirdParty%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Flib%2Futils%2FthirdParty%5C%5C%5C%22)%3Bvar%20thirdPartyUtils%3D_interopRequireWildcard(_thirdParty)%3Bvar%20_wiki%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Flib%2Futils%2Fwiki%5C%5C%5C%22)%3Bvar%20wikiUtils%3D_interopRequireWildcard(_wiki)%3Bvar%20_tmap%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Flib%2Futils%2Ftmap%5C%5C%5C%22)%3Bvar%20tMapUtils%3D_interopRequireWildcard(_tmap)%3Bfunction%20_interopRequireWildcard(i)%7Bif(i%26%26i.__esModule)%7Breturn%20i%7Delse%7Bvar%20r%3D%7B%7D%3Bif(i!%3Dnull)%7Bfor(var%20t%20in%20i)%7Bif(Object.prototype.hasOwnProperty.call(i%2Ct))r%5Bt%5D%3Di%5Bt%5D%7D%7Dr.default%3Di%3Breturn%20r%7D%7Dvar%20utils%3Dexports.utils%3D_extends(%7B%7D%2CbasicUtils%2CthirdPartyUtils%2CwikiUtils%2CtMapUtils)%3Bexports.default%3Dutils%3B%5C%5Cn%2F%2F%23%20sourceMappingURL%3D.%2Fmaps%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Flib%2Futils%2Futils.js.map%5C%5Cn%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22type%5C%22%3A%20%5C%22application%2Fjavascript%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22module-type%5C%22%3A%20%5C%22library%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Flib%2Futils%2Fwiki%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Flib%2Futils%2Fwiki%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bexports.touch%3Dexports.addTiddler%3Dexports.getTiddlersByPrefix%3Dexports.getTiddlerWithField%3Dexports.getTiddlersWithField%3Dexports.deleteByPrefix%3Dexports.cp%3Dexports.mv%3Dexports.addTWlisteners%3Dexports.getChildWidgetByProperty%3Dexports.getMergedTiddlers%3Dexports.isSystemOrDraft%3Dexports.isDraft%3Dexports.setText%3Dexports.getText%3Dexports.isLeftVersionGreater%3Dexports.getEntry%3Dexports.setEntry%3Dexports.clone%3Dexports.writeFieldData%3Dexports.parseFieldData%3Dexports.isPreviewed%3Dexports.notify%3Dexports.registerTransclude%3Dexports.getElementNode%3Dexports.getTiddlerNode%3Dexports.getTranscludeNode%3Dexports.isMatch%3Dexports.getMatches%3Dexports.moveFieldValues%3Dexports.deleteTiddlers%3Dexports.setField%3Dexports.setSidebarTab%3Dexports.tiddlerExists%3Dexports.getField%3Dexports.getTiddler%3Dexports.getTiddlerRef%3Dundefined%3Bvar%20_typeof%3Dtypeof%20Symbol%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22%26%26typeof%20Symbol.iterator%3D%3D%3D%5C%5C%5C%22symbol%5C%5C%5C%22%3Ffunction(e)%7Breturn%20typeof%20e%7D%3Afunction(e)%7Breturn%20e%26%26typeof%20Symbol%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22%26%26e.constructor%3D%3D%3DSymbol%26%26e!%3D%3DSymbol.prototype%3F%5C%5C%5C%22symbol%5C%5C%5C%22%3Atypeof%20e%7D%3Bvar%20_exception%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Fexception%5C%5C%5C%22)%3Bvar%20_basic%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Flib%2Futils%2Fbasic%5C%5C%5C%22)%3Bvar%20basicUtils%3D_interopRequireWildcard(_basic)%3Bfunction%20_interopRequireWildcard(e)%7Bif(e%26%26e.__esModule)%7Breturn%20e%7Delse%7Bvar%20t%3D%7B%7D%3Bif(e!%3Dnull)%7Bfor(var%20r%20in%20e)%7Bif(Object.prototype.hasOwnProperty.call(e%2Cr))t%5Br%5D%3De%5Br%5D%7D%7Dt.default%3De%3Breturn%20t%7D%7Dfunction%20_defineProperty(e%2Ct%2Cr)%7Bif(t%20in%20e)%7BObject.defineProperty(e%2Ct%2C%7Bvalue%3Ar%2Cenumerable%3Atrue%2Cconfigurable%3Atrue%2Cwritable%3Atrue%7D)%7Delse%7Be%5Bt%5D%3Dr%7Dreturn%20e%7D%2F*%20%40preserve%20TW-Guard%20*%2F%5C%5Cn%2F*%5C%5C%5C%5C%5C%5Cn%5C%5Cntitle%3A%20%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Flib%2Futils%2Fwiki%5C%5Cntype%3A%20application%2Fjavascript%5C%5Cnmodule-type%3A%20library%5C%5Cn%5C%5Cn%40preserve%5C%5Cn%5C%5Cn%5C%5C%5C%5C*%2F%5C%5Cn%2F*%20%40preserve%20TW-Guard%20*%2Fvar%20getTiddlerRef%3Dexports.getTiddlerRef%3Dfunction%20e(t)%7Bif(t%20instanceof%20%24tw.Tiddler)%7Breturn%20t.fields.title%7Delse%20if(typeof%20t%3D%3D%3D%5C%5C%5C%22string%5C%5C%5C%22)%7Breturn%20t%7Delse%7Bthrow%20new%20_exception.InvalidArgumentException(t)%7D%7D%3Bvar%20getTiddler%3Dexports.getTiddler%3Dfunction%20e(t)%7Breturn%20%24tw.wiki.getTiddler(t%20instanceof%20%24tw.Tiddler%3Ft.fields.title%3At)%7D%3Bvar%20getField%3Dexports.getField%3Dfunction%20e(t%2Cr)%7Bvar%20i%3Darguments.length%3E2%26%26arguments%5B2%5D!%3D%3Dundefined%3Farguments%5B2%5D%3A%5C%5C%5C%22%5C%5C%5C%22%3Bvar%20d%3DgetTiddler(t)%3Breturn!d%3Fi%3Ad.fields%5Br%5D%7C%7Ci%7D%3Bvar%20tiddlerExists%3Dexports.tiddlerExists%3Dfunction%20e(t)%7Bif(!t)%7Breturn%20false%7Dvar%20r%3DgetTiddlerRef(t)%3Breturn%20Boolean(r%26%26(%24tw.wiki.tiddlerExists(r)%7C%7C%24tw.wiki.isShadowTiddler(r)))%7D%3Bvar%20setSidebarTab%3Dexports.setSidebarTab%3Dfunction%20e(t)%7BsetText(getTiddlersByPrefix(%5C%5C%5C%22%24%3A%2Fstate%2Ftab%2Fsidebar-%5C%5C%5C%22)%5B0%5D%2Ct)%7D%3Bvar%20setField%3Dexports.setField%3Dfunction%20e(t%2Cr%2Ci)%7Bif(!t%7C%7C!r)%7Breturn%7Dvar%20d%3DgetTiddlerRef(t)%3Bvar%20s%3D_defineProperty(%7Btitle%3Ad%7D%2Cr%2Ci)%3Bvar%20n%3D%24tw.wiki.getTiddler(d%2Ctrue)%3Bif(r!%3D%3D%5C%5C%5C%22text%5C%5C%5C%22%26%26n%26%26!n.fields.text)%7Bs.text%3D%5C%5C%5C%22%5C%5C%5C%22%7Dn%3Dnew%20%24tw.Tiddler(n%2Cs)%3B%24tw.wiki.addTiddler(n)%3Breturn%20n%7D%3Bvar%20deleteTiddlers%3Dexports.deleteTiddlers%3Dfunction%20e(t)%7Bvar%20r%3DObject.keys(t)%3Bvar%20i%3D%24tw.wiki.getTiddlerList(%5C%5C%5C%22%24%3A%2FStoryList%5C%5C%5C%22)%3Bfor(var%20d%3Dr.length%3Bd--%3B)%7Bvar%20s%3DgetTiddlerRef(t%5Br%5Bd%5D%5D)%3Bif(!%24tw.wiki.tiddlerExists(t%5Br%5Bd%5D%5D))%7Bcontinue%7Dvar%20n%3Di.indexOf(s)%3Bif(n!%3D%3D-1)%7Bi.splice(n%2C1)%3BsetField(%5C%5C%5C%22%24%3A%2FStoryList%5C%5C%5C%22%2C%5C%5C%5C%22list%5C%5C%5C%22%2Ci)%7D%24tw.wiki.deleteTiddler(s)%7D%7D%3Bvar%20moveFieldValues%3Dexports.moveFieldValues%3Dfunction%20e(t%2Cr%2Ci%2Cd%2Cs)%7Bif(t%3D%3D%3Dr)return%3Bvar%20n%3Ds%7C%7C%24tw.wiki.allTitles()%3Bfor(var%20l%3Dn.length%3Bl--%3B)%7Bvar%20a%3DgetTiddler(n%5Bl%5D)%3Bif(a.isDraft()%7C%7C!a.fields%5Bt%5D)%7Bcontinue%7Dif(!d%26%26%24tw.wiki.isSystemTiddler(n%5Bl%5D))%7Bcontinue%7Dvar%20o%3D_defineProperty(%7B%7D%2Cr%2Ca.fields%5Bt%5D)%3Bif(i)%7Bo%5Bt%5D%3Dundefined%7D%24tw.wiki.addTiddler(new%20%24tw.Tiddler(a%2Co))%7D%7D%3Bvar%20getMatches%3Dexports.getMatches%3Dfunction%20e(t%2Cr%2Ci)%7Bvar%20d%3Dundefined%3Bvar%20s%3D%24tw.wiki%3Bif(typeof%20t%3D%3D%3D%5C%5C%5C%22string%5C%5C%5C%22)%7Bt%3Ds.compileFilter(t)%7Dif(r!%3Dnull%26%26(typeof%20r%3D%3D%3D%5C%5C%5C%22undefined%5C%5C%5C%22%3F%5C%5C%5C%22undefined%5C%5C%5C%22%3A_typeof(r))%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22)%7Bif(!Array.isArray(r))%7Br%3DObject.keys(r)%7Dd%3Dfunction%20e(t)%7Bfor(var%20i%3Dr.length%3Bi--%3B)%7Bvar%20d%3Ds.getTiddler(r%5Bi%5D)%3Bt(d%2Cr%5Bi%5D)%7D%7D%7Dreturn%20t.call(s%2Cd%2Ci)%7D%3Bvar%20isMatch%3Dexports.isMatch%3Dfunction%20e(t%2Cr)%7Breturn%20getTiddlerRef(t)%3D%3D%3DgetMatches(r%2C%5BgetTiddlerRef(t)%5D)%5B0%5D%7D%3Bvar%20getTranscludeNode%3Dexports.getTranscludeNode%3Dfunction%20e(t%2Cr)%7Breturn%7Btype%3A%5C%5C%5C%22transclude%5C%5C%5C%22%2Cattributes%3A%7Btiddler%3A%7Btype%3A%5C%5C%5C%22string%5C%5C%5C%22%2Cvalue%3AgetTiddlerRef(t)%7D%7D%2Cchildren%3A%5B%5D%2CisBlock%3A!!r%7D%7D%3Bvar%20getTiddlerNode%3Dexports.getTiddlerNode%3Dfunction%20e(t)%7Breturn%7Btype%3A%5C%5C%5C%22tiddler%5C%5C%5C%22%2Cattributes%3A%7Btiddler%3A%7Btype%3A%5C%5C%5C%22string%5C%5C%5C%22%2Cvalue%3AgetTiddlerRef(t)%7D%7D%2Cchildren%3A%5B%5D%7D%7D%3Bvar%20getElementNode%3Dexports.getElementNode%3Dfunction%20e(t%2Cr%2Ci)%7Breturn%7Btype%3A%5C%5C%5C%22element%5C%5C%5C%22%2Ctag%3At%2Cattributes%3A%7Bclass%3A%7Btype%3A%5C%5C%5C%22string%5C%5C%5C%22%2Cvalue%3Ar%7D%7D%2Cchildren%3Ai%3F%5B%7Btype%3A%5C%5C%5C%22text%5C%5C%5C%22%2Ctext%3Ai%7D%5D%3A%5B%5D%7D%7D%3Bvar%20registerTransclude%3Dexports.registerTransclude%3Dfunction%20e(t%2Cr%2Ci)%7BbasicUtils.removeArrayElement(t.children%2Ct%5Br%5D)%3Bt%5Br%5D%3Dt.makeChildWidget(getTranscludeNode(i%2Ctrue))%3Bt.children.push(t%5Br%5D)%3Breturn%20t%5Br%5D%7D%3Bvar%20notify%3Dexports.notify%3Dfunction%20e(t)%7Bvar%20r%3D%5C%5C%5C%22%24%3A%2Ftemp%2Ftiddlymap%2Fnotify%5C%5C%5C%22%3B%24tw.wiki.addTiddler(new%20%24tw.Tiddler(%7Btitle%3Ar%2Ctext%3At%7D))%3B%24tw.notifier.display(r)%7D%3Bvar%20isPreviewed%3Dexports.isPreviewed%3Dfunction%20e(t)%7Bif(!t)%7Breturn%20false%7Dif(t.domNode.isTiddlyWikiFakeDom)%7Breturn%20true%7Dif(t.getVariable(%5C%5C%5C%22tv-tiddler-preview%5C%5C%5C%22))%7Breturn%20true%7Delse%7Bvar%20r%3D%5C%5C%5C%22tc-tiddler-preview-preview%5C%5C%5C%22%3Breturn!!basicUtils.getAncestorWithClass(t.parentDomNode%2Cr)%7D%7D%3Bvar%20parseFieldData%3Dexports.parseFieldData%3Dfunction%20e(t)%7Bvar%20r%3Darguments.length%3E1%26%26arguments%5B1%5D!%3D%3Dundefined%3Farguments%5B1%5D%3A%5C%5C%5C%22text%5C%5C%5C%22%3Bvar%20i%3Darguments%5B2%5D%3Bvar%20d%3DgetTiddler(t)%3Bif(!d)%7Breturn%20i%7Dreturn%20basicUtils.parseJSON(d.fields%5Br%5D%2Ci)%7D%3Bvar%20writeFieldData%3Dexports.writeFieldData%3Dfunction%20e(t%2Cr%2Ci%2Cd)%7Bif((typeof%20i%3D%3D%3D%5C%5C%5C%22undefined%5C%5C%5C%22%3F%5C%5C%5C%22undefined%5C%5C%5C%22%3A_typeof(i))!%3D%3D%5C%5C%5C%22object%5C%5C%5C%22)%7Breturn%7Dd%3DparseInt(d)%3Bd%3Dd%3E0%26%26r%3D%3D%3D%5C%5C%5C%22text%5C%5C%5C%22%3Fd%3A0%3BsetField(t%2Cr%2CJSON.stringify(i%2Cnull%2Cd))%7D%3Bvar%20clone%3Dexports.clone%3Dfunction%20e(t%2Cr)%7BsetField(t%2C%5C%5C%5C%22title%5C%5C%5C%22%2Cr)%7D%3Bvar%20setEntry%3Dexports.setEntry%3Dfunction%20e(t%2Cr%2Ci)%7B%24tw.wiki.setText(getTiddlerRef(t)%2Cnull%2Cr%2Ci)%7D%3Bvar%20getEntry%3Dexports.getEntry%3Dfunction%20e(t%2Cr%2Ci)%7Bvar%20d%3D%24tw.wiki.getTiddlerData(getTiddlerRef(t)%2C%7B%7D)%3Breturn%20d%5Br%5D%3D%3Dnull%3Fi%3Ad%5Br%5D%7D%3Bvar%20isLeftVersionGreater%3Dexports.isLeftVersionGreater%3Dfunction%20e(t%2Cr)%7Breturn%20t!%3D%3Dr%26%26%24tw.utils.checkVersions(t%2Cr)%7D%3Bvar%20getText%3Dexports.getText%3Dfunction%20e(t%2Cr)%7Breturn%20getField(t%2C%5C%5C%5C%22text%5C%5C%5C%22%2Cr)%7D%3Bvar%20setText%3Dexports.setText%3Dfunction%20e(t%2Cr)%7BsetField(t%2C%5C%5C%5C%22text%5C%5C%5C%22%2Cr)%7D%3Bvar%20isDraft%3Dexports.isDraft%3Dfunction%20e(t)%7Bvar%20r%3DgetTiddler(t)%3Breturn%20r%26%26r.isDraft()%7D%3Bvar%20isSystemOrDraft%3Dexports.isSystemOrDraft%3Dfunction%20e(t)%7Breturn%20%24tw.wiki.isSystemTiddler(getTiddlerRef(t))%7C%7CisDraft(t)%7D%3Bvar%20getMergedTiddlers%3Dexports.getMergedTiddlers%3Dfunction%20e(t%2Cr)%7Bif(!Array.isArray(t))%7Breturn%7Dfor(var%20i%3Dt.length%3Bi--%3B)%7Bt%5Bi%5D%3DgetTiddler(t%5Bi%5D)%7Dif(!t.length)%7Breturn%7Dt.push(%7Btitle%3Ar%7C%7Ct%5B0%5D.fields.title%7D%2C%24tw.wiki.getModificationFields()%2C%24tw.wiki.getCreationFields())%3Bt.unshift(null)%3Breturn%20new(Function.prototype.bind.apply(%24tw.Tiddler%2Ct))%7D%3Bvar%20getChildWidgetByProperty%3Dexports.getChildWidgetByProperty%3Dfunction%20e(t%2Cr%2Ci)%7Bvar%20d%3Dt.children%3Bfor(var%20s%3Dd.length%3Bs--%3B)%7Bvar%20n%3Dd%5Bs%5D%3Bif(n%5Br%5D%3D%3D%3Di)%7Breturn%20n%7Delse%7Bn%3De(n%2Cr%2Ci)%3Bif(n)%7Breturn%20n%7D%7D%7D%7D%3Bvar%20addTWlisteners%3Dexports.addTWlisteners%3Dfunction%20e(t%2Cr%2Ci)%7Bfor(var%20d%20in%20t)%7Br.addEventListener(d%2Ct%5Bd%5D.bind(i))%7D%7D%3Bvar%20mv%3Dexports.mv%3Dfunction%20e(t%2Cr%2Ci%2Cd)%7Bif(t%3D%3D%3Dr%7C%7C!t%7C%7C!r)%7Breturn%7Di%3Dtypeof%20i%3D%3D%3D%5C%5C%5C%22boolean%5C%5C%5C%22%3Fi%3Afalse%3Bd%3Dtypeof%20d%3D%3D%3D%5C%5C%5C%22boolean%5C%5C%5C%22%3Fd%3Atrue%3Bvar%20s%3DgetTiddlersByPrefix(t)%3Bvar%20n%3DbasicUtils.makeHashMap()%3Bfor(var%20l%3Ds.length%3Bl--%3B)%7Bvar%20a%3Ds%5Bl%5D%3Bvar%20o%3Da.replace(t%2Cr)%3Bif(%24tw.wiki.tiddlerExists(o)%26%26!i)%7Breturn%7Dn%5Ba%5D%3Do%7Dfor(var%20f%20in%20n)%7BsetField(f%2C%5C%5C%5C%22title%5C%5C%5C%22%2Cn%5Bf%5D)%3Bif(d)%7B%24tw.wiki.deleteTiddler(f)%7D%7Dreturn%20n%7D%3Bvar%20cp%3Dexports.cp%3Dfunction%20e(t%2Cr%2Ci)%7Breturn%20mv(t%2Cr%2Ci%2Cfalse)%7D%3Bvar%20deleteByPrefix%3Dexports.deleteByPrefix%3Dfunction%20e(t%2Cr)%7Bif(!t)%7Breturn%7Dr%3Dr%7C%7C%24tw.wiki.allTitles()%3Bvar%20i%3D%5B%5D%3Bfor(var%20d%3Dr.length%3Bd--%3B)%7Bif(basicUtils.startsWith(r%5Bd%5D%2Ct))%7B%24tw.wiki.deleteTiddler(r%5Bd%5D)%3Bi.push(i%5Bd%5D)%7D%7Dreturn%20i%7D%3Bvar%20getTiddlersWithField%3Dexports.getTiddlersWithField%3Dfunction%20e(t%2Cr)%7Bvar%20i%3Darguments.length%3E2%26%26arguments%5B2%5D!%3D%3Dundefined%3Farguments%5B2%5D%3A%7B%7D%3Bvar%20d%3Di.tiddlers%7C%7C%24tw.wiki.allTitles()%3Bvar%20s%3Di.isIncludeDrafts%3D%3D%3Dtrue%3Bvar%20n%3DbasicUtils.makeHashMap()%3Bvar%20l%3DObject.keys(d)%3Bvar%20a%3D%24tw.utils.hop%3Bvar%20o%3Di.limit%7C%7C0%3Bfor(var%20f%3Dl.length%3Bf--%3B)%7Bvar%20u%3DgetTiddler(d%5Bl%5Bf%5D%5D)%3Bvar%20p%3Du.fields%3Bif(a(p%2Ct)%26%26(!a(p%2C%5C%5C%5C%22draft.of%5C%5C%5C%22)%7C%7Cs))%7Bif(!r%7C%7Cp%5Bt%5D%3D%3D%3Dr)%7Bn%5Bp.title%5D%3Du%3Bif(--o%3D%3D%3D0)%7Bbreak%7D%7D%7D%7Dreturn%20n%7D%3Bvar%20getTiddlerWithField%3Dexports.getTiddlerWithField%3Dfunction%20e(t%2Cr)%7Breturn%20Object.keys(getTiddlersWithField(t%2Cr%2C%7Blimit%3A1%7D))%5B0%5D%7D%3Bvar%20getTiddlersByPrefix%3Dexports.getTiddlersByPrefix%3Dfunction%20e(t)%7Bvar%20r%3Darguments.length%3E1%26%26arguments%5B1%5D!%3D%3Dundefined%3Farguments%5B1%5D%3A%7B%7D%3Bvar%20i%3Dr.removePrefix%3D%3D%3Dtrue%3Bvar%20d%3D%5B%5D%3Bvar%20s%3D%24tw.wiki%5Br.iterator%7C%7C%5C%5C%5C%22each%5C%5C%5C%22%5D%3Bs(function(e%2Cr)%7Bif(basicUtils.startsWith(r%2Ct))%7Bd.push(i%3FbasicUtils.getWithoutPrefix(r%2Ct)%3Ar)%7D%7D)%3Breturn%20d%7D%3Bvar%20addTiddler%3Dexports.addTiddler%3Dfunction%20e(t%2Cr)%7Bvar%20i%3DgetTiddler(t)%3Bif(!r%26%26i)%7Breturn%20i%7Di%3Dnew%20%24tw.Tiddler(%7Btitle%3At%2Ctext%3A%5C%5C%5C%22%5C%5C%5C%22%7D%2C%24tw.wiki.getModificationFields()%2C%24tw.wiki.getCreationFields())%3B%24tw.wiki.addTiddler(i)%3Breturn%20i%7D%3Bvar%20touch%3Dexports.touch%3Dfunction%20e(t)%7Bif(!t)%7Breturn%7Dvar%20r%3Dnew%20%24tw.Tiddler(getTiddler(t)%2C%24tw.wiki.getModificationFields())%3B%24tw.wiki.addTiddler(r)%7D%3B%5C%5Cn%2F%2F%23%20sourceMappingURL%3D.%2Fmaps%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Flib%2Futils%2Fwiki.js.map%5C%5Cn%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22type%5C%22%3A%20%5C%22application%2Fjavascript%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22module-type%5C%22%3A%20%5C%22library%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Fmacro%2Ftmap%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Fmacro%2Ftmap%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bexports.params%3Dexports.name%3Dexports.run%3Dundefined%3Bvar%20_typeof%3Dtypeof%20Symbol%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22%26%26typeof%20Symbol.iterator%3D%3D%3D%5C%5C%5C%22symbol%5C%5C%5C%22%3Ffunction(e)%7Breturn%20typeof%20e%7D%3Afunction(e)%7Breturn%20e%26%26typeof%20Symbol%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22%26%26e.constructor%3D%3D%3DSymbol%26%26e!%3D%3DSymbol.prototype%3F%5C%5C%5C%22symbol%5C%5C%5C%22%3Atypeof%20e%7D%3B%2F*%20%40preserve%20TW-Guard%20*%2F%5C%5Cn%2F*%5C%5C%5C%5C%5C%5Cntitle%3A%20%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Fmacro%2Ftmap%5C%5Cntype%3A%20application%2Fjavascript%5C%5Cnmodule-type%3A%20macro%5C%5Cn%5C%5Cn%40preserve%5C%5Cn%5C%5Cn%5C%5C%5C%5C*%2F%5C%5Cn%2F*%20%40preserve%20TW-Guard%20*%2Fvar%20_EdgeType%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FEdgeType%5C%5C%5C%22)%3Bvar%20_EdgeType2%3D_interopRequireDefault(_EdgeType)%3Bvar%20_ViewAbstraction%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FViewAbstraction%5C%5C%5C%22)%3Bvar%20_ViewAbstraction2%3D_interopRequireDefault(_ViewAbstraction)%3Bvar%20_utils%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Futils%5C%5C%5C%22)%3Bvar%20_utils2%3D_interopRequireDefault(_utils)%3Bfunction%20_interopRequireDefault(e)%7Breturn%20e%26%26e.__esModule%3Fe%3A%7Bdefault%3Ae%7D%7Dvar%20name%3D%5C%5C%5C%22tmap%5C%5C%5C%22%3Bvar%20params%3DgetParamSlots(5)%3Bfunction%20run()%7Bthis.substVarRefs%3Dthis.substituteVariableReferences%3Bvar%20e%3Dcommand%5Barguments%5B0%5D%5D%3Bvar%20t%3Dnull%3Bif(typeof%20e%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22)%7Bvar%20r%3DArray.prototype.slice.call(arguments%2C1)%3Bt%3De.apply(this%2Cr)%7Dreturn%20typeof%20t%3D%3D%3D%5C%5C%5C%22string%5C%5C%5C%22%3Ft%3A%5C%5C%5C%22%5C%5C%5C%22%7Dfunction%20getParamSlots(e)%7Bvar%20t%3D%5B%5D%3Bfor(var%20r%3D0%3Br%3Ce%3Br%2B%2B)%7Bt.push(%7Bname%3A%5C%5C%5C%22arg%5C%5C%5C%22%2Br%7D)%7Dreturn%20t%7Dvar%20command%3D_utils2.default.makeHashMap()%3Bcommand.basename%3Dfunction(e)%7Bvar%20t%3Dthis.getVariable(%5C%5C%5C%22currentTiddler%5C%5C%5C%22)%3Breturn%20_utils2.default.getBasename(t%2Ce)%7D%3Bcommand.datauri%3Dfunction(e%2Ct)%7Breturn%20_utils2.default.getDataUri(e%2Ct%2Ctrue)%7D%3Bcommand.testJSON%3Dfunction(e)%7Bvar%20t%3D%24tw.wiki.getTiddler(this.getVariable(%5C%5C%5C%22currentTiddler%5C%5C%5C%22))%3Btry%7BJSON.parse(t.fields%5Be%5D)%3Breturn%5C%5C%5C%22valid%5C%5C%5C%22%7Dcatch(e)%7Breturn%5C%5C%5C%22malformed%5C%5C%5C%22%7D%7D%3Bcommand.splitAndSelect%3Dfunction(e%2Ct)%7Bvar%20r%3Dthis.getVariable(%5C%5C%5C%22currentTiddler%5C%5C%5C%22)%3Bvar%20a%3Dr.split(e)%5Bt%5D%3Breturn%20a!%3Dnull%3Fa%3Ar%7D%3Bcommand.concat%3Dfunction()%7Bvar%20e%3D%5C%5C%5C%22%5C%5C%5C%22%3Bfor(var%20t%3D1%2Cr%3Darguments.length%3Bt%3Cr%3Bt%2B%2B)%7Be%2B%3Darguments%5Bt%5D%7Dreturn%20e%7D%3Bcommand.uuid%3Dfunction()%7Breturn%20_utils2.default.genUUID()%7D%3Bcommand.regRepl%3Dfunction()%7Bvar%20e%3Dthis.substVarRefs(arguments%5B0%5D)%3Bvar%20t%3Darguments%5B1%5D%3Bvar%20r%3Dthis.substVarRefs(arguments%5B2%5D)%3Bvar%20a%3Dthis.substVarRefs(arguments%5B4%5D)%3Breturn%20e.replace(new%20RegExp(t%2Ca)%2Cr)%7D%3Bcommand.halfOfString%3Dfunction()%7Bvar%20e%3Dthis.substVarRefs(arguments%5B0%5D)%3Bif(!e)%7Breturn%5C%5C%5C%22%5C%5C%5C%22%7Dreturn%20e.substr(0%2CMath.ceil(e.length%2F2))%7D%3Bcommand.isETyVisible%3Dfunction(e%2Ct)%7Be%3Dnew%20_ViewAbstraction2.default(e)%3Bvar%20r%3Dcommand.getETyId.call(this%2Ce%2Ct)%3Breturn%5C%5C%5C%22%5C%5C%5C%22%2Be.isEdgeTypeVisible(r)%7D%3Bcommand.getETyId%3Dfunction(e%2Ct)%7Be%3Dnew%20_ViewAbstraction2.default(e)%3Bvar%20r%3D_EdgeType2.default.getInstance(t%7C%7Cthis.getVariable(%5C%5C%5C%22currentTiddler%5C%5C%5C%22))%3Bif(!r.namespace)%7Bvar%20a%3D_EdgeType2.default.getIdParts(r.id)%2Cn%3Da.marker%2Ci%3Da.name%3Bvar%20u%3De.getConfig(%5C%5C%5C%22edge_type_namespace%5C%5C%5C%22)%3Br%3D_EdgeType2.default.getInstance(_EdgeType2.default.getId(n%2Cu%2Ci))%7Dreturn%20r.id%7D%3Bcommand.scale%3Dfunction()%7Bvar%20e%3D%5C%5C%5C%22%5C%5C%5C%22%3Bfor(var%20t%3D1%2Cr%3DparseInt(arguments%5B0%5D)%3Bt%3Cr%3Bt%2B%2B)%7Be%2B%3D%5C%5C%5C%22%5B%5B%5C%5C%5C%22%2Bt%2B%5C%5C%5C%22%5D%5D%5C%5C%5C%22%7Dreturn%20e%7D%3Bcommand.mergeFields%3Dfunction()%7Bvar%20e%3D_utils2.default.getTiddler(arguments%5B0%5D)%3Bvar%20t%3Darguments%5B1%5D%3Bvar%20r%3Darguments%5B2%5D%7C%7C%5C%5C%5C%22%20%5C%5C%5C%22%3Bif(!e)return%3Bvar%20a%3D_utils2.default.getPropertiesByPrefix(e.fields%2Ct)%3Bvar%20n%3D%5C%5C%5C%22%5C%5C%5C%22%3Bfor(var%20i%20in%20a)%7Bif(typeof%20a%5Bi%5D%3D%3D%3D%5C%5C%5C%22string%5C%5C%5C%22)%7Bn%2B%3Da%5Bi%5D%2Br%7D%7Dreturn%20n%7D%3Bcommand.option%3Dfunction(e%2Ct)%7Bif(typeof%20%24tm%3D%3D%5C%5C%5C%22undefined%5C%5C%5C%22)%7Breturn%5C%5C%5C%22%5C%5C%5C%22%7Dvar%20r%3D%24tm%3Bvar%20a%3De.split(%5C%5C%5C%22.%5C%5C%5C%22)%3Bfor(var%20n%3D0%3Bn%3Ca.length%3Bn%2B%2B)%7Bif((typeof%20r%3D%3D%3D%5C%5C%5C%22undefined%5C%5C%5C%22%3F%5C%5C%5C%22undefined%5C%5C%5C%22%3A_typeof(r))%3D%3D%5C%5C%5C%22object%5C%5C%5C%22%26%26r%5Ba%5Bn%5D%5D)%7Br%3Dr%5Ba%5Bn%5D%5D%7D%7Dif(t%26%26typeof%20r%3D%3D%3D%5C%5C%5C%22string%5C%5C%5C%22%26%26_utils2.default.hasSubString(t)%26%26r.lastIndexOf(t)%2Bt.length%3D%3D%3Dr.length)%7Br%3Dr%2Bt%7Dreturn%20r%7D%3Bexports.run%3Drun%3Bexports.name%3Dname%3Bexports.params%3Dparams%3B%5C%5Cn%2F%2F%23%20sourceMappingURL%3D.%2Fmaps%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Fmacro%2FMapMacro.js.map%5C%5Cn%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22type%5C%22%3A%20%5C%22application%2Fjavascript%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22module-type%5C%22%3A%20%5C%22macro%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FAdapter%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FAdapter%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_typeof%3Dtypeof%20Symbol%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22%26%26typeof%20Symbol.iterator%3D%3D%3D%5C%5C%5C%22symbol%5C%5C%5C%22%3Ffunction(e)%7Breturn%20typeof%20e%7D%3Afunction(e)%7Breturn%20e%26%26typeof%20Symbol%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22%26%26e.constructor%3D%3D%3DSymbol%26%26e!%3D%3DSymbol.prototype%3F%5C%5C%5C%22symbol%5C%5C%5C%22%3Atypeof%20e%7D%3Bvar%20_createClass%3Dfunction()%7Bfunction%20e(e%2Ct)%7Bfor(var%20i%3D0%3Bi%3Ct.length%3Bi%2B%2B)%7Bvar%20r%3Dt%5Bi%5D%3Br.enumerable%3Dr.enumerable%7C%7Cfalse%3Br.configurable%3Dtrue%3Bif(%5C%5C%5C%22value%5C%5C%5C%22in%20r)r.writable%3Dtrue%3BObject.defineProperty(e%2Cr.key%2Cr)%7D%7Dreturn%20function(t%2Ci%2Cr)%7Bif(i)e(t.prototype%2Ci)%3Bif(r)e(t%2Cr)%3Breturn%20t%7D%7D()%3B%2F*%20%40preserve%20TW-Guard%20*%2F%5C%5Cn%2F*%5C%5C%5C%5C%5C%5Cn%5C%5Cntitle%3A%20%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FAdapter%5C%5Cntype%3A%20application%2Fjavascript%5C%5Cnmodule-type%3A%20library%5C%5Cn%5C%5Cn%40preserve%5C%5Cn%5C%5Cn%5C%5C%5C%5C*%2F%5C%5Cn%2F*%20%40preserve%20TW-Guard%20*%2Fvar%20_ViewAbstraction%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FViewAbstraction%5C%5C%5C%22)%3Bvar%20_ViewAbstraction2%3D_interopRequireDefault(_ViewAbstraction)%3Bvar%20_EdgeType%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FEdgeType%5C%5C%5C%22)%3Bvar%20_EdgeType2%3D_interopRequireDefault(_EdgeType)%3Bvar%20_NodeType%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FNodeType%5C%5C%5C%22)%3Bvar%20_NodeType2%3D_interopRequireDefault(_NodeType)%3Bvar%20_utils%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Futils%5C%5C%5C%22)%3Bvar%20_utils2%3D_interopRequireDefault(_utils)%3Bvar%20_Edge%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FEdge%5C%5C%5C%22)%3Bvar%20_Edge2%3D_interopRequireDefault(_Edge)%3Bvar%20_vis%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Fvis%2Fvis.js%5C%5C%5C%22)%3Bvar%20_vis2%3D_interopRequireDefault(_vis)%3Bvar%20_environment%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Flib%2Fenvironment%5C%5C%5C%22)%3Bvar%20env%3D_interopRequireWildcard(_environment)%3Bvar%20_contrastcolour%3Drequire(%5C%5C%5C%22%24%3A%2Fcore%2Fmodules%2Fmacros%2Fcontrastcolour.js%5C%5C%5C%22)%3Bfunction%20_interopRequireWildcard(e)%7Bif(e%26%26e.__esModule)%7Breturn%20e%7Delse%7Bvar%20t%3D%7B%7D%3Bif(e!%3Dnull)%7Bfor(var%20i%20in%20e)%7Bif(Object.prototype.hasOwnProperty.call(e%2Ci))t%5Bi%5D%3De%5Bi%5D%7D%7Dt.default%3De%3Breturn%20t%7D%7Dfunction%20_interopRequireDefault(e)%7Breturn%20e%26%26e.__esModule%3Fe%3A%7Bdefault%3Ae%7D%7Dfunction%20_defineProperty(e%2Ct%2Ci)%7Bif(t%20in%20e)%7BObject.defineProperty(e%2Ct%2C%7Bvalue%3Ai%2Cenumerable%3Atrue%2Cconfigurable%3Atrue%2Cwritable%3Atrue%7D)%7Delse%7Be%5Bt%5D%3Di%7Dreturn%20e%7Dfunction%20_classCallCheck(e%2Ct)%7Bif(!(e%20instanceof%20t))%7Bthrow%20new%20TypeError(%5C%5C%5C%22Cannot%20call%20a%20class%20as%20a%20function%5C%5C%5C%22)%7D%7Dvar%20Adapter%3Dfunction()%7Bfunction%20e(t%2Ci)%7B_classCallCheck(this%2Ce)%3Bthis.getTiddlerById%3Dt.getTiddlerById.bind(t)%3Bthis.getId%3Dt.getIdByTiddler.bind(t)%3Bthis.assignId%3Dt.assignId.bind(t)%3Bthis.edgeTypeSubscriberRegistry%3Di%3Bthis.indeces%3D%24tm.indeces%3Bthis.wiki%3D%24tw.wiki%3Bthis.visShapesWithTextInside%3D_utils2.default.getLookupTable(%5B%5C%5C%5C%22ellipse%5C%5C%5C%22%2C%5C%5C%5C%22circle%5C%5C%5C%22%2C%5C%5C%5C%22database%5C%5C%5C%22%2C%5C%5C%5C%22box%5C%5C%5C%22%2C%5C%5C%5C%22text%5C%5C%5C%22%5D)%7D_createClass(e%2C%5B%7Bkey%3A%5C%5C%5C%22deleteEdge%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Breturn%20this._processEdge(t%2C%5C%5C%5C%22delete%5C%5C%5C%22)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22insertEdge%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Breturn%20this._processEdge(t%2C%5C%5C%5C%22insert%5C%5C%5C%22)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22deleteEdges%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Bt%3D_utils2.default.convert(t%2C%5C%5C%5C%22array%5C%5C%5C%22)%3Bfor(var%20i%3Dt.length%3Bi--%3B)%7Bthis.deleteEdge(t%5Bi%5D)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_processEdge%5C%5C%5C%22%2Cvalue%3Afunction%20e(t%2Ci)%7B%24tm.logger(%5C%5C%5C%22debug%5C%5C%5C%22%2C%5C%5C%5C%22Edge%5C%5C%5C%22%2Ci%2Ct)%3Bvar%20r%3Dthis.getTiddlerById(t.from)%3Bif(!r%7C%7C!_utils2.default.tiddlerExists(r))%7Breturn%7Dvar%20a%3D_utils2.default.getTiddler(r)%3Bvar%20s%3Dthis.indeces.allETy%5Bt.type%5D%7C%7C_EdgeType2.default.getInstance(t.type)%3Bvar%20l%3Dthis.edgeTypeSubscriberRegistry.getAllForType(s)%3Bvar%20n%3Di%2B%5C%5C%5C%22Edge%5C%5C%5C%22%3Bfor(var%20d%3Dl.length%3Bd--%3B)%7Bl%5Bd%5D%5Bn%5D(a%2Ct%2Cs)%7Dif(i%3D%3D%3D%5C%5C%5C%22insert%5C%5C%5C%22%26%26!s.exists())%7Bs.save()%7Dreturn%20t%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getAdjacencyList%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Bvar%20i%3Darguments.length%3E1%26%26arguments%5B1%5D!%3D%3Dundefined%3Farguments%5B1%5D%3A%7B%7D%3B%24tm.start(%5C%5C%5C%22Creating%20adjacency%20list%5C%5C%5C%22)%3Bif(!i.edges)%7Bvar%20r%3D_utils2.default.getMatches(env.selector.allPotentialNodes)%3Bi.edges%3Dthis.getEdgesForSet(r%2Ci.toWL%2Ci.typeWL)%7Dvar%20a%3D_utils2.default.groupByProperty(i.edges%2Ct%7C%7C%5C%5C%5C%22to%5C%5C%5C%22)%3B%24tm.stop(%5C%5C%5C%22Creating%20adjacency%20list%5C%5C%5C%22)%3Breturn%20a%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getNeighbours%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Bvar%20i%3Dthis%3Bvar%20r%3Darguments.length%3E1%26%26arguments%5B1%5D!%3D%3Dundefined%3Farguments%5B1%5D%3A%7B%7D%3B%24tm.start(%5C%5C%5C%22Get%20neighbours%5C%5C%5C%22)%3Bvar%20a%3Dr.addProperties%2Cs%3Dr.toWL%2Cl%3Dr.typeWL%2Cn%3Dr.steps%3Bvar%20d%3Dthis.indeces.allETy%3Bvar%20o%3D_utils2.default.getArrayValuesAsHashmapKeys(t)%3Bvar%20u%3D_ViewAbstraction2.default.exists(r.view)%3Fnew%20_ViewAbstraction2.default(r.view)%3Anull%3Bvar%20f%3D_utils2.default.makeHashMap()%3Bvar%20g%3D_utils2.default.makeHashMap()%3Bvar%20c%3DparseInt(n)%3E0%3Fn%3A1%3Bvar%20v%3Dr.direction%7C%7Cu%26%26u.getConfig(%5C%5C%5C%22neighbourhood_directions%5C%5C%5C%22)%3Bvar%20y%3D!v%7C%7Cv%3D%3D%3D%5C%5C%5C%22both%5C%5C%5C%22%3Bvar%20h%3Dy%7C%7Cv%3D%3D%3D%5C%5C%5C%22in%5C%5C%5C%22%3Bvar%20p%3Dy%7C%7Cv%3D%3D%3D%5C%5C%5C%22out%5C%5C%5C%22%3Bvar%20_%3Du%26%26%5C%5C%5C%22%5Ball%5B%5D%5D%20%5C%5C%5C%22%2Bu.getNodeFilter(%5C%5C%5C%22raw%5C%5C%5C%22)%3Bvar%20b%3Dthis.getAdjacencyList(%5C%5C%5C%22to%5C%5C%5C%22%2Cr)%3Bvar%20m%3Dfunction%20e(t%2Cr%2Cs)%7Bf%5Bt.id%5D%3Dt%3Bvar%20l%3Di.getTiddlerById(t%5Br%5D)%3Bif(u%26%26_utils2.default.isTrue(%24tm.config.sys.nodeFilterNeighbours)%26%26!_utils2.default.isMatch(l%2C_))%7Breturn%7Dif(!o%5Bl%5D)%7Bo%5Bl%5D%3Dtrue%3Bvar%20n%3Di.makeNode(l%2Ca)%3Bif(n)%7Bg%5Bn.id%5D%3Dn%3Bs.push(l)%7D%7D%7D%3Bvar%20w%3Dvoid%200%3Bfor(w%3D0%3Bw%3Cc%26%26t.length%3Bw%2B%2B)%7Bvar%20T%3D%5B%5D%3Bfor(var%20k%3Dt.length%3Bk--%3B)%7Bif(_utils2.default.isSystemOrDraft(t%5Bk%5D))%7Bcontinue%7Dvar%20E%3Dthis.getEdges(t%5Bk%5D%2Cs%2Cl)%3Bfor(var%20N%20in%20E)%7Bvar%20A%3Dd%5BE%5BN%5D.type%5D%3Bif(y%7C%7Cp%26%26A.toArrow%7C%7Ch%26%26A.invertedArrow)%7Bm(E%5BN%5D%2C%5C%5C%5C%22to%5C%5C%5C%22%2CT)%7D%7Dvar%20I%3Db%5Bthis.getId(t%5Bk%5D)%5D%3Bif(!I)%7Bcontinue%7Dfor(var%20j%3DI.length%3Bj--%3B)%7Bvar%20x%3Dd%5BI%5Bj%5D.type%5D%3Bif(y%7C%7Ch%26%26x.toArrow%7C%7Cp%26%26x.invertedArrow)%7Bm(I%5Bj%5D%2C%5C%5C%5C%22from%5C%5C%5C%22%2CT)%7D%7D%7Dt%3DT%7Dvar%20S%3D%7Bnodes%3Ag%2Cedges%3Af%7D%3B%24tm.logger(%5C%5C%5C%22debug%5C%5C%5C%22%2C%5C%5C%5C%22Retrieved%20neighbourhood%5C%5C%5C%22%2CS%2C%5C%5C%5C%22steps%5C%5C%5C%22%2Cw)%3B%24tm.stop(%5C%5C%5C%22Get%20neighbours%5C%5C%5C%22)%3Breturn%20S%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getGraph%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Bvar%20i%3Dt.view%2Cr%3Dt.matches%2Ca%3Dt.includeNeighboursOf%3B%24tm.start(%5C%5C%5C%22Assembling%20Graph%5C%5C%5C%22)%3Bi%3Dnew%20_ViewAbstraction2.default(i)%3Br%3Dr%7C%7C_utils2.default.getMatches(i.getNodeFilter(%5C%5C%5C%22compiled%5C%5C%5C%22))%3Bvar%20s%3DparseInt(i.getConfig(%5C%5C%5C%22neighbourhood_scope%5C%5C%5C%22))%3Bvar%20l%3Di.getEdgeTypeFilter(%5C%5C%5C%22whitelist%5C%5C%5C%22)%3Bvar%20n%3D_utils2.default.getArrayValuesAsHashmapKeys(r)%3Bvar%20d%3Dthis.getEdgesForSet(r%2Cn%2Cl)%3Bvar%20o%3Dvoid%200%3Bif(i.isEnabled(%5C%5C%5C%22filter_nodes_by_edge_types%5C%5C%5C%22))%7Bo%3Dnew%20Set%3BObject.values(d).forEach(function(e)%7Bo.add(e.from)%3Bo.add(e.to)%7D)%7Dvar%20u%3D%7Bedges%3Ad%2Cnodes%3Athis.selectNodesByReferences(r%2C%7Bview%3Ai%2CoutputType%3A%5C%5C%5C%22hashmap%5C%5C%5C%22%7D)%7D%3Bif(s)%7Bvar%20f%3Da%3Fr.filter(a)%3Ar%3Bvar%20g%3Dthis.getNeighbours(f%2C%7Bsteps%3As%2Cview%3Ai%2CtypeWL%3Al%2CaddProperties%3A%7Btype%3A%5C%5C%5C%22tmap%3Aneighbour%5C%5C%5C%22%7D%7D)%3BObject.assign(u.nodes%2Cg.nodes)%3BObject.assign(u.edges%2Cg.edges)%3Bif(i%26%26i.isEnabled(%5C%5C%5C%22show_inter_neighbour_edges%5C%5C%5C%22))%7Bvar%20c%3Dthis.getTiddlersByIds(g.nodes)%3Bvar%20v%3D_utils2.default.getArrayValuesAsHashmapKeys(c)%3BObject.assign(u.edges%2Cthis.getEdgesForSet(c%2Cv))%7D%7Dif(o)%7Bvar%20y%3D_utils2.default.makeHashMap()%3BObject.values(u.nodes).forEach(function(e)%7Bif(o.has(e.id))%7By%5Be.id%5D%3De%7D%7D)%3Bu.nodes%3Dy%7Dthis.attachStylesToNodes(u.nodes%2Ci)%3B%24tm.stop(%5C%5C%5C%22Assembling%20Graph%5C%5C%5C%22)%3B%24tm.logger(%5C%5C%5C%22debug%5C%5C%5C%22%2C%5C%5C%5C%22Assembled%20graph%3A%5C%5C%5C%22%2Cu)%3Breturn%20u%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getEdges%5C%5C%5C%22%2Cvalue%3Afunction%20e(t%2Ci%2Cr)%7Bvar%20a%3D_utils2.default.getTiddler(t)%3Bif(!a%7C%7C_utils2.default.isSystemOrDraft(a))%7Breturn%7Dvar%20s%3Dthis.indeces.allETy%3Bvar%20l%3D_utils2.default.makeHashMap()%3Bvar%20n%3Dthis.edgeTypeSubscriberRegistry.getAll()%3Bfor(var%20d%3D0%2Co%3Dn.length%3Bd%3Co%3Bd%2B%2B)%7BObject.assign(l%2Cn%5Bd%5D.loadEdges(a%2Ci%2Cr))%7Dfor(var%20u%20in%20l)%7Bvar%20f%3Dl%5Bu%5D%3Bif(!f.from%7C%7C!f.to)%7Bcontinue%7Dvar%20g%3Ds%5Bf.type%5D%7C%7C_EdgeType2.default.getInstance(f.type)%3BaddStyleToEdge(l%5Bu%5D%2Cg)%3Bl%5Bu%5D%3Df%7Dreturn%20l%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getEdgesForSet%5C%5C%5C%22%2Cvalue%3Afunction%20e(t%2Ci%2Cr)%7Bvar%20a%3D_utils2.default.makeHashMap()%3Bfor(var%20s%3Dt.length%3Bs--%3B)%7BObject.assign(a%2Cthis.getEdges(t%5Bs%5D%2Ci%2Cr))%7Dreturn%20a%7D%7D%2C%7Bkey%3A%5C%5C%5C%22selectEdgesByType%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Bvar%20i%3D_utils2.default.makeHashMap(_defineProperty(%7B%7D%2C_EdgeType2.default.getInstance(t).id%2Ctrue))%3Breturn%20this.getEdgesForSet(this.getAllPotentialNodes()%2Cnull%2Ci)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getAllPotentialNodes%5C%5C%5C%22%2Cvalue%3Afunction%20e()%7Breturn%20_utils2.default.getMatches(%24tm.selector.allPotentialNodes)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_processEdgesWithType%5C%5C%5C%22%2Cvalue%3Afunction%20e(t%2Ci)%7Bvar%20r%3Di.action%2Ca%3Di.newName%3Bt%3D_EdgeType2.default.getInstance(t)%3B%24tm.logger(%5C%5C%5C%22debug%5C%5C%5C%22%2C%5C%5C%5C%22Processing%20edges%5C%5C%5C%22%2Ct%2Cr)%3Bvar%20s%3Dthis.selectEdgesByType(t)%3Bif(r%3D%3D%3D%5C%5C%5C%22rename%5C%5C%5C%22)%7Bnew%20_EdgeType2.default(a%2Ct).save()%7Dfor(var%20l%20in%20s)%7Bthis._processEdge(s%5Bl%5D%2C%5C%5C%5C%22delete%5C%5C%5C%22)%3Bif(r%3D%3D%3D%5C%5C%5C%22rename%5C%5C%5C%22)%7Bs%5Bl%5D.type%3Da%3Bthis._processEdge(s%5Bl%5D%2C%5C%5C%5C%22insert%5C%5C%5C%22)%7D%7Dthis.wiki.deleteTiddler(t.fullPath)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22selectNodesByReferences%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Bvar%20i%3Darguments.length%3E1%26%26arguments%5B1%5D!%3D%3Dundefined%3Farguments%5B1%5D%3A%7B%7D%2Cr%3Di.addProperties%2Ca%3Di.outputType%3Bvar%20s%3D_utils2.default.makeHashMap()%3Bvar%20l%3DObject.keys(t)%3Bfor(var%20n%3Dl.length%3Bn--%3B)%7Bvar%20d%3Dthis.makeNode(t%5Bl%5Bn%5D%5D%2Cr)%3Bif(d)%7Bs%5Bd.id%5D%3Dd%7D%7Dreturn%20_utils2.default.convert(s%2Ca)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22selectNodesByIds%5C%5C%5C%22%2Cvalue%3Afunction%20e(t%2Ci)%7Bvar%20r%3Dthis.getTiddlersByIds(t)%3Breturn%20this.selectNodesByReferences(r%2Ci)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22selectNodeById%5C%5C%5C%22%2Cvalue%3Afunction%20e(t%2Ci)%7Bi%3DObject.assign(%7B%7D%2Ci%2C%7BoutputType%3A%5C%5C%5C%22hashmap%5C%5C%5C%22%7D)%3Bvar%20r%3Dthis.selectNodesByIds(%5Bt%5D%2Ci)%3Breturn%20r%5Bt%5D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22removeNodeType%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Bt%3D_NodeType2.default.getInstance(t)%3Bthis.wiki.deleteTiddler(t.fullPath)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22makeNode%5C%5C%5C%22%2Cvalue%3Afunction%20e(t%2Ci)%7Bvar%20r%3D_utils2.default.getTiddler(t)%3Bif(!r%7C%7C_utils2.default.isSystemOrDraft(r))return%3Bvar%20a%3D_utils2.default.merge(%7B%7D%2Ci)%3Ba.id%3Dthis.assignId(r)%3Ba.tRef%3Dr.fields.title%3Bvar%20s%3Dr.fields%5B%24tm.field.nodeLabel%5D%3Ba.label%3D(s%26%26%24tm.field.nodeLabel!%3D%3D%5C%5C%5C%22title%5C%5C%5C%22%3Fthis.wiki.renderText(%5C%5C%5C%22text%2Fplain%5C%5C%5C%22%2C%5C%5C%5C%22text%2Fvnd-tiddlywiki%5C%5C%5C%22%2Cs)%3Ar.fields.title).replace(%5C%5C%5C%22%5C%5C%5C%5C%5C%5C%5C%5Cn%5C%5C%5C%22%2C%5C%5C%5C%22%5C%5C%5C%5Cn%5C%5C%5C%22)%3Breturn%20a%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getInheritedNodeStyles%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Bvar%20i%3Dthis.getTiddlersByIds(t)%3Bvar%20r%3D%7B%7D%3Bvar%20a%3Dthis.indeces.glNTy%3Bfor(var%20s%3Da.length%3Bs--%3B)%7Bvar%20l%3Da%5Bs%5D%3Bvar%20n%3D%5B%5D%3Bif(l.id%3D%3D%3D%5C%5C%5C%22tmap%3Aneighbour%5C%5C%5C%22)%7Bfor(var%20d%20in%20t)%7Bif(t%5Bd%5D.type%3D%3D%3D%5C%5C%5C%22tmap%3Aneighbour%5C%5C%5C%22)%7Bn.push(this.getTiddlerById(d))%7D%7D%7Delse%7Bn%3Dl.getInheritors(i)%7Dfor(var%20o%3Dn.length%3Bo--%3B)%7Bvar%20u%3Dn%5Bo%5D%3Bvar%20f%3Dr%5Bu%5D%3Dr%5Bu%5D%7C%7C%7B%7D%3Bf.style%3D_utils2.default.merge(f.style%7C%7C%7B%7D%2Cl.style)%3Bif(l%5B%5C%5C%5C%22fa-icon%5C%5C%5C%22%5D)%7Bf%5B%5C%5C%5C%22fa-icon%5C%5C%5C%22%5D%3Dl%5B%5C%5C%5C%22fa-icon%5C%5C%5C%22%5D%7Delse%20if(l%5B%5C%5C%5C%22tw-icon%5C%5C%5C%22%5D)%7Bf%5B%5C%5C%5C%22tw-icon%5C%5C%5C%22%5D%3Dl%5B%5C%5C%5C%22tw-icon%5C%5C%5C%22%5D%7D%7D%7Dreturn%20r%7D%7D%2C%7Bkey%3A%5C%5C%5C%22attachStylesToNodes%5C%5C%5C%22%2Cvalue%3Afunction%20e(t%2Ci)%7Bi%3D_ViewAbstraction2.default.exists(i)%3Fnew%20_ViewAbstraction2.default(i)%3Anull%3Bvar%20r%3Dthis.getInheritedNodeStyles(t)%3Bvar%20a%3Di%3Fi.getNodeData()%3A_utils2.default.makeHashMap()%3Bvar%20s%3Di%26%26!i.isEnabled(%5C%5C%5C%22physics_mode%5C%5C%5C%22)%3Bfor(var%20l%20in%20t)%7Bvar%20n%3Dthis.getTiddlerById(l)%3Bvar%20d%3Dthis.wiki.getTiddler(n)%3Bvar%20o%3Dd.fields%3Bvar%20u%3Dt%5Bl%5D%3Bvar%20f%3Dvoid%200%3Bvar%20g%3Dr%5Bn%5D%3Bif(g)%7B_utils2.default.merge(u%2Cg.style)%3Bf%3DgetIcon(g%5B%5C%5C%5C%22fa-icon%5C%5C%5C%22%5D%2Cg%5B%5C%5C%5C%22tw-icon%5C%5C%5C%22%5D)%7Dif(o.color)%7Bu.color%3Do.color%7Dif(o%5B%5C%5C%5C%22tmap.style%5C%5C%5C%22%5D)%7B_utils2.default.merge(u%2C_utils2.default.parseJSON(o%5B%5C%5C%5C%22tmap.style%5C%5C%5C%22%5D))%7Df%3DgetIcon(o%5B%5C%5C%5C%22tmap.fa-icon%5C%5C%5C%22%5D%2Co%5B%5C%5C%5C%22icon%5C%5C%5C%22%5D)%7C%7Cf%3Bvar%20c%3Da%5Bl%5D%3Bif(c)%7B_utils2.default.merge(u%2Cc)%3Bif(s)%7Bu.fixed%3D%7Bx%3Au.x!%3Dnull%2Cy%3Au.y!%3Dnull%7D%7Df%3DgetIcon(c%5B%5C%5C%5C%22fa-icon%5C%5C%5C%22%5D%2Cc%5B%5C%5C%5C%22tw-icon%5C%5C%5C%22%5D)%7C%7Cf%7Dvar%20v%3Du.color!%3D%3Dnull%26%26_typeof(u.color)%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22%3Bvar%20y%3Dv%3Fu.color.background%3Au.color%3Bu.color%3D%7Bbackground%3Ay%2Cborder%3Av%3Fu.color.border%3Aundefined%7D%3BaddNodeIcon(u%2Cf)%3Bu.font%3Du.font%7C%7C%7B%7D%3Bif(u.shape%26%26!this.visShapesWithTextInside%5Bu.shape%5D)%7Bu.font.color%3D%5C%5C%5C%22black%5C%5C%5C%22%7Delse%20if(!u.font.color%26%26y)%7Bu.font.color%3D(0%2C_contrastcolour.run)(y%2Cy%2C%5C%5C%5C%22black%5C%5C%5C%22%2C%5C%5C%5C%22white%5C%5C%5C%22)%7Dif(u.shape%3D%3D%3D%5C%5C%5C%22icon%5C%5C%5C%22)%7Bu.label%3D%5C%5C%5C%22%5C%5C%5C%5Cn%5C%5C%5C%22%2Bu.label%3Bif(_typeof(u.icon)%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22)%7Bu.icon.color%3Dy%7D%7D%7Dif(i)%7Bvar%20h%3Dt%5Bi.getConfig(%5C%5C%5C%22central-topic%5C%5C%5C%22)%5D%3Bif(h)%7B_utils2.default.merge(h%2Cthis.indeces.glNTyById%5B%5C%5C%5C%22tmap%3Acentral-topic%5C%5C%5C%22%5D.style)%7D%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22deleteNode%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Bif(!t)%7Breturn%7Dvar%20i%3D(typeof%20t%3D%3D%3D%5C%5C%5C%22undefined%5C%5C%5C%22%3F%5C%5C%5C%22undefined%5C%5C%5C%22%3A_typeof(t))%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22%3Ft.id%3At%3Bvar%20r%3Dthis.getTiddlerById(i)%3Bif(r)%7B_utils2.default.deleteTiddlers(%5Br%5D)%7Dvar%20a%3D_utils2.default.getMatches(env.selector.allViews)%3Bfor(var%20s%3Da.length%3Bs--%3B)%7Bvar%20l%3Dnew%20_ViewAbstraction2.default(a%5Bs%5D)%3Bl.removeNode(i)%7Dvar%20n%3Dthis.getNeighbours(%5Br%5D)%3Bthis.deleteEdges(n.edges)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22deleteNodes%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Bfor(var%20i%3Dt.length%3Bi--%3B)%7Bthis.deleteNode(t%5Bi%5D)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22insertNode%5C%5C%5C%22%2Cvalue%3Afunction%20e()%7Bvar%20t%3Darguments.length%3E0%26%26arguments%5B0%5D!%3D%3Dundefined%3Farguments%5B0%5D%3A%7B%7D%3Bvar%20i%3Darguments%5B1%5D%3Bvar%20r%3Darguments%5B2%5D%3Bt.label%3Dthis.wiki.generateNewTitle(t.label%7C%7C_utils2.default.getRandomLabel())%3Bvar%20a%3Dnew%20%24tw.Tiddler(%7Btext%3A%5C%5C%5C%22%5C%5C%5C%22%7D%2Cr%2C%7Btitle%3At.label%2C%5C%5C%5C%22tmap.id%5C%5C%5C%22%3Anull%7D%2Cthis.wiki.getModificationFields()%2Cthis.wiki.getCreationFields())%3Bthis.wiki.addTiddler(a)%3Bt%3Dthis.makeNode(a%2Ct)%3Bif(_ViewAbstraction2.default.exists(i))%7Bnew%20_ViewAbstraction2.default(i).addNode(t)%7Dreturn%20t%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getTiddlersByIds%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Bif(Array.isArray(t))%7Bt%3D_utils2.default.getArrayValuesAsHashmapKeys(t)%7Delse%20if(t%20instanceof%20_vis2.default.DataSet)%7Bt%3D_utils2.default.getLookupTable(t%2C%5C%5C%5C%22id%5C%5C%5C%22)%7Dvar%20i%3D%5B%5D%3Bfor(var%20r%20in%20t)%7Bvar%20a%3Dthis.getTiddlerById(r)%3Bif(a)%7Bi.push(a)%7D%7Dreturn%20i%7D%7D%5D)%3Breturn%20e%7D()%3Bvar%20getFAdigits%3Dfunction%20e(t)%7Breturn%20t.length%3D%3D%3D4%3Ft%3At.substr(3%2C4)%7D%3Bvar%20addNodeIcon%3Dfunction%20e(t%2Ci)%7Bif(!i)%7Breturn%7Dif(i.fa)%7Bt.shape%3D%5C%5C%5C%22icon%5C%5C%5C%22%3Bt.icon%3D%7Bshape%3A%5C%5C%5C%22icon%5C%5C%5C%22%2Cface%3A%5C%5C%5C%22FontAwesome%5C%5C%5C%22%2Ccolor%3At.color%2Ccode%3AString.fromCharCode(%5C%5C%5C%220x%5C%5C%5C%22%2BgetFAdigits(i.fa))%7D%3Bif(t.size)%7Bt.icon.size%3Dt.size%7Dreturn%7Dif(i.tw)%7Bvar%20r%3D_utils2.default.getTiddler(i.tw)%3Bif(!r)%7Breturn%7Dif(r.fields%5B%5C%5C%5C%22_canonical_uri%5C%5C%5C%22%5D)%7Bt.image%3Dr.fields%5B%5C%5C%5C%22_canonical_uri%5C%5C%5C%22%5D%3Bt.shape%3D%5C%5C%5C%22image%5C%5C%5C%22%7Delse%20if(r.fields.text)%7Bt.image%3D_utils2.default.getDataUri(r)%3Bt.shape%3D%5C%5C%5C%22image%5C%5C%5C%22%7D%7D%7D%3Bvar%20removeObsoleteViewData%3Dfunction%20e(t%2Ci)%7Bif(!_ViewAbstraction2.default.exists(i)%7C%7C!t)%7Breturn%7Di%3Dnew%20_ViewAbstraction2.default(i)%3Bvar%20r%3Di.getNodeData()%3Bvar%20a%3D0%3Bfor(var%20s%20in%20r)%7Bif(t%5Bs%5D%3D%3D%3Dundefined%26%26r%5Bs%5D!%3Dnull)%7Br%5Bs%5D%3Dundefined%3Ba%2B%2B%7D%7Dif(a)%7B%24tm.logger(%5C%5C%5C%22debug%5C%5C%5C%22%2C%5C%5C%5C%22%5BCleanup%5D%5C%5C%5C%22%2C%5C%5C%5C%22Removed%20obsolete%20node%20data%3A%5C%5C%5C%22%2Ci.getLabel()%2Ca)%3Bi.saveNodeData(r)%7D%7D%3Bvar%20addStyleToEdge%3Dfunction%20e(t%2Ci)%7Bt%3DObject.assign(t%2Ci.style)%3Bif(_utils2.default.isTrue(i%5B%5C%5C%5C%22show-label%5C%5C%5C%22%5D%2Ctrue))%7Bt.label%3Di.getLabel()%7D%7D%3Bvar%20getIcon%3Dfunction%20e(t%2Ci)%7Breturn%20t%26%26%7Bfa%3At%7D%7C%7Ci%26%26%7Btw%3Ai%7D%7D%3Bexports.default%3DAdapter%3B%5C%5Cn%2F%2F%23%20sourceMappingURL%3D.%2Fmaps%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Fservices%2FAdapter.js.map%5C%5Cn%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22type%5C%22%3A%20%5C%22application%2Fjavascript%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22module-type%5C%22%3A%20%5C%22library%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FCallbackManager%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FCallbackManager%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_createClass%3Dfunction()%7Bfunction%20e(e%2Ct)%7Bfor(var%20a%3D0%3Ba%3Ct.length%3Ba%2B%2B)%7Bvar%20l%3Dt%5Ba%5D%3Bl.enumerable%3Dl.enumerable%7C%7Cfalse%3Bl.configurable%3Dtrue%3Bif(%5C%5C%5C%22value%5C%5C%5C%22in%20l)l.writable%3Dtrue%3BObject.defineProperty(e%2Cl.key%2Cl)%7D%7Dreturn%20function(t%2Ca%2Cl)%7Bif(a)e(t.prototype%2Ca)%3Bif(l)e(t%2Cl)%3Breturn%20t%7D%7D()%3B%2F*%20%40preserve%20TW-Guard%20*%2F%5C%5Cn%2F*%5C%5C%5C%5C%5C%5Cn%5C%5Cntitle%3A%20%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FCallbackManager%5C%5Cntype%3A%20application%2Fjavascript%5C%5Cnmodule-type%3A%20library%5C%5Cn%5C%5Cn%40preserve%5C%5Cn%5C%5Cn%5C%5C%5C%5C*%2F%5C%5Cn%2F*%20%40preserve%20TW-Guard%20*%2Fvar%20_utils%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Futils%5C%5C%5C%22)%3Bvar%20_utils2%3D_interopRequireDefault(_utils)%3Bfunction%20_interopRequireDefault(e)%7Breturn%20e%26%26e.__esModule%3Fe%3A%7Bdefault%3Ae%7D%7Dfunction%20_classCallCheck(e%2Ct)%7Bif(!(e%20instanceof%20t))%7Bthrow%20new%20TypeError(%5C%5C%5C%22Cannot%20call%20a%20class%20as%20a%20function%5C%5C%5C%22)%7D%7Dvar%20CallbackManager%3Dfunction()%7Bfunction%20e()%7B_classCallCheck(this%2Ce)%3Bthis.callbacks%3D_utils2.default.makeHashMap()%3Bthis.logger%3D%24tm.logger%3Bthis.wiki%3D%24tw.wiki%7D_createClass(e%2C%5B%7Bkey%3A%5C%5C%5C%22add%5C%5C%5C%22%2Cvalue%3Afunction%20e(t%2Ca)%7Bvar%20l%3Darguments.length%3E2%26%26arguments%5B2%5D!%3D%3Dundefined%3Farguments%5B2%5D%3Atrue%3Bthis.logger(%5C%5C%5C%22debug%5C%5C%5C%22%2C'A%20callback%20was%20registered%20for%20changes%20of%20%5C%5C%5C%22'%2Bt%2B'%5C%5C%5C%22')%3Bthis.callbacks%5Bt%5D%3D%7Bexecute%3Aa%2CisDeleteOnCall%3Al%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22remove%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Bif(!t)%7Breturn%7Dif(typeof%20t%3D%3D%3D%5C%5C%5C%22string%5C%5C%5C%22)%7Bt%3D%5Bt%5D%7Dfor(var%20a%3Dt.length%3Ba--%3B)%7Bvar%20l%3Dt%5Ba%5D%3Bif(this.callbacks%5Bl%5D)%7Bthis.logger(%5C%5C%5C%22debug%5C%5C%5C%22%2C'Deleting%20callback%20for%20%5C%5C%5C%22'%2Bl%2B'%5C%5C%5C%22')%3Bdelete%20this.callbacks%5Bl%5D%7D%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22refresh%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Bif(this.callbacks.length%3D%3D0)%7Breturn%7Dfor(var%20a%20in%20t)%7Bif(!this.callbacks%5Ba%5D)%7Bcontinue%7Dif(this.wiki.getTiddler(a))%7Bthis.logger(%5C%5C%5C%22debug%5C%5C%5C%22%2C%5C%5C%5C%22Executing%20a%20callback%20for%3A%20%5C%5C%5C%22%2Ba)%3Bthis.callbacks%5Ba%5D.execute(a)%3Bif(!this.callbacks.isDeleteOnCall)%7Bcontinue%7D%7Dthis.remove(a)%7D%7D%7D%5D)%3Breturn%20e%7D()%3Bexports.default%3DCallbackManager%3B%5C%5Cn%2F%2F%23%20sourceMappingURL%3D.%2Fmaps%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Fservices%2FCallbackManager.js.map%5C%5Cn%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22type%5C%22%3A%20%5C%22application%2Fjavascript%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22module-type%5C%22%3A%20%5C%22library%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Fstartup%2Fcaretaker%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Fstartup%2Fcaretaker%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bexports.startup%3Dexports.synchronous%3Dexports.before%3Dexports.after%3Dexports.platforms%3Dexports.name%3Dundefined%3Bvar%20_rebuilders%3Bvar%20_extends%3DObject.assign%7C%7Cfunction(e)%7Bfor(var%20t%3D1%3Bt%3Carguments.length%3Bt%2B%2B)%7Bvar%20r%3Darguments%5Bt%5D%3Bfor(var%20i%20in%20r)%7Bif(Object.prototype.hasOwnProperty.call(r%2Ci))%7Be%5Bi%5D%3Dr%5Bi%5D%7D%7D%7Dreturn%20e%7D%3B%2F*%20%40preserve%20TW-Guard%20*%2F%5C%5Cn%2F*%5C%5C%5C%5C%5C%5Cn%5C%5Cntitle%3A%20%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Fstartup%2Fcaretaker%5C%5Cntype%3A%20application%2Fjavascript%5C%5Cnmodule-type%3A%20startup%5C%5Cn%5C%5Cn%40preserve%5C%5Cn%5C%5Cn%5C%5C%5C%5C*%2F%5C%5Cn%2F*%20%40preserve%20TW-Guard%20*%2Fvar%20_vis%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Fconfig%2Fvis%5C%5C%5C%22)%3Bvar%20_vis2%3D_interopRequireDefault(_vis)%3Bvar%20_utils%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Futils%5C%5C%5C%22)%3Bvar%20_utils2%3D_interopRequireDefault(_utils)%3Bvar%20_Fixer%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FFixer%5C%5C%5C%22)%3Bvar%20_Fixer2%3D_interopRequireDefault(_Fixer)%3Bvar%20_Adapter%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FAdapter%5C%5C%5C%22)%3Bvar%20_Adapter2%3D_interopRequireDefault(_Adapter)%3Bvar%20_tracker%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Fservices%2Ftracker%5C%5C%5C%22)%3Bvar%20_tracker2%3D_interopRequireDefault(_tracker)%3Bvar%20_EdgeTypeSubscriberRegistry%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FEdgeTypeSubscriberRegistry%5C%5C%5C%22)%3Bvar%20_EdgeTypeSubscriberRegistry2%3D_interopRequireDefault(_EdgeTypeSubscriberRegistry)%3Bvar%20_DialogManager%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FDialogManager%5C%5C%5C%22)%3Bvar%20_DialogManager2%3D_interopRequireDefault(_DialogManager)%3Bvar%20_CallbackManager%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FCallbackManager%5C%5C%5C%22)%3Bvar%20_CallbackManager2%3D_interopRequireDefault(_CallbackManager)%3Bvar%20_ViewAbstraction%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FViewAbstraction%5C%5C%5C%22)%3Bvar%20_ViewAbstraction2%3D_interopRequireDefault(_ViewAbstraction)%3Bvar%20_EdgeType%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FEdgeType%5C%5C%5C%22)%3Bvar%20_EdgeType2%3D_interopRequireDefault(_EdgeType)%3Bvar%20_NodeType%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FNodeType%5C%5C%5C%22)%3Bvar%20_NodeType2%3D_interopRequireDefault(_NodeType)%3Bvar%20_vis3%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Fvis%2Fvis.js%5C%5C%5C%22)%3Bvar%20_vis4%3D_interopRequireDefault(_vis3)%3Bvar%20_environment%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Flib%2Fenvironment%5C%5C%5C%22)%3Bvar%20env%3D_interopRequireWildcard(_environment)%3Bvar%20_URL%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FURL%5C%5C%5C%22)%3Bvar%20_URL2%3D_interopRequireDefault(_URL)%3Bfunction%20_interopRequireWildcard(e)%7Bif(e%26%26e.__esModule)%7Breturn%20e%7Delse%7Bvar%20t%3D%7B%7D%3Bif(e!%3Dnull)%7Bfor(var%20r%20in%20e)%7Bif(Object.prototype.hasOwnProperty.call(e%2Cr))t%5Br%5D%3De%5Br%5D%7D%7Dt.default%3De%3Breturn%20t%7D%7Dfunction%20_interopRequireDefault(e)%7Breturn%20e%26%26e.__esModule%3Fe%3A%7Bdefault%3Ae%7D%7Dfunction%20_defineProperty(e%2Ct%2Cr)%7Bif(t%20in%20e)%7BObject.defineProperty(e%2Ct%2C%7Bvalue%3Ar%2Cenumerable%3Atrue%2Cconfigurable%3Atrue%2Cwritable%3Atrue%7D)%7Delse%7Be%5Bt%5D%3Dr%7Dreturn%20e%7Dvar%20init%3Dfunction%20e()%7Bwindow.%24tm%3D_extends(%7B%7D%2Cenv%2C%7Butils%3A_utils2.default%2Curl%3Anew%20_URL2.default(window.location.href)%7D)%3Bcleanup()%3BregisterPublicClasses(%24tm)%3BupdateGlobals(%24tm)%3BcreateMetaFile(%24tm.logger)%3Bvar%20t%3DattachIndeces(%24tm)%3Bvar%20r%3DgetInitializedServices(t)%3BObject.assign(%24tm%2Cr)%3BloadDefaultView(%24tm.config.sys.defaultView)%3Br.fixer.fix()%3B%24tm.registry%3D%5B%5D%3BsetInterval(routineCheck%2C5e3)%3BregisterChangeListener(%24tm.callbackManager)%3BregisterMousemoveListener()%3BregisterClickListener()%3Bif(%24tm.url.query%5B%5C%5C%5C%22tmap-enlarged%5C%5C%5C%22%5D)%7BprepareFullscreenStart(%24tm.url)%7D%24tm.logger(%5C%5C%5C%22warn%5C%5C%5C%22%2C%5C%5C%5C%22TiddlyMap's%20caretaker%20successfully%20started%5C%5C%5C%22)%7D%3Bvar%20getInitializedServices%3Dfunction%20e(t)%7Bvar%20r%3Dnew%20_tracker2.default(d)%3Bvar%20i%3D%24tw.modules.applyMethods(%5C%5C%5C%22tmap.edgetypehandler%5C%5C%5C%22)%3Bvar%20a%3Dnew%20_EdgeTypeSubscriberRegistry2.default(i%2Ct.allETy%2Cr)%3Bvar%20s%3Dnew%20_Adapter2.default(r%2Ca)%3Bvar%20l%3Dnew%20_CallbackManager2.default%3Bvar%20n%3Dnew%20_DialogManager2.default(l)%3Bvar%20d%3Dnew%20_Fixer2.default(s%2C%24tm.logger%2Ct.glNTy)%3Breturn%7BedgeTypeSubscriberRegistry%3Aa%2Ctracker%3Ar%2Cadapter%3As%2CcallbackManager%3Al%2CdialogManager%3An%2Cfixer%3Ad%7D%7D%3Bvar%20registerPublicClasses%3Dfunction%20e(t)%7Bt.keycharm%3D_vis4.default.keycharm%3Bt.NodeType%3D_NodeType2.default%3Bt.EdgeType%3D_EdgeType2.default%3Bt.ViewAbstraction%3D_ViewAbstraction2.default%7D%3Bvar%20attachOptions%3Dfunction%20e(t)%7Bvar%20r%3Dt%3Bif(!r.config)r.config%3D_utils2.default.makeHashMap()%3Br.config.sys%3D_utils2.default.merge(r.config.sys%2C_utils2.default.unflatten(%24tw.wiki.getTiddlerData(env.ref.sysUserConf)))%3Br.config.vis%3D_utils2.default.merge(%7B%7D%2C_vis2.default%2C_utils2.default.parseFieldData(env.ref.visUserConf))%3Bif(!r.field)r.field%3D_utils2.default.makeHashMap()%3B%24tw.utils.extend(r.field%2Cr.config.sys.field)%7D%3Bvar%20attachIndeces%3Dfunction%20e(t)%7B%24tm.start(%5C%5C%5C%22Attaching%20Indeces%5C%5C%5C%22)%3Bt.indeces%3Dt.indeces%7C%7C%7B%7D%3BupdateNodeTypesIndeces(t.indeces)%3BupdateEdgeTypesIndeces(t.indeces)%3B%24tm.stop(%5C%5C%5C%22Attaching%20Indeces%5C%5C%5C%22)%3Breturn%20t.indeces%7D%3Bvar%20updateNodeTypesIndeces%3Dfunction%20e(t)%7Bt%3Dt%7C%7C%24tm.indeces%3Bvar%20r%3D%24tm.path.nodeTypes%3Bvar%20i%3Dt.glNTy%3D%5B%5D%3Bvar%20a%3Dt.glNTyById%3D_utils2.default.makeHashMap()%3B%24tw.wiki.eachTiddlerPlusShadows(function(e%2Ct)%7Bif(_utils2.default.startsWith(t%2Cr))%7Bvar%20s%3D_NodeType2.default.getInstance(t)%3Ba%5Bs.id%5D%3Ds%3Bi.push(s)%7D%7D)%3Bi.sort(function(e%2Ct)%7Breturn%20e.priority-t.priority%7D)%7D%3Bvar%20updateEdgeTypesIndeces%3Dfunction%20e(t)%7Bt%3Dt%7C%7C%24tm.indeces%3Bvar%20r%3D%24tm.path.edgeTypes%3Bvar%20i%3Dt.allETy%3D_utils2.default.makeHashMap()%3B%24tw.wiki.eachTiddlerPlusShadows(function(e%2Ct)%7Bif(_utils2.default.startsWith(t%2Cr))%7Bvar%20a%3D_EdgeType2.default.getInstance(t)%3Bi%5Ba.id%5D%3Da%7D%7D)%3Bif(%24tm.edgeTypeSubscriberRegistry)%7B%24tm.edgeTypeSubscriberRegistry.updateIndex(i)%7D%7D%3Bvar%20attachFunctions%3Dfunction%20e(t)%7Bvar%20r%3Dt%3Bvar%20i%3Dfunction%20e()%7B%7D%3Bif(_utils2.default.isTrue(%24tm.config.sys.debug%2Cfalse)%26%26console)%7Br.logger%3Dfunction()%7Bif(arguments.length%3C2)return%3Bvar%20e%3DArray.prototype.slice.call(arguments)%3Bvar%20t%3De.shift(e)%3Bvar%20r%3Dconsole.hasOwnProperty(t)%3Ft%3A%5C%5C%5C%22debug%5C%5C%5C%22%3Bconsole%5Br%5D.apply(console%2Ce)%7D%3Br.start%3Dfunction(e)%7Bconsole.time(%5C%5C%5C%22%5Btimer%5D%20%5C%5C%5C%22%2Be)%7D%3Br.stop%3Dfunction(e)%7Bconsole.timeEnd(%5C%5C%5C%22%5Btimer%5D%20%5C%5C%5C%22%2Be)%7D%7Delse%7Br.logger%3Dr.start%3Dr.stop%3Di%7Dr.notify%3D_utils2.default.isTrue(%24tm.config.sys.notifications)%3F_utils2.default.notify%3Ai%7D%3Bvar%20routineCheck%3Dfunction%20e()%7Bfor(var%20t%3D%24tm.registry.length%3Bt--%3B)%7Bvar%20r%3D%24tm.registry%5Bt%5D%3Bif(!r.destruct%7C%7C!r.isZombieWidget)return%3Bif(r.isZombieWidget())%7B%24tm.logger(%5C%5C%5C%22warn%5C%5C%5C%22%2C%5C%5C%5C%22a%20widget%20will%20be%20removed%5C%5C%5C%22)%3B%24tm.registry.splice(t%2C1)%3Br.destruct()%7D%7D%7D%3Bvar%20dispatchUpdates%3Dfunction%20e(t)%7Bvar%20r%3D%24tm.registry%3Bfor(var%20i%3Dr.length%3Bi--%3B)%7Bvar%20a%3Dr%5Bi%5D%3Bif(a.update%26%26a.isZombieWidget%26%26!a.isZombieWidget())%7Ba.update(t)%7D%7D%7D%3Bvar%20checkForClone%3Dfunction%20e(t)%7Bvar%20r%3D_utils2.default.getDublicates(t)%3Bif(!r.length)%7Breturn%7D_utils2.default.setField(t%2C%5C%5C%5C%22tmap.edges%5C%5C%5C%22%2Cundefined)%3B%24tm.tracker.assignId(t%2Ctrue)%3B%24tm.dialogManager.open(%5C%5C%5C%22dublicateIdInfo%5C%5C%5C%22%2C%7Bparam%3A%7BchangedTiddler%3At.fields.title%2Cfilter%3A_utils2.default.joinAndWrap(r%2C%5C%5C%5C%22%5B%5B%5C%5C%5C%22%2C%5C%5C%5C%22%5D%5D%5C%5C%5C%22)%2Cid%3A_utils2.default.getId(t)%7D%7D)%7D%3Bvar%20updateGlobals%3Dfunction%20e(t)%7BattachOptions(%24tm)%3BattachFunctions(%24tm)%3B%24tm.logger(%5C%5C%5C%22warn%5C%5C%5C%22%2C%5C%5C%5C%22Rebuilt%20globals%5C%5C%5C%22)%7D%3Bvar%20lastCurrentTiddler%3Dnull%3Bvar%20updateLiveViewTrigger%3Dfunction%20e(t)%7Bif(t%5B%5C%5C%5C%22%24%3A%2FHistoryList%5C%5C%5C%22%5D)%7Bvar%20r%3D_utils2.default.getField(%5C%5C%5C%22%24%3A%2FHistoryList%5C%5C%5C%22%2C%5C%5C%5C%22current-tiddler%5C%5C%5C%22)%7Delse%20if(t%5B%5C%5C%5C%22%24%3A%2Ftemp%2FfocussedTiddler%5C%5C%5C%22%5D)%7Bvar%20r%3D_utils2.default.getField(%5C%5C%5C%22%24%3A%2Ftemp%2FfocussedTiddler%5C%5C%5C%22%2C%5C%5C%5C%22text%5C%5C%5C%22)%7Dif(r!%3Dnull%26%26lastCurrentTiddler!%3D%3Dr)%7BlastCurrentTiddler%3Dr%3B_utils2.default.setField(%5C%5C%5C%22%24%3A%2Ftemp%2Ftmap%2FcurrentTiddler%5C%5C%5C%22%2C%5C%5C%5C%22text%5C%5C%5C%22%2Cr)%7D%7D%3Bvar%20printChanges%3Dfunction%20e(t%2Cr)%7Bif(!_utils2.default.isTrue(%24tm.config.sys.debug%2Cfalse))return%3B%24tm.logger(%5C%5C%5C%22warn%5C%5C%5C%22%2C%5C%5C%5C%22%3D%3D%3D%20Refresh%20%5C%5C%5C%22%2Br%2B%5C%5C%5C%22%20%3D%3D%3D%5C%5C%5C%22)%3Bfor(var%20i%20in%20t)%7Bvar%20a%3Dt%5Bi%5D.deleted%3F%5C%5C%5C%22%5BDeleted%5D%5C%5C%5C%22%3A%5C%5C%5C%22%5BModified%5D%5C%5C%5C%22%3B%24tm.logger(%5C%5C%5C%22warn%5C%5C%5C%22%2Ca%2Ci%2C%24tw.wiki.getTiddler(i))%7D%7D%3Bvar%20registerMousemoveListener%3Dfunction%20e()%7B%24tm.mouse%3D%7B%7D%3Bvar%20t%3Dfunction%20e(t)%7B%24tm.mouse%3Dt%7D%3Bwindow.addEventListener(%5C%5C%5C%22mousemove%5C%5C%5C%22%2Ct%2Cfalse)%7D%3Bvar%20registerClickListener%3Dfunction%20e()%7Bvar%20t%3D%24tm.path.tempPopups%3Bwindow.addEventListener(%5C%5C%5C%22click%5C%5C%5C%22%2Cfunction(e)%7Bvar%20r%3D_utils2.default.getTiddlersByPrefix(t)%3Bfor(var%20i%3Dr.length%3Bi--%3B)%7Bif(_utils2.default.getText(r%5Bi%5D))break%7Dif(i%3D%3D%3D-1)return%3Bif(!%24tw.utils.hasClass(e.target%2C%5C%5C%5C%22tc-drop-down%5C%5C%5C%22)%26%26!_utils2.default.getAncestorWithClass(e.target%2C%5C%5C%5C%22tc-drop-down%5C%5C%5C%22))%7Bfor(var%20i%3Dr.length%3Bi--%3B)%7B_utils2.default.setText(r%5Bi%5D%2C%5C%5C%5C%22%5C%5C%5C%22)%7D%7D%7D%2Cfalse)%7D%3Bvar%20registerChangeListener%3Dfunction%20e(t)%7Bvar%20r%3D0%3B%24tw.wiki.addEventListener(%5C%5C%5C%22change%5C%5C%5C%22%2Cfunction(e)%7B%24tm.start(%5C%5C%5C%22Caretaker%20handling%20changes%5C%5C%5C%22)%3BprintChanges(e%2Cr%2B%2B)%3Bt.refresh(e)%3Bvar%20i%3D%7BchangedTiddlers%3A%7B%7D%7D%3Bfor(var%20a%20in%20e)%7Bvar%20s%3D_utils2.default.getTiddler(a)%3Bif(s%26%26s.isDraft())%7Bcontinue%7Dvar%20l%3DhandleTiddlerChange(a%2Cs%2Ci)%3Bif(l)%7Bi.changedTiddlers%5Ba%5D%3De%5Ba%5D%7D%7DdispatchUpdates(i)%3BupdateLiveViewTrigger(e)%3B%24tm.stop(%5C%5C%5C%22Caretaker%20handling%20changes%5C%5C%5C%22)%7D)%7D%3Bvar%20rebuilders%3D(_rebuilders%3D%7B%7D%2C_defineProperty(_rebuilders%2Cenv.path.options%2CupdateGlobals)%2C_defineProperty(_rebuilders%2Cenv.path.nodeTypes%2CupdateNodeTypesIndeces)%2C_defineProperty(_rebuilders%2Cenv.path.edgeTypes%2CupdateEdgeTypesIndeces)%2C_rebuilders)%3Bvar%20handleTiddlerChange%3Dfunction%20e(t%2Cr%2Ci)%7Bif(%24tw.wiki.isSystemTiddler(t))%7Bfor(var%20a%20in%20rebuilders)%7Bif(_utils2.default.startsWith(t%2Ca)%26%26!i%5Ba%5D)%7B%24tm.logger(%5C%5C%5C%22warn%5C%5C%5C%22%2C%5C%5C%5C%22%5BSystem%20change%5D%5C%5C%5C%22%2Ca)%3Brebuilders%5Ba%5D()%3Bi%5Ba%5D%3Dtrue%7D%7D%7Delse%20if(r)%7Bif(r.fields.text%3D%3D%3Dundefined)%7B%24tw.wiki.dispatchEvent(%5C%5C%5C%22lazyLoad%5C%5C%5C%22%2Ct)%3Breturn%20false%7DcheckForClone(r)%3B%24tm.tracker.assignId(r)%7Delse%7Bvar%20s%3D%24tm.tracker.getIdByTiddler(t)%3Bif(!s)%7Breturn%20false%7Dvar%20l%3D_utils2.default.getTiddlerWithField(%5C%5C%5C%22tmap.id%5C%5C%5C%22%2Cs)%3Bif(l)%7B%24tm.logger(%5C%5C%5C%22warn%5C%5C%5C%22%2C%5C%5C%5C%22%5BRenamed%5D%5C%5C%5C%22%2Ct%2C%5C%5C%5C%22into%5C%5C%5C%22%2Cl)%7Delse%7B%24tm.adapter.deleteNode(s)%7D%7Dreturn%20true%7D%3Bvar%20cleanup%3Dfunction%20e()%7B_utils2.default.deleteByPrefix(%5C%5C%5C%22%24%3A%2Ftemp%2Ffelixhayashi%5C%5C%5C%22)%3B_utils2.default.deleteByPrefix(%5C%5C%5C%22%24%3A%2Ftemp%2Ftiddlymap%5C%5C%5C%22)%3B_utils2.default.deleteByPrefix(%5C%5C%5C%22%24%3A%2Ftemp%2Ftmap%5C%5C%5C%22)%7D%3Bvar%20loadDefaultView%3Dfunction%20e(t)%7Bif(!t)%7Breturn%7Dvar%20r%3D_utils2.default.getTiddler(env.ref.defaultViewHolder)%3Bif(r.fields.text%3D%3D%3D%24tm.config.sys.defaultView)%7Breturn%7D_utils2.default.setText(env.ref.defaultViewHolder%2C%24tm.config.sys.defaultView)%7D%3Bvar%20prepareFullscreenStart%3Dfunction%20e(t)%7Bvar%20r%3Denv.ref%2Ci%3Dr.mainEditor%2Ca%3Dr.defaultViewHolder%3B_utils2.default.setSidebarTab(i)%3Bif(_ViewAbstraction2.default.exists(t))%7Bt%3Dnew%20_ViewAbstraction2.default(t)%3B_utils2.default.setField(a%2C%5C%5C%5C%22text%5C%5C%5C%22%2Ct.getLabel())%7D%7D%3Bvar%20createMetaFile%3Dfunction%20e(t)%7Bif(_utils2.default.tiddlerExists(env.ref.sysMeta))%7Breturn%7Dt(%5C%5C%5C%22warn%5C%5C%5C%22%2C%5C%5C%5C%22Creating%20meta%20file%5C%5C%5C%22)%3Bvar%20r%3D%24tw.wiki.getTiddler(env.path.pluginRoot)%3B%24tw.wiki.setTiddlerData(env.ref.sysMeta%2C%7BoriginalVersion%3Ar.fields.version%2CdataStructureState%3A%5C%5C%5C%220.6.9%5C%5C%5C%22%2CshowWelcomeMessage%3Atrue%7D)%7D%3Bvar%20name%3Dexports.name%3D%5C%5C%5C%22tmap.caretaker%5C%5C%5C%22%3Bvar%20platforms%3Dexports.platforms%3D%5B%5C%5C%5C%22browser%5C%5C%5C%22%5D%3Bvar%20after%3Dexports.after%3D%5B%5C%5C%5C%22startup%5C%5C%5C%22%5D%3Bvar%20before%3Dexports.before%3D%5B%5C%5C%5C%22rootwidget%5C%5C%5C%22%5D%3Bvar%20synchronous%3Dexports.synchronous%3Dtrue%3Bvar%20startup%3Dexports.startup%3Dinit%3B%5C%5Cn%2F%2F%23%20sourceMappingURL%3D.%2Fmaps%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Fservices%2FCaretaker.js.map%5C%5Cn%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22type%5C%22%3A%20%5C%22application%2Fjavascript%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22module-type%5C%22%3A%20%5C%22startup%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FDialogManager%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FDialogManager%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_createClass%3Dfunction()%7Bfunction%20e(e%2Ct)%7Bfor(var%20a%3D0%3Ba%3Ct.length%3Ba%2B%2B)%7Bvar%20l%3Dt%5Ba%5D%3Bl.enumerable%3Dl.enumerable%7C%7Cfalse%3Bl.configurable%3Dtrue%3Bif(%5C%5C%5C%22value%5C%5C%5C%22in%20l)l.writable%3Dtrue%3BObject.defineProperty(e%2Cl.key%2Cl)%7D%7Dreturn%20function(t%2Ca%2Cl)%7Bif(a)e(t.prototype%2Ca)%3Bif(l)e(t%2Cl)%3Breturn%20t%7D%7D()%3B%2F*%20%40preserve%20TW-Guard%20*%2F%5C%5Cn%2F*%5C%5C%5C%5C%5C%5Cn%5C%5Cntitle%3A%20%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FDialogManager%5C%5Cntype%3A%20application%2Fjavascript%5C%5Cnmodule-type%3A%20library%5C%5Cn%5C%5Cn%40preserve%5C%5Cn%5C%5Cn%5C%5C%5C%5C*%2F%5C%5Cn%2F*%20%40preserve%20TW-Guard%20*%2Fvar%20_utils%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Futils%5C%5C%5C%22)%3Bvar%20_utils2%3D_interopRequireDefault(_utils)%3Bvar%20_CallbackManager%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FCallbackManager%5C%5C%5C%22)%3Bvar%20_CallbackManager2%3D_interopRequireDefault(_CallbackManager)%3Bfunction%20_interopRequireDefault(e)%7Breturn%20e%26%26e.__esModule%3Fe%3A%7Bdefault%3Ae%7D%7Dfunction%20_classCallCheck(e%2Ct)%7Bif(!(e%20instanceof%20t))%7Bthrow%20new%20TypeError(%5C%5C%5C%22Cannot%20call%20a%20class%20as%20a%20function%5C%5C%5C%22)%7D%7Dvar%20DialogManager%3Dfunction()%7Bfunction%20e(t%2Ca)%7B_classCallCheck(this%2Ce)%3Bthis.callbackManager%3Dt%3Bthis.context%3Da%7D_createClass(e%2C%5B%7Bkey%3A%5C%5C%5C%22open%5C%5C%5C%22%2Cvalue%3Afunction%20t(a)%7Bvar%20l%3Darguments.length%3E1%26%26arguments%5B1%5D!%3D%3Dundefined%3Farguments%5B1%5D%3A%7B%7D%3Bvar%20i%3Darguments%5B2%5D%3Bif(_utils2.default.isTrue(%24tm.config.sys.suppressedDialogs%5Ba%5D%2Cfalse))%7B%24tm.logger(%5C%5C%5C%22warning%5C%5C%5C%22%2C%5C%5C%5C%22Suppressed%20dialog%5C%5C%5C%22%2Ca)%3Breturn%7D%24tm.logger(%5C%5C%5C%22debug%5C%5C%5C%22%2C%5C%5C%5C%22Dialog%20param%20object%5C%5C%5C%22%2Cl)%3Bif(typeof%20i%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22%26%26this.context)%7Bi%3Di.bind(this.context)%7Dvar%20r%3D%24tm.path.tempRoot%2B%5C%5C%5C%22%2Fdialog-%5C%5C%5C%22%2B_utils2.default.genUUID()%3Bvar%20n%3D_utils2.default.getTiddler(%24tm.path.dialogs%2B%5C%5C%5C%22%2F%5C%5C%5C%22%2Ba)%3Bvar%20u%3D%7Btitle%3Ar%2Cbuttons%3An.fields%5B%5C%5C%5C%22buttons%5C%5C%5C%22%5D%7C%7C%5C%5C%5C%22ok_cancel%5C%5C%5C%22%2Cclasses%3A%5C%5C%5C%22tmap-modal-content%20%5C%5C%5C%22%2Bn.fields%5B%5C%5C%5C%22classes%5C%5C%5C%22%5D%2Coutput%3Ar%2B%5C%5C%5C%22%2Foutput%5C%5C%5C%22%2Cresult%3Ar%2B%5C%5C%5C%22%2Fresult%5C%5C%5C%22%2Ctemp%3Ar%2B%5C%5C%5C%22%2Ftemp%5C%5C%5C%22%2Ctemplate%3An.fields.title%2CtemplateId%3Aa%2CcurrentTiddler%3Ar%2B%5C%5C%5C%22%2Foutput%5C%5C%5C%22%2Ctext%3A_utils2.default.getText(%24tm.path.dialogs)%7D%3B_utils2.default.touch(u.output)%3Bif(l.dialog)%7Bif(l.dialog.preselects)%7B%24tw.wiki.addTiddler(new%20%24tw.Tiddler(%7Btitle%3Au.output%7D%2C_utils2.default.flatten(l.dialog.preselects)))%3Bdelete%20l.dialog.preselects%7D_utils2.default.merge(u%2Cl.dialog)%7Du.footer%3D_utils2.default.getText(%24tm.path.footers)%3Bu%3D_utils2.default.flatten(u)%3Bl%3D_utils2.default.flatten(l)%3Bvar%20s%3Dfunction%20t(a)%7Be.getElement(%5C%5C%5C%22hidden-close-button%5C%5C%5C%22).click()%3Bvar%20l%3D%24tw.wiki.getTiddler(a)%3Bvar%20n%3Dl.fields.text%3Bvar%20s%3Dnull%3Bif(n)%7Bs%3D%24tw.wiki.getTiddler(u.output)%7Delse%7B%24tm.notify(%5C%5C%5C%22operation%20cancelled%5C%5C%5C%22)%7Dif(typeof%20i%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22)%7Bi(n%2Cs)%7D_utils2.default.deleteByPrefix(r)%7D%3Bthis.callbackManager.add(u.result%2Cs%2Ctrue)%3Bvar%20o%3Dnew%20%24tw.Tiddler(n%2Cl%2Cu)%3B%24tw.wiki.addTiddler(o)%3B%24tm.logger(%5C%5C%5C%22debug%5C%5C%5C%22%2C%5C%5C%5C%22Opening%20dialog%5C%5C%5C%22%2Co)%3B%24tw.rootWidget.dispatchEvent(%7Btype%3A%5C%5C%5C%22tm-modal%5C%5C%5C%22%2Cparam%3Ao.fields.title%2CparamObject%3Ao.fields%7D)%3Be.addKeyBindings()%3Breturn%20o%7D%7D%5D%2C%5B%7Bkey%3A%5C%5C%5C%22getElement%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Breturn%20_utils2.default.getFirstElementByClassName(%5C%5C%5C%22tmap-%5C%5C%5C%22%2Bt)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22addKeyBindings%5C%5C%5C%22%2Cvalue%3Afunction%20t()%7Bvar%20a%3D%24tm.keycharm(%7Bcontainer%3A_utils2.default.getFirstElementByClassName(%5C%5C%5C%22tc-modal%5C%5C%5C%22)%7D)%3Bvar%20l%3D%2Ftmap-triggers-(.%2B%3F)-on-(.%2B%3F)(%3F%3A%5C%5C%5C%5Cs%7C%24)%2F%3Bvar%20i%3Ddocument.getElementsByClassName(%5C%5C%5C%22tmap-trigger-field%5C%5C%5C%22)%3Bvar%20r%3Dfunction%20t(r)%7Bvar%20n%3Di%5Br%5D.className.split(%5C%5C%5C%22%20%5C%5C%5C%22)%3Bvar%20u%3Dfunction%20t(i)%7Bvar%20r%3Dn%5Bi%5D.match(l)%3Bif(!r)%7Breturn%5C%5C%5C%22continue%5C%5C%5C%22%7Dvar%20u%3Dr%5B1%5D%3Bvar%20s%3Dr%5B2%5D%3Bvar%20o%3De.getElement(u)%3Bif(!o)%7Breturn%5C%5C%5C%22continue%5C%5C%5C%22%7Da.bind(s%2Cfunction()%7Bif(document.getElementsByClassName(n%5Bi%5D).length)%7Bo.click()%7D%7D)%7D%3Bfor(var%20s%3Dn.length%3Bs--%3B)%7Bvar%20o%3Du(s)%3Bif(o%3D%3D%3D%5C%5C%5C%22continue%5C%5C%5C%22)continue%7D%7D%3Bfor(var%20n%3Di.length%3Bn--%3B)%7Br(n)%7D%7D%7D%5D)%3Breturn%20e%7D()%3Bexports.default%3DDialogManager%3B%5C%5Cn%2F%2F%23%20sourceMappingURL%3D.%2Fmaps%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Fservices%2FDialogManager.js.map%5C%5Cn%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22type%5C%22%3A%20%5C%22application%2Fjavascript%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22module-type%5C%22%3A%20%5C%22library%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FFixer%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FFixer%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_typeof%3Dtypeof%20Symbol%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22%26%26typeof%20Symbol.iterator%3D%3D%3D%5C%5C%5C%22symbol%5C%5C%5C%22%3Ffunction(e)%7Breturn%20typeof%20e%7D%3Afunction(e)%7Breturn%20e%26%26typeof%20Symbol%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22%26%26e.constructor%3D%3D%3DSymbol%26%26e!%3D%3DSymbol.prototype%3F%5C%5C%5C%22symbol%5C%5C%5C%22%3Atypeof%20e%7D%3Bvar%20_createClass%3Dfunction()%7Bfunction%20e(e%2Ct)%7Bfor(var%20i%3D0%3Bi%3Ct.length%3Bi%2B%2B)%7Bvar%20r%3Dt%5Bi%5D%3Br.enumerable%3Dr.enumerable%7C%7Cfalse%3Br.configurable%3Dtrue%3Bif(%5C%5C%5C%22value%5C%5C%5C%22in%20r)r.writable%3Dtrue%3BObject.defineProperty(e%2Cr.key%2Cr)%7D%7Dreturn%20function(t%2Ci%2Cr)%7Bif(i)e(t.prototype%2Ci)%3Bif(r)e(t%2Cr)%3Breturn%20t%7D%7D()%3B%2F*%20%40preserve%20TW-Guard%20*%2F%5C%5Cn%2F*%5C%5C%5C%5C%5C%5Cn%5C%5Cntitle%3A%20%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FFixer%5C%5Cntype%3A%20application%2Fjavascript%5C%5Cnmodule-type%3A%20library%5C%5Cn%5C%5Cn%40preserve%5C%5Cn%5C%5Cn%5C%5C%5C%5C*%2F%5C%5Cn%2F*%20%40preserve%20TW-Guard%20*%2Fvar%20_utils%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Futils%5C%5C%5C%22)%3Bvar%20_utils2%3D_interopRequireDefault(_utils)%3Bvar%20_ViewAbstraction%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FViewAbstraction%5C%5C%5C%22)%3Bvar%20_ViewAbstraction2%3D_interopRequireDefault(_ViewAbstraction)%3Bvar%20_EdgeType%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FEdgeType%5C%5C%5C%22)%3Bvar%20_EdgeType2%3D_interopRequireDefault(_EdgeType)%3Bvar%20_NodeType%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FNodeType%5C%5C%5C%22)%3Bvar%20_NodeType2%3D_interopRequireDefault(_NodeType)%3Bvar%20_environment%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Flib%2Fenvironment%5C%5C%5C%22)%3Bvar%20env%3D_interopRequireWildcard(_environment)%3Bfunction%20_interopRequireWildcard(e)%7Bif(e%26%26e.__esModule)%7Breturn%20e%7Delse%7Bvar%20t%3D%7B%7D%3Bif(e!%3Dnull)%7Bfor(var%20i%20in%20e)%7Bif(Object.prototype.hasOwnProperty.call(e%2Ci))t%5Bi%5D%3De%5Bi%5D%7D%7Dt.default%3De%3Breturn%20t%7D%7Dfunction%20_interopRequireDefault(e)%7Breturn%20e%26%26e.__esModule%3Fe%3A%7Bdefault%3Ae%7D%7Dfunction%20_classCallCheck(e%2Ct)%7Bif(!(e%20instanceof%20t))%7Bthrow%20new%20TypeError(%5C%5C%5C%22Cannot%20call%20a%20class%20as%20a%20function%5C%5C%5C%22)%7D%7Dvar%20Fixer%3Dfunction()%7Bfunction%20e(t%2Ci%2Cr)%7B_classCallCheck(this%2Ce)%3Bthis.adapter%3Dt%3Bthis.logger%3Di%3Bthis.wiki%3D%24tw.wiki%3Bthis.glNTy%3Dr%7D_createClass(e%2C%5B%7Bkey%3A%5C%5C%5C%22moveEdges%5C%5C%5C%22%2Cvalue%3Afunction%20e(t%2Ci)%7Bvar%20r%3D_utils2.default.getTiddlersByPrefix(t)%3Bfor(var%20a%3D0%3Ba%3Cr.length%3Ba%2B%2B)%7Bvar%20u%3D_utils2.default.getBasename(r%5Ba%5D)%3Bif(u%3D%3D%3D%5C%5C%5C%22__noname__%5C%5C%5C%22)%7Bu%3D%5C%5C%5C%22tmap%3Aunknown%5C%5C%5C%22%7Du%3D_EdgeType2.default.getInstance(u)%3Bif(!u.exists())%7Bu.save()%7Dvar%20n%3Dthis.wiki.getTiddlerData(r%5Ba%5D)%3Bfor(var%20s%3D0%3Bs%3Cn.length%3Bs%2B%2B)%7Bn%5Bs%5D.type%3D(i%3Fi%2B%5C%5C%5C%22%3A%5C%5C%5C%22%3A%5C%5C%5C%22%5C%5C%5C%22)%2Bu.id%3Bthis.adapter.insertEdge(n%5Bs%5D)%7Dthis.wiki.deleteTiddler(r%5Ba%5D)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22executeUpgrade%5C%5C%5C%22%2Cvalue%3Afunction%20e(t%2Ci%2Cr)%7Bif(!_utils2.default.isLeftVersionGreater(t%2Ci))%7Breturn%7Dthis.logger(%5C%5C%5C%22debug%5C%5C%5C%22%2C%5C%5C%5C%22Upgrading%20data%20structure%20to%20%5C%5C%5C%22%2Bt)%3Bvar%20a%3Dr()%3B_utils2.default.setEntry(env.ref.sysMeta%2C%5C%5C%5C%22dataStructureState%5C%5C%5C%22%2Ct)%3Breturn%20a%7D%7D%2C%7Bkey%3A%5C%5C%5C%22fixId%5C%5C%5C%22%2Cvalue%3Afunction%20e()%7Bvar%20t%3Dthis.wiki.getTiddlerData(env.ref.sysMeta%2C%7B%7D)%3Bthis.executeUpgrade(%5C%5C%5C%220.9.2%5C%5C%5C%22%2Ct.dataStructureState%2Cfunction()%7Bif(_utils2.default.isLeftVersionGreater(%5C%5C%5C%220.9.2%5C%5C%5C%22%2Ct.originalVersion))%7Bvar%20e%3D%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fconfig%2Fsys%2Fuser%5C%5C%5C%22%3Bvar%20i%3D_utils2.default.getEntry(e%2C%5C%5C%5C%22field.nodeId%5C%5C%5C%22%2C%5C%5C%5C%22tmap.id%5C%5C%5C%22)%3B_utils2.default.moveFieldValues(i%2C%5C%5C%5C%22tmap.id%5C%5C%5C%22%2Ctrue%2Cfalse)%7D%7D)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22fix%5C%5C%5C%22%2Cvalue%3Afunction%20e()%7Bvar%20t%3Dthis%3Bvar%20i%3Dthis.wiki.getTiddlerData(env.ref.sysMeta%2C%7B%7D)%3Bthis.logger(%5C%5C%5C%22debug%5C%5C%5C%22%2C%5C%5C%5C%22Fixer%20is%20started%5C%5C%5C%22)%3Bthis.logger(%5C%5C%5C%22debug%5C%5C%5C%22%2C%5C%5C%5C%22Data-structure%20currently%20in%20use%3A%20%5C%5C%5C%22%2Ci.dataStructureState)%3Bthis.executeUpgrade(%5C%5C%5C%220.7.0%5C%5C%5C%22%2Ci.dataStructureState%2Cfunction()%7Bt.moveEdges(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fgraph%2Fedges%5C%5C%5C%22%2Cnull)%3Bvar%20e%3Denv.selector.allViews%3Bvar%20i%3D_utils2.default.getMatches(e)%3Bfor(var%20r%3D0%3Br%3Ci.length%3Br%2B%2B)%7Bvar%20a%3Dnew%20_ViewAbstraction2.default(i%5Br%5D)%3Bt.moveEdges(a.getRoot()%2B%5C%5C%5C%22%2Fgraph%2Fedges%5C%5C%5C%22%2Ca)%7D%7D)%3Bthis.executeUpgrade(%5C%5C%5C%220.7.32%5C%5C%5C%22%2Ci.dataStructureState%2Cfunction()%7Bif(!_ViewAbstraction2.default.exists(%5C%5C%5C%22Live%20View%5C%5C%5C%22))%7Breturn%7Dvar%20e%3Dnew%20_ViewAbstraction2.default(%5C%5C%5C%22Live%20View%5C%5C%5C%22)%3Be.setNodeFilter(%5C%5C%5C%22%5Bfield%3Atitle%7B%24%3A%2Ftemp%2Ftmap%2FcurrentTiddler%7D%5D%5C%5C%5C%22%2Ctrue)%3Be.setConfig(%7B%5C%5C%5C%22refresh-trigger%5C%5C%5C%22%3Anull%2C%5C%5C%5C%22refresh-triggers%5C%5C%5C%22%3A%24tw.utils.stringifyList(%5B%5C%5C%5C%22%24%3A%2Ftemp%2Ftmap%2FcurrentTiddler%5C%5C%5C%22%5D)%7D)%7D)%3Bthis.executeUpgrade(%5C%5C%5C%220.9.0%5C%5C%5C%22%2Ci.dataStructureState%2Cfunction()%7Bvar%20e%3Denv.ref.visUserConf%3Bvar%20i%3D_utils2.default.unflatten(t.wiki.getTiddlerData(e%2C%7B%7D))%3Bif(_typeof(i.groups)%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22)%7Bvar%20r%3D_NodeType2.default.getInstance(%5C%5C%5C%22tmap%3Aneighbour%5C%5C%5C%22)%3Br.setStyle(i.groups%5B%5C%5C%5C%22neighbours%5C%5C%5C%22%5D)%3Br.save()%3Bdelete%20i.groups%3Bt.wiki.setTiddlerData(e%2Ci)%7D%7D)%3Bthis.fixId()%3Bthis.executeUpgrade(%5C%5C%5C%220.9.16%5C%5C%5C%22%2Ci.dataStructureState%2Cfunction()%7Bfor(var%20e%3Dt.glNTy.length%3Be--%3B)%7Bt.glNTy%5Be%5D.save(null%2Ctrue)%7D%7D)%3Bthis.executeUpgrade(%5C%5C%5C%220.10.3%5C%5C%5C%22%2Ci.dataStructureState%2Cfunction()%7Bvar%20e%3Denv.ref.liveTab%3Bif(_utils2.default.getTiddler(e).hasTag(%5C%5C%5C%22%24%3A%2Ftags%2FSideBar%5C%5C%5C%22))%7Bthis.wiki.deleteTiddler(e)%3B_utils2.default.setField(e%2C%5C%5C%5C%22tags%5C%5C%5C%22%2C%5C%5C%5C%22%24%3A%2Ftags%2FSideBar%5C%5C%5C%22)%7D%7D)%3Bthis.executeUpgrade(%5C%5C%5C%220.11.0%5C%5C%5C%22%2Ci.dataStructureState%2Cfunction()%7Bvar%20e%3D_utils2.default.getMatches(env.selector.allViews)%3Bfor(var%20t%3De.length%3Bt--%3B)%7Bvar%20i%3Dnew%20_ViewAbstraction2.default(e%5Bt%5D)%3Bvar%20r%3Di.getEdgeTypeFilter(%5C%5C%5C%22raw%5C%5C%5C%22)%3Bvar%20a%3D%5C%5C%5C%22edge_type_namespace%5C%5C%5C%22%3Bi.setConfig(a%2Ci.getConfig(a))%3Bvar%20u%3Denv.filter.defaultEdgeTypeFilter%3Bif(r)%7Bvar%20n%3Denv.path.edgeTypes%3Br%3D_utils2.default.replaceAll(r%2C%5C%5C%5C%22%5C%5C%5C%22%2C%5Bn%2Cn%2B%5C%5C%5C%22%2F%5C%5C%5C%22%2C%5C%5C%5C%22%5Bprefix%5B%5C%5C%5C%22%2Bn%2B%5C%5C%5C%22%5D%5D%5C%5C%5C%22%2C%5C%5C%5C%22%5Bprefix%5B%5C%5C%5C%22%2Bn%2B%5C%5C%5C%22%2F%5D%5D%5C%5C%5C%22%2C%5B%5C%5C%5C%22%5Bsuffix%5Btw-body%3Alink%5D%5D%5C%5C%5C%22%2C%5C%5C%5C%22%5B%5Btw-body%3Alink%5D%5D%5C%5C%5C%22%5D%2C%5B%5C%5C%5C%22%5Bsuffix%5Btw-list%3Atags%5D%5D%5C%5C%5C%22%2C%5C%5C%5C%22%5B%5Btw-list%3Atags%5D%5D%5C%5C%5C%22%5D%2C%5B%5C%5C%5C%22%5Bsuffix%5Btw-list%3Alist%5D%5D%5C%5C%5C%22%2C%5C%5C%5C%22%5B%5Btw-body%3Alist%5D%5D%5C%5C%5C%22%5D%2C%5B%5C%5C%5C%22%5Bsuffix%5Btmap%3Aunknown%5D%5D%5C%5C%5C%22%2C%5C%5C%5C%22%5B%5Btmap%3Aunknown%5D%5D%5C%5C%5C%22%5D%2C%5B%5C%5C%5C%22%5Bsuffix%5Bunknown%5D%5D%5C%5C%5C%22%2C%5C%5C%5C%22%5B%5Btmap%3Aunknown%5D%5D%5C%5C%5C%22%5D%5D)%3Bu%3D%5C%5C%5C%22-%5Bprefix%5B_%5D%5D%20%5C%5C%5C%22%2Br%7Di.setEdgeTypeFilter(u)%7D%7D)%7D%7D%5D)%3Breturn%20e%7D()%3Bexports.default%3DFixer%3B%5C%5Cn%2F%2F%23%20sourceMappingURL%3D.%2Fmaps%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Fservices%2FFixer.js.map%5C%5Cn%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22type%5C%22%3A%20%5C%22application%2Fjavascript%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22module-type%5C%22%3A%20%5C%22library%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Fstartup%2Flistener%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Fstartup%2Flistener%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bexports.startup%3Dexports.synchronous%3Dexports.before%3Dexports.after%3Dexports.platforms%3Dexports.name%3Dundefined%3Bvar%20_NodeType%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FNodeType%5C%5C%5C%22)%3Bvar%20_NodeType2%3D_interopRequireDefault(_NodeType)%3Bvar%20_EdgeType%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FEdgeType%5C%5C%5C%22)%3Bvar%20_EdgeType2%3D_interopRequireDefault(_EdgeType)%3Bvar%20_Edge%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FEdge%5C%5C%5C%22)%3Bvar%20_Edge2%3D_interopRequireDefault(_Edge)%3Bvar%20_utils%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Futils%5C%5C%5C%22)%3Bvar%20_utils2%3D_interopRequireDefault(_utils)%3Bvar%20_vis%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Fconfig%2Fvis%5C%5C%5C%22)%3Bvar%20_vis2%3D_interopRequireDefault(_vis)%3Bfunction%20_interopRequireDefault(e)%7Breturn%20e%26%26e.__esModule%3Fe%3A%7Bdefault%3Ae%7D%7Dvar%20handleCancelDialog%3Dfunction%20e(t)%7Bvar%20a%3Dt.param%3B_utils2.default.setField(a%2C%5C%5C%5C%22text%5C%5C%5C%22%2C%5C%5C%5C%22%5C%5C%5C%22)%7D%3B%5C%5Cn%2F*%20%40preserve%20TW-Guard%20*%2F%5C%5Cn%2F*%5C%5C%5C%5C%5C%5Cn%5C%5Cntitle%3A%20%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Fstartup%2Flistener%5C%5Cntype%3A%20application%2Fjavascript%5C%5Cnmodule-type%3A%20startup%5C%5Cn%5C%5Cn%40preserve%5C%5Cn%5C%5Cn%5C%5C%5C%5C*%2F%5C%5Cn%2F*%20%40preserve%20TW-Guard%20*%2Fvar%20handleClearTiddler%3Dfunction%20e()%7Bvar%20t%3Darguments.length%3E0%26%26arguments%5B0%5D!%3D%3Dundefined%3Farguments%5B0%5D%3A%7B%7D%2Ca%3Dt.paramObject%3Bvar%20r%3Da.title%2Cd%3Da.keep%3Bif(!r)return%3Bvar%20i%3D_utils2.default.getTiddler(r)%3Bvar%20l%3Di%3Fi.fields%3A%7B%7D%3Bvar%20s%3Dd%3Fd.split()%3A%5B%5D%3Bvar%20n%3D%7Btitle%3Ar%2Ctext%3A%5C%5C%5C%22%5C%5C%5C%22%7D%3Bfor(var%20p%3Ds.length%3Bp--%3B)%7Bvar%20o%3Ds%5Bp%5D%3Bn%5Bo%5D%3Dl%5Bo%5D%7D%24tw.wiki.deleteTiddler(r)%3B%24tw.wiki.addTiddler(new%20%24tw.Tiddler(n))%7D%3Bvar%20handleMixTiddlers%3Dfunction%20e(t)%7Bvar%20a%3Dt.paramObject%2Cr%3Da%3D%3D%3Dundefined%3F%7B%7D%3Aa%3Bvar%20d%3Dr.tiddlers%2Ci%3Dr.output%3Bif(!d%7C%7C!i)return%3Bvar%20l%3D%24tw.utils.parseStringArray(d)%3Bvar%20s%3D_utils2.default.getMergedTiddlers(l%2Ci)%3B%24tw.wiki.addTiddler(s)%7D%3Bvar%20handleConfirmDialog%3Dfunction%20e(t)%7Bvar%20a%3Dt.param%3B_utils2.default.setField(a%2C%5C%5C%5C%22text%5C%5C%5C%22%2C%5C%5C%5C%221%5C%5C%5C%22)%7D%3Bvar%20handleSuppressDialog%3Dfunction%20e(t)%7Bvar%20a%3Dt.paramObject%3Bvar%20r%3Da.dialog%2Cd%3Da.suppress%3Bif(_utils2.default.isTrue(d%2Cfalse))%7B_utils2.default.setEntry(%24tm.ref.sysUserConf%2C%5C%5C%5C%22suppressedDialogs.%5C%5C%5C%22%2Br%2Ctrue)%7D%7D%3Bvar%20handleDownloadGraph%3Dfunction%20e(t)%7Bvar%20a%3Dt.paramObject%3Bvar%20r%3Da.view%3Bvar%20d%3D%24tm.adapter.getGraph(%7Bview%3Ar%7D)%3Bd.nodes%3D_utils2.default.convert(d.nodes%2C%5C%5C%5C%22array%5C%5C%5C%22)%3Bd.edges%3D_utils2.default.convert(d.edges%2C%5C%5C%5C%22array%5C%5C%5C%22)%3Bvar%20i%3D%5C%5C%5C%22%24%3A%2Ftemp%2Ftmap%2Fexport%5C%5C%5C%22%3B_utils2.default.setField(i%2C%5C%5C%5C%22text%5C%5C%5C%22%2CJSON.stringify(d%2Cnull%2C2))%3B%24tw.rootWidget.dispatchEvent(%7Btype%3A%5C%5C%5C%22tm-download-file%5C%5C%5C%22%2Cparam%3Ai%2CparamObject%3A%7Bfilename%3Ar%2B%5C%5C%5C%22.json%5C%5C%5C%22%7D%7D)%7D%3Bvar%20handleConfigureSystem%3Dfunction%20e()%7Bvar%20t%3D_utils2.default.getMatches(%24tm.selector.allPotentialNodes)%3Bvar%20a%3D%24tm.adapter.getEdgesForSet(t)%3Bvar%20r%3D%24tw.wiki.getTiddler(%24tm.path.pluginRoot).fields%3Bvar%20d%3D%24tw.wiki.getTiddlerData(%24tm.ref.sysMeta)%3Bvar%20i%3D_utils2.default.getTiddler(%24tm.ref.liveTab).hasTag(%5C%5C%5C%22%24%3A%2Ftags%2FSideBar%5C%5C%5C%22)%3Bvar%20l%3D%7BnumberOfNodes%3A%5C%5C%5C%22%5C%5C%5C%22%2Bt.length%2CnumberOfEdges%3A%5C%5C%5C%22%5C%5C%5C%22%2BObject.keys(a).length%2CpluginVersion%3A%5C%5C%5C%22v%5C%5C%5C%22%2Br.version%2CdataStructureVersion%3A%5C%5C%5C%22v%5C%5C%5C%22%2Bd.dataStructureState%2Cdialog%3A%7Bpreselects%3A%7BliveTab%3A%5C%5C%5C%22%5C%5C%5C%22%2Bi%2C%5C%5C%5C%22inherited-style%5C%5C%5C%22%3AJSON.stringify(_vis2.default)%2C%5C%5C%5C%22config.vis%5C%5C%5C%22%3A_utils2.default.getText(%24tm.ref.visUserConf)%2C%5C%5C%5C%22config.sys%5C%5C%5C%22%3A%24tm.config.sys%7D%7D%7D%3B%24tm.dialogManager.open(%5C%5C%5C%22globalConfig%5C%5C%5C%22%2Cl%2Cfunction(e%2Ct)%7Bif(!e)return%3Bvar%20a%3D_utils2.default.getPropertiesByPrefix(t.fields%2C%5C%5C%5C%22config.sys.%5C%5C%5C%22%2Ctrue)%3B%24tw.wiki.setTiddlerData(%24tm.ref.sysUserConf%2Ca)%3Bif(_utils2.default.isTrue(t.fields.liveTab%2Cfalse))%7B_utils2.default.setField(%24tm.ref.liveTab%2C%5C%5C%5C%22tags%5C%5C%5C%22%2C%5C%5C%5C%22%24%3A%2Ftags%2FSideBar%5C%5C%5C%22)%7Delse%7B%24tw.wiki.deleteTiddler(%24tm.ref.liveTab)%7D_utils2.default.setField(%24tm.ref.visUserConf%2C%5C%5C%5C%22text%5C%5C%5C%22%2Ct.fields%5B%5C%5C%5C%22config.vis%5C%5C%5C%22%5D)%7D)%7D%3Bvar%20handleGenerateWidget%3Dfunction%20e(t)%7Bvar%20a%3Dt.paramObject%2Cr%3Da%3D%3D%3Dundefined%3F%7B%7D%3Aa%3Bvar%20d%3D%7Bdialog%3A%7Bpreselects%3A%7B%5C%5C%5C%22var.view%5C%5C%5C%22%3Ar.view%7C%7C%24tm.misc.defaultViewLabel%7D%7D%7D%3B%24tm.dialogManager.open(%5C%5C%5C%22widgetCodeGenerator%5C%5C%5C%22%2Cd)%7D%3Bvar%20handleRemoveEdge%3Dfunction%20e(t)%7Bvar%20a%3Dt.paramObject%3B%24tm.adapter.deleteEdge(a)%7D%3Bvar%20handleCreateEdge%3Dfunction%20e(t)%7Bvar%20a%3Dt.paramObject%3Bvar%20r%3Da.from%2Cd%3Da.to%2Ci%3Da.force%3Bif(!r%7C%7C!d)return%3Bif(_utils2.default.tiddlerExists(r)%26%26_utils2.default.tiddlerExists(d)%7C%7Ci)%7B_utils2.default.addTiddler(d)%3B_utils2.default.addTiddler(r)%3Bvar%20l%3Dnew%20_Edge2.default(%24tm.adapter.makeNode(r).id%2C%24tm.adapter.makeNode(d).id%2Ca.label%2Ca.id)%3B%24tm.adapter.insertEdge(l)%3B%24tm.notify(%5C%5C%5C%22Edge%20inserted%5C%5C%5C%22)%7D%7D%3Bvar%20handleOpenTypeManager%3Dfunction%20e(t)%7Bvar%20a%3Dt.type%2Cr%3Dt.paramObject%2Cd%3Dr%3D%3D%3Dundefined%3F%7B%7D%3Ar%3Bvar%20i%3Da.match(%2Ftmap%3Atm-(.*)%2F)%5B1%5D%3Bif(i%3D%3D%3D%5C%5C%5C%22manage-edge-types%5C%5C%5C%22)%7Bvar%20l%3D%5C%5C%5C%22Edge-Type%20Manager%5C%5C%5C%22%3Bvar%20s%3D%24tm.selector.allEdgeTypes%3Bvar%20n%3D%24tm.path.edgeTypes%7Delse%7Bvar%20l%3D%5C%5C%5C%22Node-Type%20Manager%5C%5C%5C%22%3Bvar%20s%3D%24tm.selector.allNodeTypes%3Bvar%20n%3D%24tm.path.nodeTypes%7Dvar%20p%3D%7Bmode%3Ai%2Ctopic%3Al%2CsearchSelector%3As%2CtypeRootPath%3An%7D%3Bvar%20o%3D%24tm.dialogManager.open(%5C%5C%5C%22MapElementTypeManager%5C%5C%5C%22%2Cp)%3Bif(d.type)%7BhandleLoadTypeForm(%7BparamObject%3A%7Bmode%3Ai%2Cid%3Ad.type%2Coutput%3Ao.fields%5B%5C%5C%5C%22output%5C%5C%5C%22%5D%7D%7D)%7D%7D%3Bvar%20handleLoadTypeForm%3Dfunction%20e(t)%7Bvar%20a%3Dt.paramObject%2Cr%3Da.mode%2Cd%3Da.id%2Ci%3Da.output%3Bvar%20l%3Di%3Bvar%20s%3Dr%3D%3D%3D%5C%5C%5C%22manage-edge-types%5C%5C%5C%22%3F_EdgeType2.default.getInstance(d)%3A_NodeType2.default.getInstance(d)%3Bs.save(l%2Ctrue)%3Bif(r%3D%3D%3D%5C%5C%5C%22manage-edge-types%5C%5C%5C%22)%7Bvar%20n%3D%24tm.adapter.selectEdgesByType(s)%3Bvar%20p%3DObject.keys(n).length%3B_utils2.default.setField(l%2C%5C%5C%5C%22temp.usageCount%5C%5C%5C%22%2Cp)%7D%24tw.wiki.addTiddler(new%20%24tw.Tiddler(_utils2.default.getTiddler(l)%2C%7BtypeTRef%3As.fullPath%2C%5C%5C%5C%22temp.idImmutable%5C%5C%5C%22%3As.isShipped%3F%5C%5C%5C%22true%5C%5C%5C%22%3A%5C%5C%5C%22%5C%5C%5C%22%2C%5C%5C%5C%22temp.newId%5C%5C%5C%22%3As.id%2C%5C%5C%5C%22inherited-style%5C%5C%5C%22%3AJSON.stringify((r%3D%3D%3D%5C%5C%5C%22manage-edge-types%5C%5C%5C%22%3F%24tm.config.vis.edges%3A%24tm.config.vis.nodes)%7C%7C%7B%7D)%7D))%3B_utils2.default.deleteByPrefix(%5C%5C%5C%22%24%3A%2Fstate%2Ftabs%2FMapElementTypeManager%5C%5C%5C%22)%7D%3Bvar%20handleSaveTypeForm%3Dfunction%20e(t)%7Bvar%20a%3Dt.paramObject%3Bvar%20r%3D_utils2.default.getTiddler(a.output)%3Bif(!r)return%3Bvar%20d%3Dr.fields.id%3Bvar%20i%3Da.mode%3Bif(_utils2.default.isTrue(r.fields%5B%5C%5C%5C%22temp.deleteType%5C%5C%5C%22%5D%2Cfalse))%7BdeleteType(i%2Cd%2Cr)%7Delse%7BsaveType(i%2Cd%2Cr)%7D%7D%3Bvar%20deleteType%3Dfunction%20e(t%2Ca%2Cr)%7Bvar%20d%3Dt%3D%3D%3D%5C%5C%5C%22manage-edge-types%5C%5C%5C%22%3F_EdgeType2.default.getInstance(a)%3A_NodeType2.default.getInstance(a)%3B%24tm.logger(%5C%5C%5C%22debug%5C%5C%5C%22%2C%5C%5C%5C%22Deleting%20type%5C%5C%5C%22%2Cd)%3Bif(t%3D%3D%3D%5C%5C%5C%22manage-edge-types%5C%5C%5C%22)%7B%24tm.adapter._processEdgesWithType(d%2C%7Baction%3A%5C%5C%5C%22delete%5C%5C%5C%22%7D)%7Delse%7B%24tm.adapter.removeNodeType(d)%7D%24tw.wiki.addTiddler(new%20%24tw.Tiddler(%7Btitle%3A_utils2.default.getTiddlerRef(r)%7D))%3B%24tm.notify(%5C%5C%5C%22Deleted%20type%5C%5C%5C%22)%7D%3Bvar%20saveType%3Dfunction%20e(t%2Ca%2Cr)%7Bvar%20d%3D_utils2.default.getTiddler(r)%3Bvar%20i%3Dt%3D%3D%3D%5C%5C%5C%22manage-edge-types%5C%5C%5C%22%3F_EdgeType2.default%3A_NodeType2.default%3Bvar%20l%3Dnew%20i(a%2Cd)%3Bl.save()%3Bvar%20s%3Dd.fields%5B%5C%5C%5C%22temp.newId%5C%5C%5C%22%5D%3Bif(s%26%26s!%3D%3Dd.fields%5B%5C%5C%5C%22id%5C%5C%5C%22%5D)%7Bif(t%3D%3D%3D%5C%5C%5C%22manage-edge-types%5C%5C%5C%22)%7B%24tm.adapter._processEdgesWithType(l%2C%7Baction%3A%5C%5C%5C%22rename%5C%5C%5C%22%2CnewName%3As%7D)%7Delse%7Bnew%20_NodeType2.default(s%2Cl).save()%3B%24tw.wiki.deleteTiddler(l.fullPath)%7D_utils2.default.setField(d%2C%5C%5C%5C%22id%5C%5C%5C%22%2Cs)%7D%24tm.notify(%5C%5C%5C%22Saved%20type%20data%5C%5C%5C%22)%7D%3Bvar%20handleCreateType%3Dfunction%20e(t)%7Bvar%20a%3Dt.paramObject%2Cr%3Da.mode%2Cd%3Da.id%2Ci%3Dd%3D%3D%3Dundefined%3F%5C%5C%5C%22New%20type%5C%5C%5C%22%3Ad%2Cl%3Da.output%3Bvar%20s%3Dr%3D%3D%3D%5C%5C%5C%22manage-edge-types%5C%5C%5C%22%3Fnew%20_EdgeType2.default(i)%3Anew%20_NodeType2.default(i)%3Bs.save()%3BhandleLoadTypeForm(%7BparamObject%3A%7Bid%3As.id%2Cmode%3Ar%2Coutput%3Al%7D%7D)%7D%3Bvar%20name%3Dexports.name%3D%5C%5C%5C%22tmap.listener%5C%5C%5C%22%3Bvar%20platforms%3Dexports.platforms%3D%5B%5C%5C%5C%22browser%5C%5C%5C%22%5D%3Bvar%20after%3Dexports.after%3D%5B%5C%5C%5C%22rootwidget%5C%5C%5C%22%2C%5C%5C%5C%22tmap.caretaker%5C%5C%5C%22%5D%3Bvar%20before%3Dexports.before%3D%5B%5C%5C%5C%22story%5C%5C%5C%22%5D%3Bvar%20synchronous%3Dexports.synchronous%3Dtrue%3Bvar%20startup%3Dexports.startup%3Dfunction%20e()%7B_utils2.default.addTWlisteners(%7B%5C%5C%5C%22tmap%3Atm-remove-edge%5C%5C%5C%22%3AhandleRemoveEdge%2C%5C%5C%5C%22tmap%3Atm-load-type-form%5C%5C%5C%22%3AhandleLoadTypeForm%2C%5C%5C%5C%22tmap%3Atm-save-type-form%5C%5C%5C%22%3AhandleSaveTypeForm%2C%5C%5C%5C%22tmap%3Atm-create-type%5C%5C%5C%22%3AhandleCreateType%2C%5C%5C%5C%22tmap%3Atm-create-edge%5C%5C%5C%22%3AhandleCreateEdge%2C%5C%5C%5C%22tmap%3Atm-suppress-dialog%5C%5C%5C%22%3AhandleSuppressDialog%2C%5C%5C%5C%22tmap%3Atm-generate-widget%5C%5C%5C%22%3AhandleGenerateWidget%2C%5C%5C%5C%22tmap%3Atm-download-graph%5C%5C%5C%22%3AhandleDownloadGraph%2C%5C%5C%5C%22tmap%3Atm-configure-system%5C%5C%5C%22%3AhandleConfigureSystem%2C%5C%5C%5C%22tmap%3Atm-manage-edge-types%5C%5C%5C%22%3AhandleOpenTypeManager%2C%5C%5C%5C%22tmap%3Atm-manage-node-types%5C%5C%5C%22%3AhandleOpenTypeManager%2C%5C%5C%5C%22tmap%3Atm-cancel-dialog%5C%5C%5C%22%3AhandleCancelDialog%2C%5C%5C%5C%22tmap%3Atm-clear-tiddler%5C%5C%5C%22%3AhandleClearTiddler%2C%5C%5C%5C%22tmap%3Atm-merge-tiddlers%5C%5C%5C%22%3AhandleMixTiddlers%2C%5C%5C%5C%22tmap%3Atm-confirm-dialog%5C%5C%5C%22%3AhandleConfirmDialog%7D%2C%24tw.rootWidget%2Cundefined)%7D%3B%5C%5Cn%2F%2F%23%20sourceMappingURL%3D.%2Fmaps%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Fservices%2FListener.js.map%5C%5Cn%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22type%5C%22%3A%20%5C%22application%2Fjavascript%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22module-type%5C%22%3A%20%5C%22startup%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Fservices%2Ftracker%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Fservices%2Ftracker%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bvar%20_createClass%3Dfunction()%7Bfunction%20e(e%2Ct)%7Bfor(var%20i%3D0%3Bi%3Ct.length%3Bi%2B%2B)%7Bvar%20r%3Dt%5Bi%5D%3Br.enumerable%3Dr.enumerable%7C%7Cfalse%3Br.configurable%3Dtrue%3Bif(%5C%5C%5C%22value%5C%5C%5C%22in%20r)r.writable%3Dtrue%3BObject.defineProperty(e%2Cr.key%2Cr)%7D%7Dreturn%20function(t%2Ci%2Cr)%7Bif(i)e(t.prototype%2Ci)%3Bif(r)e(t%2Cr)%3Breturn%20t%7D%7D()%3B%2F*%20%40preserve%20TW-Guard%20*%2F%5C%5Cn%2F*%5C%5C%5C%5C%5C%5Cn%5C%5Cntitle%3A%20%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Fservices%2Ftracker%5C%5Cntype%3A%20application%2Fjavascript%5C%5Cnmodule-type%3A%20library%5C%5Cn%5C%5Cn%40preserve%5C%5Cn%5C%5Cn%5C%5C%5C%5C*%2F%5C%5Cn%2F*%20%40preserve%20TW-Guard%20*%2Fvar%20_utils%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Futils%5C%5C%5C%22)%3Bvar%20_utils2%3D_interopRequireDefault(_utils)%3Bfunction%20_interopRequireDefault(e)%7Breturn%20e%26%26e.__esModule%3Fe%3A%7Bdefault%3Ae%7D%7Dfunction%20_classCallCheck(e%2Ct)%7Bif(!(e%20instanceof%20t))%7Bthrow%20new%20TypeError(%5C%5C%5C%22Cannot%20call%20a%20class%20as%20a%20function%5C%5C%5C%22)%7D%7Dvar%20Tracker%3Dfunction()%7Bfunction%20e(t)%7B_classCallCheck(this%2Ce)%3Bthis.wiki%3D%24tw.wiki%3Bthis.logger%3D%24tm.logger%3Bthis._createIndex()%7D_createClass(e%2C%5B%7Bkey%3A%5C%5C%5C%22_createIndex%5C%5C%5C%22%2Cvalue%3Afunction%20e()%7Bvar%20t%3Dthis.tById%3D%7B%7D%3Bvar%20i%3Dthis.idByT%3D%7B%7D%3Bthis.wiki.each(function(e%2Cr)%7Bif(_utils2.default.isSystemOrDraft(e))%7Breturn%7Dvar%20l%3De.fields%5B%5C%5C%5C%22tmap.id%5C%5C%5C%22%5D%3Bif(!l)%7Bl%3D_utils2.default.genUUID()%3B_utils2.default.setField(e%2C%5C%5C%5C%22tmap.id%5C%5C%5C%22%2Cl)%7Dt%5Bl%5D%3Dr%3Bi%5Br%5D%3Dl%7D)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22assignId%5C%5C%5C%22%2Cvalue%3Afunction%20e(t%2Ci)%7Bvar%20r%3D_utils2.default.getTiddler(t)%3Bif(!r)%7Bthrow%20new%20ResourceNotFoundException(t)%7Dvar%20l%3Dr.fields%5B%5C%5C%5C%22tmap.id%5C%5C%5C%22%5D%3Bif(!l%7C%7Ci)%7Bl%3D_utils2.default.genUUID()%3B_utils2.default.setField(r%2C%5C%5C%5C%22tmap.id%5C%5C%5C%22%2Cl)%3Bthis.logger(%5C%5C%5C%22info%5C%5C%5C%22%2C%5C%5C%5C%22Assigning%20new%20id%20to%5C%5C%5C%22%2Cr.fields.title)%7Dthis.tById%5Bl%5D%3Dr.fields.title%3Bthis.idByT%5Br.fields.title%5D%3Dl%3Breturn%20l%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getIdByTiddler%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Breturn%20this.idByT%5B_utils2.default.getTiddlerRef(t)%5D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getIdsByTiddlers%5C%5C%5C%22%2Cvalue%3Afunction%20e()%7Breturn%20this.idByT%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getTiddlersByIds%5C%5C%5C%22%2Cvalue%3Afunction%20e()%7Breturn%20this.tById%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getTiddlerById%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Breturn%20this.tById%5Bt%5D%7D%7D%5D)%3Breturn%20e%7D()%3Bexports.default%3DTracker%3B%5C%5Cn%2F%2F%23%20sourceMappingURL%3D.%2Fmaps%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Fservices%2FTracker.js.map%5C%5Cn%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22type%5C%22%3A%20%5C%22application%2Fjavascript%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22module-type%5C%22%3A%20%5C%22library%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Fwidget%2FMapConfigWidget%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Fwidget%2FMapConfigWidget%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bvar%20_typeof%3Dtypeof%20Symbol%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22%26%26typeof%20Symbol.iterator%3D%3D%3D%5C%5C%5C%22symbol%5C%5C%5C%22%3Ffunction(e)%7Breturn%20typeof%20e%7D%3Afunction(e)%7Breturn%20e%26%26typeof%20Symbol%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22%26%26e.constructor%3D%3D%3DSymbol%26%26e!%3D%3DSymbol.prototype%3F%5C%5C%5C%22symbol%5C%5C%5C%22%3Atypeof%20e%7D%3B%2F*%20%40preserve%20TW-Guard%20*%2F%5C%5Cn%2F*%5C%5C%5C%5C%5C%5Cn%5C%5Cntitle%3A%20%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Fwidget%2FMapConfigWidget%5C%5Cntype%3A%20application%2Fjavascript%5C%5Cnmodule-type%3A%20widget%5C%5Cn%5C%5Cn%40preserve%5C%5Cn%5C%5Cn%5C%5C%5C%5C*%2F%5C%5Cn%2F*%20%40preserve%20TW-Guard%20*%2Fvar%20_utils%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Futils%5C%5C%5C%22)%3Bvar%20_utils2%3D_interopRequireDefault(_utils)%3Bvar%20_vis%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Fvis%2Fvis.js%5C%5C%5C%22)%3Bvar%20_vis2%3D_interopRequireDefault(_vis)%3Bvar%20_widget%3Drequire(%5C%5C%5C%22%24%3A%2Fcore%2Fmodules%2Fwidgets%2Fwidget.js%5C%5C%5C%22)%3Bfunction%20_interopRequireDefault(e)%7Breturn%20e%26%26e.__esModule%3Fe%3A%7Bdefault%3Ae%7D%7Dfunction%20MapConfigWidget(e%2Ct)%7B_widget.widget.call(this)%3Bthis.initialise(e%2Ct)%3Bthis.computeAttributes()%7DMapConfigWidget.prototype%3DObject.create(_widget.widget.prototype)%3BMapConfigWidget.prototype.render%3Dfunction(e%2Ct)%7Bthis.parentDomNode%3De%3Bif(!this.domNode)%7Bthis.domNode%3Dthis.document.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3B%24tw.utils.addClass(this.domNode%2C%5C%5C%5C%22tmap-config-widget%5C%5C%5C%22)%3Be.insertBefore(this.domNode%2Ct)%7Dif(this.network)%7Bthis.network.destroy()%7Dthis.networkContainer%3Ddocument.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bthis.domNode.appendChild(this.networkContainer)%3Bthis.refreshTrigger%3Dthis.getAttribute(%5C%5C%5C%22refresh-trigger%5C%5C%5C%22)%3Bthis.pipeTRef%3Dthis.getVariable(%5C%5C%5C%22currentTiddler%5C%5C%5C%22)%3Bthis.inheritedFields%3D%24tw.utils.parseStringArray(this.getAttribute(%5C%5C%5C%22inherited%5C%5C%5C%22))%3Bthis.extensionTField%3Dthis.getAttribute(%5C%5C%5C%22extension%5C%5C%5C%22)%3Bthis.mode%3Dthis.getAttribute(%5C%5C%5C%22mode%5C%5C%5C%22)%3Bfor(var%20i%3D0%3Bi%3Cthis.inheritedFields.length%3Bi%2B%2B)%7Bvar%20s%3Dthis.inheritedFields%5Bi%5D%3Bvar%20n%3D_utils2.default.parseFieldData(this.pipeTRef%2Cs%2C%7B%7D)%3Bif(this.mode%3D%3D%3D%5C%5C%5C%22manage-edge-types%5C%5C%5C%22)%7Bn%3D%7Bedges%3An%7D%7Delse%20if(this.mode%3D%3D%3D%5C%5C%5C%22manage-node-types%5C%5C%5C%22)%7Bn%3D%7Bnodes%3An%7D%7Dthis.inherited%3D_utils2.default.merge(this.inherited%2Cn)%7Dthis.extension%3D_utils2.default.parseFieldData(this.pipeTRef%2Cthis.extensionTField%2C%7B%7D)%3Bif(this.mode%3D%3D%3D%5C%5C%5C%22manage-edge-types%5C%5C%5C%22)%7Bif(!this.extension.edges)%7Bthis.extension%3D%7Bedges%3Athis.extension%7D%7D%7Delse%20if(this.mode%3D%3D%3D%5C%5C%5C%22manage-node-types%5C%5C%5C%22)%7Bif(!this.extension.nodes)%7Bthis.extension%3D%7Bnodes%3Athis.extension%7D%7D%7Dvar%20r%3D_utils2.default.isTrue(this.getAttribute(%5C%5C%5C%22save-only-changes%5C%5C%5C%22))%3Bthis.changes%3Dr%3F%7B%7D%3Athis.extension%3Bvar%20o%3D%7Bnodes%3A%5B%5D%2Cedges%3A%5B%5D%7D%3Bvar%20a%3D_utils2.default.merge(%7B%7D%2Cthis.inherited%2Cthis.extension)%3B%24tw.utils.extend(a%2C%7Bconfigure%3A%7Benabled%3Atrue%2CshowButton%3Afalse%2Cfilter%3Athis.getOptionFilter(this.mode)%7D%7D)%3Bthis.network%3Dnew%20_vis2.default.Network(this.networkContainer%2Co%2Ca)%3Bthis.network.on(%5C%5C%5C%22configChange%5C%5C%5C%22%2Cthis.handleConfigChange.bind(this))%3Bvar%20l%3Dthis.parentDomNode.getBoundingClientRect().height%3Bthis.parentDomNode.style%5B%5C%5C%5C%22height%5C%5C%5C%22%5D%3Dl%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bvar%20h%3Dthis.handleResetEvent.bind(this)%3Bthis.networkContainer.addEventListener(%5C%5C%5C%22reset%5C%5C%5C%22%2Ch%2Cfalse)%3B%24tm.registry.push(this)%3Bthis.enhanceConfigurator()%7D%3BMapConfigWidget.prototype.handleResetEvent%3Dfunction(e)%7Bvar%20t%3D%7B%7D%3Bt%5Be.detail.trigger.path%5D%3Dnull%3Bthis.handleConfigChange(t)%7D%3BMapConfigWidget.prototype.handleConfigChange%3Dfunction(e)%7Bvar%20t%3D_utils2.default.flatten(this.changes)%3Bvar%20i%3D_utils2.default.flatten(e)%3Bvar%20s%3DObject.keys(_utils2.default.flatten(e))%5B0%5D%3Bvar%20n%3Di%5Bs%5D%3D%3D%3Dnull%3Bif(n)%7Bt%5Bs%5D%3Dundefined%3Bthis.changes%3D_utils2.default.unflatten(t)%7Delse%7Bthis.changes%3D_utils2.default.merge(this.changes%2Ce)%7Dvar%20r%3D_utils2.default.merge(%7B%7D%2Cthis.changes)%3Bif(this.mode%3D%3D%3D%5C%5C%5C%22manage-node-types%5C%5C%5C%22)%7Br%3Dr%5B%5C%5C%5C%22nodes%5C%5C%5C%22%5D%7Dif(this.mode%3D%3D%3D%5C%5C%5C%22manage-edge-types%5C%5C%5C%22)%7Br%3Dr%5B%5C%5C%5C%22edges%5C%5C%5C%22%5D%7D_utils2.default.writeFieldData(this.pipeTRef%2Cthis.extensionTField%2Cr%2C%24tm.config.sys.jsonIndentation)%3Bvar%20o%3D%5C%5C%5C%22vis-configuration-wrapper%5C%5C%5C%22%3Bvar%20a%3Dthis.networkContainer.getElementsByClassName(o)%5B0%5D%3Ba.style.height%3Da.getBoundingClientRect().height%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bif(n)%7Bwindow.setTimeout(this.refresh.bind(this)%2C0)%7Delse%7Bwindow.setTimeout(this.enhanceConfigurator.bind(this)%2C50)%7D%7D%3BMapConfigWidget.prototype.enhanceConfigurator%3Dfunction()%7Bvar%20e%3D%5C%5C%5C%22vis-configuration-wrapper%5C%5C%5C%22%3Bvar%20t%3Dthis.networkContainer.getElementsByClassName(e)%5B0%5D.children%3Bvar%20i%3D%5B%5D%3Bvar%20s%3D_utils2.default.flatten(this.changes)%3Bfor(var%20n%3D0%3Bn%3Ct.length%3Bn%2B%2B)%7Bif(!t%5Bn%5D.classList.contains(%5C%5C%5C%22vis-config-item%5C%5C%5C%22))continue%3Bvar%20r%3Dnew%20VisConfElement(t%5Bn%5D%2Ci%2Cn)%3Bi.push(r)%3Bif(r.level%3D%3D%3D0)continue%3Br.setActive(!!s%5Br.path%5D)%7D%7D%3Bfunction%20VisConfElement(e%2Ct%2Ci)%7Bvar%20s%3D%5C%5C%5C%22getElementsByClassName%5C%5C%5C%22%3Bthis.el%3De%3Bthis.labelEl%3De%5Bs%5D(%5C%5C%5C%22vis-config-label%5C%5C%5C%22)%5B0%5D%7C%7Ce%5Bs%5D(%5C%5C%5C%22vis-config-header%5C%5C%5C%22)%5B0%5D%7C%7Ce%3Bvar%20n%3Dthis.labelEl.innerText%7C%7Cthis.labelEl.textContent%3Bthis.label%3Dn%26%26n.match(%2F(%5Ba-zA-Z0-9%5D%2B)%2F)%5B1%5D%3Bthis.level%3DparseInt(e.className.match(%2F.*vis-config-s(.).*%2F)%5B1%5D)%7C%7C0%3Bthis.path%3Dthis.label%3Bif(this.level%3E0)%7Bfor(var%20r%3Di%3Br--%3B)%7Bvar%20o%3Dt%5Br%5D%3Bif(o.level%3Cthis.level)%7Bthis.path%3Do.path%2B%5C%5C%5C%22.%5C%5C%5C%22%2Bthis.path%3Bbreak%7D%7D%7D%7DVisConfElement.prototype.setActive%3Dfunction(e)%7Bif(!e)return%3Bvar%20t%3D%5C%5C%5C%22tmap-vis-config-item-%5C%5C%5C%22%2B(e%3F%5C%5C%5C%22active%5C%5C%5C%22%3A%5C%5C%5C%22inactive%5C%5C%5C%22)%3B%24tw.utils.addClass(this.el%2Ct)%3Bif(e)%7Bvar%20i%3Ddocument.createElement(%5C%5C%5C%22button%5C%5C%5C%22)%3Bi.innerHTML%3D%5C%5C%5C%22reset%5C%5C%5C%22%3Bi.className%3D%5C%5C%5C%22tmap-config-item-reset%5C%5C%5C%22%3Bvar%20s%3Dthis%3Bi.addEventListener(%5C%5C%5C%22click%5C%5C%5C%22%2Cfunction(e)%7Be.currentTarget.dispatchEvent(new%20CustomEvent(%5C%5C%5C%22reset%5C%5C%5C%22%2C%7Bdetail%3A%7Btrigger%3As%7D%2Cbubbles%3Atrue%2Ccancelable%3Atrue%7D))%7D%2Cfalse)%3Bthis.el.appendChild(i)%7D%7D%3BMapConfigWidget.prototype.getOptionFilter%3Dfunction(e)%7Bvar%20t%3D%7Bnodes%3A%7BborderWidth%3Atrue%2CborderWidthSelected%3Atrue%2CwidthConstraint%3Atrue%2CheightConstraint%3Atrue%2Ccolor%3A%7Bbackground%3Atrue%2Cborder%3Atrue%7D%2Cfont%3A%7Bcolor%3Atrue%2Csize%3Atrue%7D%2Cicon%3Atrue%2ClabelHighlightBold%3Afalse%2Cshadow%3Atrue%2Cshape%3Atrue%2CshapeProperties%3A%7BborderDashes%3Atrue%7D%2Csize%3Atrue%7D%2Cedges%3A%7Barrows%3Atrue%2Ccolor%3Atrue%2Cdashes%3Atrue%2Cfont%3Atrue%2ClabelHighlightBold%3Afalse%2Clength%3Atrue%2CselfReferenceSize%3Afalse%2Cshadow%3Atrue%2Csmooth%3Atrue%2Cwidth%3Atrue%7D%2Cinteraction%3A%7BhideEdgesOnDrag%3Atrue%2ChideNodesOnDrag%3Atrue%2CtooltipDelay%3Atrue%7D%2Clayout%3A%7Bhierarchical%3Atrue%7D%2Cmanipulation%3A%7BinitiallyActive%3Atrue%7D%2Cphysics%3A%7BforceAtlas2Based%3A%7BgravitationalConstant%3Atrue%2CspringLength%3Atrue%2CspringConstant%3Atrue%2Cdamping%3Atrue%2CcentralGravity%3Atrue%7D%7D%7D%3Bif(e%3D%3D%3D%5C%5C%5C%22manage-edge-types%5C%5C%5C%22)%7Bt%3D%7Bedges%3At.edges%7D%7Delse%20if(e%3D%3D%3D%5C%5C%5C%22manage-node-types%5C%5C%5C%22)%7Bt%3D%7Bnodes%3At.nodes%7D%7Delse%7Bt.edges.arrows%3Dfalse%7Dreturn%20function(e%2Ci)%7Bi%3Di.concat(%5Be%5D)%3Bvar%20s%3Dt%3Bfor(var%20n%3D0%2Cr%3Di.length%3Bn%3Cr%3Bn%2B%2B)%7Bif(s%5Bi%5Bn%5D%5D%3D%3D%3Dtrue)%7Breturn%20true%7Delse%20if(s%5Bi%5Bn%5D%5D%3D%3Dnull)%7Breturn%20false%7Ds%3Ds%5Bi%5Bn%5D%5D%7Dreturn%20false%7D%7D%3BMapConfigWidget.prototype.isZombieWidget%3Dfunction()%7Breturn!document.body.contains(this.parentDomNode)%7D%3BMapConfigWidget.prototype.destruct%3Dfunction()%7Bif(this.network)%7Bthis.network.destroy()%7D%7D%3BMapConfigWidget.prototype.refresh%3Dfunction(e)%7Bif(this.isZombieWidget()%7C%7C!this.network)return%3Bif(!e%7C%7Ce%5Bthis.refreshTrigger%5D)%7Bthis.refreshSelf()%3Breturn%20true%7D%7D%3BMapConfigWidget.prototype.setNull%3Dfunction(e)%7Bfor(var%20t%20in%20e)%7Bif(_typeof(e%5Bt%5D)%3D%3D%5C%5C%5C%22object%5C%5C%5C%22)%7Bthis.setNull(e%5Bt%5D)%7Delse%7Be%5Bt%5D%3Dundefined%7D%7D%7D%3Bexports%5B%5C%5C%5C%22tmap-config%5C%5C%5C%22%5D%3DMapConfigWidget%3B%5C%5Cn%2F%2F%23%20sourceMappingURL%3D.%2Fmaps%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Fwidget%2FConfigurationWidget.js.map%5C%5Cn%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22type%5C%22%3A%20%5C%22application%2Fjavascript%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22module-type%5C%22%3A%20%5C%22widget%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Fwidget%2FEdgeListWidgetItem%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Fwidget%2FEdgeListWidgetItem%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bvar%20_createClass%3Dfunction()%7Bfunction%20e(e%2Ct)%7Bfor(var%20r%3D0%3Br%3Ct.length%3Br%2B%2B)%7Bvar%20i%3Dt%5Br%5D%3Bi.enumerable%3Di.enumerable%7C%7Cfalse%3Bi.configurable%3Dtrue%3Bif(%5C%5C%5C%22value%5C%5C%5C%22in%20i)i.writable%3Dtrue%3BObject.defineProperty(e%2Ci.key%2Ci)%7D%7Dreturn%20function(t%2Cr%2Ci)%7Bif(r)e(t.prototype%2Cr)%3Bif(i)e(t%2Ci)%3Breturn%20t%7D%7D()%3Bvar%20_widget%3Drequire(%5C%5C%5C%22%24%3A%2Fcore%2Fmodules%2Fwidgets%2Fwidget.js%5C%5C%5C%22)%3Bvar%20_utils%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Futils%5C%5C%5C%22)%3Bvar%20_utils2%3D_interopRequireDefault(_utils)%3Bfunction%20_interopRequireDefault(e)%7Breturn%20e%26%26e.__esModule%3Fe%3A%7Bdefault%3Ae%7D%7Dfunction%20_classCallCheck(e%2Ct)%7Bif(!(e%20instanceof%20t))%7Bthrow%20new%20TypeError(%5C%5C%5C%22Cannot%20call%20a%20class%20as%20a%20function%5C%5C%5C%22)%7D%7Dfunction%20_possibleConstructorReturn(e%2Ct)%7Bif(!e)%7Bthrow%20new%20ReferenceError(%5C%5C%5C%22this%20hasn't%20been%20initialised%20-%20super()%20hasn't%20been%20called%5C%5C%5C%22)%7Dreturn%20t%26%26(typeof%20t%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22%7C%7Ctypeof%20t%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22)%3Ft%3Ae%7Dfunction%20_inherits(e%2Ct)%7Bif(typeof%20t!%3D%3D%5C%5C%5C%22function%5C%5C%5C%22%26%26t!%3D%3Dnull)%7Bthrow%20new%20TypeError(%5C%5C%5C%22Super%20expression%20must%20either%20be%20null%20or%20a%20function%2C%20not%20%5C%5C%5C%22%2Btypeof%20t)%7De.prototype%3DObject.create(t%26%26t.prototype%2C%7Bconstructor%3A%7Bvalue%3Ae%2Cenumerable%3Afalse%2Cwritable%3Atrue%2Cconfigurable%3Atrue%7D%7D)%3Bif(t)Object.setPrototypeOf%3FObject.setPrototypeOf(e%2Ct)%3Ae.__proto__%3Dt%7D%2F*%20%40preserve%20TW-Guard%20*%2F%5C%5Cn%2F*%5C%5C%5C%5C%5C%5Cn%5C%5Cntitle%3A%20%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Fwidget%2FEdgeListWidgetItem%5C%5Cntype%3A%20application%2Fjavascript%5C%5Cnmodule-type%3A%20widget%5C%5Cn%5C%5Cn%40preserve%5C%5Cn%5C%5Cn%5C%5C%5C%5C*%2F%5C%5Cn%2F*%20%40preserve%20TW-Guard%20*%2Fvar%20EdgeListItemWidget%3Dfunction(e)%7B_inherits(t%2Ce)%3Bfunction%20t(e%2Cr)%7B_classCallCheck(this%2Ct)%3Bvar%20i%3D_possibleConstructorReturn(this%2C(t.__proto__%7C%7CObject.getPrototypeOf(t)).call(this%2Ce%2Cr))%3Bi.arrows%3D%24tm.misc.arrows%3Breturn%20i%7D_createClass(t%2C%5B%7Bkey%3A%5C%5C%5C%22execute%5C%5C%5C%22%2Cvalue%3Afunction%20e()%7Bvar%20t%3Dthis.parseTreeNode%3Bvar%20r%3D%24tm.tracker.getTiddlerById(t.neighbour.id)%3Bvar%20i%3D_utils2.default.flatten(t.edge)%3Bfor(var%20o%20in%20i)%7Bif(typeof%20i%5Bo%5D%3D%3D%3D%5C%5C%5C%22string%5C%5C%5C%22)%7Bthis.setVariable(%5C%5C%5C%22edge.%5C%5C%5C%22%2Bo%2Ci%5Bo%5D)%7D%7Dthis.setVariable(%5C%5C%5C%22currentTiddler%5C%5C%5C%22%2Cr)%3Bthis.setVariable(%5C%5C%5C%22neighbour%5C%5C%5C%22%2Cr)%3Bvar%20n%3D%24tm.indeces.allETy%5Bi.type%5D%3Bvar%20s%3Di.to%3D%3D%3Dt.neighbour.id%3F%5C%5C%5C%22to%5C%5C%5C%22%3A%5C%5C%5C%22from%5C%5C%5C%22%3Bvar%20a%3Ds%3Bif(n.biArrow)%7Ba%3D%5C%5C%5C%22bi%5C%5C%5C%22%7Delse%7Bif(s%3D%3D%3D%5C%5C%5C%22to%5C%5C%5C%22%26%26n.invertedArrow)%7Ba%3D%5C%5C%5C%22from%5C%5C%5C%22%7Delse%20if(s%3D%3D%3D%5C%5C%5C%22from%5C%5C%5C%22%26%26n.invertedArrow)%7Ba%3D%5C%5C%5C%22to%5C%5C%5C%22%7D%7Dthis.setVariable(%5C%5C%5C%22direction%5C%5C%5C%22%2Ca)%3Bthis.setVariable(%5C%5C%5C%22directionSymbol%5C%5C%5C%22%2Ca%3D%3D%3D%5C%5C%5C%22bi%5C%5C%5C%22%3Fthis.arrows.bi%3Aa%3D%3D%3D%5C%5C%5C%22from%5C%5C%5C%22%3Fthis.arrows.in%3Athis.arrows.out)%3Bthis.makeChildWidgets()%7D%7D%2C%7Bkey%3A%5C%5C%5C%22refresh%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Breturn%20this.refreshChildren(t)%7D%7D%5D)%3Breturn%20t%7D(_widget.widget)%3Bexports%5B%5C%5C%5C%22tmap-edgelistitem%5C%5C%5C%22%5D%3DEdgeListItemWidget%3B%5C%5Cn%2F%2F%23%20sourceMappingURL%3D.%2Fmaps%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Fwidget%2FEdgeListItemWidget.js.map%5C%5Cn%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22type%5C%22%3A%20%5C%22application%2Fjavascript%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22module-type%5C%22%3A%20%5C%22widget%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Fwidget%2FEdgeListWidget%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Fwidget%2FEdgeListWidget%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%22use%20strict%5C%5C%5C%22%3Bvar%20_createClass%3Dfunction()%7Bfunction%20e(e%2Ct)%7Bfor(var%20r%3D0%3Br%3Ct.length%3Br%2B%2B)%7Bvar%20i%3Dt%5Br%5D%3Bi.enumerable%3Di.enumerable%7C%7Cfalse%3Bi.configurable%3Dtrue%3Bif(%5C%5C%5C%22value%5C%5C%5C%22in%20i)i.writable%3Dtrue%3BObject.defineProperty(e%2Ci.key%2Ci)%7D%7Dreturn%20function(t%2Cr%2Ci)%7Bif(r)e(t.prototype%2Cr)%3Bif(i)e(t%2Ci)%3Breturn%20t%7D%7D()%3Bvar%20_widget%3Drequire(%5C%5C%5C%22%24%3A%2Fcore%2Fmodules%2Fwidgets%2Fwidget.js%5C%5C%5C%22)%3Bvar%20_utils%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Futils%5C%5C%5C%22)%3Bvar%20_utils2%3D_interopRequireDefault(_utils)%3Bfunction%20_interopRequireDefault(e)%7Breturn%20e%26%26e.__esModule%3Fe%3A%7Bdefault%3Ae%7D%7Dfunction%20_classCallCheck(e%2Ct)%7Bif(!(e%20instanceof%20t))%7Bthrow%20new%20TypeError(%5C%5C%5C%22Cannot%20call%20a%20class%20as%20a%20function%5C%5C%5C%22)%7D%7Dfunction%20_possibleConstructorReturn(e%2Ct)%7Bif(!e)%7Bthrow%20new%20ReferenceError(%5C%5C%5C%22this%20hasn't%20been%20initialised%20-%20super()%20hasn't%20been%20called%5C%5C%5C%22)%7Dreturn%20t%26%26(typeof%20t%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22%7C%7Ctypeof%20t%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22)%3Ft%3Ae%7Dfunction%20_inherits(e%2Ct)%7Bif(typeof%20t!%3D%3D%5C%5C%5C%22function%5C%5C%5C%22%26%26t!%3D%3Dnull)%7Bthrow%20new%20TypeError(%5C%5C%5C%22Super%20expression%20must%20either%20be%20null%20or%20a%20function%2C%20not%20%5C%5C%5C%22%2Btypeof%20t)%7De.prototype%3DObject.create(t%26%26t.prototype%2C%7Bconstructor%3A%7Bvalue%3Ae%2Cenumerable%3Afalse%2Cwritable%3Atrue%2Cconfigurable%3Atrue%7D%7D)%3Bif(t)Object.setPrototypeOf%3FObject.setPrototypeOf(e%2Ct)%3Ae.__proto__%3Dt%7D%2F*%20%40preserve%20TW-Guard%20*%2F%5C%5Cn%2F*%5C%5C%5C%5C%5C%5Cn%5C%5Cntitle%3A%20%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Fwidget%2FEdgeListWidget%5C%5Cntype%3A%20application%2Fjavascript%5C%5Cnmodule-type%3A%20widget%5C%5Cn%5C%5Cn%40preserve%5C%5Cn%5C%5Cn%5C%5C%5C%5C*%2F%5C%5Cn%2F*%20%40preserve%20TW-Guard%20*%2Fvar%20EdgeListWidget%3Dfunction(e)%7B_inherits(t%2Ce)%3Bfunction%20t(e%2Cr)%7B_classCallCheck(this%2Ct)%3Breturn%20_possibleConstructorReturn(this%2C(t.__proto__%7C%7CObject.getPrototypeOf(t)).call(this%2Ce%2Cr))%7D_createClass(t%2C%5B%7Bkey%3A%5C%5C%5C%22render%5C%5C%5C%22%2Cvalue%3Afunction%20e(t%2Cr)%7Bthis.parentDomNode%3Dt%3Bthis.computeAttributes()%3Bthis.execute()%3Bthis.renderChildren(t%2Cr)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22execute%5C%5C%5C%22%2Cvalue%3Afunction%20e()%7Bvar%20t%3D%5Bthis.getVariable(%5C%5C%5C%22currentTiddler%5C%5C%5C%22)%5D%3Bvar%20r%3Dthis.getAttribute(%5C%5C%5C%22filter%5C%5C%5C%22%2C%5C%5C%5C%22%5C%5C%5C%22)%3Bvar%20i%3Dthis.getAttribute(%5C%5C%5C%22direction%5C%5C%5C%22%2C%5C%5C%5C%22both%5C%5C%5C%22)%3Bvar%20s%3D%24tm.indeces.allETy%3Bvar%20n%3D_utils2.default.getEdgeTypeMatches(r%2Cs)%3Bvar%20u%3D%7BtypeWL%3A_utils2.default.getLookupTable(n)%2Cdirection%3Ai%7D%3Bvar%20o%3D%24tm.adapter.getNeighbours(t%2Cu)%2Ca%3Do.nodes%2Cl%3Do.edges%3Bvar%20f%3D%5B%5D%3Bfor(var%20c%20in%20l)%7Bvar%20h%3Dl%5Bc%5D%3Bvar%20p%3Da%5Bh.to%5D%7C%7Ca%5Bh.from%5D%3Bif(!p)%7Bcontinue%7Df.push(%7Btype%3A%5C%5C%5C%22tmap-edgelistitem%5C%5C%5C%22%2Cedge%3Ah%2CtypeWL%3Au.typeWL%2Cneighbour%3Ap%2Cchildren%3Athis.parseTreeNode.children%7D)%7Dif(!f.length)%7Bthis.wasEmpty%3Dtrue%3Bf%3Dthis.getEmptyMessage()%7Delse%20if(this.wasEmpty)%7Bthis.removeChildDomNodes()%7Dthis.makeChildWidgets(f)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getEmptyMessage%5C%5C%5C%22%2Cvalue%3Afunction%20e()%7Bvar%20t%3Dthis.wiki.parseText(%5C%5C%5C%22text%2Fvnd.tiddlywiki%5C%5C%5C%22%2Cthis.getAttribute(%5C%5C%5C%22emptyMessage%5C%5C%5C%22%2C%5C%5C%5C%22%5C%5C%5C%22)%2C%7BparseAsInline%3Atrue%7D)%3Breturn%20t%3Ft.tree%3A%5B%5D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22refresh%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Bvar%20r%3Dthis.computeAttributes()%3Bif(_utils2.default.hasElements(r))%7Bthis.refreshSelf()%3Breturn%20true%7Dfor(var%20i%20in%20t)%7Bif(!_utils2.default.isSystemOrDraft(i))%7Bthis.refreshSelf()%3Breturn%20true%7D%7Dreturn%20this.refreshChildren(t)%7D%7D%5D)%3Breturn%20t%7D(_widget.widget)%3Bexports%5B%5C%5C%5C%22tmap-connections%5C%5C%5C%22%5D%3DEdgeListWidget%3B%5C%5Cn%2F%2F%23%20sourceMappingURL%3D.%2Fmaps%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Fwidget%2FEdgeListWidget.js.map%5C%5Cn%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22type%5C%22%3A%20%5C%22application%2Fjavascript%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22module-type%5C%22%3A%20%5C%22widget%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Fwidget%2FMapWidget%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Fwidget%2FMapWidget%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%22use%20strict%5C%5C%5C%22%3BObject.defineProperty(exports%2C%5C%5C%5C%22__esModule%5C%5C%5C%22%2C%7Bvalue%3Atrue%7D)%3Bexports.tiddlymap%3Dexports.tmap%3Dundefined%3Bvar%20_extends%3DObject.assign%7C%7Cfunction(e)%7Bfor(var%20t%3D1%3Bt%3Carguments.length%3Bt%2B%2B)%7Bvar%20i%3Darguments%5Bt%5D%3Bfor(var%20a%20in%20i)%7Bif(Object.prototype.hasOwnProperty.call(i%2Ca))%7Be%5Ba%5D%3Di%5Ba%5D%7D%7D%7Dreturn%20e%7D%3Bvar%20_createClass%3Dfunction()%7Bfunction%20e(e%2Ct)%7Bfor(var%20i%3D0%3Bi%3Ct.length%3Bi%2B%2B)%7Bvar%20a%3Dt%5Bi%5D%3Ba.enumerable%3Da.enumerable%7C%7Cfalse%3Ba.configurable%3Dtrue%3Bif(%5C%5C%5C%22value%5C%5C%5C%22in%20a)a.writable%3Dtrue%3BObject.defineProperty(e%2Ca.key%2Ca)%7D%7Dreturn%20function(t%2Ci%2Ca)%7Bif(i)e(t.prototype%2Ci)%3Bif(a)e(t%2Ca)%3Breturn%20t%7D%7D()%3Bvar%20_CallbackManager%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FCallbackManager%5C%5C%5C%22)%3Bvar%20_CallbackManager2%3D_interopRequireDefault(_CallbackManager)%3Bvar%20_ViewAbstraction%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FViewAbstraction%5C%5C%5C%22)%3Bvar%20_ViewAbstraction2%3D_interopRequireDefault(_ViewAbstraction)%3Bvar%20_EdgeType%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FEdgeType%5C%5C%5C%22)%3Bvar%20_EdgeType2%3D_interopRequireDefault(_EdgeType)%3Bvar%20_Popup%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2FPopup%5C%5C%5C%22)%3Bvar%20_Popup2%3D_interopRequireDefault(_Popup)%3Bvar%20_vis%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Fvis%2Fvis.js%5C%5C%5C%22)%3Bvar%20_vis2%3D_interopRequireDefault(_vis)%3Bvar%20_widget%3Drequire(%5C%5C%5C%22%24%3A%2Fcore%2Fmodules%2Fwidgets%2Fwidget.js%5C%5C%5C%22)%3Bvar%20_utils%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Futils%5C%5C%5C%22)%3Bvar%20_utils2%3D_interopRequireDefault(_utils)%3Bvar%20_SelectionRectangle%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Flib%2FSelectionRectangle%5C%5C%5C%22)%3Bvar%20_SelectionRectangle2%3D_interopRequireDefault(_SelectionRectangle)%3Bvar%20_environment%3Drequire(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Flib%2Fenvironment%5C%5C%5C%22)%3Bvar%20env%3D_interopRequireWildcard(_environment)%3Bfunction%20_interopRequireWildcard(e)%7Bif(e%26%26e.__esModule)%7Breturn%20e%7Delse%7Bvar%20t%3D%7B%7D%3Bif(e!%3Dnull)%7Bfor(var%20i%20in%20e)%7Bif(Object.prototype.hasOwnProperty.call(e%2Ci))t%5Bi%5D%3De%5Bi%5D%7D%7Dt.default%3De%3Breturn%20t%7D%7Dfunction%20_interopRequireDefault(e)%7Breturn%20e%26%26e.__esModule%3Fe%3A%7Bdefault%3Ae%7D%7Dfunction%20_defineProperty(e%2Ct%2Ci)%7Bif(t%20in%20e)%7BObject.defineProperty(e%2Ct%2C%7Bvalue%3Ai%2Cenumerable%3Atrue%2Cconfigurable%3Atrue%2Cwritable%3Atrue%7D)%7Delse%7Be%5Bt%5D%3Di%7Dreturn%20e%7Dfunction%20_toConsumableArray(e)%7Bif(Array.isArray(e))%7Bfor(var%20t%3D0%2Ci%3DArray(e.length)%3Bt%3Ce.length%3Bt%2B%2B)%7Bi%5Bt%5D%3De%5Bt%5D%7Dreturn%20i%7Delse%7Breturn%20Array.from(e)%7D%7Dfunction%20_classCallCheck(e%2Ct)%7Bif(!(e%20instanceof%20t))%7Bthrow%20new%20TypeError(%5C%5C%5C%22Cannot%20call%20a%20class%20as%20a%20function%5C%5C%5C%22)%7D%7Dfunction%20_possibleConstructorReturn(e%2Ct)%7Bif(!e)%7Bthrow%20new%20ReferenceError(%5C%5C%5C%22this%20hasn't%20been%20initialised%20-%20super()%20hasn't%20been%20called%5C%5C%5C%22)%7Dreturn%20t%26%26(typeof%20t%3D%3D%3D%5C%5C%5C%22object%5C%5C%5C%22%7C%7Ctypeof%20t%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22)%3Ft%3Ae%7Dfunction%20_inherits(e%2Ct)%7Bif(typeof%20t!%3D%3D%5C%5C%5C%22function%5C%5C%5C%22%26%26t!%3D%3Dnull)%7Bthrow%20new%20TypeError(%5C%5C%5C%22Super%20expression%20must%20either%20be%20null%20or%20a%20function%2C%20not%20%5C%5C%5C%22%2Btypeof%20t)%7De.prototype%3DObject.create(t%26%26t.prototype%2C%7Bconstructor%3A%7Bvalue%3Ae%2Cenumerable%3Afalse%2Cwritable%3Atrue%2Cconfigurable%3Atrue%7D%7D)%3Bif(t)Object.setPrototypeOf%3FObject.setPrototypeOf(e%2Ct)%3Ae.__proto__%3Dt%7D%2F*%20%40preserve%20TW-Guard%20*%2F%5C%5Cn%2F*%5C%5C%5C%5C%5C%5Cn%5C%5Cntitle%3A%20%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Fwidget%2FMapWidget%5C%5Cntype%3A%20application%2Fjavascript%5C%5Cnmodule-type%3A%20widget%5C%5Cn%5C%5Cn%40preserve%5C%5Cn%5C%5Cn%5C%5C%5C%5C*%2F%5C%5Cn%2F*%20%40preserve%20TW-Guard%20*%2Fvar%20MapWidget%3Dfunction(e)%7B_inherits(t%2Ce)%3Bfunction%20t(e%2Ci)%7B_classCallCheck(this%2Ct)%3Bvar%20a%3D_possibleConstructorReturn(this%2C(t.__proto__%7C%7CObject.getPrototypeOf(t)).call(this%2Ce%2Ci))%3Ba.getAttr%3Da.getAttribute%3Ba.isDebug%3D_utils2.default.isTrue(%24tm.config.sys.debug%2Cfalse)%3B_utils2.default.bindTo(a%2C%5B%5C%5C%5C%22constructTooltip%5C%5C%5C%22%2C%5C%5C%5C%22handleResizeEvent%5C%5C%5C%22%2C%5C%5C%5C%22handleClickEvent%5C%5C%5C%22%2C%5C%5C%5C%22handleCanvasKeyup%5C%5C%5C%22%2C%5C%5C%5C%22handleCanvasKeydown%5C%5C%5C%22%2C%5C%5C%5C%22handleCanvasScroll%5C%5C%5C%22%2C%5C%5C%5C%22handleCanvasMouseMove%5C%5C%5C%22%2C%5C%5C%5C%22handleWidgetKeyup%5C%5C%5C%22%2C%5C%5C%5C%22handleWidgetKeydown%5C%5C%5C%22%2C%5C%5C%5C%22handleTriggeredRefresh%5C%5C%5C%22%2C%5C%5C%5C%22handleContextMenu%5C%5C%5C%22%5D)%3Ba.callbackManager%3Dnew%20_CallbackManager2.default%3Ba.computeAttributes()%3Ba.editorMode%3Da.getAttr(%5C%5C%5C%22editor%5C%5C%5C%22)%3Ba.clickToUse%3D_utils2.default.isTrue(a.getAttr(%5C%5C%5C%22click-to-use%5C%5C%5C%22)%2Cfalse)%3Ba.id%3Da.getAttr(%5C%5C%5C%22object-id%5C%5C%5C%22)%7C%7Ca.getStateQualifier()%3Ba.widgetPopupsPath%3D%24tm.path.tempPopups%2B%5C%5C%5C%22%2F%5C%5C%5C%22%2Ba.id%3Bif(a.editorMode)%7B_utils2.default.addTWlisteners(%7B%5C%5C%5C%22tmap%3Atm-create-view%5C%5C%5C%22%3Aa.handleCreateView%2C%5C%5C%5C%22tmap%3Atm-rename-view%5C%5C%5C%22%3Aa.handleRenameView%2C%5C%5C%5C%22tmap%3Atm-delete-view%5C%5C%5C%22%3Aa.handleDeleteView%2C%5C%5C%5C%22tmap%3Atm-delete-element%5C%5C%5C%22%3Aa.handleDeleteElement%2C%5C%5C%5C%22tmap%3Atm-edit-view%5C%5C%5C%22%3Aa.handleEditView%2C%5C%5C%5C%22tmap%3Atm-generate-widget%5C%5C%5C%22%3Aa.handleGenerateWidget%2C%5C%5C%5C%22tmap%3Atm-toggle-central-topic%5C%5C%5C%22%3Aa.handleSetCentralTopic%2C%5C%5C%5C%22tmap%3Atm-save-canvas%5C%5C%5C%22%3Aa.handleSaveCanvas%7D%2Ca%2Ca)%7D_utils2.default.addTWlisteners(%7B%5C%5C%5C%22tmap%3Atm-focus-node%5C%5C%5C%22%3Aa.handleFocusNode%2C%5C%5C%5C%22tmap%3Atm-reset-focus%5C%5C%5C%22%3Aa.repaintGraph%2C%5C%5C%5C%22tmap%3Atm-neighbourhood-reset-trace%5C%5C%5C%22%3Afunction%20e()%7Ba.initAndRenderGraph(a.graphDomNode)%7D%7D%2Ca%2Ca)%3Ba.visListeners%3D%7Bclick%3Aa.handleVisSingleClickEvent%2CdoubleClick%3Aa.handleVisDoubleClickEvent%2Cstabilized%3Aa.handleVisStabilizedEvent%2CselectNode%3Aa.handleVisSelectNode%2CdeselectNode%3Aa.handleVisDeselectNode%2CdragStart%3Aa.handleVisDragStart%2CdragEnd%3Aa.handleVisDragEnd%2ChoverNode%3Aa.handleVisHoverElement%2ChoverEdge%3Aa.handleVisHoverElement%2CblurNode%3Aa.handleVisBlurElement%2CblurEdge%3Aa.handleVisBlurElement%2CbeforeDrawing%3Aa.handleVisBeforeDrawing%2CafterDrawing%3Aa.handleVisAfterDrawing%2CstabilizationProgress%3Aa.handleVisLoading%2CstabilizationIterationsDone%3Aa.handleVisLoadingDone%7D%3Ba.windowDomListeners%3D%7Bresize%3A%5Ba.handleResizeEvent%2Cfalse%5D%2Cclick%3A%5Ba.handleClickEvent%2Cfalse%5D%2Cmousemove%3A%5Ba.handleCanvasMouseMove%2Ctrue%5D%7D%3Ba.canvasDomListeners%3D%7Bkeyup%3A%5Ba.handleCanvasKeyup%2Ctrue%5D%2Ckeydown%3A%5Ba.handleCanvasKeydown%2Ctrue%5D%2Cmousewheel%3A%5Ba.handleCanvasScroll%2Ctrue%5D%2CDOMMouseScroll%3A%5Ba.handleCanvasScroll%2Ctrue%5D%2Ccontextmenu%3A%5Ba.handleContextMenu%2Ctrue%5D%2CMozMousePixelScroll%3A%5Ba.handleExtraCanvasScroll%2Ctrue%5D%7D%3Ba.widgetDomListeners%3D%7Bkeyup%3A%5Ba.handleWidgetKeyup%2Ctrue%5D%2Ckeydown%3A%5Ba.handleWidgetKeydown%2Ctrue%5D%7D%3Ba.conVector%3D%7Bfrom%3Anull%2Cto%3Anull%7D%3Breturn%20a%7D_createClass(t%2C%5B%7Bkey%3A%5C%5C%5C%22handleConnectionEvent%5C%5C%5C%22%2Cvalue%3Afunction%20e(t%2Ci)%7Bvar%20a%3Dthis%3Bvar%20s%3Dthis.view.getEdgeTypeFilter()%3Bvar%20r%3D%7BfromLabel%3A%24tm.adapter.selectNodeById(t.from).label%2CtoLabel%3A%24tm.adapter.selectNodeById(t.to).label%2Cview%3Athis.view.getLabel()%2CeTyFilter%3As.raw%7D%3B%24tm.dialogManager.open(%5C%5C%5C%22getEdgeType%5C%5C%5C%22%2Cr%2Cfunction(e%2Cr)%7Bif(e)%7Bvar%20n%3D_utils2.default.getText(r)%3Bvar%20o%3D_EdgeType2.default.getInstance(n)%3Bif(!o.namespace)%7Bvar%20l%3D_EdgeType2.default.getIdParts(o.id)%2Cd%3Dl.marker%2Ch%3Dl.name%3Bvar%20u%3Da.view.getConfig(%5C%5C%5C%22edge_type_namespace%5C%5C%5C%22)%3Bo%3D_EdgeType2.default.getInstance(_EdgeType2.default.getId(d%2Cu%2Ch))%7Dif(!o.exists())%7Bo.save()%7Dt.type%3Do.id%3B%24tm.adapter.insertEdge(t)%3Ba.isPreventZoomOnNextUpdate%3Dtrue%3Bif(!a.view.isEdgeTypeVisible(o))%7B%24tm.dialogManager.open(%5C%5C%5C%22edgeNotVisible%5C%5C%5C%22%2C%7Btype%3Ao.id%2Cview%3Aa.view.getLabel()%2CeTyFilter%3As.pretty%7D)%7D%7Dif(typeof%20i%3D%3D%3D%5C%5C%5C%22function%5C%5C%5C%22)%7Bi(e)%7D%7D)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22checkForFreshInstall%5C%5C%5C%22%2Cvalue%3Afunction%20e()%7Bif(!_utils2.default.getEntry(%24tm.ref.sysMeta%2C%5C%5C%5C%22showWelcomeMessage%5C%5C%5C%22%2Ctrue))%7Breturn%7D_utils2.default.setEntry(%24tm.ref.sysMeta%2C%5C%5C%5C%22showWelcomeMessage%5C%5C%5C%22%2Cfalse)%3Bvar%20t%3D%7Bdialog%3A%7Bpreselects%3A%7B%5C%5C%5C%22config.storyview%5C%5C%5C%22%3A%5C%5C%5C%22true%5C%5C%5C%22%2C%5C%5C%5C%22config.navigation%5C%5C%5C%22%3A%5C%5C%5C%22true%5C%5C%5C%22%2C%5C%5C%5C%22config.sidebar%5C%5C%5C%22%3A%5C%5C%5C%22true%5C%5C%5C%22%2C%5C%5C%5C%22config.demo%5C%5C%5C%22%3A%5C%5C%5C%22true%5C%5C%5C%22%7D%7D%7D%3B%24tm.dialogManager.open(%5C%5C%5C%22welcome%5C%5C%5C%22%2Ct%2Cfunction(e%2Ct)%7Bvar%20i%3D_utils2.default.getPropertiesByPrefix(t.fields%2C%5C%5C%5C%22config.%5C%5C%5C%22%2Ctrue)%3Bif(i%5B%5C%5C%5C%22storyview%5C%5C%5C%22%5D%26%26_utils2.default.tiddlerExists(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftopstoryview%5C%5C%5C%22))%7B_utils2.default.setText(%5C%5C%5C%22%24%3A%2Fview%5C%5C%5C%22%2C%5C%5C%5C%22top%5C%5C%5C%22)%7Dif(i%5B%5C%5C%5C%22navigation%5C%5C%5C%22%5D)%7B_utils2.default.setText(%5C%5C%5C%22%24%3A%2Fconfig%2FNavigation%2FopenLinkFromInsideRiver%5C%5C%5C%22%2C%5C%5C%5C%22above%5C%5C%5C%22)%3B_utils2.default.setText(%5C%5C%5C%22%24%3A%2Fconfig%2FNavigation%2FopenLinkFromOutsideRiver%5C%5C%5C%22%2C%5C%5C%5C%22top%5C%5C%5C%22)%7Dif(i%5B%5C%5C%5C%22sidebar%5C%5C%5C%22%5D)%7B_utils2.default.setText(%5C%5C%5C%22%24%3A%2Fthemes%2Ftiddlywiki%2Fvanilla%2Foptions%2Fsidebarlayout%5C%5C%5C%22%2C%5C%5C%5C%22fixed-fluid%5C%5C%5C%22)%7Dif(i%5B%5C%5C%5C%22demo%5C%5C%5C%22%5D)%7Bvar%20a%3D%24tm.misc.defaultViewLabel%3Bvar%20s%3D%24tm.adapter.insertNode(%7Blabel%3A%5C%5C%5C%22Have%20fun%20with%5C%5C%5C%22%2Cx%3A0%2Cy%3A0%7D%2Ca)%3Bvar%20r%3D%24tm.adapter.insertNode(%7Blabel%3A%5C%5C%5C%22TiddlyMap!!%5C%5C%5C%22%2Cx%3A100%2Cy%3A100%7D%2Ca)%3B%24tm.adapter.insertEdge(%7Bfrom%3As.id%2Cto%3Ar.id%7D)%7Dif(Object.keys(i).length)%7B_utils2.default.touch(%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%5C%5C%5C%22)%7D%7D)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22openStandardConfirmDialog%5C%5C%5C%22%2Cvalue%3Afunction%20e(t%2Ci)%7Bvar%20a%3D%7Bmessage%3Ai%7D%3B%24tm.dialogManager.open(%5C%5C%5C%22getConfirmation%5C%5C%5C%22%2Ca%2Ct)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22logger%5C%5C%5C%22%2Cvalue%3Afunction%20e(t%2Ci)%7Bif(this.isDebug)%7Bvar%20a%3DArray.prototype.slice.call(arguments%2C1)%3Ba.unshift(%5C%5C%5C%22%40%5C%5C%5C%22%2Bthis.id)%3Ba.unshift(t)%3B%24tm.logger.apply(this%2Ca)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22render%5C%5C%5C%22%2Cvalue%3Afunction%20e(t%2Ci)%7Bthis.parentDomNode%3Dt%3Bthis.domNode%3Dthis.document.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bt.insertBefore(this.domNode%2Ci)%3Bthis.registerClassNames(this.domNode)%3Bthis.viewHolderRef%3Dthis.getViewHolderRef()%3Bthis.view%3Dthis.getView()%3Bthis.graphBarDomNode%3Dthis.document.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3B%24tw.utils.addClass(this.graphBarDomNode%2C%5C%5C%5C%22tmap-topbar%5C%5C%5C%22)%3Bthis.domNode.appendChild(this.graphBarDomNode)%3Bthis.graphDomNode%3Dthis.document.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bthis.domNode.appendChild(this.graphDomNode)%3B%24tw.utils.addClass(this.graphDomNode%2C%5C%5C%5C%22tmap-vis-graph%5C%5C%5C%22)%3Bif(_utils2.default.isPreviewed(this))%7B%24tw.utils.addClass(this.domNode%2C%5C%5C%5C%22tmap-static-mode%5C%5C%5C%22)%3Bthis.renderPreview(this.graphBarDomNode%2Cthis.graphDomNode)%7Delse%7Bthis.renderFullWidget(this.domNode%2Cthis.graphBarDomNode%2Cthis.graphDomNode)%3Bvar%20a%3Dthis.document.createElement(%5C%5C%5C%22canvas%5C%5C%5C%22)%3B%24tw.utils.addClass(a%2C%5C%5C%5C%22tmap-download-canvas%5C%5C%5C%22)%3Bthis.domNode.appendChild(a)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22renderPreview%5C%5C%5C%22%2Cvalue%3Afunction%20e(t%2Ci)%7Bvar%20a%3Dthis.view.snapshotTRef%3Bvar%20s%3D_utils2.default.getTiddler(a)%3Bvar%20r%3Dthis.document.createElement(%5C%5C%5C%22span%5C%5C%5C%22)%3Br.innerHTML%3Dthis.view.getLabel()%3Br.className%3D%5C%5C%5C%22tmap-view-label%5C%5C%5C%22%3Bt.appendChild(r)%3Bif(s)%7Bvar%20n%3D_utils2.default.getTiddlerNode(this.view.getRoot())%3Bn.children.push(_utils2.default.getTranscludeNode(a))%3Bthis.makeChildWidgets(%5Bn%5D)%3Bthis.renderChildren(i%2Ci.firstChild)%7Delse%7B%24tw.utils.addClass(i%2C%5C%5C%5C%22tmap-graph-placeholder%5C%5C%5C%22)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22renderFullWidget%5C%5C%5C%22%2Cvalue%3Afunction%20e(t%2Ci%2Ca)%7B_utils2.default.setDomListeners(%5C%5C%5C%22add%5C%5C%5C%22%2Cwindow%2Cthis.windowDomListeners)%3B_utils2.default.setDomListeners(%5C%5C%5C%22add%5C%5C%5C%22%2Ct%2Cthis.widgetDomListeners)%3Bthis.addLoadingBar(this.domNode)%3Bthis.tooltip%3Dnew%20_Popup2.default(this.domNode%2C%7BclassName%3A%5C%5C%5C%22tmap-tooltip%5C%5C%5C%22%2CshowDelay%3A%24tm.config.sys.popups.delay%7D)%3Bthis.contextMenu%3Dnew%20_Popup2.default(this.domNode%2C%7BclassName%3A%5C%5C%5C%22tmap-context-menu%5C%5C%5C%22%2CshowDelay%3A0%2ChideOnClick%3Atrue%2CleavingDelay%3A999999%7D)%3Bthis.sidebar%3D_utils2.default.getFirstElementByClassName(%5C%5C%5C%22tc-sidebar-scrollable%5C%5C%5C%22)%3Bthis.isInSidebar%3Dthis.sidebar%26%26!this.domNode.isTiddlyWikiFakeDom%26%26this.sidebar.contains(this.domNode)%3Bthis.rebuildEditorBar(i)%3Bthis.reloadRefreshTriggers()%3Bthis.initAndRenderGraph(a)%3B%24tm.registry.push(this)%3Bthis.checkForFreshInstall()%3Bif(this.id%3D%3D%3D%24tm.misc.mainEditorId)%7Bvar%20s%3D%24tm.url%3Bif(s%26%26s.query%5B%5C%5C%5C%22tmap-enlarged%5C%5C%5C%22%5D)%7Bthis.toggleEnlargedMode(s.query%5B%5C%5C%5C%22tmap-enlarged%5C%5C%5C%22%5D)%3Bthis.setView(s.query%5B%5C%5C%5C%22tmap-view%5C%5C%5C%22%5D)%7D%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22registerClassNames%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Bvar%20i%3D%24tw.utils.addClass%3Bi(t%2C%5C%5C%5C%22tmap-widget%5C%5C%5C%22)%3Bif(this.clickToUse)%7Bi(t%2C%5C%5C%5C%22tmap-click-to-use%5C%5C%5C%22)%7Dif(this.getAttr(%5C%5C%5C%22editor%5C%5C%5C%22)%3D%3D%3D%5C%5C%5C%22advanced%5C%5C%5C%22)%7Bi(t%2C%5C%5C%5C%22tmap-advanced-editor%5C%5C%5C%22)%7Dif(this.getAttr(%5C%5C%5C%22design%5C%5C%5C%22)%3D%3D%3D%5C%5C%5C%22plain%5C%5C%5C%22)%7Bi(t%2C%5C%5C%5C%22tmap-plain-design%5C%5C%5C%22)%7Dif(!_utils2.default.isTrue(this.getAttr(%5C%5C%5C%22show-buttons%5C%5C%5C%22)%2Ctrue))%7Bi(t%2C%5C%5C%5C%22tmap-no-buttons%5C%5C%5C%22)%7Dif(this.getAttr(%5C%5C%5C%22class%5C%5C%5C%22))%7Bi(t%2Cthis.getAttr(%5C%5C%5C%22class%5C%5C%5C%22))%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22addLoadingBar%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Bthis.graphLoadingBarDomNode%3Dthis.document.createElement(%5C%5C%5C%22progress%5C%5C%5C%22)%3B%24tw.utils.addClass(this.graphLoadingBarDomNode%2C%5C%5C%5C%22tmap-loading-bar%5C%5C%5C%22)%3Bt.appendChild(this.graphLoadingBarDomNode)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22rebuildEditorBar%5C%5C%5C%22%2Cvalue%3Afunction%20e()%7Bthis.removeChildDomNodes()%3Bvar%20t%3Dthis.view%3Bvar%20i%3D%5C%5C%5C%22tmap-unicode-button%5C%5C%5C%22%3Bvar%20a%3Di%2B%5C%5C%5C%22%20tmap-active-button%5C%5C%5C%22%3Bvar%20s%3D%7BwidgetQualifier%3Athis.getStateQualifier()%2CwidgetTempPath%3Athis.widgetTempPath%2CwidgetPopupsPath%3Athis.widgetPopupsPath%2CisViewBound%3AString(this.isViewBound())%2CviewRoot%3At.getRoot()%2CviewLabel%3At.getLabel()%2CviewHolder%3Athis.getViewHolderRef()%2CedgeTypeFilter%3At.edgeTypeFilterTRef%2CallEdgesFilter%3A%24tm.selector.allEdgeTypes%2CisShowNeighbourhood%3AString(t.isEnabled(%5C%5C%5C%22neighbourhood_scope%5C%5C%5C%22))%2CtracingBtnClass%3At.isEnabled(%5C%5C%5C%22neighbourhood_trace_clicks%5C%5C%5C%22)%3Fa%3Ai%2CneighScopeBtnClass%3At.isEnabled(%5C%5C%5C%22neighbourhood_scope%5C%5C%5C%22)%3Fa%3Ai%2CrasterMenuBtnClass%3At.isEnabled(%5C%5C%5C%22raster%5C%5C%5C%22)%3Fa%3Ai%7D%3Bfor(var%20r%20in%20s)%7Bthis.setVariable(r%2Cs%5Br%5D)%7Dvar%20n%3D_utils2.default.getTiddlerNode(t.getRoot())%3Bif(this.editorMode%3D%3D%3D%5C%5C%5C%22advanced%5C%5C%5C%22)%7Bn.children.push(_utils2.default.getTranscludeNode(%24tm.ref.graphBar))%7Delse%7Bvar%20o%3D_utils2.default.getElementNode(%5C%5C%5C%22span%5C%5C%5C%22%2C%5C%5C%5C%22tmap-view-label%5C%5C%5C%22%2Ct.getLabel())%3Bn.children.push(o)%7Dn.children.push(_utils2.default.getTranscludeNode(%24tm.ref.focusButton))%3Bthis.makeChildWidgets(%5Bn%5D)%3Bthis.renderChildren(this.graphBarDomNode%2Cthis.graphBarDomNode.firstChild)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22refresh%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Breturn%20false%7D%7D%2C%7Bkey%3A%5C%5C%5C%22update%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Bif(!this.network%7C%7Cthis.isZombieWidget()%7C%7C_utils2.default.isPreviewed(this))%7Breturn%7Dvar%20i%3Dt.changedTiddlers%3Bthis.callbackManager.refresh(i)%3Bif(this.isViewSwitched(i)%7C%7Cthis.hasChangedAttributes()%7C%7Ct%5Benv.path.options%5D%7C%7Ci%5Bthis.view.getRoot()%5D)%7Bthis.logger(%5C%5C%5C%22warn%5C%5C%5C%22%2C%5C%5C%5C%22View%20switched%20or%20config%20changed%5C%5C%5C%22)%3Bthis.isPreventZoomOnNextUpdate%3Dfalse%3Bthis.view%3Dthis.getView(true)%3Bthis.reloadRefreshTriggers()%3Bthis.trace%3D_utils2.default.makeHashMap()%3Bthis.rebuildEditorBar()%3Bthis.reloadBackgroundImage()%3Bthis.initAndRenderGraph(this.graphDomNode)%7Delse%7Bvar%20a%3Dthis.view.update(t)%3Bif(a)%7Bthis.logger(%5C%5C%5C%22warn%5C%5C%5C%22%2C%5C%5C%5C%22View%20components%20modified%5C%5C%5C%22)%3Bthis.rebuildGraph(%7BresetFocus%3A%7Bdelay%3A1e3%2Cduration%3A1e3%7D%7D)%7Delse%7Bif(t%5Benv.path.nodeTypes%5D%7C%7Cthis.hasChangedElements(i))%7Bthis.rebuildGraph()%7Dthis.refreshChildren(i)%7D%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22hidePopups%5C%5C%5C%22%2Cvalue%3Afunction%20e(t%2Ci)%7Bthis.tooltip.hide(t%2Ci)%3Bthis.contextMenu.hide(0%2Ctrue)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22reloadRefreshTriggers%5C%5C%5C%22%2Cvalue%3Afunction%20e()%7Bthis.callbackManager.remove(this.refreshTriggers)%3Bvar%20t%3Dthis.getAttr(%5C%5C%5C%22refresh-triggers%5C%5C%5C%22)%7C%7Cthis.view.getConfig(%5C%5C%5C%22refresh-triggers%5C%5C%5C%22)%3Bthis.refreshTriggers%3D%24tw.utils.parseStringArray(t)%7C%7C%5B%5D%3Bthis.logger(%5C%5C%5C%22debug%5C%5C%5C%22%2C%5C%5C%5C%22Registering%20refresh%20trigger%5C%5C%5C%22%2Cthis.refreshTriggers)%3Bfor(var%20i%3Dthis.refreshTriggers.length%3Bi--%3B)%7Bthis.callbackManager.add(this.refreshTriggers%5Bi%5D%2Cthis.handleTriggeredRefresh%2Cfalse)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22rebuildGraph%5C%5C%5C%22%2Cvalue%3Afunction%20e()%7Bvar%20t%3Darguments.length%3E0%26%26arguments%5B0%5D!%3D%3Dundefined%3Farguments%5B0%5D%3A%7B%7D%2Ci%3Dt.resetFocus%3Bif(_utils2.default.isPreviewed(this))%7Breturn%7Dthis.logger(%5C%5C%5C%22debug%5C%5C%5C%22%2C%5C%5C%5C%22Rebuilding%20graph%5C%5C%5C%22)%3Bthis.hidePopups(0%2Ctrue)%3Bthis.hasNetworkStabilized%3Dfalse%3Bvar%20a%3Dthis.rebuildGraphData()%3Bif(a.changedNodes.withoutPosition.length)%7Bi%3Di%7C%7C%7Bdelay%3A1e3%2Cduration%3A1e3%7D%3Bif(!this.view.isEnabled(%5C%5C%5C%22physics_mode%5C%5C%5C%22))%7Bvar%20s%3Dthis.visOptions.physics%3Bs%5Bs.solver%5D.centralGravity%3D.25%3Bthis.network.setOptions(this.visOptions)%7D%7Dif(!_utils2.default.hasElements(this.graphData.nodesById))%7Breturn%7Dif(i)%7Bvar%20r%3Dthis.isPreventZoomOnNextUpdate%3D%3Dnull%3Ffalse%3Atypeof%20this.isPreventZoomOnNextUpdate%3D%3D%3D%5C%5C%5C%22number%5C%5C%5C%22%3Fthis.isPreventZoomOnNextUpdate%3EDate.now()%3Athis.isPreventZoomOnNextUpdate%3Bif(!r)%7Bthis.network.stabilize()%3Bthis.resetFocus%3Di%7Dif(typeof%20this.isPreventZoomOnNextUpdate!%3D%3D%5C%5C%5C%22number%5C%5C%5C%22)%7Bthis.isPreventZoomOnNextUpdate%3Dfalse%7D%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getContainer%5C%5C%5C%22%2Cvalue%3Afunction%20e()%7Breturn%20this.domNode%7D%7D%2C%7Bkey%3A%5C%5C%5C%22rebuildGraphData%5C%5C%5C%22%2Cvalue%3Afunction%20e()%7Bvar%20t%3Dthis%3B%24tm.start(%5C%5C%5C%22Reloading%20Network%5C%5C%5C%22)%3Bvar%20i%3D%7Bview%3Athis.view%2Cmatches%3A_utils2.default.getMatches(this.view.getNodeFilter(%5C%5C%5C%22compiled%5C%5C%5C%22))%7D%3Bif(this.view.isEnabled(%5C%5C%5C%22neighbourhood_trace_clicks%5C%5C%5C%22))%7Bvar%20a%3Di.matches%3Bvar%20s%3DObject.keys(this.trace)%3Bvar%20r%3D%5B%5D.concat(_toConsumableArray(a.filter(function(e)%7Breturn!t.trace%5Be%5D%7D))%2C_toConsumableArray(s))%3Bi.matches%3Dr%3Bi.includeNeighboursOf%3Dthis.view.isEnabled(%5C%5C%5C%22neighbourhood_include_traced_node_neighbours%5C%5C%5C%22)%3Ffunction(e)%7Breturn%20r.includes(e)%7D%3Afunction(e)%7Breturn%20a.includes(e)%7D%7Dvar%20n%3D%24tm.adapter.getGraph(i)%3Bvar%20o%3D_utils2.default.refreshDataSet(this.graphData.nodes%2Cn.nodes)%3Bvar%20l%3D_utils2.default.refreshDataSet(this.graphData.edges%2Cn.edges)%3Bthis.graphData.nodesById%3Dn.nodes%3Bthis.graphData.edgesById%3Dn.edges%3B_utils2.default.setField(%5C%5C%5C%22%24%3A%2Ftemp%2Ftmap%2Fnodes%2F%5C%5C%5C%22%2Bthis.view.getLabel()%2C%5C%5C%5C%22list%5C%5C%5C%22%2C%24tm.adapter.getTiddlersByIds(n.nodes))%3B%24tm.stop(%5C%5C%5C%22Reloading%20Network%5C%5C%5C%22)%3Breturn%7BchangedEdges%3Al%2CchangedNodes%3Ao%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22isViewBound%5C%5C%5C%22%2Cvalue%3Afunction%20e()%7Breturn%20_utils2.default.startsWith(this.getViewHolderRef()%2C%24tm.path.localHolders)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22isViewSwitched%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Breturn!_ViewAbstraction2.default.exists(this.view)%7C%7Ct%5Bthis.getViewHolderRef()%5D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22hasChangedAttributes%5C%5C%5C%22%2Cvalue%3Afunction%20e()%7Breturn%20Object.keys(this.computeAttributes()).length%7D%7D%2C%7Bkey%3A%5C%5C%5C%22hasChangedElements%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Bvar%20i%3D%5B%5D%3Bvar%20a%3Dthis.graphData.nodesById%3Bvar%20s%3Dthis.view.isEnabled(%5C%5C%5C%22neighbourhood_scope%5C%5C%5C%22)%3Bfor(var%20r%20in%20t)%7Bif(_utils2.default.isSystemOrDraft(r))%7Bcontinue%7Dif(a%5B%24tm.adapter.getId(r)%5D%7C%7Cs)%7Breturn%20true%7Dif(t%5Br%5D.modified)%7Bi.push(r)%7D%7Dif(i.length)%7Bvar%20n%3Dthis.view.getNodeFilter(%5C%5C%5C%22compiled%5C%5C%5C%22)%3Bvar%20o%3D_utils2.default.getMatches(n%2Ci)%3Breturn!!o.length%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22initAndRenderGraph%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Bvar%20i%3Dthis%3Bif(this.network)%7Bthis._destructVis()%7Dthis.logger(%5C%5C%5C%22info%5C%5C%5C%22%2C%5C%5C%5C%22Initializing%20and%20rendering%20the%20graph%5C%5C%5C%22)%3Bif(!this.isInSidebar)%7Bthis.callbackManager.add(%5C%5C%5C%22%24%3A%2Fstate%2Fsidebar%5C%5C%5C%22%2Cthis.handleResizeEvent)%7Dthis.visOptions%3Dthis.getVisOptions()%3Bthis.graphData%3D%7Bnodes%3Anew%20_vis2.default.DataSet%2Cedges%3Anew%20_vis2.default.DataSet%2CnodesById%3A_utils2.default.makeHashMap()%2CedgesById%3A_utils2.default.makeHashMap()%7D%3Bthis.tooltip.setEnabled(_utils2.default.isTrue(%24tm.config.sys.popups.enabled%2Ctrue))%3Bthis.trace%3D_utils2.default.makeHashMap()%3Bthis.network%3Dnew%20_vis2.default.Network(t%2Cthis.graphData%2Cthis.visOptions)%3Bthis.canvas%3Dt.getElementsByTagName(%5C%5C%5C%22canvas%5C%5C%5C%22)%5B0%5D%3Bthis.networkDomNode%3D_utils2.default.getFirstElementByClassName(%5C%5C%5C%22vis-network%5C%5C%5C%22%2Ct%2Ctrue)%3Bthis.canvas.tabIndex%3D0%3Bfor(var%20a%20in%20this.visListeners)%7Bthis.network.on(a%2Cthis.visListeners%5Ba%5D.bind(this))%7Dthis.addGraphButtons(%7B%5C%5C%5C%22fullscreen-button%5C%5C%5C%22%3Afunction%20e()%7Bi.toggleEnlargedMode(%5C%5C%5C%22fullscreen%5C%5C%5C%22)%7D%2C%5C%5C%5C%22halfscreen-button%5C%5C%5C%22%3Afunction%20e()%7Bi.toggleEnlargedMode(%5C%5C%5C%22halfscreen%5C%5C%5C%22)%7D%7D)%3B_utils2.default.setDomListeners(%5C%5C%5C%22add%5C%5C%5C%22%2Cthis.canvas%2Cthis.canvasDomListeners)%3Bthis.reloadBackgroundImage()%3Bthis.rebuildGraph(%7BresetFocus%3A%7Bdelay%3A0%2Cduration%3A0%7D%7D)%3Bthis.handleResizeEvent()%3Bthis.canvas.focus()%3Bif(this.isLiveView()%26%26this.view.isEnabled(%5C%5C%5C%22neighbourhood_trace_clicks%5C%5C%5C%22))%7Bthis.trace%5B_utils2.default.getText(this.refreshTriggers%5B0%5D)%5D%3Dtrue%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22handleCanvasKeyup%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Bvar%20i%3Dthis%3Bvar%20a%3Dthis.network.getSelectedNodes()%3Bif(t.ctrlKey)%7Bt.preventDefault()%3Bif(t.keyCode%3D%3D%3D88)%7Bif(this.editorMode)%7Bthis.handleAddNodesToClipboard(%5C%5C%5C%22move%5C%5C%5C%22)%7Delse%7B%24tm.notify(%5C%5C%5C%22Map%20is%20read%20only!%5C%5C%5C%22)%7D%7Delse%20if(t.keyCode%3D%3D%3D67)%7Bthis.handleAddNodesToClipboard(%5C%5C%5C%22copy%5C%5C%5C%22)%7Delse%20if(t.keyCode%3D%3D%3D86)%7Bthis.handlePasteNodesFromClipboard()%7Delse%20if(t.keyCode%3D%3D%3D65)%7Bvar%20s%3DObject.keys(this.graphData.nodesById)%3Bthis.network.selectNodes(s)%7Delse%20if(t.keyCode%3D%3D%3D49%7C%7Ct.keyCode%3D%3D%3D50)%7Bif(a.length!%3D%3D1)return%3Bvar%20r%3Dt.keyCode%3D%3D%3D49%3F%5C%5C%5C%22from%5C%5C%5C%22%3A%5C%5C%5C%22to%5C%5C%5C%22%3B%24tm.notify(_utils2.default.ucFirst(r)%2B%5C%5C%5C%22-part%20selected%5C%5C%5C%22)%3Bthis.conVector%5Br%5D%3Da%5B0%5D%3Bif(this.conVector.from%26%26this.conVector.to)%7Bthis.handleConnectionEvent(this.conVector%2Cfunction()%7Bi.conVector%3D%7Bfrom%3Anull%2Cto%3Anull%7D%7D)%7D%7D%7Delse%7Bif(t.keyCode%3D%3D%3D13)%7Bif(a.length!%3D%3D1)return%3Bthis.openTiddlerWithId(a%5B0%5D)%7D%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22handleCanvasKeydown%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Bif(t.altKey%7C%7Ct.metaKey)%7Bt.preventDefault()%3Bif(t.keyCode%3E%3D48%26%26t.keyCode%3C%3D57)%7Bvar%20i%3DString.fromCharCode(t.keyCode)%3Bthis.view.setConfig(%5C%5C%5C%22neighbourhood_scope%5C%5C%5C%22%2Ci)%7D%7Delse%7Bif(t.keyCode%3D%3D%3D46)%7Bt.preventDefault()%3Bthis.handleRemoveElements(this.network.getSelection())%7D%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22handleDeleteElement%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Bvar%20i%3Dt.paramObject.id%3Bvar%20a%3Di%3F%5Bi%5D%3Athis.network.getSelectedNodes()%3Bthis.handleRemoveElements(%7Bnodes%3Aa%7D)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22handleCanvasMouseMove%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Bvar%20i%3Dthis.network%3Bif(!(t.ctrlKey%26%26t.buttons))%7Bif(this.selectRect)%7Bthis.selectRect%3Dnull%3Bvar%20a%3Di.getSelectedNodes()%3B%24tm.notify(a.length%2B%5C%5C%5C%22%20nodes%20selected%5C%5C%5C%22)%3Bi.redraw()%7Dreturn%7Dt.preventDefault()%3Bt.stopPropagation()%3Bif(!this.domNode.contains(t.target))%7Breturn%7Dvar%20s%3Di.DOMtoCanvas(%7Bx%3At.offsetX%2Cy%3At.offsetY%7D)%3Bif(!this.selectRect)%7Bthis.selectRect%3Dnew%20_SelectionRectangle2.default(s.x%2Cs.y)%7Dthis.selectRect.span(s.x%2Cs.y)%3Bvar%20r%3Di.getPositions()%3Bvar%20n%3Di.getSelectedNodes()%3Bfor(var%20o%20in%20r)%7Bif(this.selectRect.isPointWithin(r%5Bo%5D)%26%26!_utils2.default.inArray(o%2Cn))%7Bn.push(o)%7D%7Di.selectNodes(n)%3Bthis.assignActiveStyle(n)%3Bi.redraw()%7D%7D%2C%7Bkey%3A%5C%5C%5C%22handleCanvasScroll%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Bvar%20i%3D!!(this.isInSidebar%7C%7Ct.ctrlKey%7C%7Cthis.enlargedMode%7C%7Cthis.clickToUse%26%26this.networkDomNode.classList.contains(%5C%5C%5C%22vis-active%5C%5C%5C%22))%3Bvar%20a%3Dthis.visOptions.interaction%3Bvar%20s%3Di%3D%3D%3Da.zoomView%3Bif(i%7C%7C!s)%7Bt.preventDefault()%7Dif(!s)%7Bt.stopPropagation()%3Ba.zoomView%3Di%3Bthis.network.setOptions(%7Binteraction%3A%7BzoomView%3Ai%7D%7D)%3Breturn%20false%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22handleExtraCanvasScroll%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Bt.preventDefault()%7D%7D%2C%7Bkey%3A%5C%5C%5C%22handleContextMenu%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Bvar%20i%3Dthis%3Bt.preventDefault()%3Bvar%20a%3Dthis.network%3Bthis.hidePopups(0%2Ctrue)%3Bvar%20s%3Da.getNodeAt(%7Bx%3At.offsetX%2Cy%3At.offsetY%7D)%3Bif(!s)return%3Bvar%20r%3Da.getSelectedNodes()%3Bif(!_utils2.default.inArray(s%2Cr))%7Br%3D%5Bs%5D%3Ba.selectNodes(r)%7Dthis.contextMenu.show(r%2Cfunction(e%2Ct)%7Bvar%20a%3De.length%3E1%3F%5C%5C%5C%22multi%5C%5C%5C%22%3A%5C%5C%5C%22single%5C%5C%5C%22%3Bvar%20s%3D%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Feditor%2FcontextMenu%2Fnode%5C%5C%5C%22%3B_utils2.default.registerTransclude(i%2C%5C%5C%5C%22contextMenuWidget%5C%5C%5C%22%2Cs)%3Bi.contextMenuWidget.setVariable(%5C%5C%5C%22mode%5C%5C%5C%22%2Ca)%3Bi.contextMenuWidget.render(t)%7D)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22handleWidgetKeyup%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7B%7D%7D%2C%7Bkey%3A%5C%5C%5C%22handleWidgetKeydown%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Bif(t.ctrlKey)%7Bt.preventDefault()%3Bif(t.keyCode%3D%3D%3D70)%7Bt.preventDefault()%3Bvar%20i%3Dthis.widgetPopupsPath%2B%5C%5C%5C%22%2Ffocus%5C%5C%5C%22%3B_utils2.default.setText(i%2C_utils2.default.getText(i)%3F%5C%5C%5C%22%5C%5C%5C%22%3A%5C%5C%5C%221%5C%5C%5C%22)%7Delse%7Breturn%7D%7Delse%20if(t.keyCode%3D%3D%3D120)%7Bt.preventDefault()%3Bthis.toggleEnlargedMode(%5C%5C%5C%22halfscreen%5C%5C%5C%22)%7Delse%20if(t.keyCode%3D%3D%3D121)%7Bt.preventDefault()%3Bthis.toggleEnlargedMode(%5C%5C%5C%22fullscreen%5C%5C%5C%22)%7Delse%20if(t.keyCode%3D%3D%3D27)%7Bt.preventDefault()%3B_utils2.default.deleteByPrefix(this.widgetPopupsPath)%7Delse%7Breturn%7Dthis.canvas.focus()%7D%7D%2C%7Bkey%3A%5C%5C%5C%22handlePasteNodesFromClipboard%5C%5C%5C%22%2Cvalue%3Afunction%20e()%7Bif(!this.editorMode)%7B%24tm.notify(%5C%5C%5C%22Map%20is%20read%20only!%5C%5C%5C%22)%3Breturn%7Dif(!%24tm.clipBoard%7C%7C%24tm.clipBoard.type!%3D%3D%5C%5C%5C%22nodes%5C%5C%5C%22)%7B%24tm.notify(%5C%5C%5C%22TiddlyMap%20clipboad%20is%20empty!%5C%5C%5C%22)%7Dvar%20t%3D%24tm.clipBoard.nodes%3Bvar%20i%3DObject.keys(t)%3Bfor(var%20a%3Di.length%3Ba--%3B)%7Bvar%20s%3Di%5Ba%5D%3Bif(this.graphData.nodesById%5Bs%5D)%7Bcontinue%7Dthis.view.addNode(t%5Bs%5D)%3Bthis.graphData.nodes.update(%7Bid%3As%7D)%7Dthis.network.selectNodes(i)%3Bthis.rebuildGraph(%7BresetFocus%3A%7Bdelay%3A0%2Cduration%3A0%7D%7D)%3B%24tm.notify(%5C%5C%5C%22pasted%20%5C%5C%5C%22%2Bi.length%2B%5C%5C%5C%22%20nodes%20into%20map.%5C%5C%5C%22)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22handleAddNodesToClipboard%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Bvar%20i%3Dthis.network.getSelectedNodes()%3Bif(!i.length)%7Breturn%7D%24tm.clipBoard%3D%7Btype%3A%5C%5C%5C%22nodes%5C%5C%5C%22%2Cnodes%3Athis.graphData.nodes.get(i%2C%7BreturnType%3A%5C%5C%5C%22Object%5C%5C%5C%22%7D)%7D%3B%24tm.notify(%5C%5C%5C%22Copied%20%5C%5C%5C%22%2Bi.length%2B%5C%5C%5C%22%20nodes%20to%20clipboard%5C%5C%5C%22)%3Bif(t%3D%3D%3D%5C%5C%5C%22move%5C%5C%5C%22)%7Bfor(var%20a%3Di.length%3Ba--%3B)%7Bthis.view.removeNode(i%5Ba%5D)%7D%7Dthis.isPreventZoomOnNextUpdate%3Dtrue%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getVisOptions%5C%5C%5C%22%2Cvalue%3Afunction%20e()%7Bvar%20t%3Dthis%3Bvar%20i%3D%24tm.config.vis%3Bvar%20a%3D_utils2.default.parseJSON(this.view.getConfig(%5C%5C%5C%22vis%5C%5C%5C%22))%7C%7C%7B%7D%3Bvar%20s%3Da.layout%7C%7C%7B%7D%2Cr%3Ds.hierarchical%3Bvar%20n%3D%7Blayout%3A%7Bhierarchical%3A%7Benabled%3Ar%3D%3D%3Dundefined%7C%7Cr%3D%3D%3Dnull%3Ffalse%3Atypeof%20r%3D%3D%3D%5C%5C%5C%22boolean%5C%5C%5C%22%3Fr%3Ar.enabled!%3D%3Dfalse%7D%7D%7D%3Bvar%20o%3D_utils2.default.merge(%7B%7D%2Ci%2C_utils2.default.merge(a%2Cn))%3Bo.clickToUse%3Dthis.clickToUse%3Bo.manipulation.enabled%3D!!this.editorMode%3Bo.manipulation.deleteNode%3Dfunction(e%2Ci)%7Bt.handleRemoveElements(e)%3Bt.resetVisManipulationBar(i)%7D%3Bo.manipulation.deleteEdge%3Dfunction(e%2Ci)%7Bt.handleRemoveElements(e)%3Bt.resetVisManipulationBar(i)%7D%3Bo.manipulation.addEdge%3Dfunction(e%2Ci)%7Bt.handleConnectionEvent(e)%3Bt.resetVisManipulationBar(i)%7D%3Bo.manipulation.addNode%3Dfunction(e%2Ci)%7Bt.handleInsertNode(e)%3Bt.resetVisManipulationBar(i)%7D%3Bo.manipulation.editNode%3Dfunction(e%2Ci)%7Bt.handleEditNode(e)%3Bt.resetVisManipulationBar(i)%7D%3Bo.interaction.zoomView%3D!!(this.isInSidebar%7C%7Cthis.enlargedMode)%3Bo.manipulation.editEdge%3Dfalse%3Bvar%20l%3Do.physics%3Bl%5Bl.solver%5D%3Dl%5Bl.solver%5D%7C%7C%7B%7D%3Bl.stabilization.iterations%3D1e3%3Bthis.logger(%5C%5C%5C%22debug%5C%5C%5C%22%2C%5C%5C%5C%22Loaded%20graph%20options%5C%5C%5C%22%2Co)%3Breturn%20o%7D%7D%2C%7Bkey%3A%5C%5C%5C%22resetVisManipulationBar%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Bif(t)%7Bt(null)%7Dthis.network.disableEditMode()%3Bthis.network.enableEditMode()%7D%7D%2C%7Bkey%3A%5C%5C%5C%22isVisInEditMode%5C%5C%5C%22%2Cvalue%3Afunction%20e()%7Breturn%20this.graphDomNode.getElementsByClassName(%5C%5C%5C%22vis-button%20vis-back%5C%5C%5C%22).length%3E0%7D%7D%2C%7Bkey%3A%5C%5C%5C%22isLiveView%5C%5C%5C%22%2Cvalue%3Afunction%20e()%7Breturn%20this.id%3D%3D%3D%5C%5C%5C%22live_tab%5C%5C%5C%22%7D%7D%2C%7Bkey%3A%5C%5C%5C%22handleCreateView%5C%5C%5C%22%2Cvalue%3Afunction%20e()%7Bvar%20t%3Dthis%3Bvar%20i%3D%7Bview%3Athis.view.getLabel()%7D%3B%24tm.dialogManager.open(%5C%5C%5C%22createView%5C%5C%5C%22%2Ci%2Cfunction(e%2Ci)%7Bif(!e)return%3Bvar%20a%3D_utils2.default.getField(i%2C%5C%5C%5C%22name%5C%5C%5C%22)%3Bvar%20s%3D_utils2.default.getField(i%2C%5C%5C%5C%22clone%5C%5C%5C%22%2Cfalse)%3Bif(_ViewAbstraction2.default.exists(a))%7B%24tm.notify(%5C%5C%5C%22Forbidden!%20View%20already%20exists!%5C%5C%5C%22)%3Breturn%7Dif(s%26%26t.isLiveView())%7B%24tm.notify(%5C%5C%5C%22Forbidden%20to%20clone%20the%20live%20view!%5C%5C%5C%22)%3Breturn%7Dvar%20r%3Dnew%20_ViewAbstraction2.default(a%2C%7BisCreate%3Atrue%2CprotoView%3As%3Ft.view%3Anull%7D)%3Bt.setView(r)%7D)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22handleRenameView%5C%5C%5C%22%2Cvalue%3Afunction%20e()%7Bvar%20t%3Dthis%3Bif(this.view.isLocked())%7B%24tm.notify(%5C%5C%5C%22Forbidden!%5C%5C%5C%22)%3Breturn%7Dvar%20i%3Dthis.view.getOccurrences()%3Bvar%20a%3D%7Bcount%3Ai.length.toString()%2CrefFilter%3A_utils2.default.joinAndWrap(i%2C%5C%5C%5C%22%5B%5B%5C%5C%5C%22%2C%5C%5C%5C%22%5D%5D%5C%5C%5C%22)%7D%3B%24tm.dialogManager.open(%5C%5C%5C%22renameView%5C%5C%5C%22%2Ca%2Cfunction(e%2Ci)%7Bif(!e)%7Breturn%7Dvar%20a%3D_utils2.default.getText(i)%3Bif(!a)%7B%24tm.notify(%5C%5C%5C%22Invalid%20name!%5C%5C%5C%22)%7Delse%20if(_ViewAbstraction2.default.exists(a))%7B%24tm.notify(%5C%5C%5C%22Forbidden!%20View%20already%20exists!%5C%5C%5C%22)%7Delse%7Bt.view.rename(a)%3Bt.setView(t.view)%7D%7D)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22handleEditView%5C%5C%5C%22%2Cvalue%3Afunction%20e()%7Bvar%20t%3Dthis%3Bvar%20i%3DJSON.stringify(%24tm.config.vis)%3Bvar%20a%3Dthis.graphData%3Bvar%20s%3Dthis.view.getConfig()%3Bvar%20r%3D%7B%5C%5C%5C%22filter.prettyNodeFltr%5C%5C%5C%22%3Athis.view.getNodeFilter(%5C%5C%5C%22pretty%5C%5C%5C%22)%2C%5C%5C%5C%22filter.prettyEdgeFltr%5C%5C%5C%22%3Athis.view.getEdgeTypeFilter(%5C%5C%5C%22pretty%5C%5C%5C%22)%2C%5C%5C%5C%22inherited-style%5C%5C%5C%22%3Ai%7D%3Bvar%20n%3D%7Bview%3Athis.view.getLabel()%2CcreatedOn%3Athis.view.getCreationDate(true)%2CnumberOfNodes%3AObject.keys(a.nodesById).length.toString()%2CnumberOfEdges%3AObject.keys(a.edgesById).length.toString()%2Cdialog%3A%7Bpreselects%3A%24tw.utils.extend(%7B%7D%2Cs%2Cr)%7D%7D%3B%24tm.dialogManager.open(%5C%5C%5C%22configureView%5C%5C%5C%22%2Cn%2Cfunction(e%2Ci)%7Bif(!e)%7Breturn%7Dvar%20a%3D_utils2.default.getPropertiesByPrefix(i.fields%2C%5C%5C%5C%22config.%5C%5C%5C%22%2Ctrue)%3Bvar%20s%3Dt.view.getConfig(%5C%5C%5C%22background_image%5C%5C%5C%22)%3Bt.view.setConfig(a)%3Bif(a%5B%5C%5C%5C%22physics_mode%5C%5C%5C%22%5D%26%26!t.view.isEnabled(%5C%5C%5C%22physics_mode%5C%5C%5C%22))%7Bt.view.saveNodePositions(t.network.getPositions())%7Dvar%20r%3Dt.view.getConfig(%5C%5C%5C%22background_image%5C%5C%5C%22)%3Bif(r%26%26r!%3D%3Ds)%7B%24tm.notify(%5C%5C%5C%22Background%20changed!%20You%20may%20need%20to%20zoom%20out%20a%20bit.%5C%5C%5C%22)%7Dvar%20n%3D_utils2.default.getField(i%2C%5C%5C%5C%22filter.prettyNodeFltr%5C%5C%5C%22%2C%5C%5C%5C%22%5C%5C%5C%22)%3Bvar%20o%3D_utils2.default.getField(i%2C%5C%5C%5C%22filter.prettyEdgeFltr%5C%5C%5C%22%2C%5C%5C%5C%22%5C%5C%5C%22)%3Bt.view.setNodeFilter(n)%3Bt.view.setEdgeTypeFilter(o)%7D)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22handleSaveCanvas%5C%5C%5C%22%2Cvalue%3Afunction%20e()%7Bvar%20t%3Dthis%3Bvar%20i%3D%5C%5C%5C%22%24%3A%2Ftemp%2Ftmap%2Fsnapshot%5C%5C%5C%22%3Bthis.createAndSaveSnapshot(100%2C100%2Ci)%3Bvar%20a%3Dthis.view.getLabel()%2B%5C%5C%5C%22.png%5C%5C%5C%22%3Bvar%20s%3D%7Bdialog%3A%7Bsnapshot%3Ai%2Cview%3Athis.view.getLabel()%2Cpreselects%3A%7Bwidth%3Athis.canvas.width.toString()%2Cheight%3Athis.canvas.height.toString()%2Cname%3Aa%2Caction%3A%5C%5C%5C%22download%5C%5C%5C%22%7D%7D%7D%3B%24tm.dialogManager.open(%5C%5C%5C%22saveCanvas%5C%5C%5C%22%2Cs%2Cfunction(e%2Ca)%7Bif(!e)return%3Bvar%20r%3Da.fields.width%7C%7Cs.dialog.preselects.width%3Bvar%20n%3Da.fields.height%7C%7Cs.dialog.preselects.height%3Bt.createAndSaveSnapshot(r%2Cn%2Ci)%3Bvar%20o%3Da.fields.name%7C%7Cs.dialog.preselects.imageName%3Bvar%20l%3Da.fields.action%3Bif(l%3D%3D%3D%5C%5C%5C%22download%5C%5C%5C%22)%7Bt.handleDownloadSnapshot(r%2Cn%2Co)%7Delse%20if(l%3D%3D%3D%5C%5C%5C%22wiki%5C%5C%5C%22)%7B_utils2.default.cp(i%2Co%2Ctrue)%3Bt.dispatchEvent(%7Btype%3A%5C%5C%5C%22tm-navigate%5C%5C%5C%22%2CnavigateTo%3Ao%7D)%7Delse%20if(l%3D%3D%3D%5C%5C%5C%22placeholder%5C%5C%5C%22)%7Bt.view.addPlaceholder(i)%7D%24tw.wiki.deleteTiddler(%5C%5C%5C%22%24%3A%2Ftemp%2Ftmap%2Fsnapshot%5C%5C%5C%22)%7D)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22handleDownloadSnapshot%5C%5C%5C%22%2Cvalue%3Afunction%20e(t%2Ci%2Ca)%7Bvar%20s%3Dthis.document.createElement(%5C%5C%5C%22a%5C%5C%5C%22)%3Bvar%20r%3Dthis.view.getLabel()%3Bs.download%3Da%3Bs.href%3Dthis.getCanvasAsBase64(%7Bsize%3A%7Bwidth%3At%2Cheight%3Ai%7D%7D)%3Bvar%20n%3Dnew%20MouseEvent(%5C%5C%5C%22click%5C%5C%5C%22)%3Bs.dispatchEvent(n)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22createAndSaveSnapshot%5C%5C%5C%22%2Cvalue%3Afunction%20e(t%2Ci%2Ca%2Cs)%7B%24tw.wiki.addTiddler(new%20%24tw.Tiddler(%7Btitle%3As%7C%7Ca%2Ctype%3A%5C%5C%5C%22image%2Fpng%5C%5C%5C%22%2Ctext%3Athis.getCanvasAsBase64(%7Bsize%3A%7Bwidth%3At%2Cheight%3Ai%7D%2CwithoutPreamble%3Atrue%7D)%7D%2C%24tw.wiki.getCreationFields()%2C%24tw.wiki.getModificationFields()))%3Breturn%20a%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getCanvasAsBase64%5C%5C%5C%22%2Cvalue%3Afunction%20e()%7Bvar%20t%3Darguments.length%3E0%26%26arguments%5B0%5D!%3D%3Dundefined%3Farguments%5B0%5D%3A%7B%7D%2Ci%3Dt.withoutPreamble%2Ca%3Dt.size%3Bvar%20s%3Dthis.graphDomNode.style.width%3Bvar%20r%3Dthis.graphDomNode.style.height%3Bif(a)%7Bthis.graphDomNode.style.width%3Da.width%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bthis.graphDomNode.style.height%3Da.height%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bthis.network.redraw()%7Dvar%20n%3Dthis.canvas.toDataURL(%5C%5C%5C%22image%2Fpng%5C%5C%5C%22)%3Bif(a)%7Bthis.graphDomNode.style.width%3Ds%3Bthis.graphDomNode.style.height%3Dr%3Bthis.network.redraw()%7Dreturn%20i%3F_utils2.default.getWithoutPrefix(n%2C%5C%5C%5C%22data%3Aimage%2Fpng%3Bbase64%2C%5C%5C%5C%22)%3An%7D%7D%2C%7Bkey%3A%5C%5C%5C%22handleDeleteView%5C%5C%5C%22%2Cvalue%3Afunction%20e()%7Bvar%20t%3Dthis%3Bvar%20i%3Dthis.view.getLabel()%3Bif(this.view.isLocked())%7B%24tm.notify(%5C%5C%5C%22Forbidden!%5C%5C%5C%22)%3Breturn%7Dvar%20a%3Dthis.view.getOccurrences()%3Bif(a.length)%7Bvar%20s%3D%7Bcount%3Aa.length.toString()%2CrefFilter%3A_utils2.default.joinAndWrap(a%2C%5C%5C%5C%22%5B%5B%5C%5C%5C%22%2C%5C%5C%5C%22%5D%5D%5C%5C%5C%22)%7D%3B%24tm.dialogManager.open(%5C%5C%5C%22cannotDeleteViewDialog%5C%5C%5C%22%2Cs)%3Breturn%7Dvar%20r%3D%5C%5C%5C%22%5C%5C%5C%5Cn%20%20%20%20%20%20%20%20You%20are%20about%20to%20delete%20the%20view%20''%5C%5C%5C%22%2Bi%2B%5C%5C%5C%22''%5C%5C%5C%5Cn%20%20%20%20%20%20%20%20(no%20tiddler%20currently%20references%20this%20view).%5C%5C%5C%5Cn%20%20%20%20%20%5C%5C%5C%22%3Bthis.openStandardConfirmDialog(function(e)%7Bif(!e)%7Breturn%7Dt.view.destroy()%3Bt.setView(%24tm.misc.defaultViewLabel)%3Bvar%20a%3D'view%20%5C%5C%5C%22'%2Bi%2B%5C%5C%5C%22'%20deleted%5C%5C%5C%22%3Bt.logger(%5C%5C%5C%22debug%5C%5C%5C%22%2Ca)%3B%24tm.notify(a)%7D%2Cr)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22handleTriggeredRefresh%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Bthis.logger(%5C%5C%5C%22log%5C%5C%5C%22%2Ct%2C%5C%5C%5C%22Triggered%20a%20refresh%5C%5C%5C%22)%3Bvar%20i%3D_utils2.default.getTiddler(_utils2.default.getText(t))%3Bif(this.isLiveView())%7Bif(i)%7Bif(this.view.isEnabled(%5C%5C%5C%22neighbourhood_trace_clicks%5C%5C%5C%22))%7Bthis.trace%5Bi.fields.title%5D%3Dtrue%7Dvar%20a%3Di.fields%5B%5C%5C%5C%22tmap.open-view%5C%5C%5C%22%5D%7C%7C%24tm.config.sys.liveTab.fallbackView%3Bif(a%26%26a!%3D%3Dthis.view.getLabel())%7Bthis.setView(a)%3Breturn%7D%7D%7Dthis.rebuildGraph(%7BresetFocus%3A%7Bdelay%3A1e3%2Cduration%3A1e3%7D%7D)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22handleRemoveElements%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Bvar%20i%3Dt.nodes%2Ca%3Dt.edges%3Bif(i.length)%7Bthis.handleRemoveNodes(i)%7Delse%20if(a.length)%7Bthis.handleRemoveEdges(a)%7Dthis.resetVisManipulationBar()%7D%7D%2C%7Bkey%3A%5C%5C%5C%22handleRemoveEdges%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7B%24tm.adapter.deleteEdges(this.graphData.edges.get(t))%3B%24tm.notify(%5C%5C%5C%22edge%5C%5C%5C%22%2B(t.length%3E1%3F%5C%5C%5C%22s%5C%5C%5C%22%3A%5C%5C%5C%22%5C%5C%5C%22)%2B%5C%5C%5C%22%20removed%5C%5C%5C%22)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22handleRemoveNodes%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Bvar%20i%3Dthis%3Bvar%20a%3D%24tm.adapter.getTiddlersByIds(t)%3Bvar%20s%3D%7Bcount%3At.length.toString()%2Ctiddlers%3A%24tw.utils.stringifyList(a)%2Cdialog%3A%7Bpreselects%3A%7B%5C%5C%5C%22delete-from%5C%5C%5C%22%3A%5C%5C%5C%22filter%5C%5C%5C%22%7D%7D%7D%3B%24tm.dialogManager.open(%5C%5C%5C%22deleteNodeDialog%5C%5C%5C%22%2Cs%2Cfunction(e%2Ca)%7Bif(!e)return%3Bvar%20s%3D0%3Bfor(var%20r%3Dt.length%3Br--%3B)%7Bvar%20n%3Di.view.removeNode(t%5Br%5D)%3Bif(n)%7Bs%2B%2B%7D%7Dif(a.fields%5B%5C%5C%5C%22delete-from%5C%5C%5C%22%5D%3D%3D%3D%5C%5C%5C%22system%5C%5C%5C%22)%7B%24tm.adapter.deleteNodes(t)%3Bs%3Dt.length%7Di.isPreventZoomOnNextUpdate%3Dtrue%3B%24tm.notify(%5C%5C%5C%22%5C%5C%5C%5Cn%20%20%20%20%20%20%20%20Removed%20%5C%5C%5C%22%2Bs%2B%5C%5C%5C%22%5C%5C%5C%5Cn%20%20%20%20%20%20%20%20of%20%5C%5C%5C%22%2Bt.length%2B%5C%5C%5C%22%5C%5C%5C%5Cn%20%20%20%20%20%20%20%20from%20%5C%5C%5C%22%2Ba.fields%5B%5C%5C%5C%22delete-from%5C%5C%5C%22%5D%2B%5C%5C%5C%22%5C%5C%5C%5Cn%20%20%20%20%20%20%5C%5C%5C%22)%7D)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22toggleEnlargedMode%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Bif(!this.isInSidebar%26%26t%3D%3D%3D%5C%5C%5C%22halfscreen%5C%5C%5C%22)%7Breturn%7Dthis.logger(%5C%5C%5C%22log%5C%5C%5C%22%2C%5C%5C%5C%22Toggled%20graph%20enlargement%5C%5C%5C%22)%3Bvar%20i%3Dthis.enlargedMode%3Bif(i)%7Bthis.network.setOptions(%7BclickToUse%3Athis.clickToUse%7D)%3B_utils2.default.findAndRemoveClassNames(%5B%5C%5C%5C%22tmap-has-%5C%5C%5C%22%2Bi%2B%5C%5C%5C%22-widget%5C%5C%5C%22%2C%5C%5C%5C%22tmap-%5C%5C%5C%22%2Bi%5D)%3Bthis.enlargedMode%3Dnull%3Bdocument.body.scrollTop%3Dthis.scrollTop%7Dif(!i%7C%7Ci!%3D%3Dt%26%26(t%3D%3D%3D%5C%5C%5C%22fullscreen%5C%5C%5C%22%7C%7Ct%3D%3D%3D%5C%5C%5C%22halfscreen%5C%5C%5C%22%26%26!this.isInSidebar))%7Bthis.scrollTop%3Ddocument.body.scrollTop%3Bthis.enlargedMode%3Dt%3Bvar%20a%3Dthis.isInSidebar%3Fthis.sidebar%3A_utils2.default.getFirstElementByClassName(%5C%5C%5C%22tc-story-river%5C%5C%5C%22)%3B%24tw.utils.addClass(this.document.body%2C%5C%5C%5C%22tmap-has-%5C%5C%5C%22%2Bt%2B%5C%5C%5C%22-widget%5C%5C%5C%22)%3B%24tw.utils.addClass(a%2C%5C%5C%5C%22tmap-has-%5C%5C%5C%22%2Bt%2B%5C%5C%5C%22-widget%5C%5C%5C%22)%3B%24tw.utils.addClass(this.domNode%2C%5C%5C%5C%22tmap-%5C%5C%5C%22%2Bt)%3Bthis.network.setOptions(%7BclickToUse%3Afalse%7D)%3B%24tm.notify(%5C%5C%5C%22Toggled%20%5C%5C%5C%22%2Bt%2B%5C%5C%5C%22%20mode%5C%5C%5C%22)%7Dthis.handleResizeEvent()%7D%7D%2C%7Bkey%3A%5C%5C%5C%22handleGenerateWidget%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7B%24tw.rootWidget.dispatchEvent(%7Btype%3A%5C%5C%5C%22tmap%3Atm-generate-widget%5C%5C%5C%22%2CparamObject%3A%7Bview%3Athis.view.getLabel()%7D%7D)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22handleSetCentralTopic%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Bvar%20i%3Dt.paramObject%3Bvar%20a%3Di.id%7C%7Cthis.network.getSelectedNodes()%5B0%5D%3Bif(a%3D%3D%3Dthis.view.getConfig(%5C%5C%5C%22central-topic%5C%5C%5C%22))%7Ba%3D%5C%5C%5C%22%5C%5C%5C%22%7Dthis.view.setCentralTopic(a)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22handleVisStabilizedEvent%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Bif(this.hasNetworkStabilized)%7Breturn%7Dthis.hasNetworkStabilized%3Dtrue%3Bthis.logger(%5C%5C%5C%22log%5C%5C%5C%22%2C%5C%5C%5C%22Network%20stabilized%20after%5C%5C%5C%22%2Ct.iterations%2C%5C%5C%5C%22iterations%5C%5C%5C%22)%3Bif(!this.view.isEnabled(%5C%5C%5C%22physics_mode%5C%5C%5C%22))%7Bvar%20i%3Dthis.graphData.nodesById%3Bvar%20a%3D%5B%5D%3Bfor(var%20s%20in%20i)%7Bif(i%5Bs%5D.x%3D%3D%3Dundefined)%7Ba.push(s)%7D%7Dif(a.length)%7Bthis.setNodesMoveable(a%2Cfalse)%3B%24tm.notify(a.length%2B%5C%5C%5C%22%20nodes%20were%20added%20to%20the%20graph%5C%5C%5C%22)%7Dvar%20r%3Dthis.visOptions.physics%3Br%5Br.solver%5D.centralGravity%3D0%3Bthis.network.setOptions(this.visOptions)%7Dif(this.resetFocus)%7Bthis.fitGraph(this.resetFocus.delay%2Cthis.resetFocus.duration)%3Bthis.resetFocus%3Dnull%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22handleFocusNode%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Bvar%20i%3Dt.param%3Bthis.network.focus(%24tm.adapter.getId(i)%2C%7Bscale%3A1.5%2Canimation%3Atrue%7D)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22isZombieWidget%5C%5C%5C%22%2Cvalue%3Afunction%20e()%7Breturn%20this.domNode.isTiddlyWikiFakeDom%3D%3D%3Dtrue%7C%7C!this.document.body.contains(this.getContainer())%7D%7D%2C%7Bkey%3A%5C%5C%5C%22fitGraph%5C%5C%5C%22%2Cvalue%3Afunction%20e()%7Bvar%20t%3Dthis%3Bvar%20i%3Darguments.length%3E0%26%26arguments%5B0%5D!%3D%3Dundefined%3Farguments%5B0%5D%3A0%3Bvar%20a%3Darguments.length%3E1%26%26arguments%5B1%5D!%3D%3Dundefined%3Farguments%5B1%5D%3A0%3BclearTimeout(this.activeFitTimeout)%3Bvar%20s%3Dfunction%20e()%7Bif(t.isZombieWidget())%7Breturn%7Dt.network.redraw()%3Bt.network.fit(%7Banimation%3A%7Bduration%3Aa%2CeasingFunction%3A%5C%5C%5C%22easeOutQuart%5C%5C%5C%22%7D%7D)%7D%3Bthis.activeFitTimeout%3DsetTimeout(s%2Ci)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22handleInsertNode%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Bvar%20i%3Dthis%3B%24tm.dialogManager.open(%5C%5C%5C%22addNodeToMap%5C%5C%5C%22%2C%7B%7D%2Cfunction(e%2Ca)%7Bif(!e)%7Breturn%7Dvar%20s%3D_utils2.default.getField(a%2C%5C%5C%5C%22draft.title%5C%5C%5C%22).trim()%3Bif(_utils2.default.tiddlerExists(s))%7Bif(_utils2.default.isMatch(s%2Ci.view.getNodeFilter(%5C%5C%5C%22compiled%5C%5C%5C%22)))%7B%24tm.notify(%5C%5C%5C%22Node%20already%20exists%5C%5C%5C%22)%3Breturn%7Delse%7Bt%3D%24tm.adapter.makeNode(s%2Ct)%3Bi.view.addNode(t)%7D%7Delse%7Bvar%20r%3Dnew%20%24tw.Tiddler(a%2C%7B%5C%5C%5C%22draft.title%5C%5C%5C%22%3Anull%7D)%3Bt.label%3Ds%3B%24tm.adapter.insertNode(t%2Ci.view%2Cr)%7Di.isPreventZoomOnNextUpdate%3Dtrue%7D)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22handleEditNode%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Bvar%20i%3Dthis%3Bvar%20a%3D%24tm.tracker.getTiddlerById(t.id)%3Bvar%20s%3D_utils2.default.getTiddler(a)%3Bvar%20r%3D%24tm.config.vis.nodes%3Bvar%20n%3D_utils2.default.parseJSON(this.view.getConfig(%5C%5C%5C%22vis%5C%5C%5C%22)%2C%7B%7D).nodes%3Bvar%20o%3D%7B%7D%3Bo%5Bt.id%5D%3Dt%3Bvar%20l%3D%24tm.adapter.getInheritedNodeStyles(o)%3Bvar%20d%3Dl%5Ba%5D%3Bvar%20h%3D_utils2.default.merge(%7B%7D%2C%7Bcolor%3As.fields%5B%5C%5C%5C%22color%5C%5C%5C%22%5D%7D%2C_utils2.default.parseJSON(s.fields%5B%5C%5C%5C%22tmap.style%5C%5C%5C%22%5D))%3Bvar%20u%3Dthis.view.getLabel()%3Bvar%20g%3D_extends(%7B%7D%2Cthis.view.getNodeData(t.id))%3Bdelete%20g.x%3Bdelete%20g.y%3Bvar%20f%3D%7Bview%3Au%2Ctiddler%3As.fields.title%2CtidColor%3As.fields%5B%5C%5C%5C%22color%5C%5C%5C%22%5D%2CtidIcon%3As.fields%5B%24tm.field.nodeIcon%5D%7C%7Cs.fields%5B%5C%5C%5C%22tmap.fa-icon%5C%5C%5C%22%5D%2CtidLabelField%3A%5C%5C%5C%22global.%5C%5C%5C%22%2B%24tm.field.nodeLabel%2CtidIconField%3A%5C%5C%5C%22global.%5C%5C%5C%22%2B%24tm.field.nodeIcon%2Cdialog%3A%7Bpreselects%3A%7B%5C%5C%5C%22inherited-global-default-style%5C%5C%5C%22%3AJSON.stringify(r)%2C%5C%5C%5C%22inherited-local-default-style%5C%5C%5C%22%3AJSON.stringify(n)%2C%5C%5C%5C%22inherited-group-styles%5C%5C%5C%22%3AJSON.stringify(d)%2C%5C%5C%5C%22global.tmap.style%5C%5C%5C%22%3AJSON.stringify(h)%2C%5C%5C%5C%22local-individual-node-style%5C%5C%5C%22%3AJSON.stringify(g)%7D%7D%7D%3Bvar%20v%3Dfunction%20e(t%2Ci%2Ca)%7Bfor(var%20s%3Da.length%3Bs--%3B)%7Bf.dialog.preselects%5Bt%2B%5C%5C%5C%22.%5C%5C%5C%22%2Ba%5Bs%5D%5D%3Di%5Ba%5Bs%5D%5D%7C%7C%5C%5C%5C%22%5C%5C%5C%22%7D%7D%3Bv(%5C%5C%5C%22local%5C%5C%5C%22%2Cg%2C%5B%5C%5C%5C%22label%5C%5C%5C%22%2C%5C%5C%5C%22tw-icon%5C%5C%5C%22%2C%5C%5C%5C%22fa-icon%5C%5C%5C%22%2C%5C%5C%5C%22open-view%5C%5C%5C%22%5D)%3Bv(%5C%5C%5C%22global%5C%5C%5C%22%2Cs.fields%2C%5B%24tm.field.nodeLabel%2C%24tm.field.nodeIcon%2C%5C%5C%5C%22tmap.fa-icon%5C%5C%5C%22%2C%5C%5C%5C%22tmap.open-view%5C%5C%5C%22%5D)%3B%24tm.dialogManager.open(%5C%5C%5C%22editNode%5C%5C%5C%22%2Cf%2Cfunction(e%2Cs)%7Bif(!e)return%3Bvar%20r%3Ds.fields%3Bvar%20n%3D_utils2.default.getPropertiesByPrefix(r%2C%5C%5C%5C%22global.%5C%5C%5C%22%2Ctrue)%3Bfor(var%20o%20in%20n)%7B_utils2.default.setField(a%2Co%2Cn%5Bo%5D%7C%7Cundefined)%7Dvar%20l%3D_utils2.default.getPropertiesByPrefix(r%2C%5C%5C%5C%22local.%5C%5C%5C%22%2Ctrue)%3Bvar%20d%3D_utils2.default.parseJSON(r%5B%5C%5C%5C%22local-individual-node-style%5C%5C%5C%22%5D%2C%7B%7D)%3Bfor(var%20h%20in%20l)%7Bd%5Bh%5D%3Dl%5Bh%5D%7C%7Cundefined%7Di.view.saveNodeStyle(t.id%2Cd)%3Bi.isPreventZoomOnNextUpdate%3Dtrue%7D)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22handleVisSingleClickEvent%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Bvar%20i%3D_utils2.default.isTrue(%24tm.config.sys.singleClickMode)%3Bif(i%26%26!this.editorMode)%7Bthis.handleOpenMapElementEvent(t)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22handleVisDoubleClickEvent%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Bif(t.nodes.length%7C%7Ct.edges.length)%7Bif(this.editorMode%7C%7C!_utils2.default.isTrue(%24tm.config.sys.singleClickMode))%7Bthis.handleOpenMapElementEvent(t)%7D%7Delse%7Bif(this.editorMode)%7Bthis.handleInsertNode(t.pointer.canvas)%7D%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22handleOpenMapElementEvent%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Bvar%20i%3Dthis%3Bvar%20a%3Dt.nodes%2Cs%3Dt.edges%3Bif(a.length)%7Bvar%20r%3Dthis.graphData.nodesById%5Ba%5B0%5D%5D%3Bif(this.view.isEnabled(%5C%5C%5C%22neighbourhood_trace_clicks%5C%5C%5C%22))%7Bthis.trace%5B%24tm.adapter.getTiddlerById(r.id)%5D%3Dtrue%3Bthis.isPreventZoomOnNextUpdate%3DDate.now()%2B500%3Bthis.rebuildGraph()%3Bif(this.view.isEnabled(%5C%5C%5C%22neighbourhood_focus_newly_traced_node%5C%5C%5C%22))%7BsetTimeout(function()%7Bi.network.focus(r.id%2C%7Bscale%3A1%2Canimation%3Atrue%7D)%7D%2C1500)%7D%7Dif(r%5B%5C%5C%5C%22open-view%5C%5C%5C%22%5D)%7B%24tm.notify(%5C%5C%5C%22Switching%20view%5C%5C%5C%22)%3Bthis.setView(r%5B%5C%5C%5C%22open-view%5C%5C%5C%22%5D)%7Dthis.openTiddlerWithId(a%5B0%5D)%7Delse%20if(s.length)%7Bthis.logger(%5C%5C%5C%22debug%5C%5C%5C%22%2C%5C%5C%5C%22Clicked%20on%20an%20Edge%5C%5C%5C%22)%3Bvar%20n%3Dthis.graphData.edgesById%5Bs%5B0%5D%5D.type%3Bthis.handleEditEdgeType(n)%7Delse%7Breturn%7Dthis.hidePopups(0%2Ctrue)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22handleEditEdgeType%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Bif(!this.editorMode)return%3Bvar%20i%3D%24tm.config.sys.edgeClickBehaviour%3Bif(i!%3D%3D%5C%5C%5C%22manager%5C%5C%5C%22)return%3B%24tw.rootWidget.dispatchEvent(%7Btype%3A%5C%5C%5C%22tmap%3Atm-manage-edge-types%5C%5C%5C%22%2CparamObject%3A%7Btype%3At%7D%7D)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22handleResizeEvent%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Bif(this.isZombieWidget())return%3Bvar%20i%3Dthis.getAttr(%5C%5C%5C%22height%5C%5C%5C%22)%3Bvar%20a%3Dthis.getAttr(%5C%5C%5C%22width%5C%5C%5C%22)%3Bif(this.isInSidebar)%7Bvar%20s%3Dthis.domNode.getBoundingClientRect()%3Bvar%20r%3D15%3Ba%3Ddocument.body.clientWidth-s.left-r%2B%5C%5C%5C%22px%5C%5C%5C%22%3Bvar%20n%3DparseInt(this.getAttr(%5C%5C%5C%22bottom-spacing%5C%5C%5C%22))%7C%7C15%3Bvar%20o%3Dwindow.innerHeight-s.top%3Bi%3Do-n%2B%5C%5C%5C%22px%5C%5C%5C%22%7Dthis.domNode.style.height%3Di%7C%7C%5C%5C%5C%22300px%5C%5C%5C%22%3Bthis.domNode.style.width%3Da%3Bthis.repaintGraph()%7D%7D%2C%7Bkey%3A%5C%5C%5C%22handleClickEvent%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Bif(this.isZombieWidget()%7C%7C!this.network)return%3Bif(!this.graphDomNode.contains(t.target))%7Bvar%20i%3Dthis.network.getSelection()%3Bif(i.nodes.length%7C%7Ci.edges.length)%7Bthis.logger(%5C%5C%5C%22debug%5C%5C%5C%22%2C%5C%5C%5C%22Clicked%20outside%3B%20deselecting%20nodes%2Fedges%5C%5C%5C%22)%3Bthis.network.selectNodes(%5B%5D)%3Bthis.resetVisManipulationBar()%7D%7Delse%7Bthis.canvas.focus()%7Dif(t.button!%3D%3D2)%7Bthis.contextMenu.hide(0%2Ctrue)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22handleVisSelectNode%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Bvar%20i%3Dt.nodes%3Bif(!this.isDraggingAllowed(i))%7Breturn%7Dthis.assignActiveStyle(i)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22isDraggingAllowed%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Bvar%20i%3Dt.nodes%3Breturn%20this.editorMode%7C%7Cthis.view.isEnabled(%5C%5C%5C%22physics_mode%5C%5C%5C%22)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22assignActiveStyle%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Bif(!Array.isArray(t))t%3D%5Bt%5D%3Bvar%20i%3Dthis.visOptions.nodes.color%3Bfor(var%20a%3Dt.length%3Ba--%3B)%7Bvar%20s%3Dt%5Ba%5D%3Bvar%20r%3Dthis.graphData.nodesById%5Bs%5D%3Bvar%20n%3D_utils2.default.merge(%7B%7D%2Ci%2Cr.color)%3Bthis.graphData.nodes.update(%7Bid%3As%2Ccolor%3A%7Bhighlight%3An%2Chover%3An%7D%7D)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22handleVisDeselectNode%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7B%7D%7D%2C%7Bkey%3A%5C%5C%5C%22handleVisDragEnd%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Bvar%20i%3Dt.nodes%3Bif(!i.length)%7Breturn%7Dif(i.length%3D%3D%3D1%26%26this.view.isEnabled(%5C%5C%5C%22raster%5C%5C%5C%22))%7Bvar%20a%3Dthis.network.getPositions()%5Bi%5B0%5D%5D%3Bthis.graphData.nodes.update(_extends(%7Bid%3Ai%5B0%5D%7D%2C_utils2.default.getNearestRasterPosition(a%2CparseInt(this.view.getConfig(%5C%5C%5C%22raster%5C%5C%5C%22)))))%7Dthis.draggedNode%3Dnull%3Bthis.setNodesMoveable(i%2Cfalse)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22handleVisBeforeDrawing%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Bvar%20i%3Dthis.view%2Ca%3Dthis.network%2Cs%3Dthis.backgroundImage%3Bif(s)%7Bt.drawImage(s%2C0%2C0)%7Dif(i.isEnabled(%5C%5C%5C%22raster%5C%5C%5C%22))%7B_utils2.default.drawRaster(t%2Ca.getScale()%2Ca.getViewPosition()%2CparseInt(i.getConfig(%5C%5C%5C%22raster%5C%5C%5C%22)))%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22handleVisAfterDrawing%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Bif(this.selectRect)%7Bvar%20i%3Dthis.selectRect.getRect()%3Bt.beginPath()%3Bt.globalAlpha%3D.5%3Bt.fillStyle%3D%5C%5C%5C%22%23EAFFEF%5C%5C%5C%22%3Bt.fillRect.apply(t%2C_toConsumableArray(i))%3Bt.beginPath()%3Bt.globalAlpha%3D1%3Bt.strokeStyle%3D%5C%5C%5C%22%23B4D9BD%5C%5C%5C%22%3Bt.strokeRect.apply(t%2C_toConsumableArray(i))%7Dif(this.draggedNode%26%26this.view.isEnabled(%5C%5C%5C%22raster%5C%5C%5C%22))%7Bvar%20a%3Dthis.network.getPositions()%5Bthis.draggedNode%5D%3Bvar%20s%3D_utils2.default.getNearestRasterPosition(a%2CparseInt(this.view.getConfig(%5C%5C%5C%22raster%5C%5C%5C%22)))%3Bt.strokeStyle%3D%5C%5C%5C%22green%5C%5C%5C%22%3Bt.fillStyle%3D%5C%5C%5C%22green%5C%5C%5C%22%3Bt.beginPath()%3Bt.moveTo(a.x%2Ca.y)%3Bt.lineTo(s.x%2Cs.y)%3Bt.stroke()%3Bt.beginPath()%3Bt.arc(s.x%2Cs.y%2C5%2C0%2CMath.PI*2)%3Bt.fill()%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22constructTooltip%5C%5C%5C%22%2Cvalue%3Afunction%20e(t%2Ci)%7Bvar%20a%3D_utils2.default.parseJSON(t)%3Bvar%20s%3Da.node%7C%7Ca.edge%3Bvar%20r%3Dnull%3Bvar%20n%3D%5C%5C%5C%22text%2Fhtml%5C%5C%5C%22%3Bvar%20o%3D%5C%5C%5C%22text%2Fvnd-tiddlywiki%5C%5C%5C%22%3Bif(a.node)%7Bvar%20l%3D%24tm.tracker.getTiddlerById(s)%3Bvar%20d%3D_utils2.default.getTiddler(l)%3Bvar%20h%3Dd.fields%5B%24tm.field.nodeInfo%5D%3Bif(h)%7Bi.innerHTML%3D%24tw.wiki.renderText(n%2Co%2Ch)%7Delse%20if(d.fields.text)%7B_utils2.default.registerTransclude(this%2C%5C%5C%5C%22tooltipWidget%5C%5C%5C%22%2Cl)%3Bthis.tooltipWidget.setVariable(%5C%5C%5C%22tv-tiddler-preview%5C%5C%5C%22%2C%5C%5C%5C%22yes%5C%5C%5C%22)%3Bthis.tooltipWidget.render(i)%7Delse%7Bi.innerHTML%3Dl%7D%7Delse%7Bvar%20u%3Dthis.graphData.edgesById%5Bs%5D%3Bvar%20g%3D%24tm.indeces.allETy%5Bu.type%5D%3Bif(g.description)%7Br%3D%24tw.wiki.renderText(n%2Co%2Cg.description)%7Di.innerHTML%3Dr%7C%7Cg.label%7C%7Cg.id%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22handleVisHoverElement%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Bif(%24tm.mouse.buttons)return%3Bvar%20i%3Dt.node%7C%7Ct.edge%3Bvar%20a%3DJSON.stringify(t)%3Bif(t.node)%7Bthis.assignActiveStyle(i)%7Dif(!this.isVisInEditMode()%26%26!this.contextMenu.isShown())%7Bvar%20s%3Dthis.constructTooltip%3Bthis.tooltip.show(a%2Cs)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22handleVisBlurElement%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Bthis.tooltip.hide()%7D%7D%2C%7Bkey%3A%5C%5C%5C%22handleVisLoading%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Bvar%20i%3Dt.total%2Ca%3Dt.iterations%3Bthis.graphLoadingBarDomNode.style.display%3D%5C%5C%5C%22block%5C%5C%5C%22%3Bthis.graphLoadingBarDomNode.setAttribute(%5C%5C%5C%22max%5C%5C%5C%22%2Ci)%3Bthis.graphLoadingBarDomNode.setAttribute(%5C%5C%5C%22value%5C%5C%5C%22%2Ca)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22handleVisLoadingDone%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Bthis.graphLoadingBarDomNode.style.display%3D%5C%5C%5C%22none%5C%5C%5C%22%7D%7D%2C%7Bkey%3A%5C%5C%5C%22handleVisDragStart%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Bvar%20i%3Dt.nodes%3Bif(!i.length%7C%7C!this.isDraggingAllowed(i))%7Breturn%7Dthis.hidePopups(0%2Ctrue)%3Bthis.assignActiveStyle(i)%3Bthis.setNodesMoveable(i%2Ctrue)%3Bif(i.length%3D%3D%3D1)%7Bthis.draggedNode%3Di%5B0%5D%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22destruct%5C%5C%5C%22%2Cvalue%3Afunction%20e()%7B_utils2.default.setDomListeners(%5C%5C%5C%22remove%5C%5C%5C%22%2Cwindow%2Cthis.windowDomListeners)%3B_utils2.default.setDomListeners(%5C%5C%5C%22remove%5C%5C%5C%22%2Cthis.domNode%2Cthis.widgetDomListeners)%3Bthis._destructVis()%7D%7D%2C%7Bkey%3A%5C%5C%5C%22_destructVis%5C%5C%5C%22%2Cvalue%3Afunction%20e()%7Bif(!this.network)return%3B_utils2.default.setDomListeners(%5C%5C%5C%22remove%5C%5C%5C%22%2Cthis.canvas%2Cthis.canvasDomListeners)%3Bthis.network.destroy()%3Bthis.network%3Dnull%7D%7D%2C%7Bkey%3A%5C%5C%5C%22openTiddlerWithId%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Bvar%20i%3Dthis%3Bvar%20a%3D%24tm.tracker.getTiddlerById(t)%3Bthis.logger(%5C%5C%5C%22debug%5C%5C%5C%22%2C%5C%5C%5C%22Opening%20tiddler%5C%5C%5C%22%2Ca%2C%5C%5C%5C%22with%20id%5C%5C%5C%22%2Ct)%3Bif(this.enlargedMode%3D%3D%3D%5C%5C%5C%22fullscreen%5C%5C%5C%22)%7Bvar%20s%3D%24tw.wiki.findDraft(a)%3Bvar%20r%3D!!s%3Bif(!r)%7Bvar%20n%3D%5C%5C%5C%22tm-edit-tiddler%5C%5C%5C%22%3Bthis.dispatchEvent(%7Btype%3An%2CtiddlerTitle%3Aa%7D)%3Bs%3D%24tw.wiki.findDraft(a)%7Dvar%20o%3D%7BdraftTRef%3As%2CoriginalTRef%3Aa%7D%3B%24tm.dialogManager.open(%5C%5C%5C%22fullscreenTiddlerEditor%5C%5C%5C%22%2Co%2Cfunction(e%2Ct)%7Bif(e)%7Bvar%20n%3D%5C%5C%5C%22tm-save-tiddler%5C%5C%5C%22%3Bi.dispatchEvent(%7Btype%3An%2CtiddlerTitle%3As%7D)%7Delse%20if(!r)%7B_utils2.default.deleteTiddlers(%5Bs%5D)%7Dvar%20o%3D%5C%5C%5C%22tm-close-tiddler%5C%5C%5C%22%3Bi.dispatchEvent(%7Btype%3Ao%2CtiddlerTitle%3Aa%7D)%7D)%7Delse%7Bvar%20l%3Dthis.domNode.getBoundingClientRect()%3Bthis.dispatchEvent(%7Btype%3A%5C%5C%5C%22tm-navigate%5C%5C%5C%22%2CnavigateTo%3Aa%2CnavigateFromTitle%3Athis.getVariable(%5C%5C%5C%22storyTiddler%5C%5C%5C%22)%2CnavigateFromNode%3Athis%2CnavigateFromClientRect%3A%7Btop%3Al.top%2Cleft%3Al.left%2Cwidth%3Al.width%2Cright%3Al.right%2Cbottom%3Al.bottom%2Cheight%3Al.height%7D%7D)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getViewHolderRef%5C%5C%5C%22%2Cvalue%3Afunction%20e()%7Bif(this.viewHolderRef)%7Breturn%20this.viewHolderRef%7Dthis.logger(%5C%5C%5C%22info%5C%5C%5C%22%2C%5C%5C%5C%22Retrieving%20or%20generating%20the%20view%20holder%20reference%5C%5C%5C%22)%3Bvar%20t%3Dthis.getAttr(%5C%5C%5C%22view%5C%5C%5C%22)%3Bvar%20i%3Dnull%3Bif(t)%7Bthis.logger(%5C%5C%5C%22log%5C%5C%5C%22%2C'User%20wants%20to%20bind%20view%20%5C%5C%5C%22'%2Bt%2B%5C%5C%5C%22'%20to%20graph%5C%5C%5C%22)%3Bvar%20a%3D%24tm.path.views%2B%5C%5C%5C%22%2F%5C%5C%5C%22%2Bt%3Bif(%24tw.wiki.getTiddler(a))%7Bi%3D%24tm.path.localHolders%2B%5C%5C%5C%22%2F%5C%5C%5C%22%2B_utils2.default.genUUID()%3Bthis.logger(%5C%5C%5C%22log%5C%5C%5C%22%2C'Created%20an%20independent%20temporary%20view%20holder%20%5C%5C%5C%22'%2Bi%2B'%5C%5C%5C%22')%3B_utils2.default.setText(i%2Ca)%3Bthis.logger(%5C%5C%5C%22log%5C%5C%5C%22%2C'View%20%5C%5C%5C%22'%2Ba%2B%5C%5C%5C%22'%20inserted%20into%20independend%20holder%5C%5C%5C%22)%7Delse%7Bthis.logger(%5C%5C%5C%22log%5C%5C%5C%22%2C'View%20%5C%5C%5C%22'%2Bt%2B'%5C%5C%5C%22%20does%20not%20exist')%7D%7Dif(!i)%7Bthis.logger(%5C%5C%5C%22log%5C%5C%5C%22%2C%5C%5C%5C%22Using%20default%20(global)%20view%20holder%5C%5C%5C%22)%3Bi%3D%24tm.ref.defaultViewHolder%7Dreturn%20i%7D%7D%2C%7Bkey%3A%5C%5C%5C%22setView%5C%5C%5C%22%2Cvalue%3Afunction%20e(t%2Ci)%7Bif(!_ViewAbstraction2.default.exists(t))%7Breturn%7Dt%3Dnew%20_ViewAbstraction2.default(t)%3Bvar%20a%3Dt.getLabel()%3Bi%3Di%7C%7Cthis.viewHolderRef%3Bthis.logger(%5C%5C%5C%22info%5C%5C%5C%22%2C'Inserting%20view%20%5C%5C%5C%22'%2Ba%2B'%5C%5C%5C%22%20into%20holder%20%5C%5C%5C%22'%2Bi%2B'%5C%5C%5C%22')%3B%24tw.wiki.addTiddler(new%20%24tw.Tiddler(%7Btitle%3Ai%2Ctext%3Aa%7D))%3Bthis.update(%7BchangedTiddlers%3A_defineProperty(%7B%7D%2Ci%2Ctrue)%7D)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22getView%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Bif(!t%26%26this.view)%7Breturn%20this.view%7Dvar%20i%3Dthis.getViewHolderRef()%3Bvar%20a%3D_utils2.default.getText(i)%3Bthis.logger(%5C%5C%5C%22debug%5C%5C%5C%22%2C%5C%5C%5C%22Retrieved%20view%20from%20holder%5C%5C%5C%22)%3Bvar%20s%3Dvoid%200%3Bif(_ViewAbstraction2.default.exists(a))%7Bs%3Dnew%20_ViewAbstraction2.default(a)%7Delse%7Bthis.logger(%5C%5C%5C%22debug%5C%5C%5C%22%2C'Warning%3A%20View%20%5C%5C%5C%22'%2Ba%2B%5C%5C%5C%22%5C%5C%5C%5C%5C%5C%5C%22%20doesn't%20exist.%20Default%20is%20used%20instead.%5C%5C%5C%22)%3Bs%3Dnew%20_ViewAbstraction2.default(%5C%5C%5C%22Default%5C%5C%5C%22)%7Dreturn%20s%7D%7D%2C%7Bkey%3A%5C%5C%5C%22reloadBackgroundImage%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Bvar%20i%3Dthis%3Bthis.backgroundImage%3Dnull%3Bvar%20a%3Dthis.view.getConfig(%5C%5C%5C%22background_image%5C%5C%5C%22)%3Bvar%20s%3D_utils2.default.getTiddler(a)%3Bif(!s%26%26!a)return%3Bvar%20r%3Dnew%20Image%3Br.onload%3Dfunction()%7Bi.backgroundImage%3Dr%3Bi.repaintGraph()%7D%3Bif(s)%7Bvar%20n%3Ds.fields%5B%5C%5C%5C%22_canonical_uri%5C%5C%5C%22%5D%3Bif(n)%7Br.src%3Dn%7Delse%20if(s.fields.text)%7Br.src%3D%24tw.utils.makeDataUri(s.fields.text%2Cs.fields.type)%7D%7Delse%20if(a)%7Br.src%3Da%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22repaintGraph%5C%5C%5C%22%2Cvalue%3Afunction%20e()%7Bvar%20t%3D%24tw.utils.hasClass(this.document.body%2C%5C%5C%5C%22tmap-has-fullscreen-widget%5C%5C%5C%22)%3Bif(this.network%26%26(!t%7C%7Ct%26%26this.enlargedMode))%7Bthis.logger(%5C%5C%5C%22info%5C%5C%5C%22%2C%5C%5C%5C%22Repainting%20the%20whole%20graph%5C%5C%5C%22)%3Bthis.network.redraw()%3Bthis.fitGraph(0%2C1e3)%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22setGraphButtonEnabled%5C%5C%5C%22%2Cvalue%3Afunction%20e(t%2Ci)%7Bvar%20a%3D%5C%5C%5C%22vis-button%20tmap-%5C%5C%5C%22%2Bt%3Bvar%20s%3D_utils2.default.getFirstElementByClassName(a%2Cthis.domNode)%3B%24tw.utils.toggleClass(s%2C%5C%5C%5C%22tmap-button-enabled%5C%5C%5C%22%2Ci)%7D%7D%2C%7Bkey%3A%5C%5C%5C%22setNodesMoveable%5C%5C%5C%22%2Cvalue%3Afunction%20e(t%2Ci)%7Bif(!t%7C%7C!t.length%7C%7Cthis.view.isEnabled(%5C%5C%5C%22physics_mode%5C%5C%5C%22))%7Breturn%7Dvar%20a%3D%5B%5D%3Bvar%20s%3D!i%3Bfor(var%20r%3Dt.length%3Br--%3B)%7Ba.push(%7Bid%3At%5Br%5D%2Cfixed%3A%7Bx%3As%2Cy%3As%7D%7D)%7Dthis.graphData.nodes.update(a)%3Bif(s)%7Bthis.logger(%5C%5C%5C%22debug%5C%5C%5C%22%2C%5C%5C%5C%22Fixing%5C%5C%5C%22%2Ca.length%2C%5C%5C%5C%22nodes%5C%5C%5C%22)%3Bthis.view.saveNodePositions(this.network.getPositions())%3Bthis.isPreventZoomOnNextUpdate%3Dtrue%7D%7D%7D%2C%7Bkey%3A%5C%5C%5C%22addGraphButtons%5C%5C%5C%22%2Cvalue%3Afunction%20e(t)%7Bvar%20i%3D_utils2.default.getFirstElementByClassName(%5C%5C%5C%22vis-navigation%5C%5C%5C%22%2Cthis.domNode)%3Bfor(var%20a%20in%20t)%7Bvar%20s%3Dthis.document.createElement(%5C%5C%5C%22div%5C%5C%5C%22)%3Bs.className%3D%5C%5C%5C%22vis-button%20tmap-%5C%5C%5C%22%2Ba%3Bs.addEventListener(%5C%5C%5C%22click%5C%5C%5C%22%2Ct%5Ba%5D.bind(this)%2Cfalse)%3Bi.appendChild(s)%3Bthis.setGraphButtonEnabled(a%2Ctrue)%7D%7D%7D%5D)%3Breturn%20t%7D(_widget.widget)%3Bexports.tmap%3DMapWidget%3Bexports.tiddlymap%3DMapWidget%3B%5C%5Cn%2F%2F%23%20sourceMappingURL%3D.%2Fmaps%2Ffelixhayashi%2Ftiddlymap%2Fjs%2Fwidget%2FMapWidget.js.map%5C%5Cn%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22type%5C%22%3A%20%5C%22application%2Fjavascript%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22module-type%5C%22%3A%20%5C%22widget%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Flicense%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Flicense%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22subtitle%5C%22%3A%20%5C%22License%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22caption%5C%22%3A%20%5C%22License%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%5Crules%20except%20wikilink%5C%5Cn%5C%5Cn!!%20TiddlyMap%5C%5Cn%5C%5CnCopyright%20(c)%202014%2C%20Felix%20K%C3%BCppers%5C%5CnAll%20rights%20reserved.%5C%5Cn%5C%5CnTiddlyMap%20is%20licensed%20under%20the%20%5B%5BBSD%202-Clause%20License%7Chttp%3A%2F%2Fopensource.org%2Flicenses%2FBSD-2-Clause%5D%5D.%20For%20the%20exact%20license%20terms%2C%20please%20visit%20%5B%5Bhttps%3A%2F%2Fgithub.com%2Ffelixhayashi%2FTW5-TiddlyMap%2Fblob%2Fmaster%2FLICENSE%5D%5D.%20%5C%5Cn%5C%5Cn!!%20TiddlyWiki%5C%5Cn%5C%5CnCreated%20by%20Jeremy%20Ruston%2C%20(jeremy%20%5Bat%5D%20jermolene%20%5Bdot%5D%20com)%5C%5Cn%5C%5CnCopyright%20%C2%A9%20Jeremy%20Ruston%202004-2007%20Copyright%20%C2%A9%20UnaMesa%20Association%202007-2014%5C%5Cn%5C%5CnPublished%20under%20the%20following%20%5Blicenses%5D(https%3A%2F%2Fgithub.com%2FJermolene%2FTiddlyWiki5%2Ftree%2Fmaster%2Flicenses)%3A%5C%5Cn%5C%5Cn%23%20BSD%203-clause%20%5C%5C%5C%22New%5C%5C%5C%22%20or%20%5C%5C%5C%22Revised%5C%5C%5C%22%20License%20(including%20any%20right%20to%20adopt%20any%20future%20version%20of%20a%20license%20if%20permitted)%5C%5Cn%23%20Creative%20Commons%20Attribution%203.0%20(including%20any%20right%20to%20adopt%20any%20future%20version%20of%20a%20license%20if%20permitted)%5C%5Cn%5C%5Cn!!%20Vis.js%5C%5Cn%5C%5CnCopyright%20(c)%202014%20%5BAlmende%20B.V.%5D(https%3A%2F%2Fgithub.com%2Falmende%2Fvis)%5C%5Cn%5C%5CnPublished%20under%20the%20following%20licenses%3A%5C%5Cn%5C%5Cn%23%20Apache%20License%20Version%202.0%2C%20January%202004%20http%3A%2F%2Fwww.apache.org%2Flicenses%2F%5C%5Cn%23%20MIT%20License%20(MIT)%5C%5Cn%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Freadme%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Freadme%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22*%20Please%20refer%20to%20the%20project-readme%20hosted%20at%20%5B%5Bhttps%3A%2F%2Fgithub.com%2Ffelixhayashi%2FTW5-TiddlyMap%5D%5D.%5C%5Cn*%20A%20demo%20with%20several%20examples%20and%20explanations%20can%20be%20found%20at%20%5B%5Bhttp%3A%2F%2Ftiddlymap.org%5D%5D.%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fgraph%2FedgeTypes%2Ftmap%3Aunknown%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fgraph%2FedgeTypes%2Ftmap%3Aunknown%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22description%5C%22%3A%20%5C%22Automatically%20assigned%20to%20an%20edge%20that%20does%20not%20have%20a%20type%20assigned%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22style%5C%22%3A%20%5C%22%7B%5C%5C%5C%22color%5C%5C%5C%22%3A%5C%5C%5C%22gray%5C%5C%5C%22%7D%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22show-label%5C%22%3A%20%5C%22false%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fgraph%2FedgeTypes%2Ftw-body%3Alink%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fgraph%2FedgeTypes%2Ftw-body%3Alink%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22description%5C%22%3A%20%5C%22A%20link%20that%20is%20contained%20in%20the%20tiddler's%20body%20pointing%20to%20another%20resource.%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22style%5C%22%3A%20%5C%22%7B%5C%5C%5C%22color%5C%5C%5C%22%3A%5C%5C%5C%22orange%5C%5C%5C%22%2C%20%5C%5C%5C%22dashes%5C%5C%5C%22%3Atrue%7D%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22label%5C%22%3A%20%5C%22links%20to%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fgraph%2FedgeTypes%2Ftw-list%3Alist%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fgraph%2FedgeTypes%2Ftw-list%3Alist%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22description%5C%22%3A%20%5C%22Contained%20in%20a%20list%20of%20this%20tiddler%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22style%5C%22%3A%20%5C%22%7B%20%5C%5C%5C%22color%5C%5C%5C%22%3A%20%5C%5C%5C%22red%5C%5C%5C%22%2C%20%5C%5C%5C%22dashes%5C%5C%5C%22%3Atrue%7D%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22label%5C%22%3A%20%5C%22listed%20in%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fgraph%2FedgeTypes%2Ftw-list%3Atags%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fgraph%2FedgeTypes%2Ftw-list%3Atags%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22description%5C%22%3A%20%5C%22A%20tag%20that%20refers%20to%20a%20tiddler%20of%20the%20same%20name.%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22style%5C%22%3A%20%5C%22%7B%20%5C%5C%5C%22color%5C%5C%5C%22%3A%20%5C%5C%5C%22darkslategray%5C%5C%5C%22%2C%20%5C%5C%5C%22dashes%5C%5C%5C%22%3Atrue%7D%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22label%5C%22%3A%20%5C%22tagged%20with%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FglobalConfig%2Fdefault%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FglobalConfig%2Fdefault%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22caption%5C%22%3A%20%5C%22Overview%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%5Crules%20except%20wikilink%5C%5Cn%5C%5Cn%3Cdiv%20class%3D%5C%5C%5C%22tmap-flash-message%20tmap-plain%5C%5C%5C%22%3E%5C%5Cn%20%20Please%20visit%20the%20%5B%5Bonline%20docs%7Chttp%3A%2F%2Ftiddlymap.org%2FDocumentation%5D%5D%5C%5Cn%20%20for%20more%20information%20about%20the%20available%20global%20options.%5C%5Cn%3C%2Fdiv%3E%5C%5Cn%3Ctable%20class%3D%5C%5C%5C%22tmap-key-value-table%5C%5C%5C%22%3E%5C%5Cn%20%20%3Ctr%3E%5C%5Cn%20%20%20%20%3Cth%20align%3D%5C%5C%5C%22left%5C%5C%5C%22%3EPlugin%20version%3C%2Fth%3E%5C%5Cn%20%20%20%20%3Ctd%3E%3C%3CpluginVersion%3E%3E%3C%2Ftd%3E%5C%5Cn%20%20%3C%2Ftr%3E%5C%5Cn%3C!--%5C%5Cn%20%20%3Ctr%3E%5C%5Cn%20%20%20%20%3Cth%20align%3D%5C%5C%5C%22left%5C%5C%5C%22%3EDatastructure%20version%3C%2Fth%3E%5C%5Cn%20%20%20%20%3Ctd%3E%3C%3CdataStructureVersion%3E%3E%3C%2Ftd%3E%5C%5Cn%20%20%3C%2Ftr%3E%5C%5Cn--%3E%5C%5Cn%20%20%3Ctr%3E%5C%5Cn%20%20%20%20%3Cth%20align%3D%5C%5C%5C%22left%5C%5C%5C%22%3ENodes%20in%20system%3C%2Fth%3E%5C%5Cn%20%20%20%20%3Ctd%3E%3C%3CnumberOfNodes%3E%3E%3C%2Ftd%3E%5C%5Cn%20%20%3C%2Ftr%3E%5C%5Cn%20%20%3Ctr%3E%5C%5Cn%20%20%20%20%3Cth%20align%3D%5C%5C%5C%22left%5C%5C%5C%22%3EEdges%20in%20system%3C%2Fth%3E%5C%5Cn%20%20%20%20%3Ctd%3E%3C%3CnumberOfEdges%3E%3E%3C%2Ftd%3E%5C%5Cn%20%20%3C%2Ftr%3E%5C%5Cn%3C%2Ftable%3E%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FglobalConfig%2Feditor%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FglobalConfig%2Feditor%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22caption%5C%22%3A%20%5C%22Editor%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%5Crules%20except%20wikilink%5C%5Cn%5C%5Cn%3Ctable%20class%3D%5C%5C%5C%22tmap-config-table%5C%5C%5C%22%3E%5C%5Cn%20%20%3C%3Ctmap-row%20type%3A%5C%5C%5C%22input-checkbox%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20title%3A%5C%5C%5C%22Show%20Neighbour%26shy%3Bhood%20menu%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20field%3A%5C%5C%5C%22config.sys.editorMenuBar.showNeighScopeButton%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20descr%3A%5C%5C%5C%22Show%20or%20hide%20the%20neighbourhood%20menu%20button.%5C%5C%5C%22%3E%3E%5C%5Cn%20%20%3C%3Ctmap-row%20type%3A%5C%5C%5C%22input-checkbox%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20title%3A%5C%5C%5C%22Show%20Screen%26shy%3Bshot%20menu%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20field%3A%5C%5C%5C%22config.sys.editorMenuBar.showScreenshotButton%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20descr%3A%5C%5C%5C%22Show%20or%20hide%20the%20screenshot%20menu%20button.%5C%5C%5C%22%3E%3E%5C%5Cn%20%20%3C%3Ctmap-row%20type%3A%5C%5C%5C%22input-checkbox%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20title%3A%5C%5C%5C%22Show%20Raster%26shy%3B%20menu%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20field%3A%5C%5C%5C%22config.sys.editorMenuBar.showRasterMenuButton%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20descr%3A%5C%5C%5C%22Show%20or%20hide%20the%20raster%20menu%20button.%5C%5C%5C%22%3E%3E%5C%5Cn%3C%2Ftable%3E%5C%5Cn%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FglobalConfig%2Ffields%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FglobalConfig%2Ffields%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22caption%5C%22%3A%20%5C%22Field%20settings%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%5Crules%20except%20wikilink%5C%5Cn%5C%5Cn%3Ctable%20class%3D%5C%5C%5C%22tmap-config-table%5C%5C%5C%22%3E%5C%5Cn%20%20%3C%3Ctmap-row%20type%3A%5C%5C%5C%22input-text%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20title%3A%5C%5C%5C%22Node-icon%20field%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20field%3A%5C%5C%5C%22config.sys.field.nodeIcon%5C%5C%5C%22%20%5C%5Cn%20%20%20%20%20%20descr%3A%5C%5C%5C%22Local%20image%20used%20as%20node%20image%20in%20the%20graphs.%5C%5C%5C%22%3E%3E%5C%5Cn%20%20%3C%3Ctmap-row%20type%3A%5C%5C%5C%22input-text%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20title%3A%5C%5C%5C%22Node-label%20field%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20field%3A%5C%5C%5C%22config.sys.field.nodeLabel%5C%5C%5C%22%20%5C%5Cn%20%20%20%20%20%20descr%3A%5C%5C%5C%22Alternative%20node%20label%20to%20use%20instead%20of%20the%20title.%5C%5C%5C%22%3E%3E%5C%5Cn%20%20%3C%3Ctmap-row%20type%3A%5C%5C%5C%22input-text%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20title%3A%5C%5C%5C%22Node-info%20field%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20field%3A%5C%5C%5C%22config.sys.field.nodeInfo%5C%5C%5C%22%20%5C%5Cn%20%20%20%20%20%20descr%3A%5C%5C%5C%22Field%20used%20as%20tooltip%20when%20hovering%20over%20a%20node%20in%20a%20graph.%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20note%3A%5C%5C%5C%22It%20is%20prohibited%20to%20use%20the%20text%20field%20here.%5C%5C%5C%22%3E%3E%5C%5Cn%3C%2Ftable%3E%20%20%20%5C%5Cn%5C%5Cn%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FglobalConfig%2Finteraction%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FglobalConfig%2Finteraction%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22caption%5C%22%3A%20%5C%22Interaction%20%26%20behaviour%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%5Crules%20except%20wikilink%5C%5Cn%5C%5Cn%3Ctable%20class%3D%5C%5C%5C%22tmap-config-table%5C%5C%5C%22%3E%5C%5Cn%20%20%3C%24macrocall%20type%3D%5C%5C%5C%22input-select%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%24name%3D%5C%5C%5C%22tmap-row%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20title%3D%5C%5C%5C%22Default%20startup%20view%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20field%3D%5C%5C%5C%22config.sys.defaultView%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20nochoice%3D%5C%5C%5C%22Last%20view%20used%20at%20startup%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20selectFilter%3D%3C%3Ctmap%20%5C%5C%5C%22option%5C%5C%5C%22%20%5C%5C%5C%22selector.allViewsByLabel%5C%5C%5C%22%3E%3E%5C%5Cn%20%20%20%20%20%20%20%20descr%3D%5C%5C%5C%22The%20view%20to%20display%20at%20startup%5C%5C%5C%22%20%2F%3E%5C%5Cn%20%20%3C%3Ctmap-row%20type%3A%5C%5C%5C%22input-checkbox%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20title%3A%5C%5C%5C%22Show%20popups%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20field%3A%5C%5C%5C%22config.sys.popups.enabled%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20descr%3A%5C%5C%5C%22Set%20this%20to%20true%20if%20you%20want%20to%20see%20automatic%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20popups%20in%20the%20map.%5C%5C%5C%22%3E%3E%5C%5Cn%20%20%3C%24list%20filter%3D%5C%5C%5C%22%5Bconfig.sys.popups.enabled%5Btrue%5D%5D%5C%5C%5C%22%3E%5C%5Cn%20%20%3C%3Ctmap-row%20type%3A%5C%5C%5C%22input-text%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20title%3A%5C%5C%5C%22Popup%20delay%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20field%3A%5C%5C%5C%22config.sys.popups.delay%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20descr%3A%5C%5C%5C%22The%20time%20in%20miliseconds%20that%20needs%20to%20pass%20after%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20a%20tooltip%20is%20triggered.%5C%5C%5C%22%3E%3E%5C%5Cn%20%20%3C%3Ctmap-row%20type%3A%5C%5C%5C%22input-text%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20title%3A%5C%5C%5C%22Popup%20width%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20field%3A%5C%5C%5C%22config.sys.popups.width%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20descr%3A%5C%5C%5C%22The%20default%20max-width%20of%20the%20popup.%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20note%3A%5C%5C%5C%22Make%20sure%20you%20added%20the%20desired%20unit%20(e.g.%20%60px%60).%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20Requires%20a%20wiki%20refresh.%5C%5C%5C%22%3E%3E%5C%5Cn%20%20%3C%3Ctmap-row%20type%3A%5C%5C%5C%22input-text%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20title%3A%5C%5C%5C%22Popup%20height%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20field%3A%5C%5C%5C%22config.sys.popups.height%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20descr%3A%5C%5C%5C%22The%20default%20max-height%20of%20the%20popup.%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20note%3A%5C%5C%5C%22Make%20sure%20you%20added%20desired%20the%20unit%20(e.g.%20%20%60px%60).%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20Requires%20a%20wiki%20refresh.%5C%5C%5C%22%3E%3E%5C%5Cn%20%20%3C%2F%24list%3E%5C%5Cn%20%20%3C%3Ctmap-row%20type%3A%5C%5C%5C%22input-checkbox%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20title%3A%5C%5C%5C%22Allow%20single%20click%20mode%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20field%3A%5C%5C%5C%22config.sys.singleClickMode%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20descr%3A%5C%5C%5C%22A%20single%20click%20on%20a%20node%20is%20sufficient%20to%20open%20the%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20corresponding%20tiddler.%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20note%3A%5C%5C%5C%22Drag%20and%20drop%20will%20still%20work%20and%20does%20not%20cause%20a%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20tiddler%20to%20be%20opened.%20Single%20click%20is%20never%20active%20in%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20the%20map%20editor.%5C%5C%5C%22%3E%3E%5C%5Cn%20%20%3C%3Ctmap-row%20type%3A%5C%5C%5C%22input-select%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20title%3A%5C%5C%5C%22Edge%20click%20behaviour%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20field%3A%5C%5C%5C%22config.sys.edgeClickBehaviour%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20selectFilter%3A%5C%5C%5C%22%5B%5Bnothing%7CNothing%5D%5D%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5B%5Bmanager%7COpen%20edge-type%20manager%5D%5D%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20descr%3A%5C%5C%5C%22What%20should%20happen%20when%20you%20click%20on%20an%20edge%3F%5C%5C%5C%22%3E%3E%5C%5Cn%20%20%3C%3Ctmap-row%20type%3A%5C%5C%5C%22input-select%5C%5C%5C%22%20title%3A%5C%5C%5C%22Raster%20size%5C%5C%5C%22%20field%3A%5C%5C%5C%22config.sys.raster%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20selectFilter%3A%5C%5C%5C%22%5B%5B%7Cdisabled%5D%5D%20%5B%5B5%7C5px%5D%5D%20%5B%5B10%7C10px%5D%5D%20%5B%5B15%7C15px%5D%5D%20%5B%5B20%7C20px%5D%5D%20%5B%5B30%7C30px%5D%5D%20%5B%5B40%7C40px%5D%5D%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20descr%3A%5C%5C%5C%22Snap%20nodes%20to%20an%20invisible%20raster%20of%20the%20given%20size%20after%20drag'n'drop.%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20note%3A%5C%5C%5C%22Only%20works%20when%20the%20view%20is%20not%20in%20floating%20mode%5C%5C%5C%22%3E%3E%5C%5Cn%20%20%3C%3Ctmap-row%20type%3A%5C%5C%5C%22input-checkbox%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20title%3A%5C%5C%5C%22Apply%20node-filter%20to%20neighbours%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20field%3A%5C%5C%5C%22config.sys.nodeFilterNeighbours%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20descr%3A%5C%5C%5C%22If%20checked%2C%20neighbours%20displayed%20in%20the%20map%20will%20be%20filtered%5C%5Cn%20%20%20%20%20%20by%20the%20view's%20node-filter.%20Otherwise%20the%20node-filter%20will%20only%20be%20used%5C%5Cn%20%20%20%20%20%20to%20filter%20the%20original%20set%20of%20nodes%20in%20the%20map%5C%5C%5C%22%3E%3E%5C%5Cn%3C%2Ftable%3E%5C%5Cn%5C%5Cn!!%20Suppressed%20dialogs%5C%5Cn%5C%5Cn%3Cdiv%20class%3D%5C%5C%5C%22tmap-flash-message%20tmap-plain%5C%5C%5C%22%3E%5C%5Cn%20%20Dialogs%20that%20you%20decided%20to%20suppress%20in%20the%20past%20are%20listed%20here.%5C%5Cn%20%20Remove%20the%20checkmark%20to%20enable%20dialogs%20again.%5C%5Cn%3C%2Fdiv%3E%5C%5Cn%5C%5Cn%3Ctable%20class%3D%5C%5C%5C%22tmap-config-table%5C%5C%5C%22%3E%5C%5Cn%20%20%3C%24list%5C%5Cn%20%20%20%20%20%20filter%3D%5C%5C%5C%22%5B%3Coutput%3Efields%5B%5Dprefix%5Bconfig.sys.suppressedDialogs%5D%5D%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20emptyMessage%3D%5C%5C%5C%22%E2%80%93%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%20%20%3C%24set%20name%3D%5C%5C%5C%22dialogName%5C%5C%5C%22%20value%3D%3C%3Ctmap%20basename%20%5C%5C%5C%22.%5C%5C%5C%22%3E%3E%3E%5C%5Cn%20%20%20%20%20%20%3C%24macrocall%20%24name%3D%5C%5C%5C%22tmap-row%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20type%3D%5C%5C%5C%22input-checkbox%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20title%3D%5C%5C%5C%22Suppress%20'%24(dialogName)%24'%20dialog%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20field%3D%3C%3CcurrentTiddler%3E%3E%20%2F%3E%5C%5Cn%20%20%20%20%20%20%3C%2F%24set%3E%5C%5Cn%20%20%20%20%3Cbr%20%2F%3E%5C%5Cn%20%20%3C%2F%24list%3E%5C%5Cn%3C%2Ftable%3E%5C%5Cn%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FglobalConfig%2FliveTab%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FglobalConfig%2FliveTab%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22caption%5C%22%3A%20%5C%22Live%20tab%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%5Crules%20except%20wikilink%5C%5Cn%5C%5Cn%3Ctable%20class%3D%5C%5C%5C%22tmap-config-table%5C%5C%5C%22%3E%5C%5Cn%20%20%3C%3Ctmap-row%20type%3A%5C%5C%5C%22input-checkbox%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20title%3A%5C%5C%5C%22Show%20Live%20tab%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20field%3A%5C%5C%5C%22liveTab%5C%5C%5C%22%20%5C%5Cn%20%20%20%20%20%20descr%3A%5C%5C%5C%22Show%20or%20hide%20the%20live%20tab%20in%20the%20sidebar.%5C%5C%5C%22%3E%3E%5C%5Cn%20%20%3C%24macrocall%20type%3D%5C%5C%5C%22input-select%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%24name%3D%5C%5C%5C%22tmap-row%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20title%3D%5C%5C%5C%22Fallback%20view%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20field%3D%5C%5C%5C%22config.sys.liveTab.fallbackView%5C%5C%5C%22%20%5C%5Cn%20%20%20%20%20%20selectFilter%3D%3C%3Ctmap%20%5C%5C%5C%22option%5C%5C%5C%22%20%5C%5C%5C%22selector.allViewsByLabel%5C%5C%5C%22%3E%3E%5C%5Cn%20%20%20%20%20%20descr%3D%5C%5C%5C%22The%20view%20to%20display%20in%20the%20sidebar's%20live%20tab%20in%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20case%20the%20current%20tiddler%20did%20not%20specify%20a%20view%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20to%20open.%5C%5C%5C%22%20%2F%3E%5C%5Cn%3C%2Ftable%3E%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FglobalConfig%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FglobalConfig%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22subtitle%5C%22%3A%20%5C%22%7B%7B%24%3A%2Fcore%2Fimages%2Foptions-button%7D%7D%20Global%20configuration%20of%20TiddlyMap%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22classes%5C%22%3A%20%5C%22tmap-remove-top-space%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%5Crules%20except%20wikilink%5C%5Cn%5C%5Cn%3C%24macrocall%20%24name%3D%5C%5C%5C%22tabs%5C%5C%5C%22%5C%5Cn%20%20default%3D%3C%3Cconcat%20%5C%5C%5C%22%24(template)%24%2Fdefault%5C%5C%5C%22%3E%3E%5C%5Cn%20%20tabsList%3D%5C%5C%5C%22%5Ball%5Bshadows%5Dprefix%3Ctemplate%3E%5D%20-%5B%3Ctemplate%3E%5D%5C%5C%5C%22%5C%5Cn%2F%3E%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FglobalConfig%2Fverbosity%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FglobalConfig%2Fverbosity%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22caption%5C%22%3A%20%5C%22Verbosity%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%5Crules%20except%20wikilink%5C%5Cn%5C%5Cn%3Cdiv%20class%3D%5C%5C%5C%22tmap-flash-message%20tmap-plain%5C%5C%5C%22%3E%5C%5Cn%20%20Here%20you%20can%20restrict%20the%20system's%20talkativeness.%5C%5Cn%3C%2Fdiv%3E%5C%5Cn%5C%5Cn%3Ctable%20class%3D%5C%5C%5C%22tmap-config-table%5C%5C%5C%22%3E%5C%5Cn%20%20%3C%3Ctmap-row%20type%3A%5C%5C%5C%22input-checkbox%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20title%3A%5C%5C%5C%22Debug%20output%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20field%3A%5C%5C%5C%22config.sys.debug%5C%5C%5C%22%20%5C%5Cn%20%20%20%20%20%20descr%3A%5C%5C%5C%22Set%20this%20to%20true%20if%20you%20want%20debug%20information%20to%20be%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20displayed%20in%20the%20browser%20console.%5C%5C%5C%22%3E%3E%5C%5Cn%20%20%3C%3Ctmap-row%20type%3A%5C%5C%5C%22input-checkbox%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20title%3A%5C%5C%5C%22Show%20notifications%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20field%3A%5C%5C%5C%22config.sys.notifications%5C%5C%5C%22%20%5C%5Cn%20%20%20%20%20%20descr%3A%5C%5C%5C%22Set%20this%20to%20true%20if%20you%20want%20to%20receive%20fade-out%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20notifications%20for%20important%20events.%5C%5C%5C%22%3E%3E%5C%5Cn%3C%2Ftable%3E%20%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FglobalConfig%2Fvis%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FglobalConfig%2Fvis%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22classes%5C%22%3A%20%5C%22tmap-remove-top-space%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22caption%5C%22%3A%20%5C%22Graph%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%5Crules%20except%20wikilink%5C%5Cn%5C%5Cn%3Cdiv%20class%3D%5C%5C%5C%22tmap-flash-message%20tmap-info%5C%5C%5C%22%3E%5C%5Cn%20%20The%20global%20vis%20configurations%20will%20affect%20all%20views%20and%20their%5C%5Cn%20%20elements%20(nodes%20and%20edges)%20unless%20they%20are%20overridden%20on%20a%20lower%5C%5Cn%20%20level.%20All%20options%20below%20are%20documented%20at%5C%5Cn%20%20%5B%5Bvis.js.org%7Chttp%3A%2F%2Fvisjs.org%2Fdocs%2Fnetwork%5D%5D.%5C%5Cn%3C%2Fdiv%3E%5C%5Cn%3Cdiv%20class%3D%5C%5C%5C%22tmap-flash-message%20tmap-info%5C%5C%5C%22%3E%5C%5Cn%20%20Only%20config%20items%20that%20you%20actually%20changed%20have%20an%20effect%20on%5C%5Cn%20%20the%20graph.%20Other%20options%20are%20visible%2C%20yet%2C%20inactive.%5C%5Cn%3C%2Fdiv%3E%5C%5Cn%3C%24tmap-config%5C%5Cn%20%20%20%20mode%3D%5C%5C%5C%22manage-config%5C%5C%5C%22%5C%5Cn%20%20%20%20inherited%3D%5C%5C%5C%22inherited-style%5C%5C%5C%22%5C%5Cn%20%20%20%20extension%3D%5C%5C%5C%22config.vis%5C%5C%5C%22%20%2F%3E%5C%5Cn%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FconfigureView%2Fdefault%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FconfigureView%2Fdefault%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22caption%5C%22%3A%20%5C%22Overview%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%5Crules%20except%20wikilink%5C%5Cn%5C%5Cn%3Cdiv%20class%3D%5C%5C%5C%22tmap-flash-message%20tmap-info%5C%5C%5C%22%3E%5C%5Cn%20%20%20All%20configurations%20__only__%20affect%20this%20view.%5C%5Cn%3C%2Fdiv%3E%5C%5Cn%5C%5Cn%3Ctable%20class%3D%5C%5C%5C%22tmap-key-value-table%5C%5C%5C%22%3E%5C%5Cn%20%20%3Ctr%3E%5C%5Cn%20%20%20%20%3Cth%20align%3D%5C%5C%5C%22left%5C%5C%5C%22%3ECreated%20on%3C%2Fth%3E%5C%5Cn%20%20%20%20%3Ctd%3E%3C%3CcreatedOn%3E%3E%3C%2Ftd%3E%5C%5Cn%20%20%3C%2Ftr%3E%5C%5Cn%20%20%3Ctr%3E%5C%5Cn%20%20%20%20%3Cth%20align%3D%5C%5C%5C%22left%5C%5C%5C%22%3ENodes%20contained%20in%20graph%3C%2Fth%3E%5C%5Cn%20%20%20%20%3Ctd%3E%3C%3CnumberOfNodes%3E%3E%3C%2Ftd%3E%5C%5Cn%20%20%3C%2Ftr%3E%5C%5Cn%20%20%3Ctr%3E%5C%5Cn%20%20%20%20%3Cth%20align%3D%5C%5C%5C%22left%5C%5C%5C%22%3EEdges%20contained%20in%20graph%3C%2Fth%3E%5C%5Cn%20%20%20%20%3Ctd%3E%3C%3CnumberOfEdges%3E%3E%3C%2Ftd%3E%5C%5Cn%20%20%3C%2Ftr%3E%5C%5Cn%3C%2Ftable%3E%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FconfigureView%2FeditFilters%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FconfigureView%2FeditFilters%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22caption%5C%22%3A%20%5C%22Edit%20filters%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%5Crules%20except%20wikilink%5C%5Cn%5C%5Cn%3Cdiv%20class%3D%5C%5C%5C%22tmap-flash-message%20tmap-info%5C%5C%5C%22%3E%5C%5Cn%20%20Completely%20new%20to%20filters%3F%20Please%20read%5C%5Cn%20%20%5B%5BIntroduction%20to%20filter%20notation%7Chttp%3A%2F%2Ftiddlywiki.com%2F%23Introduction%2520to%2520filter%2520notation%5D%5D%5C%5Cn%20%20first.%5C%5Cn%3C%2Fdiv%3E%5C%5Cn%5C%5Cn%3Cfieldset%3E%5C%5Cn%20%20%3Clegend%3EFilters%20%3Csup%3E%5B1%5D%3C%2Fsup%3E%3C%2Flegend%3E%5C%5Cn%20%20%3Ctable%20class%3D%5C%5C%5C%22tmap-config-table%20tmap-large-input%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%3C%3Ctmap-row%20type%3A%5C%5C%5C%22input-textarea%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20title%3A%5C%5C%5C%22Node%20filter%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20field%3A%5C%5C%5C%22filter.prettyNodeFltr%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20descr%3A%5C%5C%5C%22In%20the%20map%2C%20only%20those%20tiddlers%20that%20match%20this%20filter%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20are%20shown.%20Drafts%20and%20system%20tiddlers%20are%20automatically%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20excluded.%5C%5C%5C%22%3E%3E%5C%5Cn%20%20%20%20%3C%3Ctmap-row%20type%3A%5C%5C%5C%22input-textarea%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20title%3A%5C%5C%5C%22Edge-type%20filter%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20field%3A%5C%5C%5C%22filter.prettyEdgeFltr%5C%5C%5C%22%20%5C%5Cn%20%20%20%20%20%20%20%20descr%3A%5C%5C%5C%22Only%20edges%20with%20a%20type%20that%20matches%20the%20filter%20are%20shown.%5C%5C%5C%22%3E%3E%5C%5Cn%20%20%3C%2Ftable%3E%20%20%20%5C%5Cn%3C%2Ffieldset%3E%5C%5Cn%5C%5Cn---%5C%5Cn%5C%5Cn%3Csup%3E%5B1%5D%3C%2Fsup%3E%20In%20the%20editors%20above%2C%20a%20new%20line%20is%20equivalent%20to%20a%20space%20symbol.%3Cbr%20%2F%3E%5C%5Cn%3Csup%3E%5B2%5D%3C%2Fsup%3E%20It%20is%20suggested%20to%20read%5C%5Cn%5B%5BNode%20and%20edge-type%20filters%7Chttp%3A%2F%2Ftiddlymap.org%23Node%2520and%2520edge-type%2520filters%5D%5D%5C%5Cnand%20%5B%5BEdge-type%20namespaces%7Chttp%3A%2F%2Ftiddlymap.org%23Node%2520and%2520edge-type%2520filters%5D%5D%5C%5Cnbefore%20using%20Tiddlymap's%20filter%20editor.%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FconfigureView%2Flayout%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FconfigureView%2Flayout%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22caption%5C%22%3A%20%5C%22Layout%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%5Crules%20except%20wikilink%5C%5Cn%5C%5Cn%3Ctable%20class%3D%5C%5C%5C%22tmap-config-table%5C%5C%5C%22%3E%5C%5Cn%20%20%3C%3Ctmap-row%20type%3A%5C%5C%5C%22input-checkbox%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20title%3A%5C%5C%5C%22Floating%20nodes%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20field%3A%5C%5C%5C%22config.physics_mode%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20descr%3A%5C%5C%5C%22Set%20this%20to%20true%20if%20you%20want%20your%20nodes%20to%20freely%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20swirl%20around.%5C%5C%5C%22%3E%3E%5C%5Cn%20%20%3C%3Ctmap-row%20type%3A%5C%5C%5C%22input-checkbox%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20title%3A%5C%5C%5C%22Filter%20nodes%20by%20edge%20types%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20field%3A%5C%5C%5C%22config.filter_nodes_by_edge_types%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20descr%3A%5C%5C%5C%22Only%20display%20nodes%20having%20edges%20matching%20the%20edge-type%20filter.%5C%5C%5C%22%3E%3E%5C%5Cn%20%20%3C%3Ctmap-row%20type%3A%5C%5C%5C%22input-text%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20title%3A%5C%5C%5C%22Background%20image%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20field%3A%5C%5C%5C%22config.background_image%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20descr%3A%5C%5C%5C%22The%20title%20of%20an%20image%20tiddler%20to%20be%20used%20as%20background%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20in%20the%20view.%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20note%3A%5C%5C%5C%22You%20can%20also%20use%20an%20image%20url%20directly%2C%20however%2C%20the%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20image%20needs%20be%20stored%20under%20the%20same%20domain%20as%20your%20wiki.%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20Otherwise%2C%20it%20won't%20be%20displayed!%5C%5C%5C%22%3E%3E%5C%5Cn%3C%2Ftable%3E%5C%5Cn%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FconfigureView%2Fnamespace%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FconfigureView%2Fnamespace%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22caption%5C%22%3A%20%5C%22Namespace%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%5Crules%20except%20wikilink%5C%5Cn%5C%5Cn%3Ctable%20class%3D%5C%5C%5C%22tmap-config-table%20tmap-small-input%5C%5C%5C%22%3E%5C%5Cn%20%20%3C%3Ctmap-row%20type%3A%5C%5C%5C%22input-text%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20title%3A%5C%5C%5C%22Edge-type%20namespace%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20field%3A%5C%5C%5C%22config.edge_type_namespace%5C%5C%5C%22%20%5C%5Cn%20%20%20%20%20%20descr%3A%5C%5C%5C%22A%20namespace%20(like%20%60foaf%60%20in%20%60foaf%3Aknows%60)%20that%20will%20be%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20automatically%20added%20to%20all%20edge%20types%20you%20create%20in%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20this%20view.%20The%20namespace%20is%20only%20added%20if%20the%20types%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20do%20not%20exist%20yet%20and%20do%20not%20have%20a%20namespace%20assigned%20yet.%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20Namespaces%20are%20always%20hidden%20in%20the%20graph.%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20note%3A%5C%5C%5C%22Most%20likely%2C%20you%20don't%20want%20the%20edges%20created%20with%20this%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20namespace%20to%20leak%20into%20other%20views%2C%20moreover%2C%20you%20don't%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20want%20edges%20that%20do%20not%20possess%20the%20namespace%20ever%20to%20be%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20shown%20here.%20In%20this%20case%2C%20use%20a%20private%20marker%20(%60_%60)%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20in%20front%20of%20your%20namespace%2C%20e.g.%20%60_mynamespace%60%20and%20use%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20an%20appropriate%20edge%20type%20filter%2C%20i.e.%20%60%2B%5Bprefix%5B_mynamespace%5D%5D%60%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20For%20further%20information%20see%3A%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20*%20%5B%5BEdge-type%20namespaces%7Chttp%3A%2F%2Ftiddlymap.org%2F%23Edge-type%2520namespaces%5D%5D%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20*%20%5B%5BPrivate%20edge%20types%7Chttp%3A%2F%2Ftiddlymap.org%2F%23Private%2520edge%2520types%5D%5D%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%5C%5C%22%3E%3E%5C%5Cn%3C%2Ftable%3E%5C%5Cn%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FconfigureView%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FconfigureView%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22subtitle%5C%22%3A%20%5C%22%7B%7B%24%3A%2Fcore%2Fimages%2Foptions-button%7D%7D%20View%20configuration%20--%20%3C%3Cview%3E%3E%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%5Crules%20except%20wikilink%5C%5Cn%5C%5Cn%5C%5C%5C%5Cdefine%20privateEdgeTypes()%20%5B%5Bprivate%20edge-types%7Chttp%3A%2F%2Ftiddlymap.org%2F%23Private%2520edge%2520types%5D%5D%5C%5Cn%5C%5Cn%3C%24macrocall%20%24name%3D%5C%5C%5C%22tabs%5C%5C%5C%22%5C%5Cn%20%20default%3D%3C%3Cconcat%20%5C%5C%5C%22%24(template)%24%2Fdefault%5C%5C%5C%22%3E%3E%5C%5Cn%20%20tabsList%3D%5C%5C%5C%22%5Ball%5Bshadows%5Dprefix%3Ctemplate%3E%5D%20-%5B%3Ctemplate%3E%5D%5C%5C%5C%22%5C%5Cn%2F%3E%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FconfigureView%2Fvis%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FconfigureView%2Fvis%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22caption%5C%22%3A%20%5C%22Graph%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%5Crules%20except%20wikilink%5C%5Cn%5C%5Cn%3Cdiv%20class%3D%5C%5C%5C%22tmap-flash-message%20tmap-info%5C%5C%5C%22%3E%5C%5Cn%20%20%20The%20local%20vis%20configurations%20will%20affect%20all%5C%5Cn%20%20%20elements%20(nodes%20and%20edges)%20of%20this%20view%2C%20unless%20they%20are%5C%5Cn%20%20%20overridden%20on%20a%20lower%20level.%20All%20options%20below%20are%20documented%20at%5C%5Cn%20%20%20%5B%5Bvis.js.org%7Chttp%3A%2F%2Fvisjs.org%2Fdocs%2Fnetwork%5D%5D.%5C%5Cn%3C%2Fdiv%3E%5C%5Cn%3Cdiv%20class%3D%5C%5C%5C%22tmap-flash-message%20tmap-info%5C%5C%5C%22%3E%5C%5Cn%20%20Only%20config%20items%20that%20you%20actually%20changed%20have%20an%20effect%20on%20the%5C%5Cn%20%20graph.%20Other%20options%20are%20visible%2C%20yet%2C%20inactive.%5C%5Cn%3C%2Fdiv%3E%5C%5Cn%3C%24tmap-config%5C%5Cn%20%20%20%20mode%3D%5C%5C%5C%22manage-config%5C%5C%5C%22%5C%5Cn%20%20%20%20inherited%3D%5C%5C%5C%22inherited-style%5C%5C%5C%22%5C%5Cn%20%20%20%20extension%3D%5C%5C%5C%22config.vis%5C%5C%5C%22%20%2F%3E%5C%5Cn%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FgetEdgeType%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FgetEdgeType%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22subtitle%5C%22%3A%20%5C%22%7B%7B%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Ficon%7D%7D%20Edge%20type%20specification%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%5Crules%20except%20wikilink%5C%5Cn%5C%5C%5C%5Crules%20except%20underscore%5C%5Cn%5C%5Cn%5C%5C%5C%5Cdefine%20filter()%20%24(allEdgeTypes)%24%20%2B%5Bsearch%3Atitle%5B%24(term)%24%5D%5D%5C%5Cn%5C%5Cn%5C%5C%5C%5Cdefine%20badge(color%2C%20label%2C%20tooltip)%5C%5Cn%3Cspan%20style%3D%5C%5C%5C%22background%3A%20%24color%24%5C%5C%5C%22%20title%3D%5C%5C%5C%22%24tooltip%24%5C%5C%5C%22%3E%24label%24%3C%2Fspan%3E%5C%5Cn%5C%5C%5C%5Cend%5C%5Cn%5C%5Cn%5C%5C%5C%5Cdefine%20badges()%5C%5Cn%3C%24tiddler%20tiddler%3D%7B%7B!!text%7D%7D%3E%5C%5Cn%3C%24set%20name%3D%5C%5C%5C%22id%5C%5C%5C%22%20value%3D%3C%3Ctmap%20%5C%5C%5C%22getETyId%5C%5C%5C%22%20%5C%5C%5C%22%24(view)%24%5C%5C%5C%22%3E%3E%3E%5C%5Cn%3C%24set%20name%3D%5C%5C%5C%22isVisible%5C%5C%5C%22%20value%3D%3C%3Ctmap%20%5C%5C%5C%22isETyVisible%5C%5C%5C%22%20%5C%5C%5C%22%24(view)%24%5C%5C%5C%22%3E%3E%3E%5C%5Cn%3Cdiv%20class%3D%5C%5C%5C%22tmap-badges%5C%5C%5C%22%3E%5C%5Cn%20%20%3Cspan%5C%5Cn%20%20%20%20%20%20style%3D%5C%5C%5C%22background%3A%20darkslategray%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20title%3D%5C%5C%5C%22Your%20input%20translates%20into%20this%20id.%5C%5C%5C%22%3E%5C%5Cn%20%20%3C%3Cid%3E%3E%5C%5Cn%20%20%3C%2Fspan%3E%5C%5Cn%20%20%3C%24list%20filter%3D%5C%5C%5C%22%5B%3CisVisible%3Eregexp%5Btrue%5D%5D%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%3C%3Cbadge%20%5C%5C%5C%22green%5C%5C%5C%22%20%5C%5C%5C%22visible%5C%5C%5C%22%20%5C%5C%5C%22Matches%20your%20view's%20filter%5C%5C%5C%22%3E%3E%5C%5Cn%20%20%3C%2F%24list%3E%5C%5Cn%20%20%3C%24list%20filter%3D%5C%5C%5C%22%5B%3CisVisible%3Eregexp%5Bfalse%5D%5D%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%3C%3Cbadge%20%5C%5C%5C%22red%5C%5C%5C%22%20%5C%5C%5C%22not%20visible%5C%5C%5C%22%20%5C%5C%5C%22Doesn't%20match%20your%20view's%20filter%5C%5C%5C%22%3E%3E%5C%5Cn%20%20%3C%2F%24list%3E%5C%5Cn%20%20%3C%24list%20filter%3D%5C%5C%5C%22%5B%3Cid%3E!regexp%5B%5Etmap%3Aunknown%24%5D%5D%5C%5C%5C%22%20variable%3D%5C%5C%5C%22item%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%3C%24list%20filter%3D%5C%5C%5C%22%5B%3Cid%3Eregexp%5B%5E_%5D%5D%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%20%20%3C%3Cbadge%20%5C%5C%5C%22purple%5C%5C%5C%22%20%5C%5C%5C%22private%5C%5C%5C%22%20%5C%5C%5C%22Not%20shown%20in%20other%20views%20per%20default%5C%5C%5C%22%3E%3E%5C%5Cn%20%20%20%20%3C%2F%24list%3E%5C%5Cn%20%20%20%20%3C%24list%20filter%3D%5C%5C%5C%22%5B%3Cid%3Eregexp%5B.%2B%3A.%2B%5D%5D%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%20%20%3C%3Cbadge%20%5C%5C%5C%22orange%5C%5C%5C%22%20%5C%5C%5C%22namespace%5C%5C%5C%22%20%5C%5C%5C%22This%20type%20is%20prefixed%20with%20a%20proper%20namespace%5C%5C%5C%22%3E%3E%5C%5Cn%20%20%20%20%3C%2F%24list%3E%5C%5Cn%20%20%3C%2F%24list%3E%5C%5Cn%3C%2Fdiv%3E%5C%5Cn%3C%2F%24set%3E%5C%5Cn%3C%2F%24set%3E%5C%5Cn%3C%2F%24tiddler%3E%5C%5Cn%5C%5C%5C%5Cend%5C%5Cn%5C%5Cn%5C%5C%5C%5Cdefine%20search()%5C%5Cn%3Cp%3E%5C%5Cn%20%20You%20are%20about%20to%20connect%20%5C%5C%5C%22%3C%24text%20text%3D%5C%5C%5C%22%24(fromLabel)%24%5C%5C%5C%22%20%2F%3E%5C%5C%5C%22%5C%5Cn%20%20with%20%5C%5C%5C%22%3C%24text%20text%3D%5C%5C%5C%22%24(toLabel)%24%5C%5C%5C%22%20%2F%3E%5C%5C%5C%22.%20Please%20specify%20a%20type.%5C%5Cn%3C%2Fp%3E%5C%5Cn%3Ctable%20id%3D%5C%5C%5C%22tmap-search-table%5C%5C%5C%22%3E%5C%5Cn%20%20%3Ctr%3E%5C%5Cn%20%20%20%20%3Ctd%3E%3Cb%3EType%3A%3C%2Fb%3E%3C%2Ftd%3E%5C%5Cn%20%20%20%20%3Ctd%3E%5C%5Cn%20%20%20%20%20%20%3C%24edit-text%5C%5Cn%20%20%20%20%20%20%20%20%20%20focus%3D%5C%5C%5C%22true%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20field%3D%5C%5C%5C%22text%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20type%3D%5C%5C%5C%22text%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20tag%3D%5C%5C%5C%22input%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20default%3D%5C%5C%5C%22%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20class%3D%5C%5C%5C%22tmap-trigger-field%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20tmap-triggers-ok-button-on-enter%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20tmap-triggers-cancel-button-on-esc%5C%5C%5C%22%20%2F%3E%5C%5Cn%20%20%20%20%20%20%3C%3Cbadges%3E%3E%5C%5Cn%20%20%20%20%3C%2Ftd%3E%5C%5Cn%20%20%3C%2Ftr%3E%5C%5Cn%20%20%3Ctr%3E%5C%5Cn%20%20%20%20%3Ctd%3E%3C%2Ftd%3E%5C%5Cn%20%20%20%20%3Ctd%3E%5C%5Cn%20%20%20%20%20%20%3C%24set%20name%3D%5C%5C%5C%22term%5C%5C%5C%22%20value%3D%7B%7B!!text%7D%7D%3E%5C%5Cn%20%20%20%20%20%20%3C%24set%20name%3D%5C%5C%5C%22allEdgeTypes%5C%5C%5C%22%20value%3D%3C%3Ctmap%20%5C%5C%5C%22option%5C%5C%5C%22%20%5C%5C%5C%22selector.allEdgeTypesById%5C%5C%5C%22%3E%3E%3E%5C%5Cn%20%20%20%20%20%20%3Cul%20class%3D%5C%5C%5C%22tmap-small-list%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%20%20%20%20%3C%24list%20filter%3D%3C%3Cfilter%3E%3E%3E%5C%5Cn%20%20%20%20%20%20%20%20%3Cli%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%3C%24button%20class%3D%5C%5C%5C%22tc-btn-invisible%20tmap-link%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%3C%24view%20field%3D%5C%5C%5C%22title%5C%5C%5C%22%20%2F%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%3C%24action-setfield%20%24tiddler%3D%3C%3Coutput%3E%3E%20text%3D%7B%7B!!title%7D%7D%20%2F%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%3C%2F%24button%3E%5C%5Cn%20%20%20%20%20%20%20%20%3C%2Fli%3E%5C%5Cn%20%20%20%20%20%20%20%20%3C%2F%24list%3E%5C%5Cn%20%20%20%20%20%20%3C%2Ful%3E%5C%5Cn%20%20%20%20%20%20%3C%2F%24set%3E%5C%5Cn%20%20%20%20%20%20%3C%2F%24set%3E%5C%5Cn%20%20%20%20%3C%2Ftd%3E%5C%5Cn%20%20%3C%2Ftr%3E%5C%5Cn%3C%2Ftable%3E%5C%5Cn%5C%5C%5C%5Cend%5C%5Cn%5C%5Cn%3C%24list%20filter%3D%5C%5C%5C%22%5B%3Ctemp%3E!has%5Bmore%5D%5D%5C%5C%5C%22%20variable%3D%5C%5C%5C%22item%5C%5C%5C%22%3E%3C%3Csearch%3E%3E%3C%2F%24list%3E%5C%5Cn%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FaddNodeToMap%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FaddNodeToMap%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22subtitle%5C%22%3A%20%5C%22%7B%7B%24%3A%2Fcore%2Fimages%2Ftag-button%7D%7D%20Add%20node%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22classes%5C%22%3A%20%5C%22tmap-modal-add-node%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%5Crules%20except%20wikilink%5C%5Cn%5C%5Cn%5C%5C%5C%5Cdefine%20backButtonText()%20back%20to%20list%5C%5Cn%5C%5C%5C%5Cdefine%20outputAndTemplate()%20%5B%5B%24(output)%24%5D%5D%20%5B%5B%24(template)%24%5D%5D%5C%5Cn%5C%5Cn%5C%5C%5C%5Cdefine%20editor()%5C%5Cn%20%20%3C%24button%20class%3D%5C%5C%5C%22tmap-go-back%20tc-btn-invisible%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%7B%7B%24%3A%2Fcore%2Fimages%2Fchevron-left%7D%7D%20%3C%3CbackButtonText%3E%3E%5C%5Cn%20%20%20%20%3C%24action-deletefield%20%24tiddler%3D%3C%3Ctemp%3E%3E%20more%20template%20%2F%3E%5C%5Cn%20%20%20%20%3C%24action-sendmessage%5C%5Cn%20%20%20%20%20%20%20%20%24message%3D%5C%5C%5C%22tmap%3Atm-clear-tiddler%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20keep%3D%5C%5C%5C%22draft.title%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20title%3D%3C%3Coutput%3E%3E%20%2F%3E%5C%5Cn%20%20%3C%2F%24button%3E%5C%5Cn%5C%5Cn%20%20%3C%24list%20filter%3D%5C%5C%5C%22%5B%3Coutput%3Eget%5Bdraft.title%5Dis%5Btiddler%5D%5D%5C%5C%5C%22%3E%5C%5Cn%20%20%3Cdiv%20class%3D%5C%5C%5C%22tmap-flash-message%20tmap-warning%5C%5C%5C%22%3E%5C%5Cn%20%20%20Tiddler%20already%20exists!%20Use%20another%20title%20or%20click%5C%5Cn%20%20%20%5C%5C%5C%22%3C%3CbackButtonText%3E%3E%5C%5C%5C%22%20to%20cancel%20your%20edit.%5C%5Cn%20%20%3C%2Fdiv%3E%5C%5Cn%20%20%3C%2F%24list%3E%5C%5Cn%5C%5Cn%20%20%3Cdiv%20class%3D%5C%5C%5C%22tmap-modal-editor%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%3Ctable%20class%3D%5C%5C%5C%22tmap-config-table%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%20%20%3Ctr%20class%3D%5C%5C%5C%22tmap-template-select%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%20%20%20%20%3Ctd%3ETemplate%3C%2Ftd%3E%5C%5Cn%20%20%20%20%20%20%20%20%3Ctd%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%3C%24select%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20tiddler%3D%3C%3Ctemp%3E%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20field%3D%5C%5C%5C%22template%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%3Coption%20value%3D%5C%5C%5C%22%5C%5C%5C%22%3E%3C%2Foption%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%3C%24list%20filter%3D%3C%3Ctmap%20%5C%5C%5C%22option%5C%5C%5C%22%20%5C%5C%5C%22selector.allPotentialNodes%5C%5C%5C%22%3E%3E%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%3Coption%3E%3C%24view%20field%3D%5C%5C%5C%22title%5C%5C%5C%22%20%2F%3E%3C%2Foption%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%3C%2F%24list%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%3C%2F%24select%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%3C%24button%3ELoad%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%3C%24action-sendmessage%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24message%3D%5C%5C%5C%22tmap%3Atm-clear-tiddler%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20keep%3D%5C%5C%5C%22draft.title%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20title%3D%3C%3Coutput%3E%3E%20%2F%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%3C%24list%20filter%3D%5C%5C%5C%22%5B%3Ctemp%3Eget%5Btemplate%5D%5D%5C%5C%5C%22%20variable%3D%5C%5C%5C%22template%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%3C%24action-sendmessage%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24message%3D%5C%5C%5C%22tmap%3Atm-merge-tiddlers%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20tiddlers%3D%3C%3CoutputAndTemplate%3E%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20output%3D%3C%3Coutput%3E%3E%20%2F%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%3C%24action-deletefield%20%24tiddler%3D%3C%3Coutput%3E%3E%20tmap.id%20tmap.edges%20%2F%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%3C%2F%24list%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%3C%2F%24button%3E%5C%5Cn%20%20%20%20%20%20%20%3C%2Ftd%3E%5C%5Cn%20%20%20%20%20%20%20%3Ctd%3EPress%20the%20%5C%5C%5C%22load%5C%5C%5C%22%20button%20to%20activate%20the%20template.%3C%2Ftd%3E%5C%5Cn%20%20%20%20%20%20%3C%2Ftr%3E%5C%5Cn%20%20%20%20%3C%2Ftable%3E%5C%5Cn%20%20%20%20%3C%24importvariables%20filter%3D%5C%5C%5C%22%5Ball%5Btiddlers%2Bshadows%5Dprefix%5B%24%3A%2Fcore%2Fmacros%2F%5D%5D%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%20%20%3C%24set%20name%3D%5C%5C%5C%22currentTiddler%5C%5C%5C%22%20value%3D%3C%3Coutput%3E%3E%3E%5C%5Cn%20%20%20%20%20%20%20%20%3C%24transclude%20tiddler%3D%5C%5C%5C%22%24%3A%2Fcore%2Fui%2FEditTemplate%5C%5C%5C%22%20mode%3D%5C%5C%5C%22block%5C%5C%5C%22%20%2F%3E%5C%5Cn%20%20%20%20%20%20%3C%2F%24set%3E%5C%5Cn%20%20%20%20%3C%2F%24importvariables%3E%5C%5Cn%20%20%3C%2Fdiv%3E%5C%5Cn%5C%5C%5C%5Cend%5C%5Cn%5C%5Cn%5C%5C%5C%5Cdefine%20search()%5C%5Cn%3Cp%3EAdd%20an%20existing%20tiddler%20to%20the%20map%20or%20create%20a%20new%20one.%3C%2Fp%3E%5C%5Cn%3Ctable%20id%3D%5C%5C%5C%22tmap-search-table%5C%5C%5C%22%3E%5C%5Cn%20%20%3Ctr%3E%5C%5Cn%20%20%20%20%3Ctd%3E%3Cb%3ETitle%3A%3C%2Fb%3E%3C%2Ftd%3E%5C%5Cn%20%20%20%20%3Ctd%3E%5C%5Cn%20%20%20%20%20%20%3C%24edit-text%5C%5Cn%20%20%20%20%20%20%20%20%20%20tiddler%3D%3C%3Coutput%3E%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20field%3D%5C%5C%5C%22draft.title%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20focus%3D%5C%5C%5C%22true%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20type%3D%5C%5C%5C%22text%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20tag%3D%5C%5C%5C%22input%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20default%3D%5C%5C%5C%22%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20class%3D%5C%5C%5C%22tmap-trigger-field%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20tmap-triggers-ok-button-on-enter%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20tmap-triggers-cancel-button-on-esc%5C%5C%5C%22%20%2F%3E%5C%5Cn%20%20%20%20%20%20%3C%24list%20filter%3D%5C%5C%5C%22%5B%3Coutput%3Eget%5Bdraft.title%5D!is%5Btiddler%5D%5D%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%20%20%3C%24button%5C%5Cn%20%20%20%20%20%20%20%20%20%20tooltip%3D%5C%5C%5C%22The%20tiddler%20does%20not%20exist%20yet%20and%20you%20may%20edit%20it%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20before%20it%20is%20added%20to%20the%20map%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%20%20%20%20%7B%7B%24%3A%2Fcore%2Fimages%2Fedit-button%7D%7D%5C%5Cn%20%20%20%20%20%20%20%20%3C%24action-setfield%20%24tiddler%3D%3C%3Ctemp%3E%3E%20more%3D%5C%5C%5C%22true%5C%5C%5C%22%20%2F%3E%5C%5Cn%20%20%20%20%20%20%3C%2F%24button%3E%20%3Csup%3E%5B1%5D%3C%2Fsup%3E%5C%5Cn%20%20%20%20%20%20%3C%2F%24list%3E%5C%5Cn%20%20%20%20%3C%2Ftd%3E%5C%5Cn%20%20%3C%2Ftr%3E%5C%5Cn%20%20%3Ctr%3E%5C%5Cn%20%20%20%20%3Ctd%3E%3C%2Ftd%3E%5C%5Cn%20%20%20%20%3Ctd%3E%5C%5Cn%20%20%20%20%20%20%3C%24set%20name%3D%5C%5C%5C%22term%5C%5C%5C%22%20value%3D%7B%7B!!draft.title%7D%7D%3E%5C%5Cn%20%20%20%20%20%20%3Cul%20class%3D%5C%5C%5C%22tmap-small-list%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%20%20%20%20%3C%24list%20filter%3D%5C%5C%5C%22%5Bsearch%3Atitle%3Cterm%3E!is%5Bsystem%5D!has%5Bdraft.of%5D%5D%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%20%20%20%20%3Cli%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%3C%24button%20class%3D%5C%5C%5C%22tc-btn-invisible%20tmap-link%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%3C%24view%20field%3D%5C%5C%5C%22title%5C%5C%5C%22%20%2F%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%3C%24action-setfield%20%24tiddler%3D%3C%3Coutput%3E%3E%20draft.title%3D%7B%7B!!title%7D%7D%20%2F%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%3C%2F%24button%3E%5C%5Cn%20%20%20%20%20%20%20%20%3C%2Fli%3E%5C%5Cn%20%20%20%20%20%20%20%20%3C%2F%24list%3E%5C%5Cn%20%20%20%20%20%20%3C%2Ful%3E%5C%5Cn%20%20%20%20%20%20%3C%2F%24set%3E%5C%5Cn%20%20%20%20%3C%2Ftd%3E%5C%5Cn%20%20%3C%2Ftr%3E%5C%5Cn%3C%2Ftable%3E%5C%5Cn%5C%5Cn%3C%24list%20filter%3D%5C%5C%5C%22%5B%3Coutput%3Eget%5Bdraft.title%5D!is%5Btiddler%5D%5D%5C%5C%5C%22%3E%5C%5Cn%3Chr%20%2F%3E%5C%5Cn%3Csup%3E%5B1%5D%3C%2Fsup%3E%5C%5Cn%3Csmall%3E%5C%5Cn%20%20The%20tiddler%20does%20not%20exist%20yet%20and%20you%20may%20edit%20it%5C%5Cn%20%20before%20it%20is%20added%20to%20the%20map%5C%5Cn%3C%2Fsmall%3E%5C%5Cn%3C%2F%24list%3E%5C%5Cn%5C%5C%5C%5Cend%5C%5Cn%5C%5Cn%3C%24list%20filter%3D%5C%5C%5C%22%5B%3Ctemp%3E!has%5Bmore%5D%5D%5C%5C%5C%22%20variable%3D%5C%5C%5C%22item%5C%5C%5C%22%3E%3C%3Csearch%3E%3E%3C%2F%24list%3E%5C%5Cn%3C%24list%20filter%3D%5C%5C%5C%22%5B%3Ctemp%3Ehas%5Bmore%5D%5D%5C%5C%5C%22%20variable%3D%5C%5C%5C%22item%5C%5C%5C%22%3E%3C%3Ceditor%3E%3E%3C%2F%24list%3E%5C%5Cn%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FcannotDeleteViewDialog%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FcannotDeleteViewDialog%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22subtitle%5C%22%3A%20%5C%22%7B%7B%24%3A%2Fcore%2Fimages%2Flocked-padlock%7D%7D%20You%20cannot%20delete%20this%20view!%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22buttons%5C%22%3A%20%5C%22ok%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%5Crules%20except%20wikilink%5C%5Cn%5C%5CnIt%20is%20not%20possible%20to%20delete%20the%20current%20view%20as%20''%3C%3Ccount%3E%3E''%20tiddlers%5C%5Cnare%20referencing%20it.%20To%20delete%20the%20view%20you%20must%20first%20remove%20the%20tiddlymap%5C%5Cnwidgets%20in%20the%20tiddlers%20listed%20below%20or%20change%20their%20view%20attributes.%5C%5Cn%5C%5Cn''References''%5C%5Cn%5C%5Cn%3Cul%3E%5C%5Cn%3C%24list%20filter%3D%3C%3CrefFilter%3E%3E%20variable%3D%5C%5C%5C%22item%5C%5C%5C%22%3E%5C%5Cn%20%20%3Cli%3E%3C%24link%3E%3C%3Citem%3E%3E%3C%2F%24link%3E%3C%2Fli%3E%5C%5Cn%3C%2F%24list%3E%5C%5Cn%3C%2Ful%3E%5C%5Cn%5C%5CnAfter%20the%20references%20are%20removed%2C%20you%20may%20delete%20the%20view.%5C%5Cn%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FgetConfirmation%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FgetConfirmation%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22subtitle%5C%22%3A%20%5C%22%7B%7B%24%3A%2Fcore%2Fimages%2Fimport-button%7D%7D%20You%20must%20confirm%20in%20order%20to%20proceed!%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%5Crules%20except%20wikilink%5C%5Cn%5C%5Cn%3C%3Cmessage%3E%3E%5C%5Cn%5C%5Cn''Are%20you%20really%20sure%20you%20want%20to%20do%20this%3F''%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FcreateView%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FcreateView%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22subtitle%5C%22%3A%20%5C%22%7B%7B%24%3A%2Fcore%2Fimages%2Fnew-button%7D%7D%20Creating%20a%20new%20view%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%5Crules%20except%20wikilink%5C%5Cn%5C%5Cn%3Ctable%20class%3D%5C%5C%5C%22tmap-config-table%5C%5C%5C%22%3E%5C%5Cn%20%20%3C%3Ctmap-row%20type%3A%5C%5C%5C%22input-text%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20title%3A%5C%5C%5C%22View%20name%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20field%3A%5C%5C%5C%22name%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20focus%3A%5C%5C%5C%22true%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20class%3A%5C%5C%5C%22tmap-trigger-field%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20tmap-triggers-ok-button-on-enter%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20tmap-triggers-cancel-button-on-esc%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20descr%3A%5C%5C%5C%22The%20name%20for%20the%20new%20view.%20If%20no%20name%20is%20entered%2C%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20the%20program%20will%20invent%20one%20for%20you.%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20note%3A%5C%5C%5C%22You%20cannot%20override%20an%20existing%20view.%20In%20this%20case%2C%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20you%20need%20to%20delete%20the%20old%20view%20first!%20You%20must%20no%20use%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20slashes%20(%60%2F%60)%20in%20the%20name.%5C%5C%5C%22%3E%3E%5C%5Cn%20%20%3C%3Ctmap-row%20type%3A%5C%5C%5C%22input-checkbox%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20title%3A%5C%5C%5C%22Clone%20view%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20field%3A%5C%5C%5C%22clone%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20descr%3A%5C%5C%5C%22Use%20the%20view%20that%20is%20currently%20displayed%20in%20the%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20editor%20as%20blueprint.%20The%20view%20will%20be%20an%20__exact__%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20clone%20of%20the%20current%20one%2C%20only%20with%20a%20different%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20name.%5C%5C%5C%22%3E%3E%5C%5Cn%3C%2Ftable%3E%5C%5Cn%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FdeleteNodeDialog%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FdeleteNodeDialog%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22subtitle%5C%22%3A%20%5C%22%7B%7B%24%3A%2Fcore%2Fimages%2Fdelete-button%7D%7D%20You%20are%20about%20to%20delete%20%3C%3Ccount%3E%3E%20nodes%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%5Crules%20except%20wikilink%5C%5Cn%5C%5Cn''Please%20choose%20an%20option%20or%20abort%3A''%5C%5Cn%5C%5Cn%3C%24radio%20tiddler%3D%3C%3Coutput%3E%3E%20field%3D%5C%5C%5C%22delete-from%5C%5C%5C%22%20value%3D%5C%5C%5C%22system%5C%5C%5C%22%3E%5C%5Cn%20%20Delete%20nodes%20from%20system%20%3Csup%3E%5B1%5D%3C%2Fsup%3E%5C%5Cn%3C%2F%24radio%3E%3Cbr%20%2F%3E%5C%5Cn%3C%24radio%20tiddler%3D%3C%3Coutput%3E%3E%20field%3D%5C%5C%5C%22delete-from%5C%5C%5C%22%20value%3D%5C%5C%5C%22filter%5C%5C%5C%22%3E%5C%5Cn%20%20Delete%20nodes%20from%20graph's%20filter%20%3Csup%3E%5B2%5D%3C%2Fsup%3E%5C%5Cn%3C%2F%24radio%3E%5C%5Cn%5C%5CnThe%20following%20nodes%20will%20be%20deleted%3A%5C%5Cn%5C%5Cn%3Cul%3E%5C%5Cn%3C%24list%20filter%3D%3C%3Ctiddlers%3E%3E%3E%5C%5Cn%20%20%3Cli%3E%3C%24view%20tiddler%3D%7B%7B!!title%7D%7D%20field%3D%5C%5C%5C%22title%5C%5C%5C%22%20%2F%3E%3C%2Fli%3E%5C%5Cn%3C%2F%24list%3E%5C%5Cn%3C%2Ful%3E%5C%5Cn%5C%5Cn---%5C%5Cn%5C%5Cn%3Csup%3E%5B1%5D%3C%2Fsup%3E%5C%5Cn%3Csmall%3EThis%20will%20delete%20all%20nodes%2C%20their%20corresponding%20tiddlers%20and%20all%20connected%20edges.%3C%2Fsmall%3E%3Cbr%2F%3E%5C%5Cn%3Csup%3E%5B2%5D%3C%2Fsup%3E%5C%5Cn%3Csmall%3E''Important%3A''%20Removing%20a%20node%20from%20the%20graph's%20filter%20only%20works%2C%20if%20the%20node%20has%20been%20added%20in%20the%20map%20editor%20per%20double%20click%20or%20via%20%5C%5C%5C%22Add%20Node%5C%5C%5C%22.%20If%20the%20node%20hasn't%20been%20added%20as%20mentioned%20above%2C%20you%20need%20to%20change%20the%20underlying%20tiddler%20in%20a%20way%20that%20it%20doesn't%20match%20your%20filter%20anymore%2C%20if%20you%20don't%20want%20it%20to%20be%20displayed%20in%20the%20graph.%3C%2Fsmall%3E%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FdublicateIdInfo%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FdublicateIdInfo%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22subtitle%5C%22%3A%20%5C%22%7B%7B%24%3A%2Fcore%2Fimages%2Finfo-button%7D%7D%20Dublicate%20id%20detected%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22buttons%5C%22%3A%20%5C%22ok_suppress%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%5Crules%20except%20wikilink%5C%5Cn%5C%5CnTiddlyMap%20requires%20the%20value%20of%20the%20id%20field%20(%5C%5C%5C%22tmap.id%5C%5C%5C%22)%20to%20be%5C%5Cnunique%20in%20order%20to%20correctly%20identify%20nodes%20and%20tiddlers.%5C%5Cn%5C%5CnThe%20id%20of%20the%20%5C%5C%5C%22%3C%3Cparam.changedTiddler%3E%3E%5C%5C%5C%22%20already%20exists%20for%20these%20tiddlers%3A%5C%5Cn%5C%5Cn%3Cul%3E%5C%5Cn%3C%24list%20filter%3D%3C%3Cparam.filter%3E%3E%20variable%3D%5C%5C%5C%22item%5C%5C%5C%22%3E%5C%5Cn%20%20%3Cli%3E%3C%24link%3E%3C%3Citem%3E%3E%3C%2F%24link%3E%3C%2Fli%3E%5C%5Cn%3C%2F%24list%3E%5C%5Cn%3C%2Ful%3E%5C%5Cn%5C%5CnTherefore%20TiddlyMap%5C%5Cn%5C%5Cn*%20assigned%20a%20new%20id%20to%20tiddler%20%5C%5C%5C%22%3C%3Cparam.changedTiddler%3E%3E%5C%5C%5C%22%5C%5Cn*%20removed%20all%20edges%20from%20%5C%5C%5C%22%3C%3Cparam.changedTiddler%3E%3E%5C%5C%5C%22%5C%5Cn%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FedgeNotVisible%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FedgeNotVisible%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22subtitle%5C%22%3A%20%5C%22%7B%7B%24%3A%2Fcore%2Fimages%2Finfo-button%7D%7D%20Edge%20will%20not%20be%20visible%20in%20view%20%5C%5C%5C%22%3C%3Cview%3E%3E%5C%5C%5C%22%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22buttons%5C%22%3A%20%5C%22ok_suppress%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%5Crules%20except%20wikilink%5C%5Cn%5C%5CnYou%20just%20created%20an%20edge%20of%20type%5C%5Cn%3Ccode%3E%3C%24text%20text%3D%3C%3Ctype%3E%3E%20%2F%3E%3C%2Fcode%3E%20that%20will%20not%20be%5C%5Cnvisible%20in%20this%20view%20because%20it%20doesn't%20match%20your%5C%5Cnedge-type%20filter%20settings.%5C%5Cn%5C%5CnThe%20current%20edge-type%20filter%20of%20view%20%5C%5C%5C%22%3C%3Cview%3E%3E%5C%5C%5C%22%20looks%20like%20this%3A%5C%5Cn%5C%5Cn%3Cpre%3E%3Ccode%3E%3C%24text%20text%3D%3C%3CeTyFilter%3E%3E%20%2F%3E%3C%2Fcode%3E%3C%2Fpre%3E%5C%5Cn%5C%5CnTo%20have%20the%20newly%20added%20type%20displayed%20in%20your%20view%2C%20adjust%20your%5C%5Cnedge-type%20filter%20accordingly.%20%5C%5Cn%5C%5CnSome%20suggestions%3A%5C%5Cn%5C%5Cn%3Cul%3E%5C%5Cn%20%20%3Cli%3E%5C%5Cn%20%20%20%20Explicitly%20add%20the%20type%20to%20the%20filter%3A%5C%5Cn%20%20%20%20%3Ccode%3E%3C%24text%20text%3D%5C%5C%5C%22%5B%5B%5C%5C%5C%22%20%2F%3E%3C%24text%20text%3D%3C%3Ctype%3E%3E%20%2F%3E%3C%24text%20text%3D%5C%5C%5C%22%5D%5D%5C%5C%5C%22%20%2F%3E%3C%2Fcode%3E%5C%5Cn%20%20%3C%2Fli%3E%5C%5Cn%20%20%3Cli%3E%5C%5Cn%20%20%3C%24set%5C%5Cn%20%20%20%20%20%20filter%3D%5C%5C%5C%22%5B%3Ctype%3Eregexp%5B%3A%5Dsplitbefore%5B%3A%5D%5D%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20name%3D%5C%5C%5C%22prefix%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20emptyValue%3D%3C%3Ctmap%20halfOfString%20%5C%5C%5C%22%24(type)%24%5C%5C%5C%22%3E%3E%3E%5C%5Cn%20%20Add%20a%20filter%20rule%20(e.g.%20a%20prefix%20filter)%20that%20will%20match%5C%5Cn%20%20your%20type%3A%20%3Ccode%3E%5Bprefix%5B%3C%3Cprefix%3E%3E%5D%5D%3C%2Fcode%3E%5C%5Cn%20%20%3C%2F%24set%3E%5C%5Cn%20%20%3C%2Fli%3E%5C%5Cn%20%20%3Cli%3EMake%20your%20current%20view-filter%20less%20restrictive.%3C%2Fli%3E%5C%5Cn%3C%2Ful%3E%5C%5Cn%5C%5CnFor%20further%20information%2C%20please%20see%3A%5C%5Cn%5B%5BNode%20and%20edge-type%20filters%7Chttp%3A%2F%2Ftiddlymap.org%23Node%2520and%2520edge-type%2520filters%5D%5D.%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FeditNode%2Fdefault%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FeditNode%2Fdefault%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22caption%5C%22%3A%20%5C%22Global%20node%20style%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22classes%5C%22%3A%20%5C%22tmap-remove-top-space%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%5Crules%20except%20wikilink%5C%5Cn%5C%5Cn%3Cdiv%20class%3D%5C%5C%5C%22tmap-flash-message%20tmap-info%5C%5C%5C%22%3E%5C%5Cn%20%20A%20node's%20''global%20configuration''%5C%5Cn%20%20(also%20referred%20to%20as%20%2F%2Fglobal%20individual%20config%2F%2F)%20defines%20its%5C%5Cn%20%20individual%20appearance%20and%20behaviour%20in%20all%20views.%5C%5Cn%3C%2Fdiv%3E%5C%5Cn%3C%3CmaybeShowTidColorWarning%3E%3E%5C%5Cn%5C%5Cn%3C%24macrocall%20%24name%3D%5C%5C%5C%22sharedSettings%5C%5C%5C%22%5C%5Cn%20%20%20%20twIconField%3D%3C%3CtidIconField%3E%3E%5C%5Cn%20%20%20%20faIconField%3D%5C%5C%5C%22global.tmap.fa-icon%5C%5C%5C%22%5C%5Cn%20%20%20%20labelField%3D%3C%3CtidLabelField%3E%3E%20%2F%3E%5C%5Cn%5C%5Cn%3C%24macrocall%20%24name%3D%5C%5C%5C%22visConfiguration%5C%5C%5C%22%5C%5Cn%20%20%20%20mode%3D%5C%5C%5C%22manage-node-types%5C%5C%5C%22%5C%5Cn%20%20%20%20extensionField%3D%5C%5C%5C%22global.tmap.style%5C%5C%5C%22%5C%5Cn%20%20%20%20styleName%3D%5C%5C%5C%22node's%20global%20style%5C%5C%5C%22%5C%5Cn%20%20%20%20inheritedList%3D%5C%5C%5C%22%5B%5Binherited-global-default-style%5D%5D%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5B%5Binherited-local-default-style%5D%5D%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5B%5Binherited-group-styles%5D%5D%5C%5C%5C%22%20%2F%3E%5C%5Cn%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FeditNode%2Flocal%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FeditNode%2Flocal%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22caption%5C%22%3A%20%5C%22Local%20node%20style%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22classes%5C%22%3A%20%5C%22tmap-remove-top-space%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%5Crules%20except%20wikilink%5C%5Cn%5C%5Cn%3Cdiv%20class%3D%5C%5C%5C%22tmap-flash-message%20tmap-info%5C%5C%5C%22%3E%5C%5Cn%20%20The%20''local%20node%20configuration''%5C%5Cn%20%20(also%20referred%20to%20as%20%2F%2Fview-specific%20node%20configuration%2F%2F)%5C%5Cn%20%20overrides%20the%20%2F%2Fglobal%20individual%20configuration%2F%2F%20and%20only%20affects%5C%5Cn%20%20the%20node's%20appearance%20and%20behaviour%20in%20the%20current%20view.%5C%5Cn%3C%2Fdiv%3E%5C%5Cn%3C%3CmaybeShowTidColorWarning%3E%3E%5C%5Cn%5C%5Cn%3Cfieldset%3E%5C%5Cn%20%20%3Clegend%3EBehaviour%3C%2Flegend%3E%5C%5Cn%20%20%3Ctable%20class%3D%5C%5C%5C%22tmap-config-table%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%3C%24macrocall%20type%3D%5C%5C%5C%22input-select%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%24name%3D%5C%5C%5C%22tmap-row%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20title%3D%5C%5C%5C%22Open%20view%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20field%3D%5C%5C%5C%22local.open-view%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20nochoice%3D%5C%5C%5C%22Disabled%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20selectFilter%3D%3C%3Ctmap%20%5C%5C%5C%22option%5C%5C%5C%22%20%5C%5C%5C%22selector.allViewsByLabel%5C%5C%5C%22%3E%3E%5C%5Cn%20%20%20%20%20%20%20%20descr%3D%5C%5C%5C%22Clicking%20on%20this%20node%20will%20open%20the%20specified%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20view%20instead%20of%20the%20tiddler%20represented%20by%20this%20node.%5C%5C%5C%22%20%2F%3E%5C%5Cn%20%20%3C%2Ftable%3E%5C%5Cn%3C%2Ffieldset%3E%5C%5Cn%5C%5Cn%3C%24macrocall%20%24name%3D%5C%5C%5C%22sharedSettings%5C%5C%5C%22%5C%5Cn%20%20%20%20twIconField%3D%5C%5C%5C%22local.tw-icon%5C%5C%5C%22%5C%5Cn%20%20%20%20faIconField%3D%5C%5C%5C%22local.fa-icon%5C%5C%5C%22%5C%5Cn%20%20%20%20labelField%3D%5C%5C%5C%22local.label%5C%5C%5C%22%20%2F%3E%5C%5Cn%5C%5Cn%3C%24macrocall%20%24name%3D%5C%5C%5C%22visConfiguration%5C%5C%5C%22%5C%5Cn%20%20%20%20mode%3D%5C%5C%5C%22manage-node-types%5C%5C%5C%22%5C%5Cn%20%20%20%20extensionField%3D%5C%5C%5C%22local-individual-node-style%5C%5C%5C%22%5C%5Cn%20%20%20%20styleName%3D%5C%5C%5C%22node's%20local%20style%5C%5C%5C%22%5C%5Cn%20%20%20%20inheritedList%3D%5C%5C%5C%22%5B%5Binherited-global-default-style%5D%5D%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5B%5Binherited-local-default-style%5D%5D%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5B%5Binherited-group-styles%5D%5D%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5B%5Bglobal.tmap.style%5D%5D%5C%5C%5C%22%20%2F%3E%5C%5Cn%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FeditNode%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FeditNode%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22subtitle%5C%22%3A%20%5C%22%7B%7B%24%3A%2Fcore%2Fimages%2Fedit-button%7D%7D%20Editing%20style%20of%20node%20%5C%5C%5C%22%3C%3Ctiddler%3E%3E%5C%5C%5C%22%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22classes%5C%22%3A%20%5C%22tmap-remove-top-space%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%5Crules%20except%20wikilink%5C%5Cn%5C%5Cn%5C%5C%5C%5Cdefine%20maybeShowTidColorWarning()%5C%5Cn%20%20%3C%24list%20filter%3D%5C%5C%5C%22%5B%3CtidColor%3Eregexp%5B.%2B%5D%5D%5C%5C%5C%22%3E%5C%5Cn%20%20%3Cdiv%20class%3D%5C%5C%5C%22tmap-flash-message%20tmap-warning%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20You%20have%20set%20the%20tiddler's%20color%5C%5Cn%20%20%20%20field%20to%20%5C%5C%5C%22%3C%3CtidColor%3E%3E%5C%5C%5C%22.%20This%20value%20will%20be%20completely%20ignored%5C%5Cn%20%20%20%20when%20you%20change%20node's%20color%20properties%20in%20the%20vis%20editor%20below.%5C%5Cn%20%20%3C%2Fdiv%3E%5C%5Cn%20%20%3C%2F%24list%3E%5C%5Cn%5C%5C%5C%5Cend%5C%5Cn%5C%5Cn%5C%5C%5C%5Cdefine%20iconSettings(twIconField%2C%20faIconField)%5C%5Cn%20%20%3Cfieldset%3E%5C%5Cn%20%20%20%20%3Clegend%3EIcon%20Settings%3C%2Flegend%3E%5C%5Cn%20%20%20%20%3Ctable%20class%3D%5C%5C%5C%22tmap-config-table%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%20%20%3C%3Ctmap-row%20type%3A%5C%5C%5C%22input-text%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20title%3A%5C%5C%5C%22TW-icon%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20field%3A%5C%5C%5C%22%24twIconField%24%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20descr%3A%5C%5C%5C%22A%20tiddlywiki%20image%20reference.%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20For%20example%20'%24%3A%2Fcore%2Ficon'%20for%20Movotun%20Jack.%5C%5C%5C%22%3E%3E%5C%5Cn%20%20%20%20%20%20%3C%3Ctmap-row%20type%3A%5C%5C%5C%22input-text%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20title%3A%5C%5C%5C%22FA-icon%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20field%3A%5C%5C%5C%22%24faIconField%24%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20descr%3A%5C%5C%5C%22A%20Font%20Awesome%20icon%20code.%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20For%20example%20'f206'%20for%20the%20bicycle%20symbol.%5C%5C%5C%22%3E%3E%5C%5Cn%20%20%20%20%3C%2Ftable%3E%5C%5Cn%20%20%3C%2Ffieldset%3E%5C%5Cn%5C%5C%5C%5Cend%5C%5Cn%5C%5Cn%5C%5C%5C%5Cdefine%20sharedSettings(twIconField%2C%20faIconField%2C%20labelField)%5C%5Cn%20%20%3Cfieldset%3E%5C%5Cn%20%20%20%20%3Clegend%3EGeneral%20Settings%3C%2Flegend%3E%5C%5Cn%20%20%20%20%3Ctable%20class%3D%5C%5C%5C%22tmap-config-table%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%20%20%3C%3Ctmap-row%20type%3A%5C%5C%5C%22input-text%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20title%3A%5C%5C%5C%22Label%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20field%3A%5C%5C%5C%22%24labelField%24%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20descr%3A%5C%5C%5C%22Use%20this%20value%20as%20node%20label.%5C%5C%5C%22%3E%3E%5C%5Cn%20%20%20%20%3C%2Ftable%3E%5C%5Cn%20%20%3C%2Ffieldset%3E%5C%5Cn%20%20%3C!--%20display%20icon%20fieldset%20--%3E%5C%5Cn%20%20%3C%3CiconSettings%20%5C%5C%5C%22%24twIconField%24%5C%5C%5C%22%20%5C%5C%5C%22%24faIconField%24%5C%5C%5C%22%3E%3E%20%20%5C%5Cn%5C%5C%5C%5Cend%5C%5Cn%5C%5Cn%3C%24macrocall%5C%5Cn%20%20%24name%3D%5C%5C%5C%22tabs%5C%5C%5C%22%5C%5Cn%20%20default%3D%3C%3Cconcat%20%5C%5C%5C%22%24(template)%24%2Fdefault%5C%5C%5C%22%3E%3E%5C%5Cn%20%20tabsList%3D%5C%5C%5C%22%5Ball%5Bshadows%5Dprefix%3Ctemplate%3E%5D%20-%5B%3Ctemplate%3E%5D%5C%5C%5C%22%5C%5Cn%2F%3E%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FfullscreenTiddlerEditor%2Fdraft%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FfullscreenTiddlerEditor%2Fdraft%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22caption%5C%22%3A%20%5C%22Draft%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%5Crules%20except%20wikilink%5C%5Cn%5C%5Cn%3Cdiv%20class%3D%5C%5C%5C%22tmap-modal-editor%5C%5C%5C%22%3E%5C%5Cn%20%20%3C%24importvariables%20filter%3D%5C%5C%5C%22%5Ball%5Btiddlers%2Bshadows%5Dprefix%5B%24%3A%2Fcore%2Fmacros%2F%5D%5D%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%3C%24set%20name%3D%5C%5C%5C%22currentTiddler%5C%5C%5C%22%20value%3D%3C%3CdraftTRef%3E%3E%20%3E%5C%5Cn%20%20%20%20%20%20%3C%24transclude%20tiddler%3D%5C%5C%5C%22%24%3A%2Fcore%2Fui%2FEditTemplate%5C%5C%5C%22%20field%3D%5C%5C%5C%22text%5C%5C%5C%22%20mode%3D%5C%5C%5C%22block%5C%5C%5C%22%20%2F%3E%5C%5Cn%20%20%20%20%3C%2F%24set%3E%5C%5Cn%20%20%3C%2F%24importvariables%3E%5C%5Cn%3C%2Fdiv%3E%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FfullscreenTiddlerEditor%2Foriginal%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FfullscreenTiddlerEditor%2Foriginal%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22caption%5C%22%3A%20%5C%22Current%20Version%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%5Crules%20except%20wikilink%5C%5Cn%5C%5Cn%3Cdiv%20class%3D%5C%5C%5C%22tmap-modal-editor%5C%5C%5C%22%3E%5C%5Cn%20%20%3C%24importvariables%20filter%3D%5C%5C%5C%22%5Ball%5Btiddlers%2Bshadows%5Dprefix%5B%24%3A%2Fcore%2Fmacros%2F%5D%5D%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%3C%24set%20name%3D%5C%5C%5C%22currentTiddler%5C%5C%5C%22%20value%3D%3C%3CoriginalTRef%3E%3E%20%3E%5C%5Cn%20%20%20%20%20%20%3C%24transclude%20tiddler%3D%5C%5C%5C%22%24%3A%2Fcore%2Fui%2FViewTemplate%5C%5C%5C%22%20field%3D%5C%5C%5C%22text%5C%5C%5C%22%20mode%3D%5C%5C%5C%22block%5C%5C%5C%22%20%2F%3E%5C%5Cn%20%20%20%20%3C%2F%24set%3E%5C%5Cn%20%20%3C%2F%24importvariables%3E%5C%5Cn%3C%2Fdiv%3E%5C%5Cn%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FfullscreenTiddlerEditor%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FfullscreenTiddlerEditor%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22subtitle%5C%22%3A%20%5C%22%7B%7B%24%3A%2Fcore%2Fimages%2Fedit-button%7D%7D%20%3C%3CoriginalTRef%3E%3E%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22classes%5C%22%3A%20%5C%22tmap-modal-fullscreen-editor%20tmap-remove-top-space%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%5Crules%20except%20wikilink%5C%5Cn%5C%5Cn%5C%5C%5C%5Cdefine%20defaultTab()%20%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FfullscreenTiddlerEditor%2Foriginal%5C%5Cn%5C%5Cn%3C%24macrocall%20%24name%3D%5C%5C%5C%22tabs%5C%5C%5C%22%5C%5Cn%20%20%20%20default%3D%3C%3CdefaultTab%3E%3E%5C%5Cn%20%20%20%20tabsList%3D%5C%5C%5C%22%5Ball%5Bshadows%5Dprefix%5B%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FfullscreenTiddlerEditor%2F%5D%5D%5C%5C%5C%22%20%2F%3E%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FfieldChanged%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FfieldChanged%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22subtitle%5C%22%3A%20%5C%22%7B%7B%24%3A%2Fcore%2Fimages%2Finfo-button%7D%7D%20The%20field%20%5C%5C%5C%22%3C%3Cname%3E%3E%5C%5C%5C%22%20changed%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%5Crules%20except%20wikilink%5C%5Cn%5C%5CnYou%20changed%20the%20field%20%5C%5C%5C%22%3C%3Cname%3E%3E%5C%5C%5C%22%20from%20%5C%5C%5C%22%3C%3ColdValue%3E%3E%5C%5C%5C%22%20to%20%5C%5C%5C%22%3C%3CnewValue%3E%3E%5C%5C%5C%22.%5C%5Cn%5C%5CnIt%20is%20recommended%20to%20let%20TiddlyMap%20copy%20all%20values%20from%20the%20former%20field%20%5C%5C%5C%22%3C%3ColdValue%3E%3E%5C%5C%5C%22%20to%20the%20new%20field%20%5C%5C%5C%22%3C%3CnewValue%3E%3E%5C%5C%5C%22%20so%20the%20data%20stored%20in%20%5C%5C%5C%22%3C%3ColdValue%3E%3E%5C%5C%5C%22%20is%20not%20lost.%20This%20operation%20has%20to%20be%20done%20now%20or%20never.%5C%5Cn%5C%5CnDo%20you%20want%20to%20move%20each%20tiddler's%20existing%20%5C%5C%5C%22%3C%3ColdValue%3E%3E%5C%5C%5C%22%20value%20to%20%5C%5C%5C%22%3C%3CnewValue%3E%3E%5C%5C%5C%22%3F%20Please%20note%20that%20any%20value%20currently%20stored%20in%20%5C%5C%5C%22%3C%3CnewValue%3E%3E%5C%5C%5C%22%20would%20consequently%20be%20overridden%20and%20the%20old%20field%20%5C%5C%5C%22%3C%3ColdValue%3E%3E%5C%5C%5C%22%20would%20be%20eventually%20removed!%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FfullscreenNotSupported%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FfullscreenNotSupported%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22subtitle%5C%22%3A%20%5C%22%7B%7B%24%3A%2Fcore%2Fimages%2Finfo-button%7D%7D%20Your%20machine%20does%20not%20support%20fullscreen%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22buttons%5C%22%3A%20%5C%22ok_suppress%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%5Crules%20except%20wikilink%5C%5Cn%5C%5CnPlease%20have%20a%20look%20%5B%5Bhere%7Chttp%3A%2F%2Fcaniuse.com%2F%23feat%3Dfullscreen%5D%5D%20to%20see%20a%20list%20of%20supported%20devices%2Fbrowsers.%5C%5Cn%5C%5CnSorry%20for%20this%20%3A(%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FrenameView%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FrenameView%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22subtitle%5C%22%3A%20%5C%22%7B%7B%24%3A%2Fcore%2Fimages%2Ftag-button%7D%7D%20Please%20specify%20a%20view%20name%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%5Crules%20except%20wikilink%5C%5Cn%5C%5Cn''Name%3A''%5C%5Cn%3C%24edit-text%20focus%3D%5C%5C%5C%22true%5C%5C%5C%22%20tiddler%3D%3C%3Coutput%3E%3E%20field%3D%5C%5C%5C%22text%5C%5C%5C%22%20type%3D%5C%5C%5C%22text%5C%5C%5C%22%20tag%3D%5C%5C%5C%22input%5C%5C%5C%22%20default%3D%5C%5C%5C%22%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20class%3D%5C%5C%5C%22tmap-trigger-field%20tmap-triggers-ok-button-on-enter%5C%5C%5C%22%20%2F%3E%5C%5Cn%5C%5CnNote%20that%20''%3C%3Ccount%3E%3E''%20tiddlers%20are%20referencing%20this%20view.%5C%5Cn%5C%5Cn%3C%24reveal%20type%3D%5C%5C%5C%22nomatch%5C%5C%5C%22%20text%3D%5C%5C%5C%220%5C%5C%5C%22%20default%3D%3C%3Ccount%3E%3E%3E%5C%5Cn%5C%5CnRenaming%20the%20view%20will%20cause%20the%20reference%20to%20be%20invalid.%5C%5CnIt%20is%20recommended%20to%20first%20remove%20the%20tiddlymap%20widgets%20in%5C%5Cnthe%20tiddlers%20listed%20below%20or%20change%20their%20view%20attributes%5C%5Cnaccordingly.%5C%5Cn%5C%5Cn''References''%5C%5Cn%5C%5Cn%3Cul%3E%5C%5Cn%3C%24list%20filter%3D%3C%3CrefFilter%3E%3E%20variable%3D%5C%5C%5C%22item%5C%5C%5C%22%3E%5C%5Cn%20%20%3Cli%3E%3C%24text%20text%3D%3C%3Citem%3E%3E%20%2F%3E%3C%2Fli%3E%5C%5Cn%3C%2F%24list%3E%5C%5Cn%3C%2Ful%3E%5C%5Cn%5C%5Cn%3C%2F%24reveal%3E%5C%5Cn%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FsaveCanvas%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FsaveCanvas%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22subtitle%5C%22%3A%20%5C%22%7B%7B%24%3A%2Fcore%2Fimages%2Foptions-button%7D%7D%20Save%20a%20snapshot%20image%20of%20view%20%5C%5C%5C%22%3C%3Cview%3E%3E%5C%5C%5C%22%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%5Crules%20except%20wikilink%5C%5Cn%5C%5Cn%5C%5C%5C%5Cdefine%20preview()%5C%5Cn%3Cdiv%20class%3D%5C%5C%5C%22tmap-save-canvas-preview%5C%5C%5C%22%3E%5C%5Cn%20%20%3C%24transclude%20tiddler%3D%3C%3Csnapshot%3E%3E%20%2F%3E%3Cbr%20%2F%3E%5C%5Cn%3C%2Fdiv%3E%5C%5Cn%5C%5C%5C%5Cend%5C%5Cn%5C%5Cn%3Ctable%20class%3D%5C%5C%5C%22tmap-config-table%5C%5C%5C%22%3E%5C%5Cn%20%20%3C%24macrocall%20%24name%3D%5C%5C%5C%22tmap-row%5C%5C%5C%22%5C%5Cn%20%20%20%20type%3D%5C%5C%5C%22input-text%5C%5C%5C%22%5C%5Cn%20%20%20%20title%3D%5C%5C%5C%22Name%5C%5C%5C%22%5C%5Cn%20%20%20%20field%3D%5C%5C%5C%22name%5C%5C%5C%22%5C%5Cn%20%20%20%20descr%3D%3C%3Cpreview%3E%3E%20%2F%3E%5C%5Cn%20%20%3C%3Ctmap-row%20type%3A%5C%5C%5C%22input-text%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20title%3A%5C%5C%5C%22Width%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20field%3A%5C%5C%5C%22width%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20descr%3A%5C%5C%5C%22Scales%20the%20image%20to%20match%20this%20new%20width%20(unit%3A%20px)%5C%5C%5C%22%3E%3E%5C%5Cn%20%20%3C%3Ctmap-row%20type%3A%5C%5C%5C%22input-text%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20title%3A%5C%5C%5C%22height%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20field%3A%5C%5C%5C%22height%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20descr%3A%5C%5C%5C%22Scales%20the%20image%20to%20match%20this%20new%20height%20(unit%3A%20px)%5C%5C%5C%22%3E%3E%5C%5Cn%20%20%3C%3Ctmap-row%20type%3A%5C%5C%5C%22input-radio%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20title%3A%5C%5C%5C%22Action%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20field%3A%5C%5C%5C%22action%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20selectFilter%3A%5C%5C%5C%22%5B%5Bdownload%7CDownload%5D%5D%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5B%5Bwiki%7CSave%20in%20wiki%5D%5D%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5B%5Bplaceholder%7CUse%20as%20placeholder%20for%20this%20view%5D%5D%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20descr%3A%5C%5C%5C%22Save%20the%20image%20by%20downloading%20it%20to%20your%20computer%20or%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20save%20it%20as%20a%20tiddler%20in%20your%20wiki.%3Cbr%20%2F%3E%3Cbr%20%2F%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20A%20third%20option%20is%20to%20make%20TiddlyMap%20use%20this%20image%20as%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20placeholder%20for%20the%20current%20view.%20Placeholders%20are%20useful%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20when%20the%20wiki%20is%20exported%20as%20static%20html%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20or%20when%20editing%20a%20tiddler%20while%20having%20the%20preview%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20shown.%20In%20this%20case%20the%20title%20input%20is%20ignored.%5C%5C%5C%22%3E%3E%5C%5Cn%3C%2Ftable%3E%5C%5Cn%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%5Crules%20except%20wikilink%5C%5Cn%5C%5Cn%3Cdiv%20class%3D%3C%3Cclasses%3E%3E%3E%5C%5Cn%3C%24importvariables%5C%5Cn%20%20%20%20filter%3D%5C%5C%5C%22%5B%5B%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fmisc%2Fmacros%5D%5D%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5B%5B%24%3A%2Fcore%2Fmacros%2Ftabs%5D%5D%5C%5C%5C%22%3E%5C%5Cn%3C%24transclude%20tiddler%3D%3C%3Ctemplate%3E%3E%20mode%3D%5C%5C%5C%22block%5C%5C%5C%22%20%2F%3E%5C%5Cn%3C%2F%24importvariables%3E%5C%5Cn%3C%2Fdiv%3E%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2Fwelcome%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2Fwelcome%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22subtitle%5C%22%3A%20%5C%22%7B%7B%24%3A%2Fcore%2Fimages%2Finfo-button%20%7D%7D%20Welcome%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22buttons%5C%22%3A%20%5C%22ok%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%5Crules%20except%20wikilink%5C%5Cn%5C%5CnIt%20seems%20that%20you%20freshly%20installed%20TiddlyMap.%5C%5Cn%5C%5Cn*%20In%20case%20you%20need%20any%20help%2C%20please%20consult%20the%20%5B%5Bonline%20docs%7Chttp%3A%2F%2Ftiddlymap.org%23Documentation%5D%5D%20first.%5C%5Cn*%20You%20are%20welcome%20to%20create%20an%20%5B%5Bissue%7Chttps%3A%2F%2Fgithub.com%2Ffelixhayashi%2FTW5-TiddlyMap%2Fissues%5D%5D%20at%20GitHub%20for%20any%20bug%20you%20discover.%5C%5Cn*%20Make%20sure%20to%20revisit%20the%20%5B%5Bdemo%20site%7Chttp%3A%2F%2Ftiddlymap.org%5D%5D%20to%20see%20whether%20your%20version%20is%20up-to-date.%5C%5Cn*%20If%20you%20like%20TiddlyMap%2C%20please%20give%20it%20a%20star%20at%20%5B%5BGitHub%7Chttps%3A%2F%2Fgithub.com%2Ffelixhayashi%2FTW5-TiddlyMap%5D%5D%20or%20tell%20your%20friends%20about%20it%20%3A)%5C%5Cn*%20''Please%20note%3A''%20TiddlyMap%20is%20distributed%20under%20the%20%5B%5BBSD%202-Clause%20License%7Chttp%3A%2F%2Fopensource.org%2Flicenses%2FBSD-2-Clause%5D%5D%2C%20which%20belongs%20to%20the%20same%20license%20family%2C%20as%20the%20license%20used%20by%20TiddlyWiki.%20By%20using%20this%20plugin%20you%20agree%20to%20the%20product's%20%5B%5BLicense%20Terms%7Chttps%3A%2F%2Fgithub.com%2Ffelixhayashi%2FTW5-TiddlyMap%2Fblob%2Fmaster%2FLICENSE%5D%5D.%5C%5Cn%5C%5CnEnjoy!%5C%5Cn%5C%5Cn---%5C%5Cn%5C%5CnTiddlyMap%20will%20configure%20your%20wiki%20for%20optimal%20use.%20Everything%20can%20be%20changed%20back%20later%20by%20you%2C%20via%20the%20TiddlyWiki%20configurations%20panel%2C%20so%20no%20worries.%20If%20you%20checked%20some%20of%20the%20options%20below%2C%20please%20save%20%26amp%3B%20restart%20after%20closing%20this%20dialog.%5C%5Cn%5C%5Cn%3Ctable%20class%3D%5C%5C%5C%22tmap-config-table%5C%5C%5C%22%3E%5C%5Cn%20%20%3C%3Ctmap-row%20type%3A%5C%5C%5C%22input-checkbox%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20title%3A%5C%5C%5C%22Optimize%20storyview%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20field%3A%5C%5C%5C%22config.storyview%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20descr%3A%5C%5C%5C%22Sets%20the%20storyview%20to%20'top'%20for%20optimal%20scrolling.%5C%5C%5C%22%3E%3E%5C%5Cn%20%20%3C%3Ctmap-row%20type%3A%5C%5C%5C%22input-checkbox%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20title%3A%5C%5C%5C%22Optimize%20sidebar%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20field%3A%5C%5C%5C%22config.sidebar%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20descr%3A%5C%5C%5C%22Sets%20sidebar%20layout%20to%20'fixed-fluid'%20for%20larger%20editor.%5C%5C%5C%22%3E%3E%5C%5Cn%20%20%3C%3Ctmap-row%20type%3A%5C%5C%5C%22input-checkbox%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20title%3A%5C%5C%5C%22Optimize%20navigation%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20field%3A%5C%5C%5C%22config.navigation%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20descr%3A%5C%5C%5C%22Sets%20navigation%20style%20to%20open%20tiddlers%20at%20top%20for%20better%20map%20navigation.%5C%5C%5C%22%3E%3E%5C%5Cn%20%20%3C%3Ctmap-row%20type%3A%5C%5C%5C%22input-checkbox%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20title%3A%5C%5C%5C%22Create%20demo%20welcome%20map%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20field%3A%5C%5C%5C%22config.demo%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20descr%3A%5C%5C%5C%22Creates%20a%20little%20hello%20world%20welcome%20map%20for%20you.%5C%5C%5C%22%3E%3E%5C%5Cn%3C%2Ftable%3E%5C%5Cn%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FwidgetCodeGenerator%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FwidgetCodeGenerator%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22subtitle%5C%22%3A%20%5C%22%7B%7B%24%3A%2Fcore%2Fimages%2Fpermalink-button%7D%7D%20Widget%20Code%20Generator%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22buttons%5C%22%3A%20%5C%22close%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%5Crules%20except%20wikilink%5C%5Cn%5C%5Cn%3Cdiv%20class%3D%5C%5C%5C%22tmap-flash-message%20tmap-info%5C%5C%5C%22%3E%5C%5Cn%20%20Use%20the%20code%20below%20to%20embed%20a%20view%20in%20a%20tiddler.%5C%5Cn%3C%2Fdiv%3E%5C%5Cn%5C%5Cn%3Cpre%20style%3D%5C%5C%5C%22white-space%3A%20normal%3B%5C%5C%5C%22%3E%5C%5Cn%26lt%3B%24tmap%5C%5Cn%5C%5Cn%3C%24list%20filter%3D%5C%5C%5C%22%5B%3Coutput%3Ehas%5Bvar.view%5D%5D%5C%5C%5C%22%3E%5C%5Cn%20%20view%3D%5C%5C%5C%22%3C%24view%20field%3D'var.view'%20%2F%3E%5C%5C%5C%22%3C%2F%24list%3E%5C%5Cn%3C%24list%20filter%3D%5C%5C%5C%22%5B%3Coutput%3Efield%3Avar.click-to-use%5Btrue%5D%5D%5C%5C%5C%22%3E%5C%5Cn%20%20click-to-use%3D%5C%5C%5C%22true%5C%5C%5C%22%3C%2F%24list%3E%5C%5Cn%3C%24list%20filter%3D%5C%5C%5C%22%5B%3Coutput%3Ehas%5Bvar.editor%5D%5D%5C%5C%5C%22%3E%5C%5Cn%20%20editor%3D%5C%5C%5C%22%3C%24view%20field%3D'var.editor'%20%2F%3E%5C%5C%5C%22%3C%2F%24list%3E%5C%5Cn%3C%24list%20filter%3D%5C%5C%5C%22%5B%3Coutput%3Ehas%5Bvar.width%5D%5D%5C%5C%5C%22%3E%5C%5Cn%20%20width%3D%5C%5C%5C%22%3C%24view%20field%3D'var.width'%20%2F%3E%5C%5C%5C%22%3C%2F%24list%3E%5C%5Cn%3C%24list%20filter%3D%5C%5C%5C%22%5B%3Coutput%3Ehas%5Bvar.height%5D%5D%5C%5C%5C%22%3E%5C%5Cn%20%20height%3D%5C%5C%5C%22%3C%24view%20field%3D'var.height'%20%2F%3E%5C%5C%5C%22%3C%2F%24list%3E%5C%5Cn%3C%24list%20filter%3D%5C%5C%5C%22%5B%3Coutput%3Ehas%5Bvar.class%5D%5D%5C%5C%5C%22%3E%5C%5Cn%20%20class%3D%5C%5C%5C%22%3C%24view%20field%3D'var.class'%20%2F%3E%5C%5C%5C%22%3C%2F%24list%3E%5C%5Cn%3C%24list%20filter%3D%5C%5C%5C%22%5B%3Coutput%3Efield%3Avar.show-buttons%5Bfalse%5D%5D%5C%5C%5C%22%3E%5C%5Cn%20%20show-buttons%3D%5C%5C%5C%22false%5C%5C%5C%22%3C%2F%24list%3E%5C%5Cn%3C%24list%20filter%3D%5C%5C%5C%22%5B%3Coutput%3Ehas%5Bvar.design%5D%5D%5C%5C%5C%22%3E%5C%5Cn%20%20design%3D%5C%5C%5C%22%3C%24view%20field%3D'var.design'%20%2F%3E%5C%5C%5C%22%3C%2F%24list%3E%26gt%3B%26lt%3B%2F%24tmap%26gt%3B%5C%5Cn%3C%2Fpre%3E%5C%5Cn%5C%5Cn%3Cfieldset%3E%5C%5Cn%20%20%3Clegend%3EParameters%3C%2Flegend%3E%20%5C%5Cn%20%20%3Ctable%20class%3D%5C%5C%5C%22tmap-config-table%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%20%20%3C%24macrocall%20type%3D%5C%5C%5C%22input-select%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20%24name%3D%5C%5C%5C%22tmap-row%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20title%3D%5C%5C%5C%22View%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20field%3D%5C%5C%5C%22var.view%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20nochoice%3D%5C%5C%5C%22%20%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20selectFilter%3D%3C%3Ctmap%20%5C%5C%5C%22option%5C%5C%5C%22%20%5C%5C%5C%22selector.allViewsByLabel%5C%5C%5C%22%3E%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20descr%3D%5C%5C%5C%22The%20view%20to%20bind%20the%20wiedget%20to%5C%5C%5C%22%20%2F%3E%5C%5Cn%20%20%20%20%20%20%3C%3Ctmap-row%20type%3A%5C%5C%5C%22input-select%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20title%3A%5C%5C%5C%22Editor%20bar%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20field%3A%5C%5C%5C%22var.editor%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20selectFilter%3A%5C%5C%5C%22%5B%5B%7CHidden%5D%5D%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5B%5Bvis%7CSimple%5D%5D%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5B%5Badvanced%7CAdvanced%5D%5D%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20descr%3A%5C%5C%5C%22Whether%20the%20widget%20should%20act%20as%20an%20editor%20or%20not.%5C%5C%5C%22%3E%3E%5C%5Cn%20%20%20%20%20%20%3C%3Ctmap-row%20type%3A%5C%5C%5C%22input-select%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20title%3A%5C%5C%5C%22Design%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20field%3A%5C%5C%5C%22var.design%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20selectFilter%3A%5C%5C%5C%22%5B%5B%7CNormal%5D%5D%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5B%5Bplain%7CPlain%5D%5D%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20descr%3A%5C%5C%5C%22Usually%20a%20header%20is%20displayed%20and%20borders.%20Plain%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20design%20will%20only%20show%20the%20mere%20graph.%5C%5C%5C%22%3E%3E%5C%5Cn%20%20%20%20%20%20%3C%3Ctmap-row%20type%3A%5C%5C%5C%22input-text%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20title%3A%5C%5C%5C%22Height%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20field%3A%5C%5C%5C%22var.height%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20descr%3A%5C%5C%5C%22Graph's%20height%20in%20css%20units.%20Defaults%20to%20'300px'.%5C%5C%5C%22%3E%3E%5C%5Cn%20%20%20%20%20%20%3C%3Ctmap-row%20type%3A%5C%5C%5C%22input-text%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20title%3A%5C%5C%5C%22Width%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20field%3A%5C%5C%5C%22var.width%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20descr%3A%5C%5C%5C%22Graph's%20width%20in%20css%20units.%20Defaults%20to%20'100%25'.%5C%5C%5C%22%3E%3E%5C%5Cn%20%20%20%20%20%20%3C%3Ctmap-row%20type%3A%5C%5C%5C%22input-text%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20title%3A%5C%5C%5C%22Class%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20field%3A%5C%5C%5C%22var.class%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20descr%3A%5C%5C%5C%22A%20custom%20class%20to%20apply%20your%20own%20css.%5C%5C%5C%22%3E%3E%5C%5Cn%20%20%20%20%20%20%3C%3Ctmap-row%20type%3A%5C%5C%5C%22input-checkbox%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20title%3A%5C%5C%5C%22Click%20to%20use%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20field%3A%5C%5C%5C%22var.click-to-use%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20default%3A%5C%5C%5C%22false%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20descr%3A%5C%5C%5C%22A%20click%20is%20needed%20to%20enable%20the%20graph.%5C%5C%5C%22%3E%3E%5C%5Cn%20%20%20%20%20%20%3C%3Ctmap-row%20type%3A%5C%5C%5C%22input-checkbox%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20title%3A%5C%5C%5C%22Show%20buttons%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20field%3A%5C%5C%5C%22var.show-buttons%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20default%3A%5C%5C%5C%22true%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20descr%3A%5C%5C%5C%22Show%20or%20hide%20the%20graph's%20navigation%20buttons.%5C%5C%5C%22%3E%3E%5C%5Cn%20%20%3C%2Ftable%3E%5C%5Cn%3C%2Ffieldset%3E%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2FdialogFooter%2Fclose%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2FdialogFooter%2Fclose%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%5Crules%20except%20wikilink%5C%5Cn%5C%5Cn%3C%24button%20class%3D%5C%5C%5C%22tmap-dialog-button%20tmap-close-button%5C%5C%5C%22%20tooltip%3D%5C%5C%5C%22Close%20this%20dialog%5C%5C%5C%22%3EClose%5C%5Cn%5C%5Cn%20%20%3C!--%20trigger%20dialog%20callback%20--%3E%5C%5Cn%20%20%3C%24action-setfield%20%24tiddler%3D%3C%3Cresult%3E%3E%20text%3D%5C%5C%5C%221%5C%5C%5C%22%20%2F%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5C%5Cn%3C%2F%24button%3E%5C%5Cn%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2FdialogFooter%2Fok%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2FdialogFooter%2Fok%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%5Crules%20except%20wikilink%5C%5Cn%5C%5Cn%3C%24button%20class%3D%5C%5C%5C%22tmap-dialog-button%20tmap-ok-button%5C%5C%5C%22%20tooltip%3D%5C%5C%5C%22Confirm%20dialog%5C%5C%5C%22%3EOK%5C%5Cn%5C%5Cn%20%20%3C!--%20trigger%20dialog%20callback%20--%3E%5C%5Cn%20%20%3C%24action-setfield%20%24tiddler%3D%3C%3Cresult%3E%3E%20text%3D%5C%5C%5C%221%5C%5C%5C%22%20%2F%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5C%5Cn%3C%2F%24button%3E%5C%5Cn%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2FdialogFooter%2Fok_cancel%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2FdialogFooter%2Fok_cancel%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%5Crules%20except%20wikilink%5C%5Cn%5C%5Cn%3C%24transclude%20tiddler%3D%5C%5C%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2FdialogFooter%2Fok%5C%5C%5C%22%20mode%3D%5C%5C%5C%22inline%5C%5C%5C%22%20%2F%3E%5C%5Cn%3C%24button%20class%3D%5C%5C%5C%22tmap-dialog-button%20tmap-cancel-button%5C%5C%5C%22%20tooltip%3D%5C%5C%5C%22Close%20dialog%20without%20saving%5C%5C%5C%22%3ECancel%5C%5Cn%20%20%3C!--%20trigger%20dialog%20callback%20--%3E%5C%5Cn%20%20%3C%24action-setfield%20%24tiddler%3D%3C%3Cresult%3E%3E%20text%3D%5C%5C%5C%22%5C%5C%5C%22%20%2F%3E%5C%5Cn%3C%2F%24button%3E%5C%5Cn%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2FdialogFooter%2Fok_suppress%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2FdialogFooter%2Fok_suppress%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%5Crules%20except%20wikilink%5C%5Cn%5C%5Cn%3C%24set%20name%3D%5C%5C%5C%22currentTiddler%5C%5C%5C%22%20value%3D%3C%3Ctitle%3E%3E%20%3E%5C%5Cn%5C%5Cn%3C%24checkbox%20field%3D%5C%5C%5C%22suppress%5C%5C%5C%22%20checked%3D%5C%5C%5C%221%5C%5C%5C%22%20unchecked%3D%5C%5C%5C%220%5C%5C%5C%22%20default%3D%5C%5C%5C%220%5C%5C%5C%22%3E%20Do%20not%20show%20this%20dialog%20again%3C%2F%24checkbox%3E%5C%5Cn%3C%24button%20class%3D%5C%5C%5C%22tmap-dialog-button%20tmap-ok-button%5C%5C%5C%22%20tooltip%3D%5C%5C%5C%22Confirm%20this%20dialog%5C%5C%5C%22%3EOK%5C%5Cn%5C%5Cn%20%20%3C!--%20trigger%20dialog%20callback%20--%3E%5C%5Cn%20%20%3C%24action-setfield%20%24tiddler%3D%3C%3Cresult%3E%3E%20text%3D%5C%5C%5C%221%5C%5C%5C%22%20%2F%3E%5C%5Cn%20%20%5C%5Cn%20%20%3C!--%20suppress%20dialog%20in%20the%20future%20--%3E%5C%5Cn%20%20%3C%24action-sendmessage%20%24message%3D%5C%5C%5C%22tmap%3Atm-suppress-dialog%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20dialog%3D%3C%3CtemplateId%3E%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20suppress%3D%7B%7B!!suppress%7D%7D%20%2F%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5C%5Cn%3C%2F%24button%3E%5C%5Cn%5C%5Cn%3C%2F%24set%3E%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2FdialogFooter%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2FdialogFooter%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%5Crules%20except%20wikilink%5C%5Cn%5C%5Cn%5C%5C%5C%5Cdefine%20footer()%20%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2FdialogFooter%2F%24(buttons)%24%5C%5Cn%5C%5Cn%3C%24transclude%20tiddler%3D%3C%3Cfooter%3E%3E%20%2F%3E%5C%5Cn%5C%5Cn%3C!--%20we%20need%20this%20button%20to%20be%20able%20to%20close%20a%20tiddler%20from%20outside%20programmatically%20--%3E%5C%5Cn%3C%24button%20class%3D%5C%5C%5C%22tmap-hidden-close-button%5C%5C%5C%22%20message%3D%5C%5C%5C%22tm-close-tiddler%5C%5C%5C%22%20%2F%3E%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2FdialogFooter%2Felement_type_manager%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2FdialogFooter%2Felement_type_manager%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%5Crules%20except%20wikilink%5C%5Cn%5C%5Cn%3C%24button%5C%5Cn%20%20%20%20class%3D%5C%5C%5C%22tmap-dialog-button%20tmap-save-button%5C%5C%5C%22%5C%5Cn%20%20%20%20tooltip%3D%5C%5C%5C%22Save%20the%20current%20changes%5C%5C%5C%22%3ESave%5C%5Cn%20%20%3C%24action-sendmessage%5C%5Cn%20%20%20%20%20%20%24message%3D%5C%5C%5C%22tmap%3Atm-save-type-form%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20mode%3D%3C%3Cmode%3E%3E%5C%5Cn%20%20%20%20%20%20output%3D%3C%3Coutput%3E%3E%20%2F%3E%5C%5Cn%3C%2F%24button%3E%5C%5Cn%3C%24button%5C%5Cn%20%20%20%20class%3D%5C%5C%5C%22tmap-dialog-button%20tmap-cancel-button%5C%5C%5C%22%5C%5Cn%20%20%20%20tooltip%3D%5C%5C%5C%22Cancel%20the%20most%20resent%20changes%20and%20exit%5C%5C%5C%22%3EQuit%5C%5Cn%20%20%3C%24action-setfield%20%24tiddler%3D%3C%3Cresult%3E%3E%20text%3D%5C%5C%5C%221%5C%5C%5C%22%20%2F%3E%5C%5Cn%3C%2F%24button%3E%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FMapElementTypeManager%2FdeleteType%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FMapElementTypeManager%2FdeleteType%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22caption%5C%22%3A%20%5C%22Removal%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%5Crules%20except%20wikilink%5C%5Cn%5C%5Cn%5C%5C%5C%5Cdefine%20manage-edge-types()%5C%5Cn%20%20%3C%24macrocall%20%24name%3D%5C%5C%5C%22tmap-row%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20type%3D%5C%5C%5C%22input-checkbox%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20title%3D%5C%5C%5C%22Delete%20type%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20field%3D%5C%5C%5C%22temp.deleteType%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20default%3D%7B%7B!id%7D%7D%5C%5Cn%20%20%20%20%20%20readonly%3D%7B%7B!!temp.idImmutable%7D%7D%5C%5Cn%20%20%20%20%20%20descr%3D%5C%5C%5C%22If%20you%20want%20to%20delete%20this%20type%2C%20set%20this%20to%20true%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20and%20click%20the%20save%20button%20afterwards.%20Predefined%20system%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20types%20cannot%20be%20deleted.%5C%5C%5C%22%20note%3D%5C%5C%5C%22Consequently%2C%20all%20edges%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20of%20this%20type%20will%20be%20deleted.%5C%5C%5C%22%20%2F%3E%5C%5Cn%5C%5C%5C%5Cend%5C%5Cn%5C%5Cn%5C%5C%5C%5Cdefine%20manage-node-types()%5C%5Cn%20%20%3C%24macrocall%20%24name%3D%5C%5C%5C%22tmap-row%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20type%3D%5C%5C%5C%22input-checkbox%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20title%3D%5C%5C%5C%22Delete%20type%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20field%3D%5C%5C%5C%22temp.deleteType%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20default%3D%7B%7B!id%7D%7D%5C%5Cn%20%20%20%20%20%20readonly%3D%7B%7B!!temp.idImmutable%7D%7D%5C%5Cn%20%20%20%20%20%20descr%3D%5C%5C%5C%22If%20you%20want%20to%20delete%20this%20type%2C%20set%20this%20to%20true%20and%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20click%20the%20save%20button%20afterwards.%20Predefined%20system%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20types%20cannot%20be%20deleted.%5C%5C%5C%22%20%2F%3E%5C%5Cn%5C%5C%5C%5Cend%5C%5Cn%5C%5Cn%3Ctable%20class%3D%5C%5C%5C%22tmap-config-table%5C%5C%5C%22%3E%3C%24macrocall%20%24name%3D%3C%3Cmode%3E%3E%20%2F%3E%3C%2Ftable%3E%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FMapElementTypeManager%2Fdescription%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FMapElementTypeManager%2Fdescription%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22caption%5C%22%3A%20%5C%22Description%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%5Crules%20except%20wikilink%5C%5Cn%5C%5Cn%5C%5C%5C%5Cdefine%20manage-edge-types()%5C%5Cn%20%20%3C%3Ctmap-row%20type%3A%5C%5C%5C%22input-textarea%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20title%3A%5C%5C%5C%22Description%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20field%3A%5C%5C%5C%22description%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20descr%3A%5C%5C%5C%22An%20optional%20description%20for%20this%20type.%20The%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20description%20will%20be%20displayed%20as%20tooltip%20when%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20moving%20the%20mouse%20over%20an%20edge%20of%20this%20type.%5C%5C%5C%22%3E%3E%5C%5Cn%5C%5C%5C%5Cend%5C%5Cn%5C%5Cn%5C%5C%5C%5Cdefine%20manage-node-types()%5C%5Cn%20%20%3C%3Ctmap-row%20type%3A%5C%5C%5C%22input-textarea%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20title%3A%5C%5C%5C%22Description%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20field%3A%5C%5C%5C%22description%5C%5C%5C%22%20%5C%5Cn%20%20%20%20%20%20descr%3A%5C%5C%5C%22An%20optional%20description%20for%20this%20type.%5C%5C%5C%22%3E%3E%5C%5Cn%5C%5C%5C%5Cend%5C%5Cn%5C%5Cn%3Ctable%20class%3D%5C%5C%5C%22tmap-config-table%5C%5C%5C%22%3E%5C%5Cn%20%20%3C%24macrocall%20%24name%3D%3C%3Cmode%3E%3E%20%2F%3E%5C%5Cn%3C%2Ftable%3E%5C%5Cn%5C%5Cn%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FMapElementTypeManager%2FgeneralSettings%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FMapElementTypeManager%2FgeneralSettings%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22caption%5C%22%3A%20%5C%22General%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%5Crules%20except%20wikilink%5C%5Cn%5C%5Cn%5C%5C%5C%5Cdefine%20manage-edge-types()%5C%5Cn%20%20%3C%3Ctmap-row%20type%3A%5C%5C%5C%22input-text%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20title%3A%5C%5C%5C%22Label%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20field%3A%5C%5C%5C%22label%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20descr%3A%5C%5C%5C%22An%20optional%20alias%20used%20as%20edge-label.%5C%5C%5C%22%3E%3E%5C%5Cn%20%20%3C%3Ctmap-row%20type%3A%5C%5C%5C%22input-checkbox%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20title%3A%5C%5C%5C%22Show%20label%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20field%3A%5C%5C%5C%22show-label%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20default%3A%5C%5C%5C%22true%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20descr%3A%5C%5C%5C%22If%20unchecked%2C%20no%20edge%20label%20will%20be%20displayed.%5C%5C%5C%22%3E%3E%5C%5Cn%5C%5C%5C%5Cend%5C%5Cn%5C%5C%5C%5Cdefine%20manage-node-types()%5C%5Cn%20%20%3C%24list%20filter%3D%5C%5C%5C%22%5B%3CcurrentTiddler%3E!regexp%3Aid%5Btmap%3A%5D%5D%5C%5C%5C%22%3E%5C%5Cn%20%20%3C%3Ctmap-row%20type%3A%5C%5C%5C%22input-textarea%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20title%3A%5C%5C%5C%22Scope%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20field%3A%5C%5C%5C%22scope%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20descr%3A%5C%5C%5C%22A%20filter%20expression%20that%20defines%2C%20which%20nodes%20inherit%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20this%20node-type%20and%20its%20style.%5C%5C%5C%22%3E%3E%5C%5Cn%20%20%3C%2F%24list%3E%5C%5Cn%20%20%3C%24macrocall%20type%3D%5C%5C%5C%22input-select%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%24name%3D%5C%5C%5C%22tmap-row%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20title%3D%5C%5C%5C%22Priority%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20field%3D%5C%5C%5C%22priority%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20selectFilter%3D%3C%3Ctmap%20%5C%5C%5C%22scale%5C%5C%5C%22%20%5C%5C%5C%22100%5C%5C%5C%22%3E%3E%5C%5Cn%20%20%20%20%20%20descr%3D%5C%5C%5C%22When%20a%20type%20has%20a%20a%20higher%20priority%20than%20another%20type%2C%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20its%20style%20will%20override%20the%20other%20style%5C%5C%5C%22%20%2F%3E%5C%5Cn%5C%5C%5C%5Cend%5C%5Cn%5C%5Cn%3Ctable%20class%3D%5C%5C%5C%22tmap-config-table%5C%5C%5C%22%3E%5C%5Cn%20%20%3C%24macrocall%5C%5Cn%20%20%20%20%24name%3D%5C%5C%5C%22tmap-row%5C%5C%5C%22%5C%5Cn%20%20%20%20title%3D%5C%5C%5C%22Identifier%5C%5C%5C%22%5C%5Cn%20%20%20%20field%3D%5C%5C%5C%22temp.newId%5C%5C%5C%22%5C%5Cn%20%20%20%20type%3D%5C%5C%5C%22input-text%5C%5C%5C%22%5C%5Cn%20%20%20%20default%3D%7B%7B!!id%7D%7D%5C%5Cn%20%20%20%20readonly%3D%7B%7B!!temp.idImmutable%7D%7D%5C%5Cn%20%20%20%20descr%3D%5C%5C%5C%22A%20unique%20identifier%5C%5C%5C%22%5C%5Cn%20%20%2F%3E%5C%5Cn%20%20%3C%24macrocall%20%24name%3D%3C%3Cmode%3E%3E%20%2F%3E%5C%5Cn%3C%2Ftable%3E%5C%5Cn%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FMapElementTypeManager%2Foverview%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FMapElementTypeManager%2Foverview%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22caption%5C%22%3A%20%5C%22Overview%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%5Crules%20except%20wikilink%5C%5Cn%5C%5Cn%5C%5C%5C%5Cdefine%20date(f)%20%3C%24view%20field%3D%24f%24%20format%3D%5C%5C%5C%22date%5C%5C%5C%22%20template%3D%5C%5C%5C%22DDth%20mmm%20hh%3Amm%3Ass%5C%5C%5C%22%2F%3E%5C%5Cn%5C%5Cn!%20%3C%24link%20to%3D%7B%7B!!typeTRef%7D%7D%3E%3C%24view%20field%3D%5C%5C%5C%22id%5C%5C%5C%22%20%2F%3E%3C%2F%24link%3E%5C%5Cn%5C%5Cn%3Ctable%20class%3D%5C%5C%5C%22tmap-key-value-table%5C%5C%5C%22%3E%5C%5Cn%20%20%3Ctr%3E%5C%5Cn%20%20%20%20%3Cth%20align%3D%5C%5C%5C%22left%5C%5C%5C%22%3ECreated%20on%3C%2Fth%3E%5C%5Cn%20%20%20%20%3Ctd%3E%5C%5Cn%20%20%20%20%20%20%3C%3Cdate%20%5C%5C%5C%22created%5C%5C%5C%22%3E%3E%5C%5Cn%20%20%20%20%3C%2Ftd%3E%5C%5Cn%20%20%3C%2Ftr%3E%5C%5Cn%20%20%3Ctr%3E%5C%5Cn%20%20%20%20%3Cth%20align%3D%5C%5C%5C%22left%5C%5C%5C%22%3EModified%20on%3C%2Fth%3E%5C%5Cn%20%20%20%20%3Ctd%3E%3C%3Cdate%20%5C%5C%5C%22modified%5C%5C%5C%22%3E%3E%3C%2Ftd%3E%5C%5Cn%20%20%3C%2Ftr%3E%5C%5Cn%20%20%3Ctr%3E%5C%5Cn%20%20%20%20%3Cth%20align%3D%5C%5C%5C%22left%5C%5C%5C%22%3EUsage%20count%3C%2Fth%3E%5C%5Cn%20%20%20%20%3Ctd%3E%5C%5Cn%20%20%20%20%20%20%3Cspan%20class%3D%5C%5C%5C%22tmap-edge-type-specific%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%20%20%20%20%3C%24view%20field%3D%5C%5C%5C%22temp.usageCount%5C%5C%5C%22%20%2F%3E%5C%5Cn%20%20%20%20%20%20%3C%2Fspan%3E%5C%5Cn%20%20%20%20%20%20%3Cspan%20class%3D%5C%5C%5C%22tmap-node-type-specific%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%20%20%20%20%3C%24count%20filter%3D%7B%7B!!scope%7D%7D%3E0%3C%2F%24count%3E%5C%5Cn%20%20%20%20%20%20%3C%2Fspan%3E%5C%5Cn%20%20%20%20%3C%2Ftd%3E%5C%5Cn%20%20%3C%2Ftr%3E%5C%5Cn%3C%2Ftable%3E%5C%5Cn%5C%5Cn%3C%24view%20field%3D%5C%5C%5C%22description%5C%5C%5C%22%3E%2F%2FNo%20description%20available%2F%2F%3C%2F%24view%3E%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FMapElementTypeManager%2Fstyling%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FMapElementTypeManager%2Fstyling%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22caption%5C%22%3A%20%5C%22Styling%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%5Crules%20except%20wikilink%5C%5Cn%5C%5Cn%5C%5C%5C%5Cdefine%20url()%5C%5Cn%20%20%3C%24set%5C%5Cn%20%20%20%20%20%20filter%3D%5C%5C%5C%22%5B%3Cmode%3Eprefix%5Bmanage-edge-types%5D%5D%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20name%3D%5C%5C%5C%22module%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20value%3D%5C%5C%5C%22edges%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20emptyValue%3D%5C%5C%5C%22nodes%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%5B%5Bvisjs.org%7Chttp%3A%2F%2Fvisjs.org%2Fdocs%2Fnetwork%2F%24(module)%24%5D%5D%5C%5Cn%20%20%3C%2F%24set%3E%5C%5Cn%5C%5C%5C%5Cend%5C%5Cn%5C%5Cn%3Cfieldset%20class%3D%5C%5C%5C%22tmap-node-type-specific%5C%5C%5C%22%3E%5C%5Cn%20%20%3Clegend%3EIcon%20Settings%3C%2Flegend%3E%5C%5Cn%20%20%3Ctable%20class%3D%5C%5C%5C%22tmap-config-table%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%3C%3Ctmap-row%20type%3A%5C%5C%5C%22input-text%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20title%3A%5C%5C%5C%22TW-icon%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20field%3A%5C%5C%5C%22tw-icon%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20descr%3A%5C%5C%5C%22A%20tiddlywiki%20image%20reference.%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20For%20example%20'%24%3A%2Fcore%2Ficon'%20for%20Movotun%20Jack.%5C%5C%5C%22%3E%3E%5C%5Cn%20%20%20%20%3C%3Ctmap-row%20type%3A%5C%5C%5C%22input-text%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20title%3A%5C%5C%5C%22FA-icon%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20field%3A%5C%5C%5C%22fa-icon%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20descr%3A%5C%5C%5C%22A%20Font%20Awesome%20icon%20code.%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20For%20example%20'f206'%20for%20the%20bicycle%20symbol.%5C%5C%5C%22%3E%3E%5C%5Cn%20%20%3C%2Ftable%3E%5C%5Cn%3C%2Ffieldset%3E%5C%5Cn%5C%5Cn%3Cfieldset%3E%3Clegend%3EVisjs%20styles%3C%2Flegend%3E%5C%5Cn%20%20%3Cdiv%20class%3D%5C%5C%5C%22tmap-flash-message%20tmap-info%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%20All%20visjs%20options%20below%20are%20documented%20at%20%3C%3Curl%3E%3E.%5C%5Cn%20%20%3C%2Fdiv%3E%5C%5Cn%20%20%3Cdiv%20class%3D%5C%5C%5C%22tmap-flash-message%20tmap-info%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%20Only%20config%20items%20that%20you%20actually%20changed%20have%20an%20effect%20on%5C%5Cn%20%20%20%20%20the%20graph.%20Other%20options%20are%20visible%2C%20yet%2C%20inactive.%5C%5Cn%20%20%3C%2Fdiv%3E%5C%5Cn%20%20%3C%24tmap-config%5C%5Cn%20%20%20%20%20%20mode%3D%3C%3Cmode%3E%3E%5C%5Cn%20%20%20%20%20%20inherited%3D%5C%5C%5C%22inherited-style%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20extension%3D%5C%5C%5C%22style%5C%5C%5C%22%20%2F%3E%5C%5Cn%3C%2Ffieldset%3E%5C%5Cn%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FMapElementTypeManager%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FMapElementTypeManager%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22subtitle%5C%22%3A%20%5C%22%7B%7B%24%3A%2Fcore%2Fimages%2Ftag-button%7D%7D%20%3C%3Ctopic%3E%3E%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22buttons%5C%22%3A%20%5C%22element_type_manager%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22classes%5C%22%3A%20%5C%22tmap-remove-top-space%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%5Crules%20except%20wikilink%5C%5Cn%5C%5Cn%5C%5C%5C%5Cdefine%20defaultTab()%5C%5Cn%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FMapElementTypeManager%2Foverview%5C%5Cn%5C%5C%5C%5Cend%5C%5Cn%5C%5Cn%5C%5C%5C%5Cdefine%20settingsTab()%5C%5Cn%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FMapElementTypeManager%2FgeneralSettings%5C%5Cn%5C%5C%5C%5Cend%5C%5Cn%5C%5Cn%5C%5C%5C%5Cdefine%20tabsFilter()%5C%5Cn%5Ball%5Bshadows%5Dprefix%5B%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fdialog%2FMapElementTypeManager%2F%5D%5D%5C%5Cn%5C%5C%5C%5Cend%5C%5Cn%5C%5Cn%5C%5C%5C%5Cdefine%20searchFilter()%5C%5Cn%24(searchSelector)%24%5C%5Cn%2B%5Bsort%5Btitle%5Dnsort%5Bpriority%5D%5D%5C%5Cn%2B%5Bremoveprefix%3CtypeRootPath%3Eremoveprefix%5B%2F%5D%5D%5C%5Cn%2B%5Bsearch%3Atitle%7B%24%3A%2Ftemp%2Ftmap%2FMapElementTypeSearch%7D%5D%5C%5Cn%5C%5C%5C%5Cend%5C%5Cn%5C%5Cn%5C%5C%5C%5Cdefine%20managerClass()%20tmap-%24(mode)%24%5C%5Cn%5C%5Cn%5C%5C%5C%5Cdefine%20typePath()%20%24(typeRootPath)%24%2F%24(id)%24%5C%5Cn%5C%5Cn%3Cdiv%20id%3D%5C%5C%5C%22tmap-element-type-manager%5C%5C%5C%22%20class%3D%3C%3CmanagerClass%3E%3E%3E%5C%5Cn%20%20%3Cdiv%3E%5C%5Cn%20%20%20%20%3Cdiv%20class%3D%5C%5C%5C%22tmap-searchbar%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%20%20%3C%24edit-text%5C%5Cn%20%20%20%20%20%20%20%20%20%20focus%3D%5C%5C%5C%22true%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20tiddler%3D%5C%5C%5C%22%24%3A%2Ftemp%2Ftmap%2FMapElementTypeSearch%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20type%3D%5C%5C%5C%22text%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20tag%3D%5C%5C%5C%22input%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20default%3D%5C%5C%5C%22%5C%5C%5C%22%20%2F%3E%5C%5Cn%20%20%20%20%20%20%3C%24list%20filter%3D%5C%5C%5C%22%5B%7B%24%3A%2Ftemp%2Ftmap%2FMapElementTypeSearch%7Dregexp%5B.%2B%5D%5D%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2B%5Baddprefix%5B%2F%5D%5D%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2B%5Baddprefix%3CtypeRootPath%3E%5D%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2B%5B!is%5Btiddler%5D!is%5Bshadow%5D%5D%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%20%20%3C%24button%20tooltip%3D%5C%5C%5C%22Create%20a%20new%20type%20of%20this%20name%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%20%20%7B%7B%24%3A%2Fcore%2Fimages%2Fnew-button%7D%7D%5C%5Cn%20%20%20%20%20%20%20%20%3C%24action-sendmessage%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%24message%3D%5C%5C%5C%22tmap%3Atm-create-type%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20mode%3D%3C%3Cmode%3E%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20id%3D%7B%7B%24%3A%2Ftemp%2Ftmap%2FMapElementTypeSearch%7D%7D%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20output%3D%3C%3Coutput%3E%3E%20%2F%3E%5C%5Cn%20%20%20%20%20%20%20%20%3C%24action-setfield%20%24tiddler%3D%5C%5C%5C%22%24%3A%2Ftemp%2Ftmap%2FMapElementTypeSearch%5C%5C%5C%22%20text%3D%5C%5C%5C%22%5C%5C%5C%22%20%2F%3E%5C%5Cn%20%20%20%20%20%20%3C%2F%24button%3E%5C%5Cn%20%20%20%20%20%20%3C%2F%24list%3E%5C%5Cn%5C%5Cn%20%20%20%20%3C%2Fdiv%3E%5C%5Cn%20%20%20%20%3Cul%3E%5C%5Cn%20%20%20%20%20%20%3C%24list%5C%5Cn%20%20%20%20%20%20%20%20%20%20filter%3D%3C%3CsearchFilter%3E%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20emptyMessage%3D%3C%3CnoTypeFound%3E%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20variable%3D%5C%5C%5C%22id%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%20%20%3Cli%3E%5C%5Cn%20%20%20%20%20%20%20%20%3Cspan%20class%3D%5C%5C%5C%22tmap-ranking%20tmap-node-type-specific%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%23%20%3C%24view%20tiddler%3D%3C%3CtypePath%3E%3E%20field%3D%5C%5C%5C%22priority%5C%5C%5C%22%3E1%3C%2F%24view%3E%5C%5Cn%20%20%20%20%20%20%20%20%3C%2Fspan%3E%5C%5Cn%20%20%20%20%20%20%20%20%3C%24button%20class%3D%5C%5C%5C%22tc-btn-invisible%20tmap-link%5C%5C%5C%22%3E%3C%3Cid%3E%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%3C%24action-setfield%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24tiddler%3D%3C%3Cqualify%20%5C%5C%5C%22%24%3A%2Fstate%2Ftabs%2FMapElementTypeManager%5C%5C%5C%22%3E%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3D%3C%3CdefaultTab%3E%3E%20%2F%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%3C%24action-sendmessage%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24message%3D%5C%5C%5C%22tmap%3Atm-load-type-form%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20id%3D%3C%3Cid%3E%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20mode%3D%3C%3Cmode%3E%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20output%3D%3C%3Coutput%3E%3E%20%2F%3E%5C%5Cn%20%20%20%20%20%20%20%20%3C%2F%24button%3E%5C%5Cn%20%20%20%20%20%20%3C%2Fli%3E%5C%5Cn%20%20%20%20%20%20%3C%2F%24list%3E%5C%5Cn%20%20%20%20%3C%2Ful%3E%5C%5Cn%20%20%3C%2Fdiv%3E%5C%5Cn%20%20%3Cdiv%3E%5C%5Cn%20%20%20%20%3C%24reveal%20type%3D%5C%5C%5C%22nomatch%5C%5C%5C%22%20text%3D%5C%5C%5C%22%5C%5C%5C%22%20default%3D%7B%7B!!id%7D%7D%20%3E%5C%5Cn%20%20%20%20%20%20%3C%24macrocall%5C%5Cn%20%20%20%20%20%20%20%20%20%20%24name%3D%5C%5C%5C%22tabs%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20default%3D%3C%3CdefaultTab%3E%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20state%3D%5C%5C%5C%22%24%3A%2Fstate%2Ftabs%2FMapElementTypeManager%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20tabsList%3D%3C%3CtabsFilter%3E%3E%20%2F%3E%5C%5Cn%20%20%20%20%3C%2F%24reveal%3E%5C%5Cn%20%20%20%20%3C%24reveal%20type%3D%5C%5C%5C%22match%5C%5C%5C%22%20text%3D%5C%5C%5C%22%5C%5C%5C%22%20default%3D%7B%7B!!id%7D%7D%20%3E%5C%5Cn%20%20%20%20%20%20%3Cdiv%20class%3D%5C%5C%5C%22tmap-flash-message%20tmap-info%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%20%20%20%20Please%20select%20a%20type%20from%20the%20list%20or%20create%20a%20new%20one%20by%5C%5Cn%20%20%20%20%20%20%20%20entering%20the%20type%20name%20in%20the%20search%20field%20on%20the%20left.%5C%5Cn%20%20%20%20%20%20%3C%2Fdiv%3E%5C%5Cn%20%20%20%20%20%20%3Cdiv%20class%3D%5C%5C%5C%22tmap-flash-message%20tmap-info%20tmap-node-type-specific%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%20%20%20%20The%20number%20next%20to%20the%20node-type%20label%20represents%20it's%20priority.%5C%5Cn%20%20%20%20%20%20%3C%2Fdiv%3E%5C%5Cn%20%20%20%20%3C%2F%24reveal%3E%5C%5Cn%20%20%3C%2Fdiv%3E%5C%5Cn%3C%2Fdiv%3E%5C%5Cn%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Feditor%2FcontextMenu%2Fnode%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Feditor%2FcontextMenu%2Fnode%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%5Cdefine%20single()%5C%5Cn%20%20%3C%24list%20filter%3D%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%5B%5Btmap%3Atm-toggle-central-topic%2C%20%24%3A%2Fcore%2Fimages%2Fstar-filled%2C%20Toggle%20central%20topic%5D%5D%5C%5Cn%20%20%20%20%20%20%5B%5Btmap%3Atm-delete-element%2C%20%24%3A%2Fcore%2Fimages%2Fdelete-button%2C%20Delete%20node%5D%5D%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%3C%24button%20class%3D%5C%5C%5C%22tc-btn-invisible%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%20%20%3C%24action-sendmessage%20%24message%3D%3C%3Ctmap%20%5C%5C%5C%22splitAndSelect%5C%5C%5C%22%20%5C%5C%5C%22%2C%20%5C%5C%5C%22%20%5C%5C%5C%220%5C%5C%5C%22%3E%3E%20%2F%3E%5C%5Cn%20%20%20%20%20%20%3C%24transclude%20tiddler%3D%3C%3Ctmap%20%5C%5C%5C%22splitAndSelect%5C%5C%5C%22%20%5C%5C%5C%22%2C%20%5C%5C%5C%22%20%5C%5C%5C%221%5C%5C%5C%22%3E%3E%20%2F%3E%5C%5Cn%20%20%20%20%20%20%3C%3Ctmap%20%5C%5C%5C%22splitAndSelect%5C%5C%5C%22%20%5C%5C%5C%22%2C%20%5C%5C%5C%22%20%5C%5C%5C%222%5C%5C%5C%22%3E%3E%5C%5Cn%20%20%20%20%3C%2F%24button%3E%5C%5Cn%20%20%3C%2F%24list%3E%5C%5Cn%5C%5C%5C%5Cend%5C%5Cn%5C%5Cn%5C%5C%5C%5Cdefine%20multi()%5C%5Cn%20%20%3C%24list%20filter%3D%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%5B%5Btmap%3Atm-delete-element%2C%20%24%3A%2Fcore%2Fimages%2Fdelete-button%2C%20Delete%20selected%20nodes%5D%5D%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%3C%24button%20class%3D%5C%5C%5C%22tc-btn-invisible%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%20%20%3C%24action-sendmessage%20%24message%3D%3C%3Ctmap%20%5C%5C%5C%22splitAndSelect%5C%5C%5C%22%20%5C%5C%5C%22%2C%20%5C%5C%5C%22%20%5C%5C%5C%220%5C%5C%5C%22%3E%3E%20%2F%3E%5C%5Cn%20%20%20%20%20%20%3C%24transclude%20tiddler%3D%3C%3Ctmap%20%5C%5C%5C%22splitAndSelect%5C%5C%5C%22%20%5C%5C%5C%22%2C%20%5C%5C%5C%22%20%5C%5C%5C%221%5C%5C%5C%22%3E%3E%20%2F%3E%5C%5Cn%20%20%20%20%20%20%3C%3Ctmap%20%5C%5C%5C%22splitAndSelect%5C%5C%5C%22%20%5C%5C%5C%22%2C%20%5C%5C%5C%22%20%5C%5C%5C%222%5C%5C%5C%22%3E%3E%5C%5Cn%20%20%20%20%3C%2F%24button%3E%5C%5Cn%20%20%3C%2F%24list%3E%5C%5Cn%5C%5C%5C%5Cend%5C%5Cn%5C%5Cn%3Cdiv%20class%3D%5C%5C%5C%22tc-drop-down%5C%5C%5C%22%3E%5C%5Cn%20%20%3C%24macrocall%20%24name%3D%3C%3Cmode%3E%3E%20%2F%3E%5C%5Cn%3C%2Fdiv%3E%5C%5Cn%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fmisc%2FadvancedEditorBar%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fmisc%2FadvancedEditorBar%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%5Crules%20except%20wikilink%5C%5Cn%5C%5C%5C%5Cdefine%20showEdgeField()%20show-%24(curEdgeId)%24%5C%5Cn%5C%5Cn%3C!--%20%3D%3D%3D%20View%20Switcher%20%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%20--%3E%5C%5Cn%5C%5Cn%3Cdiv%20class%3D%5C%5C%5C%22tmap-menu-bar%5C%5C%5C%22%3E%5C%5Cn%20%20View%3A%5C%5Cn%20%20%3C%24reveal%20type%3D%5C%5C%5C%22match%5C%5C%5C%22%20text%3D%5C%5C%5C%22false%5C%5C%5C%22%20default%3D%3C%3CisViewBound%3E%3E%20%3E%5C%5Cn%20%20%20%20%3C%24select%5C%5Cn%20%20%20%20%20%20%20%20tiddler%3D%3C%3CviewHolder%3E%3E%5C%5Cn%20%20%20%20%20%20%20%20field%3D%5C%5C%5C%22text%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20default%3D%3C%3CviewLabel%3E%3E%20%3E%5C%5Cn%20%20%20%20%20%20%3C%24list%20filter%3D%3C%3Ctmap%20%5C%5C%5C%22option%5C%5C%5C%22%20%5C%5C%5C%22selector.allViewsByLabel%5C%5C%5C%22%3E%3E%20%3E%5C%5Cn%20%20%20%20%20%20%20%20%3Coption%20value%3D%7B%7B!!title%7D%7D%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%3C%24view%20tiddler%3D%7B%7B!!title%7D%7D%20field%3D%5C%5C%5C%22title%5C%5C%5C%22%20%2F%3E%5C%5Cn%20%20%20%20%20%20%20%20%3C%2Foption%3E%5C%5Cn%20%20%20%20%20%20%3C%2F%24list%3E%5C%5Cn%20%20%20%20%3C%2F%24select%3E%5C%5Cn%20%20%3C%2F%24reveal%3E%5C%5Cn%20%20%3C%24reveal%20type%3D%5C%5C%5C%22match%5C%5C%5C%22%20text%3D%5C%5C%5C%22true%5C%5C%5C%22%20default%3D%3C%3CisViewBound%3E%3E%20%3E%5C%5Cn%20%20%20%20%3Cb%3E%3C%3CviewLabel%3E%3E%3C%2Fb%3E%5C%5Cn%20%20%3C%2F%24reveal%3E%5C%5Cn%5C%5Cn%3C!--%20%3D%3D%3D%20Menu%20%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%20--%3E%5C%5Cn%5C%5Cn%20%20%3C%24button%5C%5Cn%20%20%20%20%20%20popup%3D%3C%3Cqualify%20%5C%5C%5C%22%24%3A%2Ftemp%2Fmenu%5C%5C%5C%22%3E%3E%5C%5Cn%20%20%20%20%20%20class%3D%5C%5C%5C%22tmap-unicode-button%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20tooltip%3D%5C%5C%5C%22Open%20the%20Menu%5C%5C%5C%22%3E%7B%7B%24%3A%2Fcore%2Fimages%2Fmenu-button%7D%7D%5C%5Cn%20%20%3C%2F%24button%3E%5C%5Cn%5C%5Cn%20%20%3C%24reveal%20type%3D%5C%5C%5C%22popup%5C%5C%5C%22%20position%3D%5C%5C%5C%22below%5C%5C%5C%22%20state%3D%3C%3Cqualify%20%5C%5C%5C%22%24%3A%2Ftemp%2Fmenu%5C%5C%5C%22%3E%3E%20%3E%5C%5Cn%20%20%20%20%3Cdiv%20class%3D%5C%5C%5C%22tc-drop-down%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%20%20%3Ca%20href%3D%5C%5C%5C%22http%3A%2F%2Ftiddlymap.org%23Documentation%5C%5C%5C%22%20target%3D%5C%5C%5C%22_blank%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%20%20%20%20%7B%7B%24%3A%2Fcore%2Fimages%2Finfo-button%7D%7D%20Open%20online%20help%5C%5Cn%20%20%20%20%20%20%3C%2Fa%3E%5C%5Cn%20%20%20%20%20%20%3C%24button%20class%3D%5C%5C%5C%22tc-btn-invisible%5C%5C%5C%22%20message%3D%5C%5C%5C%22tmap%3Atm-create-view%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%20%20%20%20%7B%7B%24%3A%2Fcore%2Fimages%2Fnew-button%7D%7D%20Create%20new%20view%5C%5Cn%20%20%20%20%20%20%3C%2F%24button%3E%5C%5Cn%20%20%20%20%20%20%3C%24button%20class%3D%5C%5C%5C%22tc-btn-invisible%5C%5C%5C%22%20message%3D%5C%5C%5C%22tmap%3Atm-generate-widget%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%20%20%20%20%7B%7B%24%3A%2Fcore%2Fimages%2Fpermalink-button%7D%7D%20Grab%20widget%20code%5C%5Cn%20%20%20%20%20%20%3C%2F%24button%3E%5C%5Cn%20%20%20%20%20%20%3Cdiv%20class%3D%5C%5C%5C%22tmap-list-separator%5C%5C%5C%22%3EGlobal%20configurations%3A%3C%2Fdiv%3E%5C%5Cn%20%20%20%20%20%20%3C%24button%20class%3D%5C%5C%5C%22tc-btn-invisible%5C%5C%5C%22%20message%3D%5C%5C%5C%22tmap%3Atm-configure-system%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%20%20%20%20%7B%7B%24%3A%2Fcore%2Fimages%2Foptions-button%7D%7D%20Configure%20TiddlyMap%5C%5Cn%20%20%20%20%20%20%3C%2F%24button%3E%5C%5Cn%20%20%20%20%20%20%3C%24button%20class%3D%5C%5C%5C%22tc-btn-invisible%5C%5C%5C%22%20message%3D%5C%5C%5C%22tmap%3Atm-manage-edge-types%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%20%20%20%20%3Cspan%20class%3D%5C%5C%5C%22tmap-unicode-icon%5C%5C%5C%22%3E%E2%97%AD%3C%2Fspan%3E%20Manage%20edge-types%5C%5Cn%20%20%20%20%20%20%3C%2F%24button%3E%5C%5Cn%20%20%20%20%20%20%3C%24button%20class%3D%5C%5C%5C%22tc-btn-invisible%5C%5C%5C%22%20message%3D%5C%5C%5C%22tmap%3Atm-manage-node-types%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%20%20%20%20%3Cspan%20class%3D%5C%5C%5C%22tmap-unicode-icon%5C%5C%5C%22%3E%E2%96%A2%3C%2Fspan%3E%20Manage%20node-types%5C%5Cn%20%20%20%20%20%20%3C%2F%24button%3E%5C%5Cn%20%20%20%20%20%20%3Cdiv%20class%3D%5C%5C%5C%22tmap-view-actions%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%20%20%20%20%3Cdiv%20class%3D%5C%5C%5C%22tmap-list-separator%5C%5C%5C%22%3EActions%20for%20this%20view%3A%3C%2Fdiv%3E%5C%5Cn%20%20%20%20%20%20%20%20%3C%24button%20class%3D%5C%5C%5C%22tc-btn-invisible%5C%5C%5C%22%20message%3D%5C%5C%5C%22tmap%3Atm-edit-view%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%7B%7B%24%3A%2Fcore%2Fimages%2Foptions-button%7D%7D%20Configure%20view%5C%5Cn%20%20%20%20%20%20%20%20%3C%2F%24button%3E%5C%5Cn%20%20%20%20%20%20%20%20%3C%24button%20class%3D%5C%5C%5C%22tc-btn-invisible%5C%5C%5C%22%20message%3D%5C%5C%5C%22tmap%3Atm-rename-view%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%7B%7B%24%3A%2Fcore%2Fimages%2Ftag-button%7D%7D%20Rename%20view%5C%5Cn%20%20%20%20%20%20%20%20%3C%2F%24button%3E%5C%5Cn%20%20%20%20%20%20%20%20%3C%24button%20class%3D%5C%5C%5C%22tc-btn-invisible%5C%5C%5C%22%20message%3D%5C%5C%5C%22tmap%3Atm-delete-view%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%7B%7B%24%3A%2Fcore%2Fimages%2Fdelete-button%7D%7D%20Delete%20view%5C%5Cn%20%20%20%20%20%20%20%20%3C%2F%24button%3E%5C%5Cn%20%20%20%20%20%20%3C%2Fdiv%3E%5C%5Cn%20%20%20%20%3C%2Fdiv%3E%5C%5Cn%20%20%3C%2F%24reveal%3E%5C%5Cn%5C%5Cn%3C!--%20%3D%3D%3D%20Neighbourhood%20menu%20%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%20--%3E%5C%5Cn%5C%5Cn%20%20%3C%24reveal%5C%5Cn%20%20%20%20%20%20type%3D%5C%5C%5C%22match%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20text%3D%5C%5C%5C%22true%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20default%3D%3C%3Ctmap%20%5C%5C%5C%22option%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5C%5C%5C%22config.sys.editorMenuBar.showNeighScopeButton%5C%5C%5C%22%3E%3E%3E%5C%5Cn%20%20%20%20%3C%24button%5C%5Cn%20%20%20%20%20%20%20%20class%3D%3C%3CneighScopeBtnClass%3E%3E%5C%5Cn%20%20%20%20%20%20%20%20tooltip%3D%5C%5C%5C%22Change%20the%20neighbourhood%20scope%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20popup%3D%3C%3Cqualify%20%5C%5C%5C%22%24%3A%2Ftemp%2FneighScope%5C%5C%5C%22%3E%3E%3E%5C%5Cn%20%20%20%20%20%20%7B%7B%24%3A%2Fcore%2Fimages%2Fpreview-open%7D%7D%5C%5Cn%20%20%20%20%3C%2F%24button%3E%5C%5Cn%20%20%3C%2F%24reveal%3E%5C%5Cn%5C%5Cn%20%20%3C%24reveal%20type%3D%5C%5C%5C%22popup%5C%5C%5C%22%20position%3D%5C%5C%5C%22below%5C%5C%5C%22%20state%3D%3C%3Cqualify%20%5C%5C%5C%22%24%3A%2Ftemp%2FneighScope%5C%5C%5C%22%3E%3E%20%3E%5C%5Cn%20%20%20%20%3Cdiv%20class%3D%5C%5C%5C%22tc-drop-down%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%20%20%3Cdiv%20class%3D%5C%5C%5C%22tmap-list-separator%5C%5C%5C%22%3ENeighbourhood%20scope%3C%2Fdiv%3E%5C%5Cn%20%20%20%20%20%20%3C%24button%20class%3D%5C%5C%5C%22tc-btn-invisible%5C%5C%5C%22%3ENone%5C%5Cn%20%20%20%20%20%20%20%20%3C%24action-setfield%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%24tiddler%3D%3C%3CviewRoot%3E%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20config.neighbourhood_scope%3D%5C%5C%5C%22%5C%5C%5C%22%20%2F%3E%5C%5Cn%20%20%20%20%20%20%3C%2F%24button%3E%5C%5Cn%20%20%20%20%20%20%3C%24list%20filter%3D%5C%5C%5C%22%5B%5B1%7C1%20step%20distance%5D%5D%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5B%5B2%7C2%20step%20distance%5D%5D%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5B%5B3%7C3%20step%20distance%5D%5D%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5B%5B4%7C4%20step%20distance%5D%5D%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5B%5B5%7C5%20step%20distance%5D%5D%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%20%20%20%20%3C%24button%20class%3D%5C%5C%5C%22tc-btn-invisible%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%3C%3Ctmap%20%5C%5C%5C%22splitAndSelect%5C%5C%5C%22%20%5C%5C%5C%22%7C%5C%5C%5C%22%20%5C%5C%5C%221%5C%5C%5C%22%3E%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%3C%24action-setfield%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24tiddler%3D%3C%3CviewRoot%3E%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20config.neighbourhood_scope%3D%3C%3Ctmap%20%5C%5C%5C%22splitAndSelect%5C%5C%5C%22%20%5C%5C%5C%22%7C%5C%5C%5C%22%20%5C%5C%5C%220%5C%5C%5C%22%3E%3E%20%2F%3E%5C%5Cn%20%20%20%20%20%20%20%20%3C%2F%24button%3E%5C%5Cn%20%20%20%20%20%20%3C%2F%24list%3E%5C%5Cn%20%20%20%20%20%20%3C%24button%20class%3D%5C%5C%5C%22tc-btn-invisible%5C%5C%5C%22%3ENo%20limit%5C%5Cn%20%20%20%20%20%20%20%20%3C%24action-setfield%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%24tiddler%3D%3C%3CviewRoot%3E%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20config.neighbourhood_scope%3D%5C%5C%5C%22100%5C%5C%5C%22%20%2F%3E%5C%5Cn%20%20%20%20%20%20%3C%2F%24button%3E%5C%5Cn%5C%5Cn%20%20%20%20%20%20%3Cdiv%20class%3D%5C%5C%5C%22tmap-list-separator%5C%5C%5C%22%3ENeighbourhood%20traversal%3C%2Fdiv%3E%5C%5Cn%5C%5Cn%20%20%20%20%20%20%3C%24radio%20field%3D%5C%5C%5C%22config.neighbourhood_directions%5C%5C%5C%22%20value%3D%5C%5C%5C%22in%5C%5C%5C%22%3E%20Incoming%3C%2F%24radio%3E%3Cbr%20%2F%3E%5C%5Cn%20%20%20%20%20%20%3C%24radio%20field%3D%5C%5C%5C%22config.neighbourhood_directions%5C%5C%5C%22%20value%3D%5C%5C%5C%22out%5C%5C%5C%22%3E%20Outgoing%3C%2F%24radio%3E%3Cbr%20%2F%3E%5C%5Cn%20%20%20%20%20%20%3C%24radio%20field%3D%5C%5C%5C%22config.neighbourhood_directions%5C%5C%5C%22%20value%3D%5C%5C%5C%22%5C%5C%5C%22%3E%20Both%3C%2F%24radio%3E%5C%5Cn%5C%5Cn%20%20%20%20%20%20%3Cdiv%20class%3D%5C%5C%5C%22tmap-list-separator%5C%5C%5C%22%3EOther%3C%2Fdiv%3E%5C%5Cn%5C%5Cn%20%20%20%20%20%20%3C%24checkbox%20field%3D%5C%5C%5C%22config.show_inter_neighbour_edges%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20checked%3D%5C%5C%5C%22true%5C%5C%5C%22%20unchecked%3D%5C%5C%5C%22false%5C%5C%5C%22%3E%20Inter-neighbour%20edges%3C%2F%24checkbox%3E%5C%5Cn%5C%5Cn%20%20%20%20%3C%2Fdiv%3E%5C%5Cn%20%20%3C%2F%24reveal%3E%5C%5Cn%5C%5Cn%3C!--%20%3D%3D%3D%20Tracing%20%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%20--%3E%5C%5Cn%5C%5Cn%20%20%3C%24reveal%5C%5Cn%20%20%20%20%20%20type%3D%5C%5C%5C%22match%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20text%3D%5C%5C%5C%22true%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20default%3D%3C%3CisShowNeighbourhood%3E%3E%3E%5C%5Cn%20%20%20%20%3C%24button%5C%5Cn%20%20%20%20%20%20%20%20class%3D%3C%3CtracingBtnClass%3E%3E%5C%5Cn%20%20%20%20%20%20%20%20tooltip%3D%5C%5C%5C%22Trace%20your%20clicks%20on%20neighbouring%20nodes.%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20popup%3D%3C%3Cqualify%20%5C%5C%5C%22%24%3A%2Ftemp%2Ftmap-tracing%5C%5C%5C%22%3E%3E%3E%5C%5Cn%20%20%20%20%20%20%7B%7B%24%3A%2Fcore%2Fimages%2Ftimestamp-on%7D%7D%5C%5Cn%20%20%20%20%3C%2F%24button%3E%5C%5Cn%20%20%3C%2F%24reveal%3E%5C%5Cn%5C%5Cn%20%20%3C%24reveal%20type%3D%5C%5C%5C%22popup%5C%5C%5C%22%20position%3D%5C%5C%5C%22below%5C%5C%5C%22%20state%3D%3C%3Cqualify%20%5C%5C%5C%22%24%3A%2Ftemp%2Ftmap-tracing%5C%5C%5C%22%3E%3E%20%3E%5C%5Cn%20%20%20%20%3Cdiv%20class%3D%5C%5C%5C%22tc-drop-down%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%20%20%3C%24button%20message%3D%5C%5C%5C%22tmap%3Atm-neighbourhood-reset-trace%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%20%20%20%20%7B%7B%24%3A%2Fcore%2Fimages%2Ferase%7D%7D%20Restart%5C%5Cn%20%20%20%20%20%20%3C%2F%24button%3E%5C%5Cn%20%20%20%20%20%20%3Cspan%5C%5Cn%20%20%20%20%20%20%20%20title%3D%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20Enable%20this%20option%20to%20trace%20your%20clicks%20on%20neighbouring%20nodes.%5C%5Cn%20%20%20%20%20%20%20%20%20%20Traced%20neighbours%20are%20temporarily%20added%20to%20the%20map%20(until%20the%20map%20is%20closed)%5C%5Cn%20%20%20%20%20%20%20%20%20%20as%20if%20they%20where%20regular%20nodes%20of%20the%20map%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%3E%5C%5Cn%20%20%20%20%20%20%20%20%3C%24checkbox%5C%5Cn%20%20%20%20%20%20%20%20%20%20field%3D%5C%5C%5C%22config.neighbourhood_trace_clicks%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20checked%3D%5C%5C%5C%22true%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20unchecked%3D%5C%5C%5C%22false%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20Trace%20clicked%20nodes%5C%5Cn%20%20%20%20%20%20%20%20%3C%2F%24checkbox%3E%5C%5Cn%20%20%20%20%20%20%3C%2Fspan%3E%5C%5Cn%20%20%20%20%20%20%3Cbr%20%2F%3E%5C%5Cn%20%20%20%20%20%20%3Cspan%20title%3D%5C%5C%5C%22Will%20focus%20an%20zoom%20on%20the%20latest%20traced%20node%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%20%20%20%20%3C%24checkbox%5C%5Cn%20%20%20%20%20%20%20%20%20%20field%3D%5C%5C%5C%22config.neighbourhood_focus_newly_traced_node%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20checked%3D%5C%5C%5C%22true%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20unchecked%3D%5C%5C%5C%22false%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20Focus%20traced%20nodes%5C%5Cn%20%20%20%20%20%20%20%20%3C%2F%24checkbox%3E%5C%5Cn%20%20%20%20%20%20%3C%2Fspan%3E%5C%5Cn%20%20%20%20%20%20%3Cbr%20%2F%3E%5C%5Cn%20%20%20%20%20%20%3Cspan%20title%3D%5C%5C%5C%22Per%20default%2C%20only%20neighbours%20of%20nodes%20matching%20the%20node%20filter%20are%20displayed.%20Enable%20this%20option%20to%20also%20show%20neighbours%20of%20traced%20nodes.%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%20%20%20%20%3C%24checkbox%20field%3D%5C%5C%5C%22config.neighbourhood_include_traced_node_neighbours%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20checked%3D%5C%5C%5C%22true%5C%5C%5C%22%20unchecked%3D%5C%5C%5C%22false%5C%5C%5C%22%3E%20Show%20neighbours%20of%20all%20traced%20nodes%3C%2F%24checkbox%3E%5C%5Cn%20%20%20%20%20%20%3C%2Fspan%3E%5C%5Cn%20%20%20%20%3C%2Fdiv%3E%5C%5Cn%20%20%3C%2F%24reveal%3E%5C%5Cn%5C%5Cn%3C!--%20%3D%3D%3D%20Export%20menu%20%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%20--%3E%5C%5Cn%5C%5Cn%20%20%3C%24reveal%5C%5Cn%20%20%20%20%20%20type%3D%5C%5C%5C%22match%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20text%3D%5C%5C%5C%22true%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20default%3D%3C%3Ctmap%20%5C%5C%5C%22option%5C%5C%5C%22%20%5C%5C%5C%22config.sys.editorMenuBar.showScreenshotButton%5C%5C%5C%22%3E%3E%3E%5C%5Cn%20%20%20%20%3C%24button%20class%3D%5C%5C%5C%22tmap-unicode-button%5C%5C%5C%22%20tooltip%3D%5C%5C%5C%22Open%20the%20map-export%20menu%5C%5C%5C%22%20popup%3D%3C%3Cqualify%20%5C%5C%5C%22%24%3A%2Ftemp%2FmapExport%5C%5C%5C%22%3E%3E%3E%5C%5Cn%20%20%20%20%20%20%7B%7B%24%3A%2Fcore%2Fimages%2Fdownload-button%7D%7D%5C%5Cn%20%20%20%20%3C%2F%24button%3E%5C%5Cn%20%20%3C%2F%24reveal%3E%5C%5Cn%5C%5Cn%20%20%3C%24reveal%20type%3D%5C%5C%5C%22popup%5C%5C%5C%22%20position%3D%5C%5C%5C%22below%5C%5C%5C%22%20state%3D%3C%3Cqualify%20%5C%5C%5C%22%24%3A%2Ftemp%2FmapExport%5C%5C%5C%22%3E%3E%3E%5C%5Cn%20%20%20%20%3Cdiv%20class%3D%5C%5C%5C%22tc-drop-down%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%3C%24button%5C%5Cn%20%20%20%20%20%20%20%20class%3D%5C%5C%5C%22tc-btn-invisible%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20tooltip%3D%5C%5C%5C%22Export%20the%20graph%20and%20all%20its%20elements%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20in%20form%20of%20a%20JSON%20file%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%20%20%20%20%7B%7B%24%3A%2Fcore%2Fimages%2Fpermalink-button%7D%7D%20Save%20as%20JSON%20file%5C%5Cn%20%20%20%20%20%20%3C%24action-sendmessage%5C%5Cn%20%20%20%20%20%20%20%20%20%20%24message%3D%5C%5C%5C%22tmap%3Atm-download-graph%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20view%3D%3C%3CviewLabel%3E%3E%20%2F%3E%5C%5Cn%20%20%20%20%3C%2F%24button%3E%5C%5Cn%20%20%20%20%3C%24button%5C%5Cn%20%20%20%20%20%20%20%20class%3D%5C%5C%5C%22tc-btn-invisible%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20tooltip%3D%5C%5C%5C%22Create%20a%20png%20image%20to%20download%20or%20save%20it%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20as%20image%20or%20view-placeholder%20in%20your%20wiki%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%20%20%20%20%7B%7B%24%3A%2Fcore%2Fimages%2Fpalette%7D%7D%20Save%20as%20png%20image%5C%5Cn%20%20%20%20%20%20%3C%24action-sendmessage%20%24message%3D%5C%5C%5C%22tmap%3Atm-save-canvas%5C%5C%5C%22%20%2F%3E%5C%5Cn%20%20%20%20%3C%2F%24button%3E%5C%5Cn%20%20%20%20%3C%2Fdiv%3E%5C%5Cn%20%20%3C%2F%24reveal%3E%5C%5Cn%5C%5Cn%3C!--%20%3D%3D%3D%20Raster%20menu%20%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%20--%3E%5C%5Cn%5C%5Cn%20%20%3C%24reveal%5C%5Cn%20%20%20%20%20%20type%3D%5C%5C%5C%22match%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20text%3D%5C%5C%5C%22true%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20default%3D%3C%3Ctmap%20%5C%5C%5C%22option%5C%5C%5C%22%20%5C%5C%5C%22config.sys.editorMenuBar.showRasterMenuButton%5C%5C%5C%22%3E%3E%3E%5C%5Cn%20%20%20%20%3C%24button%5C%5Cn%20%20%20%20%20%20tooltip%3D%5C%5C%5C%22Change%20the%20raster%20of%20your%20map%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20class%3D%5C%5C%5C%22tmap-unicode-button%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20popup%3D%3C%3Cqualify%20%5C%5C%5C%22%24%3A%2Ftemp%2FrasterMenu%5C%5C%5C%22%3E%3E%3E%5C%5Cn%20%20%20%20%20%20%7B%7B%24%3A%2Fcore%2Fimages%2Fline-width%7D%7D%5C%5Cn%20%20%20%20%3C%2F%24button%3E%5C%5Cn%20%20%3C%2F%24reveal%3E%5C%5Cn%5C%5Cn%20%20%3C%24reveal%20type%3D%5C%5C%5C%22popup%5C%5C%5C%22%20position%3D%5C%5C%5C%22below%5C%5C%5C%22%20state%3D%3C%3Cqualify%20%5C%5C%5C%22%24%3A%2Ftemp%2FrasterMenu%5C%5C%5C%22%3E%3E%3E%5C%5Cn%20%20%20%20%3Cdiv%20class%3D%5C%5C%5C%22tc-drop-down%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%3C%24button%20class%3D%5C%5C%5C%22tc-btn-invisible%5C%5C%5C%22%3EDisable%20raster%5C%5Cn%20%20%20%20%20%20%3C%24action-setfield%5C%5Cn%20%20%20%20%20%20%20%20%20%20%24tiddler%3D%3C%3CviewRoot%3E%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20config.raster%3D%5C%5C%5C%22%5C%5C%5C%22%20%2F%3E%5C%5Cn%20%20%20%20%3C%2F%24button%3E%5C%5Cn%20%20%20%20%3Cdiv%20class%3D%5C%5C%5C%22tmap-list-separator%5C%5C%5C%22%3ERaster%20sizes%3C%2Fdiv%3E%5C%5Cn%20%20%20%20%3C%24list%20filter%3D%5C%5C%5C%22%5B%5B50%7C50px%5D%5D%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5B%5B75%7C75px%5D%5D%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5B%5B100%7C100px%5D%5D%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5B%5B150%7C150px%5D%5D%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%20%20%3C%24button%20class%3D%5C%5C%5C%22tc-btn-invisible%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%20%20%20%20%3C%3Ctmap%20%5C%5C%5C%22splitAndSelect%5C%5C%5C%22%20%5C%5C%5C%22%7C%5C%5C%5C%22%20%5C%5C%5C%221%5C%5C%5C%22%3E%3E%5C%5Cn%20%20%20%20%20%20%20%20%3C%24action-setfield%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%24tiddler%3D%3C%3CviewRoot%3E%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20config.raster%3D%3C%3Ctmap%20%5C%5C%5C%22splitAndSelect%5C%5C%5C%22%20%5C%5C%5C%22%7C%5C%5C%5C%22%20%5C%5C%5C%220%5C%5C%5C%22%3E%3E%20%2F%3E%5C%5Cn%20%20%20%20%20%20%3C%2F%24button%3E%5C%5Cn%20%20%20%20%3C%2F%24list%3E%5C%5Cn%20%20%20%20%3C%2Fdiv%3E%5C%5Cn%20%20%3C%2F%24reveal%3E%5C%5Cn%5C%5Cn%3C%2Fdiv%3E%5C%5Cn%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fmisc%2FfocusButton%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fmisc%2FfocusButton%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%5Cdefine%20filter()%20%5Blist%5B%24%3A%2Ftemp%2Ftmap%2Fnodes%2F%24(viewLabel)%24%5Dsearch%3Atitle%7B%24%3A%2Ftemp%2Ftmap%2Fbar%2Fsearch%7D%5D%5C%5Cn%5C%5C%5C%5Cdefine%20concat(str)%20%24str%24%5C%5Cn%5C%5Cn%5C%5C%5C%5Cdefine%20state()%20%24(widgetPopupsPath)%24%2Ffocus%5C%5Cn%5C%5Cn%3Cdiv%20class%3D%5C%5C%5C%22tmap-focus-button%5C%5C%5C%22%3E%5C%5Cn%20%20%3C%24reveal%20type%3D%5C%5C%5C%22match%5C%5C%5C%22%20state%3D%3C%3Cstate%3E%3E%20text%3D%5C%5C%5C%22%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%3C%24button%5C%5Cn%20%20%20%20%20%20%20%20tooltip%3D%5C%5C%5C%22Zoom%20on%20a%20specific%20node%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20class%3D%3C%3Ctv-config-toolbar-class%3E%3E%3E%7B%7B%24%3A%2Fcore%2Fimages%2Fadvanced-search-button%7D%7D%5C%5Cn%20%20%20%20%20%3C%24action-setfield%20%24tiddler%3D%5C%5C%5C%22%24%3A%2Ftemp%2Ftmap%2Fbar%2Fsearch%5C%5C%5C%22%20text%3D%5C%5C%5C%22%5C%5C%5C%22%20%2F%3E%5C%5Cn%20%20%20%20%20%3C%24action-setfield%20%24tiddler%3D%3C%3Cstate%3E%3E%20text%3D%5C%5C%5C%221%5C%5C%5C%22%20%2F%3E%5C%5Cn%20%20%20%20%3C%2F%24button%3E%5C%5Cn%20%20%3C%2F%24reveal%3E%5C%5Cn%20%20%3C%24reveal%20type%3D%5C%5C%5C%22nomatch%5C%5C%5C%22%20state%3D%3C%3Cstate%3E%3E%20text%3D%5C%5C%5C%22%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%3C%24button%5C%5Cn%20%20%20%20%20%20%20%20tooltip%3D%5C%5C%5C%22Close%20zoom%20popup%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20class%3D%3C%3Ctv-config-toolbar-class%3E%3E%3E%7B%7B%24%3A%2Fcore%2Fimages%2Fadvanced-search-button%7D%7D%5C%5Cn%20%20%20%20%20%3C%24action-setfield%20%24tiddler%3D%3C%3Cstate%3E%3E%20text%3D%5C%5C%5C%22%5C%5C%5C%22%20%2F%3E%5C%5Cn%20%20%20%20%3C%2F%24button%3E%5C%5Cn%20%20%20%20%3Cdiv%20class%3D%5C%5C%5C%22tmap-search-dropdown%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%20%20%3Cdiv%20class%3D%5C%5C%5C%22tc-drop-down%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%20%20%20%20%3C%24edit-text%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20focus%3D%5C%5C%5C%22true%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20tiddler%3D%5C%5C%5C%22%24%3A%2Ftemp%2Ftmap%2Fbar%2Fsearch%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20field%3D%5C%5C%5C%22text%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20type%3D%5C%5C%5C%22text%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20tag%3D%5C%5C%5C%22input%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20default%3D%5C%5C%5C%22%5C%5C%5C%22%20%2F%3E%5C%5Cn%20%20%20%20%20%20%20%20%3Csmall%3E%3C%24count%20filter%3D%3C%3Cfilter%3E%3E%20%2F%3E%20results%3C%2Fsmall%3E%5C%5Cn%20%20%20%20%20%20%20%20%3Chr%20%2F%3E%5C%5Cn%20%20%20%20%20%20%20%20%3Cdiv%20class%3D%5C%5C%5C%22tmap-very-small-list%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%3C%24list%20filter%3D%3C%3Cfilter%3E%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20variable%3D%5C%5C%5C%22item%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20emptyMessage%3D%5C%5C%5C%22%2F%2FNo%20results%2F%2F%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%3C%24button%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20class%3D%5C%5C%5C%22tc-btn-invisible%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20message%3D%5C%5C%5C%22tmap%3Atm-focus-node%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20param%3D%3C%3Citem%3E%3E%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C%24view%20tiddler%3D%3C%3Citem%3E%3E%20field%3D%5C%5C%5C%22title%5C%5C%5C%22%20%2F%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%3C%2F%24button%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%3C%2F%24list%3E%5C%5Cn%20%20%20%20%20%20%20%20%3C%2Fdiv%3E%5C%5Cn%20%20%20%20%20%20%3C%2Fdiv%3E%5C%5Cn%20%20%20%20%3C%2Fdiv%3E%5C%5Cn%20%20%3C%2F%24reveal%3E%5C%5Cn%3C%2Fdiv%3E%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fhook%2Feditor%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fhook%2Feditor%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22caption%5C%22%3A%20%5C%22Map%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22tags%5C%22%3A%20%5C%22%24%3A%2Ftags%2FSideBar%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%5Cdefine%20width()%20calc(100%25%20-%2015px)%5C%5Cn%5C%5Cn%3Cdiv%20class%3D%5C%5C%5C%22tmap-mobile-editor%5C%5C%5C%22%3E%5C%5Cn%20%20%3Cdiv%20class%3D%5C%5C%5C%22tmap-flash-message%20tmap-warning%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20The%20editor%20is%20not%20displayed%20in%20mobile%20mode.%5C%5Cn%20%20%3C%2Fdiv%3E%5C%5Cn%3C%2Fdiv%3E%5C%5Cn%3Cdiv%20class%3D%5C%5C%5C%22tmap-desktop-editor%5C%5C%5C%22%3E%5C%5Cn%20%20%3C%24tiddlymap%5C%5Cn%20%20%20%20class%3D%5C%5C%5C%22tmap-sidebar-map-editor%5C%5C%5C%22%5C%5Cn%20%20%20%20editor%3D%5C%5C%5C%22advanced%5C%5C%5C%22%5C%5Cn%20%20%20%20object-id%3D%5C%5C%5C%22main_editor%5C%5C%5C%22%5C%5Cn%20%20%20%20click-to-use%3D%5C%5C%5C%22false%5C%5C%5C%22%3E%5C%5Cn%20%20%3C%2F%24tiddlymap%3E%5C%5Cn%3C%2Fdiv%3E%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fhook%2FliveTab%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fhook%2FliveTab%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22caption%5C%22%3A%20%5C%22Live%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%5Cdefine%20width()%20calc(100%25%20-%2015px)%5C%5Cn%5C%5Cn%3Cdiv%20class%3D%5C%5C%5C%22tmap-mobile-editor%5C%5C%5C%22%3E%5C%5Cn%20%20%3Cdiv%20class%3D%5C%5C%5C%22tmap-flash-message%20tmap-warning%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20The%20live%20tab%20is%20not%20displayed%20in%20mobile%20mode.%5C%5Cn%20%20%3C%2Fdiv%3E%5C%5Cn%3C%2Fdiv%3E%5C%5Cn%3Cdiv%20class%3D%5C%5C%5C%22tmap-desktop-editor%5C%5C%5C%22%3E%5C%5Cn%20%20%3C%24set%20name%3D%5C%5C%5C%22view%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20filter%3D%5C%5C%5C%22%5B%7B%24%3A%2Ftemp%2Ftmap%2FcurrentTiddler%7Dget%5Btmap.open-view%5D%5D%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20emptyValue%3D%3C%3Ctmap%20%5C%5C%5C%22option%5C%5C%5C%22%20%5C%5C%5C%22config.sys.liveTab.fallbackView%5C%5C%5C%22%3E%3E%3E%5C%5Cn%20%20%3Cdiv%3E%5C%5Cn%20%20%20%20%3C%24tiddlymap%5C%5Cn%20%20%20%20%20%20%20%20view%3D%3C%3Cview%3E%3E%5C%5Cn%20%20%20%20%20%20%20%20click-to-use%3D%5C%5C%5C%22false%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20refresh-triggers%3D%5C%5C%5C%22%24%3A%2Ftemp%2Ftmap%2FcurrentTiddler%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20object-id%3D%5C%5C%5C%22live_tab%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%3C%2F%24tiddlymap%3E%5C%5Cn%20%20%3C%2Fdiv%3E%5C%5Cn%20%20%3C%2F%24set%3E%20%5C%5Cn%3C%2Fdiv%3E%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fmisc%2FquickConnectButton%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fmisc%2FquickConnectButton%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22tags%5C%22%3A%20%5C%22%24%3A%2Ftags%2FViewToolbar%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22description%5C%22%3A%20%5C%22%7B%7B%24%3A%2Flanguage%2FButtons%2FTiddlyMap%2FHint%7D%7D%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22caption%5C%22%3A%20%5C%22%7B%7B%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Ficon%7D%7D%20%7B%7B%24%3A%2Flanguage%2FButtons%2FTiddlyMap%2FCaption%7D%7D%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%5Cdefine%20buttonClass()%20%24(tv-config-toolbar-class)%24%20%24(additional-classes)%24%5C%5Cn%5C%5Cn%5C%5C%5C%5Cdefine%20nonExistentItem()%5C%5Cn%3C%3Citem%3E%3E%20%3Cspan%20style%3D%5C%5C%5C%22color%3A%20%239E9E9E%5C%5C%5C%22%3E(will%20be%20created)%3C%2Fspan%3E%5C%5Cn%5C%5C%5C%5Cend%5C%5Cn%5C%5Cn%5C%5C%5C%5Cdefine%20noConnectionsMsg()%5C%5Cn%3Ctr%3E%3Ctd%20colspan%3D%5C%5C%5C%224%5C%5C%5C%22%3E%2F%2FNo%20connections%20found!%2F%2F%3C%2Ftd%3E%3C%2Ftr%3E%5C%5Cn%5C%5C%5C%5Cend%5C%5Cn%5C%5Cn%5C%5C%5C%5Cdefine%20normalSearchFilter()%5C%5Cn%5B!is%5Bsystem%5D!has%5Bdraft.of%5Dsearch%3Atitle%7B%24%3A%2Ftemp%2FquickConnectSearch%7Dsortcs%5Btitle%5Dlimit%5B50%5D%5D%5C%5Cn%5C%5C%5C%5Cend%5C%5Cn%5C%5Cn%5C%5C%5C%5Cdefine%20regexSearchFilter()%5C%5Cn%5B!is%5Bsystem%5D!has%5Bdraft.of%5Dregexp%7B%24%3A%2Ftemp%2FquickConnectSearch%7Dsortcs%5Btitle%5Dlimit%5B50%5D%5D%5C%5Cn%5C%5C%5C%5Cend%5C%5Cn%5C%5Cn%5C%5C%5C%5Cdefine%20showButton(state)%5C%5Cn%3C%24button%20set%3D%5C%5C%5C%22%24%3A%2Ftemp%2Ftmap%2Fstate%2Fpopup%2FquickConnect%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20setTo%3D%5C%5C%5C%22%24state%24%5C%5C%5C%22%20tooltip%3D%7B%7B%24%3A%2Flanguage%2FButtons%2FTiddlyMap%2FHint%7D%7D%20%5C%5Cn%20%20%20%20%20%20%20%20%20aria-label%3D%7B%7B%24%3A%2Flanguage%2FButtons%2FTiddlyMap%2FCaption%7D%7D%5C%5Cn%20%20%20%20%20%20%20%20%20class%3D%3C%3CbuttonClass%3E%3E%3E%5C%5Cn%3C%24list%20filter%3D%5C%5C%5C%22%5B%3Ctv-config-toolbar-icons%3Eprefix%5Byes%5D%5D%5C%5C%5C%22%3E%7B%7B%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Ficon%7D%7D%3C%2F%24list%3E%5C%5Cn%3C%24list%20filter%3D%5C%5C%5C%22%5B%3Ctv-config-toolbar-text%3Eprefix%5Byes%5D%5D%5C%5C%5C%22%3E%5C%5Cn%3Cspan%20class%3D%5C%5C%5C%22tc-btn-text%5C%5C%5C%22%3E%3C%24text%20text%3D%7B%7B%24%3A%2Flanguage%2FButtons%2FTiddlyMap%2FCaption%7D%7D%2F%3E%3C%2Fspan%3E%5C%5Cn%3C%2F%24list%3E%5C%5Cn%3C%2F%24button%3E%5C%5Cn%5C%5C%5C%5Cend%5C%5Cn%5C%5Cn%5C%5C%5C%5Cdefine%20searchResults()%5C%5Cn%3Ctd%3E%5C%5Cn%20%20%3C%24button%20tooltip%3D%5C%5C%5C%22Create%20incoming%20edge%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%3C%3Ctmap%20%5C%5C%5C%22option%5C%5C%5C%22%20%5C%5C%5C%22misc.arrows.in%5C%5C%5C%22%3E%3E%5C%5Cn%20%20%20%20%3C%24action-sendmessage%20%24message%3D%5C%5C%5C%22tmap%3Atm-create-edge%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20from%3D%3C%3Citem%3E%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20to%3D%3C%3CcurrentTiddler%3E%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20force%3D%5C%5C%5C%22true%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20label%3D%7B%7B%24%3A%2Ftemp%2FquickConnectSearch%2Ftype%7D%7D%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20view%3D%7B%7B%24%3A%2Ftemp%2FquickConnectSearch%2Fview%7D%7D%20%2F%3E%5C%5Cn%20%20%3C%2F%24button%3E%5C%5Cn%3C%2Ftd%3E%5C%5Cn%3Ctd%3E%5C%5Cn%20%20%3C%24button%20tooltip%3D%5C%5C%5C%22Create%20outgoing%20edge%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%3C%3Ctmap%20%5C%5C%5C%22option%5C%5C%5C%22%20%5C%5C%5C%22misc.arrows.out%5C%5C%5C%22%3E%3E%5C%5Cn%20%20%20%20%3C%24action-sendmessage%20%24message%3D%5C%5C%5C%22tmap%3Atm-create-edge%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20from%3D%3C%3CcurrentTiddler%3E%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20to%3D%3C%3Citem%3E%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20force%3D%5C%5C%5C%22true%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20label%3D%7B%7B%24%3A%2Ftemp%2FquickConnectSearch%2Ftype%7D%7D%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20view%3D%7B%7B%24%3A%2Ftemp%2FquickConnectSearch%2Fview%7D%7D%20%2F%3E%5C%5Cn%20%20%3C%2F%24button%3E%5C%5Cn%3C%2Ftd%3E%5C%5Cn%3Ctd%3E%5C%5Cn%20%20%3C%24list%5C%5Cn%20%20%20%20%20%20filter%3D%5C%5C%5C%22%5B%3Citem%3Eis%5Btiddler%5D%5D%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20emptyMessage%3D%3C%3CnonExistentItem%3E%3E%3E%5C%5Cn%20%20%20%20%3C%24view%20tiddler%3D%3C%3Citem%3E%3E%20field%3D%5C%5C%5C%22title%5C%5C%5C%22%20%2F%3E%5C%5Cn%20%20%3C%2F%24list%3E%5C%5Cn%3C%2Ftd%3E%5C%5Cn%5C%5C%5C%5Cend%5C%5Cn%5C%5Cn%5C%5C%5C%5Cdefine%20hidePopup()%5C%5Cn%3C%24macrocall%20%24name%3D%5C%5C%5C%22showButton%5C%5C%5C%22%20state%3D%3C%3Cqualify%3E%3E%20%2F%3E%5C%5Cn%5C%5C%5C%5Cend%5C%5Cn%5C%5Cn%5C%5C%5C%5Cdefine%20showPopup()%5C%5Cn%3C%24set%20name%3D%5C%5C%5C%22additional-classes%5C%5C%5C%22%20value%3D%5C%5C%5C%22tmap-active-button%5C%5C%5C%22%3E%5C%5Cn%20%20%3C%24macrocall%20%24name%3D%5C%5C%5C%22showButton%5C%5C%5C%22%20state%3D%5C%5C%5C%22%5C%5C%5C%22%20%2F%3E%5C%5Cn%3C%2F%24set%3E%5C%5Cn%3C%24set%5C%5Cn%20%20%20%20name%3D%5C%5C%5C%22searchFilter%5C%5C%5C%22%5C%5Cn%20%20%20%20filter%3D%5C%5C%5C%22%5Bfield%3Atitle%5B%24%3A%2Fstate%2Ftmap%2Ftid-toolbar%5Dhas%5Bre-filter%5D%5D%5C%5C%5C%22%5C%5Cn%20%20%20%20value%3D%3C%3CregexSearchFilter%3E%3E%5C%5Cn%20%20%20%20emptyValue%3D%3C%3CnormalSearchFilter%3E%3E%3E%5C%5Cn%3Cdiv%20class%3D%5C%5C%5C%22tmap-quick-connect%20tc-reveal%20tc-popup%5C%5C%5C%22%3E%5C%5Cn%20%20%3Cdiv%20class%3D%5C%5C%5C%22tc-drop-down%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%3Cdiv%20class%3D%5C%5C%5C%22title%5C%5C%5C%22%3ECreate%20connection%3C%2Fdiv%3E%5C%5Cn%20%20%20%20%3Ctable%20class%3D%5C%5C%5C%22tmap-quick-connect-search-bar%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%20%20%3Ctr%3E%5C%5Cn%20%20%20%20%20%20%20%20%3Ctd%3EType%3A%3C%2Ftd%3E%5C%5Cn%20%20%20%20%20%20%20%20%3Ctd%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%3C%24edit-text%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20tiddler%3D%5C%5C%5C%22%24%3A%2Ftemp%2FquickConnectSearch%2Ftype%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20field%3D%5C%5C%5C%22text%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3D%5C%5C%5C%22text%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20tag%3D%5C%5C%5C%22input%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20default%3D%5C%5C%5C%22%5C%5C%5C%22%20%2F%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%3C%24select%20tiddler%3D%5C%5C%5C%22%24%3A%2Ftemp%2FquickConnectSearch%2Ftype%5C%5C%5C%22%20default%3D%5C%5C%5C%22%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%3Coption%3E%3C%2Foption%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%3C%24list%20filter%3D%3C%3Ctmap%20%5C%5C%5C%22option%5C%5C%5C%22%20%5C%5C%5C%22selector.allEdgeTypesById%5C%5C%5C%22%3E%3E%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Coption%3E%7B%7B!!title%7D%7D%3C%2Foption%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%3C%2F%24list%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%3C%2F%24select%3E%5C%5Cn%20%20%20%20%20%20%20%20%3C%2Ftd%3E%5C%5Cn%20%20%20%20%20%20%3C%2Ftr%3E%5C%5Cn%20%20%20%20%20%20%3Ctr%3E%5C%5Cn%20%20%20%20%20%20%20%20%3Ctd%3ESearch%3A%3C%2Ftd%3E%5C%5Cn%20%20%20%20%20%20%20%20%3Ctd%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%3C%24edit-text%20tiddler%3D%5C%5C%5C%22%24%3A%2Ftemp%2FquickConnectSearch%5C%5C%5C%22%20type%3D%5C%5C%5C%22text%5C%5C%5C%22%20tag%3D%5C%5C%5C%22input%5C%5C%5C%22%20default%3D%5C%5C%5C%22%5C%5C%5C%22%3E%3C%2F%24edit-text%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%3C%24checkbox%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20tiddler%3D%5C%5C%5C%22%24%3A%2Fstate%2Ftmap%2Ftid-toolbar%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20field%3D%5C%5C%5C%22re-filter%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20checked%3D%5C%5C%5C%221%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20unchecked%3D%5C%5C%5C%22%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20default%3D%5C%5C%5C%22%5C%5C%5C%22%3E%20regexp%5C%5Cn%20%20%20%20%20%20%20%20%20%20%3C%2F%24checkbox%3E%5C%5Cn%3C!--%5C%5Cn%20%20%20%20%20%20%20%20%20%20%3Csmall%3E(%3C%24count%20filter%3D%3C%3CsearchFilter%3E%3E%20%2F%3E%20results)%3C%2Fsmall%3E%5C%5Cn--%3E%5C%5Cn%20%20%20%20%20%20%20%20%3C%2Ftd%3E%5C%5Cn%20%20%20%20%20%20%3C%2Ftr%3E%5C%5Cn%20%20%20%20%20%20%3C%2Ftable%3E%5C%5Cn%20%20%20%20%20%20%3Ctable%20class%3D%5C%5C%5C%22tmap-create-connection-table%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%20%20%3Ctr%3E%5C%5Cn%20%20%20%20%20%20%20%20%3Ctd%20colspan%3D%5C%5C%5C%222%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%3Ctable%20class%3D%5C%5C%5C%22tmap-very-small-list%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%3C%24list%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20filter%3D%3C%3CsearchFilter%3E%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20variable%3D%5C%5C%5C%22item%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%3Ctr%3E%3C%3CsearchResults%3E%3E%3C%2Ftr%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%3C%2F%24list%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%3Ctr%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%3C%24list%20filter%3D%5C%5C%5C%22%5B%7B%24%3A%2Ftemp%2FquickConnectSearch%7Dregexp%5B.%2B%5D%5D%20-%5Bis%5Btiddler%5D%5D%5C%5C%5C%22%20variable%3D%5C%5C%5C%22item%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C%3CsearchResults%3E%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%3C%2F%24list%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Ftr%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%3C%2Ftable%3E%5C%5Cn%20%20%20%20%20%20%20%20%3C%2Ftd%3E%5C%5Cn%20%20%20%20%20%20%3C%2Ftr%3E%5C%5Cn%20%20%20%20%3C%2Ftable%3E%5C%5Cn%20%20%20%20%3Cdiv%20class%3D%5C%5C%5C%22title%5C%5C%5C%22%3EExisting%20Connections%3C%2Fdiv%3E%5C%5Cn%20%20%20%20%3Cdiv%20class%3D%5C%5C%5C%22tmap-quick-connect-existing-bar%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%20%20%3C%24select%5C%5Cn%20%20%20%20%20%20%20%20%20%20tiddler%3D%5C%5C%5C%22%24%3A%2Fstate%2Ftmap%2Ftid-toolbar%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20field%3D%5C%5C%5C%22direction%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20default%3D%5C%5C%5C%22both%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%3Coption%20value%3D%5C%5C%5C%22both%5C%5C%5C%22%3Eboth%3C%2Foption%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%3Coption%20value%3D%5C%5C%5C%22in%5C%5C%5C%22%3Eincoming%3C%2Foption%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%3Coption%20value%3D%5C%5C%5C%22out%5C%5C%5C%22%3Eoutgoing%3C%2Foption%3E%5C%5Cn%20%20%20%20%20%20%3C%2F%24select%3E%5C%5Cn%20%20%20%20%20%20%3C%24checkbox%5C%5Cn%20%20%20%20%20%20%20%20%20%20tiddler%3D%5C%5C%5C%22%24%3A%2Fstate%2Ftmap%2Ftid-toolbar%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20field%3D%5C%5C%5C%22filter.links%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20checked%3D%5C%5C%5C%22-%5B%5Btw-body%3Alink%5D%5D%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20unchecked%3D%5C%5C%5C%22%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20default%3D%5C%5C%5C%22%5C%5C%5C%22%3E%20hide%20links%5C%5Cn%20%20%20%20%20%20%3C%2F%24checkbox%3E%5C%5Cn%20%20%20%20%3C%2Fdiv%3E%5C%5Cn%20%20%20%20%3Ctable%20class%3D%5C%5C%5C%22tmap-connection-table%5C%5C%5C%22%3E%5C%5Cn%3C!--%5C%5Cn%20%20%20%20%3Ctr%3E%5C%5Cn%20%20%20%20%20%20%3Cth%3E%3C%2Fth%3E%5C%5Cn%20%20%20%20%20%20%3Cth%3ETiddler%3C%2Fth%3E%5C%5Cn%20%20%20%20%20%20%3Cth%3EType%3C%2Fth%3E%5C%5Cn%20%20%20%20%20%20%3Cth%3E%3C%2Fth%3E%5C%5Cn%20%20%20%20%3C%2Ftr%3E%5C%5Cn--%3E%5C%5Cn%20%20%20%20%5C%5Cn%20%20%20%20%3C%24tmap-connections%5C%5Cn%20%20%20%20%20%20%20%20filter%3D%3C%3Ctmap%20mergeFields%20%5C%5C%5C%22%24%3A%2Fstate%2Ftmap%2Ftid-toolbar%5C%5C%5C%22%20%5C%5C%5C%22filter.%5C%5C%5C%22%3E%3E%5C%5Cn%20%20%20%20%20%20%20%20direction%3D%7B%7B%24%3A%2Fstate%2Ftmap%2Ftid-toolbar!!direction%7D%7D%5C%5Cn%20%20%20%20%20%20%20%20emptyMessage%3D%3C%3CnoConnectionsMsg%3E%3E%3E%5C%5Cn%20%20%20%20%20%20%3Ctr%3E%5C%5Cn%20%20%20%20%20%20%20%20%3Ctd%20title%3D%3C%3Cdirection%3E%3E%3E%3C%3CdirectionSymbol%3E%3E%3C%2Ftd%3E%5C%5Cn%20%20%20%20%20%20%20%20%3Ctd%3E%3C%24link%20to%3D%3C%3Cneighbour%3E%3E%3E%3C%24view%20field%3D%5C%5C%5C%22title%5C%5C%5C%22%20%2F%3E%3C%2F%24link%3E%3C%2Ftd%3E%5C%5Cn%20%20%20%20%20%20%20%20%3Ctd%3E%3C%3Cedge.type%3E%3E%3C%2Ftd%3E%5C%5Cn%20%20%20%20%20%20%20%20%3Ctd%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%3C%24button%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20tooltip%3D%5C%5C%5C%22Delete%20this%20connection%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20class%3D%5C%5C%5C%22tc-btn-invisible%5C%5C%5C%22%3E%7B%7B%24%3A%2Fcore%2Fimages%2Fclose-button%7D%7D%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%3C%24action-sendmessage%20%24message%3D%5C%5C%5C%22tmap%3Atm-remove-edge%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20id%3D%3C%3Cedge.id%3E%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20from%3D%3C%3Cedge.from%3E%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20to%3D%3C%3Cedge.to%3E%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3D%3C%3Cedge.type%3E%3E%20%2F%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%3C%2F%24button%3E%5C%5Cn%20%20%20%20%20%20%20%20%3C%2Ftd%3E%5C%5Cn%20%20%20%20%20%20%3C%2Ftr%3E%5C%5Cn%20%20%20%20%3C%2F%24tmap-connections%3E%5C%5Cn%20%20%20%20%3C%2Ftable%3E%20%20%20%5C%5Cn%20%20%3C%2Fdiv%3E%5C%5Cn%3C%2Fdiv%3E%5C%5Cn%3C%2F%24set%3E%5C%5Cn%5C%5C%5C%5Cend%5C%5Cn%5C%5Cn%3C%24list%20filter%3D%5C%5C%5C%22%5Ball%5Bcurrent%5Dis%5Btiddler%5D%5D%5C%5C%5C%22%3E%3C%24list%20filter%3D%5C%5C%5C%22%5B%7B%24%3A%2Ftemp%2Ftmap%2Fstate%2Fpopup%2FquickConnect%7Dprefix%3Cqualify%3E%5D%5C%5C%5C%22%20variable%3D%5C%5C%5C%22item%5C%5C%5C%22%20emptyMessage%3D%3C%3ChidePopup%3E%3E%3E%3C%3CshowPopup%3E%3E%3C%2F%24list%3E%3C%2F%24list%3E%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fmedia%2Ffullscreen.png%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fmedia%2Ffullscreen.png%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22type%5C%22%3A%20%5C%22image%2Fpng%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89%2BbN%2FrXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz%2FSMBAPh%2BPDwrIsAHvgABeNMLCADATZvAMByH%2Fw%2FqQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf%2BbTAICd%2BJl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA%2Fg88wAAKCRFRHgg%2FP9eM4Ors7ONo62Dl8t6r8G%2FyJiYuP%2B5c%2BrcEAAAOF0ftH%2BLC%2BzGoA7BoBt%2FqIl7gRoXgugdfeLZrIPQLUAoOnaV%2FNw%2BH48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl%2FAV%2F1s%2BX48%2FPf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H%2FLcL%2F%2Fwd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s%2BwM%2B3zUAsGo%2BAXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93%2F%2B8%2F%2FUegJQCAZkmScQAAXkQkLlTKsz%2FHCAAARKCBKrBBG%2FTBGCzABhzBBdzBC%2FxgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD%2FphCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8%2BQ8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8%2BxdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR%2BcQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI%2BksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG%2BQh8lsKnWJAcaT4U%2BIoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr%2Bh0uhHdlR5Ol9BX0svpR%2BiX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK%2BYTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI%2BpXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q%2FpH5Z%2FYkGWcNMw09DpFGgsV%2FjvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY%2FR27iz2qqaE5QzNKM1ezUvOUZj8H45hx%2BJx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4%2FOBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up%2B6Ynr5egJ5Mb6feeb3n%2Bhx9L%2F1U%2FW36p%2FVHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm%2Beb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw%2B6TvZN9un2N%2FT0HDYfZDqsdWh1%2Bc7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc%2BLpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26%2FuNu5p7ofcn8w0nymeWTNz0MPIQ%2BBR5dE%2FC5%2BVMGvfrH5PQ0%2BBZ7XnIy9jL5FXrdewt6V3qvdh7xc%2B9j5yn%2BM%2B4zw33jLeWV%2FMN8C3yLfLT8Nvnl%2BF30N%2FI%2F9k%2F3r%2F0QCngCUBZwOJgUGBWwL7%2BHp8Ib%2BOPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo%2Bqi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt%2F87fOH4p3iC%2BN7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi%2FRNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z%2Bpn5mZ2y6xlhbL%2BxW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a%2FzYnKOZarnivN7cyzytuQN5zvn%2F%2FtEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1%2B1dT1gvWd%2B1YfqGnRs%2BFYmKrhTbF5cVf9go3HjlG4dvyr%2BZ3JS0qavEuWTPZtJm6ebeLZ5bDpaql%2BaXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO%2FPLi8ZafJzs07P1SkVPRU%2BlQ27tLdtWHX%2BG7R7ht7vPY07NXbW7z3%2FT7JvttVAVVN1WbVZftJ%2B7P3P66Jqun4lvttXa1ObXHtxwPSA%2F0HIw6217nU1R3SPVRSj9Yr60cOxx%2B%2B%2Fp3vdy0NNg1VjZzG4iNwRHnk6fcJ3%2FceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w%2B0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb%2B%2B6EHTh0kX%2Fi%2Bc7vDvOXPK4dPKy2%2BUTV7hXmq86X23qdOo8%2FpPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb%2F1tWeOT3dvfN6b%2FfF9%2FXfFt1%2Bcif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v%2B3Njv3H9qwHeg89HcR%2FcGhYPP%2FpH1jw9DBY%2BZj8uGDYbrnjg%2BOTniP3L96fynQ89kzyaeF%2F6i%2FsuuFxYvfvjV69fO0ZjRoZfyl5O%2FbXyl%2FerA6xmv28bCxh6%2ByXgzMV70VvvtwXfcdx3vo98PT%2BR8IH8o%2F2j5sfVT0Kf7kxmTk%2F8EA5jz%2FGMzLdsAAAAGYktHRAD%2FAP8A%2F6C9p5MAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQffARwOKQxPfTsHAAAEcUlEQVRIx72XX0xTZxjGn%2Bc9JcYQ50qM5RjKkOOG1NQEQiMV1tkLIbLsypCahsTojIkX6kgBr7aG7Wo6ou7STHbnjdGb%2FYmb2ABODdiIxKR%2FIdoeR1PIKJAZdZntLnZq0CEWtHtuzjk57%2Fl%2B3%2Fe9J8%2F7fkQB8vv9DIfDHyqK8nEul2sSkS0AzABAMkNyAsBNAD9qmna9t7c397oxudzLXbt2icVi%2BYxkH0mQ%2F4YvdRWRxZ%2F6EonEmcHBweyKwR6P5wCAfhEBSWzatClls9mS27ZtS1dVVc1v3LgxAwDT09PmBw8erI9Go5ZIJFKZSqVUEUE2mwXJg%2F39%2Fd8XDN63b9%2BXAD4nie3bt0dbWlpC9fX1eiFpGR8ftwYCAVsoFKoxdumrc%2BfOffFynLIE9AyAHpLYvXv3yNGjR4dUVV1AgSovL19wOp2Tjx49QiKRqCD5kcPhMAeDwSuvBHs8nq9FxEcSXq93wOPx3MUqZbfbf1%2BzZs2f0Wi0mmSjw%2BEoDQaDV%2F8D9ng8B0ieFBHs37%2F%2F17a2tjDeUJqmzZSWls6HQiFNUZQmh8ORvH379t3nOW5vb1dMJtPfJLFnz56bHR0dQQDwer3HlhrwwoUL3y5%2Bfl3cpUuXGoaHh3cCQCqVMl28ePGZAICiKMdJwm63R%2FPQt6m9e%2FcGbTZbhCRUVT0OACa%2F3894PN4HAK2traFCVriaHXC5XKFYLLYVQJ%2Ff7z8tsVjMBQBWqzVVV1eno0iqra19qKpqSkSwsLDgEpJtJFFbW5tEkaVpWlJEUFJS0iYkdxrgdLHB1dXVacNenSaS75NEVVXV%2FEpzW2jO87JarfOGp39gImkWEeS9t5gqKyvLGGCzKV8E%2Fi%2Flq5jkcrkMSUxPT5uLDZ2dnTWLCEQkIyISFxEkk8n1Lwd6vd5jr3Kl5fSq76amptYbFSsmInKLJOLxuKXYK9Z13WKAbwnJnwAgGo1WFhucTCYrFUUBgJ%2BloqJimCTS6bR67969imJBJyYmKmZnZ1URgcvlum7q7e3NHT582Aegb3Bw0Ga32x8ulbPVVKfFunPnjk1EkMvlfG63OysAkMlkzhrbvfXy5csNb3u1gUCg4f79%2B1sB4MmTJ2df6LmOHDlyUETOK4qC9vb2X5qbm6NvAzo2NlYzMDDQShLZbPbQiRMnzr%2FQgQSDwbEdO3aUkmyKRCJb1q1bN1dZWfnHm0IDgUCr8Sef6unpOblkzzU6Onq1sbHRTLIxEolsefr06bOampqp1UCHhoYabty44Tbyerarq8u3bJc5MjJyxel0liqK0qTrulXX9XfXrl3714YNGwrqNCcnJ63Xrl1zhsPhOsMeT%2Fl8Pl%2FBDX13d%2FenAL4zLA4WiyWlaVpi8%2BbNaVVVF8rKyjJ5G5yZmXknkUhYdF1%2Fb25uTs2fOkge6uzsPL%2FiI4zf75fHjx93KoryjclkgtGfgSQMI0B%2BYovvSXbV19efdrvdKz%2FCvDyBbDbbTPITkjtFRBOR54ZPclJEbgL4weFw%2FLYcMK9%2FAFcdm7xTEIntAAAAAElFTkSuQmCC%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fmedia%2Fhalfscreen.png%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fmedia%2Fhalfscreen.png%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22type%5C%22%3A%20%5C%22image%2Fpng%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89%2BbN%2FrXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz%2FSMBAPh%2BPDwrIsAHvgABeNMLCADATZvAMByH%2Fw%2FqQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf%2BbTAICd%2BJl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA%2Fg88wAAKCRFRHgg%2FP9eM4Ors7ONo62Dl8t6r8G%2FyJiYuP%2B5c%2BrcEAAAOF0ftH%2BLC%2BzGoA7BoBt%2FqIl7gRoXgugdfeLZrIPQLUAoOnaV%2FNw%2BH48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl%2FAV%2F1s%2BX48%2FPf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H%2FLcL%2F%2Fwd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s%2BwM%2B3zUAsGo%2BAXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93%2F%2B8%2F%2FUegJQCAZkmScQAAXkQkLlTKsz%2FHCAAARKCBKrBBG%2FTBGCzABhzBBdzBC%2FxgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD%2FphCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8%2BQ8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8%2BxdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR%2BcQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI%2BksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG%2BQh8lsKnWJAcaT4U%2BIoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr%2Bh0uhHdlR5Ol9BX0svpR%2BiX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK%2BYTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI%2BpXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q%2FpH5Z%2FYkGWcNMw09DpFGgsV%2FjvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY%2FR27iz2qqaE5QzNKM1ezUvOUZj8H45hx%2BJx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4%2FOBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up%2B6Ynr5egJ5Mb6feeb3n%2Bhx9L%2F1U%2FW36p%2FVHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm%2Beb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw%2B6TvZN9un2N%2FT0HDYfZDqsdWh1%2Bc7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc%2BLpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26%2FuNu5p7ofcn8w0nymeWTNz0MPIQ%2BBR5dE%2FC5%2BVMGvfrH5PQ0%2BBZ7XnIy9jL5FXrdewt6V3qvdh7xc%2B9j5yn%2BM%2B4zw33jLeWV%2FMN8C3yLfLT8Nvnl%2BF30N%2FI%2F9k%2F3r%2F0QCngCUBZwOJgUGBWwL7%2BHp8Ib%2BOPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo%2Bqi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt%2F87fOH4p3iC%2BN7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi%2FRNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z%2Bpn5mZ2y6xlhbL%2BxW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a%2FzYnKOZarnivN7cyzytuQN5zvn%2F%2FtEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1%2B1dT1gvWd%2B1YfqGnRs%2BFYmKrhTbF5cVf9go3HjlG4dvyr%2BZ3JS0qavEuWTPZtJm6ebeLZ5bDpaql%2BaXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO%2FPLi8ZafJzs07P1SkVPRU%2BlQ27tLdtWHX%2BG7R7ht7vPY07NXbW7z3%2FT7JvttVAVVN1WbVZftJ%2B7P3P66Jqun4lvttXa1ObXHtxwPSA%2F0HIw6217nU1R3SPVRSj9Yr60cOxx%2B%2B%2Fp3vdy0NNg1VjZzG4iNwRHnk6fcJ3%2FceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w%2B0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb%2B%2B6EHTh0kX%2Fi%2Bc7vDvOXPK4dPKy2%2BUTV7hXmq86X23qdOo8%2FpPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb%2F1tWeOT3dvfN6b%2FfF9%2FXfFt1%2Bcif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v%2B3Njv3H9qwHeg89HcR%2FcGhYPP%2FpH1jw9DBY%2BZj8uGDYbrnjg%2BOTniP3L96fynQ89kzyaeF%2F6i%2FsuuFxYvfvjV69fO0ZjRoZfyl5O%2FbXyl%2FerA6xmv28bCxh6%2ByXgzMV70VvvtwXfcdx3vo98PT%2BR8IH8o%2F2j5sfVT0Kf7kxmTk%2F8EA5jz%2FGMzLdsAAAAGYktHRAD%2FAP8A%2F6C9p5MAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQffBAgRIDS2XJMlAAAEdklEQVRIx72XX2xTZRjGn%2Bf9TiAEGHYhlMIObut0dGTAQlP2R2e9GUmNN0vYRrkgICEhIeDSdXeaE70SJIKXZNM7bkjmhX%2BCMgZVM3BpGIHM9nQOtlO0ac3oSiRkxlEvPF0AYXaw%2BlydnO%2FL%2BX3v95687%2FMSRcgwDMZisdeVUm%2Fl8%2FkWkjUAHCRBMgvgF5LDAL5yu90%2FGIaR%2F69vcqFFv98vTqfzXRE5CQDkP9tF5LF9IjK%2FZis0NTV16vLlyw8XDe7s7NxP8jM7KmzcuDHl8XisLVu2pCsrK3Pr1q3LAkAmk3FMTk6uMU3TaZrmplQq5SKJfD4Pkgf6%2B%2Fs%2FLxq8Z8%2BeDwC8BwDbtm0z29rafm5oaEgWk5YbN27oQ0NDdWNjY7X2zXx45syZ95%2Fcp5580dXVdYpkLwC0tbX9dOTIkYjL5bqHIuV0Ou81NjZO3L9%2FH5OTkxUk3%2FD5fI5oNHr%2BmeCurq6PSIYAIBgMDnZ0dFzHc6q%2Bvv7X5cuX%2F5FIJKpJNnq93pXRaPTCv8CdnZ37ReQ4Sezbt%2B%2B7QCAQwwvK7Xb%2FvmrVqtzY2JhbKdXi8%2FmskZGR6%2FM53r17t9I07S%2BSCAQCw3v37o0uBhAMBo8%2B7f3Zs2c%2FBYCBgQFvJBJpBoBUKqWdO3duTgBA07RjJLF161ZzsdBi1N7eHq2rq4uLCDZs2HAMAGgYBhOJxEMACIfDX2zfvj35oqDCDRQiBoBYLFbR19fXDgBlZWUipmm2AoCu66mlgD5LHo%2FnjsvlSimlkMvlWkVEAiICj8djocSqqamxSGLZsmUBIdlsnyhdanBVVVVaRCAiTRqAV0QElZWVuaUCPJrbR6Xres6u6a9qIuIgiULtLaXKy8uzSikAcGiFJvB%2Fab7DAciKCDKZjKPU0Lt37zrsHGeF5DhJWJa1ZqkAwWDw6NOqWSqVWmPfcEJE5ApJjI%2BPO0sdcTKZdNoRXxGSX5OEaZqbSg22LGuT3aO%2FEV3XvyeJdDrtunnzZkWpoBMTExXT09MuEUFra%2BsPmmEY%2BUOHDoVInoxEInX19fV3nrc2L6Rr167ViQjy%2BXzI7%2Fc%2FFADIZrOnASAej28eGBjwLnW0Q0ND3tu3b28midnZ2dOPea7Dhw8fEJF%2BpRQ6Ojq%2BbWlpMZcCOjo6Wjs4OLjLNoAHe3t7%2Bx9zINFodHTnzp0rRaQlHo%2FXrF69ekbX9ekXhV66dGmXbX9PhMPh40%2F1XCMjIxeampocJBvj8XjN7OzsXG1t7W%2FPA41EIt7h4eE37UhP9%2FT0hBZ0mVevXj3f3Ny8UinVYlmWnkwmX1qxYsWfa9euLcpp3rp1S7948WJTPB5vsMvjiVAoFCra0IfD4XdI9hWmhPXr16eqq6unqqqq0i6X6155eXnW%2FjEdmUymzLIsZzKZfHlmZsZVqMkkD3Z3d%2FcveoQxDEMePHjQLSIfa5oGkrArz%2FwYU3guNBu7%2B%2FTs2LHjE7%2Ffv%2FgR5skDzM3NvSYibwNoVkq5STqUUiCZJTmhlBrO5%2FNf%2Bny%2BHxcCFvQ3ae6MHdgDqpkAAAAASUVORK5CYII%3D%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Ficon%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Ficon%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22tags%5C%22%3A%20%5C%22%24%3A%2Ftags%2FImage%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%3Csvg%5C%5Cn%20%20%20xmlns%3Adc%3D%5C%5C%5C%22http%3A%2F%2Fpurl.org%2Fdc%2Felements%2F1.1%2F%5C%5C%5C%22%5C%5Cn%20%20%20xmlns%3Acc%3D%5C%5C%5C%22http%3A%2F%2Fcreativecommons.org%2Fns%23%5C%5C%5C%22%5C%5Cn%20%20%20xmlns%3Ardf%3D%5C%5C%5C%22http%3A%2F%2Fwww.w3.org%2F1999%2F02%2F22-rdf-syntax-ns%23%5C%5C%5C%22%5C%5Cn%20%20%20xmlns%3Asvg%3D%5C%5C%5C%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%5C%5C%5C%22%5C%5Cn%20%20%20xmlns%3D%5C%5C%5C%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%5C%5C%5C%22%5C%5Cn%20%20%20xmlns%3Ainkscape%3D%5C%5C%5C%22http%3A%2F%2Fwww.inkscape.org%2Fnamespaces%2Finkscape%5C%5C%5C%22%5C%5Cn%20%20%20class%3D%5C%5C%5C%22tc-image-tiddlymap-button%20tc-image-button%5C%5C%5C%22%5C%5Cn%20%20%20version%3D%5C%5C%5C%221.1%5C%5C%5C%22%5C%5Cn%20%20%20width%3D%5C%5C%5C%2222pt%5C%5C%5C%22%5C%5Cn%20%20%20height%3D%5C%5C%5C%2222pt%5C%5C%5C%22%5C%5Cn%20%20%20viewBox%3D%5C%5C%5C%220%200%20128%20128%5C%5C%5C%22%3E%5C%5Cn%20%20%3Cdefs%5C%5Cn%20%20%20%20%20id%3D%5C%5C%5C%22defs4%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%3Cmarker%5C%5Cn%20%20%20%20%20%20%20refX%3D%5C%5C%5C%220%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20refY%3D%5C%5C%5C%220%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20orient%3D%5C%5C%5C%22auto%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20id%3D%5C%5C%5C%22Arrow1Lend%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20style%3D%5C%5C%5C%22overflow%3Avisible%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%20%20%3Cpath%5C%5Cn%20%20%20%20%20%20%20%20%20d%3D%5C%5C%5C%22M%200%2C0%205%2C-5%20-12.5%2C0%205%2C5%200%2C0%20z%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20transform%3D%5C%5C%5C%22matrix(-0.8%2C0%2C0%2C-0.8%2C-10%2C0)%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20id%3D%5C%5C%5C%22path3850%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20style%3D%5C%5C%5C%22fill-rule%3Aevenodd%3Bstroke%3A%23000000%3Bstroke-width%3A1pt%5C%5C%5C%22%20%2F%3E%5C%5Cn%20%20%20%20%3C%2Fmarker%3E%5C%5Cn%20%20%20%20%3Cmarker%5C%5Cn%20%20%20%20%20%20%20refX%3D%5C%5C%5C%220%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20refY%3D%5C%5C%5C%220%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20orient%3D%5C%5C%5C%22auto%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20id%3D%5C%5C%5C%22Arrow1Lstart%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20style%3D%5C%5C%5C%22overflow%3Avisible%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%20%20%3Cpath%5C%5Cn%20%20%20%20%20%20%20%20%20d%3D%5C%5C%5C%22M%200%2C0%205%2C-5%20-12.5%2C0%205%2C5%200%2C0%20z%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20transform%3D%5C%5C%5C%22matrix(0.8%2C0%2C0%2C0.8%2C10%2C0)%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20id%3D%5C%5C%5C%22path3847%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20style%3D%5C%5C%5C%22fill-rule%3Aevenodd%3Bstroke%3A%23000000%3Bstroke-width%3A1pt%5C%5C%5C%22%20%2F%3E%5C%5Cn%20%20%20%20%3C%2Fmarker%3E%5C%5Cn%20%20%20%20%3Cinkscape%3Apath-effect%5C%5Cn%20%20%20%20%20%20%20effect%3D%5C%5C%5C%22skeletal%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20id%3D%5C%5C%5C%22path-effect4329%5C%5C%5C%22%20%2F%3E%5C%5Cn%20%20%20%20%3Cinkscape%3Apath-effect%5C%5Cn%20%20%20%20%20%20%20effect%3D%5C%5C%5C%22skeletal%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20id%3D%5C%5C%5C%22path-effect4321%5C%5C%5C%22%20%2F%3E%5C%5Cn%20%20%20%20%3Cinkscape%3Apath-effect%5C%5Cn%20%20%20%20%20%20%20effect%3D%5C%5C%5C%22skeletal%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20id%3D%5C%5C%5C%22path-effect4315%5C%5C%5C%22%20%2F%3E%5C%5Cn%20%20%20%20%3Cinkscape%3Apath-effect%5C%5Cn%20%20%20%20%20%20%20effect%3D%5C%5C%5C%22skeletal%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20id%3D%5C%5C%5C%22path-effect4307%5C%5C%5C%22%20%2F%3E%5C%5Cn%20%20%20%20%3Cinkscape%3Apath-effect%5C%5Cn%20%20%20%20%20%20%20effect%3D%5C%5C%5C%22skeletal%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20id%3D%5C%5C%5C%22path-effect4299%5C%5C%5C%22%20%2F%3E%5C%5Cn%20%20%20%20%3Cinkscape%3Apath-effect%5C%5Cn%20%20%20%20%20%20%20effect%3D%5C%5C%5C%22skeletal%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20id%3D%5C%5C%5C%22path-effect4293%5C%5C%5C%22%20%2F%3E%5C%5Cn%20%20%3C%2Fdefs%3E%5C%5Cn%20%20%3Cg%5C%5Cn%20%20%20%20%20transform%3D%5C%5C%5C%22translate(0%2C-1024.5289)%5C%5C%5C%22%5C%5Cn%20%20%20%20%20id%3D%5C%5C%5C%22layer1%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%3Cpath%5C%5Cn%20%20%20%20%20%20%20d%3D%5C%5C%5C%22m%2017.867073%2C4.5821643%20a%203.7249374%2C3.7249374%200%201%201%20-7.449875%2C0%203.7249374%2C3.7249374%200%201%201%207.449875%2C0%20z%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20transform%3D%5C%5C%5C%22matrix(-6.3328802%2C0%2C0%2C6.2775831%2C193.9581%2C1100.3667)%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20id%3D%5C%5C%5C%22path4139-1-14%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20style%3D%5C%5C%5C%22fill-opacity%3A1%3Bfill-rule%3Anonzero%5C%5C%5C%22%20%2F%3E%5C%5Cn%20%20%20%20%3Cpath%5C%5Cn%20%20%20%20%20%20%20d%3D%5C%5C%5C%22M%2077.450496%2C1064.5069%20C%2058.849552%2C1025.9634%2015.704158%2C1023.3858%202.8821873e-7%2C1034.558%20L%200.02388589%2C1035.2674%20C%2024.502636%2C1022.2072%2044.810725%2C1042.1507%2060.163934%2C1074.112%20z%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20id%3D%5C%5C%5C%22path4337%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20style%3D%5C%5C%5C%22fill-opacity%3A1%3Bstroke-width%3A0.58181816%3Bstroke-miterlimit%3A4%3Bstroke-dasharray%3Anone%3Bmarker-start%3Anone%3Bmarker-end%3Anone%5C%5C%5C%22%20%2F%3E%5C%5Cn%20%20%20%20%3Cpath%5C%5Cn%20%20%20%20%20%20%20d%3D%5C%5C%5C%22m%2012.878637%2C11.280739%204.75937%2C-2.7478243%204.759371%2C-2.7478236%200%2C5.4956479%200%2C5.495648%20-4.759371%2C-2.747824%20z%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20transform%3D%5C%5C%5C%22matrix(4.6545455%2C0%2C0%2C4.6545455%2C-13.580429%2C1027.7638)%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20id%3D%5C%5C%5C%22path3004%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20style%3D%5C%5C%5C%22fill-opacity%3A1%3Bfill-rule%3Anonzero%5C%5C%5C%22%20%2F%3E%5C%5Cn%20%20%3C%2Fg%3E%5C%5Cn%20%20%3Cmetadata%5C%5Cn%20%20%20%20%20id%3D%5C%5C%5C%22metadata3772%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%3Crdf%3ARDF%3E%5C%5Cn%20%20%20%20%20%20%3Ccc%3AWork%5C%5Cn%20%20%20%20%20%20%20%20%20rdf%3Aabout%3D%5C%5C%5C%22%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%20%20%20%20%3Cdc%3Atitle%3E%3C%2Fdc%3Atitle%3E%5C%5Cn%20%20%20%20%20%20%20%20%3Cdc%3Aformat%3Eimage%2Fsvg%2Bxml%3C%2Fdc%3Aformat%3E%5C%5Cn%20%20%20%20%20%20%20%20%3Cdc%3Atype%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20rdf%3Aresource%3D%5C%5C%5C%22http%3A%2F%2Fpurl.org%2Fdc%2Fdcmitype%2FStillImage%5C%5C%5C%22%20%2F%3E%5C%5Cn%20%20%20%20%20%20%3C%2Fcc%3AWork%3E%5C%5Cn%20%20%20%20%3C%2Frdf%3ARDF%3E%5C%5Cn%20%20%3C%2Fmetadata%3E%5C%5Cn%3C%2Fsvg%3E%5C%5Cn%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fmedia%2Fsurface.png%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fmedia%2Fsurface.png%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22type%5C%22%3A%20%5C%22image%2Fpng%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89%2BbN%2FrXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz%2FSMBAPh%2BPDwrIsAHvgABeNMLCADATZvAMByH%2Fw%2FqQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf%2BbTAICd%2BJl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA%2Fg88wAAKCRFRHgg%2FP9eM4Ors7ONo62Dl8t6r8G%2FyJiYuP%2B5c%2BrcEAAAOF0ftH%2BLC%2BzGoA7BoBt%2FqIl7gRoXgugdfeLZrIPQLUAoOnaV%2FNw%2BH48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl%2FAV%2F1s%2BX48%2FPf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H%2FLcL%2F%2Fwd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s%2BwM%2B3zUAsGo%2BAXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93%2F%2B8%2F%2FUegJQCAZkmScQAAXkQkLlTKsz%2FHCAAARKCBKrBBG%2FTBGCzABhzBBdzBC%2FxgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD%2FphCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8%2BQ8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8%2BxdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR%2BcQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI%2BksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG%2BQh8lsKnWJAcaT4U%2BIoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr%2Bh0uhHdlR5Ol9BX0svpR%2BiX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK%2BYTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI%2BpXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q%2FpH5Z%2FYkGWcNMw09DpFGgsV%2FjvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY%2FR27iz2qqaE5QzNKM1ezUvOUZj8H45hx%2BJx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4%2FOBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up%2B6Ynr5egJ5Mb6feeb3n%2Bhx9L%2F1U%2FW36p%2FVHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm%2Beb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw%2B6TvZN9un2N%2FT0HDYfZDqsdWh1%2Bc7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc%2BLpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26%2FuNu5p7ofcn8w0nymeWTNz0MPIQ%2BBR5dE%2FC5%2BVMGvfrH5PQ0%2BBZ7XnIy9jL5FXrdewt6V3qvdh7xc%2B9j5yn%2BM%2B4zw33jLeWV%2FMN8C3yLfLT8Nvnl%2BF30N%2FI%2F9k%2F3r%2F0QCngCUBZwOJgUGBWwL7%2BHp8Ib%2BOPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo%2Bqi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt%2F87fOH4p3iC%2BN7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi%2FRNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z%2Bpn5mZ2y6xlhbL%2BxW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a%2FzYnKOZarnivN7cyzytuQN5zvn%2F%2FtEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1%2B1dT1gvWd%2B1YfqGnRs%2BFYmKrhTbF5cVf9go3HjlG4dvyr%2BZ3JS0qavEuWTPZtJm6ebeLZ5bDpaql%2BaXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO%2FPLi8ZafJzs07P1SkVPRU%2BlQ27tLdtWHX%2BG7R7ht7vPY07NXbW7z3%2FT7JvttVAVVN1WbVZftJ%2B7P3P66Jqun4lvttXa1ObXHtxwPSA%2F0HIw6217nU1R3SPVRSj9Yr60cOxx%2B%2B%2Fp3vdy0NNg1VjZzG4iNwRHnk6fcJ3%2FceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w%2B0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb%2B%2B6EHTh0kX%2Fi%2Bc7vDvOXPK4dPKy2%2BUTV7hXmq86X23qdOo8%2FpPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb%2F1tWeOT3dvfN6b%2FfF9%2FXfFt1%2Bcif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v%2B3Njv3H9qwHeg89HcR%2FcGhYPP%2FpH1jw9DBY%2BZj8uGDYbrnjg%2BOTniP3L96fynQ89kzyaeF%2F6i%2FsuuFxYvfvjV69fO0ZjRoZfyl5O%2FbXyl%2FerA6xmv28bCxh6%2ByXgzMV70VvvtwXfcdx3vo98PT%2BR8IH8o%2F2j5sfVT0Kf7kxmTk%2F8EA5jz%2FGMzLdsAAAAGYktHRAAmALMAAQfdEQQAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfeDBYVBDLiNMeiAAAFvUlEQVRIx7WXbUxTZxTH%2F%2Bc8VwQLlAKuEotF2mJRlMFEqeCUiMzojH7YEjMSlM1EY2Z04vbBbUrcZqbOTZfFOKMOcWRuZMyoS4xUN16EMUVUMkAFJ6VQkdFSoOIL9O5DBREFX%2Fl%2FvOf%2Bz%2B88z715znkITyMZZMjDTLfEC0iWE0hAD0DlZhkC7HCDagWoxA0cvzq%2FuwgE%2BUkpachoJjhiCta6mXYwATLfN7AnM923MzGIuC8hARn%2FlN3ZiUy4nxlsyEM6QAcgPECdb6TNFDTbMn10UnOkMsap9dE5AMDSVaeqdlYoz9qL1WftReOuuS6HMDHcshsEfrdyXscPTw3W%2FcabieRPmYAEdcrltLD3q2ar32x4mq9S2HIi9LBl78QzracnMDEI9FlFin3jE8G6PN5JLK9hAt4Zv6ps0%2BTvyvAc%2BrLmo%2Bm5DfungwhEvKs8uWVt%2F7h4CPorb2VJzmACPpy01bzO%2BMUFPKcSg%2Bc2%2BkijOs85zoQTKF6TplA0ZrvyHwEb8pAOgW0kgE8m7zyZHr6uGi%2Bo6IDpLQEjAp1%2FtZ7WMUkJY5f6WRqzOy48AP8CETSCylkAS3VrS1YbNl7CS9IkZcx%2Frm5XT1XHxVBBvCh%2BgfPzqlzIDAD6kVgDBhJGp1z%2BOPLrc3jJWhOx6ZwpKKmGiGEL1q4BAIYMYqYdBCBt%2FOoqDJPeGpteJZEEiUfsgAxi%2FTG8DgAG%2Fyjb7FcWNAwXOD5oljVcMcEmSELSH%2FrXmYjngwnTgmZZHmeIPaFcPlTCJ8UH%2FGwWIoYkjZzPRDSDQJgWNKt54Is513drb3W7vIdK5uru9BkslnN9t3amWZPaB%2FaPaxYQYBImBsFAxJiojHEONB6u%2Fz5mpPC%2BN1jihQXRi72Fz92hCrPfaQnIub5bCwB6%2FygnEYNBEczEKiLGuPtnb3%2FdvN2o8mbvQRO33WtVyPLgjWhP7ZbEcF9jY74tzwAAY701DokkCJJU7KmAHzEtK01OjvR%2FtcFLeN%2FtrXjganUKY7PSS9X5uPiMk2PSetzdYol2RUWdq0b94JD2dDKGDAcRw9pVp%2BpvAoAsk9m8Ur%2BheE%2FtlsSB367tXqsiy2Q26xTG5t4V9fdH%2BEU1laTcyE4NW1Xffq%2FNd2FB9GLbbatKIgFBwiEJ4qtMrK5uv6TU%2BOgcM82aVIPfpKYsk9kMAKlhq%2BpTw1bVx55QLldIfl06hbG5zlWjLkq25vQWN9OsSV1YEL14iXZFRb4tzxDhF9XnB4CYgPg6ALjmqlF61oorDOZSAqPcUaoGgJX6DcUHTafMA7fu%2FDznvpX6DcUyZPRCe1WUbM0J9Aru3FO7JVGGjP7Q3uKyTGZzVUelmjxbXUqTT%2FrOkmTpT51vpC13RkkuhlHrK5e93XCrPkR298zmyrmdhTIR%2Fr1VG3KmJV8zXNCKtjJNU5c1RJDAJNOcIgZBJlAGg%2FCzdf%2FE4QKbbx6dyCQgwBmZlOn2dKc2%2By4AOGsvMn57ZfPUlw3NseydeslZbiQQ7tQH7Orrx1W5kEPTfBuIeFF158XQwJHBbUa%2F6NaXAT118%2FiEvKZDSUwCIHn5TylHyx%2BaQBoPuSpC05QKJk4osxfqVV7BbUa%2FKa0vCs1p2PsGEwPg7dlxv2977MxlzW7PH7dMpSJQ%2FFl7of5Wj6snLjCx6Xmgh60Hph5pykliYshw78qKO5Yx6LAHAJaDbSfC0gMVTFJCTcel0MsdlQF%2Bkv%2FdsT7a9qcBXnT%2BHfqjZY%2BpzF4Q4xlvsf3A1IehQw70cwoi3yPQPkECRIzxowy2aOW0%2BskBsc3higntY7w1DgC4cbtRZem65l%2FdflFd01GpvXnHFkIgeMZaWr4v9sj%2BZ77CZMrg0sKoD4jFV17sBYAgSAITQ5Dk2TLP2QuA%2Bp4TaP2412K%2FyaTMZ7%2FCDCzgfElcIhEvJNAMiSQdEasESSBiB4PrBIsSctOx8XHTiocC9up%2FPG8QrAaKLngAAAAASUVORK5CYII%3D%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fconfig%2FEditTemplateFields%2FVisibility%2Ftmap.id%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fconfig%2FEditTemplateFields%2FVisibility%2Ftmap.id%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22hide%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Flanguage%2FButtons%2FTiddlyMap%2FCaption%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Flanguage%2FButtons%2FTiddlyMap%2FCaption%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22tiddlymap%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Flanguage%2FButtons%2FTiddlyMap%2FHint%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Flanguage%2FButtons%2FTiddlyMap%2FHint%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22Toggle%20TiddlyMap%20actions%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fmisc%2Fmacros%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fmisc%2Fmacros%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5C%5C%5Cdefine%20concat(str)%20%24str%24%5C%5Cn%5C%5Cn%5C%5C%5C%5Cdefine%20input-text(field%2C%20index%2C%20default%2C%20readonly%2C%20class%2C%20focus)%5C%5Cn%20%20%3C%24reveal%20type%3D%5C%5C%5C%22match%5C%5C%5C%22%20text%3D%5C%5C%5C%22%5C%5C%5C%22%20default%3D%5C%5C%5C%22%24readonly%24%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%3C%24edit-text%5C%5Cn%20%20%20%20%20%20%20%20tiddler%3D%3C%3Coutput%3E%3E%5C%5Cn%20%20%20%20%20%20%20%20field%3D%5C%5C%5C%22%24field%24%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20index%3D%5C%5C%5C%22%24index%24%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20type%3D%5C%5C%5C%22text%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20tag%3D%5C%5C%5C%22input%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20default%3D%5C%5C%5C%22%24default%24%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20focus%3D%5C%5C%5C%22%24focus%24%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20class%3D%5C%5C%5C%22%24class%24%5C%5C%5C%22%20%2F%3E%5C%5Cn%20%20%3C%2F%24reveal%3E%5C%5Cn%20%20%3C%24reveal%20type%3D%5C%5C%5C%22nomatch%5C%5C%5C%22%20text%3D%5C%5C%5C%22%5C%5C%5C%22%20default%3D%5C%5C%5C%22%24readonly%24%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%3Cinput%20type%3D%5C%5C%5C%22text%5C%5C%5C%22%20value%3D%5C%5C%5C%22%24default%24%5C%5C%5C%22%20readonly%3D%5C%5C%5C%22true%5C%5C%5C%22%20disabled%3D%5C%5C%5C%22true%5C%5C%5C%22%20%2F%3E%5C%5Cn%20%20%3C%2F%24reveal%3E%5C%5Cn%5C%5C%5C%5Cend%5C%5Cn%5C%5Cn%5C%5C%5C%5Cdefine%20input-button(field%2C%20index%2C%20default%2C%20default%2C%20label%3A%5C%5C%5C%22Proceed%5C%5C%5C%22)%5C%5Cn%20%20%3Cdiv%20class%3D%5C%5C%5C%22tmap-button-wrapper%5C%5C%5C%22%3E%5C%5Cn%20%20%3C%24button%3E%24label%24%5C%5Cn%20%20%20%20%3C%24action-setfield%20%24tiddler%3D%3C%3Coutput%3E%3E%20%24field%3D%5C%5C%5C%22%24field%24%5C%5C%5C%22%20index%3D%5C%5C%5C%22%24index%24%5C%5C%5C%22%20%24value%3D%5C%5C%5C%22%24default%24%5C%5C%5C%22%20%2F%3E%5C%5Cn%20%20%3C%2F%24button%3E%5C%5Cn%20%20%3C%2Fdiv%3E%5C%5Cn%5C%5C%5C%5Cend%5C%5Cn%5C%5Cn%5C%5C%5C%5Cdefine%20input-textarea(field%2C%20index%2C%20default%2C%20default%2C%20class%2C%20focus)%5C%5Cn%20%20%3C%24edit-text%5C%5Cn%20%20%20%20%20%20tiddler%3D%3C%3Coutput%3E%3E%5C%5Cn%20%20%20%20%20%20field%3D%5C%5C%5C%22%24field%24%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20index%3D%5C%5C%5C%22%24index%24%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20autoHeight%3D%5C%5C%5C%22no%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20type%3D%5C%5C%5C%22text%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20tag%3D%5C%5C%5C%22textarea%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20default%3D%5C%5C%5C%22%24default%24%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20class%3D%5C%5C%5C%22%24class%24%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20focus%3D%5C%5C%5C%22%24focus%24%5C%5C%5C%22%20%2F%3E%5C%5Cn%5C%5C%5C%5Cend%5C%5Cn%5C%5Cn%5C%5C%5C%5Cdefine%20input-checkbox(field%2C%20index%2C%20readonly%2C%20default)%5C%5Cn%20%20%3C%24reveal%20type%3D%5C%5C%5C%22match%5C%5C%5C%22%20text%3D%5C%5C%5C%22%5C%5C%5C%22%20default%3D%5C%5C%5C%22%24readonly%24%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%3C%24checkbox%5C%5Cn%20%20%20%20%20%20%20%20tiddler%3D%3C%3Coutput%3E%3E%5C%5Cn%20%20%20%20%20%20%20%20field%3D%5C%5C%5C%22%24field%24%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20index%3D%5C%5C%5C%22%24index%24%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20checked%3D%5C%5C%5C%22true%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20unchecked%3D%5C%5C%5C%22false%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20default%3D%5C%5C%5C%22%24default%24%5C%5C%5C%22%20%2F%3E%5C%5Cn%20%20%3C%2F%24reveal%3E%5C%5Cn%20%20%3C%24reveal%20type%3D%5C%5C%5C%22nomatch%5C%5C%5C%22%20text%3D%5C%5C%5C%22%5C%5C%5C%22%20default%3D%5C%5C%5C%22%24readonly%24%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%3Cinput%20type%3D%5C%5C%5C%22checkbox%5C%5C%5C%22%20value%3D%5C%5C%5C%22%24default%24%5C%5C%5C%22%20readonly%3D%5C%5C%5C%22true%5C%5C%5C%22%20disabled%3D%5C%5C%5C%22true%5C%5C%5C%22%20%2F%3E%5C%5Cn%20%20%3C%2F%24reveal%3E%5C%5Cn%5C%5C%5C%5Cend%5C%5Cn%5C%5Cn%5C%5C%5C%5Cdefine%20input-multi-checkbox(selectFilter%2C%20invert%3A%5C%5C%5C%22no%5C%5C%5C%22%2C%20default)%5C%5Cn%20%20%3Cdiv%20class%3D%5C%5C%5C%22tmap-no-stretch%5C%5C%5C%22%3E%5C%5Cn%20%20%3C%24list%5C%5Cn%20%20%20%20%20%20filter%3D%5C%5C%5C%22%24selectFilter%24%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20emptyMessage%3D%5C%5C%5C%22%E2%80%93%20This%20list%20contains%20no%20items%20%E2%80%93%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%3C%24checkbox%5C%5Cn%20%20%20%20%20%20%20%20tiddler%3D%3C%3Coutput%3E%3E%5C%5Cn%20%20%20%20%20%20%20%20tag%3D%3C%3Ctmap%20%5C%5C%5C%22splitAndSelect%5C%5C%5C%22%20%5C%5C%5C%22%7C%5C%5C%5C%22%20%5C%5C%5C%220%5C%5C%5C%22%3E%3E%3E%5C%5Cn%20%20%20%20%20%20%3C%24view%5C%5Cn%20%20%20%20%20%20%20%20%20%20tiddler%3D%3C%3Ctmap%20%5C%5C%5C%22splitAndSelect%5C%5C%5C%22%20%5C%5C%5C%22%7C%5C%5C%5C%22%20%5C%5C%5C%221%5C%5C%5C%22%3E%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20field%3D%5C%5C%5C%22title%5C%5C%5C%22%20%2F%3E%5C%5Cn%20%20%20%20%3C%2F%24checkbox%3E%3Cbr%20%2F%3E%5C%5Cn%20%20%3C%2F%24list%3E%5C%5Cn%20%20%3C%2Fdiv%3E%5C%5Cn%5C%5C%5C%5Cend%5C%5Cn%5C%5Cn%5C%5C%5C%5Cdefine%20input-select(field%2C%20index%2C%20selectFilter%2C%20default%2C%20nochoice)%5C%5Cn%20%20%3C%24select%5C%5Cn%20%20%20%20%20%20tiddler%3D%3C%3Coutput%3E%3E%5C%5Cn%20%20%20%20%20%20field%3D%5C%5C%5C%22%24field%24%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20index%3D%5C%5C%5C%22%24index%24%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20default%3D%5C%5C%5C%22%24default%24%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%3C%24set%20name%3D%5C%5C%5C%22nochoice%5C%5C%5C%22%20value%3D%5C%5C%5C%22%24nochoice%24%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%20%20%3C%24list%20filter%3D%5C%5C%5C%22%5B%3Cnochoice%3Eregexp%5B.%2B%5D%5D%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%20%20%20%20%3Coption%20value%3D%5C%5C%5C%22%5C%5C%5C%22%3E%3Cb%3E%3C%3Cnochoice%3E%3E%3C%2Fb%3E%3C%2Foption%3E%5C%5Cn%20%20%20%20%20%20%3C%2F%24list%3E%5C%5Cn%20%20%20%20%3C%2F%24set%3E%5C%5Cn%20%20%20%20%3C%24list%20filter%3D%5C%5C%5C%22%24selectFilter%24%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%20%20%3Coption%20value%3D%3C%3Ctmap%20%5C%5C%5C%22splitAndSelect%5C%5C%5C%22%20%5C%5C%5C%22%7C%5C%5C%5C%22%20%5C%5C%5C%220%5C%5C%5C%22%3E%3E%20%3E%5C%5Cn%20%20%20%20%20%20%20%20%3C%24view%20tiddler%3D%3C%3Ctmap%20%5C%5C%5C%22splitAndSelect%5C%5C%5C%22%20%5C%5C%5C%22%7C%5C%5C%5C%22%20%5C%5C%5C%221%5C%5C%5C%22%3E%3E%20field%3D%5C%5C%5C%22title%5C%5C%5C%22%20%2F%3E%5C%5Cn%20%20%20%20%20%20%3C%2Foption%3E%5C%5Cn%20%20%20%20%3C%2F%24list%3E%5C%5Cn%20%20%3C%2F%24select%3E%5C%5Cn%5C%5C%5C%5Cend%5C%5Cn%5C%5Cn%5C%5C%5C%5Cdefine%20input-radio(field%2C%20index%2C%20selectFilter%2C%20default)%5C%5Cn%20%20%3C%24list%20filter%3D%5C%5C%5C%22%24selectFilter%24%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%3C%24radio%5C%5Cn%20%20%20%20%20%20%20%20tiddler%3D%3C%3Coutput%3E%3E%5C%5Cn%20%20%20%20%20%20%20%20field%3D%5C%5C%5C%22%24field%24%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20index%3D%5C%5C%5C%22%24index%24%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20value%3D%3C%3Ctmap%20%5C%5C%5C%22splitAndSelect%5C%5C%5C%22%20%5C%5C%5C%22%7C%5C%5C%5C%22%20%5C%5C%5C%220%5C%5C%5C%22%3E%3E%3E%5C%5Cn%20%20%20%20%20%20%3C%3Ctmap%20%5C%5C%5C%22splitAndSelect%5C%5C%5C%22%20%5C%5C%5C%22%7C%5C%5C%5C%22%20%5C%5C%5C%221%5C%5C%5C%22%3E%3E%5C%5Cn%20%20%20%20%3C%2F%24radio%3E%3Cbr%20%2F%3E%5C%5Cn%20%20%3C%2F%24list%3E%5C%5Cn%5C%5C%5C%5Cend%5C%5Cn%5C%5Cn%5C%5C%5C%5Cdefine%20tmap-row(title%2C%20field%2C%20index%2C%20type%2C%20descr%2C%20note%2C%20label%2C%20default%2C%20readonly%2C%20reset%2C%20selectFilter%2C%20nochoice%2C%20invert%2C%20class%2C%20focus)%5C%5Cn%20%20%3Ctr%3E%5C%5Cn%20%20%20%20%3Ctd%20class%3D%5C%5C%5C%22tmap-title%5C%5C%5C%22%3E%24title%24%3A%3C%2Ftd%3E%5C%5Cn%20%20%20%20%3Ctd%3E%5C%5Cn%20%20%20%20%20%20%20%20%3C%3C%24type%24%5C%5Cn%20%20%20%20%20%20%20%20%20%20field%3A%5C%5C%5C%22%24field%24%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20index%3A%5C%5C%5C%22%24index%24%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20readonly%3A%5C%5C%5C%22%24readonly%24%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20default%3A%5C%5C%5C%22%24default%24%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20label%3A%5C%5C%5C%22%24label%24%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20invert%3A%5C%5C%5C%22%24invert%24%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20selectFilter%3A%5C%5C%5C%22%24selectFilter%24%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20nochoice%3A%5C%5C%5C%22%24nochoice%24%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20focus%3A%5C%5C%5C%22%24focus%24%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20%20%20class%3A%5C%5C%5C%22%24class%24%5C%5C%5C%22%3E%3E%5C%5Cn%20%20%20%20%20%20%20%20%3C%24reveal%20type%3D%5C%5C%5C%22match%5C%5C%5C%22%20text%3D%5C%5C%5C%22true%5C%5C%5C%22%20default%3D%5C%5C%5C%22%24reset%24%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%3C%24button%3Ereset%5C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%3C%24action-setfield%20%24tiddler%3D%3C%3Coutput%3E%3E%20%24field%3D%5C%5C%5C%22%24field%24%5C%5C%5C%22%20%24index%3D%5C%5C%5C%22%24index%24%5C%5C%5C%22%20%24value%3D%5C%5C%5C%22%24default%24%5C%5C%5C%22%20%2F%3E%5C%5Cn%20%20%20%20%20%20%20%20%20%20%3C%2F%24button%3E%5C%5Cn%20%20%20%20%20%20%20%20%3C%2F%24reveal%3E%5C%5Cn%20%20%20%20%3C%2Ftd%3E%5C%5Cn%20%20%20%20%3Ctd%3E%5C%5Cn%20%20%20%20%20%20%3Cspan%20class%3D%5C%5C%5C%22tmap-description%5C%5C%5C%22%3E%24descr%24%3C%2Fspan%3E%5C%5Cn%20%20%20%20%20%20%3C%24reveal%20type%3D%5C%5C%5C%22nomatch%5C%5C%5C%22%20text%3D%5C%5C%5C%22%5C%5C%5C%22%20default%3D%5C%5C%5C%22%24note%24%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%20%20%20%20%3Cdiv%20class%3D%5C%5C%5C%22tmap-note%5C%5C%5C%22%3E''Note%3A''%20%24note%24%3C%2Fdiv%3E%5C%5Cn%20%20%20%20%20%20%3C%2F%24reveal%3E%5C%5Cn%20%20%20%20%3C%2Ftd%3E%5C%5Cn%20%20%3C%2Ftr%3E%5C%5Cn%5C%5C%5C%5Cend%5C%5Cn%5C%5Cn%5C%5C%5C%5Cdefine%20visConfiguration(inheritedList%2C%20extensionField%2C%20styleName%3A%5C%5C%5C%22style%5C%5C%5C%22)%5C%5Cn%20%20%3Cfieldset%3E%3Clegend%3EVisjs%20configurations%20(%24styleName%24)%3C%2Flegend%3E%5C%5Cn%20%20%20%20%3Cdiv%20class%3D%5C%5C%5C%22tmap-flash-message%20tmap-info%5C%5C%5C%22%3E%5C%5Cn%20%20%20%20%20%20Only%20config%20items%20that%20you%20actually%20changed%20have%20an%20effect%20on%5C%5Cn%20%20%20%20%20%20the%20graph.%20Other%20options%20are%20visible%2C%20yet%2C%20inactive.%5C%5Cn%20%20%20%20%3C%2Fdiv%3E%5C%5Cn%20%20%20%20%3C%24tmap-config%5C%5Cn%20%20%20%20%20%20%20%20mode%3D%5C%5C%5C%22manage-node-types%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20inherited%3D%5C%5C%5C%22%24inheritedList%24%5C%5C%5C%22%5C%5Cn%20%20%20%20%20%20%20%20extension%3D%5C%5C%5C%22%24extensionField%24%5C%5C%5C%22%20%2F%3E%5C%5Cn%20%20%3C%2Ffieldset%3E%5C%5Cn%5C%5C%5C%5Cend%5C%5Cn%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fmisc%2FdefaultViewHolder%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fmisc%2FdefaultViewHolder%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22Default%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fgraph%2FnodeTypes%2Ftmap%3Acentral-topic%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fgraph%2FnodeTypes%2Ftmap%3Acentral-topic%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22description%5C%22%3A%20%5C%22The%20style%20is%20applied%20to%20the%20node%20that%20you%20marked%20as%20central%20topic%20in%20a%20map.%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22style%5C%22%3A%20%5C%22%7B%5C%5C%5C%22font%5C%5C%5C%22%3A%7B%5C%5C%5C%22size%5C%5C%5C%22%3A22%2C%5C%5C%5C%22color%5C%5C%5C%22%3A%5C%5C%5C%22rgba(0%2C0%2C0%2C1)%5C%5C%5C%22%7D%2C%5C%5C%5C%22shape%5C%5C%5C%22%3A%5C%5C%5C%22star%5C%5C%5C%22%7D%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fgraph%2FnodeTypes%2Ftmap%3Aneighbour%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fgraph%2FnodeTypes%2Ftmap%3Aneighbour%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22description%5C%22%3A%20%5C%22Neighbours%20are%20all%20nodes%20that%20are%20not%20part%20of%20the%20original%20set%20of%20nodes%20(%5C%5C%5C%22matches%5C%5C%5C%22)%20but%20are%20connected%20(either%20outgoing%20or%20incoming)%20to%20a%20node%20of%20the%20original%20set.%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22style%5C%22%3A%20%5C%22%7B%5C%5C%5C%22color%5C%5C%5C%22%3A%5C%5C%5C%22%23565656%5C%5C%5C%22%7D%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fgraph%2Fviews%2FDefault%2Ffilter%2Fedges%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fgraph%2Fviews%2FDefault%2Ffilter%2Fedges%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fgraph%2Fviews%2FDefault%2Ffilter%2Fnodes%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fgraph%2Fviews%2FDefault%2Ffilter%2Fnodes%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fgraph%2Fviews%2FDefault%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fgraph%2Fviews%2FDefault%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22config.physics_mode%5C%22%3A%20%5C%22false%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22isview%5C%22%3A%20%5C%22true%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fgraph%2Fviews%2FLive%20View%2Ffilter%2Fedges%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fgraph%2Fviews%2FLive%20View%2Ffilter%2Fedges%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22filter%5C%22%3A%20%5C%22%5Bprefix%5B%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fgraph%2FedgeTypes%5D%5D%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22text%5C%22%3A%20%5C%22%5C%5Cn%5C%5Cn%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fgraph%2Fviews%2FLive%20View%2Ffilter%2Fnodes%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fgraph%2Fviews%2FLive%20View%2Ffilter%2Fnodes%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22filter%5C%22%3A%20%5C%22%5Bfield%3Atitle%7B%24%3A%2Ftemp%2Ftmap%2FcurrentTiddler%7D%5D%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fgraph%2Fviews%2FLive%20View%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fgraph%2Fviews%2FLive%20View%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22config.refresh-triggers%5C%22%3A%20%5C%22%24%3A%2Ftemp%2Ftmap%2FcurrentTiddler%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22config.physics_mode%5C%22%3A%20%5C%22true%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22config.vis%5C%22%3A%20%5C%22%7B%5C%5C%5C%22physics%5C%5C%5C%22%3A%7B%5C%5C%5C%22forceAtlas2Based%5C%5C%5C%22%3A%7B%5C%5C%5C%22springConstant%5C%5C%5C%22%3A0.09%7D%7D%7D%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22config.neighbourhood_scope%5C%22%3A%20%5C%221%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22created%5C%22%3A%20%5C%2220150331114808577%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22modified%5C%22%3A%20%5C%2220200509212547688%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22type%5C%22%3A%20%5C%22text%2Fvnd.tiddlywiki%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22isview%5C%22%3A%20%5C%22true%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fgraph%2Fviews%2FGraph%20search%2Ffilter%2Fnodes%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fgraph%2Fviews%2FGraph%20search%2Ffilter%2Fnodes%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22filter%5C%22%3A%20%5C%22%5B!is%5Bsystem%5Dsearch%7B%24%3A%2Ftemp%2Fsearch%7D%5D%20%5B!is%5Bsystem%5Dsearch%3Atags%7B%24%3A%2Ftemp%2Fsearch%7D%5D%20%5B!is%5Bsystem%5Dsearch%3Atext%7B%24%3A%2Ftemp%2Fsearch%7Dlimit%5B10%5D%5D%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%2C%5Cn%20%20%20%20%20%20%20%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fgraph%2Fviews%2FGraph%20search%5C%22%3A%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22title%5C%22%3A%20%5C%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fgraph%2Fviews%2FGraph%20search%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22config.refresh-triggers%5C%22%3A%20%5C%22%24%3A%2Ftemp%2Fsearch%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22config.neighbourhood_scope%5C%22%3A%20%5C%221%5C%22%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%5C%22config.physics_mode%5C%22%3A%20%5C%22true%5C%22%5Cn%20%20%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%7D%22%2C%22version%22%3A%220.17.8%2B10010%22%2C%22type%22%3A%22application%2Fjson%22%2C%22title%22%3A%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%22%2C%22suggested%22%3A%22%24%3A%2Fplugins%2Ffelixhayashi%2Ftopstoryview%22%2C%22source%22%3A%22https%3A%2F%2Fgithub.com%2Ffelixhayashi%2FTW5-TiddlyMap%22%2C%22released%22%3A%22Sun%2C%2027%20Sep%202020%2020%3A47%3A13%20GMT%22%2C%22plugin-type%22%3A%22plugin%22%2C%22list%22%3A%22readme%20license%22%2C%22description%22%3A%22TiddlyMap%20%E2%80%93%20Map%20drawing%20and%20topic%20visualization%20for%20your%20wiki%22%2C%22depends%22%3A%22%24%3A%2Fplugins%2Ffelixhayashi%2Fvis%22%2C%22dependents%22%3A%22%24%3A%2Fplugins%2Ffelixhayashi%2Fvis%22%2C%22core-version%22%3A%22%3E%3D5.1.5%22%2C%22author%22%3A%22Felix%20K%C3%BCppers%22%7D